운영체제
페이징
정재익
2025. 7. 24. 01:34
물리 메모리는 프레임이라 불리는 같은 크기 블록으로 나누어짐
논리 메모리는 페이지라 불리는 같은 크기 블록으로 나누어짐
프로세스가 실행되면 프로세스의 페이지는 메인 메모리 프레임으로 적재됨
논리 주소 공간은 2^64바이트 보다 적게 장착 된 시스템에서도 프로세스는 64비트의 논리 주소 공간을 사용가능하다
CPU의 모든 주소는 페이지 번호와 페이지 오프셋으로 이루어진다.
페이지 번호는 페이지 테이블을 액세스할 때 사용 됨
페이지 테이블은 물리 메모리의 각 프레임의 시작 주소를 저장하며 오프셋은 참조되는 프레임 안에서의 위치다 두 개를 결합하여 물리 메모리 주소다
MMU의 동작순서
- 페이지 번호를 추출하여 페이지 테이블 인덱스로 사용
- 페이지 테이블에서 해당 프레임 번호 추출
- 논리 주소의 페이지 번호를 프레임 번호로 바꾼다
프레임 크기와 마찬가지로 페이지 크기는 하드웨어에 의해 정해짐 컴퓨터 아키텍처에 따라 페이지당 4KB와 1GB 사이다
모든 놀고 있는 프레임이 프로세스에 할당될 수 있기 때문에 페이징 기법을 사용하면 외부 단편화가 발생하지 않는다.
하지만 할당은 항상 프레임의 정수배로 할당되기 때분에 내부 단편화가 발생한다
공유 페이지
공유 라이브러리는 일반적으로 공유 페이지로 구현됨 공유가 가능하게 하려면 재진입 코드로 구현되어야함
프로세스들 사이의 메모리 공유는 스레드에서의 주소 공간 공유와 유사함
프로세스간의 상호 통신 ICC의 방법으로 메모리 공유가 사용됨
페이지를 통한 메모리 관리는 같은 물리 페이지 프레임을 여러 프로세스가 공유하는 것 뿐만아니라 다양한 이익을 가져다줌