기어가더라도 제대로

[운영체제-김덕수 교수님] 가상 메모리(4/5) - 세그멘테이션 시스템 본문

CS/운영체제

[운영체제-김덕수 교수님] 가상 메모리(4/5) - 세그멘테이션 시스템

Damagucci-juice 2022. 8. 12. 15:39
  • Paging system
    • 물리적으로 프레임을 나누는 시스템
  • Segmentation system
    • 논리적으로 block을 나누는 시스템
  • Hybrid system

‏‏‎ ‎

‏‏‎ ‎

Segmentation System

  • 프로그램을 논리적 block 으로 분할 (segment)
    • block 의 크기가 서로 다를 수 있음
    • 예) stack, head, main procedure, shared lib, Etc.
  • 특징
    • 메모리를 미리 분할 하지 않음
      • VPM과 유사
    • Segment sharing/ protection 이 용이함
    • Address mapping 및 메모리 관리의 overhead가 큼
    • No internal fragmentation
      • External fragmentation 발생 가능

[운영체제-김덕수 교수님] 가상 메모리(5/4) - 세그멘테이션 시스템 image

  • 논리적인 분할
    • segment-1,2,3 의 크기는 각각 다를 수 있다.
  • Address mapping
    • Virtual address: v = (s, d)
      • s: segment number
      • d: displacement in a segment
    • Segment Map Table(SMT)
    • Address mapping mechanism
      • Paging system 과 유사

[운영체제-김덕수 교수님] 가상 메모리(5/4) - 세그멘테이션 시스템 image

‏‏‎ ‎

  • Segment length 를 기록하는 열
  • 권한을 세그먼트마다 따로 적어 놓는다.

‏‏‎ ‎

[운영체제-김덕수 교수님] 가상 메모리(5/4) - 세그멘테이션 시스템 image

  • main memory 에 a(s) 를 찾아서 들어가는 것까지는 유사한데, length 의 개념이 추가된 것이니까 새롭게 이해해야할 부분이 있다.
  • a(s) + d 의 값이 실제로 사용할 메모리의 주소가 되는 것이고,
  • L(s) 는 해당 세그먼트의 크기를 나타낸다.

세그먼트 시스템에서 실제 메모리 주소 찾는 순서

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 > l(s)),
        segment overflow exception 처리 모듈을 호출
    3. 허가되지 않은 연산일 경우(protection bit field 검사),
        segment protection exception 처리 모듈을 호출
4. 실제 주소 r 계산(r = a(s) + d)
5. r 로 메모리에 접근 

‏‏‎ ‎

  • Memory management
    • VPM 과 유사
      • segment 적재 시, 크기에 맞추어 분할 후 적재

[운영체제-김덕수 교수님] 가상 메모리(5/4) - 세그멘테이션 시스템 image

  • Segment sharing / protection
    • 논리적으로 분할되어 있어, 공유 및 보호가 용이함

[운영체제-김덕수 교수님] 가상 메모리(5/4) - 세그멘테이션 시스템 image

요약

  • 프로그램을 논리 단위로 분할(segment) / 메모리를 동적으로 분할
    • 내부 단편화 문제 없음
    • segment sharing / protection 이 용이함
    • Paging system 대비 관리 overhead 가 큼
  • 필요한 segment 만 메모리에 적재하여 사용
    • 메모리의 효율적 활용
  • Segment mapping overhead
    • 메모리 공간 및 추가적인 메모리 접근이 필요
    • 전용 HW 활용으로 해결 가능
    • Paging system 이 갖는 단점과 유사

‏‏‎ ‎

Paging vs. Segmentation

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

[운영체제-김덕수 교수님] 가상 메모리(5/4) - 세그멘테이션 시스템 image

이 둘을 합치는 "공학적 방법(퓨전)"을 도입하는 것이 필요해 보인다.

Comments