프로그래밍 기술/정보처리기사필기

[운영체제] 병행 프로세스에서 고려사항

언제나휴일 2016. 4. 14. 08:04
반응형

병행 프로세스에서 고려사항


이번에는 정보처리기사 필기 과목인 운영체제의 병행 프로세스에서 고려 사항을 살펴보아요.

병행 프로세스
여러 프로세스가 동시에 동작하는 상태를 말합니다.
개의 프로세스가 경쟁하여 자원을 사용할 여러가지 문제가 발생할 있습니다.
경쟁 상태에 있을 임계 영역에 서로 들어가는 것을 방지하여야 합니다.

경쟁 자원
이상의 작업이 경쟁하여 사용하는 자원

경쟁 상태(Race Condition)
이상의 작업이 경쟁 자원을 사용하려는 상태

임계 영역(Critical Section)
경쟁 자원을 사용하는 영역

상호 배제(Mutual Exclusion)
이상의 작업이 동시에 임계 영역에 들어가지 못하게 하는 기법

세마포어(Semaphore)
여러 개의 프로세스의 동기화에 사용합니다.
경쟁 자원을 사용하기 전에 임계영역에 진입할 있을 때까지 Wait 
입계영역에 진입했을 P연산(Wait)으로 경쟁 자원 개수를 1 감소
경쟁 자원을 사용한 후에 임계 영역을 빠져나가기 전에 V연산(Signal)으로 경쟁 자원 개수를 1 증가

모니터(Monitor)
하나의 프로세스의 동기화에 사용합니다.
Wait
연산과 Siganl 연산으로 사용합니다.
임계영역에 집입하기 전에 Wait 연산을 수행합니다. (자신이 사용할 있을 때까지 대기)
임계영역을 벗어날 Signal 연산을 수행합니다. (자신이 사용을 끝냈음을 통보)

교착상태(Dead Lock)
경쟁 상태에서 다른 프로세스가 점유하고 있는 자원을 사용하기를 무한정 대기하는 상태

교창상태를 해결하는 방법
예방기법(Prevention): 교착상태가 발생하지 않게 시스템을 제어하는 방법으로 자원 낭비가 가장 심하다.
회피기법(Avoidance): 은행원 알고리즘
발견기법(Dectection)
회복기법(Recovery): 교착 상태에 있는 프로세스를 종료하거나 자원을 선점하여 다른 프로세스에 할당

너와 나의 연결고리 "공감"

반응형