《操作系统原理》课程设计任务书.docxVIP

《操作系统原理》课程设计任务书.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《操作系统原理》课程设计任务书 《操作系统原理》课程设计任务书 读者-写者问题的模拟实现 一、 设计目的 通过实现经典的读者写者问题,巩固对进程、线程及其同步机制的学习效果,加深对相关进程、线程、同步/互斥等基本概念的理解,并学习如何将基本原理和实际设计有机的结合。 本次实验也可以使得学生在程序设计及软件开发的过程方面得到锻炼。 二、 设计要求 在Windows 2000/XP环境下,使用多线程和信号量机制实现经典的读者/写者问题,用一个线程代表一个读者或一个写者进程。每个线程按相应测试数据文件或者动态随机模拟的要求,进行读写操作。请用信号量机制分别实现读者优先和写者优先的读者-写者问题。 具体的开发语言可以根据学生自己的实际情况选择,可以VC、C#、Java等,任务数不做规定,希望学生能够尽量发挥自己的专长,给自己多点追求,尽量采用图形用户界面,尽量让界面直观、生动。 读者-写者问题的读写操作限制: (1)写-写互斥,即不能有两个写者同时进行写操作 (2)读-写互斥,即不能同时有一个读者在读,同时却有一个写者在写 (3)读-读允许,即可以有二个以上的读者同时读 ? 读者优先的附加限制:如果一个读者申请进行读操作时已有另一读者正在进行读操作,则该读者可直接开始读操作。 ? 写者优先的附加限制:如果一个读者申请进行读操作时已有另一写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。 运行结果显示要求:要求在每个线程创建、发出读写操作申请、开始读写操作和结束读写操作时分别显示一行提示信息,以确信所有处理都遵守相应的读写操作限制。课程设计可以用控制台程序来实现,只要能够有效展示读者/写者进展是按照指定的要求进行就可以,但如果能够以图形用户界面方式来动态展示模拟的情况,则评分时给予高的评分等级。 ? 测试数据文件格式 测试数据文件包括n 行测试数据,分别描述创建的n 个线程是读者还是写者,以及读写操作的开始时间和持续时间。每行测试数据包括四个字段,各字段间用空格分隔。第一字段为一个正整数,表示线程序号。第二字段表示相应线程角色,R 表示读者是,W 表示写者。第三字段为一个正数,表示读写操作的开始时间。线程创建后,延时相应时间(单位为秒)后发出对共享资源的读写申请。第四字段为一个正数,表示读写操作的持续时间。当线程读写申请成功后,开始对共享资源的读写操作,该操作持续相应时间后结束,并释放共享资源。下面是一个测试数据文件的例子: 1 r 3 5 2 w 4 5 3 r 5 2 4 r 6 5 5 w 3 3 ? 相关API函数(具体函数的说明可以通过Internet查阅) ? CreateThread()在调用进程的地址空间上创建一个线程 ? ExitThread()用于结束当前线程 ? Sleep()可在指定的时间内挂起当前线程 ? CreateMutex()创建一个互斥对象,返回对象句柄 ? OpenMutex()打开并返回一个已存在的互斥对象句柄,用于后续访问 ? ReleaseMutex()释放对互斥对象的占用,使之成为可用 ? WaitForSingleObject()可在指定的时间内等待指定对象为可用状态 ? InitializeCriticalSection()初始化临界区对象 ? EnterCriticalSection()等待指定临界区对象的所有权 ? LeaveCriticalSection()释放指定临界区对象的所有权 ? CreateSemaphore()用于创建信号量,根据参数的不同可以利用它实现互斥和同步。 ? ReleaseSemaphore()用于释放信号量,使用后相应的信号量加1 三、 设计时间安排 17周 上午 下午 晚上 周一 周二 4教 周三 周四 4教 周五 4教 周六 4教 周日 4教 18周 周一 周二 4教 周三 4教 周四 周五 4教 周六 周日 上午 4教(机) 下午 晚上 四、 设计考核 4教 1. 平时要求学生在无特殊情况下,要按照安排准时进入设计场所,按照要求进行课程设计。 2. 考核成绩:平时30+面试50+报告20 课程设计完成较快的同学在第一周完就可以开始提出答辩要求,由指导老师给予一次评审面试,通过则可后面不用考勤,自行完成报告即可。开始答辩要求相对较为严格,一人只能一次提出提前答辩要求。如果到最后一次课程设计安排时间,则指导老师可以随机点人考核。 3. 报告内容: ? 要求与内容 ?

文档评论(0)

软件开发 + 关注
官方认证
服务提供商

十余年的软件行业耕耘,可承接各类需求

认证主体深圳鼎云文化有限公司
IP属地广东
统一社会信用代码/组织机构代码
91440300MA5G24KH9F

1亿VIP精品文档

相关文档