[운영체제(OS)] 프로세스 동기화 - (2) Critical Section 처리
2022. 2. 26. 03:08
CS/운영체제
0.🚶들어가며 이전 글에서는 동기화란 무엇인지, 동기화와 관련된 개념인 경쟁 조건과 임계 영역에 대해 알아보았습니다. 이번 글에서는 Critical Section에서 생길 수 있는 문제를 어떤 방법으로 해결하는지에 대해 알아보도록 하겠습니다. 기본적으로 Critical Section 처리는 다음과 같은 구조를 가지고 있습니다. Critical Section을 entry section과 exit section으로 감싸고 입구(entry)에서는 다른 프로세스가 들어오지 못하도록 Lock을 출구(exit)에서는 Unlock을 해주는 방식입니다. 이러한 구조를 구현하는 방식은 다양한데 이에 대해 알아보도록 하겠습니다. 1.😀Low-Level Synchronization (Busy Waiting) 1) 소프트 웨..
[운영체제(OS)] 프로세스 동기화 - (1) 프로세스 동기화 개념
2022. 2. 26. 00:16
CS/운영체제
0.🚶들어가며 프로세스 동기화에 대한 내용을 다뤄보려 합니다. 첫 번째 주제로는 동기화가 무엇인지, 동기화가 왜 필요한지, 관련 개념은 어떤 것이 있는지에 대해 소개해보도록 하겠습니다. 1.❓동기화란 무엇인가❓ 동기화 필요성에 대한 이해를 돕기 위해 한 예시를 들어보겠습니다. 동시에 실행되고 있는 두 코드가 있다고 가정해봅시다. 언뜻 보면 전혀 문제가 없어 보이는 코드입니다. 하지만 다음과 같은 순서대로 실행된다면 문제가 발생합니다. 좌측 코드 라인1 > 우측 코드 라인1 > 우측 코드 라인2 > 좌측 코드 라인2 (물약 먹는 코드 + 공격받는 코드)를 실행시켰을 시, health의 최종 값은 기존보다 40(50 - 10) 증가되어있음을 기대하는데 위와 같은 순서대로 실행된다면 health는 50이 증가..