[운영체제-양희재 교수님]27강 프레임 할당
프레임 할당(Allocation of Frames)
쓰레싱(Thrashing)
CPU utilization vs. Degree of multiprogramming(메모리에 올라간 프로세스 개수)
- 일반적으로 프로세스 개수 증가 ⇒ CPU 이용률 증가
- 일정 범위를 넘어선 프로세스 개수 증가 ⇒ CPU 이용률 감소
- 일정 범위를 넘어서면 프로세스 개수가 증가할수록 더 빈번하게 page in/out 필요
⇒ IO 시간 증가 ⇒ CPU utilization 감소- 이러한 현상을 Thrashing이라 한다.
쓰레싱 극복
- Global replacement보다는 local replacement 사용
- 프로세스 당 충분한, 적절한 수의 메모리(프레임) 할당
적절한 수의 프레임 할당 방법
정적 할당(static allocation)
- 균등 할당(Equal allocation)
- 모든 프로세스에 일정한 메모리를 나누어 할당
- 비례 할당(Proportional allocation)
- 프로세스 크기에 비례하도록 메모리를 할당
- 실제로 실행시킬 때의 상태를 고려하지 않고 크기만 기준으로 잡아 할당하므로 정적 할당은 현실적으로 잘 쓰이지 않는다.
동적 할당(dynamic allocation)
- Working set model
- 배경
- 이상) Locality를 포함할 수 있는 만큼만 할당
- 현실) 미래에 필요한 locality를 알 수 없기 때문에 불가능 ⇒ Working set model 사용
- Working set model: 과거를 통해 미래의 시점에 어떻게 프레임을 할당할지 결정
- Working set: 미래 예측을 위해 지켜보는 시간에 메모리에 올라가 있던 페이지
- Working set window: 미래 예측을 위해 사용할 과거 시간
- Woking set 크기만큼의 프레임을 할당
- 배경
- Page-Fault Frequency(PFF)
- Page fault 발생 비율의 상한선과 하한선을 둠
- 상한선 초과 프로세스 ⇒ 더 많은 프레임 할당
- 하한선 이하 프로세스 ⇒ 프레임 회수
페이지 크기(Page Size)
- 페이지 크기
- 일반적 크기는 4KB → 4MB로 점차 커지는 경향을 가짐
- 프로세스의 크기가 점차 커지는 경향을 가지기 때문
- 일반적 크기는 4KB → 4MB로 점차 커지는 경향을 가짐
- 페이지 크기 영향
- 페이지 크기가 작을수록 내부 단편화 감소
- 페이지 크기가 클수록 Page-in/out 시간 감소
- 한 번에 많은 데이터를 읽어와야 seek time 감소
- 페이지 크기가 크면 읽는 데 시간이 좀 더 걸리기는 하지만 무시할 정도
- 페이지 크기가 클수록 페이지 테이블 크기 감소
- 페이지 테이블 엔트리가 적을수록 더 저렴
- 페이지 크기가 작을수록 Memory resolution 증가
- 높은 memory resolution = 실제로 필요한 내용만 메모리에 존재
- 페이지 크기가 클수록 Page fault 발생 확률 감소
기술 동향
- 페이지 테이블
- 원래는 별도의 chip(TLB 캐시)으로 만듦
- 기술 발달에 따라 캐시 메모리는 CPU 안에 on-chip 형태로 넣는다.
- 따라서 TLB 역시 on-chip 내장
This post is licensed under CC BY 4.0 by the author.