일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 유니티
- 핀토스
- 백준
- 4기
- C
- 티스토리챌린지
- KRAFTON JUNGLE
- 크래프톤 정글 4기
- 연결리스트
- 크래프톤정글
- 알고리즘
- 추상클래스와인터페이스
- 크래프톤정글4기
- 네트워크
- 오블완
- 다익스트라
- pintos
- project3
- anonymous page
- BFS
- TiL
- User Stack
- Unity
- 크래프톤 정글
- c#
- 알고리즘수업-너비우선탐색2
- 이벤트 함수 실행 순서
- 전쟁-전투
- kraftonjungle
- 파이썬
- Today
- Total
목록pintos (6)
말감로그
📆2024. 04.02 Memory Mapped Files는 파일을 기반으로 매핑하는 페이지를 구현하는 것이다. 파일과 메모리 매핑은 System Call인 mmap()을 통해 이루어진다. Pintos에서는 vm/file.c의 do_mmap()을 이용해서 매핑을 수행하는데, 그 이전에 mmap()에 전달된 인자들에 대한 검증이 먼저 이루어져야 한다. 시스템 콜 mmap() 1. offset의 값이 PGSIZE에 알맞게 align되어 있지 않은 경우 2. addr이 NULL이거나, addr이 page-aligned되지 않았거나 kernel 영역인 경우 3. 매핑하려는 페이지가 이미 존재하는 페이지와 겹칠 때 (=spt에 존재하는 페이지일 때) 4. 찾는 파일이 디스크에 없는 경우 5. fd로 열린 파일의 ..
load_segment 흐름 load_segment (메모리만 로드) - > setupstack( 페이지 요구하고 매핑) -> page_fault (커널 제어권 획득) -> vm_try_handler (페이지 물리 프레임 매핑 ) -> lazy load segmet ( 프레임에 세그먼트 할당 ) 🤔궁금했던 점 왜 load_segment 부분에서 페이지를 load할 때 uninit 페이지 생성하지 않고 anonymous 페이지로 생성하는가? load_segment를 보면, vm_alloc_page_with_initializer를 호출할 때, 타입 인자를 VM_ANON으로 넘겨서, 모든 uninit 페이지가 page fault 이후 Anonymous로 생성되게 만들어놓은 것을 볼 수 있다. 왜 filed_b..
Implement Supplemental Page Table 가장 먼저 구현해야 할 것은 Supplemental Page Table이다. 기존에 핀토스에서는 pml4라는 페이지 테이블을 제공하고 있지만 가상 메모리를 구현하기에는 그 역할이 부족하다. pml4의 경우 주어진 va에 대해 실제 kva(물리메모리)로의 단순한 변환만을 해주고 있다. 즉, 우리가 사용할 페이지라는 구조체의 정보에 대한 어떠한 정보도 가지고 있지 않다. 그래서 SPT는 각각의 페이지에 대한 정보를 추가적으로 보충해주는 역할을 수행한다. SPT의 목적 1) 페이지 폴트가 발생했을 경우 해당 페이지 폴트가 발생한 페이지를 찾을 수 있고, 우리가 찾은 페이지가 가지고 있는 여러 가지 데이터들에 접근하기 위해서다. 2) 커널이 프로세스(..
📆2024.03.19 1. 퀴즈 2. PintOS - SystemCall close, write, read() 함수 구현 3. fork().. 오늘 퀴즈 보기 전까지 키워드 공부만 했는데 정작 퀴즈에는 키워드 부분이 나오지 않았다.. 하나 나왔나... 그리고 굿노트에다가 퀴즈 푸는데 잘못해서 굿노트를 삭제해버려서 그동안 정리했던 데이터들이 다 삭제되었다.. 그동안 열심히 필기하고 강의 들으면서 정리한 ppt.. 코어타임.. 등등 다 사라졌다는 거에 멘탈이 깨져서 퀴즈도 잘 보지 못했다. 새로운 마음으로 다시 시작하자..라는 마음으로 다시 부지런히 채워나가야지🥲🥲 다들 아이클라우드 업데이트하세요.... 그리고 어제 open 하나밖에 못했다는 거에 충격 먹어서 오늘 부지런히 해야겠다는 생각을 했고 그래서 c..