벨레이디의 모순에 대해 알기 위해서는 먼저 페이징에 대한 개념이 필요하다.
페이징
프로세스가 사용하는 메모리 공간을 잘게 나누어 비연속적으로 실제 메모리에 할당하는 메모리 관리 기법으로, 이때 잘게 나눈 것의 단위가 페이지이다.
논리 주소 공간과 물리 주소 공간의 분리 : 주소의 동적 재배치 허용
전용 하드웨어 MMU : 논리 주소와 물리 주소의 변환
페이징의 장점
- 구현 용이
- 높은 이식성 및 융통성
- 메모리 활용 우수
- 오버헤드 감소
하나의 프로그램이 수행될 때, 한 번에 메모리에 올리지 않고 페이지 단위로 쪼개서 올리기 때문에 저장장치에서 일부만 불러와 사용 가능하다. ➡️ 여러 개의 프로그램을 메모리에 올릴 수 있다. ➡️ 메모리 용량보다 프로그램의 크기가 큰 경우에도 수행이 가능하다. ➡️ 프로세서의 가용률이 높아진다.
🙋🏻♀️ 그러면 페이지 프레임이 많을수록 가질 수 있는 페이지의 수가 늘어나기 때문에 페이지 폴트 발생이 줄어들겠네요?
보통은 이렇게 예상하는 게 일반적이다. 하지만 예상과 다르게 페이지 폴트가 더 발생할 수 있다.
이것을 벨레이디의 모순이라고 하며, FIFO 페이지 교체 알고리즘을 사용할 때 발생한다.
먼저 페이지 프레임이 3개일 때 발생하는 페이지 폴트이다.
총 9번의 페이지 폴트가 발생한다.
다음으로는 프레임이 4개일 때 발생하는 페이지 폴트이다.
총 10번의 페이지 폴트가 발생한다.
머릿속으로만 생각했을 때는 당연히 페이지 프레임이 늘어남에 따라 페이지 폴트가 줄어들겠다고 생각할 수 있지만, FIFO 교체 알고리즘에서는 페이지 프레임과 페이지 폴트가 반비례 관계라고 확신할 수 없다. 그러나 다른 교체 알고리즘에서는 반비례 관계가 맞기 때문에 FIFO 교체 알고리즘을 사용할 때 주의하면 된다.
참고
'CS > 운영체제' 카테고리의 다른 글
[OS] 멀티레벨 피드백 큐 (MLFQ) (0) | 2023.11.27 |
---|---|
[OS] 스레드의 상태 변화와 구현 (0) | 2023.11.20 |
[OS] 프로세스의 상태 변화와 관리 (0) | 2023.11.20 |
[OS] 운영체제의 서비스와 구조 (0) | 2023.11.05 |
[OS] 운영체제의 유형 (0) | 2023.11.05 |