[운영체제] 동기화 기법(뮤텍스 락, 세마포어)
·
CS/운영체제
1. 뮤텍스 락한 시점에 하나의 프로세스만 임계 구역에 진입할 수 있다는 상호 배제를 위해 'lock'과 'unlock' 개념을 이용한다.lock: 임계 구역에 들어갈 권한을 얻고 다른 프로세스가 락을 가지고 있다면 해제될 때까지 대기unlock: 임계 구역에서 작업을 마치고 해제. 이후 다른 프로세스가 임계구역에 진입할 수 있음2. 세마포어(카운팅 세마포어)좀 더 일반화된 방식의 동기화 도구이며 공유 자원이 여러 개 있는 경우에도 적용 가능하다.임계 구역 앞에서 멈춤 신호를 받으면 잠시 기다리기임계 구역 앞에서 가도 좋다는 신호를 받으면 임계 구역에 진입// 임계 구역에 들어가도 좋을지, 기다려야 할지 알려줌wait() { while( S 바쁜 대기 해결바쁜 대기(busy watiting): 가장 단순..
[운영체제] 공유 자원과 임계 구역
·
CS/운영체제
1. 공유 자원과 임계 구역공유 자원여러 프로세스 혹은 스레드가 공유하는 자원전역 변수, 파일, 입출력 장치, 보조기억장치 등임계 구역동시에 실행하면 문제가 발생하는 자원에 접근하는 코드 영역은행가 문제에서 잔액 변수에 접근하는 것 등임계 구역에 진입하고자 하면 진입한 프로세스 이외에는 대기해야 한다. 레이스 컨디션(Race Condition)임계 구역에 동시에 접근하면 자원의 일관성이 깨질 수 있다. 이를 레이스 컨디션이라고 한다.고급언어가 저급언어로 변환된 여러줄의 코드에서 문맥교환이 발생하면 자원의 일관성이 깨질 수 있다. 2. 운영체제의 임계구역 문제 해결상호 배제를 위한 동기화를 위한 세 가지 원칙상호 배제: 한 프로세스가 임계 구역에 진입했다면 다른 프로세스는 들어올 수 없음진행: 임계 구역..