페이징 ?
프로세스의 주소 공간을 미리 동일한 크기의 페이지 단위로 나누어 물리적 메모리의 서로 다른 위치에 페이지들을 저장하는 방식
- 장점: 메모리에 올리는 단위가 동일한 크기의 페이지 단위여서 빈 프레임이 있으면 어떤 위치이든 사용될 수 있다.
1) 주소 변환 기법
모든 프로세스가 각각의 주소 변환을 위한 페이지 테이블(page table)을 가진다.
논리적 주소를 페이지 번호(p) 와 페이지오프셋(d)로 나누어 주소변환에 사용
기존 주소값에 변위르 더함으로써 요청된 논리적 주소에 대응하는 물리적 수소를 만들 수 있다.
2) 페이지 테이블의 구현
주소 변환을 하기 위한 자료구조
물리적 메모리에 위치
- 페이지 테이블 기준 레지스터 (page-table base register) - 메모리내에서의 페이지 테이블의 시작 위치를 저장
- 페이지 테이블 \길이 레지스터 (page-table length register) - 페이지 테이블의 크기를 저장
- 메모리 접근 연산 : (총 2번) 페이지 테이블에 접근 -> 변환된 주소에서 실제 데이터로 접근
-> 오버헤드가 뒤따른다.- 대안? TLB(translation Look-aside Buffer) 라는 고속의 주소 변환용 하드웨어 캐시 사용
- 테이블 접근 오버헤드 줄이고 메모리의 접근 속도 향상
- 가격적인 이유로 빈번하게 참조되는 페이지에대한 주소 변환 정보만 담음
- 구현 - 병렬탐색이 가능한 연관 레지스터(associative register) 사용
- 평균적인 메모리 접근 시간 (EAT),
- EAT = (1 + ε)α + (2 + ε )( 1- α) = 2 + ε - 2α
- ε = 레지스터 접근시간, α = 요청된 페이지에 대한 정보가 레지스터에 있을 확률
- 평균적인 메모리 접근 시간 (EAT),
- 대안? TLB(translation Look-aside Buffer) 라는 고속의 주소 변환용 하드웨어 캐시 사용
3)계층적 페이징
4GB의 메모리가 있다고 하면 대부분의 프로그램은 4GB 중 극히 일부만 사용
이를 위해 페이지 테이블을 위한 메모리 사용은 공간낭비
-> 페이지 테이블에 사용되는 메모리 공간의 낭비를 줄이기 위해 2단계 페이징(two-level paging)기법을 사용
- 2단계 페이징 기법
- 방식: 외부 / 내부 페이지 테이블의 두 단계에 걸친 페이지 테이블 사용
- 사용되지 않는 주소 공간 -> 외부 페이지 테이블을 NULL로 설정, 내부 페이지 테이블을 생성 안함
- 장점 : 페이지 테이블을 위해사용되는 메모리 공간 감소 -> 공간적인 이득
- 단점 : 주소변환을 위해 접근해야 하는 테이블 수가 증가 -> 시간적인 손해
- 방식: 외부 / 내부 페이지 테이블의 두 단계에 걸친 페이지 테이블 사용
- 위와 같이 다단계(계층적) 페이징은 메모리 공간을 감소를 통해 공간적인 이득을 가질수 있지만, 단계가 늘어날 수록 접근해야하는 테이블수가 증가하므로 시간적 손해가 커진다.
4) 역 페이지 테이블
메모리 공간의 낭비가 심한 이유
=> 모든 프로세스의 모든 페이지에 대해 페이지 테이블 항목을 다 구성해야 하기 때문
=> 논리적 주소에 다 구성
역 페이지 테이블은?
- 프로세스마다 페이지 테이블을 두지 않고, 시스템 전체(system-wide)에 페이지 테이블을 하나만 생성
- 물리적 주소에 대해 페이지 테이블을 생성
- 주소 변환 작업이 물리적 주소로부 논리적 주소를 얻는 구조
- 비효율적 : 주소 변환 요청이 들어왔을 때 물리적 메모리에 존재하는지 여부를 알기 위해 페이지 전체를 탐색해야함
5) 공유 페이지
공유코드를 담고 있는 페이지 -> 물리적 메모리에 하나만 적재되어 메모리사용이 효율적
공유코드? 여러 프로세스에 의해 공통으로 사용되는 코드
- 재 진입 가능 코드 (re-enterant code)
- 순수 코드(pure code)
특징
- 그 페이지를 공유하는 모든 프로세스의 주소 공간에서 동일한 페이지번호를 가져야 함
- 예시 그림
6) 메모리 보호
- 보호비트(protection bit) : 각 페이지에 대한 접근 권한의 내용 저장
- 누가가 아니가 어떠한 접근을 허용하는지의 정보가 저장
- 각 페이지에 대하 읽기-쓰기 / 읽기전용 등의 접권권한을 설정하는데 사용
- 유효-무효 비트 (valid-invalid bit) : 해당 페이지의 유효한지에 대한 내용 저장
- 유효 : 해당 메모리 프레임에 그 페이지가 존재 -> 접근 허용
- 무효 : 프로세스가 그 주소 부분을 사용하지 않거나 해당 페이지가 물리적 메모리에 올라와 있지 않음 -> 접근 불가
'책 > 운영체제와 정보기술의 원리' 카테고리의 다른 글
8장 가상메모리 (1) | 2023.12.23 |
---|---|
7장 6. 페이지드 세그먼테이션 (1) | 2023.12.21 |
7장 3.물리적 메모리의 할당 방식 (0) | 2023.12.21 |
7장 2. 메모리관리와 관련된 용어 (0) | 2023.12.20 |
7 장 메모리관리 - 1. 주소 바인딩 (0) | 2023.12.19 |