출처 : KMOOC / 운영체제 / 이화여대 반효경 교수님
실제로 대부분의 OS는 Paging 기법을 사용.
이제부터는 Paging 기법을 사용한다고 가정.
1, 3, 4 페이지는 물리 메모리에 올라가 있지 않아서 i
6, 7 페이지는 사용하지 않는 주소라서 i
1번 페이지 요구했는데 i
page falut trap 걸리고 OS가 ISR에 따라 처리
1. 먼저 범위 밖의 주소거나 사용하지 않는 주소거나 이런 건 아닌지 확인
2. page frame 얻어온다
3. disk read. page table의 valid bit v로 변환.
4. 나중에 CPU 다시 얻으면 접근 가능
page fault는 오버헤드가 엄청 큰 작업
하지만 실제로는 page falult 거의 안일어남
Page Replacement
빈 페이지가 없을 때는 frame을 뺏어와야 새로운 page를 메모리에 올릴 수 있음
가급적 page-fault가 일어나지 않는 것이 좋음
Page Replacement Algorithm
이건 실제로는 불가능
대신 성능의 upper bound가 이거라는 건 알 수 있음
성능이 OPT랑 비슷하면 굉장한 알고리즘이라는 걸 알 수 있음
프레임 수를 늘렸는데 오히려 page fault가 많이 일어날 수 있음
FIFO는 가장 오래 전에 메모리에 올라온 걸 지우는 것!
LRU는 가장 오래 전에 참조된 걸 지우는 것!
'CS > 운영체제' 카테고리의 다른 글
Linker and Loader (0) | 2022.08.23 |
---|---|
가상메모리 (캐싱) (0) | 2022.05.24 |
메모리 관리 (0) | 2022.05.24 |
Deadlock (0) | 2022.05.24 |
[ETL] Multithreading (0) | 2022.05.22 |