全球旧事资料 分类
软件学院实验卡和实验报告
学号:201226010510_____303__软件实验室
课程名称实验名称和序号实验目的
姓名:
贾文强
年级专业班级:
软件120501月
4
组别_______
操作系统
生产者消费者问题
实验日期:2015年
实验课时四同组者姓名
11日
掌握基本的同步互斥算法,理解生产者消费者模型;了解wi
dows多线程的并发执行机制,线程间的同步于互斥;学习使用wi
dows中基本的同步对象,掌握相应的API。
实验环境
PII以上电脑一台,已安装Li
ux操作系统,GCC或其他C语言编译环境。
实验内容
在同一个进程地址空间内执行的两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻塞,直到新的物品被生产出来。1、数据结构设计:PCB结构:
ame进程名进程优先数进程轮转时间片进程占用的CPU时间进程到完成还要的时间进程状态(假设状态为Ready、Ru
、Fi
ish)
和原理
实验步骤
方法
prirou
dcputime
关键代码

eedtimestate
f
ex
链指针
2、算法设计时间以时间片为计量单位。
voidrou
dru
charalgwhileru
NULLru
cputimeru
cputime2ru
eedtimeru
eedtime2ru
cou
tru
cou
t1ifru
eedtime0运行完将其变为完成态,插入完成队列ru
eedtime0ru
extfi
ishfi
ishru
ru
stateFru
NULLifreadyNULLfirsti
就绪对列不空,将第一个进程投入运行elseifru
cou
tru
rou
dru
cou
t0ru
stateW将进程插入到就绪队列中等待轮转i
sert2ru
firsti
将就绪对列的第一个进程投入运行prtalg输出进程信息计数器置ifreadyNULL如就绪队列不空如果时间片到时间片轮转法
f应用循环时间片轮转算法,成功编写和运行进程调度程序测试记录实验结果与预期结果完全一致。
分析
结论
小结
通过本次实验,掌握了基本的同步互斥算法,学会使用wi
dows中基本的同步对象,掌握相应的API。
fr
好听全球资料 返回顶部