SW사관학교 정글_개발일지/운영체제 (Pintos)(2)
-
[Pintos] Project 4 : File System
기존 파일 시스템: - 파일이 디스크에 기록될 때, 연속된 섹터로 할당됨 (Chunk) -> 외부 단편화를 유발함 - 파일의 길이가 생성과 동시에 정해지며, 늘어날 수 없음 - 루트 디렉토리에 모든 파일이 들어감. (디렉토리 계층구조가 없음) 핀토스 프로젝트 4에서 구현하는 파일 시스템 - 파일이 디스크에서 연속적으로 할당되는 것이 아니라, 빈 섹터들에 불연속적으로 할당하여 외부 단편화를 해결 -> 디스크에 분산되어있는 파일의 섹터들을 어떻게 이어줄까? -> FAT 이용 - 파일은 생성 시 길이가 0으로 정해지며, 쓰기를 시도할 때마다 길어짐 -> inode_write_at() 수정 - 계층적인 디렉토리 구조를 구현 : '/'을 기준으로 이름 컴포넌트를 구분 - Soft Link (Symbolic Lin..
2022.12.20 -
[Pintos] Project 3 : Virtual Memory
1. Supplemental Page Table과 Lazy Loading Eager Loading은 가상 페이지가 할당됨과 동시에 물리 메모리에 올라가는 것. 당장 읽거나 쓸 일이 없는 페이지도 물리 메모리에 올라가버림. (플젝 3 이전의 핀토스) 물리 메모리 공간은 한정적이기 때문에, 당장 써야 할 페이지가 올라오려면, 누군가는 내려가야 함 = Swapping Swap in/Swap out은 오버헤드가 상당히 큼 (디스크에 읽기/쓰기를 시도하는 것이기 때문에) 따라서 우리의 핀토스는, 페이지가 진짜로 필요할 때에 물리 메모리로 올리는 지연 로딩, 즉 Lazy Loading을 채택했고, 이를 직접 구현하는 것이 플젝 3의 목표 레이지 로딩을 구현하기 위해서, 페이지 할당 요청이 오면, 일단 uninit ..
2022.12.13