본문 바로가기

분류 전체보기64

pintos - virtual memory(7) 지금까지 스택은 USER_STACK에서 시작하는 단일 페이지였으며, 프로그램 실행은 이 크기로 제한되었다. 이제 스택이 현재 크기보다 커지면 필요에 따라 추가 페이지를 할당해야한다.\ bool vm_try_handle_fault (struct intr_frame *f, void *addr, bool user, bool write, bool not_present); git_book: 이 함수는 페이지 오류 예외를 처리하는 동안 userprog/exception.c의 page_fault에서 호출됩니다. 이 함수에서는 페이지 오류가 스택 증가에 유효한 경우인지 여부를 확인해야 합니다. 스택 증가로 오류를 처리할 수 있음을 확인했다면 오류가 발생한 주소로 vm_stack_growth를 호출합니다. void vm.. 2023. 12. 25.
pintos - virtual memory(6) 나는 왜 syn-read, syn-write이 안되는가...!!!! pass tests/userprog/args-none pass tests/userprog/args-single pass tests/userprog/args-multiple pass tests/userprog/args-many pass tests/userprog/args-dbl-space pass tests/userprog/halt pass tests/userprog/exit pass tests/userprog/create-normal pass tests/userprog/create-empty pass tests/userprog/create-null pass tests/userprog/create-bad-ptr pass tests/user.. 2023. 12. 22.
pintos - virtual memory(5) Supplemental Page Table - Revisit bool supplemental_page_table_copy (struct supplemental_page_table *dst, struct supplemental_page_table *src); git_book 설명: 보조 페이지 테이블을 src에서 dst로 복사합니다. 이 함수는 자식이 부모의 실행 컨텍스트를 상속해야 할 때 사용됩니다(예: fork()). src의 보충 페이지 테이블에 있는 각 페이지를 반복하고 dst의 보충 페이지 테이블에 있는 항목의 정확한 복사본을 만듭니다. 초기화되지 않은 페이지를 할당하고 즉시 청구해야 합니다. supplemental_page_table_copy함수 호출하는 곳: hash.c에 있는 hash_fir.. 2023. 12. 22.
pintos - virtual memory(4) 부제: 어떤 것이 더 효율적일까? FAIL tests/userprog/args-none FAIL tests/userprog/args-single FAIL tests/userprog/args-multiple FAIL tests/userprog/args-many FAIL tests/userprog/args-dbl-space FAIL tests/userprog/halt FAIL tests/userprog/exit FAIL tests/userprog/create-normal FAIL tests/userprog/create-empty FAIL tests/userprog/create-null FAIL tests/userprog/create-bad-ptr FAIL tests/userprog/create-long FA.. 2023. 12. 20.
728x90