操作系统应用设计实验指导.doc
《操作系统应用设计实验指导.doc》由会员分享,可在线阅读,更多相关《操作系统应用设计实验指导.doc(29页珍藏版)》请在沃文网上搜索。
1、操作系统应用设计实验指导前 言操作系统是计算机系统的核心,操作系统课程是计算机科学与技术专业的重要必修课。本课程的目的是使学生掌握现代计算机操作系统的基本原理、基本设计方法及实现技术,具有分析现行操作系统和设计、开发实际操作系统的基本能力。操作系统应用设计是操作系统课程的重要组成部分,属于学科基础实验范畴。作为与相关教学内容配合的实践性教学环节,应在操作系统理论课教学过程中开设。操作系统是计算机科学与技术专业、软件工程等专业必修的专业基础课程,其配套实验课操作系统应用设计的作用是:理解操作系统的设计和实现思路,掌握典型算法。学生应具有高级语言编程能力、具有数据结构等基础知识。操作系统应用设计实
2、验指导共有六个实验项目。其中,实验一是处理器调度实验;实验二是银行家算法模拟;实验三是分区存储管理算法模拟;实验四是分页存储管理算法模拟;实验五是请求页式存储管理算法模拟;实验六是磁盘存储空间的分配和回收。这本操作系统应用设计实验指导书是在近几年来的教学实验基础上编写的。参考了有关操作系统实验的实验指导,在此向有关编者表示感谢,同时本指导书仅供内部学生学习使用。由于时间仓促,编者水平有限,不足之处在所难免,恳请读者批评指正。 编 者 张莉 二0一三年四月目 录实验一 处理器调度实验1实验二 银行家算法模拟5实验三 分区存储管理算法模拟8实验四 分页存储管理算法模拟12实验五 请求页式存储管理算
3、法模拟14实验六 磁盘存储空间的分配和回收16附 录22一 参考实例22二 实验报告格式42操作系统应用设计实验指导实验一 处理器调度实验实验内容:选择一个调度算法,实现处理器调度。实验目的:在采用多道程序设计的系统中,往往若干个进程同时处于就绪状态。当就绪进程个数大于处理器数时,就必须依照某种策略来决定那些进程优先占有处理器。本实习模拟在单处理器情况下的处理器调度,加深了解处理器调度的工作。实验题目:本实验有两题,可任选一题。第一题:设计一个按优先数调度算法实现处理器调度的程序。提示:(1) 假定系统有5个进程,每个进程用一个PCB来代表。PCB的格式为:进程名、指针、要求运行时间、优先数、
4、状态。进程名P1P5。指针按优先数的大小把5个进程连成队列,用指针指出下一个进程PCB的首地址。要求运行时间假设进程需要运行的单位时间数。优先数赋予进程的优先数,调度时总是选取优先数大的进程先执行。状态假设两种状态,就绪,用R表示,和结束,用E表示。初始状态都为就绪状态。如图1.1所示。进程名指针要求运行时间优先数状态图1.1 进程控制块结构(2) 每次运行之前,为每个进程任意确定它的“优先数”和“要求运行时间”。(3) 为了调度方便,把五个进程按给定的优先数从大到小连成队列。用一单元指出队首进程,用指针指出队列的连接情况。例如,当前轮到P2执行,则如下图1.2所示。 队首标志 K2 K1P1
5、 K2P2 K3P3 K4P4 K5P50K4K5K3K12312415342RRRRRPCB1PCB2PCB3PCB4PCB5图1.2 PCB队列(4) 处理器总是选队首进程运行。采用动态改变优先数的办法,进程每运行1次,优先数减1,要求运行时间减1。由于本实验是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行:优先数-1要求运行时间-1来模拟进程的一次运行。提醒注意的是:在实际的系统中,当一个进程被选中运行时,必须恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行结束。在这里省去了这些工作。(5) 进程运行一次后,若要求运行时间不等于0,则将它加入队列(按优先数大小
6、插入,且置队首标志);否则,将状态改为“结束” (E),退出队列。(6) 若就绪队列为空,结束,否则,重复上面(4)和(5)的步骤,直到所有进程都成为“结束”状态。(7) 在所设计的程序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以及运行一次后进程队列的变化。(8) 为五个进程任意确定一组“优先数”和“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。第二题:设计一个按时间片轮转法实现处理器调度的程序。提示:(1)假定系统有5个进程,每个进程用一个PCB来代表。PCB的格式为:进程名、指针、要求运行时间、已运行时间、状态。进程
7、名Q1Q5。指针按创建时间把5个进程连成队列,用指针指出下一个进程PCB的首地址。要求运行时间假设进程需要运行的单位时间数。已运行时间假设进程已运行的单位时间,初始值为0。状态假设两种状态,就绪,用R表示,和结束,用E表示。初始状态都为就绪状态。如图1.3所示。进程名指针要求运行时间已运行时间状态图1.3 进程控制块结构(2) 每次运行之前,为每个进程任意确定它的“要求运行时间”。(3) 把五个进程按顺序排成循环队列,用指针指出队列连接情况。另用一标志单元记录轮到运行的进程。例如,当前轮到Q2执行,则如下图1.4所示。标志单元 K2 K1Q1 K2Q2 K3Q3 K4Q4 K5Q5K2K3K4
8、K5K12312410000RRRRRPCB1PCB2PCB3PCB4PCB5图1.4 PCB队列(4) 处理器调度总是选择标志单元指示的进程运行。由于本实验是模拟处理器调度的功能,所以,对被选中的进程并不实际的启动运行,而是执行:已运行时间+1来模拟进程的一次运行,表示进程已经运行过一个单位的时间。请同学注意:在实际的系统中,当一个进程被选中运行时,必须置上该进程可以运行的时间片值,以及恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行满一个时间片。在这时省去了这些工作,仅用“已运行时间+1”来表示进程已经运行满一个时间片。(5) 进程运行一次后,应把该进程的进程控制块中的指针值送到
9、标志单元,以指示下一个轮到运行的进程。同时,应判断该进程的要求运行时间与已运行时间,若该进程的要求运行时间已运行时间,则表示它尚未执行结束,应待到下一轮时再运行。若该进程的要求运行时间=已运行时间,则表示它已经执行结束,应指导它的状态修改成“结束”(E)且退出队列。此时,应把该进程的进程控制块中的指针值送到前面一个进程的指针位置。(6) 若“就绪”状态的进程队列不为空,则重复上面的(4)和(5)的步骤,直到所有的进程都成为“结束”状态。(7) 在所设计的程序中应有显示或打印语句,能显示或打印每次选中进程的进程名以及运行一次后进程队列的变化。(8) 为五个进程任意确定一组“要求运行时间”,启动所
10、设计的处理器调度程序,显示或打印逐次被选中的进程名以及进程控制块的动态变化过程。实验环境:不限制编程语言及环境,建议采用C语言。实验预习要求、实验条件、方法及步骤 :1理解本实验中调度算法的说明。2根据调度算法的说明,画出相应的程序流程图。3按照程序流程图,编程并实现。思考题 :1逻辑时间片该如何实现?2如果不使用指针操作,是否也可以使用数组实现进程就绪队列的组织?实验二 银行家算法模拟实验内容:编写和调试一个简单的银行家算法程序。实验目的:银行家算法是避免死锁的一种重要方法,要求编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,理解和掌握安全序列、安全性算法,并体会和
11、了解死锁和避免死锁的具体实施方法。实验题目:1数据结构假设有M个进程N类资源,则有如下数据结构:MAXM*NM个进程对N类资源的最大需求量AVAILABLEN系统可用资源数ALLOCATIONM*NM个进程已经得到N类资源的资源量NEEDM*NM个进程还需要N类资源的资源量2银行家算法设进程I提出请求RequestN,则银行家算法按如下规则进行判断。(1)如果RequestN=NEEDI,N,则转(2);否则,出错。(2)如果RequestN=AVAILABLE,则转(3);否则,出错。(3)系统试探分配资源,修改相关数据:AVAILABLE=AVAILABLE-REQUESTALLOCATI
12、ON=ALLOCATION+REQUESTNEED=NEED-REQUEST(4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。3安全性检查(1)设置两个工作向量WORK=AVAILABLE;FINISHM=FALSE(2)从进程集合中找到一个满足下述条件的进程,FINISHi=FALSENEED=WORK如找到,执行(3);否则,执行(4)(3)设进程获得资源,可顺利执行,直至完成,从而释放资源。WORK=WORK+ALLOCATIONFINISH=TRUEGOTO2(4)如所有的进程FinishM=true,则表示安全;否则系统不安全。实验环境:不限
13、制编程语言及环境,建议采用C语言。实验预习要求、实验条件、方法及步骤 :1理解本实验中关于银行家算法的说明。2参考图2.1所示流程图编写安全性算法。Y所有finish都为true?输出安全序列NYN存在Finishi =false&Needij Needij出错返回:return(error)Requestij Availablej出错返回:(进程阻塞)return(error)Availablej = Availablej RequestijAllocationij= Allocationij + RequestijNeedij = Needij Requestij假定分配:输入初始参数(资
14、源分配及请求情况)开始 假定分配之后,系统安全吗?申请成功。输出各种数据的变化图2.2 银行家算法流程图实验三 分区存储管理算法模拟实验内容:在可变分区管理方式下采用最先适应算法实现主存分配和实现主存回收。也可选用循环首次适应算法或最佳适应算法或最坏适应算法其中一种进行替换。实验目的:一个好的计算机系统不仅要有一个足够容量的、存取速度高的、稳定可靠的主存储器,而且要能合理地分配和使用这些存储空间。当用户提出申请存储器空间时,存储管理必须根据申请者的要求,按一定的策略分析主存空间的使用情况,找出足够的空闲区域分配给申请者。当作业撤离或主动归还主存资源时,则存储管理要收回作业占用的主存空间或归还部
15、分主存空间。主存的分配和回收的实现虽与主存储器的管理方式有关的,通过本实验帮助学生理解在不同的存储管理方式下应怎样实现主存空间的分配和回收。实验题目:1. 可变分区方式是按作业需要的主存空间大小来分割分区的。当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入。随着作业的装入、撤离,主存空间被分成许多个分区,有的分区被作业占用,而有的分区是空闲的。如下图3.1所示。 图3.1主存分区分配示意图为了说明哪些区是空闲的,可以用来装入新作业,必须要有一张空闲区说明表,格式如下表3.1所示。其中,起址指出一个空闲区的主存起始地
16、址。长度指出从起始地址开始的一个连续空闲的长度。状态有两种状态,一种是“未分配”状态,指出对应的由起址指出的某个长度的区域是空闲区;另一种是“空表目”状态,表示表中对应的登记项目是空白(无效),可用来登记新的空闲区(例如,作业撤离后,它所占的区域就成了空闲区,应找一个“空表目”栏登记归还区的起址和长度且修改状态)。由于分区的个数不定,所以空闲区说明表中应有适量的状态为“空表目”的登记栏目,否则造成表格“溢出”无法登记。表3.1空闲区说明表起 址长 度状 态第一栏14 K12 K未 分 配第二栏32 K96 K未 分 配MM空 表 目空 表 目MM上述的这张说明表的登记情况是按图3.1中的例子所
17、装入的三个作业占用的主存区域后填写的。2. 当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区。有时找到的空闲区可能大于作业需要量,这时应把原来的空闲区变成两部分:一部分分给作业占用;另一部分又成为一个较小的空闲区。为了尽量减少由于分割造成的空闲区,而尽量保存高地址部分有较大的连续空闲区域,以利于大型作业的装入。为此,在空闲区说明表中,把每个空闲区按其地址顺序登记,即每个后继的空闲区其起始地址总是比前者大。为了方便查找还可使表格“紧缩”,总是让“空表目”栏集中在表格的后部。3. 采用最先适应算法(顺序分配算法)分配主存空间。按照作业的需要量,查空闲区说明表,顺序查看登
18、记栏,找到第一个能满足要求的空闲区。当空闲区大于需要量时,一部分用来装入作业,另一部分仍为空闲区登记在空闲区说明表中。由于本实验是模拟主存的分配,所以把主存区分配给作业后并不实际启动装入程序装入作业,而用输出“分配情况”来代替。最先适应分配算法如图3.2。4. 当一个作业执行结束撤离时,作业所占的区域应该归还,归还的区域如果与其它空闲区相邻,则应合成一个较大的空闲区,登记在空闲区说明表中。例如,在图3.1中列举的情况下,如果作业2撤离,归还所占主存区域时,应与上、下相邻的空闲区一起合成一个大的空闲区登记在空闲区说明表中。归还主存时的回收算法如图3.3。5. 请按最先适应算法设计主存分配和回收的
19、程序。然后按图3.1中假设主存中已装入三个作业,且形成两个空闲区,确定空闲区说明表的初值。现有一个需要主存量为6K的作业4申请装入主存;然后作业3撤离;再作业2撤离。请你为它们进行主存分配和回收,把空闲区说明表的初值以及每次分配或回收后的变化显示出来或打印出来。图3.2 最先适应分配模拟算法图3.3 主存回收算法实验环境:不限制编程语言及环境,建议采用C语言。实验预习要求、实验条件、方法及步骤 :1理解本实验的说明。2画出相应的程序流程图。3按照程序流程图,编程并实现。思考题 :1可变分区管理方式与分页管理方式有何区别?实验四 分页存储管理算法模拟实验内容:在分页式管理方式下采用位示图来表示主
20、存分配情况,实现主存空间的分配和回收。实验目的:通过本实验帮助理解在分页式存储管理方式下应怎样贮存空间的分配和回收。实验题目:1分页式存储器把主存分成大小相等的若干块,作业的信息也按块的大小分页,作业装入主存时可把作业的信息按页分散存放在主存的空闲块中,为了说明主存中哪些块已经被占用,哪些块是尚未分配的空闲块,可用一张位示图来指出。位示图可由若干存储单元来构成,其中每一位与一个物理块对应,用0/1表示对应块为空闲/已占用。2假设某系统的主存被分成大小相等的64块,则位示图可用8个字节来构成,另用一单元记录当前空闲块数。如果已有第0,1,4,5,6,9,11,13,24,31,共10个主存块被占
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 应用 设计 实验 指导
