From f02150de2a1c9bef38e49188b3c0ee0ac28fb1a9 Mon Sep 17 00:00:00 2001 From: guide Date: Tue, 25 Oct 2022 10:13:34 +0800 Subject: [PATCH] =?UTF-8?q?[docs=20fix]=E4=BF=AE=E6=AD=A3=E5=AF=B9?= =?UTF-8?q?=E6=AD=BB=E9=94=81=E7=9A=84=E5=9B=9B=E4=B8=AA=E5=BF=85=E8=A6=81?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E7=9A=84=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operating-system-basic-questions-01.md | 10 +++++++--- .../concurrent/images/jmm/cpu-cache-protocol.drawio | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/cs-basics/operating-system/operating-system-basic-questions-01.md b/docs/cs-basics/operating-system/operating-system-basic-questions-01.md index 9da46d06..d9c6599e 100644 --- a/docs/cs-basics/operating-system/operating-system-basic-questions-01.md +++ b/docs/cs-basics/operating-system/operating-system-basic-questions-01.md @@ -145,18 +145,22 @@ head: 🙋 **我** :死锁描述的是这样一种情况:多个进程/线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于进程/线程被无限期地阻塞,因此程序不可能正常终止。 -### 死锁的四个条件 +### 死锁的四个必要条件 👨‍💻**面试官** :**产生死锁的四个必要条件是什么?** -🙋 **我** :如果系统中以下四个条件同时成立,那么就能引起死锁: +🙋 **我** : - **互斥**:资源必须处于非共享模式,即一次只有一个进程可以使用。如果另一进程申请该资源,那么必须等待直到该资源被释放为止。 - **占有并等待**:一个进程至少应该占有一个资源,并等待另一资源,而该资源被其他进程所占有。 - **非抢占**:资源不能被抢占。只能在持有资源的进程完成任务后,该资源才会被释放。 - **循环等待**:有一组等待进程 `{P0, P1,..., Pn}`, `P0` 等待的资源被 `P1` 占有,`P1` 等待的资源被 `P2` 占有,......,`Pn-1` 等待的资源被 `Pn` 占有,`Pn` 等待的资源被 `P0` 占有。 -注意,只有四个条件同时成立时,死锁才会出现。 +**注意 ⚠️** :这四个条件是产生死锁的 **必要条件** ,也就是说只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生产生死锁。 + +下面是百度百科对必要条件的解释: + +> 如果没有事物情况 A,则必然没有事物情况 B,也就是说如果有事物情况 B 则一定有事物情况 A,那么 A 就是 B 的必要条件。从逻辑学上看,B 能推导出 A,A 就是 B 的必要条件,等价于 B 是 A 的充分条件。 ### 解决死锁的方法 diff --git a/docs/java/concurrent/images/jmm/cpu-cache-protocol.drawio b/docs/java/concurrent/images/jmm/cpu-cache-protocol.drawio index 8bae6180..39dfe1da 100644 --- a/docs/java/concurrent/images/jmm/cpu-cache-protocol.drawio +++ b/docs/java/concurrent/images/jmm/cpu-cache-protocol.drawio @@ -1 +1 @@ -7VrbcqM4EP0aPSaFwNwejY1nZzbeSm1qazaPCsiYBCOPkG/79SuBMBfhlF02sSuZSipGrdaFc7pb6o6BMVpsv1G0nE9JiBOga+EWGGOg61DTXf4hJLtC4mpGIYhoHEqlSvAU/4fLkVK6ikOcNRQZIQmLl01hQNIUB6whQ5SSTVNtRpLmqksUYUXwFKBElf6MQzYvpI5uV/I/cBzNy5WhJV/4BQVvESWrVK4HdGNiTSYTp+heoHIu+aLZHIVkUxMZPjBGlBBWPC22I5wIbEvYinGTA737fVOcsmMG/PqBybMWhRBP4z+f/b9G9qt1J2fJ2K7EA4ccHtkklM1JRFKU+JXUC1Z0jcWkkDdyAPKWxlvVgAdCllLlFTO2k8SjFSNcNGeLRPZmjJK3PfQcFW9GUibVoZVrIMqGgmouCRKUZXFQiidxUk7EYaC7f8VG7qFTtp/lxvLGeNto7eqtR0zjBWaYSmGBiwDjINwldmRFA/wOxrq0akQjzN7Rs/ZGwZ0NE74buuPjKE4Qi9fNfSBp9dFebz/0kcR8h7omPVQ3pP1J/xw4WnOKYl9yVGU//KG2jUqUW9UJFibffo2SFS4dpWVylQ0JHjfzmOGnJcox3fCg07SXunWYos0tYEQSQvO5jJkT4CDY21XZk5JUmG72hlkwlxTvHbLie40pw9v3GVcZkgOcJtDQku1NFVYMTcrmtZCiW9phUht0nIq9oWA/evyHC/7GUZxxW8/OpKIJPYahie2joG+TeGkqoKHfmw029m5QYwO6psqG2RcZg24yWgTwd2ZdAbKFZh16KUJJHKUiQnKMRBjzBIIxP+iGsmMRh2EewLtobcZxJQQf9JtcU24fXoK5thc5Hbx1eZHRF2/m1Y/I2slmnnKwXexoveBhaB15GDqXOAz5m6FdTWEpDrns8FlpuE3jM+3Wleo0ff5Q7OCiB6qlxJEHHue1EQrm+KLxPETYmQUnhe7OWHWJqDBoXWJcNSqYXVGht2hu/44KF4wKzpFRAWrdZnJ0WDiLc0fxPG+VAd8C/IzyPODbwBsCbwL8CfBGwHFyyQi4BvBNMBwDl0sGwHOEvs//8t6BHD60hY4zBs5EdA198StG8V6x5vTpO/ANoenAqS8axRrueR5/vGe3r9kzbB2+Zvfg8ZZ2pMfbfXm8q7CfU8Y5GuW0cqILEjkztuTHHf5Aa/RNlDiAbiXiZvdCG3xZv1aiAJCDf5fl6A+5AjSX2xzIsp8/RfmnsCluSlA8DD3guvulXvlSeTXlPkhv9F6ZoBecePvCSXvxdmrH2zWb8/KffE7GvZ2kZUDrM6mDevuIN9X7qNNhh7AvOywnrhniFMWpCBJ4QeQCXyAi2Pq1IwKEChMPXKSN7/q8jN1ict1xHXPt+4/MrqFaZ8q5+N4DF7PZTD+yxtQ3F3rLKW6BCbXq9KD3k6CY2AkHN8GD6hNGR/nvYwtOcKCg/RmK+45xSrbTd3EfSkZ7r+6fZwqmenk9zxNvtgo/0Jp+eANleKiWbL5IHX5g2jdXh4d2Nxs3mTBdrxBvtv3o6oV4qNZffmfgnz8Dt1oZ+KDrYvWxGbhaCvoKeV9HML9+tqGr1ZCvkPeZ1u0x0VEN+fR5n+oTfeZ9vFl9X6z4f2L1pTzD/x8= \ No newline at end of file +7Vpbc6s2EP41ekwGgbk9GozTcxp3Ms102jwqIGMSjHyEfOuvrwTCBoQz9rGJPSedZGJ2tbqw3960MTD8+eaBosVsQiKcAl2LNsAYAV2Hmu7yD8HZlhxXM0pGTJNICu0Zz8m/uJopucskwnlDkBGSsmTRZIYky3DIGjxEKVk3xaYkbe66QDFWGM8hSlXu30nEZiXX0e09/zecxLNqZ2jJF35F4XtMyTKT+wHdGFvj8dgph+eoWku+aD5DEVnXWEYADJ8Swsqn+cbHqdBtpbZy3vjA6O7cFGfsmAk/vmPyosURxJPk95fgD99+s+7kKjnbVvrAEVePJAllMxKTDKXBnuuFS7rCYlHIiUIBBaVxaj/hkZCFFHnDjG0l8GjJCGfN2DyVozmj5H2neq4Vb0oyJsWhVUggyoYCas4JU5TnSVixx0laLcTVQLf/iIPcQ6eiX+TBCmK0aVDbOvWEaTLHDFPJVLVbqYosaYg/UKkujRjRGLMP5KxSTui7toHE7gETfhq65QIUp4glq6a5Imn18U5uN/WJJPzIuiY9VDek/Un/HDhac4nyoHLW3n74Q+0Ye1ZhVSdYmFTHCqVLXDlKy+T2NiRwXM8Shp8XqFDymgedpr3UrcMUNLcAn6SEFmsZUyfEYbizq2okI5kw3fwds3AmId455Id4rzBlePMhQnLUaSoaWpJe78OKoUnerBZSdEs7DGoDjlN1byi695/+4ow/cZzk3NbzM6Foqh7DyMT2Uapvg3hpKKCh35sNNHZuUEMDuqaKhtkXGINuMFoA8BdkXQGypc266iULpUmciQjJ1SbCmCfUlfBEN5QD8ySKigDeBWszjish+KDfFJLy+B0p6XTk2l7kdODW5UVGX7iZV0+RtcxmnpLYLpZafz4ZWkcmQ6eXZMjfDG1rAguR5PLDudJwm8Zn2q2S6jR5/lCe4KIJ1VLiyCOP85qPwhm+aDyPEHam4UmhuzNWXSIqDFpFjKtGBbMrKvQWze3/o8LPRwXnyKhQ3REvFxbOwtxRPM9b5iCwAM9RngcCG3hD4I1BMAaeDxyn4PjANUBgguEIuJwzAJ4j5AP+l48O5PShLWScEXDGYmgYiF8xi4+KPSfP30BgCEkHTgJBlHu453n88Z7dLrOn2DpcZvfg8ZZ2pMfbfXm8q6BfQMYx8gtYOdAliBwZW+LjDr+jFXoQLQ6gW6mo7F5pAy/rx1I0AArl3+WF9odcAJqLTaHIapw/xcWnsCluSlA8DD3gurut3vhWRTflPsxutK5M0StOvV3jpL15+2rH6ZrNecVPsSbj3k6yKqD1eamDejvFm2o96nTYIezLDquFa4Y4QUkmggSeE7nBF4gItn7tiAChgsQjZ2mjuz6LsVu8XHeUY659/5m3a6j2mQosvvWAxXQ61Y/sMfWNhd5yiltAQu06Per9XFBM7ESDm8BB9Qmjo/33uQ0nOFC0/Ss09x3jlNvOhZv7UAL4+d3980zBVIvX8zzxZrvwA63phzfQhodqy+aL9OEHpn1zfXhod6Nxkxem6zXizbYfXb0RD9Ub+Fcotzt86PpFnq5eQr9CuW1at4dExyX0ly+3VZ/os9zm5P5rOuW/cfbfhTKC/wA= \ No newline at end of file