Challenges/정보처리기사

[정보처리기사]4.프로그래밍 언어 활용/SW 운영체제의 활용/프로세스 동기화

뚱요 2022. 7. 5. 01:35
반응형

프로세스 동기화 

1. 프로세스 동기화

공유 데이터에 대한 동시 접근은 데이터 불일치 초래해서 일관성을 유지해야 한다.

1.1 임계 구역(Critical Section)

- 다중 프로그래밍 운영체제에서 여러 개의 프로세스 간에 공유자원을 접근하는 데 있어서 문제가 발생하지 않도록 한 번에  하나의 프로세스만 사용하도록 지정된 공유 자원 영역(동시 수행 불가)

- 한정된 대기문제를 해결하지 못하여 발생

- 작업은 신속하게 이루어져야함

- 명령어 실행 중 인터럽트 발생 금지

 

1.2  상호 배제(Mutual Exclusion)

- 특정 프로세스가 공유 자원을 사용하고 있을 경우  다른 프로세스가 해당 공유 자원을 사용하지 못하게 제어하여 임계 구역을 유지하는 방법

- 임계 구역 내에서는 인터럽트, 교착상태, 무한반복이 발생되지 않도록 해야 한다

(a)TestAndSet 알고리즘 

- 한정된 대기조건을 고려하여 시성을 제어 어하기 위한 동기화 명령어 중 하나로서, 특수한 하드웨어의 도움을 받아 수행

(b) 세마포어(Semaphore)

E.W.Dikstra 제안, P,V연산에 의해 임계 구역 접근 제어

- 상호 배제 원리 보장

- 초기화값 2, 임계구역에 2개의 프로세스가 들어 갈 수 있다

- 멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법

(c) 모니터(Monitor)

- 특정 공유 자원 할당하는데 필요한 데이터 및 프로시저 구성

- 자료 추상화, 정보 은폐 기초

- 외부에서는 모니터 내의 데이터를 직접 액세스 할 수 없음

- 경계에서 상호배제 시행

- 한 순간에 하나의 프로세스만이 모니터 진입

 

1.3. 교착 상태(Deadlock)

- 상호 배제에 의해 나타나는 문제점

- 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상

(1)교착상태가 발생하기 위한 4가지 필수 조건 

이 네 가지 조건 중 하나라도 충족되지 않으면 교착상태가 발생하지 않는다. 

(a)상호 배제(Mutual Exclusion): : 한 번에 한 개의 프로세스만이 공유 자원을 사용

(b)점유와 대기(Hold and Wait) : 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함

(c)비선점(Non-Preemption): 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함

(d) 환형 대기(Circular Wait): 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함(서로 간의 요구관계가 회전)

 

(2) 교착 상태 해결 방법

(a)예방기법(Prevention): 교착상태 충분조건 부정하며 사전에 제어

(b)회피 기법(Avoidance)  개정 전 기출, 20년 1, 2회 기출

- 발생 가능성 배제하지 않고  가능성을 피해나감

- 교착 상태가 발생할 가능성을 배제하지 않고, 교착 상태가 발생하면 적절히 피해나가는 방법으로, 주로 은행원 알고리즘이 사용된다

- e.g. 은행가 알고리즘(Banker’s Algorithm)

(c)발견기법(Detection)  교착상태 발생했는지 점검, 프로세스와 자원 발견(자원 할당 그래프)

(d)회복기법(Recovery) 없어질 때까지 교착상태에 포함된 프로세스 하나씩 종료하여 회복

 

 

[정보처리기사] 개정된 정보처리기사 필기 목차

 

[정보처리기사] 개정된 정보처리기사 필기 목차

 정처기 필기 100문제 중 각 챕터 당 20문제로 구성됩니다. 출판사 시나공의 정보처리기사 교재와 이전 기출문제들을 참고로 하여 간단히 키워드로요약하여 작성하였습니다. 각 중요도에 따라서

potato-potahto.tistory.com

 

반응형