网站大量收购独家精品文档,联系QQ:2885784924

(操作系统实验教师用讲义.docVIP

  1. 1、本文档共86页,可阅读全部内容。
  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环境的实验 4 实验一 读者写者问题 4 1.1实验要求 4 1.2 实验环境 4 1.3测试数据文件格式 4 1.4 试验分析 5 1.5 相关API函数说明 5 1.6简单说明: 12 1.7 参考程序 13 实验二 内存管理 22 2.1实验要求 22 2.2实验目的 22 2.3实验内容 23 2.4实验环境 23 2.5实验提示 23 2.5.1源程序提示 23 2.5.2相关API函数说明 24 第二部分 基于Linux环境的实验 30 实验一 shell 程序 30 1.1 实验目的 30 1.2 实验要求 30 1.2.1 ysh解释程序的重要特征 30 1.2.2 ysh解释程序的具体要求 31 1.3相关基础知识 34 1.3.1 shell与内核的关系 34 1.3.2 系统调用 35 1.4实验环境 44 1.5程序的实现 44 1.5.1数据结构 44 1.5.2程序结构 45 1.6实验总结 53 1.7 源程序 53 实验二:作业调度系统 70 2.1实验内容 70 2.2实验目的 70 2.3环境要求 70 2.4实验要求 70 2.4.1实验包括的程序 70 2.4.2调度策略 72 2.5实验提示 72 2.5.1重要数据结构 72 2.5.2作业调度程序的实现 73 2.5.3作业控制命令的实现 76 实验三 文件系统 77 3.1实验内容 77 3.2实验目的 77 3.3环境要求 77 3.4 实验要求 77 3.5实验提示 78 3.5.1数据结构 78 2.5.2文件操作函数的实现 79 第一部分 基于Windows环境的实验 实验一 读者写者问题 1.1实验要求 创建一个控制台进程。此进程包含n个线程。用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件(后面有介绍)的要求进行读写操作。用信号量机制分别实现读者优先和写者优先的读者-写者问题。 读者-写者问题的读写操作限制(包括读者优先和写者优先): 1)写-写互斥,即不能有两个写者同时进行写操作。 2)读-写互斥,即不能同时有一个线程在读,而另一个线程在写。 3)读-读允许,即可以有一个或多个读者在读。 读者优先的附加限制:如果一个读者申请进行读操作时已有另一个读者正在进行读操作,则该读者可直接开始读操作。 写者优先的附加限制:如果一个读者申请进行读操作时已有另一写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。 运行结果显示要求:要求在每个线程创建、发出读写操作申请、开始读写操作和结束读写操作时分别显示一行提示信息,以确定所有处理都遵守相应的读写操作限制。 1.2 实验环境 windows 2000/xp ,visual c++ 1.3测试数据文件格式 测试数据文件包括n行测试数据,分别描述创建的n个线程是读者还是写者,以及读写操作的开始时间和持续时间。每行测试数据包括四个字段,各个字段间用空格分隔。第一字段为一个正整数,表示线程序号。第二字段表示相应线程角色,R表示读者,w表示写者。第三字段为一个正数,表示读写操作的开始时间:线程创建后,延迟相应时间(单位为秒)后发出对共享资源的读写申请。第四字段为一个正数,表示读写操作的持续时间。当线程读写申请成功后,开始对共享资源的读写操作,该操作持续相应时间后结束,并释放共享资源。 下面是一个测试数据文件的例子: 1 R 3 5 2 W 4 5 3 R 5 2 4 R 6 5 5 W 5.1 3 由于牵涉格式的问题,最好在记事本中手工逐个键入数据,而不要拷贝粘贴数据, 1.4 试验分析 可以将所有读者和所有写者分别存于一个读者等待队列和一个写者等待队列中,每当读允许时,.就从读者队列中释放一个或多个读者线程进行读操作;每当写允许时,就从写者队列中释放一个写者进行写操作。 1.读者优先 读者优先指的是除非有写者在写文件,否则读者不需要等待。所以可以用一个整型变量read_count记录当前的读者数目,用于确定是否需要释放正在等待的写者线程(当read_count=0时,表明所有的读者读完,需要释放写者等待队列中的一个写者)。每一个读者开始读文件时,必须修改read_count变量。因此需要一个互斥对象mutex来实现对全局变量read_count修改时的互斥。 另外,为了实现写-写互斥,需要增加一个临界区对象write。当写者发出写请求时,必须申请临界区对象的所有权。通过这种方法,也可以实现读-写互

文档评论(0)

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

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

1亿VIP精品文档

相关文档