티스토리 뷰

Virtual Storage Methods

  • Paging system
  • Segmentation system

  • Hybrid paging/segmentation system

Segmentation System

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

 

Segmentation System (Example)

  • 논리적 분할 이므로 크기가 다를 수 있다.

 

Address mapping

  • Virtual address: v = (s , d)
    • s : segment number
    • d : displacement in a segment
  • Segment Map Table (SMT)
  • Address mapping mechanism
    • Paging system과 유사

 

Segment Map Table

  • segment number : 세그먼트 번호
  • residence bit : 메모리 적재 유무
  • secondary storage address : 세그먼트가 저장된 위치
  • segment length : 세그먼트 길이( 크기가 다를 수 있기 때문 )
  • protection bits : 프로세스가 가지는 권한
  • segment address in memory : 세그먼트의 메모리 위치 

 

Address mapping (direct mapping)

  1. 프로세스의 SMT가 저장되어 있는 주소 b에 접근
  2. SMT에서 segment s의 entry 찾음
    •  s의 entry 위치 = b + s * entrySize
  3. 찾아진 Entry에 대해 다음 단계들을 순차적으로 실행
    1. 존재 비트가 0 인 경우,
      // missing segment fault
      swap deive로부터 해당 segment를 메모리로 적재
      SMT를 갱신
    2. 변위(d)가 segment 길이보다 큰 경우 (d > ls ),
      segment overflow exception 처리 모듈을 호출
    3. 허가되지 않은 연산일 경우 (protection bit field 검사),
      segment protection exception 처리 모듈을 호출
  4. 실제 주소 r 계산 (r = as + d)
  5. r로 메모리에 접근

 

Memory management

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

  • partition : 나누어진 메모리 영역의 번호
  • start address : 시작 주소
  • size : 크기
  • current process ID : 현재 사용중인 프로세스 ID
  • segment number : segment 번호 

 

Segment sharing/protection

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

Segmentation System

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

 

Paging vs Segmentation

Paging system Segmentation System 
• Simple 
• Low overhead 

• No logical concept for partitioning 
• Complex page sharing mechanism 
• High management overhead 

• Logical concept for partitioning 
• Simple and easy sharing mechanism

Hybrid Paging/Segmentation

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

 

Address mapping

  • Virtual address : v = (s, p, d)
    • s : segment number
    • p : page number
    • d : offset in a page
  • SMT와 PMT 모두 사용
    • 각 프로세스 마다 하나의 SMT
    • 각 segment마다 하나의 PMT
  • Address mapping
    • Direct, associated 등
  • 메모리 관리
    • FPM과 유사

 

SMT in hybrid mechanism

  • 각 프로세스 마다 하나의 SMT를 가진다.
  • 메모리에 올라가는 것은 page이므로 residence bit는 필요하지 않다.
  • PMT address : 각 세그먼트들의 PMT 주소

 

PMT for a segment k in hybrid mechanism

  • page가 메모리에 올라가므로 residence bit 가 있다.

 

Address mapping tables

  • 각 프로세스마다 SMT 존재
  • 각 세그먼트마다 PMT 존재

 

Direct (address) mapping

  1. 프로세스의 SMT가 저장되어 있는 주소 b에 접근
  2. SMT에서 segment s의 entry 찾음
    •  s의 entry 위치 = b + s * SMTentrySize
  3. 찾아진 entry의 PMT가 저장되어 있는 주소 bs에 접근
  4. PMT에서 page p의 entry 찾음
    • p의 entry 위치 = bs + p * PMTentrySize
  5. 찾아진 Entry에 대해 존재 비트 검사
    1. 존재 비트가 0 인 경우,(page fault)
      swap deive로부터 해당 page를 메모리로 적재 
      PMT를 갱신 3-2 단계 수행
    2. 존재 비트가 1 인 경우,
      해당 entry에서 page frame 번호 p`를 확인
  6. 실제 주소 r 계산 (r = p` * pageSize + d)
  7. r로 메모리에 접근

 

Hybrid Paging/Segmentation

  • 논리적 분할(segment)와 고정 크기 분할(page)을 결합
    • Page sharing/protection이 쉬움
    • 메모리 할당/관리 overhead가 작음
    • No external fragmentation
    • internal fragmentatioin 발생 가능
  • 전체 테이블의 수 증가
    • 메모리 소모가 큼
    • Address mapping 과정이 복잡
  • Direct mapping의 경우, 메모리 접근이 3배
    • 성능이 저하될 수 있음

 


강의

www.youtube.com/watch?v=Dprd7V842WY&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=30

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

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함