기타/SW 사관학교 정글
-
[SW 정글 88일차] File system 기초 개념 공부 마무리기타/SW 사관학교 정글 2021. 10. 30. 00:43
오늘은 어제에 이어 file system 기초 개념 공부를 마무리 지었다. file system에 대한 모든 개념을 완벽히 2틀만에 공부하는 것은 사실 상 무리이다. 하지만 pintos project 4를 진행하기 위한 기초 개념을 다지기 위해 노력했고 김덕수 교수님의 남은 강의와 three easy peices 책에서 file system에 관한 내용을 읽었다. project 4를 할 수 있는 시간이 화요일 오후 4시까지여서 시간이 얼마 없다. 그래서 오늘은 다시 글로 정리하는 것보다는 내가 강의와 책을 보며 종이에 정리한 것을 올려놓으려고 한다. [오늘의 나는 어땠을까?] 오늘은 강의실에 가지 않고 기숙사에서 하루종일 있으면서 공부를 했다. 물론 밥은 룸메 형과 밖에 나가서 먹었다. 강의실에 가지않고..
-
[SW 정글 87일차] File System 개념 공부 시작기타/SW 사관학교 정글 2021. 10. 29. 02:24
오늘은 새로운 주 차가 시작되는 날이고 project 4는 file system에 대한 부분을 구현하는 것이다. 항상 그랬듯이 구현하기 전에 개념을 먼저 공부했다. 참고 자료는 유튜브에서 볼 수 있는 한국기술교육대 김덕수 교수님의 강의다. 짧은 영상이지만 명확한 설명과 기본적으로 알아야 할 개념을 잘 전달해준다. 1. Disk에도 주소가 있겠지? 이전까지는 RAM 즉, 주 메모리에 포커스를 두고 공부와 project 구현을 했고 메모리를 주소를 통해 접근을 한다. RAM은 단지 하드웨어인데 주소체계로 특정부분에 데이터를 실고 뺄 수 있었다. 그러면 우리가 흔히 아는 외장하드, 보조기억장치는 어떻게 접근하여 데이터를 저장하고 불러올까? 이것도 마찬가지로 주소체계를 기반으로 한다. Disk address에는..
-
[SW 정글 86일차] mmap()과 read()/write()기타/SW 사관학교 정글 2021. 10. 28. 02:23
오늘은 project3를 마무리짓는 날로 전체적으로 복습하는 시간과 memory management 개념을 강의를 보며 다시 리마인드했다. 그 중에서 mmap()과 read()/write()에 대해 의문을 가졌다. 의문을 가진 점은 두 시스템콜이 비슷한 역할을 하는 것 같은데 정확히 어떠한 차이점이 있는지이다. read()/write()는 project2 때 구현한 것이지만 그 때에는 완벽히 나의 것으로 만들지 못해 차이점을 바로 알지 못했다. 그래서 조금 더 자료를 찾아보면서 어떠한 차이점이 있는지 알았다. 1. mmap() 과 read()/ write()의 차이점은? 먼저, 3가지의 systemcall이 어떠한 역할을 하는지 알아보자. Linux manual page에서는 mmap()을 다음과 같이 ..
-
[SW 정글 85일차] Page Replacement Algorithm기타/SW 사관학교 정글 2021. 10. 27. 01:27
오늘은 page replacement algorithm에 대해 공부를 했다. memory mapped files의 다음 과제인 swap in/ swap out에서는 메모리가 모두 차지된 경우에 새로운 페이지가 메모리에 swap in되기 위해서는 현재 메모리에 매핑된 page들 중에 victim page를 선택하여 swap out을 해야한다. 여기서 어떠한 victim page를 선택하냐에 따라 추후에 page fault횟수를 줄일 수도 있다. page fault 과정을 보면 I/O작업이 필요하기에 더 많이 날수록 많은 비용이 들고 시스템적으로 좋지는 않다. 그래서 좋은 page replacement algorithm을 사용하여 page fault가 최대한 적게 나오게 해주는 것이 좋다. 그러면 지금부터 ..
-
[SW 정글 84일차] Project 3 - Memory Mapped Files기타/SW 사관학교 정글 2021. 10. 26. 02:43
오늘은 project3 memory mapped files 과제 구현을 시작했다. 일단은 깃북과 한양대에서 만든 pintos ppt를 참고하면서 과제를 파악하고 코드를 이해하고 구현하는 것을 시도했다. 1. Memory Mapped Files 이번 과제에서는 지난 번에 했던 anonymous page와 다르게 memory-mapped page는 file-backed mapping이다. 즉, project 3 초반에 정리한 내용 중에 page의 type에는 uninit, anonymous page, file-backed page3가지가 있다고 했었다. 이 중에서 file-backed page에 mapping하는 경우를 이번 과제에서 구현하는 것이다. 페이지의 내용은 존재하는 file의 복사본이 들어간다고 ..
-
[SW 정글 83일차] 효율적으로 보낸 일요일기타/SW 사관학교 정글 2021. 10. 25. 01:18
오늘은 일요일, 한 주간 해보고 싶었다고 생각한 공부, 부족한 부분을 채우는 날로 하루를 보냈다. 잠도 평소보다 1~2시간 더 자면서 쌓인 피로감을 풀어주었다. 10시에 강의실에 도착해서 CS 중 가장 재미를 느낀 네트워크를 점심먹기 전까지 공부했다. 이미 대학교에서 정보통신공학을 전공하면서 접한 내용이지만 웹 통신 프로토콜에서 쓰이는 HTTP, 그리고 조금 더 새로운 시각으로 네트워크를 공부하는 것이 신선하고 재미있다. 공부 자료는 HTTP 완벽 가이드로 공부 중에 있다. 꾸준히 나만의 무기를 만들기 전까지는 아침시간에는 네트워크를 공부할 생각이다. 그리고 점심을 먹고 나서는 NodeJs 공부를 시작했다. 일단은 간단하게 Javascript라는 언어에 대한 친숙함을 쌓고 NodeJs로 웹 서버를 어떻게..
-
[SW 정글 82일차] Project 3 - Stack Growth기타/SW 사관학교 정글 2021. 10. 24. 01:51
오늘은 project3의 3번째 과제인 stack growth를 파악하고 구현하는 시간을 가졌다. 과제를 완벽히 이해하면 코드를 이해하는 데에는 나름 괜찮은 과제 구간이였다. memory management와 anonymous page가 너무 어려워서 상대적으로 느껴지는 건가... 1. Stack Growth project 2에서의 스택은 USER_STACK(0x47480000)에서 시작하는 싱글 페이지였고 프로그램의 실행은 이 싱글 페이지의 크기로 제한되었다. 즉, 스택에 할당되는 메모리가 싱글 페이지 사이즈보다 큰 경우는 고려되지 않은 것이다. project 3에서는 스택이 현재 사이즈보다 커지게 되면 필요한 만큼 추가적인 페이지를 할당해주는 것을 구현해야한다. 추가적인 페이지 요청이 스택에 접근하려..
-
[SW 정글 81일차] 오늘 한 일기타/SW 사관학교 정글 2021. 10. 23. 00:25
오늘은 특별히 정리할 내용이 없다.. 일단은 아침 7시 55분까지와서 기강확립 스터디에서 알고리즘 문제풀이 2개를 하고 하루를 시작했다. 그리고 점심 먹기 전까지는 HTTP공부를 해야했지만 youtube에서 typescript의 장점, rest api, 디자인 패턴 등 평소에 궁금한 것들에 대한 영상들이 보여 하나만 보자했다가 계속해서 보다보니 점심시간이 돼버렸다.. 그러고 점심을 먹고 기숙사에서 빨래를 기다릴 겸 조금 쉬다가 다시 강의실로 나왔다. 강의실에 다시 도착하여 어제 정리한 anonymous page과제를 구현하는데 하루의 절반이상을 썼다. void supplemental_page_table_kill (struct supplemental_page_table *spt);를 구현했는데 테스트가 통..