티스토리 뷰

Dev.Basic/운영체제

[OS] 9-1. Virtual Memory I

글쓰는 개발자 _Jbee 2016. 6. 7. 16:12

Chapter 9-1. Virtual Memory I

Virtual Memory

물리적인 메모리에 프로세스를 적재하는데에는 운영체제가 관여하는 부분이 없었다.

하지만 Virtual Memory 즉 가상 메모리에 대한 문제는 운영체제가 전적으로 관여한다.

Virtual Memory는 Memory Management에서 다뤄진대로,

메모리에 프로세스가 더이상 적재될 수 없을 때, Swapped out되는 메모리이다.



Demand Paging 기법

요청이 왔을 때, Page 단위로 메모리에 올리는 기법을 말한다.

I/O 양이 감소되고, Memory 사용량이 감소되고, 빠른 응답시간을 보이고, 더 많은 사용자를 수용할 수 있게 된다.

즉. 페이지 단위로 프로세스가 적재하는 상태이며,

프로세스의 모든 페이지가 올라가 있지 않고 순간 순간마다 필요한 페이지들이 메모리에 적재되어 있고,

나머지는 모두 가상 메모리에 적재되어 있는 상태를 말한다. 

페이지가 물리적 메모리에 적재되어 있지 않는 상태를 Invalid되어있다고 말한다.



Page Fault

address translation 시에 invalid bit이 set되어 있으면 page fault가 발생한다.

로드된 프로세스로부터 요청이 온 logical address가 물리적 메모리에 존재하지 않으면

MMU가 page fault trap을 발생시키고, 이 때, CPU 제어권이 운영체제에게 넘어간다.



1. 로드된 프로세스 M으로부터 logical address 요청이 들어온다.(현재 CPU는 프로세스에게 할당되어있는 상태)

2. page table에 주소가 올라와 있지 않으므로 page fault hanlder에 의해 소프트웨어 인터럽트(trap)가 invoke(실행)된다.

3. 디스크로 접근하여 요청한 주소에 해당하는 부분을 찾는다.

4. 비어있는 페이지 프레임을 찾는다. *Empty frame이 존재하지 않는 경우

    디스크로부터 메모리로 load한다.(느린작업)

6. load작업이 끝나면 page table entry에 valid로 기록한다.


*Empty frame이 존재하지 않는 경우 => page replacement

특정 알고리즘을 거쳐 어떤 frame 을 빼앗아 올지 victim page를 선정한다.

동일한 페이지가 여러 번 메모리에서 쫓겨났다가 다시 로드될 수 있다.


Replacement Algorithm

가능한 page fault가 발생하지 않는 방향으로 알고리즘을 설계해야 한다.

즉, 다시 참조될 가능성이 가정 작은 프레임을 메모리 상에서 내쫓아야 하는 것이다.

page fault rate를 최소화하는 것이 이 알고리즘의 목표이다.

알고리즘에 대한 평가는 page reference string에 대해 page fault가 얼마나 발생했는지를 통해 결정한다.

만약 알고리즘을 통해 선정된 victim에 write가 발생했다면, 변경된 내용을 디스크에 저장을 한 뒤 내쫓아야 하는 것이다.


분류

- Optimal Algorithm

- FIFO (First In First Out) algorithm

- LRU (Least Recently Used) algorithm

- LFU (Least Frequently Used) algorithm

(다음 Chapter에서 구체적으로)


Chapter 9-1. 끝

이 포스팅은 이화여대 반효경 교수님 강의를 듣고 요약한 내용을 담고 있습니다.



'Dev.Basic > 운영체제' 카테고리의 다른 글

[OS] 9-3. Virtual Memory III  (0) 2016.06.14
[OS] 9-2. Virtual Memory II  (0) 2016.06.13
[OS] 9-1. Virtual Memory I  (3) 2016.06.07
[OS] 8-5. Memory Management V  (0) 2016.06.06
[OS] 8-4. Memory Management IV  (1) 2016.06.05
[OS] 8-3. Memory Management III  (0) 2016.06.05
공유하기 링크
TAG
«   2021/10   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
Total
1,486,230
Today
51
Yesterday
331