프로세스 동기화(Process Synchronization)

jaeyong Lee·2024년 8월 1일
0

동기화가 필요한 이유

프로세스들이 동시에 실행되면서 공유자원에 접근할 때 이들이 충돌할 수 있다.
이를 막기 위해 동기화가ㅣ 필요하다.

동기화 관련 문제

경쟁 조건(Race Condition) : 두 개 이상의 프로세스가 공유자원을 경쟁적으로 사용할 때

임계 구역 문제(Critical Section Problem) : 임계구역이란 자원에 접근하는 코드영역을 말함
이 코드영역을 동시에 접근하면 일관성이 깨질 수 있음.

교착상태 (Dead Lock) : 여러 프로세스가 자원을 점유한 상태에서 서로 가지고 있는 자원을 기다리며 무한 대기

기아상태(Starvation) : 자원을 할당 받지 못하고 계속 대기

동기화 방법 및 도구

뮤텍스(Mutex) : 상호배제를 보장, 공유 자원에 접근할 때 오직 하나의 프로세스만이 접근할 수 있도록 한다.

세마포어(Semaphore) : 자원에 대한 접근을 제어하는 메커니즘으로 카운터를 통해 접근 가능한 프로세스의 수를 제한한다.

모니터(Monitor) : 고급 언어에서 동기화를 위해 사용되는 구조로, 공유 자원에 접근하는 코드를 감싸서 동기화 문제를 자동으로 해결하게 해준다.

스케쥴링과 헷갈림 주의

스케줄링은 어떤 프로세스가 언제 실행될지를 결정하는 것이고, 동기화는 여러 프로세스가 공유자원을 어떻게 안전하게 사용할지를 조정하는 것이다.

0개의 댓글