일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Algorithm
- 세마포어
- 동기화
- 컴퓨터구조
- mips
- 알고리즘
- 페이지 대치
- 운영체제
- ALU
- 가상 메모리
- BOJ
- mutex
- 추상화
- 교착상태
- 스케줄링
- concurrency
- Oracle
- 우선순위
- PYTHON
- 부동소수점
- 프로세스
- 스레드
- 페이지 부재율
- 백준
- 단편화
- 인터럽트
- 트랩
- fork()
- 페이징
- 기아 상태
- Today
- Total
목록Computer Science & Engineering (98)
봉황대 in CS
이번 학기에 '협동 분산 시스템' 과목을 수강하는데, 'Design Issues of Clients and Servers'라는 주제가 있었다.client와 server 각각 사용 편의성을 제공하기 위해서, 그리고 사용자에게 더욱 빠른 서비스를 제공해 주기 위해서는 어떤 이슈들이 존재하며 그들을 해결하기 위해서는 어떤 기법을 사용할 수 있는지를 다루었다. server 쪽에서는 multi-threading을 통해서 performance를 올리는 것을 중점적으로 다루었는데, 여기서 갑자기 single-threaded server이지만 parallelism을 제공하여 성능 향상을 줄 수 있는 방법은 asynchronous non-blocking system call을 사용하는 것이라고 하셔서 대혼동이 발생했다..
key들이 쭉 저장되어 있는 배열이 주어졌을 때,이 배열에 저장되어 있는 key들을 통해서 B+-Tree를 Bottom-Up 방식으로 생성하는 것은 어떻게 구현해야 할까? 현재 진행하고 있는 연구에서 이를 구현하기 위해 코드를 3번이나 갈아엎는 시행착오를 겪게 되었다.이 과정을 통해서 깨달았던 것들을 여기에 정리하고자 한다. Build: Top-Down Approach보통 B+-Tree를 생성하고자 한다면 Top-down 방식을 생각할 것이다. Top-down 방식은 search → insert → split 단계로 진행된다. root에서부터 시작하여, 현재 tree에 넣고자 하는 key를 저장할 수 있는 leaf node를 찾는다.해당 leaf node에 key를 insert 한다.만약 leaf n..
* 본 글은 2023학년도 2학기에 수강한 '시스템 프로그래밍' 과목 강의 내용을 함께 정리하여 작성하였습니다. Zombie Processes Zombie process(좀비 프로세스)는 process가 할 일을 전부 마쳐서 종료되었음에도 불구하고, 자원들을 계속 소비하고 있는 process를 말한다. Reaping Process의 생성과 종료가 정상적으로 진행되는 상황을 보자. Parent process가 fork() system call을 호출하여 Child process가 생성된다. Child process가 자신의 할 일들을 모두 마치고 종료한다. → Parent process에게 SIGCHLD signal을 보내고, Kernel은 Child process의 자원들을 회수한다. → 이때 Chil..
* 본 글은 2023학년도 2학기에 수강한 '알고리즘' 과목 강의 내용을 함께 정리하여 작성하였습니다. Greedy Algorithms 답을 찾기 위해서 선택을 반복하는 알고리즘이다. 비교적 간단한 기준으로 답을 계속 골라 담고, 이를 바꾸지 않는다. Minimum Spanning Tree 모든 node를 포함하며, edge cost가 최소가 되는 connected acyclic graph 찾기! Given a Graph, find Subset of Edges so that a Connected Graph results with Minimum Sum of Edge Costs. - minimum : edge cost가 최소가 되는 - spanning : 전체를 덮는, 즉 모든 node를 포함하는 Input..
* 본 글은 2023학년도 2학기에 수강한 '알고리즘' 과목 강의 내용을 함께 정리하여 작성하였습니다. Proof of Correctness of Sorting 'Sorting이 되었다'라고 말할 수 있으려면 어떠한 조건들이 만족되어야 하는가? - 입력 값 : a[0], a[1], ... , a[n-1] - sorting이 끝난 후 배열에 저장된 값 : b[0], b[1], ... , b[n-1] 조건 1: 값이 없어지거나, 새로 생기면 안된다. (집합 조건) {a[0], a[1], ... , a[n-1]} = {b[0], b[1], ... , b[n-1]} 조건 2: 값 기준, 오름차순 정렬된 순서로 저장되어 있어야 한다. b[0] < b[1] < ... < b[n-1] Merge Sort Merge ..
* 본 글은 2023학년도 2학기에 수강한 '알고리즘' 과목 강의 내용을 함께 정리하여 작성하였습니다. Proof of Correctness of Sorting 'Sorting이 되었다'라고 말할 수 있으려면 어떠한 조건들이 만족되어야 하는가? - 입력 값 : a[0], a[1], ... , a[n-1] - sorting이 끝난 후 배열에 저장된 값 : b[0], b[1], ... , b[n-1] 조건 1: 값이 없어지거나, 새로 생기면 안된다. (집합 조건) {a[0], a[1], ... , a[n-1]} = {b[0], b[1], ... , b[n-1]} 조건 2: 값 기준, 오름차순 정렬된 순서로 저장되어 있어야 한다. b[0] < b[1] < ... < b[n-1] Selection Sort by..
* 본 글은 2023학년도 2학기에 수강한 '알고리즘' 과목 강의 내용을 함께 정리하여 작성하였습니다. - 입력 배열 arr에는 같은 값이 존재하지 않으며, 값 기준 오름차순 정렬되어서 저장되어 있다고 가정하자. - x는 우리가 찾으려고 하는 값이다. Binary Search by While Loop int binarySearch(const int arr[], int size, int x) { int left = 0; int right = size - 1; while (left x이라는 것은, x 값이 arr[0], arr[1], ... , arr[mid-1] 중에 존재한다는 것과 같다. → binarySearch(arr, mid, x)가 정확하다고 가정한다면, 이는 i를 반드시 return 한다. → ..
* 본 글은 2023학년도 2학기에 수강한 '알고리즘' 과목 강의 내용을 함께 정리하여 작성하였습니다. Mathematical Induction, 수학적 귀납법 'P(n)이 모든 자연수 n에 대해서 참이다'라는 것을 보이기 위해 사용하는 증명 방법 중 하나이다. 수학적 귀납법의 기본형 P(1)이 참이고, P(n-1) → P(n)이 참이면 P(n)은 모든 자연수 n에 대해서 참이다. Base: P(1) Step: P(n-1) → P(n) 수학적 귀납법의 강한 형태 P(1)이 참이고, P(1) ∧ P(2) ∧ ... ∧ P(n-1) → P(n)이 참이면 P(n)은 모든 자연수 n에 대해서 참이다. Base: P(1) Step: P(1) ∧ P(2) ∧ ... ∧ P(n-1) → P(n) 명제 P → Q의 의..