일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pintos
- 핀토스
- 이벤트 함수 실행 순서
- 전쟁-전투
- KRAFTON JUNGLE
- 티스토리챌린지
- Unity
- kraftonjungle
- project3
- 크래프톤 정글 4기
- 알고리즘
- 오블완
- 4기
- 다익스트라
- 백준
- 유니티
- 크래프톤 정글
- 알고리즘수업-너비우선탐색2
- 네트워크
- TiL
- anonymous page
- 추상클래스와인터페이스
- 크래프톤정글
- 연결리스트
- c#
- 파이썬
- C
- 크래프톤정글4기
- User Stack
- BFS
- Today
- Total
목록Krafton jungle (46)
말감로그
📆2024.04.03 🚫 mmap-exit 테스트 케이스 문제 해당 테스트 케이스를 통과하려면 process_exit 를 수정해야 한다. void process_exit (void) { struct thread *t = thread_current(); /* TODO: Your code goes here. * 여기서 프로세스 자원 정리를 구현하는 것을 권장한다. * 프로세스가 종료되는 경우 모든 파일을 암시적으로 닫는다. */ // 스레드의 파일 닫기 file_close(t->self_file); for (int fd = 2; fd fdt[fd] != NULL) { close(fd); } } palloc_free_multiple(t->fdt, FDT_PAGE..
📆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로 열린 파일의 ..
📆2024.4.1 1. Stack Growth 완성 2. 백준 - 숨바꼭질 Stack Growth 조건 1. addr이 rsp보다 높은 주소를 가리켜야 한다. 2. rsp - 8에 접근한 경우에도 stack growth로 해결한다. 3. USER_STACK 아래에 있어야 하고, USER_STACK - (1MB) 위에 있어야 한다. -> USER_STACK 영역 내에 있어야 한다. bool vm_try_handle_fault(struct intr_frame *f UNUSED, void *addr UNUSED, bool user UNUSED, bool write UNUSED, bool not_present UNUSED) { struct supplemental_page_table *spt UNUSED = &t..
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..