CS/컴퓨터운영체제

OS-0523: Paging

goliot 2023. 5. 23. 11:36
반응형

#Paging

- Segmentaion과 비교:

1. 할당과 스왑이 더 쉬움

2. 외부 단편화(fragmentation)가 없음

- 각 프로세스는 페이지라고 불리는 여러개의 작고 고정된 크기의 파티션으로 나뉨

    > 물리 메모리는 프레임이라는 많은 작고 고정된 크기의 파티션으로 나뉨

    > 페이지는 세그먼트와 아무 관련 없음

    > 페이지 크기 = 프레임 크기

        > 일반적으로 512B ~ 16KB

    > 전체 프로세스는 여전히 메모리에 로드되지만, 프로세스의 페이지는 연속된 프레임 집합에 로드되지 않아도 됨

    > 가상 주소는 페이지 번호와 해당 페이지의 시작부터의 오프셋으로 구성됨

 

#Implementing Paging

- 페이지 테이블은 특정 프로세스의 모든 페이지를 추적

    > 각 항목은 주 메모리(물리 메모리)에 해당하는 프레임을 포함

    > 보호 비트를 추가할 수도 있지만 세그먼트와는 달리 그렇게 유용하지는 않음

- 세그멘테이션보다 필요한 추가 하드웨어 지원은 약간 적음

    > 제한(limit)을 추적하고 비교할 필요가 없음

-> 페이징에서는 세그먼트와 달리 페이지 크기가 고정되어 있기 때문에, 각 페이지의 프레임을 페이지 테이블에 직접 매핑 가능 -> 따라서 프로세스의 각 페이지에 대한 제한을 따로 추적하고 비교할 필요가 없음

 

- 페이지가 커지면: 페이지 테이블이 작아져 가벼워짐, internal fragmentation이 커짐

- 작아지면: internal fragmentation 작아짐 but table 너무 커져 처리가 복잡해짐

- 보통 32bit 주소체계에서 1KB 씩 페이지를 설정하면 페이지 테이블은 약 400만개(2^22개)

 

#Paging Example

 

#Managing Pages and Frames

- OS는 일반적으로 비트맵을 사용하여 메모리의 빈 프레임을 추적

    > 비트맵은 비트의 배열

        > 1은 해당 프레임이 빈 상태를 나타냄

        > 0은 해당 프레임이 페이지에 할당되어있는 상태

    > 빈 프레임을 찾기 위해 첫 번째 1을 찾는다

        > 대부분의 현대 명령어 세트는 레지스터의 첫 번째 1의 오프셋을 반환하는 명령어를 가짐

- 페이지 테이블 베이스 포인터(특수 레지스터)는 활성 프로세스의 페이지 테이블을 가리킴

    > context switching의 일부로 저장되고 복원됨

    > 페이지 테이블에는 다음과 같은 내용도 포함:

        > 유효 비트(valid bit): 페이지가 프로세스의 가상 주소 공간에 있는지 여부를 나타냄

        > 요구 페이징(demand paging)을 위한 기타 비트

* Demand Paging: 캐싱이랑 비슷한 개념. 미리 로드된 demand page에서 데이터를 찾고 없으면 디스크 -> hit 안됐을 때 약 25만배정도 속도 차이남

 

#Evaluation of Paging

- 장점:

1. 메모리 할당이 쉬움 - 사용 가능한 프레임의 목록을 유지, 가장 먼저 사용 가능한 프레임을 할당하기만 하면 됨

2. 스왑이 쉬움 - 페이지, 프레임, 종종 디스크 블록도 모두 동일한 크기

3. 한 프레임이 다른 프레임과 동일한 가치를 가짐. 즉, 어떤 프레임이라도 상관 없음

 

- 단점:

1. 페이지 테이블은 상당히 큼

    > 대부분의 페이지 테이블은 레지스터에 저장하기에 너무 크기 때문에, 물리적 메모리에 저장

    > 이 테이블 조회는 모든 주소 변환마다 추가적인 메모리 참조를 필요로 함

2. 내부 단편화가 발생

    > 1 바이트를 위해서라도 항상 전체 페이지를 얻어야 함

    > 페이지 크기가 크면 이 문제가 악화

    > 평균적으로는 프로세스 당 페이지의 절반을 사용

 

반응형

'CS > 컴퓨터운영체제' 카테고리의 다른 글

OS-0606: File system imporved, Disk Management(L32, 33)  (0) 2023.06.06
OS-0606: File System(L29, 30, 31)  (0) 2023.06.06
OS - 0523: Segmentation  (1) 2023.05.23
OS 0523 - Dynamic Relocation  (0) 2023.05.23
OS(0516) - Memory Management  (1) 2023.05.16