메모리 용어 정리
페이지
- 4,096 바이트의 길이(페이지 크기)를 가지는 가상 메모리의 연속된 영역
- 정렬되어 있어야 함 -> 4KB로 균등하게 나누어지는 가상 주소에서 시작
-> 64비트 가상주소의 마지막 12비트는 페이지 오프셋임
-> 각 프로세스는 독립적인 가상 페이지 집합을 가짐
프레임
- 물리메모리 상의 연속적인 영역임
- 페이지와 동일한 특성(정렬, 64비트 가상구소의 마지막 12비트는 오프셋)
페이지 테이블
- CPU가 가상주소를 물리주소로, 즉 페이지를 프레임으로 변환하기 위해 사용하는 자료구조(우리는 hash table씀)
- 페이지 테이블은 페이지 넘버를 프레임 넘버로 변환, 프레임 넘버는 물리주소를 흭득하기 위한 미수정 오프셋과 결합되어있음
스왑슬롯
- 스왑 파티션내의 디스크 공간에 있는 페이지 크기의 영역?
⇒ swap은 disk의 한 영역이다.
pintos 관련
Supplemental page table(보조 페이지 테이블)
- 페이지 테이블을 보조해서, 페이지 폴트 핸들링이 가능하도록 해줌
- 페이지 폴트 발생 시 발생 페이지 찾고 각 데이터 접근 목적
- 커널이 프로세스 종료할때 어떤 데이터 해제(free)할지 고르는 목적
- 이제부터 페이지폴트는 파일 또는 스왑슬롯에서 페이지를 가져와야한다는거임(이전엔 커널 또는 유저프로그램의 버그의미 했었음)
Frame table(프레임 테이블)
- 물리 프레임의 eviction policy(쫒아내기 정책)를 효율적으로 구현하도록 해줌
- 프레임 테이블에는 각 프레임의 엔트리 정보가 담겨있음
- 프레임 테이블은 비어있는 프레임이 없을떄 쫒아낼 페이지를 골라줌
Swap table(스왑 테이블)
- 사용중인 스왑 슬롯과 빈 스왑 슬롯을 추적함
- 프레임에 있는 페이지를 스왑 파티션으로 쫒아내기위해서 스왑 테이블은 미사용된 스왑 슬롯을 고를 수 있게 해줌
- 페이지가 다시 읽혀서 돌아가거나, 페이지 주인인 프로세스가 종료되어 버릴 경우에는 스왑테이블이 스왑 슬롯을 free해줌
'OS' 카테고리의 다른 글
크래프톤 정글 2기 2 PintOS Memory Mapped Files 헷갈리는거 (0) | 2023.06.22 |
---|---|
크래프톤 정글 2기 2 PintOS Virtual Memory 중간진행 (0) | 2023.06.18 |
크래프톤 정글 2기 2 PintOS SystemCall (0) | 2023.06.12 |
크래프톤 정글 2기 1-2 PintOS Command Line Parsing (0) | 2023.06.03 |
크래프톤 정글 2기 1-2 PintOS Priority Scheduling(우선순위 스케줄링) (0) | 2023.06.01 |