11주차에 설명한 병행 처리에서
병행 프로세스의 문제는
컴퓨터 시스템의 자원에는 어느 한 시점에 하나의 프로세스가 할당 되어 수행되는데, 동시에 두 개 이상의 프로세스를 병행처리 하면 여러 가지 문제점이 발생한다는 문제에서 해결방법 4가지가 존재하는데.
임계구역
상호 배제 기법
동기화 기법(세마포어, 모니터)
교착 상태 해결
이 있따.
컴퓨터 시스템은 한정된 수의 자원으로 구성되어있다.
☞교착 상태란?☜
+ 하나 또는 그 이상의 프로세스가 발생될 수 없는 어떤 특정 사건(event)을 기다리고 있는 상태
+ 특정 프로세스가 특정한 자원을 위하여 무한정 기다려도 도저히 해결 할 수 없는 상태
- 교착상태는 컴퓨터 시스템의 효율을 급격히 떨어뜨리는 문제점을 발생시킨다.
프로토콜을 이용하여 해결한다.
- 하나 이상의 프로세스가 강을 건너기 위해 무작정 기다리는 경우를 -> 기아상태(Starvation)라고한다.
① 자원 요청(Request)
- 프로세스가 필요한 자원 요청
- 해당 자원이 다른 프로세스가 사용 중이면 요청을 수락 떄까지 대기.
(다른 프로세스에 의하여 자원이 사용 중일 때, 요청한 자원을 얻을 수 있을 때까지 기다려야 한다.)
② 자원 사용(Use) : – 프로세스가 요청한 자원 획득하여 사용
③ 자원 해제(Release) : – 프로세스가 자원 사용 마친 후 해당 자원 되돌려(해제
★ 교착 상태 발생의 네 가지 조건 ★
❶ 상호배제(Mutual Exclusion)
• 자원을 최소 하나 이상 비공유. 즉, 한 번에 프로세스 하나만 해당 자원 사용할 수 있어야 함
• 사용 중인 자원을 다른 프로세스가 사용하려면 요청한 자원 해제될 때 까지 대기
❷ 점유와 대기 (Hold and Wait)
• 자원을 최소한 하나 정도 보유하면서 다른 프로세스에 할당된 자원을 얻으려고 대기하는 프로세스 있어야 함
❸ 비선점 (No preemption)
• 자원 선점 불가. 즉, 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함.
❹ 순환(환형) 대기(Circular Wait)
• 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 장원 요구해야 함
-교착 상태가 발생하기 위해서는 위의 4가지 조건이 모두 만족되어야 한다.
-환형 대기 조건은 점유와 대기 조건을 포함하므로 4개의 조건이 완전히 독립된 것이 아니지만,
이 조건들을 분리해서 생각하면 유용한 점이 많다.
-이들 조건 중 최소한 한 가지를 일어나지 않게 하여 교착 상태를 예방할 수 있다
-자원 할당 그래프를 통해
-그래프에 사이클이 없다면 시스템에 교착상태는 발생하지 않는다.
-반면에 사이클이 있으면 교착 상태임을 암시한다.
Þ자원 하나에 사이클이 연관 되어 있으면 교착 상태가 꼭 발생
Þ자원이 여러 개 일 경우는 사이클이 있다고 반드시 교착 상태가 발생한다는 의미는 아니다
12주차 - 2교시(교착 상태 해결)
• 교착상태 해결 기법
§ 교착상태 예방(prevention) 기법
§ 교착상태 회피(avoidance) 기법
§ 교착상태 발견(detection) 기법
§ 교착상태 회복(recovery) 기법
알아보자 ^_^..
예방 기법 : 교착 상태가 발생되지 않도록 사전에 시스템을 제어하는 방법으로, 교착 상태 발생의 4가지 조건 중에서 어느 하나를 제거(부정)함으로써 수행됨
v 자원의 낭비가 가장 심한 기법이다.
v 예방기법 중 점유 및 대기 부정은 각 프로세스는 한꺼번에 자기에게 필요한 자원을 모두 요구해야 하며, 이 요구 가 만족되지 않으면 작업을 진행할 수 없게 하는 방법
v 현실적으로 사용하기 어려
하벤더(Havender)의 교착 상태 예방 방법.
- 네가지 조건 중 상호배제조건을 제외한 세가지 조건의 방지법만 제시 하였음
- 상호 배제 조건을 부정하지는 않음
ㄴ이 조건을 부정하면 하나의 자원을 여러 프로세스가 공유함을 허락 하는 꼴
§ 점유와 대기 조건 방지
• 각 프로세스는 필요한 자원 한 번에 모두 요청해야 하며, 요청한 자원을 모두 제공받기 전 까지는 작업 진행 불가
§ 비선점 조건 방지
• 어떤 자원을 점유하고 있는 프로세스의 요청을 더 이상 허용하지 않으면 점유한 자원을 모두 반납하고, 필요할 때 다시 자원 요청
§ 순환(환형) 대기 조건 방지
• 모든 프로세스에 자원 순서대로 할당
상호 배제 조건 방지
+ 시스템 내의 모든 자원들을 공유 가능하게 하는 방법.
회피 기법 : 교착 상태가 발생할 가능성을 배제하지 않고, 교착 상태가 발생하면 적절히 피해나가는 방법으로, 주로 은행원 알고리즘이 사용됨
v 은행원 알고리즘을 적용하기 위해서는 자원의 양과 사용자(프로세스) 수가 일정 해야 한다.
v 은행원 알고리즘은 프로세스의 모든 요구를 유한한 시간 안에 할당하는 것을 보장한다.
v 은행원 알고리즘은 대화식 시스템에 적용할
교착 상태 회피의 개념
+ 목적 : 덜 엄격한 조건 요구하여 자원 좀 더 효율적 사용
+ 예방보다는 회피가 더 병행성 허용
§ 교착 상태의 회피 방법
• 프로세스의 시작 중단
- 프로세스의 요구가 교착 상태 발생시킬 수 있다면 프로세스 시작 중단
• 자원 할당 거부(은행원 알고리즘)
- 프로세스가 요청한 자원 할당했을 때 교착 상태 발생할 수 있다면 요청한 자원
Dijkstra’s 알고리즘(다익스트라의 은행가 알고리즘
- 교착상태 회피를 위한 간단한 이론적 기법
- 자원 할당 거부, 시스템의 상태를 항상 안전상태로만 진행 시
- 자원의 할당 허용 여부 결정 전에 미리 결정된 모든 자원의 최대 가능한 할당량을
시뮬레이션하여 안전 여부 검사. 그런 다음 대기 중인 다른 모든 활동의 교착 상태 가능성 조사 하여 ‘안전 상태’ 여부 검사·확인
v 교착상태 발견기법은
시스템에 교착상태가 발생했는지 점검하여 교착상태 에 있는 프로세스와 자원을 [발견] 하는 것을 의미
v 교착상태 발견 알고리즘과 자원 할당 그래프(resource allocation graph) 등을 사 용할 수 있다.
v 교착상태 회복기법은 교착상태를 일으킨 프로세스를 종료하거나 교착 상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하 는 것을 의미한다.
v 시스템 내에 존재하는 교착상태를 제
이후 엄청많은 문제를 풀어보자
'📜✏️노트 자리없어서 적는 IT 지식📜✏️' 카테고리의 다른 글
운영체제 - (병행프로세스 문제.) (2) | 2024.06.15 |
---|---|
운영체제 - (리뷰 정리 시험문제) (2) | 2024.06.15 |
운영체제 (11주차 - 프로세스 간 동기화 및 통신) (1) | 2024.06.14 |
운영체제 (10주차 - 디스크 스케줄링과 파일시스템(2)) (3) | 2024.06.14 |
운영체제 (10주차 - 디스크 스케줄링과 파일 시스템) (3) | 2024.06.13 |