일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 문법
- 5397
- Pair
- Critical_Path_Analysis
- class_template
- c++
- data_structure
- qsort
- deletion
- Articulation_Point
- 예제
- 알고리즘
- template
- red-black tree
- 총정리
- 13305
- list
- Heap
- singly Linked List
- 백준
- Algorithm
- sort
- '0'
- Biconnected_Component
- STL
- 구현
- connected_component
- sstream
- function_template
- 자료구조
- Today
- Total
- Today
- Total
- 방명록
목록Operating System (4)
어제의 나보다 성장한 오늘의 나
오늘은 C 와 C++에서 사용되는 Malloc 의 구현 방식인 Implicit allocator에 대해서 공부해 보려고 한다. 그 전에 사전 지식을 조금 먼저 이야기를 해보겠다. Dynamic Memory Allocation 이란?? @ 프로그램이 작동하는 도중 (런타임 동안) 필요한 메모리를 할당 받고자 할 때 사용 하는 할당 방법 @ 프로세스의 Heap 공간에 저장 -> 단편화(Fragmentation) 문제 발생 가능 @ 단편화 문제를 해결하고 효과적으로 메모리들을 저장하기 위한 Dynamic allocator로 Explicit Allocator , Implicit Allocator 등 이 존재한다. 사용 이유 : 효율적인 메모리 관리 Block 이란? 메모리를 관리하는 단위 ..
오늘은 C 와 C++에서 사용되는 Malloc 의 구현 방식인 Explicit allocator에 대해서 공부해 보려고 한다. 그 전에 사전 지식을 조금 먼저 이야기를 해보겠다. Dynamic Memory Allocation 이란?? @ 프로그램이 작동하는 도중 (런타임 동안) 필요한 메모리를 할당 받고자 할 때 사용 하는 할당 방법 @ 프로세스의 Heap 공간에 저장 -> 단편화(Fragmentation) 문제 발생 가능 @ 단편화 문제를 해결하고 효과적으로 메모리들을 저장하기 위한 Dynamic allocator로 Explicit Allocator , Implicit Allocator 등 이 존재한다. 사용 이유 : 효율적인 메모리 관리 Block 이란? 메모리를 관리하는 단위 ..
Hardware support를 기반으로 한 Synchronization Problem을 해결법에 대해 알아보자 1) 싱글 코어 프로세서 인터럽트를 사용할 수 없게 끔 싱글 코어 프로세서를 사용하는 것이다. 그러면 Synchronization이 발생하지 않는다. 멀티 프로세스 시스템에서는 이 방식이 매우 비효율적이다. 확장되어 있는 OS들 에서는 이 방식을 채택하지 않는다. 2) Hardware Support 세 가지 ◎ Memory barriers ◎ Hardware instructions ◎ Atomic variables ① Memory barriers 오퍼레이션들의 순서를 보장해주는 장치 보통 store 오퍼레이션들 전후로 위치 한다 ◎ memory_Barrier를 설치함으로써 reorder방지 ◎..
Peterson’s Solution 두 개 이상의 프로세스의 동기화(Synchronization) 문제를 해결하는 방법 중 하나 ※ Critical-section problem 의 예전 버전 해결 방법이다. 예전 버전이므로 현대 버전에 적용되는 것이 보장 되지 않지만 알고리즘 자체가 동기화 문제 해결 방법 들의 기반이 된다. Peterson’s Solution Code variables int turn; boolean flag[2]; Turn 은 critical section에 들어갈 수 있는 프로세스를 나타내는 변수 Flag 는 critical section에 들어갈 준비 상태를 나타내는 변수 Algorithm // P_i 프로세스 의 알고리즘 while (true) { flag[i] = true; t..