본문 바로가기

분류 전체보기88

[os] pintos의 load 함수 흐름 유저 프로세스 흐름을 다룰 때, load 함수는 대충 넘어갔었는데, project3의 virtual memory에 들어오고 나니 load 함수를 제대로 파악하지 않으면 결국 코드를 적을 수 없다는 것을 깨닫고 load 함수를 파헤쳐보았다. 덕분에 ELF 파일에 대한 공부도 되고, demand_paging 방식을 구현하기 위해 lazy_load 함수를 작성할 때 보다 수월하게 진행할 수 있었다. 한줄씩 자세하게 설명을 적고싶지만 아직 이번주 과제도 한참 남아서 우선은 그림을 먼저 올리고 시간이 남는다면 ㅠ 한줄씩 풀어보도록 하겠다! 위와 같은 load 함수가 호출하는 load_segment 는 어떤 흐름일지 우선 project 2까지의 load_segment 함수의 흐름을 정리해보겠다. (project3에.. 2022. 12. 9.
[os] 그림으로 보는 vm_alloc_page_with_initializer 함수 WH와 JW가 칭찬해준 그림... 이번주 끝내고 나에게 하루만이라도 시간이 있다면 이 그림과 더불어 상세한 설명을 다시 적을 수 있길 바람... 2022. 12. 9.
[os] 그림으로 보는 핀토스의 가상메모리와 물리메모리의 관계 오랫동안 나를 힘들게 했던 핀토스의 가상메모리와 물리메모리의 관계.. ^^; 삼주동안 열심히 들여다보면서 드디어 이 관계가 조금 명확해 진 것 같아 도식화 하였다. 미래의 핀토스 학생들에게 도움이 될 것이라 믿어 의심치 않으며 그림을 공유합니다 ㅎㅎㅎ 2022. 12. 6.
[OS] pintos의 interrupt frame 이란 + do_iret 함수가 하는 일 인터럽트 프레임 및 do_iret 함수 인터럽트 프레임이란 무엇인지, 그리고 do_iret 에서는 어떤 일을 하는 건지 이제서야 조금 알 것 같아 별도로 글을 작성한다. struct intr_frame do_iret을 이해하려면 인터럽트 프레임 구조체의 크기와, 인터럽트 프레임 구조체 내의 gp_registers 구조체, 그리고 나머지 멤버변수들의 크기를 알고있어야 한다. 데이터 크기 각각의 사이즈를 모두 출력해보았다. (뭘 굳이 찍어봐야 아나 싶은 것들도 있지만 난 아직도 데이터 크기가 어렵다 😭 ) printf( "인터럽트 프레임 사이즈: %d \\n", sizeof(struct intr_frame)); printf( "gp_registers 사이즈: %d \\n", sizeof(struct gp_r.. 2022. 11. 29.
[OS] Pintos - system call 호출 및 흐름 유저모드에서 유저 프로세스가 호출한 시스템 콜이 어떻게 커널모드로 바뀌고, 어떻게 해당 시스템 콜에 해당하는 함수가 호출되는지에 대한 과정이 헷갈려서 며칠동안 찾아해멨다. 반에 똑똑한 친구들이 많아서 드디어 흐름을 이해할 수 있어서 짧게 정리해보려고 한다. 우선 유저프로그램에서 fork() 시스템콜을 호출하는 상황을 예로 들어 흐름을 설명해보려고 한다. 1. 유저프로그램에서 fork(스레드이름); 으로 fork 호출 2. fork() : syscall1(fork의 시스템콜 번호, 스레드이름); 호출 /* lib/user/syscall.c 파일 */ pid_t fork (const char *thread_name){ return (pid_t) syscall1 (SYS_FORK, thread_name); }.. 2022. 11. 25.
Week08 | 눈물과 함께 끝난 핀토스 1주차 너무 바빠서 회고를 안 쓰고 넘어가려다가, 그래도 이번 주가 어땠는지는 짧게 기록하고 넘어가 보고자 글쓰기를 시작 .. 간략한 글쓰기를 위해 list 형식으로 핵심만 적어보겠다. 1. 자세히 보아야 예쁘다. 오래 보아야 사랑스럽다. 너도 그렇다.. 핀토스.. - 사람도 지식도 더 잘 알아갈수록 사랑스러운(?) 것 같다. 핀토스를 시작한 첫 날은 아주 지옥같았다. 2만 줄이 넘는 이 코드들을 도데체 어디서 부터 시작해서 이해해야 하는지, 도저히 알 수 없었고 앞으로 6주동안 핀토스 과제를 끝낼 수가 있을까 암담했다. 그렇지만, 이곳에서는 언제나 그랫듯 하루하루 지날 수록 조금씩 핀토스를 알게 되더라. 그리고 알게 되는 만큼 핀토스가 좀더 사랑스럽게(?) 조금은 더 재밌게 느껴졌다. 6주 후에는 핀토스를 정.. 2022. 11. 17.
반응형