기타/SW 사관학교 정글
-
SW 정글 6주차 회고기타/SW 사관학교 정글 2021. 9. 16. 23:39
[6주차 회고] 2021년 09월 16일 목요일, 6주차가 마무리 되는 날이고 6주차는 전체적으로 어땠는지 이 글을 쓰면서 돌아보려고 한다. 6주차는 솔직히 '내가 잘 공부했나'라는 생각이 드는 주였기도 했고 조 활동이 활발히 이루어져서 만족스러웠던 한 주였기도 했다. 먼저 왜 '내가 잘 공부했나'라는 생각이 들었냐면 malloc lab을 하면서 내가 개념을 이해하고 직접 구현하기보다는 open source를 찾아서 그 코드를 이해하면서 따라 써보고 그 후에 이 코드는 왜 이렇게 써졌지? 이게 꼭 필요한 코드인가? 등의 시간을 가졌다. 그러면서 '이게 진짜 좋은 공부방법일까?'라는 생각도 들고 '내가 dynamic allocator'에 대해 deep하게 공부한게 맞나'라는 생각이 들었다. 그래도 누군가에..
-
[SW 정글 45일차] segregated list 구현과 demand-zero memory기타/SW 사관학교 정글 2021. 9. 16. 01:24
오늘은 지난 번에 계속해왔던 explicit dynamic allocator구현에서 free block list를 구현할 때 implicit list, explicit list를 사용하여 구현했었고 이번에는 segregated list를 사용해서 구현해보려고 한다. 1. segregated list는 무엇인가? 아래의 강의 영상과 컴퓨터 시스템을 보며 정리한 내용이다. https://www.youtube.com/watch?v=ru_2lvPNeQM&list=PLbY-cFJNzq7z_tQGq-rxtq_n2QQDf5vnM&index=20 segregated list와 implicit, explicit list의 가장 큰 차이점은 free block의 크기에 따라 size class를 나눠서 리스트에 모아두는 ..
-
[SW 정글 44일차] explicit 구현과 인스트럭션, 분산 파일 시스템기타/SW 사관학교 정글 2021. 9. 15. 01:15
오늘은 어제 공부한 explicit free list를 사용하여 동적할당기를 직접 구현하고 컴퓨터 시스테 6장. 메모리 구조를 읽으면서 앞에서도 계속 봤던 인스트럭션이라는 단어와 분산 파일 시스템에 대해 공부해보았다. 1. 인스트럭션과 분산 파일 시스템 인스트럭션(instruction)은 컴퓨터가 어떠한 것을 어떻게 하는지 알고자 할 때, 이것을 알려주는 것이 인스트럭션이다. 예를 들어, 컴퓨터가 사각형을 그려야한다고 생각해보자. 시작 포인트를 준다. 시작 포인트에서 오른쪽으로 x만큼 간다. 그 지점에서 y만큼 아래로 간다. 그 지점에서 x만큼 왼쪽으로 간다. 그 지점에서 y만큼 위쪽으로 가서 시작 포인트를 만나게 선을 긋는다. 위와 같은 일려의 과정을 인스트럭션이라고 할 수 있다. 2. Explicit..
-
[SW 정글 43일차] #if, #elif, #else와 implicit + next_fit 그리고 explicit기타/SW 사관학교 정글 2021. 9. 13. 20:08
오늘 하나의 파일에 implicit 코드와 explicit 코드를 적어 둘 중 하나만 동작하게끔 할 수 없을까? 했는데 C에서 #지시자로 할 수 있는 방법을 찾아 링크를 저장해놓으려고 한다. https://docs.microsoft.com/ko-kr/cpp/preprocessor/hash-if-hash-elif-hash-else-and-hash-endif-directives-c-cpp?view=msvc-160 #if, #elif, #else 및 #endif 지시문(C/C++) 자세한 정보: #if, #elif, #else 및 #endif 지시문(C/C++) docs.microsoft.com 1. implicit free list + next-fit 구현하기 어제는 implicit free list와 fi..
-
[SW 정글 42일차] malloc 구현하기 시작 (implicit + first-fit)기타/SW 사관학교 정글 2021. 9. 13. 01:13
어제 저녁을 먹고 구현을 하기 시작했는데 다시 한번 코드를 처음부터 보면 왜 코드가 이렇게 나왔는지를 생각해봤다. 지금까지 공부한 것을 복습할 수 있는 좋은 시간이였고 궁금증을 계속가지면 더 깊이 있는 공부를 하려고 노력했다. 내가 구현한 동적 메모리 할당기는 explicit allocator이고 implicit available list를 사용했다. coalesce를 위해서 선택한 검색 방법은 first-fit이다.first-fit은 할당받고자 할 때, 무조건 heap area의 처음부분부터 allocated되지 않은 영역을 찾는 것이다. 1. memlib.c 파헤치기 #include #include #include #include #include #include #include #include "me..
-
[SW 정글 41일차] 동적메모리할당 개념잡기기타/SW 사관학교 정글 2021. 9. 12. 02:20
오늘은 malloc을 본격적으로 공부하기 전에 동적메모리할당에 대한 개념을 공부하는 시간을 먼저 가지고 저녁을 먹은 뒤에 malloc구현을 시작했다. 기본적으로 동적메모리할당이 되면 메모리 영역 중에 heap영역에 할당이 되고 그러면 stack영역(정적메모리할당공간)과 heap 영역의 차이점이 무엇인지 궁금해지면서 오늘의 공부가 시작됐다. [오늘의 나는 어땠을까?] 오늘은 왠지 모르겠는데 엄청 피곤한 날이였다. 그래서 아침에는 거의 감긴 눈으로 컴퓨터 시스템 책을 읽었고 점심을 먹은 뒤에 1시간 조금 넘게 낮잠을 자니 다시 컨디션이 돌아왔다. 하루에 5시간 이하로 자는 후유증이 일주일에 한 번씩 오는 것같다. 저녁에는 오랜만에 대전에 사는 대학교 친구를 만났다. 대전에 살지만 버스를 타면 거의 끝과 끝이..
-
[SW 정글 40일차] 가상메모리와 paging system기타/SW 사관학교 정글 2021. 9. 11. 02:02
오늘은 동적메모리할당을 공부하려고 했는데 가상메모리라는 말에 꽃혀서 찾아보기 시작했다. 일단은 동료가 추천해준 강의를 보며 강의해서 얘기하는 단어 중에 이해가 되지 않는 것들은 찾아가면서 정리했다. 가상메모리의 장점 (2021. 09.13 추가) 1. 메모리 확장성(Extensibility)부여 2. 모든 프로그램에게 동일한 메모리 공간 제공가능 3. 메모리 할당과 관리에 효율적 4. 메모리 보호기능(memory protection) 제공 https://brunch.co.kr/@lkj28/132 [오늘의 나는 어땠을까?] 오늘은 아침에 강의실에 와서 같은 조원이 눈이 너무 빨갛다고 얘기를 했다. 그 이전에도 다른 동료들에게 눈이 너무 빨갛다는 얘기를 많이 들었는데 그냥 아침에만 빨갛고 저녁에는 컴퓨터를 ..
-
[SW 정글 39일차] Process를 공부하면서 static변수까지기타/SW 사관학교 정글 2021. 9. 10. 00:21
오늘부터는 malloc을 구현하는 주차가 시작됐는데 컴퓨터시스템 책을 보자마자 프로세스라는 단어를 마주했고 사실 프로세스, 쓰레드는 운영체제를 공부하면서 많이 접했지만 둘의 차이점을 설명해보라고 하면 잘할 자신은 없었다. 그래서 이번 기회에 제대로 알아보고 정리해보려고 한다. 그리고 이제는 여기에 글을 쓰지 않고 paper에 정리한 것을 사진으로 올릴려고 한다. 나는 공부를 하면 paper에 작성하면서 하는 스타일인데 또 다시 보면서 여기에 쓰려고 하니 시간 효율성이 떨어진다고 느꼈다. 물론 장점은 복습을 한 번 더 한다는 것이지만 현재 단점을 이길만한 장점이지는 않다고 생각했다. [오늘의 나는 어땠을까?] 오늘은 저번 주 목요일부터 공부하고 구현했던 Red-Black Tree에서 기존의 header 파..