기타
-
[SW 정글 58일차] Pintos Project 1. Alarm clock기타/SW 사관학교 정글 2021. 9. 30. 02:54
오늘부터 PintOs project 1. Alarm clock 구현에 들어가기 시작했다. 일단은 https://casys-kaist.github.io/pintos-kaist/에 설명되어있는 우리가 해결해야할 과제를 파악했다. 1. 내가 해결해야할 것은? timer_sleep (int64_t ticks) { int64_t start = timer_ticks (); ASSERT (intr_get_level () == INTR_ON); while (timer_elapsed (start) < ticks) thread_yield (); } Pintos에서 기본적으로 구현한 timer_sleep()함수의 구조는 위와 같다. timer_sleep()은 인자로 받은 ticks시간만큼 어떠한 쓰레드를 잠들게 하는 것(r..
-
[SW 정글 57일차] 프로세스 상태기타/SW 사관학교 정글 2021. 9. 29. 02:51
오늘은 Pintos PROJECT1 THREADS의 첫번째 과제인 Alaram Clock을 reimplement시키기위해 알아야 할 프로세스 상태에 대해 정리하려고 한다. 1. 프로세스 상태 어떠한 프로그램이 실행되었을 때, 커널로부터 메모리를 할당받으면서 프로세스가 되는데 프로세스는 위의 사진과 같은 상태를 가진다. 한 부분씩 보며 해당 상태가 어떠한 상태인지 이해해보자. 1) create 상태 create 상태는 작업(job)을 커널에 등록하고 PCB할당 및 프로세스가 생성된 상태이다. create 상태에서는 가용 메모리 공간을 체크하여 메모리를 할당받은 프로세스는 ready 상태, 할당받지 못한 프로세스는 suspende ready 상태로 전이를 한다. 2) Ready 상태 ready 상태는 프로세..
-
[SW 정글 56일차] Pintos 입문하면서 용어 정리하기기타/SW 사관학교 정글 2021. 9. 28. 03:38
오늘은 Pintos 만들기에 들어갔다. 일단은 document를 읽으면서 무엇을 해야하는지 알아보고 document에서 나온 용어 중 정리하면 좋을 개념들을 정리하려고 한다. 1. Kernel vs Operating System(OS) 개인적으로 커널은 운영체제라는 개념과 헷갈리는 용어이다. 커널은 운영체제의 핵심이 되는 컴퓨터 프로그램의 하나로 하드웨어와 프로세스의 운용을 위한 소프트웨어이다. 커널이라고 하면 운영체제를 말하기도 하고 응용 프로그램들의 실행 환경을 이루고 운용하는 것을 말하기도 한다. 시스템의 자원은 제한되어 있지만 동작되고 있는 프로그램은 많기 때문에 커널은 한 프로그램이 언제 얼마큼 자원을 써야 할지 결정하고 운영 시켜야 한다. 커널의 특징은 다음과 같다. - 커널은 디스크에 파일로..
-
SW 정글 7주차 회고기타/SW 사관학교 정글 2021. 9. 27. 11:50
[7주차 회고] 2021년 09월 27일 월요일, 7주차가 마무리 되는 날이고 7주차는 전체적으로 어땠는지 이 글을 쓰면서 돌아보려고 한다. 7주차를 모두 보내고 난 오늘, 솔직히 많은 아쉬움이 남는 날이다. 7주차는 추석연휴를 끼고 있어서 다른 주차보다 3일이 더 주어졌다. 나는 추석연휴에도 평소처럼 강의실에 나와서 공부를 했다. 나는 개인적으로 계획이 없이 진행하는 것을 선호하지 않아서 7주차가 시작되는 09월 16일 이번 주차는 어떻게 보낼지 계획을 짰다. 일단은 아침에 missing semester를 들을려고 계획을 잡았다. 강의가 총 11강의지만 vim, QnA, 흥미로운 주제들을 skip한다는 가정 하에 8강의만 들으면 됐고 7추가는 총 10일 주어지기에 하루에 한 강의씩들으면 될 것이라고 생..
-
[SW 정글 55일차] HEAD 메소드는 왜 쓸까?기타/SW 사관학교 정글 2021. 9. 26. 16:02
이번 웹 서버 구현 과제를 진행하면서 컴퓨터 시스템 책에 있는 과제문제에 HEAD 메소드 요청에 대한 응답을 구현하라는 것이 있었다. 이번 주 화요일(2021.09.23)에 HEAD메소드가 무엇인지 알아보고 구현을 했는데 지금 돌아보니 왜 HEAD를 쓰는지는 안알아봤다. 그래서 생각난 김에 정리해보려고 한다. 일단은 간단하게 HEAD 메소드가 무엇인지 알아보자. HEAD 메서드는 리소스를 GET메서드로 요청했을 때 응답으로 오는 헤더부분만 요청하는 메소드이다. HEAD 메서드에 대한 응답은 본문(body부분)을 가져선 안되며, 본문이 존재하더라도 무시해야 한다. 그러나, 응답으로 받는 헤더에는 본문 콘텐츠를 설명하는 개체 헤더는 포함할 수 있다. 개체 해더는 entity-body에 대한 메타데이터를 필드..
-
[SW 정글 54일차] IP 5계층기타/SW 사관학교 정글 2021. 9. 26. 03:13
오늘은 네트워크의 개략적인 개념들을 공부하고 정리하려고 한다. 네트워크라는 분야가 너무 넓고 그 많은 것을 제한된 시간 안에 나의 것으로 만들기는 부족하므로 이번 주차를 진행하면서 알아둬야 할 topic을 잡아서 공부를 했다. 1. IP 5계층 네트워크라는 것을 처음 접하면 아마 OSI 7계층은 들어봤을 것이다. OSI(Open Systems Interconnection Reference) 7계층은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 이번에는 Internet Protocol을 사용하는 통신 체계에서의 layered architecture인 five layer(5계층)을 다뤄볼 생각이여서 OSI 7계층에서 Presentatio..
-
[SW 정글 53일차] 소켓을 구현하긴 했는데 나는 소켓을 완벽히 이해했을까기타/SW 사관학교 정글 2021. 9. 25. 02:26
이번 주차는 웹 서버를 만드는 주차로 소켓 인터페이스를 활용하여 Tiny 서버를 구현하고 로컬로 클라이언트(웹 브라우저)에서 요청을 보내어 응답을 받는 것을 확인했다. 너무 신기했고 대학교 때 전공으로 배웠던 것을 소프트웨어적으로 만들어보았다는 것에 성취감도 느껴졌다. 그 후에, 프록시를 공부하고 구현해보려고 했는데 문득 '내가 소켓을 잘 알고 사용한 것일까?', '소켓은 왜 나왔을까?, '소켓은 반드시 필요할까?'라는 의문이 들었다. 그래서 프록시를 구현하는 시간을 가지기 전에 소켓에 대해 더 알아보려고 한다. 소켓은 무엇일까? 소켓은 two-way commuication channel에서 endpoint라고 말할 수 있는데 다양한 구조체 정의를 봤겠지만 기본적으로는 IP주소와 포트번호 정보를 가지고 ..
-
[SW 정글 52일차] 오늘은 일기만..기타/SW 사관학교 정글 2021. 9. 24. 03:28
[오늘의 나는 어땠을까?] 오늘은 다시 잠을 줄여 5시간 정도 자고 아침 8시에 강의실에 왔다. 8시 30분부터 동료들과 알고리즘 1문제를 풀었는데 30분 제한시간을 두기는 했지만 30분 넘게 시간을 주어도 풀이방법이 떠오르지 않았을 문제였다. 알고리즘 주차가 끝나고 계속해서 최소 1문제씩 풀고 있지만 답을 안보고 제한시간 안에 푼 문제가 반도 안된다.. 너무 신경이 쓰이고 코딩테스트라는 벽을 넘지 못하여 개발자 커리어를 시작하지 못할까 불안하기도하다. 이렇게 불안해할 시간에 문제 하나라도 더 풀라고 하지만 그게 말처럼 쉽게 되지는 않는다. 일단은 그냥 계속 해볼 수 밖에 없다.. 그리고 내가 얼마나 집중을 할까라는 궁금증이 생겨 오늘 정말 공부만 한 시간을 스탑워치로 재보았다. 8시간을 조금 넘기는 수..