CS

[OS] 동기화(Synchronization)란?

KJihun 2023. 10. 6. 18:04
728x90

 

 

 

동기화(Synchronization)

1. 멀티 프로세스, 멀티 스레드 환경에서 자원에 한 프로세스만이 접근가능하도록 하는 것

2. 멀티 프로세스, 멀티 스레드 환경에서 여러 프로세스가 공유 자원에 동시에 접근하는 것을 조절하는 메커니즘

 

 

멀티 프로세스, 멀티 스레드 환경에서 프로세스 동기화를 하지 않으면 데이터의 일관성이 깨지기 때문에 연산결과가 잘못 반환될 가능성이 존재한다.

동기화를 통해 공유 자원을 안전하게 사용하고, 예측 가능한 방식으로 프로세스 간 상호작용을 관리하기 위해 필요하다.

 

Race Condition(경쟁 상태): 여러 프로세스나 스레드가 동기화 메커니즘 없이 자원에 접근하려는 상태.

공유된 자원에 대한 접근 순서에 따라 실행 결과가 달라질 수 있는 상황을 의미한다.

 

Race Condition 발생하는 경우

1. 커널 작업에서 수행하는중 인터럽트 발생

2. 프로세스가 시스템 콜을 해서 커널모드로 진입을 하고, 작업을 수행하는 도중 문맥교환이 발생할 때

3. 멀티프로세서에서 공유메모리 내의 커널 데이터에 접근하는 경우

4. 멀티쓰레드 환경에서 두개 이상의 쓰레드가 공통의 변수에 접근하는 경우

 

 

[운영체제(OS)] 6. 프로세스 동기화(Process Synchronization)

[목차] 1. Race Condition 2. Critical Section 3. Synchronization Algorithms 4. Synchronization Hardware 5. Mutex Locks 6. Semaphores 7. Classical Problems of Synchronization 8. Monitor 참고) - https://parksb.github.io/article/10.html - KOCW 공개강의

rebro.kr

 

 

 

동기화의 부작용으로 교착상태(Dead Lock)이 발생할 수 있다.

 

[OS] 교착상태와 기아상태란? 해결방법

Dead Lock(교착상태) 다중 프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태 아래 조건 중 하나라도 미충족 시 교착상태가 발생하지 않음 상호 배제(Mutual Exclusion)

developerhun.tistory.com