问题 问答题

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

图5-1 应用的主函数

【问题1】(5 分)请简述什么是临界资源?什么是临界区?访问临界资源应遵循哪些原则?

答案

参考答案:临界资源:是一次仅允许一个进程使用的共享资源。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。临界区(Critical Section):每个进程中访问临界资源的那段程序。每次只准许一个进程进入临界区,进入后不允许其他进程进入。

单项选择题
问答题