기어가더라도 제대로

[운영체제-김덕수 교수님] 가상 메모리(3/5) - 페이징 시스템의 메모리 관리 본문

CS/운영체제

[운영체제-김덕수 교수님] 가상 메모리(3/5) - 페이징 시스템의 메모리 관리

Damagucci-juice 2022. 8. 12. 15:36
  • Page와 같은 크기로 미리 분할 하려 관리/ 사용
    • Page frame
    • FPM 기법과 유사
  • Frame table
    • Page frame 당 하나의 entry
    • 구성
      • Allocated / available field
      • PID field
      • Link field : For free list(사용 가능한 fp들을 연결)
        • 링크드 리스트 처럼 열결되어 있음
        • Header 가 AV임
      • AV: Free list header(free list의 시작점)

‏‏‎ ‎

Page Sharing

  • 여러 프로세스가 특정 page를 공유 가능
    • Non-continuous allocation

[운영체제-김덕수 교수님] 가상 메모리(3/5) - 페이징 시스템의 메모리 관리 image

  • 공유 가능 page 의 종류
    • Procedure pages(function)
      • pure code(reenter code)
    • Data page(value)
      • read-only data
      • read-write data
        • 병행성(concurrency) 제어 기법 관리하에서만 가능

[운영체제-김덕수 교수님] 가상 메모리(3/5) - 페이징 시스템의 메모리 관리 image

Data Sharing

  • 데이터를 공유한다면, PMT에서 Page Frame 을 같은 것을 접근하게 설정하면 됨

[운영체제-김덕수 교수님] 가상 메모리(3/5) - 페이징 시스템의 메모리 관리 image

Procedure Page Sharing(Problem)

‏‏‎ ‎

[운영체제-김덕수 교수님] 가상 메모리(3/5) - 페이징 시스템의 메모리 관리 image

  • Procedure Page Sharing(문제)
    • P1 의 PMT 에서 K1 이 있는데, 이 K1 이 가르키는 위치는 K1, d 이다
    • P2 의 PMT 에서 K2가 있는데, 이 K2 가 가르키는 위치는 K2, d 이다.
    • 문제는 PMT 에서 각각 K1, K2 가 있을 수 있다는 말이다.
  • 메인 메모리안에 특정 브랜치에서는 같은 메모리 공간에 대해서 프로세스마다 서로 다른 Page Number 로 요청을 하고 있다.

‏‏‎ ‎

  • Procedure Page Sharing(해결책)
    • 프로세스들이 shared page 에 대한 정보를 PMT 의 같은 entry에 저장하도록 함
      • 공유되는 Page frame 에 대해서는 K1 에서도 K 라고 저장하고, K2 에서도 K라고 저장하면 문제가 일어날 여지가 없다.

‏‏‎ ‎

Page 를 공유한다는 것, 보안문제가 발생한다는 것

  • Protection bit 사용

[운영체제-김덕수 교수님] 가상 메모리(3/5) - 페이징 시스템의 메모리 관리 image

요약

  • 프로그램을 고정된 크기의 block 으로 분할(page) / 메모리를 block size 로 미리 분할(page frame)
    • 외부 단편화 문제 없음
    • 메모리 통합 / 압축 불필요
    • 프로그램의 논리적 구조 고려하지 않음
      • Page sharing / protection 이 복잡
  • 필요한 Page 만 page frame 에 적재하여 사용
    • 메모리의 효율적 활용
  • Page mapping overhead
    • 메모리 공간 및 추가적인 메모리 접근이 필요
    • 전용 HW 활용으로 해결 가능
      • 하드웨어 비용 증가(TLB, Hybrid 방식으로 극복 가능)
Comments