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의 역할은????? 없다, 하드웨어가 한다
반응형