早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->
请根据本题要求完善任务Task1和任务Task2的程序代码,填补图中的空缺。
题目
请根据本题要求完善任务Task1和任务Task2的程序代码,填补图中的空缺。
参考答案
正确答案:(1)OSSemPend(emptySemO&err)
(2)Buffer=readc
(3)ret=OSSemPost(fullSem)
(4)OSSemPend(fullSemO&err)
(5)ret=OSSemPost(emptySem)
(6)Printc(wntec)
(1)OSSemPend(emptySem,O,&err) (2)Buffer=readc (3)ret=OSSemPost(fullSem) (4)OSSemPend(fullSem,O,&err) (5)ret=OSSemPost(emptySem) (6)Printc(wntec) 解析:本问题是信号量应用实例。
μC/OS-II操作系统提供了操作信号量的若干系统调用,任务Task1为了实现从键盘读入一个字符并写到buffer的功能,就必须在读完字符后调用OSSemPend()和OSSemPost()对写buffer缓冲的动作加锁和解锁。
Task2为了完成将该字符输出到屏幕,也必须在读buffer缓冲的动作时加锁和解锁。这样就避免任务Task1和Task2同时操作buffer缓冲的资源冲突。
因此,任务Task1的代码如下:
voidTask1(void*#pdata)
{
INT8U readc;
INT8U err;
INT8U ret;
while(1){
readc=scanc();
OSSemPend(emptySem,0,&err);
Buffer=readc;
ret=OSSemPost(fullSem);
}
}
任务Task2的代码如下:
voidTask2(void*#pdata)
{
INT8U writec;
INT8U err;
INT8U ret;
while(1){
OSSemPend(fullSem,0,&err);
writec=buffer;
ret=OSSemPost(emptySem);
Printc(writec);
}
}
(1)OSSemPend(emptySem,O,&err) (2)Buffer=readc (3)ret=OSSemPost(fullSem) (4)OSSemPend(fullSem,O,&err) (5)ret=OSSemPost(emptySem) (6)Printc(wntec) 解析:本问题是信号量应用实例。
μC/OS-II操作系统提供了操作信号量的若干系统调用,任务Task1为了实现从键盘读入一个字符并写到buffer的功能,就必须在读完字符后调用OSSemPend()和OSSemPost()对写buffer缓冲的动作加锁和解锁。
Task2为了完成将该字符输出到屏幕,也必须在读buffer缓冲的动作时加锁和解锁。这样就避免任务Task1和Task2同时操作buffer缓冲的资源冲突。
因此,任务Task1的代码如下:
voidTask1(void*#pdata)
{
INT8U readc;
INT8U err;
INT8U ret;
while(1){
readc=scanc();
OSSemPend(emptySem,0,&err);
Buffer=readc;
ret=OSSemPost(fullSem);
}
}
任务Task2的代码如下:
voidTask2(void*#pdata)
{
INT8U writec;
INT8U err;
INT8U ret;
while(1){
OSSemPend(fullSem,0,&err);
writec=buffer;
ret=OSSemPost(emptySem);
Printc(writec);
}
}
看了请根据本题要求完善任务Task...的网友还看了以下:
高等代数令S是一些n阶方阵组成的集合,关于任意A,B∈S,AB∈S,且(AB)的3次方=BA.证明 数学 2020-04-26 …
55 .根据《标准施工招标文件》,关于缺陷责任期内缺陷A .发包人发现已接收使用的工程存在新的缺陷的 建筑工程类考试 2020-06-07 …
设S为实数集R的非空子集,若对任意x,y∈S,都有x+y,x-y,xy∈S,则称S为封闭集,下列命 数学 2020-07-29 …
这个是大学选修数学的思维方式与创新练习题,求大神解答,在线等!!!请标号答案序号,多谢!!!(一) 其他 2020-08-02 …
一个圆环,单位长度上带电量为Q,半径为R,现在圆环上有一个长度为a的缺口(a不是远小于R),求圆心处 物理 2020-11-04 …
设S是整数集z的非空子集,如果任意a.b属于S,有axb属于S,则称S关于数的乘法是封闭的,若T,V 数学 2020-11-06 …
急用我在备课这题难住了步设数集S={a,b,c,d}满足下列两个条件:(1)任意x,y∈S,xy∈S 数学 2020-11-28 …
设S为复数集C的非空子集,若对任意x,y∈S,都有x+y,x-y,xy∈S,则称S为封闭集.下列命题 数学 2020-12-07 …
(2010•四川)设S为复数集C的非空子集.若对任意x,y∈S,都有x+y,x-y,xy∈S,则称S 其他 2020-12-07 …
设S为实数集R的非空子集.若对任意x,y∈S,都有x+y,x-y,xy∈S,则称S为封闭集,下列说法 数学 2020-12-27 …