From 5f84c9585aa58e78e1f8c0f6e144d271c1796628 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Thu, 8 Mar 2018 22:13:11 +0800 Subject: [PATCH] auto commit --- notes/计算机操作系统.md | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/notes/计算机操作系统.md b/notes/计算机操作系统.md index 8e156599..e7a540da 100644 --- a/notes/计算机操作系统.md +++ b/notes/计算机操作系统.md @@ -46,7 +46,7 @@ * [1. 读者-写者问题](#1-读者-写者问题) * [2. 哲学家进餐问题](#2-哲学家进餐问题) * [第三章 死锁](#第三章-死锁) - * [死锁的条件](#死锁的条件) + * [死锁的必要条件](#死锁的必要条件) * [死锁的处理方法](#死锁的处理方法) * [1. 鸵鸟策略](#1-鸵鸟策略) * [2. 死锁预防](#2-死锁预防) @@ -344,12 +344,12 @@ monitor ProducerConsumer procedure insert(); begin - + // ... end; procedure remove(); begin - + // ... end; end monitor; ``` @@ -371,7 +371,7 @@ monitor ProducerConsumer if count = N then wait(full); insert_item(item); count := count + 1; - if count = 1 ten signal(empty); + if count = 1 then signal(empty); end; function remove: integer; @@ -416,13 +416,13 @@ Linux 中管道是通过空文件来实现。 管道有三种: -1. 普通管道:有两个限制:一是只支持半双工通信方式,即只能单向传输;二是只能在父子进程之间使用; +1. 普通管道:有两个限制,一是只能单向传输;二是只能在父子进程之间使用; 2. 流管道:去除第一个限制,支持双向传输; 3. 命名管道:去除第二个限制,可以在不相关进程之间进行通信。 ### 2. 信号量 -信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其它进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。 +信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其它进程也访问该资源。主要作为进程间以及同一进程内不同线程之间的同步手段。 ### 3. 消息队列 @@ -434,7 +434,9 @@ Linux 中管道是通过空文件来实现。 ### 5. 共享内存 -共享内存就是映射一段能被其它进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其它 IPC 运行效率低而专门设计的。它往往与其它通信机制(如信号量)配合使用,来实现进程间的同步和通信。 +共享内存就是映射一段能被其它进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。 + +共享内存是最快的 IPC 方式,它是针对其它 IPC 运行效率低而专门设计的。它往往与其它通信机制(如信号量)配合使用,来实现进程间的同步和通信。 ### 6. 套接字 @@ -442,7 +444,7 @@ Linux 中管道是通过空文件来实现。 ## 经典同步问题 -生产者和消费者问题前面已经讨论过。 +生产者和消费者问题前面已经讨论过了。 ### 1. 读者-写者问题 @@ -506,7 +508,7 @@ void philosopher(int i) { } ``` -为了防止死锁的发生,可以加一点限制,只允许同时拿起左右两边的筷子,方法是引入一个互斥量,对拿起两个筷子的那段代码加锁。 +为了防止死锁的发生,可以加一点限制,只允许同时拿起左右两边的筷子。方法是引入一个互斥量,对拿起两个筷子的那段代码加锁。 ```c semaphore mutex = 1; @@ -529,16 +531,15 @@ void philosopher(int i) { # 第三章 死锁 -## 死锁的条件 +## 死锁的必要条件