- 가상 메모리
개념 : physical memory로부터 유저의 logical memory를 분리
이점 :
전체 주소 공간이 physical memory에 상주하지 않아도 프로그램 실행 가능
모든 코드나 데이터 영역을 가져올 필요가 없음
프로세스를 분리한다.
프로세스가 파일과 주소공간을 공유한다.
- 가상 어드레스
프로세스는 virtual(logical) address를 사용한다.
다수의 프로세스의 메모리 관리를 쉽게 하기 위해
가상 주소는 참조된 데이터의 실제 물리 고간과 독립적임.
cpu를 통해 실행되는 instruction은 가상 주소를 발행한다.
가상 주소는 하드웨어에 의해 물리 주소로 번역된다.(OS의 도움에 의해)
- Demand Paging
개념 :
“필요할 때만 해당 페이지를 메모리에 가져오자”
페이지레벨 스와핑을 하는 페이징 시스템
OS에서 메인 메모리를 시스템의 프로세스가 할당한 모든 데이터의 캐시처럼 사용함.
쫓겨난 페이지는 디스크로 이동함(그것이 더럽다면, 쓸 필요가 있음)
- Demand Paging : page faults
Page fault handling
맵핑 안된 페이지를 참조하면 page fault가 발생함.
쫓겨난 페이지를 참조하면 invalid PTE를 보내고, 예외처리 한다.
OS는 page fault handler를 응답할 때 작동시킨다.
handler는 invalid PTE를 사용하여 페이지를 스왑파일에 위치시킨다.
handler는 물리 프레임에 페이지를 부여하고, PTE를 valid로 업데이트한다.
handler는 결함된 프로세스를 재시작한다.
다른 페이지를 쫒아내야함. OS는 기본적으로 여유 페이지의 풀을 유지하기 때문에 할당이 무조건 쫓아냄을 발생시키진 않음.
'레거시 > OS' 카테고리의 다른 글
Mass Storage Structure (0) | 2017.06.19 |
---|---|
I/O Systems (0) | 2017.06.19 |
Memory Management (0) | 2017.06.18 |
File System(2) (0) | 2017.06.18 |
File System(1) (0) | 2017.06.18 |