未分类题

阅读以下关于利用信号量机制解决进程同步与互斥方面的应用实例,回答问题1至问题3。
[说明]
在多道程序系统中,进程是并发执行的。这些进程间存在着不同的相互制约关系,主要表现为同步和互斥两个方面。信号量机制是解决进程间同步与互斥的有效方法。下面是信号量应用实例。
下图所示代码是在μC/OS-II操作系统上运行的一个应用的主函数。该函数创建了任务Task1和Task2,其中Task1实现从键盘读入一个字符的功能,Task2将该字符输出到屏幕,它们使用信号量和一个公共变量buffer来传递该字符。
主函数、Task1和Task2中所调用的函数原型说明如下:

A.创建一个信号量:OS
B.创建一个任务:INT8U
C.开始执行多任务:void
D.从键盘读入一个字符:char
E.输出一个字符至屏幕:void
F.发出一个信号量:INT8U
G.等待一个信号量:void
H.shangxueba.cn/images/2010q3/ct_csrmpdxz2009x_crmpdxfuzae_00015(200912).jpg'

【参考答案】

临界资源:一次只能给一个进程访问的资源。 临界区:进程中访问临界资源的那段代码。 访问临界资源时应遵循如下原则: (1)......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

未分类题
阅读以下程序说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】希赛教育集团公司为发展生产向社会公开招聘M个工种的工作人员,每个工种各有不同的编号(1至M)和计划招聘人数。每位应聘者需申报两个工种,并参加公司组织的考试。公司将按应聘者的成绩从高分至低分的顺序进行排队录取。公司的录取原则是:从高分到低分依次对每位应聘者先按其第一志愿录取;当不能按其第一志愿录取时,便将他的成绩扣去5分后,重新排队,并按其第二志愿考虑录取。程序为输出各工种实际招聘的应聘人员,每个工种都保留一个录取者的有序队列。录取处理循环直至招聘额满或已对全部应聘者都做了录取处理。程序中,类型STU包含有应聘者的基本信息:编号、成绩、志愿、排队成绩和录取志愿号。数组rz[]的每个元素对应一个工种,包含有计划招聘人数和已录取的人数。【程序】include<stdio.h>include<malloc.h>define M 20define PEMARK 5typedef struct stu{int no, total, z[2], sortm, zi;struct stu *next;}STU;struct rzmode{int Imt, count;STU *next;}rz[M];STU *head=NULL, *over=NULL;int allFILE *fp;char dataf[]='pp07.dat';print(STU *p){for(;p!=NULL;p=p->next)printf('%d(%d) t',p->no,p->total);}insert(STU **p, STU *u){STU *v, *q;for(q=*p;q!=NULL;v=q,(1))if(q->sortm<u->sortm)break;if(q==*p)(2);else (3);U->next=q;}main(){int zn, i, no, total, z1, z2;STU *p, *v, *q;fp=fopen(dataf, 'r');if(fp==NULL){printf('Can't open file %s. n',dataf);exit(0);}fscanf(fp, '%d',&zn);for(all=0,i=1;i<=zn;i++){fscanf(fp,'%d',&rz[i].Imt);rz[i].count=0;rz[i].next=NULL;