운영체제(OS) - 12. 가상메모리

Walker·2021년 10월 25일
0

운영체제(OS)

목록 보기
12/14

만약 RAM이 8GB라면 프로세스를 2개 밖에 사용하지 못한다.
그래서 필요한 것이 가상메모리!

마치 CPU가 프로세스 간을 Switching 하듯이
RAM에서 프로세스(Code)를 바꿔가면서 메모리에 올려서 사용한다.

전체 프로세스의 Code를 한 시점에 모두 필요한 것이 아니기 때문에
필요한 시점에만 물리 주소에 해당하는 장소에 Code를 올리는 것이 기본 아이디어

빈번한 주소전환은 자원(시간)을 많이 소모하기 때문에 MMU라는 하드웨어를 사용

작은 프로세스의 조각들을 페이지라고 할 수 있는데 리눅스는 한 페이지를 4KB로 관리한다.

CPU > 가상주소 > 가상메모리(페이지번호) > PageTable(페이지번호/물리주소) > 물리메모리(물리주소)

구체적으로는 페이지 내에서 변위값(몇번째)을 가지고 특정한 테이터를 선택하여 물리메모리를 찾는다.

전체적인 흐름은 위와 같으며
메모리에 원하는 프로세스의 페이지가 없으면 페이지 폴트가 발생하여
OS가 인터럽트를 통해 저장매체에서 필요한 페이지를 메모리에 올리고 다시 CPU가 요청하게 한다.

profile
I walk slowly, but I never walk backward. -Abraham Lincoln-

0개의 댓글