Skip to content

Latest commit

 

History

History
20 lines (16 loc) · 1.63 KB

CriticalSection-detail.md

File metadata and controls

20 lines (16 loc) · 1.63 KB

임계 영역(Critical Section)

  • 공유 자원접근하는 프로세스 내부의 코드 영역.
  • 한 프로세스의 임계 영역이 수행 중일 때 다른 프로세스가 같은 공유 자원을 사용하는 임계 영역을 수행한다면 문제가 발생할 수 있다.
  • 따라서 한 번에 한 프로세스만 접근해 사용한다.
  • 임계 영역을 들어오는 진입 영역(entry section), 나가는 부분인 퇴출 영역(exit section), 나머지 영역(remainder section)으로 구분된다.

임계 영역의 조건

상호 배제(Mutual Exclusion( == Mutex))

  • 한 프로세스가 자신의 임계 영역 내에서 실행되는 동안, 다른 프로세스가 같은 공유 자원을 사용하는 자신의 임계 영역에서 실행될 수 없는 것.

진행 (Progress)

  • 임계 영역을 실행 중인 프로세스가 없고 자신의 임계 영역으로 진입하려는 프로세스가 있다면, 나머지 영역에서 실행 중이지 않은 프로세스들만 임계 영역으로 진입하기 위해 요청할 수 있다.
  • 이는 무기한 연기될 수 없다.

한정된 대기 (Bounded waiting)

  • 프로세스가 자신의 임계 영역에 진입하기 위해 요청을 한 뒤, 그 요청이 허가될 때까지 다른 프로세스들이 자신의 임계 영역에 진입하도록 허용하는 횟수의 제한이 있어야한다.

임계 영역 해결 방안(동기화)

  • 하드웨어 기반 동기화와 소프트웨어 기반 동기화로 나뉜다.
  • 대표적인 소프트웨어 기반 동기화 기법으로 상호 배제(Mutex), 세마포어(Semaphore), 모니터(Monitor) 등이 있다.