Software Courses/Operating System

[Deadlock] Deadlock and Resources types

김 정 환 2020. 12. 4. 22:17
반응형

Deadlock의 개념

    - blcoked : 프로세스가 특정 이벤트를 기다리는 상태

    - asleep : 프로세스가 필요한 자원(메모리 등)을 기다리는 상태

    - deadlock : 프로세스가 발생 가능성이 없는 이벤트를 기다리는 상태

 

    - starvation과 deadlock의 차이

        * deadlock은 사용할 수 없는 자원을 기다리는 상태

        * starvation은 사용할 수 있는 자원(CPU)를 기다리는 상태

        * 발생하는 상황이 다름

 

 

 

Deadlock 발생

    - 2개의 프로세스(P1, P2)와 2개의 자원(R1, R2)

    - P1이 자원 R2 요청

    - ② P2가 자원 R1 요청

    - P1이 자원 R1 요청했으나 자원이 없음, 아직 deadlock이 아닌 상태, 왜냐하면 P2R1 사용하고 반납하면 되기 때문에 그런데 반납은 안하고 연이어 R2를 요청하는 게 문제

    - P2다 자원 R2 요청, 서로 다른 프로세스가 가진 자원 요청하는 상태, Deadlock

 

 

 

Deadlock 발생 필요 조건

    - 자원의 특성

        * Exclusive use of resources

        * Non-preemptible resources

    - 프로세스의 특성

        * Hold and wait

        * Circular wait

 

 

 

자원의 분류

    - 선점 가능 여부에 따른 분류

    - 할당 단위에 따른 분류

    - 동시 사용 가능 여부에 따른 분류

    - 재사용 여부에 따른 분류

 

1) 선점 가능 여부에 따른 분류

    - Preemptible resources : 선점 당한 후, 돌아와도 문제가 발생하지 않는 자원

        * processor : context switching의 saving과 restoring 덕분에

        * memory : swap-device 덕분에

 

    - Noe-preemptible resources : 선점 당한 후, 돌아오면 문제가 발생하는 자원

        * disk drive : 데이터 저장 중에 멈추면 전체가 날아감. 따라서 rollback 같은 특별 동작 필요

 

 

2) 할당 단위에 따른 분류

    - Total allocation resources : 자원 전체를 프로세스에게 할당하는 자원

        * processor, disk drive

   

    - Partitioned allocation resources : 하나의 자원을 여러 조각으로 나누어 여러 프로세스들에게 할당

        *  memory

 

 

3) 동시 사용 가능 여부에 따른 분류

    - Exclusive allocation resources : 한 순간에 한 프로세스만 사용 가능한 자원

        * processor, memory, disk drive

 

    - Shared allocation resources : 여러 프로세스가 동시에 사용 가능한 자원

        * program(source code, exe file), shared data

 

 

4) 재사용 가능 여부에 따른 분류

    - SR(Serially-reusable resources) : 시스템 내에 항상 존재하는 자원

        * processor, memory, disk

 

    - CR(consumable resources) : 한 프로세스가 사용한 후에 사라지는 자원

        * signal, message

 

 

Deadlock을 발생시킬 수 있는 자원의 형태

    - Non-preepmtible resources

    - Exclusive allocation resources

    - Serially resuable resources

    - consumable resources(너무 복잡해서 다루지 않음)

 

 

 

 

반응형

'Software Courses > Operating System' 카테고리의 다른 글

[Memory] Memory Basic  (0) 2020.12.07
[Deadlock] Deadlock Solutions  (0) 2020.12.06
Process Synchronization and Mutual Exclusion  (0) 2020.12.02
Process Scheduling  (0) 2020.12.01
Thread 관리  (0) 2020.11.30