티스토리 뷰
### Thrashing 줄이는 방법 ###
< Local replacement to solve thrashing >
: 한 process가 thrashing을 시작하면 다른 process의 frame을 훔칠 수 없으며 후자가 thrash된다.
=> thrashing이 발생하지 않는 process 처리 성능까지 영향을 끼치기 때문에 완벽한 방법은 아니다.
==>> 근본적으로 thrashing처리하기 위해서는 각 process가 요구하는 frame의 minimum number을 보장하는 것이 최선이다. (범위를 수정하게 해주는 model중 하나가 locality model)
: process가 thrashing하는 경우 대부분 paging device의 대기열에 있는다.
< Locality model >
: process가 처리가 될때 memory접근 요청이 발생하는 데 접근을 요청하는 memory위치는 패턴을 가지고 있다.
=> 특정 영역에서의 memory address가 집중적으로 접근 요청이 된다.
(process가 일을 할때는 일정한 영역(address)을 사용한다.)
(:thrashing을 방지하기 위해 os는 필요한만큼 많은 frame을 process에 제공해야 한다.
: locality model states은 process가 실행될 때 locality에서 locality로 이동함을 나타낸다.
: locality는 함께 사용되는 일련의 page이다.)
(시간이 지남에 따라 page number의 경향을 파악할 수 있다)
< Working-set model (작업 집합) >
: thrashing을 방지 할 수 있다. (간접적)
: locality model을 사용하기 위한 컨셉중 하나
=> locality에 속하는 page영역이 어떻게 되는지 확인하는 것(시간 기반)
: working-set - delta 시간동안 접근 요청을 한 page number의 집합
: 정확한 delta 크기가 중요하다
(delta 크기 너무 작을 시: 충분한 page 접근 list를 얻지 못한다(locality 도출X))
(delta 크기 너무 클 시: 지나치게 많은 frame할당 받는다(여러개의 locality가 도출) => 의미 있는 locality 도출 어렵 다)
==> D = ∑ WSSi
(WSSi: 요구하는 frame개수, D: 전체 process가 요구하는 frame개수)
(page fault 급격히 증가하는 부분: 하나의 page number을 얻지 못한 것, 새로운 routine(process의 일)시작 부분)
(밑 자갈자갈한 부분: working-set에 대한 page가 전부 frame에 적재된 시점)
< Page-fault frequency >
: thrashing을 의도적으로 수행한다.
: page-fault rate를 직접 모니터링 하는 것
(원하는 page-fault rate에서 상한 및 하한을 설정한다.)
(page 단위 뿐만 아니라 process단위로도 진행 할 수 있다.)
'운영체제 > 이론' 카테고리의 다른 글
(77) HDD Scheduling (0) | 2020.10.11 |
---|---|
(76) Mass Storage Structure (0) | 2020.10.11 |
(74) Thrashing (0) | 2020.10.10 |
(73) Replacement (0) | 2020.10.10 |
(72) frame allocation algorithm (0) | 2020.10.10 |