본문 바로가기

개발일지/PintOS12

pintos를 마무리하며...[크래프톤 정글] 입소 후 지금까지 많은 문제들을 만나며 고민해 보는 시간을 가졌었다.  하지만 어떠한 문제들보다 pintos에서 만난 문제들이 더 직접적으로 느껴졌다. 다른 코드들보다 더 깊숙이, 정말 코드 끝까지 파고들어 가는 느낌이 강하게 들었던 프로젝트였다. 이런 시간들을 보내고 나니 많은 코드를 읽고 사용하는것에 조금은 익숙해진 듯하다. OS 개념을 글로 배우는 것과 개념을 직접 구현하는 것은 완전히 다른 것이다. 핀토스를 하게 되면 많은 것을 얻을 수 있다. 하지만 많은 오류들을 마주하게 되어 그것들을 마주하고 분석하고 디버깅하는 힘이 필요하다. 2023. 12. 30.
pintos......... 나는 멍청이다. 24시간 동안 같은 문제를 해결하지 못했다.FAIL tests/vm/page-merge-parFAIL tests/vm/page-merge-stkFAIL tests/vm/page-merge-mm page-merge 네가 이겼다. 테스트 코드를 보며 오류가 있을만한 부분을 고쳐가며 수정했지만 결국 성공하지 못했다.오히려 다른 테스트가 실패하는 일만 생겼다. 테스트 케이스에서 사용하는 create system call 에 lock을 추가하였고, lock acquire 을 수정하였다.하지만../.! 2023. 12. 28.
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 .. 2023. 12. 25.
pintos - virtual memory(6) 나는 왜 syn-read, syn-write이 안되는가...!!!!pass tests/userprog/args-nonepass tests/userprog/args-singlepass tests/userprog/args-multiplepass tests/userprog/args-manypass tests/userprog/args-dbl-spacepass tests/userprog/haltpass tests/userprog/exitpass tests/userprog/create-normalpass tests/userprog/create-emptypass tests/userprog/create-nullpass tests/userprog/create-bad-ptrpass tests/userprog/create-.. 2023. 12. 22.
pintos - virtual memory(5) Supplemental Page Table - Revisitbool 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_f.. 2023. 12. 22.
pintos - virtual memory(4) 부제: 어떤 것이 더 효율적일까?FAIL tests/userprog/args-noneFAIL tests/userprog/args-singleFAIL tests/userprog/args-multipleFAIL tests/userprog/args-manyFAIL tests/userprog/args-dbl-spaceFAIL tests/userprog/haltFAIL tests/userprog/exitFAIL tests/userprog/create-normalFAIL tests/userprog/create-emptyFAIL tests/userprog/create-nullFAIL tests/userprog/create-bad-ptrFAIL tests/userprog/create-longFAIL tests/user.. 2023. 12. 20.
728x90