반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ios
- 도커 컨테이너
- k8s
- 프로세스
- boj
- 리눅스
- 도커 이미지
- os
- 부스트코스
- 쿠버네티스
- kubernetes
- centOS
- devops
- 운영체제
- Swift
- AWS
- 도커
- 컨테이너
- swift 클로저
- 네트워크
- 데브옵스
- 클라우드
- 인프라
- docker
- C++
- NGINX
- centOS7
- linux
- Python
- 도커 명령어
Archives
- Today
- Total
귀염둥이의 메모
[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의 역할은????? 없다, 하드웨어가 한다
반응형
'CS > 운영체제' 카테고리의 다른 글
[OS] 동시성(Concurrency), 병렬성(Parallelism) (0) | 2021.10.21 |
---|---|
[OS] RAID (Redundant Array of Independent Disks) (0) | 2021.08.29 |
[OS] Memory Management (1) - MMU, Page, Page Table ... (0) | 2021.08.25 |
[OS] Deadlock (0) | 2021.08.17 |
[OS] Process Synchronization (0) | 2021.07.14 |