프로세스가 원활하게 수행되기 위해서는 일정 수준이상(최소한)의 페이지 프레임 할당이 필요
최소한의 프레임을 할당 받지 못한 경우 -> 스레싱(thrashing)현상 발생
- 집중적으로 참조되는 페이지 부재율 상승 -> CPU 이용률 급격히 감소
스레싱이 발생하는 시나리오
- CPU 이용률이 낮아서 준비 큐가 비는 경우가 발생
- (의미) 메모리에 올라와 있는 프로세스의 수가 너무 적어
모든 프로세스가 I/O 작업을 함으로써 준비 큐가 비는 현상이 발생 - CPU의 이용률이 낮다 = 일을 안한다
-> 운영체제가 메모리에 올라가는 프로세스의 수가 적다고 판단
-> 메모리에 프로세스를 추가
-> 동시에 올라가 있는 프로세스의 수(multi-programing Degree: MPD)가 증가
-> MPD가 과도하게 많아지면
-> 각 프로세스가 최소한의 프레임을 할당받지 못함
-> 페이지 부재가 발생
-> 디스크 I/O 수행
-> 문맥교환을 통해 다른 프로세스에게 CPU 이양
-> 다른 프로세스도 최소한의 프레임을 할당 받지 못함
-> 페이지 부재
-> 디스크 I/O 수행
-> 문맥교환을 통해 다른 프로세스에게 CPU 이양
이런 식으로 준비 큐에 있는 프로세스가 CPU를 할당 받아도 페이지 부재처리하기에 바빠짐
이 때문에 CPU의 이용률이 낮아짐
- (의미) 메모리에 올라와 있는 프로세스의 수가 너무 적어
MPD를 조절하면서 CPU 이용률을 높이는 방법
1) 워킹셋 알고리즘 (working-set algorithm)
- 워킹셋 = 프로세스가 일정 시간동안 원활히 수행되기 위해 한꺼번에 메모리에 올라와있어야 하는 페이지들의 집합
- 워킹셋이 메모리에 올라갈 수 있는 경우에만 그 프로세스에 메모리 할당
- 불가능한 경우는 디스크로 스왑아웃
- 한꺼번에 메모리에 올라가야 할 페이지들의 집합을 결정하는 방법
- 워킹셋 윈도우(△) 사용
- 페이지가 참조된 시점 부터 △ 시간 동안은 메모리에 유지하고, 그 시간이 지나면 메모리에서 지움
- △ 의 크기를 잘 결정하는 것이 중요
- 너무 작으면 - 지역성 집합을 모두 수용 못할 경우 발생
- 너무 크면 - MPD가 감소해 CPU의 이용률 낮아지는 경우 발생
- 워킹셋 윈도우(△) 사용
- 메모리 내에 있는 모든 프로세스에 프레임을 다 할당한 후 프레임이 남으면?
- 스왑아웃 되었던 프로세스에게 프레임 할당
2) 페이지 부재 빈도 알고리즘 (page-fault frequency scheme)
- 페이지 부재율을 주기적으로 조사하고 이에 따라 각 프로세스에 할당할 메모리의 양을 동적으로 조절
- 설정한 상한 값 이상 -> 해당 프로세스에 프레임을 추가로 할당
- 설정한 하한 값 이하 -> 해당 프로세스에 필요이상으로 프레임이 할당 된것으로 간주하여 할당된 프레임의 수 줄임
- 메모리 내에 있는 모든 프로세스에 프레임을 다 할당한 후 프레임이 남으면?
- 스왑아웃 되었던 프로세스에게 프레임 할당
'책 > 운영체제와 정보기술의 원리' 카테고리의 다른 글
9장 2.디스크 스케줄링 (0) | 2023.12.26 |
---|---|
9장 디스크 관리 1.디스크의 구조 (1) | 2023.12.26 |
8장 4. 전역교체와 지역교체 (0) | 2023.12.25 |
8장 페이지 프레임의 할당 (0) | 2023.12.25 |
8장 2 페이지 교체 (0) | 2023.12.24 |