728x90
Race Condition
- 여러 프로세스들이 동시에 공유 데이터를 접근하는 상황
- 데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라짐
프로그램적 해결법의 충족 조건
- Mutual Exclusion: 상호 배제
- Progress: critical section이 비어있고, 들어가고 싶은 프로세스가 있으면 들여보냄
- Bounded Waiting: 유한 대기
Semaphores
앞의 방식들을 추상화시킴
- counting semaphore: 도메인이 0 이상인 임의의 정수값
- binary semaphore: 0 또는 1 값만 가질 수 있는 semaphore
- deadlock: 둘 이상의 프로세스가 서로 상대방에 의해 충족될 수 있는 이벤트를 무한히 기다리는 현상
Bounded-buffer-problem
Readers-Writers Problem
- 한 프로세스에 DB가 write중일 때 다른 프로세스가 접근하면 안됨
- read는 동시에 여럿이 해도 됨
Dinings-philosophere problem
- 젓가락은 공유자원이기때문에 잘 배분을 해야 다 먹을 수 있음
- 하지만 데드락의 경우가 있음(모두 왼쪽 젓가락을 잡았을 경우)
- 해결책: 짝수-왼쪽 젓가락, 홀수-오른쪽 젓가락 잡기
Monitor
- 동시 수행중인 프로세스 사이에서 추상적인 데이터의 안전한 공유를 보장하기 위해 사용
- 하나의 프로세스만이 활동 가능
'프로그래밍 > CS' 카테고리의 다른 글
운영체제(8/11) - Memory Management 1~4 (2) | 2023.02.01 |
---|---|
운영체제(7/11) - Deadlock 1,2 (0) | 2023.01.31 |
운영체제(5/11) - CPU Scheduling 1, 2 (0) | 2023.01.29 |
운영체제(4/11) - Process Management 1,2 (0) | 2023.01.28 |
운영체제(3/11)-Process 1,2,3 (0) | 2023.01.27 |
댓글