참고 : https://kils-log-of-develop.tistory.com/640
이제 프로세스 할당 과정에서 발생하는 문제점에 대해서 알아보기 전에 프로세스의 상태부터 알아보자


위에꺼 외울 필요도 없이 당연한거긴함. 상태 종류만 뭐가 있는지 확인만 해두자.
PID / Process Identifier
PCB / Process Control Block
얘네는 컨텍스트 스위칭할때도 나오니 찾아보셈
이왕 하는김에 메모리 구조도 알아도자.. JVM이랑 비슷하게 생김

데드락 ( 교착상태 / Dead Lock ) 이란 우리가 사용하는 CPU에는 한정된 자원을 가지고 있다. 필자의 CPU는 20개의 논리 프로세서를 가지고 있다.
이 자원을 누가 사용하는가를 놓고 특정 알고리즘에 의하여 할당받는다.
프로세스 할당과정에서 대기 상태로 들어간 프로세스가 실행상태로 돌아갈 수 없는 것을 데드락이라고 한다.
데드락의 4가지 조건은
1. 상호 베타
2. 보유 및 대기
3. 비선점
4. 환형 대기
를 모두 만족해야해서 잘 발생하지 않는다. // 필요 충분 조건이 아니라 필요 조건임. 무조건 발생하지는 않음
이렇게 말하면 아무도 못알아먹으니 풀어서 말하자면

A, B프로그램이 있고 하나의 프로세스 C가 있다고 가정하자.
A가 C를 할당받아 프로그램을 돌리고 있고, B가 C 자원을 사용하기 위해 대기하고 있다. 하지만 A를 실행하기 위해서는 B를 실행해야한다. 여기서 자원 할당 알고리즘은 비선점 알고리즘 중 하나이다.
이렇게 되면 데드락이 발생할 수!! 있다(가정임)
이를 방지하기 위해서는 방시, 회피, 복구, 무시 방법이 있다.
1. 예방 : 데드락이 생길 4가지 조건 중 하나를 없앰.
2. 회피 : 데드락이 발생할 가능성을 배제하지 않고 적절히 회피(?) // 뭔 개소린지 모르겠음
- 은행원 알고리즘 : https://jhnyang.tistory.com/102
- 자원 할당 그래프 알고리즘 : 자원 할당 그래프를 만들어서 사이클이 없을 경우( 저 위에 사진 ) 자원을 할당
3. 탐지 : 데드락를 허용하지만 발생하면 다시 회복함
4. 무시 : 그냥 무시해버림 // ...?? 윈도우가 이거 사용한다함...
'운영체제' 카테고리의 다른 글
NAS, DAS, SAN (0) | 2022.10.13 |
---|---|
운영체제 파일이란? 유저모드와 커널모드, NIC (0) | 2022.10.10 |
운영체제 프로세스 자원 할당에 대하여 ( 1 ) (0) | 2022.09.28 |
퍼옴 // 컨텍스트 스위칭이 일어나는 경우 (0) | 2022.09.27 |
스위치 - l2, l3, l4, l7 (0) | 2022.08.31 |