race condition 2

[운영체제] 5-2. Race Condition

오늘은 앞전 글에서 다룬 개념 중, Race Condition에 대해서 정리해보겠습니다. Race Condition 어떤 공유 자원이 있다고 할 때, 해당 자원을 접근하는 두 개의 프로세스가 실행되는 순서에따라 공유 자원이 다른 상태를 가질 수도 있는 경우. 즉, 각 프로세스의 실행이 독립적이 아닌 종속적인 상황을 의미합니다. 아래에는 그러한 상황을 예시로 보여줍니다. 여러 Producer 프로세스가 존재하여, 공유된 자원(Buffer)에 접근하여 데이터를 집어 넣습니다. 그러면 여러 Consumer 프로세스가 그 데이터를 빼서 쓰는 형태의 예시를 들어보겠습니다. +) 여기서 공유된 자원은 Producer와 Consumer가 프로세스인지 쓰레드인지에 따라 나뉩니다. 프로세스라면 Shared memory겠..

CS/OS 2023.10.03

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

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

CS/OS 2023.10.02