auto commit
This commit is contained in:
parent
4091a3aa54
commit
948b8b8a59
|
@ -259,7 +259,7 @@ shortest remaining time next(SRTN)。
|
||||||
|
|
||||||
### 3. 信号量
|
### 3. 信号量
|
||||||
|
|
||||||
**信号量(Samaphore)** 是一个整型变量,可以对其执行 down 和 up 操作,也就是常见的 P 和 V 操作。
|
**信号量(Semaphore)** 是一个整型变量,可以对其执行 down 和 up 操作,也就是常见的 P 和 V 操作。
|
||||||
|
|
||||||
- **down** : 如果信号量大于 0 ,执行 -1 操作;如果信号量等于 0,将进程睡眠,等待信号量大于 0;
|
- **down** : 如果信号量大于 0 ,执行 -1 操作;如果信号量等于 0,将进程睡眠,等待信号量大于 0;
|
||||||
- **up**:对信号量执行 +1 操作,并且唤醒睡眠的进程,让进程完成 down 操作。
|
- **up**:对信号量执行 +1 操作,并且唤醒睡眠的进程,让进程完成 down 操作。
|
||||||
|
@ -269,7 +269,7 @@ down 和 up 操作需要被设计成原语,不可分割,通常的做法是
|
||||||
如果信号量的取值只能为 0 或者 1,那么就成为了**互斥量(Mutex)**,0 表示临界区已经加锁,1 表示临界区解锁。
|
如果信号量的取值只能为 0 或者 1,那么就成为了**互斥量(Mutex)**,0 表示临界区已经加锁,1 表示临界区解锁。
|
||||||
|
|
||||||
```c
|
```c
|
||||||
typedef int samaphore;
|
typedef int semaphore ;
|
||||||
samaphore mutex = 1;
|
samaphore mutex = 1;
|
||||||
void P1() {
|
void P1() {
|
||||||
down(mutex);
|
down(mutex);
|
||||||
|
@ -292,10 +292,10 @@ void P2() {
|
||||||
|
|
||||||
```c
|
```c
|
||||||
#define N 100
|
#define N 100
|
||||||
typedef int samaphore;
|
typedef int semaphore ;
|
||||||
samaphore mutex = 1;
|
semaphore mutex = 1;
|
||||||
samaphore empty = N;
|
semaphore empty = N;
|
||||||
samaphore full = 0;
|
semaphore full = 0;
|
||||||
|
|
||||||
void producer() {
|
void producer() {
|
||||||
while(TRUE){
|
while(TRUE){
|
||||||
|
|
|
@ -197,6 +197,8 @@ public class Music {
|
||||||
|
|
||||||
## 2. 时序图
|
## 2. 时序图
|
||||||
|
|
||||||
|
http://www.cnblogs.com/wolf-sun/p/UML-Sequence-diagram.html
|
||||||
|
|
||||||
**2.1 定义**
|
**2.1 定义**
|
||||||
|
|
||||||
时序图描述了对象之间传递消息的时间顺序,它用来表示用例的行为顺序。它的主要作用是通过对象间的交互来描述用例(注意是对象),从而寻找类的操作。
|
时序图描述了对象之间传递消息的时间顺序,它用来表示用例的行为顺序。它的主要作用是通过对象间的交互来描述用例(注意是对象),从而寻找类的操作。
|
||||||
|
|
Loading…
Reference in New Issue
Block a user