세그먼테이션 기법
* 가상기억장치에 보관된 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 방법
* 논리적인 크기로 나눈 단위를 세그먼트라 하며 각 세그먼트는 고유한 이름과 크기를 갖는다
* 각 세그먼트는 다른 세그먼트에게 할당된 영역을 침범할 수 없으며, 이를 위해 기억장치 보호키 (storage protection key)를 사용한다
* 프로그램이 여러 개의 분리된 주기억장치 블록을 차지할 수 있도록 하되 각 블록은 같은 크기일 필요는 없으나 연속된 기억장소로 구성되어야 한다
* 세그먼트 기법의 위치지정 방법은 first-fit, best-fit, worst-fit 방법과 동일하다
- 실행 프로세스가 가상기억장소의 주소를 V=(s,d)로 참조한다
- 세그먼트 사상기법은 우선 세그먼트 사상테이블에서 세그먼트 s를 찾고 실기억장치의 s'위치에서 시작을 결정
- 가상기억주소 V=(s,d)와 사상하는 실기억장치 주소는 s'와 변위 d와 더해져서 실제 주소 r을 생성
1. 세그먼트 기법에서의 엑세스 제어
각 프로세스에게 세그먼트를 엑세스할 권한을 부여하거나 엑세스를 하지 못하도록 권한을 제한하는 것을 의미
1.1 종류
- 읽기 (Read)
- 세그먼트에 대해 판독할 수 있는 권한을 부여
- 기호 R로 표시
- 쓰기 (Write)
- 세그먼트를 수정할 수 있는 권한을 부여
- 기호 W로 표시
- 실행 (Excute)
- 세그먼트를 실행할 수 있는 권한을 부여
- 기호 E로 표시
- 추가 (Append)
- 세그먼트 끝에 정보를 추가할수 있는 권한을 주는 것
- 기호 A로 표시
엑세스 유형 | 기호 | 기능 |
---|---|---|
Read | R | 읽을 수 있는 권한 |
Write | W | 수정 할 수 있는 권한 |
Excute | E | 실행 할 수 있는 권한 |
Append | A | (끝에)추가 할 수 있는 권한 |
2. 직접사상에 의한 세그먼테이션 기법
고속 캐시 기억장치에 전체 세그먼트 사상표를 기억시키고 직접사상을 하는 세그먼트 주소 변환기법이다
세그먼트 존재 비트 | 보조기억장치 주소 | 세그먼트 길이 | 보호 비트 | 주기억장치 세그먼트 시작주소 |
---|---|---|---|---|
i | a | l | RWEA | s' |
값 | 의미 | 오류발생 시기 및 종류 |
---|---|---|
i | 0: 주기억장치 내에 없을 때, 1: 주기억장치 내에 있을 때 | i=0일때, 세그먼트 부재(fault) |
a | 세그먼트가 주기억장치 내에 없을 때 보조기억장치로부터 검색되어야 할 주소 | i=0일때 (세그먼트 부재 일때) 운영체제는 제어권을 받아서 주소 a에서 참조된 세그먼트를 주 기억장치로 옮김 |
l | 세그먼트의 총 길이. 변위 d와 비교하여 그 세그먼트의 범위 내에 있는지 검사 | d > l일 때 세그먼트 오버플로우 |
R W E A | 세그먼트 엑세스 제어 | 보호 비트를 조사하여 허락되지 않을 때, 세그먼트 보호 예외 |
s' | 세그먼트가 주기억장치 내에 있을 때, 세그먼트가 시작되는 주기억장치의 주소 | 주기억장치에서 곧 바로 세그먼트의 위치를 찾을 수 있음 |
'cs' 카테고리의 다른 글
OS - 페이지 호출기법 (0) | 2022.05.13 |
---|---|
OS - 페이징 / 세그먼테이션 혼용기법 (0) | 2022.05.12 |
OS - 페이징 기법 (0) | 2022.05.11 |
OS - 블록사상 (0) | 2022.05.10 |
OS - 가상기억장치 (0) | 2022.05.10 |