[OS] Demanding Paging

윰지·2020년 7월 1일
0

OS_운영체제

목록 보기
11/13

Swaping

process 전체를 빼는 것

Demand Paging

  • page 단위로 저장 장치를 활용하는 것
  • 과정
    1. page replacment policy를 통해 victim page를 뽑는다.
    2. main memory로부터 뽑은 것을 swap file에 저장한다.
    3. 뺀 page에 대해서는 더이상 memory에 있는 것이 아니라 swap file에 있다는 것(swap entry)을 PTE에 적는다.
    4. 넣어준다.
  • principle of locality을 기반으로 동작한다.
    • Temporal locality : 어떤 뭔가가 참조하여 사용하면 조금 있다가 다시 사용될 가능성이 높다.
    • Spatial locality :
  • Hardware support가 필요하다. 저장 장치가 있어야 한다. Page table with valid/invalid bit(demand paging에 의해 swap file로 이동했다는 marking bit). Instruction restart.

Virtual Memory

  • Virtual address를 physical address로 tranlate하고 ~~~하는 것
  • 장점
    • logical memory와 physical memory를 분리한다.
    • Demand paging을 통해 더 많은 process를 효과적으로 돌릴 수 있다.
    • Physical memory로 mapping하여 사용함으로써 다양한 기능을 구현할 수 있다.
    • 운영체제 메모리를 효과적으로 사용할 수 있다.

Shared Memory

  • ㅁㄴㅇㅎㅁ
  • 컴퓨터에서 운영체제는 모든 process에 공통적으로 kernal address에 mapping 되어 동작한다. User process들은 같은 kernel address space를 공유한다.

Copy-on-Write

  • 2개의 process가 같은 내용을 가지고 시작하되 각각 독립된 값을 가져야하는 상황이 발생할 때 page allocation을 최대한 미뤄놓고 같은 내용을 최대한 공통적으로 사용하게 하자라는 것

Paging Virtual Memory

~assahdfhfgjgfjadfhae

Frame Allocation

프로세스들에게 제한된 page frmaes를 분배하는 방법
1. Equal allocation
2. Proportional allocation
3. Priority allocation

Global vs Local Page Replacement

  1. Global Replacement
    어떤 프로세스가 physical 메모리가 부족해져 누군가 victim을 뽑아야 하는데 전체에서 가장 안쓰는 애를 뽑을 때
  2. Local Page Replacement

Thrashing

Recently used memory(hot)가 실제 사용하는 memory 보다 크면 page를 계속 replacment해야한다. Physical memory가 working set보다 작게되면 성능이 엄청 나빠진다.

solution
Kill processes, buy more memory

Buddy System Allocator

  • To control/reduce external fragmentation of the memory
  • Buddy system이란 내가 있고 나의 버디가 있으면 우리가 되고 그런식으로 recursive하게 관리하는 것

  • free 할때는 버디를 찾아간다.

Prepaging

한 page가 fault나면 그 주변 page들도 fault난 것처럼 행동

Page Pinning

0개의 댓글