가상 메모리 할당
쓰레싱
- 가상 메모리를 사용함에 따라 실제 접근을 하기 위해서는 실제 메모리 상에 올라와 있는 것이 좋다.
- 페이지 부제가 계속적으로 발생 하면 성능이 떨어진다.
- 이렇게 되면 페이지 교체에만 자원을 많이 소모하게 되는데 이런 상황을 쓰래싱이라 한다.
쓰래싱을 줄이는 법
- 멀티 프로그래밍을 줄이는 것
- 실행중인 프로세스를 인의적으로 빼는 것
- 할당된 페이지를 늘리거나 페이지 프로그램을 줄이는 것
구역성(Locality)
- 한글 프로그램을 쓸 때 에디팅을 하다 여러가지 작업을 할 때 해당 코드가 한 페이지에 들어가지 않는다고 가정을 한다. 그렇다면 다른 작업을 함께 묶어서 다른 페이지도 함께 올린다.
- 페이지 하나가 접근 되는 순간 함께 있는 페이지도 함께 메모리에 올리는 것
- 그 집합들을 작업 세트(Working Set)라고 부른다.
- 예측하기 힘듦(개발자 외에는)
작업 세트(Working Set)
- 프로세스에 의해 자주 참조되는 페이지 묶음
- 페이지 부제율이 줄어들게 된다.
- 페이지 부재가 자주 일어나면 작업 세트를 늘린다.
- 패이지 부재가 적으면 작업 세트를 줄인다.
- 정확한 예측은 어렵다.
- 페이지를 나열할 때 대략적인 시간으로 작업 세트를 대략적으로 둔다.
- 시간을 어떻게 맞추느냐 에 따라 다르다.
- 시간을 크게 잡으면 작업 세트가 커지고 작게 잡으면 작업세트도 작아진다.
주소공간(Address Space)
- 32비트 = 232
- 메모리에 접근하는 주소가 32비트 (=232 )
- 64비트라면 주소 표현은 64비트 (=264 )
- 32비트 시스템에서 Page의 크기가 4kb라면
- k = 210
- 4 * 210 B = 212 B
- P = 20비트 = 220 = 1MB
- 너무 커서 페이지를 둘로 나누어서 계층적으로 사용
- 이것을 계층형 이라 함
Hash
역 페이지 테이블
- 프로세스 전체에 하나의 페이지 테이블을 사용
- 메모리 만큼의 크기만 있으면 되기 때문에 찾기가 빠르다.
- 단점 : pid에 대한 p값이 없을 수 있기 때문에 가상 메모리에 접근을 한 뒤에 찾는다.
'3학년 > 운영체제' 카테고리의 다른 글
Chapter4-4 (0) | 2019.06.23 |
---|---|
Chapter4-3 (0) | 2019.06.23 |
Chapter4-2 (0) | 2018.04.17 |
Chapter4-1 (0) | 2018.04.17 |
Chapter3 (0) | 2018.04.13 |