목록전체 글 (12)
seven05
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/DUV0d/btsKdEFJtQF/w00EVtLV09swwGdZrwBwSK/img.png)
기간: 2024.10.08~2024.10.14 이번 Pintos 4주차에는 저번주차에 마무리한 mmap의 다음과제인 Swap I/O 과 Copy-on-write 그리고 Project 4 File system의 첫과제인 Indexed and Extensible file 중 Indexed 까지만 진행할수있었다. 이전과 마찬가지로 Pintos WIL은 과제의 내용이나 개념보다는(검색하면 나보다 훨씬 정리를 잘하는사람이 많기때문) 나만의 경험에 대해서 써보려고 한다. 1. Project1의 코드가 Project3에 와서 발목을 붙잡았다.mmap을 다 구현했음에도 mmap-exit 테스트가 자꾸 실패하기에 테스트 코드를 보더라도 도저히 모르겠어서 swap구현을 먼저하러왔는데 swap을 전부 제대로 구현했음에도 s..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/0sFcq/btsJ6rrAGFp/o79HyyuhcF0KloucsLGeeK/img.png)
기간: 2024.10.08~2024.10.14 project2에서는 가장 기본적인 기능만 만들어져있는 가상메모리 시스템을 사용하다가 이번 프로젝트에 들어와서 가상메모리를 직접 만들게되었다. 일단 지금 mmap까지는 구현을 했고 munmap에서 문제가 생겨서 디버깅 중이였는데 WIL을 써야하는 시간이 되었기에 일단 멈추고 작성하게 되었다. 지금까지 진행하면서 겪은 문제와 나의 해결방법을 적어보려한다. 1. 페이지 폴트 핸들러가 참조해서 사용하는 spt를 만드는것이 과제의 시작이고 핸들러의 대부분의 함수들이 여기서 이 spt를 통해서 page를 찾아가야하는데 계속 spt를 통해서 va값이 일치하는 page를 찾아야 하는 부분에서 hash_find함수가 NULL을 뱉었다. 도저히 이유를 알수없었는데 범인은 v..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nL5OQ/btsJWPAMlVQ/lrbyzAFGjspUKDIBlUAMzK/img.png)
기간: 2024.10.01~2024.10.07 처음에 introduction에서 나오는 usrprog 쪽 코드들을 들여다보았을때는 alarm clock이나 thread와는 달리 진행 흐름이 전혀보이지 않았다. 우리가 하는 userprogram과제는 디스크에 저장되어있는 프로그램을 메모리로 가져와서 실행하고 그 유저프로그램이 하드웨어와 상호작용하는 행동을 하고싶으면 systemcall을 호출해서 커널이 대신 수행해주고 반환값을 주는 식으로 유저 영역과 커널영역을 구분해서 행동하도록 만들다보니 가상머신을 만들어서 동작해야하고 이러한 과정이 우리가 구현하는 부분에 전부 들어나있지않다보니 어디부터 만져야하는지 접근하기 힘들었다.권영진교수님의 pintos lab2 ppt를 통해 코드 흐름을 보면서 감을 익힐수있었..