Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DeadLock이란 무엇이고 언제 발생할까요? #5

Open
Hansangjin98 opened this issue Jul 26, 2022 · 0 comments
Open

DeadLock이란 무엇이고 언제 발생할까요? #5

Hansangjin98 opened this issue Jul 26, 2022 · 0 comments

Comments

@Hansangjin98
Copy link
Member

데드락이란

데드락은 두 개 이상의 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며, 서로의 작업을 끝나기만을 기다리며 둘 다 영원히 끝나지 않는 상태를 뜻합니다.

데드락의 발생조건

  1. 상호 배제(Mutual Exclusion) : 자원은 한 번에 한 프로세스만 사용 가능하다 는 조건입니다.
  2. 점유 대기(Hold And Wait) : 최소한 하나의 자원을 점유(Lock)하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 존재해야 합니다.
  3. 비선점(No preemption) : 다른 프로세스에 할당된 자원은 해당 프로세스가 사용이 끝날 때까지 강제로 빼앗을 수 없습니다.
  4. 순환 대기(Circular Wait) : 프로세스의 집합에서 순환 형태(사이클)로 자원을 대기(Wait) 하고 있어야 합니다.

상호 배제, 점유 대기, 비선점, 순환 대기 4가지 조건을 모두 성립해야 데드락이 발생할 수 있습니다.


추가적인 의견이나 잘못된 정보 말씀해주세요 ~!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant