목차
- 1. 요구 페이징
- 2. 페이지 교체 알고리즘
- 3. 스레싱과 프레임 할당
- 4. 프레임 관련 이슈
* 가져오기 정책 - 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정하는 정책
* 배치 정책 - 가져온 프로세스를 어느 위치에 올려놓을지 결정하는 정책
* 재배치 정책 - 메모리가 꽉 찼을때 메모리 내에 있는 어떤 프로세스를 내보낼지 결정하는 정책
1. 요구 페이징
- 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정할때 가져오기 정책은 일반적으로 사용하는 방법인데,
이를 요구 페이징 이라 한다. - (현대 운영체제는 요구 페이징을 기본으로 채택해서 사용중 ).
( 필요한 모듈만 메모리에 올려 실행하고 나머지 모듈은 필요하다고 판단될 때 메모리로 불러온다. )
장점 : 메모리 절약 ,메모리 효율적 관리, 프로세스 응답속도 향상
1.1 페이지 테이블 엔트리의 구조
* PTE : 페이지 테이블의 한 행
- PTE 에는 페이지 번호, 플래그 비트, 프레임 번호 등 추가적인 정보들이 더 담겨 있다.
- 플래그 비트 : 접근비트, 변경비트, 유효비트, 읽기비트, 쓰기 비트, 실행 비트 등을 모아놓은 플래그 비트
접근비트 : 페이지가 메모리에 올라온 후 사용한 적이 있는지 알려주는 비트
변경비트 : 페이지가 메모리에 올라온 후 데이터의 변경이 있었는지 알려주는 비트
유효비트 : 페이지가 실제 메모리에 있는지 나타내는 비트
읽기,쓰기, 실행 비트 : 페이지에 대한 읽기 , 쓰기 , 실행 권한을 나타내는 비트 - 프레임 번호 : 가상 주소의 해당 페이지가 어느 프레임에 있는지 알려주는 정보
1.2 페이지의 부재
- 프로세스가 페이지를 요청 했을 때, 페이지가 메모리에 없는 상황을 페이지 부재라 한다.
(페이지 부재 발생시, 프로세스가 해당 페이지를 사용 할수 있도록 스왑 영역에서 물리 메모리로 옮기는 작업이 필요)
- 유효 비트 - 페이지 테이블에 페이지가 물리메모리에 있는지, 스왑 영역에 있는지 표시하기 위한 비트
( 유효비트가 0 일경우, 페이지가 물리메모리에 존재 / 1일경우 페이지가 스왑 영역에 존재 )
1.3 지역성
- 페이지 교체 알고리즘이 쫓아낼 페이지를 찾을때는 지역성 을 바탕으로 함.
- 지역성 이론은 많은곳에서 사용된다. 캐시 같은경우 지역성 이론을 사용 하는 대표적인 장치이다.
- 페이지 교체 알고리즘 : 어떤 페이지를 스왑 영역으로 내보낼지 결정하는 알고리즘
ㄴ 공간의 지역성 : 현재 위치에서 가까운 데이터에 접근할 확률이 먼 거리에 있는 데이터에 접근할 확률보다 높다.
ㄴ 시간의 지역성 : 현재를 기준으로 가장 가까운 시간에 접근한 데이터가 더 먼 시간에 접근한 데이터보다 사용될 확률이 높다.
ㄴ 순차적 지역성 : 여러 작업이 순서대로 진행되는 경향이 있다는 의미.
2. 페이지 교체 알고리즘
- 스왑 영역으로 보낼 페이지를 결정하는 알고리즘으로써 메모리에서
앞으로 사용할 가능성이 적은 페이지를 대상 페이지로 선정하여 페이지 부재를 줄이고 시세틈의 성능을 향상시킨다.
종류 | 알고리즘 | 특징 |
간단한 알고리즘 | 무작위 | 무작위로 대상 페이지를 선정하여 스왑 영역으로 보냄. |
FIFO | 처음 메모리에 올라온 페이지를 스왑 영역으로 보냄. | |
이론적 알고리즘 | 최적 | 미래의 접근 패턴을 보고 대상 페이지를 선정하여 스왑 영역으로 보냄. |
최적 근접 알고리즘 | LRU | 시간적으로 멀리 떨어진 페이지를 스왑 영역으로 보냄. |
LFU | 사용 빈도가 적은 페이지를 스왑 영역으로 보냄. | |
NUR | 최근에 사용한적이 없는 페이지를 스왑영역으로 보냄. | |
FIFO 변형 | FIFO 알고리즘을 변형하여 성능 향상을 꾀함. |
- 무작위 : 가장 간단하게 구현할 수 있는 방식. 스왑 영역으로 쫓아낼 대상 페이지를 무작위로 선정함. (지역성 고려 X)
- FIFO : 시간상으로 메모리에 가장 먼저 들어온 페이지를 대상 페이지로 선정하여 스왑 영역으로 내보낸다.
- 최적 : 앞으로 사용하지 않을 페이지를 스왑 영역으로 옮김
( 메모리가 앞으로 사용할 페이지를 미리 살펴보고 , 페이지 교체 선정 시점부터 사용시점 까지 가장 멀리있는 페이지 대상 ) - LRU : '최근 최소 사용 페이지 교체 알고리즘' 이라 불림.
( 메모리에 올라온 후 가장 오랫동안 사용되지 않은 페이지가 대상 ) - LFU : '최소 빈도 사용 알고리즘' 이라 불림.
( 현재 프레임에 있는 페이지마다 그동안 사용된 횟수를 세어 가장 적은 페이지가 대상 ) - NUR : '최근 미사용 페이지 교체 알고리즘' 이라 불림.
( LRU, LFU과 동일하나, 불필요한 공간 낭비 문제를 해결한 알고리즘 ) - FIFO 변형 : FIFO 의 자주 사용하는 페이지를 고려하지 않는 단점을 개선한 알고리즘
- 2차 기회 : FIFO 와 동일하게 큐를 사용하지만, 특정 페이지에 접근하여 페이지 부재없이 성공할경우
해당 페이지를 큐의 맨 뒤로 이동하여 대상 페이지에서 제외시키는 방법 )
- 시계 : 2차 기회 알고리즘과 거의 일반적으로 유사하나 , 2차 기회는 큐를 사용하고 시계는 원형 큐를 사용하는게 큰 차이점.
3. 스레싱과 프레임 할당
3.1 스레싱
- 하드디스크의 입출력이 너무 많아져서 잦은 페이지 부재로 작업이 멈춘것 같은 상태를 스레싱이라 한다.
( 메모리에 꽉 찬후 새로운 프로그램을 메모리에 올리기 위해 입출력이 계속되어 프로그램이 정지 한것 같은 현상 )
* 멀티 프로그래밍 정도 : 동시에 실행하는 프로그램의 수 ( 너무 높으면 스레싱이 발생 )
3.2 스레싱과 프레임 할당
- 실행중인 여러 프로세스에 프레임을 얼마나 할당하느냐에 따라 시스템 성능이 달라짐
- 프레임을 할당하는 방식은 크게 정적 할당과, 동적 할당으로 구분됨
( 한 프로세스에 너무 적은 프레임을 할당하면 페이지 부재 가 발생하고, 너무 많은 프레임을 할당하면 메모리 낭비 )
- 정적 할당 : 프로세스 실행 초기에 프레임을 나누어 준 후 그 크기를 고정하는 방식. 크게 두가지가 있다.
- 균등 할당: 프로세스의 크기와 상관없이 사용 가능한 프레임을 모든 프로세스의 동일하게 할당 ( 페이지 부재 빈번, 메모리 낭비)
- 비례 할당 : 프로세스의 크기에 비례하여 프레임을 할당하는 방식 (프로세스가 실행되면서 필요로 하는 프레임 유동적 반영 불가) - 동적 할당 : 시시각각 변하는 요청을 수용하는 방식 . 크게 두가지가 있다.
- 작업집합 모델 : 지역성 이론을 바탕으로 함. 최근 일정 시간 동안 참조된 페이지들을 집합으로 만들고,
이 집합에 있는 페이지들을 물리 메모리에 유지해 프로세스의 실행을 돕는다.
- 페이지 부재 빈도 : 페이지 부재 횟수를 기록하여, 페이지 부재비율을 계산하는 방식.
페이지를 할당하거나, 회수하여 적정 페이지 할당량을 조절한다.
4. 프레임 관련 이슈
- 페이지 교체 알고리즘에 따라 페이지를 교체할땐 전역교체 방식, 혹은 지역 교체 방식을 적용 할수 있다.
- 전역 교체 : 전체 프레임을 대상으로 교체 알고리즘 적용
장점 : 물리 메모리의 모든 프레임을 대상으로 스왑 영역에 보낼 페이지를 찾음. - 지역 교체 : 현재 실행중인 프로세스의 프레임을 대상으로 교체 알고리즘 적용
장점: 자신에게 할당된 프레임의 전체 개수에 변화가 없기 때문에 페이지 교체가 다른 프로세스에 영향 X
단점: 자주 사용하는 페이지가 스왑 영역으로 옮겨져 시스템 효율이 떨어짐.
* 지역교체 방식보단 , 전역교체 방식이 더 효율적이다. ( 지역 교체 방식은 실행중인 프로세스의 성능을 떨어 뜨릴수 있다. )
'읽은 책 정리 > 쉽게 배우는 운영체제' 카테고리의 다른 글
[정리] 12 네트워크와 분산 시스템 (0) | 2022.11.12 |
---|---|
[정리] 11 파일시스템 (1) | 2022.11.03 |
[정리] 08 가상 메모리 기초 (0) | 2022.10.10 |
[정리] 07 물리 메모리 관리 (0) | 2022.09.26 |
[정리] 06 교착 상태 (1) | 2022.09.26 |