프로세스 동기화(Process Synchronization)
- 협력하는 프로세스 사이에서 실행 순서 규칙을 정하여 공유 자원의 일관성을 보장하는 것이다.
- 프로세스가 협력하며 공유 자원을 사용하는 상황에 경쟁조건(race conditioin)이 발생하면 공유 자원을 신뢰할 수 없게 되는데, 이를 방지하기 위해 공유 자원 사용 시 특별한 규칙을 정하는 것이 프로세스 동기화이다.
경쟁 조건(Race Condition)
: 여러 프로세스(또는 스레드)가 공유 자원에 동시 접근할 때, 공유 자원에 대한 접근 순서에 따라 실행 결과가 달라질 수 있는 상황
임계 구역(Critical Section)
: 여러 프로세스(또는 스레드)가 자원을 공유할 때, 하나의 프로세스(스레드)만 접근 가능하도록 제한해둔 코드 영역
임계 구역 문제의 해결 조건
- 상호 배제(Mutual Exclusion) : 어떤 프로세스(또는 스레드)가 임계 구역에서 작업 중일 때, 다른 프로세스는 임계 구역으로 접근할 수 없다.
- 진행(Progress) : 임계 구역에서 작업 중인 프로세스가 없다면, 임계 구역으로 진입하려는 프로세스 중 하나를 적절히 선택하여 임계 구역에 진입할 수 있게 해야 한다.
- 유한 대기(Bounded Wating) : 다른 프로세스의 기아(Starvation)를 방지하기 위해 임계 구역에 한 번 접근했던 프로세스는 다시 임계 구역에 들어갈 때 제한을 두어야 한다.
'CS 지식' 카테고리의 다른 글
동기(Synchronous)와 비동기(Asynchronous) (0) | 2023.02.06 |
---|---|
[운영체제] 스케줄러 (0) | 2023.02.05 |
멀티 프로세스와 멀티 스레드의 차이 (0) | 2023.01.15 |
프로세스(Process)와 스레드(Thread)의 차이 (0) | 2023.01.15 |
SQL 과 NoSQL 의 차이 (0) | 2023.01.08 |