귀염둥이의 메모

[OS] Memory Management (2) - Inverted Page Table, Shared Page, Segment, Paged Segmentation 본문

CS/운영체제

[OS] Memory Management (2) - Inverted Page Table, Shared Page, Segment, Paged Segmentation

겸둥이xz 2021. 8. 30. 21:09
반응형

Valid / Invalid Bit in a Page Table

page table 엔트리에는 사용되지 않는 부분도 만들어져야 한다

6, 7번의 페이지는 없지만 주소체계에서는 6, 7번 테이블 페이지는 만들어지고 invalid라고 표시

 

 

 

Memory Protection

: Page table의 각 entry 마다 아래의 bit을 둔다

 

  • Protection bit
    • page에 대한 접근 권한(read/write/read-only)
  • Valid-invalid bit
    • valid는 해당 주소의 frame에 그 프로세스를 구성하는 유효한 내용이 있음을 뜻한다 (접근 허용)
    • invalid는 해당 주소의 frame에 유효한 내용이 없음을 뜻함 (접근 불허)

 

 

Inverted Page Table

Page table이 매우 큰 이유

  • 모든 process는 logical address에 대응하는 모든 page에 대해 page table entry가 존재
  • 대응하는 page가 메모리에 있든 아니든 간에 page table에는 entry로 존재한다

Inverted page talbe

  • page frame 하나당 page table에 하나의 entry를 둔다 (system-wide)
  • 각 page table entry는 각각의 물리적 메모리의 page frame이 담고 있는 내용 표시(pid, 해당 process의 logical address)
  • 단점 : 테이블 전체를 탐색해야 함
  • 해결법 : associative register 사용 (병렬 탐색) - expensive

 

 

Shared Page

Shared code

  • Re-entrant Code (=Pure code)
  • read-only로 프로세스 간에 하나의 code 메모리에 올림 (e.g text editors, compilers..)
  • Shared code는 프로세스의 logical address space에서 동일한 위치 있어야

Private code and data

  • 프로세스들은 독자적으로 메모리에 올림
  • Private data는 logical address space의 아무 곳에 와도 무방

 

Segmentation

프로그램은 의미 단위인 여러 개의 segment 구성

  • 작게는 프로그램을 구성하는 함수 하나하나를 세그먼트로 정의
  • 크게는 프로그램 전체를 하나의 세그먼트로 정의 가능
  • 일반적으로는 code, data, stack 부분이 하나씩의 세그먼트로 정의됨

Segment 다음과 같은 logical unit 들임

  • main(), function, global variables, stack …

 

Segmentation Architecture

  • Logical address 다음의 가지로 구성 : <segment-number, offset>
  • Segment table
    • base - starting physical address of segment
    • limit - length of the segment
  • Segment-table base register(STBR) : 물리적 메모리에서의 segment table 위치
  • Segment-table length register(STLR) : 프로그램이 사용하는 segment의 수

Page와 다르게 table entry에 limit 같이 갖고 있다. segment는 의미 단위로 자르기 때문에 길이를 가 균일하지 않을 있음

 

 

 

 

Paged Segmentation

pure segmentation 차이점?

  • segment-table entry가 segment의 base address를 가지고 있는 것이 아니라 segment를 구성하는 page table의 base address를 가지고 있음

  • 물리적인 메모리에는 페이지 단위로 올라감 세그먼트는 페이지 개수의 배수로 구성됨
  • 의미 단위의 일은 segment table 차원에서 해준다.
  • 주소변환에서 OS의 역할은????? 없다, 하드웨어가 한다

 

 

 

반응형
Comments