기타
-
[SW 정글 73일차] Pintos project 3 입문 (Virtual Memory)기타/SW 사관학교 정글 2021. 10. 15. 02:10
오늘부터 pintos project 3 virtual memory를 시작하는 날이다. 오늘은 공부할 수 있는 시간이 별로 없었기에 일단은 아래 깃북에서 project 3 introduction을 읽고 기본적으로 알아야할 것이 무엇인지 파악하는 시간을 가졌다. 읽으면서 모든 것이 이해되지는 않아서 컴퓨터시스템 9장과 Three Easy Pieces를 읽을 예정이다. https://casys-kaist.github.io/pintos-kaist/project3/introduction.html Introduction · GitBook Locate the page that faulted in the supplemental page table. If the memory reference is valid, use t..
-
SW 정글 9 ~ 10주차 회고기타/SW 사관학교 정글 2021. 10. 14. 10:28
[9 ~ 10주차 회고] 2021년 10월 14일 목요일, 10주차가 마무리 되는 날이고 9주차부터 10주차까지는 전체적으로 어땠는지 이 글을 쓰면서 돌아보려고 한다. 9주차와 10주차에는 project 1(8주차 진행)과는 다른 점은 user program을 하나의 process로 만들면서 커널과 인터렉트할 수 있는 system call을 구현하는 것이였다. 일단은 첫번 째 과제인 argument passing을 하면서 CLI환경에서 내가 어떠한 program을 실행시키고자 할 때 쓰는 명령어들이 OS입장에서는 어떻게 받아들이고 process로 만들기 위해 어떠한 과정을 거치는지 알 수 있었다. 띄어쓰기를 기준으로 tokening을 한 후에 arugment 1byte 단위로 차곡차곡 user stack..
-
[SW 정글 72일차] Pintos project 2 - System Calls 마무으리기타/SW 사관학교 정글 2021. 10. 14. 02:10
/* 구현 완료 */ void halt (void) NO_RETURN; /* 구현 완료 */ void exit (int status) NO_RETURN; /* 구현 완료 */ int exec (const char *file); /* 구현 완료 */ int wait (pid_t); /* 구현 완료 */ int filesize (int fd); /* 구현 완료 */ void seek (int fd, unsigned position); /* 구현 완료 */ unsigned tell (int fd); /* 이해 미숙 */ bool create (const char *file, unsigned initial_size); /* 이해 미숙 */ bool remove (const char *file); int open..
-
[SW 정글 71일차] Pintos project 2 - System Calls 구현 3일차기타/SW 사관학교 정글 2021. 10. 12. 14:06
/* 구현 완료 */ void halt (void) NO_RETURN; /* 구현 완료 */ void exit (int status) NO_RETURN; pid_t fork (const char *thread_name); /* 구현 완료 */ int exec (const char *file); /* 구현 완료 */ int wait (pid_t); bool create (const char *file, unsigned initial_size); bool remove (const char *file); int open (const char *file); int filesize (int fd); int read (int fd, void *buffer, unsigned length); int write (int..
-
[SW 정글 70일차] Pintos project 2 - System Calls 구현 2일차기타/SW 사관학교 정글 2021. 10. 12. 02:10
오늘은 지난 번에 system calls halt()와 exit() 구현에 이어 진행해보려고 한다. /* 구현 완료 */ void halt (void) NO_RETURN; /* 구현 완료 */ void exit (int status) NO_RETURN; pid_t fork (const char *thread_name); int exec (const char *file); int wait (pid_t); bool create (const char *file, unsigned initial_size); bool remove (const char *file); int open (const char *file); int filesize (int fd); int read (int fd, void *buffer, ..
-
[SW 정글 69일차] 오늘은 Concurrency 되짚어 보기기타/SW 사관학교 정글 2021. 10. 11. 02:30
오늘은 일요일이여서 잠시 pintos project 2 구현을 멈추고 project 1을 진행하면서 확실히 나의 것으로 만들지 못한 concurrency에 대해 복습해보려고 한다. 공부자료는 three easy pieces와 컴퓨터 시스템 12장이다. 좋은 자료는 내 곁에 항상 있고 나는 그 자료를 기반으로 나의 것으로 만들 시간과 노력만 있으면 된다. Concurrency를 이해하는데 알아두면 좋은 개념은 스레드라고 생각한다. 스레드는 한 마디로 말하자면 하나의 프로세스 내에서 실행되는 작업의 흐름 단위이다. 조금 더 구체적으로 말하면 하나의 프로세스는 code, data, stack, heap 영역으로 나뉘어진 각자의 주소 공간을 할당받는데 프로세스 안에 여러 스레드가 존재하게 되면 스레드마다 또 다..
-
[SW 정글 68일차] Pintos project 2 - System Calls 구현 1일차기타/SW 사관학교 정글 2021. 10. 10. 02:56
오늘부터 PintOs project 2. System Calls 구현에 들어가기 시작했다. 다른 동료들은 일찍 시작했는데 다들 할 것이 너무 많다고들 말한다. 일단은 목요일 10시 전까지만 완료하면 되니까 우리 조는 우리 조 방식대로 계획을 세워 진행하려고 한다. 1. 내가 해결해야할 것은? 이번에 내가 해야할 것은 System Calls 구현이다. system call은 프로세스가 user mode일 때에 하지 못하는 일들을 커널에게 요청하는 경우에 쓰는 일종의 커널에서 제공해주는 API이다. user mode일 경우에 못하는 일들은 대표적으로 I/O 요청(read, write), 네트워크 통신, 메모리 접근 등이 있다. 문제는 정말 간단하게 system call을 구현해달라는 것인데 구현을 위해 전체..
-
[SW 정글 67일차] Pintos project 2 - Argument Passing 구현기타/SW 사관학교 정글 2021. 10. 8. 16:01
오늘부터 Argument Passing 구현을 위해 해석해야하는 기존의 코드를 이해하고 추가해야할 코드를 구현했다. 1. 코드 파헤치기 - int main(void) (init.c) int main (void) { uint64_t mem_end; char **argv; /* Clear BSS and get machine's RAM size. */ bss_init (); /* Break command line into arguments and parse options. */ argv = read_command_line (); argv = parse_options (argv); /* Initialize ourselves as a thread so we can use locks, then enable cons..