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
- 가상주소 (Virtual address) : 논리 주소, 연속된 메모리 할당을 가정한 주소
- 실제 주소 (Real address) : 실제 메모리에 적재된 주소
- Address Mapping : 가상 주소를 실제 주소로 바꿔준다.
Block Mapping
- Address mapping 정보를 관리하는 Block map table(BMT)이 있다.
- 커널 공간에서 프로세스마다 하나의 BMT를 가지고 있다.
Paging System
Paging System
- 프로그램을 같은 크기의 블럭(Pages)으로 분할한다.
- Page frame : 메모리의 분할 영역, Page와 같은 크기로 분할된다.
- 논리적 분할이 아닌 크기에 따른 분할이다.
- 간단하고 효율적이다.
- 외부 단편화가 발생하지 않는다. (내부 단편화는 발생할 수 있다.)
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
- Block mapping과 유사하다.
- 가정
- PMT를 커널 안에 저장
- PMT entry size = entrySize
- Page size = pageSize
- 문제점 : 메모리 접근 횟수가 2배이다. PMT를 위한 메모리 공간이 필요하다.
- 해결방안 : Associative mapping, PMT 전용의 기억장치 사용 등
Associative mapping
- TLB(Translation Look-aside Buffer)에 PMT 적재
- PMT를 병렬적으로 탐색한다.
- 비용이 낮고 속도가 빠르다.
- 비싼 HW (큰 PMT는 다루기 어렵다.)
Hybrid
- Direct mapping과 Associative mapping을 혼합해 HW 비용을 줄이고 Associative mapping의 장점을 활용
- 작은 TLB를 사용한다.
Paging System의 메모리 관리
- Page와 같은 크기로 미리 분할 하여 관리/사용 (Page Frame)
- Frame table : Page Frame당 하나의 entry
Page Sharing
- 여러 프로세스가 특정 Page를 공유할 수 있다.
- 공유 가능한 Page
- Procedure pages
- (병행성 제어 기법 관리하에서) Data page
Summary
Segmentation system
Segmentation system
- 프로그램을 논리적 block으로 분할 (segment)
- Block의 크기가 다르기 때문에 메모리를 미리 분할하지 않는다.
- 공유와 보호가 용이하다.
- 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
Segmentation system의 메모리 관리
- VPM과 유사하다. (Segment를 적재할 때 크기에 맞추어 메모리를 분할하고 적재한다.)
공유와 보호
Segmentation system에서는 프로그램이 논리적으로 분할되어 있어 공유 및 보호가 용이하다.
Summary
Paging vs Segmentation
Paging system
- 단순함
- 낮은 비용
- 비논리적 분할
- 복잡한 Page sharing Mechanism
Segmentation System
- 높은 관리 비용
- 논리적 분할
- 간단하고 쉬운 분할 Mechanism
Hybrid Paging/Segmentation
Hybrid system
- Paging과 Segmentation의 장점 결합
- 논리 단위의 Segment로 프로그램을 분할한다.
- 각 Segment를 고정된 크기의 Page로 분할한다.
- 메모리에는 Page 단위로 적재된다.
Hybrid system의 Address mapping
- Virtual address : v = (s : segment number, p : page number, d : displacement)
- SMT와 PMT를 모두 사용한다.
- 메모리 관리 방식은 FPM과 유사하다.
Direct mapping
Summary