[3장] 메모리 관리 개요

임정환·2023년 9월 6일
0

운영체제

목록 보기
8/8

운영체제의 메모리 관리에 대해 알아보자

메모리 계층화와 추상화


CPU의 L1캐시와 L2 캐시는 매우 빠른 IO타임을 가지고 있지만 , 비싸다 ...
'최근에 쓰인 값은 다시 쓰일 가능성이 높다!' 라는 논리적(?)추론에 의거하여 LRU 정책을 기반으로 캐시를 관리한다.

만일 메모리에 단 하나의 유저 프로세스가 작동하고 있다면 , 그냥 물리메모리와 해당 프로세스의 영역을 1:1로 매핑시켜주면 굉장히 편할것이다. 하지만 , 현대 컴퓨터에는 수십에서부터 수백가지의 프로세스가 돌고있다(이때 , 여러분들은 느끼지 못하지만 백그라운드에서 나도 모르게 돌아가는 프로세스를 데몬 프로세스라고 부른다)

메모리 주소공간

프로세스 실행 바이너리의 명령어를 참고해보자

MOV r0 , 0xffffeeee 

0xffffeeee의 값을 r0로 옮긴다고 가정해보자 , 뭔가 수상하지 않은가?
지금까지의 상식으로는 프로세스는 실행시마다 , 주소값이 달라질 수 밖에 없다.
특정 , 프로그램의 실행을 요청하면 OS는 해당 실행 바이너리를 메모리에 load하게 되는데 다른 프로세스들이 차지하고 있는 공간을 내쫓고 나서 거기에 집어넣어줄 수는 없으니까 빈 공간에 대충 밀어넣을 것 아닌가?
프로그램의 명령어에 저렇게 절대적인 주소를 넣어버리면 , 도대체 어쩌라는 걸까?

가상 메모리

운영체제는 각 Process마다 4GB 가량의 가상의 논리적인 메모리 주소 공간을 제공해준다. 프로세스는 자신의 실제 메모리 공간을 전혀 신경쓰지 않고 , 운영체제가 제공하는 추상화된 메모리 공간을 PC를 옮겨가면서 실행 흐름을 제어하게 된다.
다음장부터 가상 메모리를 알아보자

profile
CS 박제

0개의 댓글