专业课程设计I题目B090402.docVIP

  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文档。上传文档
查看更多
专业课程设计I题目B090402

专业课程设计I 学生班级:B090402 任课教师:黄海平 专业课程:《操作系统》、《微机原理与接口技术(含汇编语言)》、《Java语言程序设计》、《编译原理》、《计算机图形学》、《数据结构与算法》 课题考察形式:第一题为必做题+(在二、三、四、五、六、七题中)选做1题(选做规则:每题选择人数不能多于8人,不能少于4人) 上机时间地点:第9-10周(2012.4.16-2012.4.26),每周一——周四下午13:45—16:10,教五楼501室,不得缺席 一、必做题: 1、课题名称 教师对学生的项目评分——进程的同步与互斥 2、课题描述 在一个班上有S个学生。每个学生都要做一个项目,每一个项目由K个老师一起评分。总共有M个老师。每个老师最多给N个项目评分。其中,S*K=M*N。 在项目结束后,老师们提供T分钟用来检查学生们的项目。检查每一个学生的项目需要用时D分钟。其中,TD。每一个学生的项目由K个老师共同来检查。在T分钟的时间段内,学生可以在任何时间进入教室(random),除了在最后的D分钟内。所有的老师一直保持工作状态直到他检查完N个项目或者是T分钟过去后。T分钟过去后,所有的老师和同学都必须离开教室。另外,在T分钟结束前的D分钟内(即在最后的D分钟内),如果有任何老师或者是学生都处在没有任务的状态下,都必须离开教室,因为已经没有时间让他完成任务了(因为一个项目检查的时间是整整D分钟)。 该课题主要考察操作系统中PV操作知识点,涉及到多进程管理和死锁的相关知识。 3、具体过程 当一个学生进入教室后,他立即开始找K个没有任务的老师(一次找一个老师,假如没有空闲的老师,则等到有老师为止),找齐K个老师之后给老师检查,然后离开教室。刚开始每一个老师都是处于空闲状态直到他被学生找到,被学生找到后只能等待,直到学生找齐K个老师(在等待学生找其他老师的时间里,他是不能接受其他同学检查作业的请求的),当学生找齐K个老师后,老师们执行完检查任务,然后重新变成空闲状态。每个老师在总共检查了N个学生的作业后,离开教室。 注意,并不保证所有的学生都在T分钟的时间段内完成了检查,还要注意不能发生死锁问题。 4、基本要求 用一个程序来模拟上面描述的作业检查过程。每一个学生和每一个老师应该用不同的线程来完成。可以选用C、C++和Java作为开发语言,但是考虑到专业课程设计I的实验大纲,请尽可能使用Java语言。 5、提高要求 (1) 考虑到跨平台的特性,请尽量使用posix线程标准(采用该标准有额外的加分); (2) 实现良好的图形用户界面; (3) 在程序演示过程中能清晰的展示多个学生线程和多个老师线程的同步和互斥流程。 6、作答提示 (1) 学生线程和老师线程 一个学生线程执行下面的步骤: (1) 选择一个进入的时间(random()%(T-D))minutes ; (2) 进入教室; (3) 选择K个空闲的老师,若找不齐,则等待; (4) 找齐后,做D分钟的检查; (5) 检查完毕离开教室。 一个老师线程执行下面的步骤: (1) 在教室中空闲; (2) 直到被一个学生选择后等待(所有K个老师聚集); (3) 等待结束项目检查开始; (4) 做D分钟的项目检查; (1)—(4)步骤重复N次…… (5) N次检查完毕或者T分钟时间到,离开教室。 (2) 注意事项 (1) 在剩余时间小于D时,一个已创建的学生线程只能执行第(5)步,不能再创建新的学生线程; (2) 在剩余时间小于D时,一个老师进程只能在执行(3)—(4)步或者直接执行第(5)步; (3) 对于所有合理的S, M, K, N, T, D数值(这些数必须都是正整数并且满足条件:S*K=M*N and TD),你的程序都能够运行成功; (4) 你的程序对所有的时间安排策略都必须运行成功。例如不管线程的相对速度,例如要把握好sleep的毫秒数; (5) 在每一个线程的生命周期内,每一步都要有一个合理的说明信息,来表明这个线程中包括哪个老师,哪个学生,进行到什么程度了; (6) 要特别注意防范死锁问题的发生。 以上六点都是最后评分的要点。 7、测试用例(注:仅供参考,不作为程序实现的标准格式) 说明信息的格式提供如下: S=5 M=3 K=2 N=3 T=150 D=20 0 student 0: starts panicking 0 student 1: starts panicking 0 student 2: starts panicking 0 student 3: starts panicking 0 student 4: starts panicking 0 marker 0: enters

文档评论(0)

zhanci3731 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档