분류 전체보기
-
[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 파..
-
SW 정글 5주차 회고기타/SW 사관학교 정글 2021. 9. 9. 23:40
[5주차 회고] 2021년 09월 09일 목요일, 5주차가 마무리 되는 날이고 5주차는 전체적으로 어땠는지 이 글을 쓰면서 돌아보려고 한다. 5주차는 정글에 들어오고나서 정말 개인적으로 만족스러운 한 주였다. 일단은 새로운 자료구조를 내 것으로 만들었다는 것이고 두 번째는 너무나도 만족스러운 팀활동이 이루어졌다고 생각해서이다. 내가 만족스럽다고 느낀 이유는... 일단은 같이 기숙사에서 지내고 있는 룸메이트와 처음으로 같은 조가 되었다. 같은 조가 되기 이전에 룸메이트에 대한 다른 동료들의 생각은 정말 머리가 좋고 같은 조가 되면 배울 점이 많다는 것이였다. 같은 조를 해본 적이 없고 사실 룸메이트여도 방에서 보내는 시간이 완전 없다고 볼 정도이기에 같은 조가 되면 어떤지 궁금했다. 같은 조가 되보니 정말..
-
[SW 정글 38일차] calloc과 realloc부터 시작해서 git 정리까지기타/SW 사관학교 정글 2021. 9. 9. 02:22
오늘은 레드블랙트리 구현을 마치고 복습과 구현이라는 목표를 이루기 위해 궁금했던 것이나 복습을 해야되는 부분을 알아보며 얻은 것들을 정리하려고 한다. 1. malloc과 calloc, realloc malloc에 대해서는 아래의 글에서 설명한 바 있다. https://straw961030.tistory.com/220 [SW 정글 35일차] 동적 메모리 할당 (링크드리스트, 이진탐색트리) 오늘은 C언어를 배우고 c언어를 이용해서 연결리스트, 이진탐색트리를 구현하면서 상용한 동적 메모리 할당과 잘못 사용하면 발생할 수 있는 메모리 누수에 대해 정리해보려고 한다. 우리는 배 straw961030.tistory.com 동적메모리할당을 위해 사용되는 함수가 malloc만 있는 줄 알았지만 찾아보니 calloc, ..
-
[SW 정글 37일차] 레드블랙트리 삽입, 삭제기타/SW 사관학교 정글 2021. 9. 8. 14:15
오늘은 이틀동안 공부하고 직접 구현한 레드블랙트리의 삽입과 삭제 기능에 대해 정리해보려고 한다. 삽입과 삭제.... 처음 봤을 때에는 '내가 이걸 어떻게 코드를 짜?'였지만 계속 반복해서 보다보니 이해가 되면서 다른 사람들의 코드를 참고하여 직접 구현한 코드를 보게 되었다. 1. 레드블랙트리의 삽입원리 레드블랙트리에서 삽입은 일단은 이진탐색트리와 똑같이 새로운 노드의 키값에 따라 자신의 위치를 찾아가는 것을 동일하다. 이진탐색트리와 같은 원리로 일단은 노드를 삽입한 후에 레드블랙트리의 특성을 위반하지 않도록 fixed-up하는 방식이 있고 다른 방법은 삽입을 하는 과정에서 계속해서 자신을 위치를 찾으면서 내려갈 때마다 특정 조건 상황에 맞딱뜨렸을 때 fixe-up하는 방식이 있다. 나는 첫번째 방식을 택..
-
[SW 정글 36일차] 레드블랙트리 개념 익히기기타/SW 사관학교 정글 2021. 9. 7. 03:12
오늘은 이번 주차 본 과제인 레드블랙트리에 대해 공부를 시작했다. 이진탐색트리의 단점은 보완하는 정말 신기한 자료구조이다. Introduction to Algorithms를 2~3번 읽고나니 이해가 됐고 새로운 것을 배워서 뿌듯했다. 1. 균형 이진 탐색 트리란? 균형 이진 탐색 트리란 노드의 삽입과 삭제가 일어나는 경우에 자동으로 각 노드에서의 높이를 균형있게 유지지키는 것이다. 아래의 그림은 기존의 이진 탐색 트리의 문제가 발생하는 경우이다. 단순히 이진 탐색 트리에 값이 오름차순 혹은 내림차순으로 삽입되는 경우에 한쪽으로 치우치는 트리가 나올 수 있다. 이렇게 되면 이진 탐색 트리의 강점 중 하나인 탐색 시 시간복잡도가 O(logn)이라는 것이 O(n)이 되고 선형리스트와 다를 바가 없어진다. 그래..