2011-2012学年第一学期《操作系统内核应用与实践》课程期末考试试卷.docVIP

2011-2012学年第一学期《操作系统内核应用与实践》课程期末考试试卷.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一.系统分析题17-2 1.简述所开发系统的系统功能及任务级功能设计(12) 创建2个任务product、customer product功能 对一个空缓冲区写1,表示生产者向该缓冲区放入资源 customer功能: 对一为1的缓冲区清0,表示消费者取走该缓冲区资源 列出开发以上功能的应用程序,需要调用的UC/OS-II任务管理内核函数,时间管理内核函数,任务通信管理函数及其功能。(5) OsSemPend()函数实现了P操作; OsSemPost()函数实现了V操作; Os_EVENT 变量用来定义信号量; OsSemCreate()函数用来初始化信号量; OsTaskCreate()函数用来创建任务; PC_DispStr()函数用来在界面上显示字符串; OsTimeDlyHMSM()函数用来进行延时; 二.系统设计题27-3 优选自己负责开发的一个任务(task),回答以下问题: 该任务功能及任务内部处理流程(9) product。 生成者先向空缓冲区放入产品,当缓冲区全满后生产者不能再继续放入产品。 该任务的函数代码及任务优先级(9) void PRODUCTER(void *pdata) { pdata=pdata; for(;;) { OSSemPend(empty, 0, err); OSSemPend(mutex, 0, err); PC_DispChar(14, 8, 1, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispChar(14, 10, 0, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispChar(xy[in], 13, 1, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); in=(in + 1) % N; OSTimeDly(300); OSSemPost(mutex); OSSemPost(full); OSTimeDly(200); } } 优先级:1 运行界面上显示的关于该任务周期性运行的数据(9) 三.系统运行及调试题36-3 1.你的应用程序一共包含几个任务?这些任务有怎样的制约和控制关系?怎样利用内核系统函数实现这样的制约关系?(12) 2个,生成者先向空缓冲区放入产品,然后消费者从一非空缓冲区取走产品,当缓冲区全满后生产者不能再继续放入产品,当缓冲区全空时消费者不能再从缓冲区取产品。 3个信号量:empty、full、mutex 初始化信号量: mutex = OSSemCreate(1); empty = OSSemCreate(N); full = OSSemCreate(0); 2个缓冲区指针 in = out = 0; 确定存在空缓冲区时生产者能进入临界区生产: OSSemPend(empty, 0, err); OSSemPend(mutex, 0, err); 生产者离开临界区: OSSemPost(mutex); OSSemPost(full); 确定存在非空缓冲区时消费者能进入临界区消费: OSSemPend(full, 0, err); OSSemPend(mutex, 0, err); 消费者离开临界区: OSSemPost(mutex); OSSemPost(empty); 2.分别举例说明,增加或减少修改任务的延迟时间,系统运行会发生什么变化。(12) 列出以上任务创建时的系统函数调用(12) 创建生产者进程,优先级1: OSTaskCreate(PRODUCTER, (void *)0, PRODUCTERStk[TASK_STK_SIZE - 1], 1); 创建消费者进程,优先级2: OSTaskCreate(CUSTOMER, (void *)0, CUSTOMERStk[TASK_STK_SIZE - 1], 2); 四.系统界面设计题 20-2 1.描述应用系统运行界面上,输出数据的布局设计。(10) PRODUCTER-CUSTOMER PRODUCTER : CUST

文档评论(0)

精品资源 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档