생산자와 소비자 문제 및 공유 자원과 임계 구역
·
운영체제/동기화란
생산자와 소비자 문제 및 공유 자원과 임계 구역이 글에서는 상호 배제를 위한 동기화의 개념을 이해하기 위해 고전적인 사례인 생산자와 소비자 문제를 살펴보고, 이어서 공유 자원과 임계 구역, 그리고 이로 인해 발생할 수 있는 레이스 컨디션에 대해 논의합니다.1. 생산자와 소비자 문제생산자와 소비자 문제는 두 프로세스(또는 스레드)가 공유된 버퍼에 데이터를 추가하거나 제거할 때 발생하는 전형적인 동기화 이슈입니다.생산자 (Producer):버퍼에 데이터를 넣고, 공유 변수인 총합을 1 증가시킵니다.소비자 (Consumer):버퍼에서 데이터를 제거하고, 총합을 1 감소시킵니다.두 프로세스는 동일한 총합 변수를 공유하기 때문에, 초기에 물건이 10개 있을 경우 총합은 10으로 설정됩니다.(그림 출처: 혼자 공부..
동기화(Synchronization)의 의미
·
운영체제/동기화란
동기화(Synchronization)의 의미현대의 운영체제에서 여러 프로세스가 동시에 실행되며, 상호 협력하고 자원을 공유한다. 이때 동기화(Synchronization) 라는 개념이 필수적이다. 동기화란 프로세스들 사이의 실행 시점을 조절하여 올바른 수행 결과를 보장하는 것을 말한다.실행 순서 제어: 특정 조건(작업 완료 등)이 충족되어야 다음 프로세스가 실행되도록 순서를 조정상호 배제(Mutual Exclusion): 공유 자원에 대해 동시에 접근함으로써 발생하는 충돌을 방지아래에서는 이 두 측면을 살펴보며 동기화의 구체적인 의미를 이해해 보자. 1. 프로세스 동기화란 무엇인가?운영체제에서 여러 프로세스(혹은 스레드)가 동시에 실행되면서 협력해야 할 때, 각 프로세스가 원하는 시점이나 조건을 정확히 ..