가상 메모리 관리(Segmentation)
Segmentation
- 고정으로 자르는 페이지의 개념을 동적인 상태로 변경
- 메모리에 올라갈 내용을 봐서 자른다.
세그먼트
- 논리적 단위가 되는 프로그램 모듈이나 자료구조
- 크기가 가변적
- 즉, 세그먼트(페이지)를 나누는 크기가 동적으로 바뀐다.
직접 사상
- 가상 주소 V = ( s, d ) -> CPU에서 만듦
- s = segment번호
- d = offset
- 메모리에는 연속으로 올라가야 함
- 페이지 테이블과 마찬가지로 세그먼트 테이블이 있음
- 존재 비트(Resident bit)
- 메모리에 올라가 있는지를 표시
- 가변 크기이기 때문에 조금 많다
- 0이면 메모리에 없음, 1이면 존재
- a = 보조 기억장치 주소
- l = 세그먼트 길이(offset의 길이)
- R,W,E,A = R읽기, W기록, E실행, A추가
공유 및 보호
- 공유
- 메모리 상의 크기가 세그먼트의 크기보다 작으면 해당 세그먼트는 메모리에 올라갈 수 없게 된다. 그로 인해서 내부 단편화가 생긴다.
세그먼트/페이징 혼용 기법
- 세그먼트로 자른다.
- 그 뒤에 큰 세그먼트를 페이지 단위로 자른다.
- V(주소) = ( s, p, d )
- s = 세그먼트 번호
- p = 페이지 번호
- d = offset
- S/T -> P/T -> M/M접근 순서
순서
1. PCB를 가상메모리에 올린다.
2. 우선 코드 세그먼트와 데이터 세그먼트로 나눈다.
3. 코드와 데이터 세그먼트를 다시 페이지로 나눈다.
'3학년 > 운영체제' 카테고리의 다른 글
Chapter4-5 (0) | 2019.07.23 |
---|---|
Chapter4-4 (0) | 2019.06.23 |
Chapter4-2 (0) | 2018.04.17 |
Chapter4-1 (0) | 2018.04.17 |
Chapter3 (0) | 2018.04.13 |