Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- NCP
- dfs
- 이분 탐색
- 점수 따먹기
- Naver Cloud
- c++
- 민준이와 마산 그리고 건우
- 17503
- 크루스칼
- DP
- 맥주 축제
- mongodb
- 시뮬레이션
- BOJ
- redis
- 정렬
- 구간합
- 누적합
- 21921
- 구현
- golang
- 최소신장트리
- 16985
- SWEA
- gorilla/mux
- 11659
- 세그먼트 트리
- 다익스트라
- 백준
- mst
Archives
- Today
- Total
Gi-Log
동기화 문제 본문
동기화
경쟁 상황(Race Condition)을 막기 위해 공유 자원으로의 복수 프로세스의 접근을 순차적으로 처리될 수 있도록 하는 것
경쟁 상황(Race Condition)
공유 자원에 2개 이상의 프로세스가 동시에 접근하여 수정, 갱신 등을 진행하려고 할 때 프로세스의 접근 순서에 따라서 그 결과가 달라지는 상황
임계 영역(Critical Section)
- 2개 이상의 프로세스가 공유 자원에 동시에 접근하는 작업을 실행하는 (코드)여역
- 하나의 프로세스가 접근 중일 때는 다른 프로세스가 진입하지 못하게 보장해주어야 하는 영역
임계 영역 문제
2개 이상의 프로세스가 CS에 동시에 접근할 때 발생하는 동기화 문제
문제 해결을 위한 세가지 조건
- 상호 배제
- 임계 영역 내에 어떤 프로세스 P1이 존재한다면 다른 프로세스들은 임계 영역에 진입할 수 없어야한다.
- 자명하지만 상호 배제로 인해 Deadlock과 Starvation 문제 발생 야기
- 진행
- 임계 영역에 프로세스가 없고, 진입하고자 하는 프로세스가 여러 개 있다면 어떤 프로세스가 진입할 지 결정해주어야 한다.
- 한정 대기(Bounded Waiting)
- 어떤 프로세스 P1이 Entry Section에서 진입 요청을 했다면, 대기하는 동안에 임계 영역에 진입할 수 있는 프로세스들의 수를 제한하여 무한정 대기하지 않도록 한다.
- 다른 프로세스의 기아를 방지하기 위해서 다음번 임계 영역으로 진입에는 제한이 있어야 한다.
- (위 두 조건은 관점의 차이이며 같은 설명으로 보임)
Comments