본문 바로가기

Process Synchronization

Process Synchronization - Synchronization Hardware Synchronization Hardware, 하드웨어 동기화 Critical Section Problem의 경우 단일 처리기 환경에서는 저번 포스팅의 얘기했던 알고리즘과 같이 Interrupt를 방지함으로써 간단하게 해결할 수 있다. 하지만 이는 다중 처리기 환경의 경우에는 적용할 수 없다. 다중 처리기 환경에서는 인터럽트가 안 된다는 메시지를 모든 처리기에 전달해야 하기 때문에 시간이 오래 걸리며 또한 메시지를 확인하기 위해서 Critical Section에 들어가는 것을 지연시키기 때문에 비효율적이다. 그렇기 때문에 많은 Hardware들이 특별한 하드웨어 명령어들을 제공하고 있다. 이번 포스팅에서는 그 중에서 가장 대표적인 Test-and Set 명령어를 알아보도록 하자. Test-and Set을.. 더보기
Process Synchronization - Critical Section Problem Critical Section Problem, 임계 구역 문제 Critical Section이란 Process 또는 Thread들이 공통 변수들을 변경하고, 테이블을 갱신하며, 파일의 쓰기 작업들을 수행하는 구역을 말한다. 이전 포스트에서 말한 Race Condition이 일어 날 수 있는 구역을 말하는 것이다. (이제부터 포스팅의 편의를 위해 Thread를 중점으로 설명하겠다.) 사실 상 이런 Race Condition문제의 경우 한 Thread가 Critical Section에 들어갔을 경우 다른 Thread들은 해당 구역으로의 접근을 배제해야 한다. 하지만 무조건적으로 접근을 배제 할 수는 없기 때문에 해결 방법에는 몇 가지 요구 사항이 존재한다. 1. Mutual Exclusion, 상호배제 : .. 더보기
Process Synchronization - Process Synchronization Process Synchronization, 프로세스 동기화 Cooperation Process, 협력적 프로세스는 시스템내에서 실행중인 다른 프로세스의 실행에 영향을 주거나 영향을 받는 프로세스를 말한다. 간단하게 서로 다른 Process들이 서로 영향을 준다는 얘기다. 이러한 Cooperation Process(이하 ,CP)를 위한 방법으로는 크게 두 가지가 있다. 1. 논리적 데이터 주소를 공유 2. 같은 데이터 파일을 공유 첫 번째 방법이 우리가 흔히 알고 있는 Thread를 말한다. 사실상 두 가지라고 써있지만 실질적으로는 같은 데이터를 사용하는 것을 CP라고 하는 것이다. 하지만 공유된 데이터를 동시에 접근하면 데이터의 불일치가 발생한다. 이러한 데이터 불일치를 설명하기 좋은 경우가 Bound.. 더보기