정글3기 3

[week08] PintOS - Project 1(thread) : Priority scheduling(3) donation

Project1: priority schedule(3) Priority Inversion Problem 문제 : priority 높은 thread가 priority가 낮은 thread를 기다리는 현상 L, M, H는 thread의 이름이라고 하자. 그리고 우선순위는 H가 가장 높고, L이 가장 낮다. 지금 M보다 H가 우선순위가 높은데, L이 lock을 가지고 있기 때문에 H는 실행되지 못하고, L보다 우선순위가 큰 M이 먼저 실행된다. H는 M이 다 끝날때까지 기다려야 한다. 해결책 : priority donation H이 lock을 획득하려고 요청할 때, L에게 자신의 priority를 donate(기부)한다. 이렇게 되면 M보다 H가 먼저 실행되어서 문제를 해결할 수 있다. 그러나 이렇게 간단하게 ..

[week02] 정렬 + 이진탐색 vs 선형탐색(순차탐색) 시간복잡도

점근 표기법(Asymptotic Notation) 점근 표기법은 어떤 함수의 증가 양상을 다른 함수와의 비교로 표현하는 수론과 해석학의 방법이다. 우리는 이를 알고리즘의 복잡도를 단순화할때 쓴다. 어떻게? 가장 큰 영향을 주는 항만 계산하는 방식으로 단순화 시킨다. 점근적 표기법에는 대표적으로 3가지가 있다. 최상의 시나리오를 기준으로 하는 표기법: 오메가 표기법 평균적인 시나리오를 기준으로 하는 표기법: 세타 표기법 최악의 시나리오를 기준으로 하는 표기법: 빅오 표기법(Big-O Notaion) 우리가 주로 사용할 빅오 표기법은 실행 시간의 상한을 나타내며, 다른말로 하면 최악을 생각하는 경우이다. 컴퓨터공학자들은 일반적으로 최악을 상황을 고려하고 프로그래밍을 짜기 때문에 Big-O 표기법을 많이 쓴다..

[week01] WIL - 1주차 회고 및 배운내용 정리

📷 회고 정말 정신없었고, 개발실력에 관한 나의 무능함을 일깨워준 정글에서의 0주차(4일)가 지나가고 팀원들과 합심하여 주어진 문제를 해결하는 1주차가 다가왔다. 같은팀 조원들과 이제 막 친해진것 같은데 바로 헤어지게 되어서 아쉬운 감정이 컸다. 그러나 아쉬운 감정을 길게 가져갈 새도 없이 과제가 쏟아져나왔다. 1 ~ 4주차는 알고리즘 문제풀이 주차인데, 1주차의 키워드는 다음과 같다. [정수론, 배열, 문자열, 재귀함수, 정렬, 완전탐색, 시간복잡도] 기초적인 문제들이 많았기 때문에 시간은 넉넉할 것이라고 판단하고 각자 문제를 풀고 모르는 문제는 서로 도와주는 식으로 이번 주를 진행하기로 했다. 그러나 정말 큰 착각이었다. 주어진 시간 안에 모든 문제를 풀기조차 빠듯했고 시험 전날 밤이 되어서야 모두 ..