critical section
-
[OS] Critical Section Problem H/W Solution - Mutex Locks & SemaphoreCS/Operating System 2021. 12. 1. 21:46
앞의 Synchronization과 Critical-Section Problem에서 설명했던 critical section problem의 solution에 대해 알아보자! Critical section의 기본 조건 1. Mutual Exclusion 어떤 프로세스가 Critical section을 실행 중이라면, 다른 프로세스는 Critical section을 실행할 수 없다! 2. Progress 어떠한 프로세스도 critical section을 실행하지 않고, critical section을 실행하려는 프로세스가 있다면, 다음 critical section을 실행하는 프로세스가 무기한 연기되어선 안 된다! 👉 deadlock 방지 3. Bounded Waiting 각 프로세스는 유한한 횟수의 시도 ..
-
[OS] Critical Section Problem S/W Solution - Peterson's SolutionCS/Operating System 2021. 12. 1. 19:53
앞의 Synchronization과 Critical-Section Problem에서 설명했던 critical section problem의 solution에 대해 알아보자! Critical section의 기본 조건 1. Mutual Exclusion 어떤 프로세스가 Critical section을 실행 중이라면, 다른 프로세스는 Critical section을 실행할 수 없다! 2. Progress 어떠한 프로세스도 critical section을 실행하지 않고, critical section을 실행하려는 프로세스가 있다면, 다음 critical section을 실행하는 프로세스가 무기한 연기되어선 안 된다! 👉 deadlock 방지 3. Bounded Waiting 각 프로세스는 유한한 횟수의 시도 ..
-
[OS] Synchronization과 Critical-Section ProblemCS/Operating System 2021. 12. 1. 18:50
🔍 Background process synchronization이 필요한 이유! ❗️ 다수의 프로세스/스레드가 공유 데이터에 동시(concurency -> single core), 병렬(parallel -> multicore) 접근으로 인한 데이터 불일치(inconsistency)가 발생할 수 있다. Example - Producer-Consumer problem Producer: 데이터 생성 스레드 Consumer: 데이터 소비 스레드 👉 이 두 스레드는 같은 데이터를 생산하고 소비하는 스레드이기 때문에 반드시 동기화되어야 한다!!! 두 thread가 각각 이러한 코드를 가지고 있다고 생각해보자. global variable로 선언되어 있는 counter 변수는 두 thread가 공유하는 변수이다. ..
-
[OS] Synchronization과 AsynchronizationCS/Operating System 2021. 9. 20. 20:26
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. Synchronization vs Asychronization Synchronization: 메소드를 실행했을 때 값이 반환되기 전까지 blocking되어 메소드 실행과 동시에 반환 값이 기대되는 경우를 말한다. Asynchronization: 메소드를 실행했을 때 blocking되지 않고 이벤트 큐에 넣거나 백그라운드 스레드에게 해당 task를 위임하고 다음 코드를 수행하기 때문에 반환 값을 바로 반환하지 않는다. 프로세스 동기화 Critical Section (임계영역) 동일한 자원을 동시에 접근하는 작업 (e...