반응형
3과목. 운영체제
📒 05. 병행 프로세스와 교착상태
1. 병행 프로세스
(1) 병행 프로세스의 개념
- 두 개 이상의 프로세스가 동시에 존재하며 실행 상태에 있는 것
(2) 병행 프로세스의 문제점
- 동시에 여러 프로세스를 처리할 때 한정된 자원에 대한 사용 순서 등의 문제가 발생할 수 있음
(3) 병행 프로세스의 해결책
- a) 임계 구역(Critical Section)
- 여러 프로세스가 공유하는 데이터나 자원에 대해 한 번에 하나의 프로세스만이 접근할 수 있도록 지정된 영역
- 특정 프로세스가 독점할 수 없고, 진입 요청 시 일정 시간 내에 진입을 허락해야 함 - b) 상호 배제 기법(Mutual Exclusion)
- 한 프로세스가 공유 메모리나 파일을 사용 중일 때, 다른 프로세스가 사용하지 못하도록 하는 제어 기법
- 데커의 알고리즘, 피터슨의 알고리즘, 다익스트라 알고리즘, 램포트의 베이커리 알고리즘 - c) 동기화 기법
- 스레드들에게 하나의 자원에 대한 처리 권한을 주거나 순서를 조정해주는 기법
- 세마포어 : 프로세스에게 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법
- 모니터 : 프로그래밍 언어 수준에서 동시성을 제어하는 상호 배제 기법
2. 교착상태(Dead Lock)
(1) 교착상태의 개념
- 여러 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스의 자원을 요구하며 무한정 기다리는 현상
- 서로 자원을 가지고 있는 상태에서 남의 자원을 요청하는 것
(2) 교착상태 발생 조건⭐
- a) 상호 배제(Mutual Exclusion)
- 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있음 - b) 점유와 대기(Hold & Wait)
- 자원을 점유하면서 다른 프로세스에 할당된 자원을 추가로 요구하며 대기 - c) 비선점(Non-Preemption)
- 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없음 - d) 환형대기(Circular Wait)
- 순차적으로 다음 프로세스가 요구하는 자원을 가지고 있는 상태
(3) 교착상태 해결 방법
- a) 예방 기법(Prevention)
- 교착 상태가 발생하지 않도록 시스템을 사전에 제어하는 방법 - b) 회피 기법(Avoidance)
- 교착 상태 발생 가능성을 피하는 방법으로, 주로 은행원 알고리즘 사용 - c) 발견 기법(Detection)
- 교착 상태가 발생했는지 점검하여 발견하는 방법 - d) 회복 기법(Recovery)
- 교착 상태르르 일으킨 프로세스를 종료하거나 선점하여 회복하는 방법
참고자료
흥달쌤, '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
1억뷰 N잡
[1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스
www.njobler.net
반응형
댓글