Swaping
process 전체를 빼는 것
Demand Paging
- page 단위로 저장 장치를 활용하는 것
- 과정
- page replacment policy를 통해 victim page를 뽑는다.
- main memory로부터 뽑은 것을 swap file에 저장한다.
- 뺀 page에 대해서는 더이상 memory에 있는 것이 아니라 swap file에 있다는 것(swap entry)을 PTE에 적는다.
- 넣어준다.
- 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를 공유한다.
![](https://velog.velcdn.com/images%2Fjieuni%2Fpost%2F40064da6-7807-4c0c-a306-ae704c5aaad0%2Fimage.png)
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
- Global Replacement
어떤 프로세스가 physical 메모리가 부족해져 누군가 victim을 뽑아야 하는데 전체에서 가장 안쓰는 애를 뽑을 때
- Local Page Replacement
Thrashing
Recently used memory(hot)가 실제 사용하는 memory 보다 크면 page를 계속 replacment해야한다. Physical memory가 working set보다 작게되면 성능이 엄청 나빠진다.
![](https://velog.velcdn.com/images%2Fjieuni%2Fpost%2F16f60284-fcc3-419c-9b51-79a0687314ac%2Fimage.png)
solution
Kill processes, buy more memory
Buddy System Allocator
- To control/reduce external fragmentation of the memory
- Buddy system이란 내가 있고 나의 버디가 있으면 우리가 되고 그런식으로 recursive하게 관리하는 것
![](https://velog.velcdn.com/images%2Fjieuni%2Fpost%2Fc3bff3bf-7cd5-4624-8550-5453fa1ce2ab%2Fimage.png)
- free 할때는 버디를 찾아간다.
![](https://velog.velcdn.com/images%2Fjieuni%2Fpost%2Ff24ce6e4-3bf0-4112-bbd4-4195685485ec%2Fimage.png)
Prepaging
한 page가 fault나면 그 주변 page들도 fault난 것처럼 행동
Page Pinning