<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Deadlock on Kelly Dev</title><link>https://kelly-chui.github.io/tags/deadlock/</link><description>Recent content in Deadlock on Kelly Dev</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 12 Jan 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://kelly-chui.github.io/tags/deadlock/index.xml" rel="self" type="application/rss+xml"/><item><title>OS. Deadlock</title><link>https://kelly-chui.github.io/posts/cs-os-deadlock/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0000</pubDate><guid>https://kelly-chui.github.io/posts/cs-os-deadlock/</guid><description>&lt;h2 id="데드락"&gt;데드락&lt;/h2&gt;
&lt;img loading="lazy" src="https://kelly-chui.github.io/posts/cs-os-deadlock/image-001.svg"&gt;&lt;p&gt;두 개 이상의 프로세스나 스레드가 서로 상대방이 점유하고 있는 자원을 기다리며, 서로 무한히 기다리는 상태에 빠지는 현상&lt;/p&gt;
&lt;h2 id="데드락의-발생-조건"&gt;데드락의 발생 조건&lt;/h2&gt;
&lt;p&gt;다음 네 가지 Coffman 조건이 동시에 성립할 때 데드락이 발생할 수 있다. 각 조건은 데드락의 필요 조건이지만, 네 조건이 성립한다고 해서 모든 실행에서 반드시 데드락이 발생하는 것은 아니다.&lt;/p&gt;
&lt;h3 id="상호-배제mutual-exclusion"&gt;상호 배제(Mutual Exclusion)&lt;/h3&gt;
&lt;p&gt;한 번에 하나의 작업만 사용할 수 있는 자원이 존재하는 상태다.&lt;/p&gt;
&lt;h3 id="점유-대기hold-and-wait"&gt;점유 대기(Hold and Wait)&lt;/h3&gt;
&lt;p&gt;작업이 하나 이상의 자원을 이미 보유한 상태에서 다른 작업이 가진 추가 자원을 기다리는 상태다.&lt;/p&gt;</description></item></channel></rss>