본문 바로가기
TIL (Today I Learned)/컴퓨터 시스템(CS)

[CS] 가상 메모리 Segmentation system #4

by 둥굴프 2022. 12. 2.
이 포스팅은 한국기술교육대학 김덕수 교수님의 강의를 참고하여 작성했습니다.

 

이전 포스팅에서는 Paging method의 공유와 보안에 대해서 다루며 해당 method에 대한 정리를 했다.

Paging method는 프로그램(프로세스)의 논리적 구조 고려하지 않아서 Page sharing/protection이 복잡해진다는 것을 확인했다.

이번 포스팅에서는 Segmentation system을 다뤄본다.

Paging system의 한계점을 어떻게 보안하는지에 대해 다루겠다.

 

#1 Segmentation system

프로그램(프로세스)을 논리적 block으로 분할(segment)

- Block의 크기가 서로 다를 수 있음

 

특징 :

- 메모리를 미리 분할 하지 않음 (VPM과 유사)

- Segment sharing/protection 용이 함

- Address mapping 및 메모리 관리의 overgead가 큼 (복잡하다)

- No internal fragmentatino (External fragmentation 발생 가능, 서로 다른 크기의 빈 공간 발생)

 

[OS] Lec 9. Virtual  Memory (4/5) 中

Address mapping

virtual address : v = (s , d)

- s : segment number

- d : displacement in a segment

Segment Map Table (SMT)

Address mapping mechanism

- Paging system과 유사

[OS] Lec 9. Virtual  Memory (4/5) 中

PMT와 다른것 :

segment length : 크기 기록

protection bits (R/W/X/A) : 함수, 데이터에 대한 프로세스가 가지는 권한

"paging system에서는 블록이 나뉘어 있을 수 있어서 관리가 복잡했다.

하지만 segment system에서는 논리적으로 메모리가 할당되어 관리에 용이하다."

 

 

Address mapping (direct mapping)

 

[OS] Lec 9. Virtual  Memory (4/5) 中

1. 프로세스의 SMT가 저장되어 있는 주소 b에 접근

2. SMT에서 segment s의 entry 찾음

- s의 entry 위치 = b + s * entrySize

3. 찾아진 Entry에 대해 다음 단계들을 순차적으로 실행

(1) 존재 비트가 0인 경우,

// missing segment fault

swap device로부터 해당 segment를 메모리로 적재

SMT를 갱신

(2) 변위(d)가 segment 길이보다 큰 경우 (d > ls),

segment overflow exception 처리 모듈을 호출

(3) 허가되지 않은 연산일 경우 (protection bit field 검사),

segment protection exception 처리 모듈을 호출

4. 실제 주소 r 계산 (r = as + d)

5. r로 메모리에 접근

 

#2 Memory management

VPM과 유사

- Segment 적재 시, 크기에 맞추어 분할 후 적재

[OS] Lec 9. Virtual  Memory (4/5) 中

Segment sharing/protection

- 논리적으로 분할되어 있어, 공유 및 보호가 용이함

 

[OS] Lec 9. Virtual  Memory (4/5) 中

#3 정리

 

1. 프로그램을 논리 단위로 분할 (segment)

/ 메모리를 동적으로 분할

- 내부 단편화 문제 없음

- Segment sharing/protection 용이

- Paging system 대비 관리 overhead 큼

유동적이다 > 관리에 어렵다.

2. 필요한 segment만 메모리에 적재하여 사용

- 메모리의 효율적 활용

3. Segment mapping overhead (Paging system과 유사)

- (SMT 저장을 위한) 메모리 공간및 추가적인 메모리 접근이 필요

- 전용 HW 활용으로 해결 가능

 

 

 

#4 Paging  vs Segmentation

 

Paging system Segmentation system
Simple High management overhead
Low overhead -
No logical concept for partitioning Logical concept for partitioning
Complex page sharing mechanism Simple and easy sharing mechanism

 

 

 

 

 

 

 

 

 

긴 글 읽어주셔서 감사드립니다.

22.12.02

댓글