본문 바로가기

운영체제/Demand Paging

Demand Paging - (3) Thrashing and Working set Demand Paging - (3) Thrashing and Working set Thrashing은 resource를 최대한 사용하고 있으나 아무런 유용한 일을 하지 못하는 현상을 일컬음. 예를 들어, CPU Scheduler는 cpu utilization을 최대한 높이는 것이 목적이다. 그러므로 cpu utilization이 낮으면 degree of programming을 늘려 cpu utilization을 활용하고자 한다. 그와 동시에 Memory management는 process이 수가 많아지면 page fault의 수가 증가하여 process들이 waiting 큐에서 대기하게 된다. 이에 따라 cpu utilization이 낮아지는 악순환이 반복된다. Thrashing이 발생하는 과정 1. 시..
Demand Paging - (2) Demand Paging key issue Demand Paging - (2) Demand Paging key issue Page selection policy - 디스크에서 페이지를 가져오는 정책 1. Demand paging : 요청이 있을 때(on demand) 디스크에서 메인 메모리로 페이지 로드 2. Pre-paging : 미래에 사용될 것으로 예측되는 페이지를 미리 디스크에서 메인 메모리로 로드 - 효과적인 pre-paging방안? spatial locality에 기반하여 page fault가 발생한 페이지 근처에 있는 페이지들을 메인 메모리로 로드한다. Page replacement policy - 메인 메모리가 꽉 찼을 때, 어떤 페이지를 swap-out할 것인가를 결정하는 정책 1. Random : 하드웨어 적으로 랜덤하게 vic..
Demand Paging - (1) Demand Paging이란? Demand Paging - (1) Demand Paging이란? Demand Paging - 메모리 관리 메커니즘(Memory management, MMU 메커니즘)을 사용해서 여러 프로세스가 시스템의 메모리를 효율적으로 공유할 수 있도록 하는 기술. Q. 프로그램이 필요로 하는 모든 메모리(Code segment, Data segment, Stack segment)가 physical memory에 있어야 하는가? - 그렇지 않다. 왜냐하면 프로그램은 Locality를 가지고 있기 떄문이다. - Locality 특성을 이용해서 프로세스가 그 때 필요로 하는 Page를 physical memory에 로드하고 사용하지 않는 Page는 디스크에 적재함으로써 적은 량의 메모리로 큰 효율을 나타낼 수 있었다 -..