- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
山西大学软件专业课程实验进程管理
山西大学软件学院专业课程实验
专业:软件工程 班级:软工1410 班 姓名:刘 涛 学号:1462141032
课程名称 计算机操作系统 实验室名称 计算机专业机房2
实验名称 进程同步 实验日期 2016.5.11/2016.5.16
实验学时 4 指导教师 贾春花
1.理解进程同步和互斥的基本原理
实验目的
2.理解信号量机制
运用信号量进制,设计程序解决经典的进程同步问题:生产者-消费者问题、哲学
实验要求
家进程问题、读者-写者问题、吃水果问题和售票问题。(五选一)
1.进程同步问题描述:
生产者-消费者问题:生产者每次生产一件产品。消费者每次消费一件产品。一个
缓冲池 (有N 个循环缓冲区)。每次只能有一个进程访问缓冲池;如果缓冲池满,
生产者暂停生产。如果缓冲池没有产品,消费者暂停消费。
2.基本原理:
进程同步和互斥
实验内容
Wait(s)和Signal(s)操作
信号量
3.程序设计过程:
1实验结果
。
结果分析
心得与改进
实验成绩
附:实验代码
#includestdio.h
#includestring.h
#includemalloc.h
#includestdlib.h
#includectype.h
#includelimits.h
#includeprocess.h
#includemath.h
#defineBUF 10
#defineMAX 20
typedef structPCB{
charname[10];
char state[10];
charreason[10];
intbreakp;
structPCB *next
}PCB,*link;
int s1,s2;
linkp1;
link c1;
char str[MAX];
charbuffer[BUF];
int length;
int sp 0;//string 指针
int in 0;
int out 0;
chartemp;
charrec_p[MAX];
intrp1 0;
charrec_c[MAX];
intrp2 0;
linkready;
linkb_s1;
linkb_s2;
intpc;
int count;//字符计数器
int con_cnt;//消费计数器
/*************************函数声明*********************/
voidinit();
voidP(int s);
voidV (int s);
voidblock(int s);
voidwakeup(int s);
voidprint();
void control();
voidprocessor();
/*******************************************************/
voidinit(){
s1 BUF;
s2 0;
p1 (link)malloc(sizeof(PCB));
strcpy(p1-name,Producer);
strcpy(p1-state,Ready);
strcpy(p1-reason,Null);
p1-breakp 0;
p1-next NULL;
文档评论(0)