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

一、课堂笔记

第二章 、进程管理


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. 模拟交替执行过程,检查控制是否正确。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容