본문 바로가기

Review57

[WEEK08] Pintos _ Project1 THREADS 1. 프로젝트 관련 공부 Keywords : Context Switching, Process, Threads, Scheduler, Timer Interrupt, Synchronization Context "프로세스는 실행중인 프로그램이다.(Process is a program in execution)" 프로그램의 문맥이란 현재 시점에서 CPU의 수행상태를 나타내줌 즉 프로세스의 현재 상태라고 볼 수 있음 프로세스는 사람으로 치면 키는 몇이고, 몸무게는 얼마나 되고, 지식은 얼마나 있나로 볼 수 있음 컴퓨터에서는 Context를 위해 필요한 것이 총 3가지인데 1. 하드웨어 문맥 : Program Counter, Register 2. 프로세스의 주소공간 (Code, Data, Stack 영역에 무엇이 있는.. 2022. 11. 17.
[WEEK05~07] 복기와 공부한 것들 복기 지나가버린 일주일은 아쉬웠고, 다가올 일주일을 위해서 매번 마음을 다시 다졌다. 블로그에도 '글을 써야겠다.' 라는 마음을 항상 품고 있었지만 쌓여있는 할 일들과 채워나가야하는 공백들 속에서 글을 쓰는 일은 매번 뒷전으로 미뤄졌다. 5주차에서 7주차는 지난 4주와는 다르게 조금은 새로운 시도들을 해보고 싶었다. 공부방법이나 생활패턴에 조금씩 변화를 줘가면서 어떤 것이 더 좋은지 비교해보고 싶었다. 어떤 한 주는 답안을 보지 않고 혼자의 힘으로 코드를 짜보기 위해서 고군분투해보았고, 다른 한 주는 팀원들과 함께 코드를 짜는 경험을 해보았다. 생활패턴은 조금 더 건강하게 가지기 위해 잠을 조금 더 늘리거나 조금이라도 더 건강한 식단을 유지하기 위해 노력했다. 실력을 쌓아나가야할 것 같다. 힘 빼기 운동.. 2022. 11. 14.
[강연] The mind behind Linux _ Linus Torvalds ⬆️ One of the most important Software Headquarter 🤣 Linux와 Git을 만들어낸 Linus Torvalds, 그는 비전주의자도 아니고 돈에만 눈이 멀어있는 사업가도 아니었다. 기술을 사랑하고 당장 눈 앞에 있는 문제를 해결하려고 하는 진정한 Engineer 소프트웨어의 살아있는 전설이라고 불리어도 손색이 없는 그의 소박함과 진실됨 자신의 일에 대한 열정에 매료 되었다. Ted 강연 중 About himself My biggest exceptional quality was that I would not let go. I'm not a visionary. I do not have a five year plan. (그는 그가 비전주의자도 아니고 내향적인 사람이라 떳떳.. 2022. 10. 30.
[WEEK04] 다이나믹 프로그래밍 & 4주차 복기 다이나믹 프로그래밍 1. 특징 - 컴퓨터 연산속도의 한계 + 메모리 공간을 사용할 수 있는 데이터 개수의 제약 - 연산속도와 메모리 공간을 최대한으로 활용할 수 있는 효율적인 알고리즘이 필요 ⇒ 메모리 공간을 약간 더 사용하면 연산속도를 비약적으로 증가시킬 수 있음 ⇒ 동적프로그래밍 (≠ 동적할당) - 큰 문제를 작게 나누고 같은 문제라면 한번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 - 주어진 문제를 나눌 때 부분 문제를 최대한 많이 이용하도록 나눈 다음, 주어진 부분 문제의 정답을 한번만 계산하고 저장해둔 뒤 다시 한번 이 부분 문제를 이용할 때에는 저장해둔 정답을 바로 산출하여 이용함으로써 속도를 향상시킴 다음 조건을 만족할 때 사용할 수 있음 - Overlapping Subproblems (겹.. 2022. 10. 30.
[WEEK03] 서로소 집합 자료구조 서로소 집합 자료구조 서로소 부분 집합들로 나누어진 원소들의 데이터를 처리하기 위한 자료구조 union, find 2개의 연산으로 조작할 수 있음 => union - find 자료구조라 부름 특징 - 서로소 집합 자료구조를 구현할 때 트리 자료구조를 이용하여 집합을 표현하는데 서로소 집합 정보 (합집합 연산)이 주어졌을 때 트리자료구조를 이용해서 집합을 표현하는 서로소 집합 계산 알고리즘은 다음과 같음 1) union(합집합) 연산을 확인하여 서로 연결된 두 노드 A, B를 확인 - A와 B의 루트 노드 A', B'를 각각 찾음 - A'를 B'의 부모노드로 설정 (B'가 A'를 가르키도록 함) 2) 모든 합집합 연산을 처리할 때까지 1)의 과정을 반복 - 일반적으로 find, union 연산을 활용하면 .. 2022. 10. 13.
[WEEK03] 위상정렬 Topology Sort 방향그래프의 모든 노드를 '방향성에 거스르지 않도록 순서대로 나열하는 것' 특징 - 정렬 알고리즘의 일종으로 순서가 정해져 있는 일련의 작업을 차례대로 수행해야할 때 사용할 수 있는 알고리즘 - 예를 들면 '선수과목을 고려한 학습순서 설정'을 들 수 있음 - 진입차수 (indegree) ? 특정한 노드로 '들어오는' 간선의 개수 - 위상 정렬은 여러 개의 답이 존재할 수 있음 - DAG(Directed Acyclic Graph)에서만 적용 DAG? 사이클이 발생하지 않는 방향 그래프 - 위상정렬 알고리즘은 두가지 해결책을 낸다는 특징이 있음 1. 현재 그래프는 위상정렬이 가능한지 2. 위상정렬이 가능하다면 그 결과는 무엇인지 알고리즘 진행과정 1. 진입차수가 0인 노드를 큐에 넣.. 2022. 10. 13.