운영체제 9. 가상 메모리 (5) - Hybrid Paging-Segmentation System

728x90
반응형

출처 : https://www.youtube.com/watch?v=ctfTntZ-RBo&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=31

 

 

 

paging system은 overhead는 낮지만 sharing과 protection이 어렵다는 문제점이, Segmentation system은 sharing과 protection이 간단하고 쉽지만 overhead가 크다는 문제점이 있었다.

 

paging system과 segmentation system을 융합해서 장점들을 취합하는 방법을 찾고자 나온 솔루션이 Hybrid paging / segmentation system이다.

 

 

Hybrid Paging / Segmentation

 

  • Paging과 segmentation의 장점 결합
  • 프로그램(혹은 프로세스) 분할
    1. 논리 단위의 segment로 분할
    2. 각 segment를 고정된 크기의 page들로 분할
  • Page 단위로 메모리에 적재

 

 

user program(=process)를 논리적인 단위인 segment로 나누고, 이 segment를 고정된 크기의 page로 나눈다.

 

 

 

  • Hybrid Paging / Segmentation system의 Address mapping
    • Virtual address : v = (s, p, d)
      • s : segment number
      • p : page number
      • d : displacement(=offset) in a page
    • SMT와 PMT 모두 사용
      • 각 프로세스마다 하나의 SMT. 프로세스를 segment로 나누었기 때문
      • 각 segment마다 하나의 PMT. segment를 page로 나누었기 때문
    • Address mapping
      • Direct, associated 등
    • 메모리 관리
      • 실제로 메모리에 올라가는 단위는 page
      • FPM(Fixed Partition Multi-programming)과 유사

 

 

 

  • SMT in hybrid mechanism
    • 각 프로세스가 segment로 나누어지므로, 하나의 프로세스마다 하나의 SMT가 존재
    • 이전에 봤던 SMT와 2가지만 다름
      • residence bit가 없음. 메모리에 적재되는 것은 page이지 segment가 아니기 때문
      • PMT address가 존재. 해당 segment에 대한 PMT가 어디에 있는지 알기 위함

 

  • PMT for a segment k in hybrid mechanism
    • 각 segment가 page로 나누어지므로, 하나의 segment마다 하나의 PMT가 존재
    • page가 메모리에 적재되므로, residence bit가 존재

 

 

  • Address mapping tables
    • process 마다 SMT가 있다.
    • SMT에 PMT가 어디에있는지를 나타내는 PMT address 가 존재한다.
    • 각 segment 마다 하나의 PMT가 존재
    • PMT에는 해당 page가 메모리에 적재되었는지, 메모리에 적재되었다면 어느 page frame에 적재되었는지를 나타낸다.

 

 

  • Direct address mapping
    • virtual address는 segment number, page number, displacement 로 이루어진다.
    • segment의 PMT를 찾기 위해 해당 process의 SMT를 찾아간다.
    • SMT의 base address 에 segment number * SMTentrySize를 더하여 원하는 segment의 entry를 찾아가서 PMT address를 찾는다.
    • PMT address에 page number * PMTentrySize를 더하여 원하는 page의 entry를 찾아가서 page frame number를 찾는다.
    • page frame number * pageSize + d를 계산해서 real address를 찾는다.
    • memory access를 총 3번 한다.

 

 

  • Hybrid paging / Segmentation summary
    • 장점 
      • 논리적 분할(segment)와 고정 크기 분할(page)을 결합
        • page sharing / protection이 쉬움
        • 메모리 할당 / 관리 overhead가 작음. page frame 단위(일정한 크기)로 나누어서 사용하기 때문
        • external fragmentation이 발생하지 않음. (internal fragmentation은 발생 가능)
    • 단점
      • 전체 테이블의 수 증가
        • 메모리 소모가 큼
        • Address mapping 과정이 복잡
      • Direct mapping의 경우, 메모리 접근이 3배
        • 성능이 저하될 수 있음

 

 

 

728x90
반응형