Mutual Exclusion 3

[운영체제] Deadlock

오늘은 이전 포스팅들에서 간단히 언급되었던 Deadlock에 대해 다뤄보겠습니다. Deadlock 데드락. 우리는 이 개념을 설명하기 위해 Starvation이라는 개념을 먼저 소개했었습니다. Starvation은 프로세스가 critical section을 실행하려고 하는데, 다른 프로세스가 이미 critical section을 실행 중이여서 이를 위해 평소보다 오래 기다리는 상태를 의미합니다. 이에 확장 개념인 Deadlock은 Starvation이 영원히 지속되는 것을 의미합니다. 아래의 그림은 Deadlock을 아주 잘 나타내는 그림입니다. 데드락이 발생하는 경우 Reusable Resource 중 하나인 메모리의 할당량이 200Kb라고 해봅시다. P1, P2는 특정 용량만큼의 메모리를 요구하는 프..

CS/OS 2023.10.21

[운영체제] 5-3. Critical Section Problem-SW Solution

지난 시간에 다뤘던 Critical Section Problem을 해결하는 방법에 대해서 다뤄보고자 합니다. 그 중에서도 SW 적으로 해결할 수 있는 솔루션을 알아봅시다. 요구사항 우선, 우리는 항상 어떠한 문제를 해결하기 위해서는 아래와 같은 질문에 대한 답을 얻고 시작해야합니다. 문제를 해결하기 위해 무엇을 충족해야하는가? 이번에 소개한 Critical Section Problem(이하 csp)를 해결하기 위한 요구사항들은 다음과 같습니다. Mutual Exclusion(상호 배제) : 한 프로세스가 critical section을 수행하는 중이라면, 해당 critical section은 다른 프로세스가 실행할 수 없음을 의미합니다. Progrss(실행 가능) : 만약 어떤 critical secti..

CS/OS 2023.10.07

[운영체제] 5-1. 프로세스 동기화

오늘은 프로세스 동기화에 대해서 다뤄봅니다. 5장에서 다루는 내용들은 운영체제 분야에서 다소 중요한 개념이므로, 꼭 그리고 자세하고 정확하게 짚고 넘어갑시다. 동시성 제어(Concurrency Control) 프로세스 동기화에 대한 설명을 하기 전, 동시성 제어에 대해 짚고 넘어가봅시다. 단일 프로세서를 기준으로 사실 컴퓨터는 하나의 일만 처리하므로 동시라는 말이 어울리지 않을 수 있습니다. 하지만, 매우 빠른 속도로 여러가지 일을 동시에 처리하는 컴퓨터는 마치 사람이 보기에는 동시에 처리되는 것처럼 보일 수 있죠. 동시성을 제어한다는 것은, 프로세스(또는 쓰레드)가 매우 빠른 속도로 변화함에 따라 데이터에 혼란이 있을 수 있는 사태를 방지해야한다는 것을 의미합니다. 따라서, 우리는 이러한 컴퓨터 자원을..

CS/OS 2023.10.02