Virtual memory
프로그램을 당장 실행에 필요한 부분만 실제 메모리에 올려서 실행
- 프로그래머는 메모리 크기 제약에서 자유로워질 수 있음
- 논리 메모리 개념을 통해 엄청나게 큰 메모리 구성 가능
- 구현이 어려움
- 잘못 사용하면 성능 저하가 심함
- 시스템이 멈춰 버릴 수도...
MMU(Memory Management Unit)
- 가상 주소를 물리 주소로 빠르게 맵핑
Demand Paging
Valid-Invalid Bit
page fault : i인 프레임에 접근하는 경우
- 아예 참조할 수 없는 경우
- abort
- 메모리에 없을 뿐인 경우
- 메모리에서 비어있는 프레임을 찾음
- 찾은 페이지를 프레임으로 swap in
- 페이지 테이블에서 i를 v로 바꿈
- 이전 프레임으로 돌아가 재실행
pure demand paging : 프로그램을 처음 시작할 때 부터 page fault일 경우
- 모든 프레임을 가져오는 과정이 demand paging임
하드웨어 지원
- valid-invalid bit를 갖는 페이지테이블을 제공해야함
- 보조메모리의 swapping 기능 제공
- Instruction restart 기능 제공
Copy-On-Write
- 자식 프로세스가 부모프로세스를 복제할 경우 -> 메모리 페이지 내의 중복
- 자식 프로세스가 부모 프로세스의 어떤 페이지라도 수정시
- 복사하여 수정후 수정된 페이지 따로 저장
'컴퓨터과학 > 운영체제' 카테고리의 다른 글
[운영체제] 메인 메모리 (Main memory) (0) | 2021.01.21 |
---|---|
[운영체제] 교착상태 (Deadlocks) (0) | 2021.01.20 |
[운영체제] 동기화 (Synchronization) (0) | 2021.01.19 |
[운영체제] 스케줄링 (Scheduling) (0) | 2021.01.18 |
댓글