병행 프로세스에서 고려사항
이번에는 정보처리기사 필기 과목인 운영체제의 병행 프로세스에서 고려 사항을 살펴보아요.
병행 프로세스
여러 프로세스가 동시에 동작하는 상태를 말합니다.
두 개의 프로세스가 경쟁하여 자원을 사용할 때 여러가지 문제가 발생할 수 있습니다.
경쟁 상태에 있을 때 임계 영역에 서로 들어가는 것을 방지하여야 합니다.
경쟁 자원
두 개 이상의 작업이 경쟁하여 사용하는 자원
경쟁 상태(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): 교착 상태에 있는 프로세스를 종료하거나 자원을 선점하여 다른 프로세스에 할당
너와 나의 연결고리 "공감"
'프로그래밍 기술 > 정보처리기사필기' 카테고리의 다른 글
[소프트웨어 공학] 소프트웨어 생명 주기(Life Cycle) (0) | 2016.04.17 |
---|---|
[소프트웨어 공학] 소프트웨어 공학 (0) | 2016.04.17 |
[운영체제] 페이지 교체 알고리즘 (0) | 2016.04.14 |
[운영체제] 주기억장치 (0) | 2016.04.14 |
[운영체제] 기억장치 (0) | 2016.04.14 |
[운영체제] 스케쥴링 (0) | 2016.04.14 |
[운영체제] 프로세스 (0) | 2016.04.14 |
[운영체제] 프로그램 (0) | 2016.04.14 |
[운영체제] 운영기법 (0) | 2016.04.14 |
[운영체제] 운영체제 (0) | 2016.04.14 |