OS - 가상 메모리 (Virtual Storage)

sunkeydokey·2022년 12월 27일
0

운영체제

목록 보기
8/9
post-custom-banner

HPC Lab. KOREATECH 채널 OS 강의를 듣고 정리

배우게 된 것

  • 가상 메모리
  • Non-continuous allocation
  • Non-continuous allocation의 Address Mapping
  • Non-continuous allocation 기법들

가상 메모리 (Virtual Storage)

  • Non-continuous allocation (비연속 할당)
  • 프로그램을 여러 개의 Block으로 분할하고 실행 시에 필요한 Block들만 메모리에 적재하는 것
  • 나머지 Block들은 Swap device에 둔다.

Non-continuous allocation의 Address Mapping

Address Mapping

  • 가상주소 (Virtual address) : 논리 주소, 연속된 메모리 할당을 가정한 주소
  • 실제 주소 (Real address) : 실제 메모리에 적재된 주소
  • Address Mapping : 가상 주소를 실제 주소로 바꿔준다.

Block Mapping

Block Mapping1

Block Mapping2

  • Address mapping 정보를 관리하는 Block map table(BMT)이 있다.
  • 커널 공간에서 프로세스마다 하나의 BMT를 가지고 있다.

Paging System

Paging System

Paging System

  • 프로그램을 같은 크기의 블럭(Pages)으로 분할한다.
  • Page frame : 메모리의 분할 영역, Page와 같은 크기로 분할된다.
  • 논리적 분할이 아닌 크기에 따른 분할이다.
  • 간단하고 효율적이다.
  • 외부 단편화가 발생하지 않는다. (내부 단편화는 발생할 수 있다.)

Paging System의 Address Mapping

Paging System의 Address Mapping

  • Virtual address : v = (p : page number, d : displacement)
  • Address mapping : PMT (Page Map Table) 사용
  • Address mapping mechanism
    - Direct mapping
    - Associative mapping
    - Hybrid

Direct mapping

Direct mapping

  • Block mapping과 유사하다.
  • 가정
    - PMT를 커널 안에 저장
    - PMT entry size = entrySize
    - Page size = pageSize
  • 문제점 : 메모리 접근 횟수가 2배이다. PMT를 위한 메모리 공간이 필요하다.
  • 해결방안 : Associative mapping, PMT 전용의 기억장치 사용 등

Associative mapping

Associative mapping

  • TLB(Translation Look-aside Buffer)에 PMT 적재
  • PMT를 병렬적으로 탐색한다.
  • 비용이 낮고 속도가 빠르다.
  • 비싼 HW (큰 PMT는 다루기 어렵다.)

Hybrid

Hybrid

  • Direct mapping과 Associative mapping을 혼합해 HW 비용을 줄이고 Associative mapping의 장점을 활용
  • 작은 TLB를 사용한다.

Paging System의 메모리 관리

메모리 관리

  • Page와 같은 크기로 미리 분할 하여 관리/사용 (Page Frame)
  • Frame table : Page Frame당 하나의 entry

Page Sharing

Page Sharing

  • 여러 프로세스가 특정 Page를 공유할 수 있다.
  • 공유 가능한 Page
    - Procedure pages
    - (병행성 제어 기법 관리하에서) Data page

Summary

Summary

Segmentation system

Segmentation system

Segmentation system

  • 프로그램을 논리적 block으로 분할 (segment)
  • Block의 크기가 다르기 때문에 메모리를 미리 분할하지 않는다.
  • 공유와 보호가 용이하다.
  • Address mapping과 메모리 관리 비용이 크다.
  • 내부 단편화가 발생하지 않는다. (외부 단편화는 발생할 수 있다.)

Segmentation system의 Address mapping

Segmentation system의 Address mapping

  • Virtual address : v = (s : segment number, d : displacement)
  • Segment Map Table (SMT)
  • Address mapping mechanism : Paging System과 유사하다.

Direct mapping

Direct mapping

Segmentation system의 메모리 관리

  • VPM과 유사하다. (Segment를 적재할 때 크기에 맞추어 메모리를 분할하고 적재한다.)

공유와 보호

Segmentation system에서는 프로그램이 논리적으로 분할되어 있어 공유 및 보호가 용이하다.

Summary

Summary

Paging vs Segmentation

Paging system

  • 단순함
  • 낮은 비용
  • 비논리적 분할
  • 복잡한 Page sharing Mechanism

Segmentation System

  • 높은 관리 비용
  • 논리적 분할
  • 간단하고 쉬운 분할 Mechanism

Hybrid Paging/Segmentation

Hybrid Paging/Segmentation

Hybrid system

  • Paging과 Segmentation의 장점 결합
  • 논리 단위의 Segment로 프로그램을 분할한다.
  • 각 Segment를 고정된 크기의 Page로 분할한다.
  • 메모리에는 Page 단위로 적재된다.

Hybrid system의 Address mapping

Hybrid system의 Address mapping

  • Virtual address : v = (s : segment number, p : page number, d : displacement)
  • SMT와 PMT를 모두 사용한다.
  • 메모리 관리 방식은 FPM과 유사하다.

Direct mapping

Direct mapping

Summary

Summary

profile
내일은 더 잘하기
post-custom-banner

0개의 댓글