병행 프로세스(Concurrent Process)
  : 여러개의 프로세스가 동시에 실행상태에 있는 것을 의미한다.

임계구역(Critical Section)
  - 여러 프로세스가 공유하는 Data 및 자원을 한 프로세스만 쓸수 있게 공유
  - 특정 프로세스가 독점할 수 없다
  - 규칙 : 한 프로세스가 자원을 반납한 후 다른 프로세스가 사용가능

상호 배제 기법(MUTEX; Mutual Exclusion)
  - 공유 자원은 한 프로세스만 사용하게 하고 다른 프로세스가 접근 못하게 제어
  - 여러 프로세스가 동시에 자원 공유시 각 프로세스가 번갈아 가며 사용하게 하므로 임계구역을 유지
  - DeadLock이 일어나지 않게 하기 위해서 꼭 필요하다.

동기화 기법(Synchronization)
  - 두개 이상의 프로세스를 동시에 처리할 수 없기 때문에 각 프로세스의 처리 순서를 결정하는 것
  - 상호배제의 한 형태이다
  - 동기화를 구현할 수 있는 방법에는 세마포어와 모니터가 있다.

  1. 세마포어(Semaphore)
     - 다익스트라(E. J. Dijkstra)가 제안하였으며, 수신호 깃발을 뜻한다.
     - S는 P와 V 2개의 연산에 의해 동기화를 유지한다.

      * S가 0일때 사용중, 1일때 사용가능한 상태이다
         한개의 프로세스가 들어갈때 S=S-1이라는 P연산으로 사용중을 나타내고
         사용이 끝나면 S=S+1이라는 V연산으로 사용가능하게 바꾸어 준다.

  2. 모니터(Monitor)
     - 모니터 내의 공유자원을 사용하려면 반드시 모니터의 진입부를 호출해야 한다.
     - 모니터 경계에서 상호배제가 시행된다.
     - Wait와 Signal 연산이 사용된다.
     - 화장실의 잠금장치와 비슷한 개념이다.

+ Recent posts