Process Synchronization 5.

모니터(Monitor)란? 세마포어(Semaphore)와 같은 추상적인 개념으로서, 동시 수행(Concurrency) 중인 프로세스 사이에서 추상형 데이터 타입(Abstract data type)의 안전한 공유를 보장하기 위하여 언어(Language) 수준에서 지원하는 High level synchronization construct이다. 유용성 세마포어가 비교적 쉽게 Critical section에 접근할 수 있도록 돕긴 하지만, 프로그래머가 코딩을 잘못하여 버그(Bug)가 생기면 검증이 어려운. 즉, 정확성(Correctness) 입증이 어려운 단점이 있다. 예를 들어 P(), V() 연산의 순서가 뒤바뀌거나(Mutex issue), P() 연산 후 V() 연산을 해야 하는데 다시 한 번 P() 연산(Deadlock issue)을 하는 등 단 한 번의 실수라도 있을 경우 시스템에 치명적인 영향을 준다. ...

2022년 2월 8일 · 4 min

Process Synchronization 3.

본 포스팅에서는 앞선 포스팅에서 다룬 Process synchronization 문제를 해결하기 위한 방법들을 추상화한 방법으로 중요한 개념인 세마포어(Semaphore)에 대하여 다룬다. Semaphore란 무엇인가? 사전적 의미로 수기 신호라는 뜻으로 세마포어(Semaphore)는 컴퓨터 자원의 신호등의 역할을 한다. 세마포어는 보다 구체적으로 두 가지 역할을 하는데 Mutex(Mutual Exclusion) 문제를 해결하고 어떠한 공유 자원을 획득하고 반납하는 작업을 처리해준다. 이해에 주의해야할 점은 Process synchronization을 해결하는 소프트웨어적인 방법처럼 어떠한 알고리즘의 구현(Implementation)을 말하는 것이 아니라 추상적인 개념을 의미한다는 점이다. 세마포어는 변수 S(Semaphore)와 자원을 획득하는 P(), 자원을 반납하는 V() 연산으로 구성된다. ...

2022년 2월 4일 · 5 min