WEEK 12 PintOS TIL(6월2일 월요일)

Devkty·2025년 6월 3일

[목표]
pintos 카이스트 강의를 듣습니다. (다른 사람 벨로그 내용으로 대체 예정)
깃북을 보고 개념을 이해합니다. (진행중)
정글에서 제공하는 키워드를 보고 정리합니다.

노션을 만들어서 진행할 것인가? → 따로 적진 않을 것 같다.

09:55 ~ 12:00

어제에 이어서 키워드들을 정리해보도록 하겠습니다.

12:00 ~ 13:00

점심 식사를 하고, 휴식을 했습니다. 키워드 정리를 마무리 했습니다.

13:00 ~ 13:30

OS 특강 전에 키워드 정리를 마무리 했습니다.

13:30 ~ 15:00

2번째 OS 특강을 들었습니다. 해당 내용은 정리를 해두었으므로 시간이 된다면 추후에 포스팅하도록 하겠습니다.

15:10 ~ 17:00

개념에 대해 정리한 내용을 벨로그에 사진을 추가하여 작성하고 있습니다. 개념이 10개가 넘어서 생각보다 시간이 오래걸리고 있다.

17:00 ~ 18:00

유윤선 코치님과의 커피챗
주로 Pintos를 어떤식으로 풀어나갈지 이야기를 나누었습니다. 팀플레이 능력을 좀 더 올리는 것이 좋을 것 같습니다.

18:00 ~ 19:00

식사를 하고 휴식을 가졌습니다.

19:00 ~ 19:40

아까 작성한 개념을 벨로그에 정리중입니다. 사진까지 같이 해서 모든 개념을 벨로그에 올렸습니다.

19:40 ~ 20:50

어느정도 VM의 개념은 잡았으니, 그냥 냅다 코드를 짜보겠습니다. GPT의 도움을 통해 시작 부분을 지정해보았습니다.

[이하 GPT가 추천한 방식]

정리할 개념들

  1. 페이지 테이블(Page Table)과 주소 변환
    • 가상 주소 → 물리 주소로의 변환
    • PML4(64-bit 아키텍처 상의 top-level page table)
  2. Lazy Loading (지연 로딩)
    • 페이지를 "필요할 때" 로딩하는 방식
    • stack, 파일-mapped, anonymous page가 필요할 때만 frame을 할당
  3. Anonymous vs File-backed Page
    • anonymous: heap, stack에 사용됨
    • file-backed: 실행 파일, mmap 파일 등
  4. 페이지 폴트(Page Fault) 처리
    • 페이지가 없는 주소에 접근했을 때 발생
    • fault를 잘 처리해줘야 lazy loading이 작동함
  5. Frame allocator + Page allocator
    • frame: 물리 메모리 관리
    • page: 가상 메모리와 그 구조 관리

이 내용의 대부분은 알지만, pml4에 대해서 정확히 모르겠어서 이것만 추가적으로 개념을 알아보도록 하겠습니다.

→ pml4는 정리완료했습니다. 주소 변환의 첫번째 인덱스와 같다고 이해하면 편합니다.

구현 순서

단계구현 내용
1단계vm_init(), page_alloc, frame_alloc 등 구조 파악
2단계Lazy loading - initializer 등록/호출
3단계Anonymous page 구현
4단계Stack growth 및 fault 처리
5단계File-backed page 구현 (프로젝트 4 확장 대비)

20:50 ~ 22:00

왜 이렇게 시간이 빨리 갔는지 모르겠다. 서둘러서 내가 구현해야될 첫번째 과제에 대해 분석중이다.

22:00 ~ 22:50

이동석 코치님의 pintos vm 부분 강의가 있었습니다. 그러나 해당내용은 정리가 완료된다면 올려보도록하겠다.

22:50 ~ 23:30

vm 구현 시작해서 어떤 코드를 수정해야되는지 알아보았습니다. 필요한 부분을 수정해봤습니다.

23:30 ~ 00:30

코어타임 전에 라면 식사를 했습니다.

코어타임 (00:30 ~ 02:00)

머지 원칙, 각자의 팀에선 어떻게 진행했는지?, 협업 계획, 여태까지 배운 것들에 대해 이야기를 나눴습니다.

02:00 ~03:30

spt라는 보충 테이블 구현하다가 페이지 비교하는 page_less와 page_hash 작성하다가 집으로 갔다.

내일 다시 확인해보고 이해하며 재작성해보겠다. 졸려서 이해가 잘 안된채로 작성하는 것 같다.

profile
모든걸 기록하며 성장하고 싶은 개발자입니다. 현재 크래프톤 정글 8기를 수료하고 구직활동 중입니다.

0개의 댓글