操作系统第二章课堂记录及心得体会

2018-09-25  本文已影响0人  Xue先生的猫

一、课堂笔记

第二章 、进程管理


2-1 进程与PCB

2.1进程的基本概念

要点

1.分析程序执行顺序、以及并发的特征

2.进程的概念、特征与状态

3.进程控制块及其组织

程序顺序执行时的特征

进程

经典同步问题

1. 生产者—消费者问题:

多个生产者和消费者对n个缓 冲区的使用。 

1. 无论生产者、消费者使用缓冲池时应保证 互斥使用(互斥信号量mutex )

2. 生产者和消费者间交叉有序:

 ⚫ 有序的控制最根源在产品数量上。

 ⚫ 设置两个信号量: 分别针对生产者、消费者设置不同 的信号量,empty和full分别表示缓冲 池中空缓冲池和满缓冲池(即产品)的 数量。

分析:互斥信号量mutex用来保证对缓冲池的互斥使用,即在放一个产品的同时不能同时去拿。 empty和full用来控制 “空”和“产品”。初始时空为n,产品为0,当生产者生产一个产品后空-1,产品+1;这就可以用记录型信号量来控制。

buffer: array [ 0, …, n-1] of item; in, out: integer :=0, 0;

Var mutex, empty, full: semaphore :=1, n, 0;

生产者

repeat … produce an item in nexp; …

buffer(in):=nexp; in:=(in+1) mod n;

until  false;

wait(mutex);

signal(mutex);

wait(empty);

signal(full);

消费者 :

 repeat

nextc:=buffer(out); out:=(out+1) mod n;

consume the item in nexc;                

wait(mutex);

signal(mutex);

wait(full);

signal(empty);

 until  false; 

1. 每个程序中用于实现互斥的wait(mutex)和 signal(mutex)必须成对地出现。

 2. 控制顺序的信号量empty和full的wait和 signal操作,成对地出现在不同的进程中。

 3. 在每个程序中的多个wait操作顺序不能颠倒。 且应先执行对资源信号量的wait操作,再执行 对互斥信号量的wait操作,否则可能引起进程 死锁。

 4. 模拟交替执行过程,检查控制是否正确。

上一篇 下一篇

猜你喜欢

热点阅读