코드네임 :
⚙️ 운영체제 - 요구 페이징 ⚙️ 본문
[ 요구 페이징 ]
: 현재 실행에 필요한 일부 페이지만 메모리에 적재하고 나머지는 하드디스크에 두고, 페이지가 필요할 때 메모리에 적재하는 방식
(요구 : 페이지가 실행에 필요할 때 물리 메모리를 할당받고 디스크에 읽어 적재)
[ 요구 페이징 구현의 전형적인 형태 ]
- 운영체제는 첫 페이지만 물리 메모리에 적재하고,
- 실행 중 프로세스가 다른 페이지를 필요로 할 때 그 때에 물리 메모리에 적재
[ 스왑 영역 ]
: 메모리가 부족할 때 메모리를 비우고 페이지를 저장해두는 하드 디스크의 영역
[ fork()의 완전복사 & 쓰기 시 복사 ]
**쓰기 시 복사(Copy-On-Write, COW)**란, 부모 프로세스와 자식 프로세스가 동일한 메모리 페이지를 공유하다가, 어느 한쪽에서 해당 페이지를 수정하려고 할 때(쓰기 작업 발생 시) 그제서야 페이지를 복사하여 별도로 할당하는 메커니즘입니다.
어떻게 작동하나요?
- 프로세스 생성 시(fork()):
- 부모 프로세스와 자식 프로세스는 동일한 메모리 페이지를 공유합니다.
- 이 공유된 메모리 페이지는 **읽기 전용(read-only)**으로 설정됩니다.
- 페이지 테이블은 물리 메모리의 동일한 프레임을 가리킵니다.
- 쓰기 작업 발생 시:
- 부모 또는 자식 프로세스가 페이지를 수정하려고 하면, **페이지 폴트(page fault)**가 발생합니다.
- 이때, 운영체제가 해당 페이지를 복사하여 부모와 자식 각각 독립적인 메모리 페이지를 가지게 합니다.
- 이렇게 필요할 때만 복사가 이루어지기 때문에 메모리를 효율적으로 사용할 수 있습니다.
[ 쓰기 시 복사의 장점 ]
프로세스 생성 시간 절약
: 부모 프로세스의 페이지 테이블만 복사하여 자식 프로세스를 만들기 떄문에 프로세스 생성이 매우 빠름
: fork() 후 exec()해도 프로세스의 생성 과정에서 손해 없음
메모리 절약
: 부모와 자식 프로세스가 둘 다 읽기만 하는 페이지는 새로운 프레임을 할당할 필요 없으므로 메모리 절약
[ 완전 복사 & 완전 복사의 비효율성 ]
⬇️
[ 쓰기 시 복사 ]
'컴퓨터와 함께해요 > 운영체제' 카테고리의 다른 글
⚙️ 운영체제 - 페이지 교체 ⚙️ (0) | 2024.11.12 |
---|---|
⚙️ 운영체제 - 지역성과 스래싱 ⚙️ (0) | 2024.11.12 |
⚙️ 운영체제 - 가상 메모리 개념 ⚙️ (0) | 2024.11.12 |
⚙️ 운영체제 - 메모리 할당 : 페이지화된 세그먼테이션 ⚙️ (0) | 2024.11.12 |
⚙️ 운영체제 - 메모리 할당 + TLB ⚙️ (0) | 2024.11.12 |