페이징 시스템 (paging system)
크기가 동일한 페이지로 가상 주소 공간과 이에 매칭하는 물리 주소 공간을 관리
하드웨어 지원이 필요
리눅스에서는 4KB로 paging
페이지 번호를 기반으로 가상 주소/물리 주소 매핑 정보를 기록/사용
페이징 시스템 구조
page 또는 page frame : 고정된 크기의 block (4KB)
paging system : 가상 주소 v = (p, d)
p : 가상 메모리 페이지
d : p안에서 참조하는 위치
페이지 크기가 4KB 예
가상 주소의 0비트에서 11비트가 변위 (d)를 나타내고
12비트 이상이 페이지 번호가 될 수 있음
페이지 테이블 (page table)
* page table
물리 주소에 있는 페이지 번호와 해당 페이지의 첫 물리 주소 정보를 매핑한 표
가상 주소 v=(p, d)라면
- p : 페이지 번호
- d : 페이지 처음부터 얼마 떨어진 위치인지
* paging system 동작
해당 프로세스에서 특정 가상 주소 엑세스를 하려면
- 해당 프로세스의 page table에 해당 가상 주소가 포함된 page 번호가 있는지 확인
- page 번호가 있으면 이 page가 매핑된 첫 물리 주소를 알아내고 (p')
- p' + d 가 실제 물리 주소가 됨
페이징 시스템과 MMU(컴퓨터 구조)
CPU는 가상 주소 접근 시 : MMU 하드웨어 장치를 통해 물리 메모리 접근
프로세스 생성 시 페이지 테이블 정보 생성
PCB등에서 해당 페이지 테이블 접근 가능하고 관련 정보는 물리 메모리에 적재
프로세스 구동시 해당 테이블 base 주소가 별도 레지스터에 저장
CPU가 가상 주소 접근시 MMU가 페이지 테이블 base 주소를 접근해서 물리 주소를 가져옴
다중 단계 페이징 시스템
32bit 시스템에서 4KB 페이지를 위한 페이징 시스템은
하위 12bit는 오프셋
상위 20bit가 페이징 번호이므로, 2의 20승(1048576)개의 페이지 정보가 필요함
페이징 정보를 단계를 나누어 생성
필요없는 페이지는 생성하지 않으면 공간 절약 가능
MMU와 TLB(컴퓨터 구조)
MMU가 물리 주소를 확인하기 위해 메모리를 갔다와야 함
메모리 계층
TLB(Transaltion Lookaside Buffer) : 페이지 정보 캐쉬
페이징 시스템과 공유 메모리
프로세스간 동일한 물리 주소를 가리킬 수 있음 (공간 절약, 메모리 할당 시간 절약)
물리주소 데이터 변경 시 : 물리 주소에 데이터 수정 시도시, 물리 주소를 복사할 수 있음 (copy-on-write)
요구 페이징 (Demanding Paging 또는 Demanded Paging)
프로세스 모든 데이터를 메모리로 적재하지 않고 실행 중 필요한 시점에서만 메모리로 적재함
선행 페이징 (anticipatory paging 또는 prepaging)의 반대 개념
: 미리 프로세스 관련 모든 데이터를 메모리에 올려놓고 실행하는 개념
더 이상 필요하지 않은 페이지 프레임은 다시 저장매체에 저장 (페이지 교체 알고리즘 필요)
출처 : 제로베이스
'공부 Note > 운영체제' 카테고리의 다른 글
Chapter 06 파일 시스템의 이해 (0) | 2022.01.04 |
---|---|
Chapter 05 가상 메모리 (3) (0) | 2022.01.04 |
Chapter 05 가상 메모리 (1) (0) | 2022.01.04 |
Chapter 04 쓰레드의 이해 (3) (0) | 2021.12.30 |
Chapter 04 쓰레드의 이해 (2) (0) | 2021.12.30 |