1. Project3 목표
핀토스 프로젝트 3의 주제는 Virtual Memory이다. 프로젝트 3 이전까지 핀토스는 세그먼트를 물리메모리로 직접 로드해서 할당하는 방식이었고, 이는 메모리 공간 낭비 등 비효율적인 문제가 있었다. 이를 해결하기 위해 사용이 요구되는 파일만 메모리에 올리기 위해 lazy_load 방식을 구현하고, 파일의 타입에 따라 초기화하고 할당, 해제하는 방법을 다르게 해야 한다.
2. 공부 내용 정리
pintOS | Project 3 | Memory Management
pintOS | Project 3 | Anonymouse Page
pintOS | Project 3 | Stack Growth
pintOS | Project 3 | Memory Mapped Files
pintOS | Project 3 | Swap In/Out
3. 구현 및 결과
깃북과 강의안에 충실하게 계속 따라가다보니 extra 제외하고 all pass
4. Project3 Rewind
이번 프로젝트는 저번 프로젝트 때와는 다르게 구현보다는 개념과 흐름 이해에 더 중점을 맞췄고, 그래서 개인적으로 공부하는 시간이 더 길었다. 깃북와 핀토스 강의 자료를 자세하게 뜯어보면서 이전보다 더 능동적으로 프로젝트에 임할 수 있었다.
아쉬웠던 점은 pintos와 실제 OS의 구현 간의 차이를 인지하지 못 하고 개념을 혼동하는 경우도 있었으며, 이런 상황에서 적극적으로 다른 사람들에게 물어봤으면 조금은 더 효율적으로 프로젝트를 진행할 수 있었을 것이라는 생각이 들었다. 그래도 열심히 삽질한 흔적들 덕분에 더 깊게 이해하게 된 측면도 있다.
개념이해나 구현상 어려움이 있을 때 조원들과 얘기하면서 정리를 했었고, 중간중간에 막히는 fail을 통과시킬때마다 깃에 push하고 merge하면서 조원들과 코드를 공유했다.
프로젝트 4는 실제로 공부할 수 있는 물리적인 시간마저 많지 않다. 할 수 있는 것은 최대한 열심히 해보자.
'개발자 도전기 > [OS] pintOS' 카테고리의 다른 글
pintOS | Project 4 | Indexed and Extensible Files (0) | 2021.10.29 |
---|---|
pintOS | Project 4 | Introduction (0) | 2021.10.28 |
pintOS | Project 3 | 버그잡자 (1) | 2021.10.22 |
pintOS | Project 3 | Swap In/Out (0) | 2021.10.21 |
pintOS | Project 3 | Memory Mapped Files (0) | 2021.10.20 |
댓글