진짜 개발자
본문 바로가기

CS(Computer Science)/운영체제

메모리 관리(개요)

728x90

운영체제의 역할중 하나가 메모리,프로세스 관리이다


과거에 비해 메모리의 크기가 늘어 났지만 그만큼 프로그램의 크기도 증가 했기 때문이다.


메모리는 주소데이터로 구성되어 있다. 

CPU가 원하는 데이터의 주소를 메모리에 보내면

메모리CPU에게 해당하는 데이터를 보내준다

CPU에서 계산된 결과를 메모리의 특정 주소에 저장하고 명령을 보내면 메모리에 해당하는 주소에 데이터를 저장한다.


프로그램을 개발할 때는 여러 가지의 파일 형태를 가진다. 소스 파일은 고수준언어 또는 어셈블리언어로 개발된 파일을 말한다. 소스 파일은 컴파일러와 어셈블러에 의해 목적 파일로 전환된다. 목적 파일은 소스 파일에 대한 컴파일 또는 어셈블 결과를 나타내는 파일로 기계어로 나타내어진다. 목적 파일을 링크가 실행파일로 바꾼다. 실행파일은 링크의 결과로 나타난 파일이다.

(하나의 프로그램이 실행되기 위해서는 코드와, 데이터 그리고 스텍을 가지고 있어야 한다.)

하드디스크에 존재하는 모든 프로그램들은 메모리의 특정 부분에 적재되어 실행이 된다. 때문에,

실행파일이 만들어지면 로더에 의해 메모리에 올려진다. CPU가 프로그램을 실행하기 위해서는 데이터가 저장되어있는 메모리 , 그리고 명령어를 가져와야하는데 메모리에 상주하고 있는 프로그램이어야 CPU가 접근할 수 있기 때문이다.

이때 운영체제가 실행파일을 메모리의 어디에 올릴지를 결정한다.


*MMU - MMU는 코드에서 사용하는 주소를(논리적주소) 실제 물리적메모리(메인메모리)에 상주되어있는 프로세스의 주소

즉 물리적 주소로 바꾸어 주는 역할을 한다

예를들어 실행파일의 코드에는 0번지 주소에서 실행되어야 하는 코드가 있는데 현재 물리적메모리에는

500번지가 비어있어 실행파일이 500번지부터 시작된다고 하면 MMU의 재배치 레지스터에 의해 코드의 주소들을 +500시켜

실제 데이터가 위치한 주소를 참조하도록 한다.






'CS(Computer Science) > 운영체제' 카테고리의 다른 글

스레드 개요  (0) 2018.10.06
프로세스 스케줄링  (0) 2018.09.24
프로세스 개요  (0) 2018.09.11
메모리관리(메모리 낭비 방지)  (0) 2018.09.06
멀티프로그래밍 , 멀티프로세싱  (0) 2018.09.06