[OS] 가상 메모리

hyeondoonge·2023년 4월 26일
1

OS

목록 보기
7/7

가상 메모리

virtual memory

한정된 메인 메모리의 용량을 개선하기위해 보조기억장치의 공간의 일부를 이용하여 더 많은 메모리를 사용하기위한 기술이다.

가상 메모리의 사용으로 얻을 수 있는 이점은 멀티 프로그래밍의 수를 늘릴 수 있다는 것과 메인 메모리보다 크기가 큰 프로그램도 실행시킬 수 있다는 것이다.

외에도 fork() 호출로 프로세스를 복제할 때, 부모 프로세스와 자식 프로세스가 메모리를 공유하여 효율적으로 메모리 공간을 사용하게하는 등의 이점이 있다.

요구 페이징

초기에 프로그램 전체를 메인 메모리에 적재하는 것이 아닌, 당장 실행에 필요한 페이지들만 메인 메모리에 올리고 나머지는 가상 메모리에 올리는 것이다. 이후 프로세스 작업 중, 특정 페이지가 필요하게되면 그때 가상 메모리의 페이지를 메인 메모리에 적재하여 사용한다.

요구 페이징은 I/O 양이 감소와 Memory 사용량 감소 등의 이점을 가진다.

페이지 부재

요청하는 페이지가 메인 메모리에 올라와있지 않는 상황을 의미한다. 이때 페이지 부재 trap을 발생시키고 OS가 해당 인터럽트 루틴에 따라 처리하게된다.

page fault

  1. 빈 프레임 선정
    1-1. 메인 메모리에 요청한 페이지를 저장할 공간이 없다면, 페이지 교체 알고리즘에 따라 희생될 페이지를 선정한다.
    1-2. 디스크에 페이지를 내쫓고, page table에서 희생된 페이지의 정보를 지운다.

  2. 새로운 페이지 적재
    가상 메모리로부터 요청한 페이지를 메인 메모리에 적재하고, page table에다가 기록한다.

  3. 프로세스 재시작
    대기 중 상태에서 CPU를 기다리는 상태로 변경되며, CPU를 획득 시 중단된 명령어부터 재실행된다.

참고

운영체제 - 이화여자대학교, System Structure & Program Execution 2

0개의 댓글