-
[Operating System] 가상 메모리 : 쓰기 시 복사와 계층적 페이징Operating System 2024. 6. 22. 21:10
가상 메모리 기법의 쓰기 시 복사와 계층적 페이징에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'
< 쓰기 시 복사 >
이론적인 fork() 함수는 호출 시 부모 프로세스와 동일한 자식 프로세스가 별도의 메모리 공간에 통째로 복제되어 적재됩니다. 이는 프로세스 생성 시간 지연과 메모리 낭비라는 단점이 있습니다.
이를 해결하기 위해 쓰기 시 복사가 나타났습니다. 이를 통해 프로세스 생성 시간과 메모리를 절약할 수 있습니다.[ 쓰기 시 복사 ]
쓰기 작업 없을 시 1. 부모 프로세스로부터 동일한 자식 프로세스가 복제 되어 생성되면 자식 프로세스와 동일한 프레임을 가리킵니다.
(쓰기 작업이 없다면 이 상태 유지)쓰기 작업 시 2. 부모/자식 프로세스 둘 중 하나가 페이지에 쓰기 작업 수행 시 해당 페이지는 별도의 공간으로 복제 됩니다.
< 계층적 페이징(aka 다단계 페이지 테이블) >
프로세스 테이블의 크기는 생각보다 작지 않기 때문에 모든 페이지 테이블을 메모리에 두는 것은 큰 낭비입니다.
계층적 페이징이란 페이지 테이블을 페이징하여 여러 단계의 페이지를 두는 방식을 말합니다. 이를 통해 모든 페이지 테이블이 항상 메모리에 있을 필요가 없어집니다.(Outer 페이지 테이블만 메모리에 유지)계층적 페이지 이미지
[ 계층적 페이징에서의 주소 변환 ]
: 계층적 페이징 시스템에서 논리 주소는 바깥 페이지 번호, 안쪽 페이지 번호, 변위으로 이루어져 있습니다.
1. 바깥 페이지 번호를 통해 페이지 테이블의 페이지 찾기
2. 페이지 테이블의 페이지를 통해 프레임 번호를 찾고 변위를 더함으로서 물리 주소 얻기
계층적 페이징은 2단계뿐만 아니라 3단계 4단계, 그 이상으로도 구성할 수 있습니다. 다만, 계층이 많아질 경우 페이지 폴트가 발생했을 경우 메모리 참조 횟수가 그만큼 많아지기 때문에 계층이 많다고 반드시 좋다고 보기는 어렵습니다.
'Operating System' 카테고리의 다른 글
[Operating System] 파일 시스템 : 파일과 디렉토리 (0) 2024.08.01 [Operating System] 가상 메모리 : 페이지 교체와 프레임 할당 (0) 2024.07.15 [Operating System] 가상 메모리 : 페이징 (0) 2024.06.13 [Operating System] 가상 메모리 : 연속 메모리 할당 (0) 2024.05.20 [Operating System] 교착 상태 : 교착 상태 해결 방법 (0) 2024.05.20