동기화 (컴퓨터 과학)

위키백과, 우리 모두의 백과사전.

컴퓨터 과학에서 동기화(synchronization)는 합의에 도달하거나 특정 작업 순서를 커밋하기 위해 특정 지점에 합류하거나 핸드셰이킹하도록 여러 프로세스를 조정하는 작업이다.

필요성[편집]

동기화의 필요성은 다중 프로세서 시스템에서만 발생하는 것이 아니라 모든 종류의 동시 프로세스에서 발생한다. 단일 프로세서 시스템에서도 마찬가지이다. 아래에는 동기화에 필요한 몇 가지 주요 요구 사항이 언급되어 있다.

  • 포크 및 조인: 작업이 포크 지점에 도착하면 N개의 하위 작업으로 분할된 다음 n개의 작업으로 서비스된다. 서비스가 완료된 후 각 하위 작업은 다른 모든 하위 작업의 처리가 완료될 때까지 기다린다. 그런 다음 다시 합류하고 시스템을 떠난다. 따라서 병렬 프로그래밍에는 모든 병렬 프로세스가 여러 다른 프로세스가 발생할 때까지 기다리기 때문에 동기화가 필요하다.
  • 생산자-소비자: 생산자-소비자 관계에서 소비자 프로세스는 필요한 데이터가 생성될 때까지 생산자 프로세스에 종속된다.
  • 배타적 사용 리소스: 여러 프로세스가 리소스에 의존하고 동시에 리소스에 액세스해야 하는 경우 운영 체제는 특정 시점에 하나의 프로세서만 리소스에 액세스하도록 보장해야 한다. 이는 동시성을 감소시킨다.

같이 보기[편집]

외부 링크[편집]