<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>CodeBottlehun's Web-Note.</title>
    <link>https://idogs.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sun, 5 Jul 2026 01:16:53 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>i독</managingEditor>
    <image>
      <title>CodeBottlehun's Web-Note.</title>
      <url>https://tistory1.daumcdn.net/tistory/1859529/attach/ab1c03701e7c49a89c9ccd28998d60e8</url>
      <link>https://idogs.tistory.com</link>
    </image>
    <item>
      <title>MySQL 설치</title>
      <link>https://idogs.tistory.com/97</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[ 1 ] 다운로드&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;963&quot; data-origin-height=&quot;559&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m2oGS/btrlYNr1AzX/zSvaAqC2OKiskxzeRfkIUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m2oGS/btrlYNr1AzX/zSvaAqC2OKiskxzeRfkIUk/img.png&quot; data-alt=&quot;페이지 하단에 위치해 있습니다 .&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m2oGS/btrlYNr1AzX/zSvaAqC2OKiskxzeRfkIUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm2oGS%2FbtrlYNr1AzX%2FzSvaAqC2OKiskxzeRfkIUk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;649&quot; height=&quot;376&quot; data-origin-width=&quot;963&quot; data-origin-height=&quot;559&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;페이지 하단에 위치해 있습니다 .&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.mysql.com/downloads/&quot;&gt;https://www.mysql.com/downloads/&lt;/a&gt; 접속 후 MySQL Community Downloads 클릭.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;964&quot; data-origin-height=&quot;826&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dfatFA/btrlSwyOfod/ynQlQ32fOksRRBKWN4iA10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dfatFA/btrlSwyOfod/ynQlQ32fOksRRBKWN4iA10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dfatFA/btrlSwyOfod/ynQlQ32fOksRRBKWN4iA10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfatFA%2FbtrlSwyOfod%2FynQlQ32fOksRRBKWN4iA10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;577&quot; height=&quot;494&quot; data-origin-width=&quot;964&quot; data-origin-height=&quot;826&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows&amp;nbsp;사용자는&amp;nbsp;installer를&amp;nbsp;제공해주니&amp;nbsp;해당&amp;nbsp;파일로&amp;nbsp;다운로드&amp;nbsp;받습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ 2 ] Setup option.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;593&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baWQRx/btrlZt0Uikc/1uC4dW9TnBLKqf37WLhpe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baWQRx/btrlZt0Uikc/1uC4dW9TnBLKqf37WLhpe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baWQRx/btrlZt0Uikc/1uC4dW9TnBLKqf37WLhpe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaWQRx%2FbtrlZt0Uikc%2F1uC4dW9TnBLKqf37WLhpe1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;549&quot; height=&quot;414&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;593&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;보통은&lt;/span&gt;&lt;span&gt; Default&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설치합니다만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;저&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우에는&lt;/span&gt;&lt;span&gt; SQL &lt;/span&gt;&lt;span&gt;연습용으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설치하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이라&lt;/span&gt;&lt;span&gt; Custom&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;선택하여&lt;/span&gt;&lt;span&gt; Server &lt;/span&gt;&lt;span&gt;만을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설치합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;추가로&lt;/span&gt;&lt;span&gt; Workbench &lt;/span&gt;&lt;span&gt;또한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;좋은&lt;/span&gt;&lt;span&gt; IDE &lt;/span&gt;&lt;span&gt;이나&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;저는&lt;/span&gt;&lt;span&gt; 이전부터 사용해왔던&lt;/span&gt;&lt;span&gt;&amp;nbsp;Heidi SQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;중요&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;항목&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL Server - DB&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;줄&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;핵심&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램입니다&lt;/span&gt;&lt;span&gt;. Data, Schema, &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt;&lt;span&gt; Auth &lt;/span&gt;&lt;span&gt;등을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관리합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL Shell - &lt;/span&gt;&lt;span&gt;이름&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그대로&lt;/span&gt;&lt;span&gt; Kernel&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결해주는&lt;/span&gt;&lt;span&gt; Interface&lt;/span&gt;&lt;span&gt;입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;별도의&lt;/span&gt;&lt;span&gt; DB Tool&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예정이라면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;역시&lt;/span&gt;&lt;span&gt; Skip&lt;/span&gt;&lt;span&gt;하셔도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무방합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다만&lt;/span&gt;&lt;span&gt; MySQL&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용자에게&lt;/span&gt;&lt;span&gt; MySQL Shell&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;매우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;부분을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;차지하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있으니&lt;/span&gt;&lt;span&gt;, 전문적인 DB 사용자를 희망한다면 익혀두는 것을 추천드립니다. &lt;/span&gt;&lt;span&gt;저는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전문적인&lt;/span&gt;&lt;span&gt; DB &lt;/span&gt;&lt;span&gt;사용자가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아니므로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;넘기겠습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dev.mysql.com/doc/mysql-shell/8.0/en/&quot;&gt;https://dev.mysql.com/doc/mysql-shell/8.0/en/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ 3 ] setting&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;982&quot; data-origin-height=&quot;741&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yc91k/btrlTWQ3ESY/TgZt2pzgyfzViNgZaUNVIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yc91k/btrlTWQ3ESY/TgZt2pzgyfzViNgZaUNVIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yc91k/btrlTWQ3ESY/TgZt2pzgyfzViNgZaUNVIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fyc91k%2FbtrlTWQ3ESY%2FTgZt2pzgyfzViNgZaUNVIK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;555&quot; height=&quot;419&quot; data-origin-width=&quot;982&quot; data-origin-height=&quot;741&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Development Type&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정한다면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;외부의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접속은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허락되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않게끔&lt;/span&gt;&lt;span&gt; Configuration &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;저는&lt;/span&gt;&lt;span&gt; SQL &lt;/span&gt;&lt;span&gt;연습으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;목적이니&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; Type &lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그대로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하겠습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래의&lt;/span&gt;&lt;span&gt; TCP/IP Port &lt;/span&gt;&lt;span&gt;넘버는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MySQL Server&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지속적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;번호를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지정합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;외부에서&lt;/span&gt;&lt;span&gt; MySQL Server Program&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접속하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;번호이며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;보통&lt;/span&gt;&lt;span&gt; 3306&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; DB&lt;/span&gt;&lt;span&gt;용&lt;/span&gt;&lt;span&gt; Port &lt;/span&gt;&lt;span&gt;번호로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;널리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저의&lt;/span&gt;&lt;span&gt; PC&lt;/span&gt;&lt;span&gt;에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이미&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램이&lt;/span&gt;&lt;span&gt; 3306&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있으므로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;별개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하겠습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;X Protocol&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;짧게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설명드리기에 배움이 부족하여&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;아래의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;남기며&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통상적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; Port Number&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;곱하기&lt;/span&gt;&lt;span&gt; 10&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가집니다&lt;/span&gt;&lt;span&gt;. DB를 처음 사용하신다면 아래의 내용은 중요하지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.percona.com/blog/2019/01/07/understanding-mysql-x-all-flavors/&quot;&gt;https://www.percona.com/blog/2019/01/07/understanding-mysql-x-all-flavors/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;i&gt;[&amp;nbsp; ] 간단한 Port 설명&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;i&gt;Port는 프로그램에서 데이터를 받을 수 있는 통로라 볼 수 있고, 프로그램은 하나의 Port를 가지고 다른 네트워크와 연결될 수 있습니다.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;i&gt;우리가 사용하는 Web browser로 Google에 접속 할 때, 웹 브라우저는 운영체제가 할당하는 임의의 Port를 지닌 채 약속된 Port 번호로 Google에게 페이지의 정보를 달라 요청합니다. 대표적인 웹 통신 Port 번호는 Http : 80, Https : 443 이 있습니다.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;i&gt;ex) Client Application - Web Browser[ex. Chrome] (44343-Flexible to change)&amp;nbsp; &amp;lt;-----&amp;gt;&amp;nbsp; Server Application - Http Service program[ex. Apache] (80-Fixed)&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;i&gt;이러한 TCP 연결 구조로 데이터를 받아와 Web Page를 화면에 출력합니다.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[ 5 ] &lt;/span&gt;&lt;span&gt;암호화&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;982&quot; data-origin-height=&quot;741&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EQt0u/btrlUOrL2iH/ybUE6Dj31SDPAwGlSy9dM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EQt0u/btrlUOrL2iH/ybUE6Dj31SDPAwGlSy9dM1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EQt0u/btrlUOrL2iH/ybUE6Dj31SDPAwGlSy9dM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEQt0u%2FbtrlUOrL2iH%2FybUE6Dj31SDPAwGlSy9dM1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;576&quot; height=&quot;434&quot; data-origin-width=&quot;982&quot; data-origin-height=&quot;741&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;내용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그대로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;암호화에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;따른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접속문제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하위&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버전의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구분해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;놓은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;듯&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;추천&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;항목을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;선택하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;넘어가겠습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[ 6 ] &lt;/span&gt;&lt;span&gt;계정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;982&quot; data-origin-height=&quot;741&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lE2oW/btrlZt7Gicy/VOPaZxN7KbjR0P5BpPoBx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lE2oW/btrlZt7Gicy/VOPaZxN7KbjR0P5BpPoBx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lE2oW/btrlZt7Gicy/VOPaZxN7KbjR0P5BpPoBx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlE2oW%2FbtrlZt7Gicy%2FVOPaZxN7KbjR0P5BpPoBx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;581&quot; height=&quot;439&quot; data-origin-width=&quot;982&quot; data-origin-height=&quot;741&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부의 접속이 허용되지 않는 Database라면 암호를 간단히 해도 무방합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;593&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jmgv5/btrlYNFAHro/SKaCZw1BAxCLEkVZnr4Ty1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jmgv5/btrlYNFAHro/SKaCZw1BAxCLEkVZnr4Ty1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jmgv5/btrlYNFAHro/SKaCZw1BAxCLEkVZnr4Ty1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJmgv5%2FbtrlYNFAHro%2FSKaCZw1BAxCLEkVZnr4Ty1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;589&quot; height=&quot;444&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;593&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows Service 상에 어떤 이름으로 프로그램을 나타낼지 물어보는 항목입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MySQL Sever Program은 Windows Service상에 올라가 백그라운드 모드에서 계속 실행됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실상 개발용으로 잠깐잠깐 사용하실거라면, 계속 켜놓을 필요는 없으니 아래의 Start the MySQL Server at System startup을 꺼주시는걸 추천드립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[&amp;nbsp; ] 실행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 Service가 실행 중임을 확인합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업관리자에서 Service tab에 들어가 셋팅된 이름(Default : MySQL80)을 찾습니다. 만약 서비스가 중지되어 있다면 오른쪽 버튼을 클릭해 시작하면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;689&quot; data-origin-height=&quot;243&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bt79H9/btrlSZ1wz0A/UjnTkAeNKxWvBzYIx3a3mK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bt79H9/btrlSZ1wz0A/UjnTkAeNKxWvBzYIx3a3mK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bt79H9/btrlSZ1wz0A/UjnTkAeNKxWvBzYIx3a3mK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbt79H9%2FbtrlSZ1wz0A%2FUjnTkAeNKxWvBzYIx3a3mK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;689&quot; height=&quot;243&quot; data-origin-width=&quot;689&quot; data-origin-height=&quot;243&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 후 DB접속 프로그램을 이용하여 접속하면 됩니다. 만약 서비스는 동작중이나 Server로 부터 접근이 되지 않는다면,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mysql를 검색하여 Command Line이란 프로그램을 실행시킵니다. 그 후 로그인후 창을 닫아주시면 정상적으로 동작하는 모습을 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;635&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PSJGH/btrlTh8DJYU/kKkdhV6KXOHD0HxrLoA6Ak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PSJGH/btrlTh8DJYU/kKkdhV6KXOHD0HxrLoA6Ak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PSJGH/btrlTh8DJYU/kKkdhV6KXOHD0HxrLoA6Ak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPSJGH%2FbtrlTh8DJYU%2FkKkdhV6KXOHD0HxrLoA6Ak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;473&quot; height=&quot;350&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;635&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;724&quot; data-origin-height=&quot;339&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfF7OB/btrlXDwvX2n/nBf1Xcu1rNE7kek8tOHFZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfF7OB/btrlXDwvX2n/nBf1Xcu1rNE7kek8tOHFZ0/img.png&quot; data-alt=&quot;이 화면이 뜨면 닫아주시면 됩니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfF7OB/btrlXDwvX2n/nBf1Xcu1rNE7kek8tOHFZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfF7OB%2FbtrlXDwvX2n%2FnBf1Xcu1rNE7kek8tOHFZ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;542&quot; height=&quot;254&quot; data-origin-width=&quot;724&quot; data-origin-height=&quot;339&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이 화면이 뜨면 닫아주시면 됩니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MySQL Server at System startup 옵션을 꺼놓았다면 재부팅하고 난 뒤에 Server 프로그램이 동작하지 않습니다.&lt;br /&gt;사용이 필요할 때 마다 Client 프로그램으로 실행시켜주시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[&amp;nbsp; ] DB 접속&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Command Line Client를 사용하셔도 무방하나 CLI보다는 GUI를 더 선호하신다면 HeidiSQL을 설치하여 접속이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.heidisql.com/download.php&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.heidisql.com/download.php&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;757&quot; data-origin-height=&quot;277&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZW1SK/btrlS2jZCKY/1ppo391KI6mfe5LGAjudJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZW1SK/btrlS2jZCKY/1ppo391KI6mfe5LGAjudJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZW1SK/btrlS2jZCKY/1ppo391KI6mfe5LGAjudJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZW1SK%2FbtrlS2jZCKY%2F1ppo391KI6mfe5LGAjudJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;757&quot; height=&quot;277&quot; data-origin-width=&quot;757&quot; data-origin-height=&quot;277&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;별도의 Setting 옵션은 없습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;392&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3sSTM/btrlTVxPkKv/xBJlgRLO4g5UdjQRDtVKMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3sSTM/btrlTVxPkKv/xBJlgRLO4g5UdjQRDtVKMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3sSTM/btrlTVxPkKv/xBJlgRLO4g5UdjQRDtVKMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3sSTM%2FbtrlTVxPkKv%2FxBJlgRLO4g5UdjQRDtVKMk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;498&quot; height=&quot;392&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;392&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그램을 실행 후 자신의 Database 정보를 입력하여 접속하실 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;686&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQfiP5/btrlV0yEjXf/7h6KC3EgmHF5gTTrMjgsmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQfiP5/btrlV0yEjXf/7h6KC3EgmHF5gTTrMjgsmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQfiP5/btrlV0yEjXf/7h6KC3EgmHF5gTTrMjgsmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQfiP5%2FbtrlV0yEjXf%2F7h6KC3EgmHF5gTTrMjgsmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;686&quot; height=&quot;483&quot; data-origin-width=&quot;686&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;686&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZoIms/btrlTkEDhM7/LeYJuIfJSfSzQgP2KJVbcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZoIms/btrlTkEDhM7/LeYJuIfJSfSzQgP2KJVbcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZoIms/btrlTkEDhM7/LeYJuIfJSfSzQgP2KJVbcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZoIms%2FbtrlTkEDhM7%2FLeYJuIfJSfSzQgP2KJVbcK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;686&quot; height=&quot;483&quot; data-origin-width=&quot;686&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;593&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kSmNN/btrlXCK3HYz/vKkAS9dwR0A0hKoKu0ETV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kSmNN/btrlXCK3HYz/vKkAS9dwR0A0hKoKu0ETV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kSmNN/btrlXCK3HYz/vKkAS9dwR0A0hKoKu0ETV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkSmNN%2FbtrlXCK3HYz%2FvKkAS9dwR0A0hKoKu0ETV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;692&quot; height=&quot;439&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;593&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Computing/Database</category>
      <author>i독</author>
      <guid isPermaLink="true">https://idogs.tistory.com/97</guid>
      <comments>https://idogs.tistory.com/97#entry97comment</comments>
      <pubDate>Tue, 23 Nov 2021 15:38:12 +0900</pubDate>
    </item>
    <item>
      <title>Complement (보수)</title>
      <link>https://idogs.tistory.com/96</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&amp;nbsp; ] Concept.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Computer는 2진수로 수를 다루며, 보수라는 개념을 이용하여 덧셈으로 뺄셈을 처리할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&amp;nbsp; ] 1's Complement&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마이너스 부호가 있다면 전체 값을 1로 XOR 하여 더한다. Carry가 발생하면 최하위 비트에 더한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;1's complement 가산법. &amp;gt;&amp;gt; &lt;b&gt;&lt;i&gt;15 - 9 = 6&lt;/i&gt;&lt;/b&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 음수 값을 1의 보수화 시킨 후 연산 값과 더한다. 받아올림이 발생한다면 Carry Flag로 표시한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;- 1111 + 0110(6의 1의 보수 값) = 1000, Carry 1&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 만약 Carry 값이 존재한다면 계산된 값에 1를 더한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;- 1000 + 1(Carry) = 1001&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 위의 값을 다시 1의 보수로 취한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;- 1001 XOR 1111 = 0110&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;= 1111(15) - 1001(9) = 0110(6)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&amp;nbsp; ] 2's Complement&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1의 부호화 후 +1를 더한다. 1의 보수와 달리 Carry가 하지 않을 때만 다시 보수를 취한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;2's complement 가산법.&amp;nbsp; &amp;gt;&amp;gt; &lt;i&gt;&lt;b&gt;15 - 9 = 6&lt;/b&gt;&lt;/i&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 음수 값을 2의 보수화 시킨 후 연산 값과 더한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;- 1111 + 0111(6의 2의 보수 값) = 0110, Carry 1&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) Carry가 발생하였음으로 연산은 끝난다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;=&amp;nbsp;1111(15) - 1001(9) = 0110(6)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;2's cpmlement 가산법. &amp;gt;&amp;gt; 9 - 15 = -6&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 음수 값을 2의 보수화 시킨 후 연산 값과 더한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;-1001 + 0001(15의 2의 보수 값) = 1010, Carry 0&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) Carry가 발생하지 않았기에 2의 부호화를 취한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;- negative flag 1, 0101 + 1 = negative flag 1, 0110 = -0110(6)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2의 보수화를 진행하다 보면, &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;u&gt;Carry가 발생하지 않을 경우는 음수 값&lt;/u&gt;&lt;/span&gt;임을 알 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;값을 역전시켜 더하는데, 자리올림이 발생하지 않는다면 역전된 값이 피연산자보다 크다는 것을 의미하게 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먄약 2의 보수를 Code로 표현할 시, 이러한 점을 인지하고 있어야 Negative Flag의 조건을 알 수 있다.&lt;/p&gt;</description>
      <category>Computing/Computer Science</category>
      <author>i독</author>
      <guid isPermaLink="true">https://idogs.tistory.com/96</guid>
      <comments>https://idogs.tistory.com/96#entry96comment</comments>
      <pubDate>Tue, 23 Nov 2021 14:46:28 +0900</pubDate>
    </item>
    <item>
      <title>18. I/O Systems</title>
      <link>https://idogs.tistory.com/95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 해당 게시물은&amp;nbsp;&lt;span style=&quot;color: #000a12;&quot;&gt;경북대학교 컴퓨터학부 강의초빙교수, 배준현 교수님의 강의를 보고 작성되었음을 미리 알려드립니다. ( 개인적인 공부를 정리한 글입니다. )&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Youtube Channel.&amp;nbsp; &lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910880277&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;주니온TV 아무거나연구소&quot; data-og-description=&quot;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&quot; data-og-host=&quot;www.youtube.com&quot; data-og-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900&quot;&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온TV 아무거나연구소&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.youtube.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Inflearn page.&amp;nbsp; &lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;https://www.inflearn.com/users/@joonion&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910881225&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&quot; data-og-description=&quot;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&quot; data-og-host=&quot;www.inflearn.com&quot; data-og-source-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500&quot;&gt;&lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.inflearn.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;사람이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컴퓨터를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우에서&lt;/span&gt;&lt;span&gt; I/O &lt;/span&gt;&lt;span&gt;작업이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주작업이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;561&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHb558/btrkYfCOTIS/H4DSGYT8PgP56kSoHkvSj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHb558/btrkYfCOTIS/H4DSGYT8PgP56kSoHkvSj1/img.png&quot; data-alt=&quot;Figure 12.1 A typical PC bus arch i tecture.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHb558/btrkYfCOTIS/H4DSGYT8PgP56kSoHkvSj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHb558%2FbtrkYfCOTIS%2FH4DSGYT8PgP56kSoHkvSj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;474&quot; height=&quot;281&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;561&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 12.1 A typical PC bus arch i tecture.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] &lt;/span&gt;&lt;span&gt;M&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;mory-Mapped I/O&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;The controller has one or more registers for data and control signals.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;data-in register: is read by the host to get input.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;data-out register: is written by the host to send output.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;status register: contains bits that can be read by the host.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;control register: can be written by the host to start a command or to&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;change the mode of a device.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhsa4m/btrkOlD7EYd/is2KEHki6mbMowFs7YomJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhsa4m/btrkOlD7EYd/is2KEHki6mbMowFs7YomJK/img.png&quot; data-alt=&quot;Figure 12.2 Device I/O port locations on PCs (partial).&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhsa4m/btrkOlD7EYd/is2KEHki6mbMowFs7YomJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdhsa4m%2FbtrkOlD7EYd%2Fis2KEHki6mbMowFs7YomJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;395&quot; height=&quot;230&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;381&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 12.2 Device I/O port locations on PCs (partial).&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;★&lt;/span&gt;&lt;span&gt;] Three types of I/O&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; polling: or bu&lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt;y-waiting:&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;reading the st&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;tus register repeatedly until the busy bit becomes clear.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;레지스터리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정보에서&lt;/span&gt;&lt;span&gt; Data in&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;까지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계속해서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기다리는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방식&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; interr&lt;/span&gt;&lt;span&gt;u&lt;/span&gt;&lt;span&gt;pt:&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;CPU h&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;s a wire called the interrupt-request line.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;If CPU d&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;tects an interrupt,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;it jumps to an ISR(i&lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;terrupt service routine) to handle an interrupt.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;The addresses of ISRs is specified in the interr&lt;/span&gt;&lt;span&gt;u&lt;/span&gt;&lt;span&gt;pt vector table.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;CPU&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; interrupt&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확인하여&lt;/span&gt;&lt;span&gt;, Interrupt service routine&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용해서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; DMA: Direct Memo&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;y Access:&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;used to avoid prog&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;ammed I/O (one byte at a time).&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;useful for handling l&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;rge data transfer.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아주&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;큰&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;직접적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접근한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;674&quot; data-origin-height=&quot;647&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dZkchp/btrkIMPOW7h/KfaR9kYiLBbciggCEZOQgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dZkchp/btrkIMPOW7h/KfaR9kYiLBbciggCEZOQgK/img.png&quot; data-alt=&quot;Figure 12.3 Interrupt-driven I/O cycle.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dZkchp/btrkIMPOW7h/KfaR9kYiLBbciggCEZOQgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdZkchp%2FbtrkIMPOW7h%2FKfaR9kYiLBbciggCEZOQgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;475&quot; height=&quot;455&quot; data-origin-width=&quot;674&quot; data-origin-height=&quot;647&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 12.3 Interrupt-driven I/O cycle.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;869&quot; data-origin-height=&quot;699&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cL0EsJ/btrkHCUqfzn/9QlFjaYHh8RoIekSGuiCM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cL0EsJ/btrkHCUqfzn/9QlFjaYHh8RoIekSGuiCM0/img.png&quot; data-alt=&quot;Figure 12.6 Steps in a DMA transfer.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cL0EsJ/btrkHCUqfzn/9QlFjaYHh8RoIekSGuiCM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcL0EsJ%2FbtrkHCUqfzn%2F9QlFjaYHh8RoIekSGuiCM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;575&quot; height=&quot;463&quot; data-origin-width=&quot;869&quot; data-origin-height=&quot;699&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 12.6 Steps in a DMA transfer.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] &lt;/span&gt;&lt;span&gt;B&lt;/span&gt;&lt;span&gt;l&lt;/span&gt;&lt;span&gt;ocking I/O .vs. Non-blo&lt;/span&gt;&lt;span&gt;c&lt;/span&gt;&lt;span&gt;king I/O&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Blocking I/O: a thread is su&lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt;pended.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;moved from running qu&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;ue to waiting queue.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;thread&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유예되고&lt;/span&gt;&lt;span&gt; waiting&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;간다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Non-blocking I/O: does n&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;t halt the execution of the thread.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;e.g., receiving keyboard or m&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;use input in word processor.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;returns as much as availab&lt;/span&gt;&lt;span&gt;l&lt;/span&gt;&lt;span&gt;e.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;바로&lt;/span&gt;&lt;span&gt; return&lt;/span&gt;&lt;span&gt;해서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Asynchronous system call: t&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;e thread continues to execute its code.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실행을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계속해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나&lt;/span&gt;&lt;span&gt;가다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인터럽트가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;걸리면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리한&lt;/span&gt;&lt;span&gt;다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1044&quot; data-origin-height=&quot;534&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EhaZS/btrkYfv2uNL/9H718AW5yrwAGEqjEQpmsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EhaZS/btrkYfv2uNL/9H718AW5yrwAGEqjEQpmsK/img.png&quot; data-alt=&quot;Figure 12.9 Two I/O m e thods: (a) synchronous (b) asynchronous.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EhaZS/btrkYfv2uNL/9H718AW5yrwAGEqjEQpmsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEhaZS%2FbtrkYfv2uNL%2F9H718AW5yrwAGEqjEQpmsK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;635&quot; height=&quot;325&quot; data-origin-width=&quot;1044&quot; data-origin-height=&quot;534&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 12.9 Two I/O m e thods: (a) synchronous (b) asynchronous.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] &lt;/span&gt;&lt;span&gt;F&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;le System&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; co&lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;sists of two distinct parts&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;a c&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;llection of files, each storing related data&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;a d&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;rectory structure, which organizes all the files in the system.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;Access Met&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;ods&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;sequential a&lt;/span&gt;&lt;span&gt;c&lt;/span&gt;&lt;span&gt;cess: Information in the file is processed in order,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;one rec&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;rd after the other.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; direct acce&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt;(Random Access File)&lt;/span&gt;&lt;span&gt;: re&lt;/span&gt;&lt;span&gt;l&lt;/span&gt;&lt;span&gt;ative access: A file is made up of fixed-length logical records that allow programs to read and write records rapidly in no particular order.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;The file s&lt;/span&gt;&lt;span&gt;y&lt;/span&gt;&lt;span&gt;stem itself&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;is generally compo&lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt;ed of many different levels.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;582&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3wGL5/btrkQlDRlS7/8fGfZsHszl9GjE82CZoinK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3wGL5/btrkQlDRlS7/8fGfZsHszl9GjE82CZoinK/img.png&quot; data-alt=&quot;Figure 14.1 L a yered file system.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3wGL5/btrkQlDRlS7/8fGfZsHszl9GjE82CZoinK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3wGL5%2FbtrkQlDRlS7%2F8fGfZsHszl9GjE82CZoinK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;246&quot; height=&quot;401&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;582&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 14.1 L a yered file system.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Allocation Method.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;파일을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;효율적이고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;빠르게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;- Contiguous Allocation &amp;gt; &lt;/span&gt;&lt;span&gt;연속적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;586&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bX9Mk2/btrkLj0qexR/xXd5CZnf6TplVzGaX9aWuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bX9Mk2/btrkLj0qexR/xXd5CZnf6TplVzGaX9aWuK/img.png&quot; data-alt=&quot;Figure 14.4 Contiguous allo c ation of disk space.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bX9Mk2/btrkLj0qexR/xXd5CZnf6TplVzGaX9aWuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbX9Mk2%2FbtrkLj0qexR%2FxXd5CZnf6TplVzGaX9aWuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;369&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;586&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 14.4 Contiguous allo c ation of disk space.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법은&lt;/span&gt;&lt;span&gt; Paging&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;마찬가지로&lt;/span&gt;&lt;span&gt; external fragment&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- Linked Allocation.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;647&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/de8Yp2/btrkJkrX6lg/oGYv5bZyQasiaOwPWaFbX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/de8Yp2/btrkJkrX6lg/oGYv5bZyQasiaOwPWaFbX0/img.png&quot; data-alt=&quot;Figure 14.5 Li n ked allocation of disk space.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/de8Yp2/btrkJkrX6lg/oGYv5bZyQasiaOwPWaFbX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fde8Yp2%2FbtrkJkrX6lg%2FoGYv5bZyQasiaOwPWaFbX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;391&quot; height=&quot;406&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;647&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 14.5 Li n ked allocation of disk space.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;단점은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;영상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시청을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;동영상을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뛰어넘어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;본다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계속해서&lt;/span&gt;&lt;span&gt; Linked list&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나씩&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;탐색하면서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지나가야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- FAT&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법은&lt;/span&gt;&lt;span&gt; Linked list&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰는데&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조금&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;효율적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;고안된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기술이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Linked list&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; index&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;넣어서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;615&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQ907b/btrkSN09Oba/uYJKIhGKQ3ovEQERiidVpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQ907b/btrkSN09Oba/uYJKIhGKQ3ovEQERiidVpk/img.png&quot; data-alt=&quot;Figure 14.6 File Alloc a tion Table.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQ907b/btrkSN09Oba/uYJKIhGKQ3ovEQERiidVpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQ907b%2FbtrkSN09Oba%2FuYJKIhGKQ3ovEQERiidVpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;393&quot; height=&quot;324&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;615&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 14.6 File Alloc a tion Table.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- Indexed Allocation&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;FTA&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;일반적으로&lt;/span&gt;&lt;span&gt; Linked list&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당되었다는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가정에&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Bad sector &lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다음&lt;/span&gt;&lt;span&gt; List &lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;찾아&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;갈&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;블락에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인덱스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;729&quot; data-origin-height=&quot;628&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RAEYl/btrkYfiv6hP/TujSEVms8VdBRAc1lIyovK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RAEYl/btrkYfiv6hP/TujSEVms8VdBRAc1lIyovK/img.png&quot; data-alt=&quot;Figure 14.7 Indexed allocation of disk space. &quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RAEYl/btrkYfiv6hP/TujSEVms8VdBRAc1lIyovK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRAEYl%2FbtrkYfiv6hP%2FTujSEVms8VdBRAc1lIyovK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;473&quot; height=&quot;407&quot; data-origin-width=&quot;729&quot; data-origin-height=&quot;628&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 14.7 Indexed allocation of disk space. &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Computing/Operating System</category>
      <author>i독</author>
      <guid isPermaLink="true">https://idogs.tistory.com/95</guid>
      <comments>https://idogs.tistory.com/95#entry95comment</comments>
      <pubDate>Mon, 15 Nov 2021 02:30:37 +0900</pubDate>
    </item>
    <item>
      <title>17 &amp;gt; Storage Management</title>
      <link>https://idogs.tistory.com/94</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;* 해당 게시물은&amp;nbsp;&lt;span style=&quot;color: #000a12;&quot;&gt;경북대학교 컴퓨터학부 강의초빙교수, 배준현 교수님의 강의를 보고 작성되었음을 미리 알려드립니다. ( 개인적인 공부를 정리한 글입니다. )&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Youtube Channel.&amp;nbsp; &lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910767968&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;주니온TV 아무거나연구소&quot; data-og-description=&quot;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&quot; data-og-host=&quot;www.youtube.com&quot; data-og-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900&quot;&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온TV 아무거나연구소&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.youtube.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Inflearn page.&amp;nbsp; &lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;https://www.inflearn.com/users/@joonion&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910768980&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&quot; data-og-description=&quot;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&quot; data-og-host=&quot;www.inflearn.com&quot; data-og-source-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500&quot;&gt;&lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.inflearn.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Mass-Storage&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;비휘발성&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;보통은&lt;/span&gt;&lt;span&gt; HDD, &lt;/span&gt;&lt;span&gt;유식하면&lt;/span&gt;&lt;span&gt; NVM(Non-Volatile Memory).&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] HDD Scheduling.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;하드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스케쥴링에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;목적은&lt;/span&gt;&lt;span&gt; access time(or seek time)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;줄이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;두번째는&lt;/span&gt;&lt;span&gt; data transfer bandwidth&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최대화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시킨다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- FIFO Scheduling.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;481&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ISXWM/btrkWPj5nCT/KYIJgIElYy6NpBsvOxQb7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ISXWM/btrkWPj5nCT/KYIJgIElYy6NpBsvOxQb7K/img.png&quot; data-alt=&quot;Figure 11.6 FCFS disk scheduling.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ISXWM/btrkWPj5nCT/KYIJgIElYy6NpBsvOxQb7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FISXWM%2FbtrkWPj5nCT%2FKYIJgIElYy6NpBsvOxQb7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;295&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;481&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 11.6 FCFS disk scheduling.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- SCAN Scheduling.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;if the direction of head movement is mo&lt;/span&gt;&lt;span&gt;v&lt;/span&gt;&lt;span&gt;ing towards 0.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;한쪽&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방향으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;물리적으로는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;효율적이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;704&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UDFAA/btrkZMm6vTe/JvRvIvqwO2ZYCUTqEOaM20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UDFAA/btrkZMm6vTe/JvRvIvqwO2ZYCUTqEOaM20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UDFAA/btrkZMm6vTe/JvRvIvqwO2ZYCUTqEOaM20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUDFAA%2FbtrkZMm6vTe%2FJvRvIvqwO2ZYCUTqEOaM20%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;421&quot; height=&quot;308&quot; data-origin-width=&quot;704&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- C-SCAN Schduling&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;head&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;원형&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;리스트처럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다룬다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;끝까지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;탐색했다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바로&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;번으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이동한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이미&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;읽은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것들이기에&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;761&quot; data-origin-height=&quot;516&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKOnTY/btrkS9iBHZM/7jADdk8fp9o3MNkGYmVos1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKOnTY/btrkS9iBHZM/7jADdk8fp9o3MNkGYmVos1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKOnTY/btrkS9iBHZM/7jADdk8fp9o3MNkGYmVos1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKOnTY%2FbtrkS9iBHZM%2F7jADdk8fp9o3MNkGYmVos1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;433&quot; height=&quot;294&quot; data-origin-width=&quot;761&quot; data-origin-height=&quot;516&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Boot Block&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; F&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;r a computer to start running, when it is powered up, it must have an initial program to run.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; A b&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;otstrap loader is stored in &lt;/span&gt;&lt;span style=&quot;color: #0070c0;&quot;&gt;NVM flash memory&lt;/span&gt;&lt;span&gt;, and mapped to a known memory location.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;572&quot; data-origin-height=&quot;398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/75VnW/btrkYgaDHPs/dkERYiYN4Eq4uA6pNcle9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/75VnW/btrkYgaDHPs/dkERYiYN4Eq4uA6pNcle9K/img.png&quot; data-alt=&quot;Figure 11.10 Bo o ting from a storage device in Windows.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/75VnW/btrkYgaDHPs/dkERYiYN4Eq4uA6pNcle9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F75VnW%2FbtrkYgaDHPs%2FdkERYiYN4Eq4uA6pNcle9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;325&quot; height=&quot;226&quot; data-origin-width=&quot;572&quot; data-origin-height=&quot;398&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 11.10 Bo o ting from a storage device in Windows.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] RAID ( Redundant Arrays of Independent Disks )&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;disk-organization &lt;/span&gt;&lt;span&gt;기술을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다양한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변형이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능한데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;첫번째로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;읽기를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;병렬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;두번째로는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장장소의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;신뢰성을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;향상시킨다&lt;/span&gt;&lt;span&gt;. - &lt;/span&gt;&lt;span&gt;독립적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;물리적&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;장치를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;중요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정보라면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중복이라도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;미러링이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] &lt;/span&gt;&lt;span&gt;RAID Lev&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;ls:&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; mirroring: highly rel&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;able, however, too expensive.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; striping: highly effic&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;ent, however, not related to reliability.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; How about parity b&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;t?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;set to 1: the number of bi&lt;/span&gt;&lt;span&gt;y&lt;/span&gt;&lt;span&gt;s in the byte is even.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;set to 0: the number of bi&lt;/span&gt;&lt;span&gt;y&lt;/span&gt;&lt;span&gt;s in the byte is odd.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;It enable us to detect an er&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;or if f one of the bits is damaged.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; RAID levels: classify these schem&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;s according to different cost-performance trade-offs&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1191&quot; data-origin-height=&quot;550&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JZolR/btrkIgwPMdS/xE3y7Wy0orojpSwGVAStFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JZolR/btrkIgwPMdS/xE3y7Wy0orojpSwGVAStFK/img.png&quot; data-alt=&quot;Figure 11.15 RAID levels. &quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JZolR/btrkIgwPMdS/xE3y7Wy0orojpSwGVAStFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJZolR%2FbtrkIgwPMdS%2FxE3y7Wy0orojpSwGVAStFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;658&quot; height=&quot;304&quot; data-origin-width=&quot;1191&quot; data-origin-height=&quot;550&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 11.15 RAID levels. &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;658&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dphQ59/btrk1QvYYdA/0efRKu7cT9KkJ05j58NGoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dphQ59/btrk1QvYYdA/0efRKu7cT9KkJ05j58NGoK/img.png&quot; data-alt=&quot;Figure 11.16 RAID 0 + 1 and 1 + 0 with a single disk failure.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dphQ59/btrk1QvYYdA/0efRKu7cT9KkJ05j58NGoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdphQ59%2Fbtrk1QvYYdA%2F0efRKu7cT9KkJ05j58NGoK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;360&quot; height=&quot;408&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;658&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 11.16 RAID 0 + 1 and 1 + 0 with a single disk failure.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Computing/Operating System</category>
      <author>i독</author>
      <guid isPermaLink="true">https://idogs.tistory.com/94</guid>
      <comments>https://idogs.tistory.com/94#entry94comment</comments>
      <pubDate>Mon, 15 Nov 2021 02:27:56 +0900</pubDate>
    </item>
    <item>
      <title>16 &amp;gt;  Page Replacement</title>
      <link>https://idogs.tistory.com/93</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;* 해당 게시물은&amp;nbsp;&lt;span style=&quot;color: #000a12;&quot;&gt;경북대학교 컴퓨터학부 강의초빙교수, 배준현 교수님의 강의를 보고 작성되었음을 미리 알려드립니다. ( 개인적인 공부를 정리한 글입니다. )&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Youtube Channel.&amp;nbsp; &lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910672302&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;주니온TV 아무거나연구소&quot; data-og-description=&quot;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&quot; data-og-host=&quot;www.youtube.com&quot; data-og-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900&quot;&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온TV 아무거나연구소&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.youtube.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Inflearn page.&amp;nbsp; &lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;https://www.inflearn.com/users/@joonion&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910673042&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&quot; data-og-description=&quot;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&quot; data-og-host=&quot;www.inflearn.com&quot; data-og-source-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500&quot;&gt;&lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.inflearn.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;만약&lt;/span&gt;&lt;span&gt; free frames&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다면&lt;/span&gt;&lt;span&gt;? page&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교체해주어야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;알고리즘에서&lt;/span&gt;&lt;span&gt; victim&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이를&lt;/span&gt;&lt;span&gt; page out &lt;/span&gt;&lt;span&gt;시키고&lt;/span&gt;&lt;span&gt; invalid &lt;/span&gt;&lt;span&gt;상태로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;올린다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그럼&lt;/span&gt;&lt;span&gt; invalid&lt;/span&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; page&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; backing store&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요구한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뒤&lt;/span&gt;&lt;span&gt; page&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;재&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;935&quot; data-origin-height=&quot;653&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpM80a/btrkWPEopqe/VK5QiXW4jFFtktY16ykmjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpM80a/btrkWPEopqe/VK5QiXW4jFFtktY16ykmjk/img.png&quot; data-alt=&quot;Figure 10.10 Page replacement.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpM80a/btrkWPEopqe/VK5QiXW4jFFtktY16ykmjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpM80a%2FbtrkWPEopqe%2FVK5QiXW4jFFtktY16ykmjk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;524&quot; height=&quot;366&quot; data-origin-width=&quot;935&quot; data-origin-height=&quot;653&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 10.10 Page replacement.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] &lt;/span&gt;&lt;span&gt;Two major problems to implem&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;nt demand paging:&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Fr&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;me-allocation algorithm:&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;h&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;w many frames to allocated to each process?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; P&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;ge-replacement algorithm:&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;s&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;lect the frames that are to be replaced.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Sin&lt;/span&gt;&lt;span&gt;c&lt;/span&gt;&lt;span&gt;e the secondary storage I/O is so expensive,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;ev&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;n slight improvements in demand-paging methods&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;c&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;n yield large gains in system performance.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;page fault&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비율을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;낮추어야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이것을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해서&lt;/span&gt;&lt;span&gt; frame &lt;/span&gt;&lt;span&gt;수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;높일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;FIFO Page Replac&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;ment:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Oldest page&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; victim&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그러나&lt;/span&gt;&lt;span&gt; Belady's Anmaly &lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확인할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결과&lt;/span&gt;&lt;span&gt;, Page frame&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;늘렸는데&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상하게&lt;/span&gt;&lt;span&gt; page fault&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;현상이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일어난다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1161&quot; data-origin-height=&quot;454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N2wLb/btrkZLaEwJD/O4n0OAO1Sch19AICQ4Qaj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N2wLb/btrkZLaEwJD/O4n0OAO1Sch19AICQ4Qaj0/img.png&quot; data-alt=&quot;Figure 10.13 Page-fault curve of FIFO repl c ement on a reference string.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N2wLb/btrkZLaEwJD/O4n0OAO1Sch19AICQ4Qaj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN2wLb%2FbtrkZLaEwJD%2FO4n0OAO1Sch19AICQ4Qaj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;577&quot; height=&quot;226&quot; data-origin-width=&quot;1161&quot; data-origin-height=&quot;454&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 10.13 Page-fault curve of FIFO repl c ement on a reference string.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- Optimal Page Replacement&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;가장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;안&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같은&lt;/span&gt;&lt;span&gt; page&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; victim&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이것을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계산하기는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실질적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불가능하기에&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;미래의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상황을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예측할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;비교&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대상군으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;- LRU (Least-recently-used) &amp;gt; &lt;/span&gt;&lt;span&gt;시간&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;가장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;페이지를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교체한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;많은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;운영체제가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방식을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;채택하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구현하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; Count&lt;/span&gt;&lt;span&gt;나&lt;/span&gt;&lt;span&gt; Stack&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;551&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3k39Y/btrkSNfOsVS/Lg5dXUC3FBUwsIPl9ZcD50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3k39Y/btrkSNfOsVS/Lg5dXUC3FBUwsIPl9ZcD50/img.png&quot; data-alt=&quot;Figure 10.17 Second-chance (clock) page-replacement algorithm.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3k39Y/btrkSNfOsVS/Lg5dXUC3FBUwsIPl9ZcD50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3k39Y%2FbtrkSNfOsVS%2FLg5dXUC3FBUwsIPl9ZcD50%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;408&quot; height=&quot;348&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;551&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 10.17 Second-chance (clock) page-replacement algorithm.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한번&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;돌&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기준으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하면&lt;/span&gt;&lt;span&gt; 1, &lt;/span&gt;&lt;span&gt;사용하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않으면&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;두어&lt;/span&gt;&lt;span&gt; victim&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;선정할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;- LFU (Least-frequently-used) &amp;gt; &lt;/span&gt;&lt;span&gt;횟수&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;LRU&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계속해서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용된&lt;/span&gt;&lt;span&gt; page&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;역할을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;끝냈을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않더라도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참조횟수가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;높아서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계속&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잔류할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능성이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;높다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이것을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해결하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참조&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;횟수가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;페이지를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교체하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- MFU(Most-frequently-used)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;LFU&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;반대&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;오히려&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참조&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;횟수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가진&lt;/span&gt;&lt;span&gt; page&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;미래에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자주&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능성이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;높기에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;채택한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;LFU, MFU&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; Concept&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;애매하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각&lt;/span&gt;&lt;span&gt; page&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; counting&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소모된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;더불어&lt;/span&gt;&lt;span&gt; LRU&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;성능&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;항상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;좋다고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;볼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없기에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자주&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Thrashing&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;a situ&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;tion that a process is busy swapping pages in and out.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;If a proc&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;ss does not have enough pages, the page-fault rate is very high.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;page fault&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일어나면&lt;/span&gt;&lt;span&gt; process&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계속해서&lt;/span&gt;&lt;span&gt; wait &lt;/span&gt;&lt;span&gt;상태로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전환&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되었다가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이것이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;매우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;막상&lt;/span&gt;&lt;span&gt; CPU&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않고&lt;/span&gt;&lt;span&gt; Page&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기다리는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시간이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;높아진다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를&lt;/span&gt;&lt;span&gt; Thrashing&lt;/span&gt;&lt;span&gt;이라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;429&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ck6J36/btrkOjTQWJ1/pVKz3MRCqYfTzFKYrrYs30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ck6J36/btrkOjTQWJ1/pVKz3MRCqYfTzFKYrrYs30/img.png&quot; data-alt=&quot;Figure 10.20 Thrashing.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ck6J36/btrkOjTQWJ1/pVKz3MRCqYfTzFKYrrYs30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fck6J36%2FbtrkOjTQWJ1%2FpVKz3MRCqYfTzFKYrrYs30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;457&quot; height=&quot;280&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;429&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 10.20 Thrashing.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;working-set window(slice window)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지정한다&lt;/span&gt;&lt;span&gt;. 해당&lt;/span&gt;&lt;span&gt; slice window &lt;/span&gt;&lt;span&gt;안에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어온&lt;/span&gt;&lt;span&gt; page&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; recent page&lt;/span&gt;&lt;span&gt;라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;밖을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;벗어나면&lt;/span&gt;&lt;span&gt; victim&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;선정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;211&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYwWRX/btrkSOFKZ6B/nNOE40lHihR0I4vy5FWqlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYwWRX/btrkSOFKZ6B/nNOE40lHihR0I4vy5FWqlk/img.png&quot; data-alt=&quot;Figure 10.22 Working-set model. &quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYwWRX/btrkSOFKZ6B/nNOE40lHihR0I4vy5FWqlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYwWRX%2FbtrkSOFKZ6B%2FnNOE40lHihR0I4vy5FWqlk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;683&quot; height=&quot;171&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;211&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 10.22 Working-set model. &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Computing/Operating System</category>
      <author>i독</author>
      <guid isPermaLink="true">https://idogs.tistory.com/93</guid>
      <comments>https://idogs.tistory.com/93#entry93comment</comments>
      <pubDate>Mon, 15 Nov 2021 02:26:25 +0900</pubDate>
    </item>
    <item>
      <title>14 &amp;gt; Paging, Swaping</title>
      <link>https://idogs.tistory.com/92</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;* 해당 게시물은&amp;nbsp;&lt;span style=&quot;color: #000a12;&quot;&gt;경북대학교 컴퓨터학부 강의초빙교수, 배준현 교수님의 강의를 보고 작성되었음을 미리 알려드립니다. ( 개인적인 공부를 정리한 글입니다. )&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Youtube Channel.&amp;nbsp; &lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910542192&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;주니온TV 아무거나연구소&quot; data-og-description=&quot;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&quot; data-og-host=&quot;www.youtube.com&quot; data-og-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900&quot;&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온TV 아무거나연구소&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.youtube.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Inflearn page.&amp;nbsp; &lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;https://www.inflearn.com/users/@joonion&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910542938&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&quot; data-og-description=&quot;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&quot; data-og-host=&quot;www.inflearn.com&quot; data-og-source-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500&quot;&gt;&lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.inflearn.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Paging&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- a memory management scheme that permits a process's physical address space to be non-contiguous.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Basic method for Paging.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- break physical memory into fixed-sized blocks (frames) and break logical memory into blocks of the same size. (pages)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- The logical address space is &lt;span style=&quot;color: #0070c0;&quot;&gt;totally separate&lt;/span&gt; from the physical address space.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Every address generated by the CPU is divided into two parts.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;p: a page number, d: a page offset.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- The page number is used as an index into a per-process page table.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1016&quot; data-origin-height=&quot;529&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mXh6v/btrkZMm6cWk/dGkYau9Axsn7nJWVawEtd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mXh6v/btrkZMm6cWk/dGkYau9Axsn7nJWVawEtd1/img.png&quot; data-alt=&quot;Figure 9.8 Paging hardware. &quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mXh6v/btrkZMm6cWk/dGkYau9Axsn7nJWVawEtd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmXh6v%2FbtrkZMm6cWk%2FdGkYau9Axsn7nJWVawEtd1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;588&quot; height=&quot;306&quot; data-origin-width=&quot;1016&quot; data-origin-height=&quot;529&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 9.8 Paging hardware. &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;645&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3MJ59/btrk1RPbKHj/akyDApnfASSsQk7F6poFN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3MJ59/btrk1RPbKHj/akyDApnfASSsQk7F6poFN1/img.png&quot; data-alt=&quot;Figure 9.9 Paging model of lo g ical and physical memory.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3MJ59/btrk1RPbKHj/akyDApnfASSsQk7F6poFN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3MJ59%2Fbtrk1RPbKHj%2FakyDApnfASSsQk7F6poFN1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;388&quot; height=&quot;340&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;645&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 9.9 Paging model of lo g ical and physical memory.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- The page size(like the frame size) is defined by the hardware.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;If the s&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;ze of logical address space is 2&lt;/span&gt;&lt;span&gt;^&lt;/span&gt;&lt;span&gt;m, and a p&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;ge size is 2&lt;/span&gt;&lt;span&gt;^&lt;/span&gt;&lt;span&gt;n,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;then t&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;e high-order m &lt;/span&gt;&lt;span&gt;&amp;minus;&lt;/span&gt;&lt;span&gt; n bits designate the page number,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;and t&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;e low-order n bits designate the page offset.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;172&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3ZchT/btrkPIr2TLP/Kms7a1KUSW63tPUuhlaQ20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3ZchT/btrkPIr2TLP/Kms7a1KUSW63tPUuhlaQ20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3ZchT/btrkPIr2TLP/Kms7a1KUSW63tPUuhlaQ20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3ZchT%2FbtrkPIr2TLP%2FKms7a1KUSW63tPUuhlaQ20%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;462&quot; height=&quot;121&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;172&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] PTBR (page-table base register)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;페이지의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정보를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;따로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리에&lt;/span&gt;&lt;span&gt; Table &lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기록해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보관한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실제적으로&lt;/span&gt;&lt;span&gt; Memory&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;번&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접근하므로&lt;/span&gt;&lt;span&gt; (Table&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;읽은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뒤&lt;/span&gt;&lt;span&gt;, Table&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;찾아서&lt;/span&gt;&lt;span&gt; Data Load) &lt;/span&gt;&lt;span&gt;속도가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;느리다&lt;/span&gt;&lt;span&gt;. page&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엄청나기에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이것을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;읽는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;또한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Translation Look-aside buffer. (TLB)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Cache memory&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; TLB&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기록한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;529&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G4fxT/btrkZMgjQox/m8WK1jCQk0xR7ruzecPJ5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G4fxT/btrkZMgjQox/m8WK1jCQk0xR7ruzecPJ5K/img.png&quot; data-alt=&quot;Figure 9.12 Paging hardware with TLB.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G4fxT/btrkZMgjQox/m8WK1jCQk0xR7ruzecPJ5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG4fxT%2FbtrkZMgjQox%2Fm8WK1jCQk0xR7ruzecPJ5K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;729&quot; height=&quot;528&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;529&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 9.12 Paging hardware with TLB.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TLB hit : if the page number of interest is in the TLB.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TLB miss : if the page number of interest is not in the TLB.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;hit ratio &lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;따라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;속도가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;달라진다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Memory Protection with Paging.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;물리적으로&lt;/span&gt;&lt;span&gt; 1bit&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가하여&lt;/span&gt;&lt;span&gt;, true&lt;/span&gt;&lt;span&gt;라면&lt;/span&gt;&lt;span&gt; legal&lt;/span&gt;&lt;span&gt;하고&lt;/span&gt;&lt;span&gt; false&lt;/span&gt;&lt;span&gt;라면&lt;/span&gt;&lt;span&gt; illegal &lt;/span&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의미한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; bit&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; protection bit&lt;/span&gt;&lt;span&gt;라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;803&quot; data-origin-height=&quot;637&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJPQ0D/btrkJmRjkuH/Ot98pKBm8k50Xuxv2cdx01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJPQ0D/btrkJmRjkuH/Ot98pKBm8k50Xuxv2cdx01/img.png&quot; data-alt=&quot;Figure 9.13 Valid bit (v) or in v alid bit (i) in a page table.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJPQ0D/btrkJmRjkuH/Ot98pKBm8k50Xuxv2cdx01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJPQ0D%2FbtrkJmRjkuH%2FOt98pKBm8k50Xuxv2cdx01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;447&quot; data-origin-width=&quot;803&quot; data-origin-height=&quot;637&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 9.13 Valid bit (v) or in v alid bit (i) in a page table.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Shared Pages.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;DLL &lt;/span&gt;&lt;span&gt;같은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것들을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이곳에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;올리면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;매우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;효율적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자신의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;코드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것들&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Physical Memory&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나이고&lt;/span&gt;&lt;span&gt; Page table&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주소를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가리키고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;644&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bU1JC6/btrkZMgjQqs/sLcF2opaSTTQeCc2kEsVH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bU1JC6/btrkZMgjQqs/sLcF2opaSTTQeCc2kEsVH1/img.png&quot; data-alt=&quot;Figure 9.14 Sharing of standard C library in a paging environment.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bU1JC6/btrkZMgjQqs/sLcF2opaSTTQeCc2kEsVH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbU1JC6%2FbtrkZMgjQqs%2FsLcF2opaSTTQeCc2kEsVH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;411&quot; height=&quot;396&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;644&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 9.14 Sharing of standard C library in a paging environment.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Hierarchical Paging.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이름&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그대로&lt;/span&gt;&lt;span&gt;, page&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;너무&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;또&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; page&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나눠&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; page&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가리키는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기법&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;777&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cVKdD9/btrkOkd9gSX/Gk3O1yluAfQRpNGLZSAKa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cVKdD9/btrkOkd9gSX/Gk3O1yluAfQRpNGLZSAKa0/img.png&quot; data-alt=&quot;Figure 9.16 Address translation for a two-lev e l &amp;amp;nbsp; 32-bit p a ging architecture.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cVKdD9/btrkOkd9gSX/Gk3O1yluAfQRpNGLZSAKa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcVKdD9%2FbtrkOkd9gSX%2FGk3O1yluAfQRpNGLZSAKa0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;218&quot; data-origin-width=&quot;777&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 9.16 Address translation for a two-lev e l &amp;nbsp; 32-bit p a ging architecture.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Hashed Page Tables.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Hash &lt;/span&gt;&lt;span&gt;값으로&lt;/span&gt;&lt;span&gt; Page&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성한다&lt;/span&gt;&lt;span&gt;.(hash &lt;/span&gt;&lt;span&gt;생성을&lt;/span&gt;&lt;span&gt; hardware&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성해서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;효율성을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;높인다&lt;/span&gt;&lt;span&gt;.) &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;address &lt;/span&gt;&lt;span&gt;공간도&lt;/span&gt;&lt;span&gt; 32bit(CPU Cache)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관리한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Inverted Page Tables.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Page table &lt;/span&gt;&lt;span&gt;안에&lt;/span&gt;&lt;span&gt; PID &lt;/span&gt;&lt;span&gt;정보를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관리한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;759&quot; data-origin-height=&quot;549&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vhiYd/btrkSOMyctS/CJ7rM7Kn4jkiXQnonlmaP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vhiYd/btrkSOMyctS/CJ7rM7Kn4jkiXQnonlmaP0/img.png&quot; data-alt=&quot;Figure 9.18 Inverted page table.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vhiYd/btrkSOMyctS/CJ7rM7Kn4jkiXQnonlmaP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvhiYd%2FbtrkSOMyctS%2FCJ7rM7Kn4jkiXQnonlmaP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;486&quot; height=&quot;352&quot; data-origin-width=&quot;759&quot; data-origin-height=&quot;549&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 9.18 Inverted page table.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Swapping.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;프로그램이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;프로그램&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전체를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;올릴&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;지금&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;당장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리만&lt;/span&gt;&lt;span&gt; paging &lt;/span&gt;&lt;span&gt;하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;616&quot; data-origin-height=&quot;455&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eiHI2k/btrkIPsHIIc/kxgRAd7rJiAS50CgXPET7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eiHI2k/btrkIPsHIIc/kxgRAd7rJiAS50CgXPET7k/img.png&quot; data-alt=&quot;Figure 9.19 Standard swapping of two processes using a disk as a b a cking store.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eiHI2k/btrkIPsHIIc/kxgRAd7rJiAS50CgXPET7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeiHI2k%2FbtrkIPsHIIc%2FkxgRAd7rJiAS50CgXPET7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;377&quot; height=&quot;279&quot; data-origin-width=&quot;616&quot; data-origin-height=&quot;455&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 9.19 Standard swapping of two processes using a disk as a b a cking store.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;요즘은&lt;/span&gt;&lt;span&gt; swapping with paging&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그냥&lt;/span&gt;&lt;span&gt; paging &lt;/span&gt;&lt;span&gt;이라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;부른다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;page out : moves a page from memory to backing store.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;page in : moves a page from backing store to memory.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;Paging works w&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;ll in conjunction with the virtual memory. (Ch&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;pter 10)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;655&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1TaaG/btrkJlLF5Ye/bxUxaQiqkeWdv5aw0aqv3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1TaaG/btrkJlLF5Ye/bxUxaQiqkeWdv5aw0aqv3k/img.png&quot; data-alt=&quot;Figure 9.20 Swapping with paging. &quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1TaaG/btrkJlLF5Ye/bxUxaQiqkeWdv5aw0aqv3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1TaaG%2FbtrkJlLF5Ye%2FbxUxaQiqkeWdv5aw0aqv3k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;470&quot; height=&quot;389&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;655&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 9.20 Swapping with paging. &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Computing/Operating System</category>
      <author>i독</author>
      <guid isPermaLink="true">https://idogs.tistory.com/92</guid>
      <comments>https://idogs.tistory.com/92#entry92comment</comments>
      <pubDate>Mon, 15 Nov 2021 02:24:36 +0900</pubDate>
    </item>
    <item>
      <title>13 &amp;gt; Main Memory</title>
      <link>https://idogs.tistory.com/91</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;* 해당 게시물은&amp;nbsp;&lt;span style=&quot;color: #000a12;&quot;&gt;경북대학교 컴퓨터학부 강의초빙교수, 배준현 교수님의 강의를 보고 작성되었음을 미리 알려드립니다. ( 개인적인 공부를 정리한 글입니다. )&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Youtube Channel.&amp;nbsp; &lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910457772&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;주니온TV 아무거나연구소&quot; data-og-description=&quot;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&quot; data-og-host=&quot;www.youtube.com&quot; data-og-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900&quot;&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온TV 아무거나연구소&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.youtube.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Inflearn page.&amp;nbsp; &lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;https://www.inflearn.com/users/@joonion&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910458625&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&quot; data-og-description=&quot;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&quot; data-og-host=&quot;www.inflearn.com&quot; data-og-source-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500&quot;&gt;&lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.inflearn.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A process is a program in execution. To say, a set of instructions kept in a main memory.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A memory consists of a large array of bytes, each with its own address.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CPU fetches instructions from memory using the program counter, and instruction may cause load from and store to the memory.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어떻게&lt;/span&gt;&lt;span&gt; Process &lt;/span&gt;&lt;span&gt;들을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관리할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것인지가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중점&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;We need to make sure that each process has a&lt;span&gt;&amp;nbsp; &lt;/span&gt;separate memory space.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A pair of registers : base register and limit register.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- provides the ability to determine the range of legal addresses.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;430&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d6hknc/btrkOkLX5JL/oqCgEVKtdnvX1hsAHitRN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d6hknc/btrkOkLX5JL/oqCgEVKtdnvX1hsAHitRN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d6hknc/btrkOkLX5JL/oqCgEVKtdnvX1hsAHitRN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd6hknc%2FbtrkOkLX5JL%2FoqCgEVKtdnvX1hsAHitRN1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;534&quot; height=&quot;267&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Figure 9.2 Hardware address prot&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;ction with base and limit registers.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Address Binding&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- A program resides on a disk as a binary executable file.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;To tun, the program must be brought into memory.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;The address of the process does not start at address 00000000.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- Addresses in the source are generally symbolic(&lt;/span&gt;&lt;span&gt;상징적인&lt;/span&gt;&lt;span&gt;).&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- A compiler typically binds symbolic addresses to relocatable addresses.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- A linker or loader in turn binds the relocatable addresses to absolute addresses.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;712&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c8obeK/btrkK7lRwQH/widFE5dKydZb4KLkBTQJDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8obeK/btrkK7lRwQH/widFE5dKydZb4KLkBTQJDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8obeK/btrkK7lRwQH/widFE5dKydZb4KLkBTQJDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8obeK%2FbtrkK7lRwQH%2FwidFE5dKydZb4KLkBTQJDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;489&quot; height=&quot;711&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;712&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Figure 9.3 Multistep processing of a user program.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Logical vs Physical Address Space.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;논리적&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주소는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;물리적&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주소와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관계가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;각&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;표현하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;분리되어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] MMU (Memory Management Unit)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- a hardware device that maps from logical address to physical address.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;410&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bV4AkM/btrkJ61OUFI/WHbIKOozYIo1hfIarzcRG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bV4AkM/btrkJ61OUFI/WHbIKOozYIo1hfIarzcRG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bV4AkM/btrkJ61OUFI/WHbIKOozYIo1hfIarzcRG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbV4AkM%2FbtrkJ61OUFI%2FWHbIKOozYIo1hfIarzcRG1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;489&quot; height=&quot;221&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;410&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Figure 9.4 Memory management unit (MMU).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;relocati&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;n register: a base register in MMU.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;497&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0cbek/btrkJlj5XVI/CVyHJClxvddKiPLMMXmwEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0cbek/btrkJlj5XVI/CVyHJClxvddKiPLMMXmwEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0cbek/btrkJlj5XVI/CVyHJClxvddKiPLMMXmwEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0cbek%2FbtrkJlj5XVI%2FCVyHJClxvddKiPLMMXmwEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;485&quot; height=&quot;322&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;497&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Figure 9.5 Dynamic relocation using a reloc&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;tion register.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Dynamic Loading.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- It is necessary for the entire program and data to be in physical memory?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이럴&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; dynamic loading&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;게임&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;대부분의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;게임은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;올릴&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정도로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;큰&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Dynamic loading&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때만&lt;/span&gt;&lt;span&gt; Load &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- The relocatable linking loader is called to load the desired routine and to update the program's address tables to reflect this change.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Dynamic Linking and Shared Libraries.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- DLLs : Dynamically Linked Libraries. &amp;gt; &lt;/span&gt;&lt;span&gt;프로그램이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; Linking &lt;/span&gt;&lt;span&gt;되는&lt;/span&gt;&lt;span&gt; Library &lt;/span&gt;&lt;span&gt;파일들을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;말한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Static linking: System libraries are treated like any other object module and are combined by the loader into the binary program code.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Dynamic linking: is similar to dynamic loading.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Shared library: DLLs are also known as shared libraries, since only one instance of the DLL in main memory can be shared among multiple user processes.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Contiguous Memory Allocation.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- each process is contained in a single section of memory that is contiguous to the section containing the next process.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;전체를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;올리기에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연속적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구역을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가진다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Memory Allocation&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hole : a block of available memory.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;896&quot; data-origin-height=&quot;287&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJAx7V/btrk1RuTM0N/eOrZlQFO0TRdILrhFHdW31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJAx7V/btrk1RuTM0N/eOrZlQFO0TRdILrhFHdW31/img.png&quot; data-alt=&quot;Figure 9.7 Variable partition.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJAx7V/btrk1RuTM0N/eOrZlQFO0TRdILrhFHdW31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJAx7V%2Fbtrk1RuTM0N%2FeOrZlQFO0TRdILrhFHdW31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;583&quot; height=&quot;187&quot; data-origin-width=&quot;896&quot; data-origin-height=&quot;287&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 9.7 Variable partition.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] The problem of Dynamic Storage Allocation:&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- How to satisfy a request of size n from a list of free holes?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Three types of solutions to this problem&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;1) First-Fit : allocates the first hold that is big enough. &amp;gt; &lt;/span&gt;&lt;span&gt;순서대로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;남은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;탐색하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어갈&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;곳에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;넣는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;2) Best-Fit : allocates the smallest hole that is big enough. &amp;gt; hole&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; heap&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관리하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것부터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;찾을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;작은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것부터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;넣을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;곳까지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;탐색하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어갈&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;곳에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;넣는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;3) Worst-Fit : allocates the largest hole. &amp;gt; hole&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; max_heap&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관리&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span style=&quot;color: #ee2323;&quot;&gt;★&lt;/span&gt;] Fragmentation&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;빈&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;총&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;용량은&lt;/span&gt;&lt;span&gt; 100M&lt;/span&gt;&lt;span&gt;지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;너무&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잘게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나눠져&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어떠한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;곳에도&lt;/span&gt;&lt;span&gt; Process&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당시킬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;단편화가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생했다고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;external fragmentation &amp;gt; Program&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당되면서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사이에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중간에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;존재하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;낭비되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;internal fragmentation &amp;gt; Program&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;용량보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;큰&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;받아&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;낭비되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;/p&gt;</description>
      <category>Computing/Operating System</category>
      <author>i독</author>
      <guid isPermaLink="true">https://idogs.tistory.com/91</guid>
      <comments>https://idogs.tistory.com/91#entry91comment</comments>
      <pubDate>Mon, 15 Nov 2021 02:22:27 +0900</pubDate>
    </item>
    <item>
      <title>12 &amp;gt; 동기화(4)</title>
      <link>https://idogs.tistory.com/90</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;* 해당 게시물은&amp;nbsp;&lt;span style=&quot;color: #000a12;&quot;&gt;경북대학교 컴퓨터학부 강의초빙교수, 배준현 교수님의 강의를 보고 작성되었음을 미리 알려드립니다. ( 개인적인 공부를 정리한 글입니다. )&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Youtube Channel.&amp;nbsp; &lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910338944&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;주니온TV 아무거나연구소&quot; data-og-description=&quot;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&quot; data-og-host=&quot;www.youtube.com&quot; data-og-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900&quot;&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온TV 아무거나연구소&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.youtube.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Inflearn page.&amp;nbsp; &lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;https://www.inflearn.com/users/@joonion&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910327928&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&quot; data-og-description=&quot;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&quot; data-og-host=&quot;www.inflearn.com&quot; data-og-source-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500&quot;&gt;&lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.inflearn.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[ 추가 Youtube 영상 ]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=TbVfDE99KZ8&amp;amp;list=PLV1ll5ct6Gtz5fnKa6kwluZJw4Zz2XbqM&amp;amp;index=33&quot;&gt;&lt;span&gt;기본 개념 | 교착상태 | 운영체제&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt; Dead lock.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;측면에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요구가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뒤엉킨&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스레드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스레드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스레드에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의해서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사건을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무한히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기다리는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상황&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;* &lt;/span&gt;&lt;span&gt;대부분의&lt;/span&gt;&lt;span&gt; OS&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교착상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;완전히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예방해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주지는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;못한다&lt;/span&gt;&lt;span&gt;. &amp;gt; &lt;/span&gt;&lt;span&gt;자주&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일어나는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;현상이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아니기에&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;사용자가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;직접&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어느&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한쪽을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없애서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해결한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;* &lt;/span&gt;&lt;span&gt;보통은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정교하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;못한&lt;/span&gt;&lt;span&gt; Multi thread application &lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;. -&amp;gt; app&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;강제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;종료하거나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;재시작한다&lt;/span&gt;&lt;span&gt;. ( windows OS&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;응답없음이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나온다&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;gt; &lt;/span&gt;&lt;span&gt;전형적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;멀티&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스레드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사례&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;380&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v2kGH/btrkK7THvMM/xMAVPNLMeqE1qdI2G2rMIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v2kGH/btrkK7THvMM/xMAVPNLMeqE1qdI2G2rMIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v2kGH/btrkK7THvMM/xMAVPNLMeqE1qdI2G2rMIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv2kGH%2FbtrkK7THvMM%2FxMAVPNLMeqE1qdI2G2rMIK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;743&quot; height=&quot;379&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;380&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;gt; &lt;/span&gt;&lt;span&gt;세마포어와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;초기화된&lt;/span&gt;&lt;span&gt; semaphore S&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; Q&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt;, P0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; S&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;진입했다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리곤&lt;/span&gt;&lt;span&gt; P1 &lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt;&lt;span&gt; Q&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;진입하고&lt;/span&gt;&lt;span&gt; S&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; wait &lt;/span&gt;&lt;span&gt;호출을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;했다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이미&lt;/span&gt;&lt;span&gt; P0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; S&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바뀐&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;돌려주지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않았으므로&lt;/span&gt;&lt;span&gt; P1&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계속&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기다린다&lt;/span&gt;&lt;span&gt;. P0&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도중&lt;/span&gt;&lt;span&gt; Q&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접근이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요하여&lt;/span&gt;&lt;span&gt; Semaphore&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확인했는데&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;역시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이미&lt;/span&gt;&lt;span&gt; P1&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바꾼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;진입할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;서로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이러지도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저러지도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;못하는&lt;/span&gt;&lt;span&gt; Deadlock &lt;/span&gt;&lt;span&gt;상황이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;436&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qnndc/btrkYgPfWuq/eJxGLY6Nd7kEQn4j2Ck6cK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qnndc/btrkYgPfWuq/eJxGLY6Nd7kEQn4j2Ck6cK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qnndc/btrkYgPfWuq/eJxGLY6Nd7kEQn4j2Ck6cK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqnndc%2FbtrkYgPfWuq%2FeJxGLY6Nd7kEQn4j2Ck6cK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;237&quot; height=&quot;187&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;436&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;gt; &lt;/span&gt;&lt;span&gt;교착상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유발시킬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잠재적&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요인&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;공유&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; &amp;gt; software resource (Mutex, Spin lock, Semaphore, File lock &amp;hellip;), Hardware resource(Memory, Printer, Processor)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스레드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;여러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동시에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;번에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나씩&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당하는&lt;/span&gt;&lt;span&gt; OS&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정책에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;gt; &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;네&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조건이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;성립할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;1) Mutual exclusion (&lt;/span&gt;&lt;span&gt;상호&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;배제&lt;/span&gt;&lt;span&gt;) - &lt;/span&gt;&lt;span&gt;하나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비공유&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모드로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;점유돼야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;2) Hold-and-wait (&lt;/span&gt;&lt;span&gt;점유&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대기&lt;/span&gt;&lt;span&gt;) - &lt;/span&gt;&lt;span&gt;최소한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;점유한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;채&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로세스에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;점유된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;얻기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대기한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;3) No preemption (&lt;/span&gt;&lt;span&gt;비선점&lt;/span&gt;&lt;span&gt;) - &lt;/span&gt;&lt;span&gt;점유된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로세스에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;선점될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없음&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;4) Circular wait (&lt;/span&gt;&lt;span&gt;순환&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대기&lt;/span&gt;&lt;span&gt;) - &lt;/span&gt;&lt;span&gt;프로세스들이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;체인을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상호&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;gt; &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그래프&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정확히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기술하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;G = (V, E), Vertex&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합&lt;/span&gt;&lt;span&gt; V&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt;, Edge&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합&lt;/span&gt;&lt;span&gt; E &lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;간선은&lt;/span&gt;&lt;span&gt; Process&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; resource&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;향할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;간선&lt;/span&gt;&lt;span&gt;(Request edge)&lt;/span&gt;&lt;span&gt;이라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하며&lt;/span&gt;&lt;span&gt;, resource&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; Process&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;향할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;간선&lt;/span&gt;&lt;span&gt;(Assignment edge)&lt;/span&gt;&lt;span&gt;이라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;853&quot; data-origin-height=&quot;479&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0OE1H/btrkIPztqAR/M2JLhkodRtBZl2EBnQX3bk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0OE1H/btrkIPztqAR/M2JLhkodRtBZl2EBnQX3bk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0OE1H/btrkIPztqAR/M2JLhkodRtBZl2EBnQX3bk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0OE1H%2FbtrkIPztqAR%2FM2JLhkodRtBZl2EBnQX3bk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;477&quot; height=&quot;267&quot; data-origin-width=&quot;853&quot; data-origin-height=&quot;479&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;489&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nOIpg/btrkWNT7Lam/qxWWqUBKns1Di4IKp6MzSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nOIpg/btrkWNT7Lam/qxWWqUBKns1Di4IKp6MzSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nOIpg/btrkWNT7Lam/qxWWqUBKns1Di4IKp6MzSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnOIpg%2FbtrkWNT7Lam%2FqxWWqUBKns1Di4IKp6MzSk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;465&quot; height=&quot;265&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;489&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;gt; &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해결&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기법&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예방&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요건&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나라도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;1) &lt;/span&gt;&lt;span&gt;점유와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;스레드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원들을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;점유하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않음을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보장해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함&lt;/span&gt;&lt;span&gt;. &amp;gt; &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이용률이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;낮고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기아상태&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;어떤&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;임의의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로세스가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때에는&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원들을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;점유하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보장한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;1-1) &lt;/span&gt;&lt;span&gt;각&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스레드는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자신이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전부를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;받는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도중&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없어서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대기상태에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;빠지지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;1-2) &lt;/span&gt;&lt;span&gt;각&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스레드는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일부&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원들만을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있되&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;추가적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방출한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뒤에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;5&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스레드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt;&lt;span&gt;개를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확보하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뒤&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;추가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청은&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;끝난&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;2) &lt;/span&gt;&lt;span&gt;비선점&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지&lt;/span&gt;&lt;span&gt; &amp;gt; &lt;/span&gt;&lt;span&gt;이미&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잃을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;스레드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이미&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;선점&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;실행하면서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;선점한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자신의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원들&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모두를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비선점&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시킨다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쉽게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복구&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;저장이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때나&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;빈번하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;좋다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;3) &lt;/span&gt;&lt;span&gt;순환&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;계층적&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요구&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기법으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순서를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보여하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순서대로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;각&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스레드들은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순환대기의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능성을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예방하며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;자원에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접근을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불필요하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;거부하기에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;효율적이지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;못하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;459&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bD8UCH/btrkOlqAMwa/H2grZPynuwqYsQ5DAgR6Uk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bD8UCH/btrkOlqAMwa/H2grZPynuwqYsQ5DAgR6Uk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bD8UCH/btrkOlqAMwa/H2grZPynuwqYsQ5DAgR6Uk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbD8UCH%2FbtrkOlqAMwa%2FH2grZPynuwqYsQ5DAgR6Uk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;515&quot; height=&quot;283&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;459&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;497&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOynLk/btrkWO6yE0a/erbK0g7wScqcqdIk5j0Dbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOynLk/btrkWO6yE0a/erbK0g7wScqcqdIk5j0Dbk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOynLk/btrkWO6yE0a/erbK0g7wScqcqdIk5j0Dbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOynLk%2FbtrkWO6yE0a%2FerbK0g7wScqcqdIk5j0Dbk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;512&quot; height=&quot;313&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;497&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;807&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N4qSr/btrkZM8sXvh/FQ4KOgPdlrjEDQQOhtmId1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N4qSr/btrkZM8sXvh/FQ4KOgPdlrjEDQQOhtmId1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N4qSr/btrkZM8sXvh/FQ4KOgPdlrjEDQQOhtmId1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN4qSr%2FbtrkZM8sXvh%2FFQ4KOgPdlrjEDQQOhtmId1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;526&quot; height=&quot;325&quot; data-origin-width=&quot;807&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;할당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;받은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뒤에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하더라도&lt;/span&gt;&lt;span&gt;, T4 &lt;/span&gt;&lt;span&gt;입장에서&lt;/span&gt;&lt;span&gt; T1&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원할당이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아직&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이루어지지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않았음으로&lt;/span&gt;&lt;span&gt; R4&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;회피&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;미리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스레드의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파악하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가정하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중지한다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;예방&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보다는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조금&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;완화된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정책이다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;자원이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어떻게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정보를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공하도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요구한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;각&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로세스는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자신이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;각&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유형의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원들의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최대&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;선언하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바탕으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교착상태가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알고리즘이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;안정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt;(Safe state)&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불안정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt;(Unsafe sate)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나눠진다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;여기서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불안정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능성이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뜻이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불안전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;막아&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;항상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불안정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어가지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;회피한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;탐지&lt;/span&gt;&lt;span&gt; &amp;amp; &lt;/span&gt;&lt;span&gt;복구&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;발생을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;탐지하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리함&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무시&lt;/span&gt;&lt;span&gt; = OS&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일반적&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;선택&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Safe State&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A state is safe if the system cam allocate resources to each thread (up to its maximum) in some order and still avoid a deadlock.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;safe sequence&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;존재한다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;각&lt;/span&gt;&lt;span&gt; thread&lt;/span&gt;&lt;span&gt;들은&lt;/span&gt;&lt;span&gt; safe state&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유지하면서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;받을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] &lt;/span&gt;&lt;span&gt;은행가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알고리즘&lt;/span&gt;&lt;span&gt; (Banker's Algorithm)&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;각각의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유형들이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인스턴스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;갖고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활용될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;프로세스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;자신이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;각&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최대&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;미리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;선언하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로세스의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원요청에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;안전상태와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불안정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;판단한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RAG is not applicable to a resource allocation system with multiple instances of each resource type.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;임계&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;영역에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;두개가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있고&lt;/span&gt;&lt;span&gt;, T0&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt;, T1&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; B&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이럴&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우에&lt;/span&gt;&lt;span&gt; RAG(Resource Allocation Graph)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보면&lt;/span&gt;&lt;span&gt; Cycle&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전혀&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이런&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우에&lt;/span&gt;&lt;span&gt; RAG&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대입할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Data structures.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;L&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;t n be the number of threads in the system&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;d let m be the number of resource types.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;Avai&lt;/span&gt;&lt;span&gt;l&lt;/span&gt;&lt;span&gt;able: A vector indicates the number of available resource types.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;M&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;x: A matrix defines the maximum demand of each thread.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Allocation: A matrix defines the number of resources of each typ&lt;/span&gt;&lt;span&gt;e &lt;/span&gt;&lt;span&gt;currently all&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;cated to each thread.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Need: A matrix indicates the remaining resource need of each thre&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;d.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;Availa&lt;/span&gt;&lt;span&gt;b&lt;/span&gt;&lt;span&gt;le[m]:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;if Av&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;ilable[j] == k, then k instances of Rj are available.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Max[n &amp;times; m]: if M&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;x[i][j] == k, then Ti may request at most k instances of Rj&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Allocation[n &amp;times; m]: if All&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;cation[i][j] == k, then Ti&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;is curr&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;ntly allocated k instances of Rj&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Need[n &amp;times; m]: if Ne&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;d[i][j] == k, then Ti may need k more instances of Rj&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;An illustrative example:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- a set of five threads: T = {T0, T1, T2, T3, T4}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- a set of three resource types : R = {A, B, C}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- the number of instances of each resource types : A = 10, B = 5, C = 7&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- the snapshot representing the current state of the system.&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;(Allocation)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;A B C&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;(MAX)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;A B C&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;(Available)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;A B C&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;(Need)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;A B C&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;T0&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;0 1 0&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;7 5 3&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;3 3 2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;7 4 3&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;T1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2 0 0&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;3 2 2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;1 2 2&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;T2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;3 0 2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;9 0 2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;6 0 0&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;T3&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2 1 1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2 2 2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;0 1 1&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;T4&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;0 0 2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;4 3 3&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;4 3 1&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1357&quot; data-origin-height=&quot;653&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0uHbY/btrk18wEBZM/skwzG1ds4apVZIM5AX1HC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0uHbY/btrk18wEBZM/skwzG1ds4apVZIM5AX1HC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0uHbY/btrk18wEBZM/skwzG1ds4apVZIM5AX1HC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0uHbY%2Fbtrk18wEBZM%2FskwzG1ds4apVZIM5AX1HC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;698&quot; height=&quot;335&quot; data-origin-width=&quot;1357&quot; data-origin-height=&quot;653&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;1) work vector&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; available &lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;초기화&lt;/span&gt;&lt;span&gt;, Finish vector&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; Thread &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만큼&lt;/span&gt;&lt;span&gt; false&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;2) &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt;(idx is specified thread number, finish[idx] &lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; false &lt;/span&gt;&lt;span&gt;면서&lt;/span&gt;&lt;span&gt; Need[idx] Work &lt;/span&gt;&lt;span&gt;보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작거나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해준다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;3) Work = Work + Allocation[idx] &lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하고&lt;/span&gt;&lt;span&gt; finish[idx] = true; 2&lt;/span&gt;&lt;span&gt;번&lt;/span&gt;&lt;span&gt; Step&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보낸다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;초기화&lt;/span&gt;&lt;span&gt; work[] = {3, 3, 2}, finish[] = {f, f, ,f, f, f }&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;idx = 0, need[0] = {7, 4, 3} &amp;lt;= {3, 3, 2} &amp;gt; &lt;/span&gt;&lt;span&gt;조건을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만족하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;못함&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;idx = 1, need[1] = {1, 2, 2} &amp;lt;= {3, 3, 2} &amp;gt; work[] + allocation[] = {3, 3, 2} + {2, 0, 0} &amp;gt; work[] = {5, 3, 2}, finish[1] = true&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;idx = 2, need[2] = {6, 0, 0} &amp;lt;= {5, 3, 2} &amp;gt; &lt;/span&gt;&lt;span&gt;조건을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만족하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;못함&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;idx = 3, need[3] = {0, 1, 1} &amp;lt;= {5, 3, 2} &amp;gt; work[] + allocation[] = {5, 3, 2} + {2, 1, 1} &amp;gt; work[] = {7, 4, 3}, finish[3] = true&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;idx = 4, need[4] = {4, 3, 1} &amp;lt;= {7, 4, 3} &amp;gt; work[] + allocation[] = {7, 4, 3} + {0, 0, 2} &amp;gt; work[] = {7, 4, 5}, finish[4] = true&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Loop&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;finish[idx] &lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; true&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생략&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;조건에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의해&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;idx = 0, need[0] = {7, 4, 3} &amp;lt;= {7, 4, 5} &amp;gt; work[] + allocation[] = {7, 4, 5} + {0, 1, 0} &amp;gt; work[] = {7, 5, 5}, Finish[0] = true&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;idx = 2, need[2] = {6, 0, 0} &amp;lt;= {7, 5, 5} &amp;gt; work[] + allocation[] = {7, 5, 5} + {3, 0, 2} &amp;gt; work[] = {10, 5, 7}, finish[2] = true&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;finish&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순서를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보면&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;첫번째에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;완료된&lt;/span&gt;&lt;span&gt; Threads) T1, T3, T4, (&lt;/span&gt;&lt;span&gt;두번째에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;완료된&lt;/span&gt;&lt;span&gt; Threads) T0, T2 &lt;/span&gt;&lt;span&gt;순이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순서를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지킨다면&lt;/span&gt;&lt;span&gt; Safety criteria &lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만족한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ct9gB/btrkQlYbboR/faefUrh2goksK8cVeUwEJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ct9gB/btrkQlYbboR/faefUrh2goksK8cVeUwEJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ct9gB/btrkQlYbboR/faefUrh2goksK8cVeUwEJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCt9gB%2FbtrkQlYbboR%2FfaefUrh2goksK8cVeUwEJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;769&quot; height=&quot;339&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;604&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Computing/Operating System</category>
      <author>i독</author>
      <guid isPermaLink="true">https://idogs.tistory.com/90</guid>
      <comments>https://idogs.tistory.com/90#entry90comment</comments>
      <pubDate>Mon, 15 Nov 2021 02:20:58 +0900</pubDate>
    </item>
    <item>
      <title>11 &amp;gt; 동기화(3)</title>
      <link>https://idogs.tistory.com/89</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;* 해당 게시물은&amp;nbsp;&lt;span style=&quot;color: #000a12;&quot;&gt;경북대학교 컴퓨터학부 강의초빙교수, 배준현 교수님의 강의를 보고 작성되었음을 미리 알려드립니다. ( 개인적인 공부를 정리한 글입니다. )&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Youtube Channel.&amp;nbsp; &lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910201675&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;주니온TV 아무거나연구소&quot; data-og-description=&quot;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&quot; data-og-host=&quot;www.youtube.com&quot; data-og-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900&quot;&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b1yFJF/hyMlhmUDby/wCZWfICscwswMf1jQztJj0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/0eaYC/hyMlqRGwV2/hkIVkvPuxgBkD9tXTmmq2K/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온TV 아무거나연구소&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.youtube.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 주니온 TV Inflearn page.&amp;nbsp; &lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;https://www.inflearn.com/users/@joonion&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636910201106&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&quot; data-og-description=&quot;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&quot; data-og-host=&quot;www.inflearn.com&quot; data-og-source-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-url=&quot;https://www.inflearn.com/users/@joonion&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500&quot;&gt;&lt;a href=&quot;https://www.inflearn.com/users/@joonion&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.inflearn.com/users/@joonion&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cGJEsH/hyMlsvcOyz/jvKw2eBWgK7hPsienscTW0/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500,https://scrap.kakaocdn.net/dn/cetlb1/hyMlqxm6rl/xKmE11VFABGO7c9lzYTOuk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;주니온님의 소개 - 인프런 | 온라인 강의 플랫폼&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;인프런 지식공유자 주니온님의 소개 페이지 입니다. - 지식공유자 소개 | 인프런...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.inflearn.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;gt;&amp;gt; Classic Problems of Synchronization&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] &lt;/span&gt;&lt;span&gt;The Boun&lt;/span&gt;&lt;span&gt;d&lt;/span&gt;&lt;span&gt;ed-Buffer Problem&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;n &lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; buffers &lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각각&lt;/span&gt;&lt;span&gt; item&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보유할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Producer&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소비자를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위한&lt;/span&gt;&lt;span&gt; buffer&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가득&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;채우는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;목적이고&lt;/span&gt;&lt;span&gt;, &amp;gt;&amp;gt; create fully buffer.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Consumer&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;공급자가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공하는&lt;/span&gt;&lt;span&gt; Buffer&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;빨리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소비하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;목적이다&lt;/span&gt;&lt;span&gt;. &amp;gt;&amp;gt; create empty buffer.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Shared data structures&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;A binary semaphore mutex. &amp;gt; mutual exclusion &lt;/span&gt;&lt;span&gt;제공&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;Two counting semaphores empty and full. &amp;gt; &lt;/span&gt;&lt;span&gt;서로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상반되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값으로&lt;/span&gt;&lt;span&gt; n&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;감소하거나&lt;/span&gt;&lt;span&gt;, 0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; n&lt;/span&gt;&lt;span&gt;까지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;증가한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;empty, mutex variable&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; wait(), signal()&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하기에&lt;/span&gt;&lt;span&gt; Code &lt;/span&gt;&lt;span&gt;실수가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] The Readers-Writers Problem.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Process &lt;/span&gt;&lt;span&gt;별로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;역할에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;따라&lt;/span&gt;&lt;span&gt; only read or only write or RW&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; Process &lt;/span&gt;&lt;span&gt;들&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중&lt;/span&gt;&lt;span&gt; only read&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; Reader&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt;, only write&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; Writer&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정의한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;동시에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;둘&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상의&lt;/span&gt;&lt;span&gt; Reader&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; Shared memory&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접근하더라도&lt;/span&gt;&lt;span&gt; Data&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; integrity &lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;훼손되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Some Variations of the Readers-Writers Problem&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;우선&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순위에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관련된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변형&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- The first reader-writers problem. &amp;gt; Writer&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; Reader &lt;/span&gt;&lt;span&gt;둘에게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;평등한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기회를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;단순히&lt;/span&gt;&lt;span&gt; Writer&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; wait &lt;/span&gt;&lt;span&gt;상태라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해서&lt;/span&gt;&lt;span&gt; Reader&lt;/span&gt;&lt;span&gt;들이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기다려서는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;안된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;문제&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt;&lt;span&gt; Wait &lt;/span&gt;&lt;span&gt;상태의&lt;/span&gt;&lt;span&gt; Reader&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대다수고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;하나의&lt;/span&gt;&lt;span&gt; Writer&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대기하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; Writer&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; Starvation&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- The second reader-writers problem. = &lt;/span&gt;&lt;span&gt;입출금&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중요한&lt;/span&gt;&lt;span&gt; Write&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리하고&lt;/span&gt;&lt;span&gt; Reader&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열어준다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; : Writer&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; wait &lt;/span&gt;&lt;span&gt;상태라면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; Reader&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접근할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;문제&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt;&lt;span&gt; Wait &lt;/span&gt;&lt;span&gt;상태의&lt;/span&gt;&lt;span&gt; Writer&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대다수라면&lt;/span&gt;&lt;span&gt;, Reader&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; Starvation&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] The Reader-Writer Locks.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;reader-writer lock&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;획득할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때는&lt;/span&gt;&lt;span&gt; read or write mode&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지정해준다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;여러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로세스가&lt;/span&gt;&lt;span&gt; read mode&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; reader-writer lock &lt;/span&gt;&lt;span&gt;획득하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;여러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;진입할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있고&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;write mode&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;획득하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오직&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나의&lt;/span&gt;&lt;span&gt; process&lt;/span&gt;&lt;span&gt;만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;진입&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;★&lt;/span&gt;&lt;span&gt;] The Dining-Philosophers Problem.&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Consider five philosophers who spend their lives thinking and eating.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sharing five single chopsticks.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sometimes, a philosopher gets hungry and tries to pick up two chopsticks that are closest to her.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;When a hungry philosopher has both her chopsticks at the same time, she eats without releasing the chopsticks.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;446&quot; data-origin-height=&quot;359&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ka3cY/btrkQkkG8Gs/kLRak5JjKQYElIsk3yjip0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ka3cY/btrkQkkG8Gs/kLRak5JjKQYElIsk3yjip0/img.png&quot; data-alt=&quot;&amp;amp;nbsp;Figure 7.5 The situation of the dining philosophers. &quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ka3cY/btrkQkkG8Gs/kLRak5JjKQYElIsk3yjip0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKa3cY%2FbtrkQkkG8Gs%2FkLRak5JjKQYElIsk3yjip0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;275&quot; height=&quot;221&quot; data-origin-width=&quot;446&quot; data-origin-height=&quot;359&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;nbsp;Figure 7.5 The situation of the dining philosophers. &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Semaphore Solution.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;젓가락에&lt;/span&gt;&lt;span&gt; Semaphore&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;부여해서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상호배제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해결할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그러나&lt;/span&gt;&lt;span&gt; Deadlock&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쉽게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Possible remedies to the deadlock problem.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[Youtube 추가 영상]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=PS9S3b3XvLU&amp;amp;list=PLV1ll5ct6Gtz5fnKa6kwluZJw4Zz2XbqM&amp;amp;index=39&quot;&gt;&lt;span&gt;식사하는 철학자 문제 | 교착상태 | 운영체제&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;가장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쉬운&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;철학자들의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;빼는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;젓가락은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;항상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;남는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상황이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하기에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일어나지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;두번째&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;양쪽에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;젓가락이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;놓여졌을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;젓가락을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;획득할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;그렇지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;못한다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아예&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;끔&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설계한다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;임계&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;영역&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수행한다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;비대칭적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해결법이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;홀수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;번호를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;부여받은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;철학자들은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;왼쪽을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;오른쪽을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;짝수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;번호를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;부여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;받은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;철학자들은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오른쪽을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;왼쪽을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;같은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방향의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;젓가락들을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동시에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요구하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상황을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;배제한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그러나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법은&lt;/span&gt;&lt;span&gt; Starvation &lt;/span&gt;&lt;span&gt;까지는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해결하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;못한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기아&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt; &amp;gt; &lt;/span&gt;&lt;span&gt;교착&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예방하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무한히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기다린다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있음에도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불구하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계속&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;양보하다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무한히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연기하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;845&quot; data-origin-height=&quot;469&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhAnaJ/btrkHEShjY1/DMk5ozv0chcOpR53d3Kjt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhAnaJ/btrkHEShjY1/DMk5ozv0chcOpR53d3Kjt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhAnaJ/btrkHEShjY1/DMk5ozv0chcOpR53d3Kjt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhAnaJ%2FbtrkHEShjY1%2FDMk5ozv0chcOpR53d3Kjt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;224&quot; data-origin-width=&quot;845&quot; data-origin-height=&quot;469&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Monitor Solution.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;번째&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법으로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;양쪽에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;젓가락만이&lt;/span&gt;&lt;span&gt; available &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;젓가락을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있게끔&lt;/span&gt;&lt;span&gt; Monitor&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가하는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;기존&lt;/span&gt;&lt;span&gt; Thinking, Eating&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; Hungry &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;철학&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사람이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;먹고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아닐&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;먹을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조건을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Condition variable&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성하는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;철학자가&lt;/span&gt;&lt;span&gt; Hungry &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;자기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자신을&lt;/span&gt;&lt;span&gt; delay(wait)&lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Monitor&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; operation&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; pickup() - &lt;/span&gt;&lt;span&gt;젓가락을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행위&lt;/span&gt;&lt;span&gt;, putdown() - &lt;/span&gt;&lt;span&gt;젓가락을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;놓는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행위&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;pickup&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;성공&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; eating &lt;/span&gt;&lt;span&gt;상태가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;성공하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;못한다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기다린다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;먹고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;난&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뒤에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;반드시&lt;/span&gt;&lt;span&gt; putdown()&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;호출한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결국엔&lt;/span&gt;&lt;span&gt; Starvation&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;야기시킨다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;말이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어려운데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;결국에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공유&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어떻게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해결할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것인가에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;논리만을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이해하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;넘어가도 좋다. &lt;/span&gt;&lt;span&gt;공유&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동시에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제어하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불위치가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생기는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;막기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로세스간의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순서적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행방법이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;생산자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소비자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제는&lt;/span&gt;&lt;span&gt; buffer &lt;/span&gt;&lt;span&gt;관리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중점을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;둔다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Computing/Operating System</category>
      <author>i독</author>
      <guid isPermaLink="true">https://idogs.tistory.com/89</guid>
      <comments>https://idogs.tistory.com/89#entry89comment</comments>
      <pubDate>Mon, 15 Nov 2021 02:18:45 +0900</pubDate>
    </item>
    <item>
      <title>10 &amp;gt; 동기화(2)</title>
      <link>https://idogs.tistory.com/88</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] &lt;/span&gt;&lt;span&gt;Higher-level softw&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;re tools to solve the CSP:&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Mutex Locks: the si&lt;/span&gt;&lt;span&gt;m&lt;/span&gt;&lt;span&gt;plest tools for synchronization.&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;(1&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; instance)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Semaphore: more r&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;bust, convenient, and effective tool.&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;(n&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; instance)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Monitor: overcomes t&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;e demerits of mutex and semaphore.&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Liveness: ensures for p&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;ocesses to make progress.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;★&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;span&gt;M&lt;/span&gt;&lt;span&gt;u&lt;/span&gt;&lt;span&gt;tex Lock&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; mut&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;x: mutual exclusion.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; to p&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;otect critical section and prevent race condition.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; a p&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;ocess must acquire the lock before entering a critical section.&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;열쇠를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용해서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접근하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;반납한다&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; r&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;leases the lock when it exits the critical section.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;발생하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;B&lt;/span&gt;&lt;span&gt;u&lt;/span&gt;&lt;span&gt;sy waiting:&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;A&lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;y other process trying to enter its critical section&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;must loop continu&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;usly in the call to acquire().&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;B&lt;/span&gt;&lt;span&gt;u&lt;/span&gt;&lt;span&gt;sy waiting is clearly a problem in a real multiprogramming system,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;+ &lt;/span&gt;&lt;span&gt;wh&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;re a single CPU core is shared among many processes.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;+&lt;/span&gt;&lt;span&gt; wast&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;s CPU cycles for some other processes to use productively.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;열쇠를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;받을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;까지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무한으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대기하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;됨&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;괜히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무한&lt;/span&gt;&lt;span&gt; loop&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;돌기위해&lt;/span&gt;&lt;span&gt; CPU&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;됨&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;S&lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt;inlock:&lt;/span&gt;&lt;span&gt; ( busy waiting&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;말이다&lt;/span&gt;&lt;span&gt;. busy waiting&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하더라도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상황이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;반드시&lt;/span&gt;&lt;span&gt; worst&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아니다&lt;/span&gt;&lt;span&gt;. ) &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;t&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;e type of mutex lock using the method of busy waiting.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;t&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;e process spins while waiting for the lock to become available.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Ho&lt;/span&gt;&lt;span&gt;w&lt;/span&gt;&lt;span&gt;ever, spinlocks do have an &lt;/span&gt;&lt;span&gt;advantage&lt;/span&gt;&lt;span&gt;, in that no context switch is required waiting on a lock. a context switch may take consi&lt;/span&gt;&lt;span&gt;d&lt;/span&gt;&lt;span&gt;erable time.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;In c&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;rtain circumstances on multicore systems, spinlocks&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;+ &lt;/span&gt;&lt;span&gt;are t&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;e preferable choice for locking.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;+ o&lt;/span&gt;&lt;span&gt;ne t&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;read can spin on one processing core while another thread performs its critical section on another core&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;어차피&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;놀고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; Core&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;여러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다면&lt;/span&gt;&lt;span&gt; busy waiting&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하더라도&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;바로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;진입할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있으니&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;반드시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나쁜&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아니다&lt;/span&gt;&lt;span&gt;. Context switch&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않으므로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오히려&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;효율적으로&lt;/span&gt;&lt;span&gt; CPU&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;★&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;span&gt;Semapho&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;신호장치&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;신호기&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;A s&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;maphore S is&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;an i&lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;teger variable that, apart from initialization,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;is ac&lt;/span&gt;&lt;span&gt;c&lt;/span&gt;&lt;span&gt;essed only through two standard atomic operations: wait() and signal(), or sometimes P() and V().&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; U&lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt;ing the counting semaphore:&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Initialize a sem&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;phore to the number of resources available.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;When a proc&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;ss uses a resource&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;+&lt;/span&gt;&lt;span&gt; wait() on t&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;e semaphore: decrements the count.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;When a proc&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;ss release a resource&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;+ &lt;/span&gt;&lt;span&gt;signal() on t&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;e semaphore: increment the count.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;When the cou&lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;t goes to 0, all resources are being used.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;+ &lt;/span&gt;&lt;span&gt;Then, proce&lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt;ses that wish to use a resource will block&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;+&lt;/span&gt;&lt;span&gt; until the co&lt;/span&gt;&lt;span&gt;u&lt;/span&gt;&lt;span&gt;nt becomes greater than 0.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;846&quot; data-origin-height=&quot;226&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9idhQ/btrkIhJiImk/T2C1bwNhWOmVjAWjmZmAvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9idhQ/btrkIhJiImk/T2C1bwNhWOmVjAWjmZmAvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9idhQ/btrkIhJiImk/T2C1bwNhWOmVjAWjmZmAvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9idhQ%2FbtrkIhJiImk%2FT2C1bwNhWOmVjAWjmZmAvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;465&quot; height=&quot;124&quot; data-origin-width=&quot;846&quot; data-origin-height=&quot;226&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Definition of wait() and signal()&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;All modifications to the integer value of the sem&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;phore&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;in t&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;e wait() and signal() operations must be executed atomically.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;S&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수만큼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열쇠를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것처럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이해하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;좋다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt; n&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; 1&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;두면&lt;/span&gt;&lt;span&gt; mutex lock&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;매우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유사하다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;차이점은&lt;/span&gt;&lt;span&gt; Atomic variable&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; counting &lt;/span&gt;&lt;span&gt;한다는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;점&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;내&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생각&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;U&lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt;ing the semaphore to solve synchronization problem:&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Con&lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt;ider two processes P1 and P2 running concurrently.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;+&lt;/span&gt;&lt;span&gt; P1 w&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;th a statement S1, and P&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt; w&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;th a statement S2.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Sup&lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt;ose that S2 should be executed only after S1 has completed.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;+&lt;/span&gt;&lt;span&gt; L&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;t P1 and P2 share a semaphore synch, initialized to 0.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;Semaphores al&lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt;o suffer from the problem of busy waiting.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해결하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해서&lt;/span&gt;&lt;span&gt; wait() &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt;, scheduling&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이용하여&lt;/span&gt;&lt;span&gt; waiting queue&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; ready queue&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1362&quot; data-origin-height=&quot;617&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bipUOo/btrkJ7zBP0u/UqnRiBYIzoh4qMqG2kW8H1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bipUOo/btrkJ7zBP0u/UqnRiBYIzoh4qMqG2kW8H1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bipUOo/btrkJ7zBP0u/UqnRiBYIzoh4qMqG2kW8H1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbipUOo%2FbtrkJ7zBP0u%2FUqnRiBYIzoh4qMqG2kW8H1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;475&quot; height=&quot;215&quot; data-origin-width=&quot;1362&quot; data-origin-height=&quot;617&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;무한&lt;/span&gt;&lt;span&gt; Loop&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되는&lt;/span&gt;&lt;span&gt; CPU &lt;/span&gt;&lt;span&gt;점유만을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;죽이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;목적을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명시한채&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;코드를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확인하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쉽게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;공유&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수만이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있고&lt;/span&gt;&lt;span&gt;,&lt;span&gt;&amp;nbsp; &lt;/span&gt;semaphores &lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; 5&lt;/span&gt;&lt;span&gt;개가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; Mutual exclusion&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;성립되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; The diffi&lt;/span&gt;&lt;span&gt;c&lt;/span&gt;&lt;span&gt;ulty of using semaphores:&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;The sem&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;phore is convenient and effective for synchronization.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Howev&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;r, timing errors can happen&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;+&lt;/span&gt;&lt;span&gt; if pa&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;ticular execution sequences take place.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;+&lt;/span&gt;&lt;span&gt; the&lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt;e sequences do not always occur,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;and it is h&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;rd to detect.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&amp;nbsp; ] Monitor&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기본적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개념은&lt;/span&gt;&lt;span&gt; semaphore&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용함에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있어서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사람의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실수&lt;/span&gt;&lt;span&gt;(Code&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쉽게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실수&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;줄이기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;목적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나온&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상위&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도구이다&lt;/span&gt;&lt;span&gt;. = one fundamental high-level synchronization construct.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- A monitor type is an ADT &lt;/span&gt;&lt;span&gt;that includes a set of progr&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;mmer-defined operations&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;th&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;t are provided with mutual exclusion within the monitor.&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;하나의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클래스&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;de&lt;/span&gt;&lt;span&gt;c&lt;/span&gt;&lt;span&gt;lares the variables&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;+ &lt;/span&gt;&lt;span&gt;w&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;ose values define the state of an instance of that type.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;+ &lt;/span&gt;&lt;span&gt;al&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;ng with the bodies of function that operate on those variables.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;605&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ECFdg/btrk18wEq0C/egOPdTnwMSYqYkn1zkpcS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ECFdg/btrk18wEq0C/egOPdTnwMSYqYkn1zkpcS0/img.png&quot; data-alt=&quot;Figure 6.12 Schemat i c view of a monitor.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ECFdg/btrk18wEq0C/egOPdTnwMSYqYkn1zkpcS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FECFdg%2Fbtrk18wEq0C%2FegOPdTnwMSYqYkn1zkpcS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;317&quot; height=&quot;282&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;605&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 6.12 Schemat i c view of a monitor.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;모니터가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자체적으로&lt;/span&gt;&lt;span&gt; Synchronization mechanisms &lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가질&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있도록&lt;/span&gt;&lt;span&gt; Condition variable&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;모니터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;안에서&lt;/span&gt;&lt;span&gt; x, y&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개별적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모니터링한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;893&quot; data-origin-height=&quot;605&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ebSNun/btrkYf3TDNR/vYXUbW9rPaukelk2gfq4Jk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ebSNun/btrkYf3TDNR/vYXUbW9rPaukelk2gfq4Jk/img.png&quot; data-alt=&quot;Figure 6.13 Monitor with c o ndition variables.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ebSNun/btrkYf3TDNR/vYXUbW9rPaukelk2gfq4Jk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FebSNun%2FbtrkYf3TDNR%2FvYXUbW9rPaukelk2gfq4Jk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;481&quot; height=&quot;326&quot; data-origin-width=&quot;893&quot; data-origin-height=&quot;605&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 6.13 Monitor with c o ndition variables.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;] Liveness&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Monitor&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; Method &lt;/span&gt;&lt;span&gt;전체를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동기화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시켜주는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;그러나&lt;/span&gt;&lt;span&gt; mutex&lt;/span&gt;&lt;span&gt;만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보장한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;오히려&lt;/span&gt;&lt;span&gt; dead lock &lt;/span&gt;&lt;span&gt;문제를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일으킨다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;Two crite&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;ia for the CSP: the progress and bounded-waiting.&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;Semapho&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;es and monitors cannot solve these requirements.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Liveness r&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;fers to&lt;/span&gt;&lt;span&gt; &amp;gt; &lt;/span&gt;&lt;span&gt;아직&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;남은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;과제&lt;/span&gt;&lt;span&gt;(dead lock, starv&lt;/span&gt;&lt;span&gt;ation) &lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해결하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나온&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개념&lt;/span&gt;&lt;span&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;a set of p&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;operties that a system must satisfy&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;to ensure t&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;at processes make progress during their execution cycle.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; Two situati&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt;ns that can lead to liveness failures.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;deadlock and pr&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;ority inversion.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;★&lt;/span&gt;&lt;span&gt;] Deadlock&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;a situation where two or more processes are waiting indefinite&lt;/span&gt;&lt;span&gt;l&lt;/span&gt;&lt;span&gt;y&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;for an e&lt;/span&gt;&lt;span&gt;v&lt;/span&gt;&lt;span&gt;ent that can be caused only by one of the waiting process.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Computing/Operating System</category>
      <author>i독</author>
      <guid isPermaLink="true">https://idogs.tistory.com/88</guid>
      <comments>https://idogs.tistory.com/88#entry88comment</comments>
      <pubDate>Mon, 15 Nov 2021 02:16:48 +0900</pubDate>
    </item>
  </channel>
</rss>