본문 바로가기
개발자 도전기/[OS] pintOS

pintOS | Project 3 회고

by 답수 2021. 10. 28.
728x90
SMALL

 

 

1. Project3 목표

pintos-project3 git book

 

Introduction · GitBook

Locate the page that faulted in the supplemental page table. If the memory reference is valid, use the supplemental page table entry to locate the data that goes in the page, which might be in the file system, or in a swap slot, or it might simply be an al

casys-kaist.github.io

 

핀토스 프로젝트 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

pintOS | Project 3 | 버그잡자

 

 

3. 구현 및 결과

깃북과 강의안에 충실하게 계속 따라가다보니 extra 제외하고 all pass

 

 

4. Project3 Rewind

이번 프로젝트는 저번 프로젝트 때와는 다르게 구현보다는 개념과 흐름 이해에 더 중점을 맞췄고, 그래서 개인적으로 공부하는 시간이 더 길었다. 깃북와 핀토스 강의 자료를 자세하게 뜯어보면서 이전보다 더 능동적으로 프로젝트에 임할 수 있었다.

 

아쉬웠던 점은 pintos와 실제 OS의 구현 간의 차이를 인지하지 못 하고 개념을 혼동하는 경우도 있었으며, 이런 상황에서 적극적으로 다른 사람들에게 물어봤으면 조금은 더 효율적으로 프로젝트를 진행할 수 있었을 것이라는 생각이 들었다. 그래도 열심히 삽질한 흔적들 덕분에 더 깊게 이해하게 된 측면도 있다.

 

개념이해나 구현상 어려움이 있을 때 조원들과 얘기하면서 정리를 했었고, 중간중간에 막히는 fail을 통과시킬때마다 깃에 push하고 merge하면서 조원들과 코드를 공유했다. 

 

프로젝트 4는 실제로 공부할 수 있는 물리적인 시간마저 많지 않다. 할 수 있는 것은 최대한 열심히 해보자.

 

728x90
LIST

댓글