교착상태

    [운영체제] 교착상태(Deadlock) 회피

    [운영체제] 교착상태(Deadlock) 회피

    [데드락 회피] 데드락을 회피하기 위해선 사전 정보가 필요하다. → 1 ) 얼마나 많은 자원을 이용할 것인지 → 2 ) 할당 된 자원의 수 → 3 ) 이용 가능한 자원의 수 [안전한 상태] 데드락이 발생하지 않는 상태를 안전한 상태라고 한다. → 모든 프로세스가 실행 후 끝날 수 있는 상태 → safe 상태에서 unsafe상태가 되는 요청을 승인하지 않고 대기시킴으로써 데드락을 회피한다. [데드락 회피 알고리즘] 1 ) 자원 할당 그래프(O(n^2)) : 타입당 자원의 개수가 하나일 때 사용 → 모든 간선을 지우고 프로세스 노드들을 연결함 → 만약 싸이클이 생기면 데드락! 2 ) 뱅크 알고리즘 : 타입당 여러개의 자원을 요구할 때 사용 → 최대 몇 개의 자원을 사용하는지에 대한 사전 정보 필요 → 프로세..

    [운영체제] 교착상태(DeadLock) 예방법

    [운영체제] 교착상태(DeadLock) 예방법

    이번 글에서는 데드락이 무엇인지 그리고 그 데드락을 예방 및 회피하는 방법에 대해서 공부한다. 데드락이란? 여러 프로세스들이 실행되면서 서로가 서로를 끝날 때까지 기다리면서 결국 모두 실행되지 못하는 상황을 말한다. [데드락이 걸리는 조건] 데드락을 방지하기 위해 먼저 데드락이 걸리는 조건을 알아보자. 1 ) Mutual exclusion : 자원을 상호배타적으로 사용한다. → 최소한 하나의 자원이 비공유 모드로 점유되어야 함. (비공유 모드에서는 한 번에 한 스레드만이 그 자원을 사용할 수 있음.) 2 ) Hold and wait : 자원을 가지고 있으면서 다른 자원을 기다리는 프로세스로 구성됨. 3 ) No preemption : 강제로 자원을 뺏는 선점을 하지 않는다. 4 ) Circulalr wa..