[OS] 프로세스와 스레드 동기화
Computer Science

[OS] 프로세스와 스레드 동기화

728x90
반응형

 

✨프로세스 동기화 : 하나의 자원을 한 시점에 하나의 프로세스만이 접근

 

스레드 동기화 : 하나의 코드 블록 또는 메소드를 한 시점에 하나의 스레드만이 접근

 

🟠한 스레드의 특정 작업이 끝나기 전까지 다른 스레드의 방해를 받지 않도록 하는 것이 필요함(데이터 일관성 유지를 위해) 그래서 도입된 개념이 바로 임계 영역과 잠금(락, lock)이다.

 

🟠공유 데이터를 사용하는 코드 영역을 임계 영역으로 정해놓고, 공유 데이터(객체)가 가지고 있는 락을 획득한 단 하나의 스레드만이 해당 영역 내의 코드를 수행할 수 있게 한다. 그리고 해당 스레드가 임계 영역 내의 모든 코드를 수행하고 벗어나서 락을 반납해야지만 다른 스레드가 반납된 락을 획득하여 임계영역의 코드를 수행할 수 있게 된다.

 

🟠이처럼 한 스레드가 진행 중인 작업을 다른 스레드가 간섭하지 못하게 하는 것이 스레드의 동기화라고 한다. 동기화가 되지 않는다면 데이터 일관성이 지켜지지 않는 문제가 발생

반응형