분류 전체보기
-
[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..
-
[SW 정글 66일차] Pintos project 2 - Argument Passing기타/SW 사관학교 정글 2021. 10. 8. 07:52
오늘부터 PintOs project 2. Argument Passing 구현에 들어가기 시작했다. 일단은 https://casys-kaist.github.io/pintos-kaist/에 설명되어있는 우리가 해결해야할 과제를 파악했다. 1. 내가 해결해야할 것은? 이번 Argument Passing은 문제는 그냥 딱 명확하다. 그런데 동작과정이 project 1때보다 머릿 속에서 잘 그려지지 않는다. 오늘 점심부터 gitbook과 ppt를 보는데 이해도 안되고 어떠한 로직을 그려야할지 모르겠어서 답답하기는 하지만 일단은 문제정의부터 하려고 한다. 우리가 어떠한 파일이나 프로그램을 실행시킬 때 main()함수에서부터 시작하고 main에 arguments를 준다. (물론 void인 경우에는 안 주겠지만 그러면..
-
[SW 정글 65일차] Pintos project 2 입문기타/SW 사관학교 정글 2021. 10. 7. 02:36
오늘 저녁까지 개념공부를 마치고 Pintos project 2 과제에 입문하려고 한다. 바로 구현에 들어가기 전에 이번에는 어떠한 것을 해야하는지를 정리하고 내일부터 코드를 보기 시작할 것이다. 일단은 아래 사이트에서 project2: user programs introduction을 읽고 정리하려고 한다. https://casys-kaist.github.io/pintos-kaist/project2/introduction.html Introduction · GitBook Project2: User Programs Now that you've worked with Pintos and are becoming familiar with its infrastructure and thread package, it'..
-
[SW 정글 64일차] 프로세스의 제어기타/SW 사관학교 정글 2021. 10. 6. 02:56
오늘은 컴퓨터 시스템 8장을 모두 읽고 정리하고 싶은 내용들을 여기에 정리하려고 한다. 아마 이 개념들이 이번 project2를 진행하는 데 있어 중요한 개념들이 될 것이라고 생각한다. Unix는 프로세스를 제어하기 위한 많은 시스템 콜을 제공하는데 어떠한 시스템 콜들이 있는지 알아보자. 1. 프로세스 ID 가져오기 마치 사람들이 고유의 주민번호를 가진 것처럼 프로세스들은 각자의 ID를 가지고 있다. 시스템 콜로 프로세스의 ID를 알 수 있는데 getpid()는 이 함수를 호출한 프로세스의 ID를 리턴한다. 그리고 getppid()는 함수를 호출한 부모 프로세스의 ID를 리턴한다. #include #include pid_t getpid(void); pid_t getppid(void); 2. 자식 프로세스..
-
[SW 정글 63일차] 예외 상황기타/SW 사관학교 정글 2021. 10. 5. 02:57
오늘은 새로운 주차를 시작하기 전에 컴퓨터 시스템 8장 예외적인 제어흐름을 읽으면서 안 내용들을 정리하려고 한다. 이전에 읽은 적이 있지만 이번에 다시 읽으면서 제대로 나의 것으로 만들려고 노력했다. 1. 예외 상황 책에 나온 예외 상황에 대한 정의를 말하기 전에 내가 책을 읽고 이해한 예외 상황에 대해 말하려고 한다. 우리는 어떠한 프로그램을 실행하고 그 프로그램은 프로세스가 된다. 프로세스에는 인스트럭션(instruction)들이 존재하고 인스트럭션이 순차적인 흐름으로 진행하면서 예기치 못한 상황을 접할 수 있다. 예를 들면, 0으로 나누는 연산을 한다던가, 메모리 상에 접근 불가한 영역을 접근하려고 한다던가 등.. 이러한 상황들을 예외 상황이라고 생각한다. 예외 상황은 부분적으로는 하드웨어와 운영체..
-
SW 정글 8주차 회고기타/SW 사관학교 정글 2021. 10. 4. 10:13
[8주차 회고] 2021년 10월 04일 월요일, 8주차가 마무리 되는 날이고 8주차는 전체적으로 어땠는지 이 글을 쓰면서 돌아보려고 한다. 이번 주차부터 pintos를 만들기 시작했다. OS프로젝트는 시작하기 전에 많은 말들이 떠돌았는데 1기 분들이 정말 어려워했고 진행하던 스터디를 모두 중단할만큼 시간이 부족한 프로젝트이다, 우리 손으로 어떻게 OS를 만드냐 등... 일단은 첫 주차를 보내면서 공부를 한 소감은 내게 주어진 문제를 파악하고 해결해나가는 과정, 앞으로 나아가는데 있어 발목을 잡을만큼 이해가 되지 않는 것은 priority donation말고는 없었다. 그래서 팀원과 주차를 시작하면서 계획한대로 하루의 목표량을 해내며 진행이 되었고 일요일에는 나만의 시간을 가지면서 조금 더 os에 대한 ..
-
[SW 정글 62일차] 스케쥴링을 더 알고싶다.기타/SW 사관학교 정글 2021. 10. 4. 03:19
오늘은 어제 공부한 기본적인 스케쥴링 이외에 조금 더 advanced된 스케쥴링을 공부했다. 공부자료로는 three easy pieces를 활용했다. 오늘 정리할 것은 Lottery scheduling이다. Multi-level Feedback Queue는 내가 종이에 정리한 내용을 사진으로 첨부하려고 한다. 지금 시간도 시간인지라 다시 글로 정리하면 아마 일출을 볼 것같기 때문.. 1. Multi-level Feedback Queue 2. Lottery scheduling 어제 정리한 스케쥴링들은 어떻게 하면 최적의 반환 시간을 유지할 수 있을지, 어떻게 하면 최적의 응답 시간을 유지할 수 있을지에 대한 고민을 풀어나가면서 나온 스케쥴링이다. 하지만 Lottery scheduling은 반환 시간이나 응..