일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Non-Preemptive
- 경량 프로세스
- 동기 비동기
- Activity
- Heap영역
- 프로세스
- 블로킹 논블로킹
- 교착 상태
- Stack영역
- Process Control Block
- Multi-level Queue
- 임계 구역
- 뮤텍스(Mutex)
- 유저 모드
- 프로세스 상태 전이도
- The Banker's Algorithm
- 커널 모드의 동기화
- Light Weight Process
- 스레드 동기화
- Reentrant
- 은행원 알고리즘
- 인터락 함수
- 방금 그 곡
- The DIning Philosopher Problem
- 유저 모드의 동기화
- 커널 모드
- 문맥 교환
- 프로세스 제어 블록
- 스레드
- 모니터(Monitor)
목록임계 구역 (2)
Blog For Me
유저 모드의 동기화 임계 구역 기반의 동기화(Critical Section) 열쇠를 억은 프로세스만 임계 구역에 들어갈 수 있다. 즉, 한번에 하나의 스레드만 접근 가능하다. 임계 구역 진입을 위한 크리티컬 세션 오브젝트를 얻는다. 특정 스레드가 열쇠를 가지고 있으면, 그 스레드가 반환할 때까지 임계 구역은 blocking된다. 열쇠가 반환되면 임계 구역은 blocking 상태에서 벗어나게 되어 다른 스레드는 열쇠를 얻고 임계구역에 접근할 수 있다. 인터락 함수 기반의 동기화(Interlock) 함수 내부적으로 한 순간에 하나의 스레드에 의해서만 실행되도록 동기화된다. 임계 구역 기반의 동기화도 내부적으로 인터락 함수를 기반으로 구현된다. 유저 모드 기반으로 동작하여 속도가 빠르다. 커널 모드의 동기화 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/6GwOM/btrmFpKnCkY/8fHrKtEoD2TQMhF2fZaJcK/img.png)
스레드의 동기화 문제 스레드들은 서로 Stack 영역을 제외하고 나머지 Code 영역, Heap 영역, 그리고 Data 영역을 공유하고 있다. 따라서 이러한 공유 자원에 여러 스레드가 동시에 접근하면 Race Condition 같은 상황이 발생할 수 있다. 따라서 이를 막기 위해서 동기화 기법이 필요하다. 스레드의 동기화 실행 순서의 동기화: 스레드의 실행 순서를 정의하고, 반드시 이 순서를 따르도록 한다. 메모리 접근에 대한 동기화: 메모리 접근에 있어 동시 접근을 막으며, 실행 순서가 중요한 것이 아니면 한 순간에 하나의 스레드만 해당 자원에 접근 가능하도록 설계한다. 동기화 기법 유저 모드의 동기화 커널의 힘을 빌리지 않는 동기화 기법, 즉 커널의 코드가 실행되지 않는다. 동기화를 위한 커널 모드로..