운영체제 (OS)

Operating System (CPA310) (37/46)

langsamUndStetig 2022. 5. 9. 00:17

오늘 배운 내용

- 가상 메모리 관리

-  HW components, SW components

- Page replacement schemes(FA-based schemes, VA-based schemes)

 

 

가상 메모리 관리의 목적

- 성능 향상을 위해서다. 그러나 각 사용자마다 추구하는 목표가 다르기 때문에 자신에게 맞는 기법을 사용해야 한다. 다양한 기법들을 비교하기 위한 코스트 모델이 있다.

 

강의를 들으면서 내가 생각한 알고리즘 선택시 중요한 요소

- locality가 매우 중요한 것 같다. 이것만 어느정도 신경 쓰면 대부분의 경우에서 최악을 면할 수 있다. 페이징과 관련한 알고리즘에서 locality를 신경쓰지 않는 경우를 보면, page fault가 상대적으로 많이 일어나고, 그에 따라 context-switching overhead가 일어난다.

 

비현실적 알고리즘이 존재하는 이유

- 몇몇 알고리즘들은 미래의 상황을 예측해야만 사용할 수 있다. 그렇기 때문에 효율은 매우 좋지만 현실에선 적용할 수 없고, 어떤 페이지가 나올지 결과를 알고 있거나 이론적인 상황인 경우에만 적용 가능하다. 그렇다면 이 알고리즘들은 왜 있는 걸까? 바로 다른 알고리즘과 효율은 비교하기 위해서다, 참조값으로 활용하면서 현재 사용하고 있는 알고리즘의 효율성을 확인 할 수 있다.

 

페이지의 크기는 작은 게 좋을까, 아니면 큰 게 좋을까?

- 각각의 장단이 있기에 확답을 내릴 수는 없다. 적당한게 제일 좋다고 할 수는 있다. 페이지 크기가 작을 경우엔 내부 단편화가 감소하고, Locality가 향상된다. 반면에 페이지 크기가 큰 경우엔 I/O 시간이 감소하고, 커널 오버헤드가 적으며, page fault가 감소한다.

 오늘날엔 과거에 비해 cpu가 엄청나게 발전하였고, 메모리 용량도 엄청나게 증가했다. 메모리 용량이 엄청나게 증가했기 때문에 페이지 크기가 과거처럼 작으면 page fault 비용이 높아진다. (이전 강의에선 메모리 크기가 커짐에 따라 프로그램의 크기도 커졌다는 정보를 얻었었다.)