未分类题

阅读以下关于利用信号量机制解决进程同步与互斥方面的应用实例,回答问题1至问题3。
[说明]
在多道程序系统中,进程是并发执行的。这些进程间存在着不同的相互制约关系,主要表现为同步和互斥两个方面。信号量机制是解决进程间同步与互斥的有效方法。下面是信号量应用实例。
下图所示代码是在μC/OS-II操作系统上运行的一个应用的主函数。该函数创建了任务Task1和Task2,其中Task1实现从键盘读入一个字符的功能,Task2将该字符输出到屏幕,它们使用信号量和一个公共变量buffer来传递该字符。
主函数、Task1和Task2中所调用的函数原型说明如下:
a.创建一个信号量:OS EVENT*OSSemCreate(INT16Uvalue);
b.创建一个任务:INT8U OSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK *ptos,INT8U prio);
c.开始执行多任务:void OSStart(void);
d.从键盘读入一个字符:char scanc();
e.输出一个字符至屏幕:void printc(char ch);
f.发出一个信号量:INT8U OSSemPost(OS EVENT*pevent);
g.等待一个信号量:void OSSemPend(OS_EVENT*pevent,INT16U timeout,INT8U *err)

请简述什么是临界资源?什么是临界区?访问临界资源应遵循哪些原则?

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)......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)