Skip to content

Latest commit

 

History

History
28 lines (21 loc) · 1.57 KB

Semaphore&Mutex.md

File metadata and controls

28 lines (21 loc) · 1.57 KB

Process Synchronous(프로세스의 동기)

배타 제어

  • 여러 개의 Process가 File이나 Database에 동시에 액세스하면 데이터의 무결성이 손상될 수 있다.
  • 따라서 처리가 끝날 때까지 하나의 프로세스자원을 독점시키는 것이 필요하며, 이를 배타 제어라 한다.

세마포어 (Semaphore)

  • 정해진 수 이상의 프로세스가 공유 자원에 동시에 액세스하지 않도록 카운터를 사용해 제어하는 장치를 의미한다.
  • OS는 세마포어의 P조작(획득)과 V조작(해제)로 '통행 가능', '통행 불가' 두 상태를 관리한다.
  • 데드락을 피하기 위한 방법 중 하나

예시

  • 세마포어 카운터 초기값을 2로 하고, 공유 자원에 접근 하는 프로세스가 A, B, C가 있는 경우
  • 프로세스 A, B가 P 조작해 카운터가 0이 되면 프로세스 C는 공유자원에 접근할 수 없다.
  • 프로세스 처리가 끝나고 V조작으로 해제하면 카운터가 다시 1 이상이 되어 프로세스 C가 접근할 수 있다.

뮤텍스 (Mutex)

  • 세마포어의 카운터 초기값1인 경우과 같다.
  • 즉 한번에 하나의 프로세스만 공유 자원에 액세스 할 수 있다.
  • 데드락을 피하기 위한 방법 중 하나

자세한 설명

크리티컬 섹션(Critical Section)

  • 프로그램 중 배타 제어가 필요한 부분을 일컫는다.
  • P 조작부터 V 조작까지의 처리에 해당한다.

자세한 설명