티스토리 뷰
Virtual Storage Methods
-
Paging system
- Segmentation system
- Hybrid paging/segmentation system
Paging System
- 프로그램을 같은 크기의 블록으로 분할 (Pages)
- Terminologies
- Page
- 프로그램의 분할된 block
- Page frame
- 메모리의 분할 영역
- Page와 같은 크기로 분할
- Page
특징
- 논리적 분할이 아님 (크기에 따른 분할)
- Page 공유(sharing) 및 보호(protection) 과정이 복잡함
- Segmentation 대비
- Page 공유(sharing) 및 보호(protection) 과정이 복잡함
- Simple and Efficient
- Segmentation 대비
- No external fragmentation
- Internal fragmentation 발생 가능
Address Mapping
- Virtual address : v = (p,d)
- p : page number
- d : displacement(offset)
- Address mapping
- PMT(Page Map Table) 사용
- Address mapping mechanism
- Direct mapping (직접 사상) : block mapping과 거의유사
- Associative mapping (연관 사상)
- TLB(Translation Look-aside Buffer)
- Hybrid direct/associative mapping
Page Map Table (PMT)
- page number : 페이지 번호
- residence bit : 메모리에 적재 유무
- page frame number : page frame번호 ( 메모리 어느 위치에 적재 되어 있는지 )
- secondary storage address : 프로세스가 swap device 어디에 저장되어 있는지
Direct mapping
- Block mapping 방법과 유사
- 가정
- PMT를 커널 안에 저장
- PMT entry size = entrySize
- Page size = pageSize
- 해당 프로세스의 PMT가 저장되어 있는 주소 b에 접근
- 해당 PMT에서 page p에 대한 entry 찾음
• p의 entry 위치 = b + p * entrySize - 찾아진 entry의 존재 비트 검사
- Residence bit = 0 인 경우 (page fault : context swiching 발생(I/O) -> Overhead),
swap device에서 해당 page를 메모리로 적재
PMT를 갱신한 후 3-2 단계 수행 - Residence bit = 1인 경우,
해당 entry에서 page frame 번호 p’를 확인
- Residence bit = 0 인 경우 (page fault : context swiching 발생(I/O) -> Overhead),
- pf와 가상 주소의 변위 d를 사용하여 실제 주소 r 형성
• r = p’ * pageSize + d - 실제 주소 r로 주기억장치에 접근
문제점
- 메모리 접근 횟수가 2배
- PMT 접근(메모리 접근), 프로세스가 요청한 메모리 접근
- 성능 저하 (performance degradation)
- PMT를 위한 메모리 공간 필요
- PMT 접근(메모리 접근), 프로세스가 요청한 메모리 접근
- 해결방안
- Associative mapping (TLB)
- PMT를 위한 전용 기억장치(공간) 사용
- Dedicated register or cache memory
- Hierarchical paging
- Hashed page table
- Inverted page table
Associative Mapping
- TLB(Translation Look-aside Buffer)에 PMT 적재
- Associative high-speed memory
- (PMT를 적재하는 전용 하드웨어라고 생각할 수 있다)
- PMT를 병렬 탐색
- Low overhead, high speed
- Expensive hardware
- 큰 PMT를 다루기가 어려움
- 다른 과정 없이 page number(p)만으로 TLB안에 저장되어있는 PMT를 병렬로 검색한다.
- 메모리에 접근하지 않기 때문에 빠르고 오버헤드가 적다.
Hybrid Direct/Associative Mapping
- 두 기법을 혼합하여 사용
- HW 비용은 줄이고, Associative mapping의 장점 활용
- 작은 크기의 TLB 사용
- PMT : 메모리(커널 공간)에 저장
- TLB : PMT 중 일부 entry들을 적재
- 최근에 사용된 page들에 대한 entry 저장
- Locality (지역성) 활용
- 프로그램의 수행과정에서 한번 접근한 영역을 다시 접근(temporal locality) 또는 인접 영역을 다시 접근(patial locality) 할 가능성이 높음
- 프로세스의 PMT가 TLB에 적재되어 있는지 확인
- TLB에 적재되어 있는 경우,
residence bit를 검사하고 page frame번호 확인 - TLB치에 적재되어 있지 않은 경우,
Direct mapping으로 page frame 번호 확인
해당 PMT entry를 TLB에 적재함
- TLB에 적재되어 있는 경우,
Memory Management
- Page와 같은 크기로 미리 분할 하여 관리/사용
- Page frame
- FPM 기법과 유사
- Frame table
- Page frame당 하나의 entry
- 구성
- Allocated/available field
- PID field
- Link field : For free list (사용가능 한 fp들을 연결)
- AV : Free list header (free list의 시작점)
Frame table
- page frame number : page frame 번호
- allocated : 할당 유무
- PID : 프로세스 id
- AV : 빈공간을 찾기 위한 포인터 ( 가장 처음으로 비어있는 entry 지칭 )
- link : 다음에 빈 entry에 저장 ( linked list로 생각 )
- 할당이 되고나면 AV는 link에 저장된 entry 로 이동
Page Sharing
- 여러 프로세스가 특정 page를 공유 가능
- Non-continuous allocation 이기 때문에 가능
- 공유 가능 page
- Procedure pages
- Pure code (reenter code)
- Data page
- Read-only data
- Read-write data
- 병행성(concurrency) 제어 기법 관리하에서만 가능
- Procedure pages
Page Sharing (Example)
- Editor 프로그램을 3명이 사용하는 경우
- ed1, ed2, ed3는 프로그램 코드 이므로 모두 사용한다.
- 메모리에 한번만 올려 공유해서 사용한다.
Data page sharing
Procedure Page Sharing (Problem)
- 같은 위치에 있지만 다른 page number를 가진다 (k1, k2)
Procedure Page Sharing (Solution)
- 프로세스들이 shared page에 대한 정보를 PMT의 같은 entry에 저장하도록 함
Page Protection
- 여러 프로세스가 page를 공유 할 때, 보안문제 발생 가능성
- Protection bit 사용하여 권한 관리
Paging System
- 프로그램을 고정된 크기의 block으로 분할 (page) / 메모리를 block size로 미리 분할 (page frame)
- 외부 단편화 문제 없음(내부 단편화 문제 발생 가능)
- 메모리 통합/압축 불필요
- 프로그램의 논리적 구조 고려하지 않음
- Page sharing/protection이 복잡
- 필요한 page만 page frame에 적재하여 사용
- 메모리의 효율적 활용
- Page mapping overhead
- 메모리 공간 및 추가적인 메모리 접근이 필요
- 전용 HW 활용으로 해결 가능
- 하드웨어 비용 증가
강의
www.youtube.com/watch?v=mTFYeZwPj0s&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=28
www.youtube.com/watch?v=B_QLTChsi04&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=29
'운영체제' 카테고리의 다른 글
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Spring
- mapreduce
- JSON
- linux
- springboot
- Variable allocation
- File Protection
- I/O Services of OS
- I/O Mechanisms
- 하둡
- gradle
- Java
- Flume
- oracle
- aop
- 빅데이터 플랫폼
- hadoop
- jdbc
- SQL
- RAID Architecture
- 빅데이터
- Disk System
- maven
- Replacement Strategies
- vmware
- Free space management
- Disk Scheduling
- HDFS
- Allocation methods
- SPARK
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함