본문 바로가기
CS 지식

프로세스 동기화(Process Synchronization)

by chanfficial 2023. 2. 6.

프로세스 동기화(Process Synchronization)

  • 협력하는 프로세스 사이에서 실행 순서 규칙을 정하여 공유 자원의 일관성을 보장하는 것이다.
  • 프로세스가 협력하며 공유 자원을 사용하는 상황에 경쟁조건(race conditioin)이 발생하면 공유 자원을 신뢰할 수 없게 되는데, 이를 방지하기 위해 공유 자원 사용 시 특별한 규칙을 정하는 것이 프로세스 동기화이다.

 

경쟁 조건(Race Condition)

: 여러 프로세스(또는 스레드)가 공유 자원에 동시 접근할 때, 공유 자원에 대한 접근 순서에 따라 실행 결과가 달라질 수 있는 상황

 


 

임계 구역(Critical Section)

: 여러 프로세스(또는 스레드)가 자원을 공유할 때, 하나의 프로세스(스레드)만 접근 가능하도록 제한해둔 코드 영역

 

임계 구역 문제의 해결 조건

  1. 상호 배제(Mutual Exclusion) : 어떤 프로세스(또는 스레드)가 임계 구역에서 작업 중일 때, 다른 프로세스는 임계 구역으로 접근할 수 없다.
  2. 진행(Progress) : 임계 구역에서 작업 중인 프로세스가 없다면, 임계 구역으로 진입하려는 프로세스 중 하나를 적절히 선택하여 임계 구역에 진입할 수 있게 해야 한다.
  3. 유한 대기(Bounded Wating) : 다른 프로세스의 기아(Starvation)를 방지하기 위해 임계 구역에 한 번 접근했던 프로세스는 다시 임계 구역에 들어갈 때 제한을 두어야 한다.