세그멘 테이션
- 사용자 프로그램은 세그먼테이션 기법을 이용하여 프로그램과 그 데이터들이 여러 세그먼트로 나눔
- 하지만 프로세스를 물리적인 단위인 페이지 말고 논리적 내용 단위인 세그먼트로 자를 수 있는 세그먼테이션 방법이 있다.
- 세그멘테이션은 프로세스를 세그먼트의 집합으로 생각한다.
- 그래서 세그먼테이션은 물리적인 크기의 단위가 아닌 논리적 내용의 단위(의미가 같은)로 자르기 때문에 세그먼트들의 크기는 일반적으로 같지 않다.
- 세그먼테이션 번호와 오프셋 두개의 영역으로 구성
세그먼트 기반 주소 변환
- 가장 왼쪽의 n비트는 세그먼트 번호이고, 가장 오른쪽 m비트는 오프셋인 n+m비트로 이루어진 주소
- n= 4 , m=12 세그먼트 최대크기는 4096
주소변환 과정
- 논리주소의 왼쪽 n 비트를 세그먼트 번호로 추출
- 이 세그먼트 번호를 프로세스 세그먼트 테이블의 인덱스로 사용하여 세그먼트의 시작물리주소를 찾음
- 오른쪽 m 비트로 표현된 오프셋을 세그먼트 길이와 비교
- 오프셋이 그 길이보다 크거나 같다면 그 주소는 유효하지 않음
- 접근하고자하는 물리주소는 세그먼트의 시작 물리주소와 오프셋의 합임
보호와공유
세그먼테이션은 보호나 공유 정책을 구현하기에 적합함
지역성
쓰레싱
- 특정 블록이 사용되기 직전에 반출되면 곧바로 해당 블록을 반입
- 과도 발생시 블록 교체에 많은 시간을 소비
- 쓰레싱을 피하기 위해 OS는 최근 이력을 근거로 가까운 미래에 사용가능성이 적은 블록 추정
- 시간 구역성, 공간 구역성
- 프로세스 내에서 명령어와 데이터에 대한 참조는 군집을 이루는 경향
가상메모리 → PAGE FAULT → 쓰레싱 이여서 예측기법 LOCALITY
'Operating System' 카테고리의 다른 글
[Operating System] Thread (0) | 2023.01.01 |
---|---|
[Operating System] Page Replacement (0) | 2023.01.01 |
[Operating System] Paging Mechanism (0) | 2022.12.31 |
[Operating System] Address and Memory (0) | 2022.12.29 |
[Operating System] 공평한 스케줄러 (0) | 2022.12.28 |