《操作系统》实验题目.docx
《《操作系统》实验题目.docx》由会员分享,可在线阅读,更多相关《《操作系统》实验题目.docx(12页珍藏版)》请在冰豆网上搜索。
《操作系统》实验题目
引言
操作系统是计算机专业一门重要的专业理论课程,了解和学握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。
操作系统实验是操作系统课程的一个重要组成部分,通过试验环节的锻炼使同学们不仅能够对以前的所学过的基础知识加以巩固,同时能够通过上机实验,对操作系统的抽象理论知识加以理解,最终达到融会贯通的目的,因此,实验环节是同学们理解、掌握操作系统基本理论的一个重要环节。
本实验指导书,根据教材中的重点内容设定了相应的实验题目,由于实验课程的学时有限,我们规定了必做题目和选做题目,其中必做题目必须在规定的上机学时中完成,必须有相应的预习报告和实验报告。
选做题目是针对有能力或感兴趣的同学利用课余时间或上机学时的剩余时间完成。
实验题目一:
模拟进程创建、终止、阻塞、唤醒原语
一、题目类型:
必做题目。
二、实验目的:
通过设计并调试创建、终止、阻塞、唤醒原语功能,有助于对操作系统中进程控制功能的理解,掌握操作系统模块的设计方法和工作原理。
三、实验环境:
1、硬件:
PC机及其兼容机。
2、软件:
WindowsOS,MS-DOSOS,TurboC或C++、VC++等。
四、实验内容:
1、设计创建、终止、阻塞、唤醒原语功能函数。
2、设计主函数,采用菜单结构(参见后面给岀的流程图)。
3、设计“显示队列”函数,目的能将就绪、阻塞队列中的进程信息显示在屏幕上,以供随时查看各队列中进程的变化情况。
五、实验要求:
1、进程PCB中应包含以下内容:
其中:
进程名用P1,P2标识。
优先级及运行时间:
为实验题目二做准备。
状态为:
就绪、运行、阻塞,三种基本状态。
指针:
指向下一个PCB。
2、系统总体结构:
退出
创建
阻塞
唤醒
终止
显示
「结束]
六、各功能简要说明:
1、创建:
在本实验中,该功能仅实现建立PCB,初始化PCB,并将该PCB放入就绪队列中。
2、阻塞:
在本实验中,实现的功能为,根据用户输入的进程名称在就绪队列中查找该进程,若该进程存在且在就绪队列中,则修改该进程PCB的状态,并将该进程从就绪队列转入阻塞队列;若该进程存在且已在阻塞队列中,则给出相应的提示信息:
若该进程不存在,也需要给出相应的提示信息。
注意:
若就绪队列为空,则不能执行阻塞功能。
3、唤醒:
功能类似阻塞功能,注意:
若阻塞队列为空,则不能执行唤醒功能。
4、终止:
根据用户输入要结束的进程名称,从就绪队列或阻塞队列中找到相应的进程PCB,并将该PCB从相应队列中删除。
若该进程不存在,需要给出提示。
若就绪队列与阻塞队列均为空,则不能执行该功能。
5、显示:
将就绪队列与阻塞队列中的进程列表显示出来。
七、其它注意事项:
1、就绪队列与阻塞队列中不能存在同名进程,且总数最多为10个进程。
2、系统应有出错处理,如:
功能选择不在0----5之间,应给出相应的提示,并重新选择功能。
3、界面应友好、美观,在任何情况下,都应有相应的提示信息。
例:
创建进程时,屏幕上应提示用户输入什么信息:
进程名:
优先级:
运行时间:
4、完成时间:
三周(6学时)。
5、实验报告要求:
第一页要求用专用的实验报告纸,其它可用8开的白纸。
报告内容包扌舌:
(1)实验题目:
(2)实验目的:
(3)实验环境:
(4)实验内容:
(5)算法流程图:
(6)程序清单:
(7)程序中使用的数据结构及符号说明:
(8)调试程序时出现问题说明及解决的方法:
实验题目二:
模拟进程调度功能
一、题目类型:
必做题目。
二、实验目的:
通过本实验,进一步掌握进程调度的功能和实现原理。
三、实验环境:
同实验一。
四、实验内容:
1、设计进程调度功能,至少模拟两种以上调度算法。
女口:
优先级调度算法、时间片调度算法等。
2、进程调度功能作为一个函数scheduler,加入到实验题目一中。
3、进程调度程序从就绪队列中挑选进程,若队列为空,应显示“无就绪进程无法调度”的提示信息。
4、若选上一个进程,以显示:
进程名、状态、时间片、优先级等信息表示一个进程被执行。
若运行完,应删除相应PCBo
五、实验要求:
1、在实验题目一中的主菜单中加入一个菜单项:
6调度,选择该菜单项后,系统进入进程调度。
1、返回主菜单:
当用户选择该项功能时,系统退出进程调度功能,返回到实验题目一中的主菜单。
2、优先级调度:
选择该功能选项时,系统将从就绪队列中选择优先级最高的进程,使该进程处于执行状态(将进程PCB的内容显示在屏幕上,显示完成后,该进程结束,即撤销该进程的PCB)。
3、时间片调度:
每选择一次该功能,将就绪队列中所有进程的内容显示在屏幕上,并将每个执行进程的执行时间减去一个时间片,若某进程的剩余时间小于等于0,则表明该进程运行结束,撤销该进程的PCBo
七、其它注意事项:
1、设计界面要美观、友好。
2、若显示信息较多时,应考虑分屏显示。
3、完成时间:
二周内。
4、时间充裕的同学,可参照下面的思想,对实验题目一、二进行修改:
(1)为系统选定某种进程调度算法,选定后,系统将按照该调度算法进行进程的调度。
(2)创建进程:
1当创建第一个进程时,该进程立即由就绪转入执行状态,作为运行的进程。
2若采用优先级调度算法,则考虑在创建新进程或唤醒某进程后,是否会引起重新调度。
(3)阻塞进程:
只能阻塞当前正在执行的进程,阻塞后,需要按照调度算法,选择新的执行进程。
(4)唤醒进程:
将阻塞队列中的某个进程唤醒转入就绪队列,注意,唤醒进程插入就绪队列后,是否会引起重新调度。
(5)终止进程:
因为本实验中无法实现运行进程的自行终止,必须通过该功能实现进程的结束,因此,在设计系统时,要考虑,若终止的是执行进程,则会引起进程的重新调度。
若终止的不是执行进程,则不会引起重新调度。
(6)以上内容仅供同学们参考,有兴趣的同学可参照上面的基本思想及书上介绍的进程调度部分、进程基本状态之间的转换部分内容来完善该题目的设计。
八、实验报告要求:
同实验一。
实验题目三:
模拟动态分区首次适应分配和回收算法
一、题目类型:
必做题目。
二、实验目的:
通过本实验,可加深理解动态分区分配、回收程序的功能和具体实现,特别是对回收分区的合并的理解。
三、实验环境:
同实验一。
四、实验内容:
1、设计动态分区首次适应分配、回收算法。
2、设计“未分配区说明表”,格式为:
序号
始址
长度
状态
1
60k
200
1
0
3、设计“已分配区说明表”,格式为:
作业名
始址
长度
状态
0
0
4、设计显示程序,将“未分配区说明表”和“已分配区说明表”的内容,显示在屏幕上。
5、初始分配从一个空闲区分配起,回收时要合并空区。
五、实验要求:
1、系统要求分配一个分区时,应输入:
作业名、作业长度。
2、回收一个分区时,应输入:
回收的作业名。
回收的分区请注意是否需要进行合并。
3、main函数的结构:
五、各功能简要说明:
1、分配功能:
选择该功能后,首先输入需要分配空间的作业名及所需空间的人小。
然后,按照首次适用算法从空闲分区表中找到一个合适的分区,若找到,则划分相应的空闲分区给该作业(修改“未分配区说明表”和''已分配区说明表”中的内容):
若没有找到,需要给出相应的提示信息。
2、回收算法:
选择该功能后,首先输入需要回收的作业的名称,然后,系统按照该名称从“已分配区说明表”中找到该作业对应的表项,若找到,则回收该分区(修改“未分配区说明表”和“已分配区说明表”中的内容),要注意空闲分区的合并与空闲分区表需要按地址有序调整;若没有找到,则给出相应的提示信息。
3、显示分区表:
将两个分区表的内容显示在屏幕上,以便随时查看程序的运行情况。
六、其它注意事项:
1、“未分配区说明表”的初始化是指:
将初始空闲分区的信息作为该表的第一个表项,且状态为1,其余空闲表项的状态为0。
2、分配时若剩余的碎片太小,则该小碎片不要作为空闲分区存在。
3、若无空闲分区满足一个作业的需求,但分散空闲分区的合并后能够满足该作业,考虑将适当的空闲分区合并。
4、“已分配区说明表”的初始化是指:
将该表中每个表项的状态置为0。
5、显示分区表:
只是将状态为1的表项显示出来。
6、完成时间:
两周内。
七、实验报告要求同实验一。
实验题目四:
模拟请求分页管理中地址转换和缺页中断处理
一、题目类型:
必做题目。
二、实验目的:
了解内存请求分页管理中地址转换过程与先进先出置换算法和缺页中断处理过程。
三、实验环境:
同实验一。
四、实验内容:
1、在页式管理中,地址转换是由硬件完成的,实验中设计程序模拟地址转换过程。
2、设计页表格式为:
页号
存在标志
主存块号
修改标志
在磁盘上块号
3、设内存1块二1024B,现有一个共8页的作业,其副本已存在磁盘上,设第0页至第2页已装入主存,其余5页都不在内存。
将页表进行初始化处理。
4、假设每个作业只分配3块内存,按先进先出置换算法淘汰。
用“页面队列”表示淘汰的顺序。
页号
◄指向最先调入的页
1
2
页面队列
5、设计缺页中断处理程序。
当对读入的逻辑地址,划分为页号、页内地址后,通过页表发现访问的页不在内存,转入“缺页中断处理”程序去处理。
2•采用“先进先出”页面置换算法进行缺页中断处理。
六、其它注意事项:
1、输入的逻辑地址用十进制表示,但不超过7*1024・1(因页表设了0-一7个表目)。
2、可以尝试使用其它页面置换算法完成该题目。
3、完成时间:
二周内。
七、实验报告要求:
同实验一。
实验题目五:
模拟使用银行家算法判断系统的状态
一、题目类型:
选作题目
二、实验目的:
银行家算法是操作系统中避免死锁的算法,本实验通过对银行家算法的模拟,加强学生对该算法的理解与应用。
三、实验环境:
同实验一。
四、实验内容:
1、建立TO时刻的资源分配表,初始化。
2、设计银行家算法,输入一个进程的资源请求,按银行家算法步骤进行检查。
3、设计安全性算法,检查某时系统是否安全。
4、设计显示函数,显示资源分配表,安全分配序列。
五、实验要求:
1、TO时刻的资源分配表由进程数组,Max,Allocation,Need,Available5个数组构成。
2、系统总体结构。
六、各功能简要说明:
1、资源申请:
读入一个进程申请,按银行家算法,安全算法进行试分配。
2、显示资源分配表:
分屏显示资源分配表某时刻状态。
3、退出:
退出系统
七、其它注意事项:
1、设计界面要美观,友好
2、显示资源分配表,可分屏显示
3、完成时间:
二周内(4学时)
八、实验报告要求:
同实验一。
实验题目六:
模拟外存的分配与回收算法
一、题目类型:
选做题目。
二、实验目的:
了解空闲盘块的组织方法,对空闲盘块的分配与回收,已分配盘块的组织方法。
三、实验环境:
同实验题目一。
四、实验内容:
1、首先初始化系统,初始化的内容包拾:
(1)空闲盘块的组织方式(重点考虑:
位示图法、成组链接法)
(2)文件的物理结构(重点考虑:
显示链接法、混合索引法)
(3)一个盘块的大小。
(4)根据系统的当前情况,对位示图或空闲盘块栈进行初始化。
(假定系统共64个盘块,空闲盘块号栈的长度为10)
2、根据初始化后的信息,为某文件分配相应的盘块,并将分配给该文件的盘块按选定的组织方式组织起来,并将相应的信息记录到FCB中。
3、当某文件被删除的时候,按文件名找到该文件的FCB,回收分配给该文件的盘块,并将回收的盘块按初始化设定的方式组织起来。
五、实验要求:
1、系统流程图:
2、若外存上没有文件时,功能2应不能使用。
3、分配外存空间时,应首先输入文件的名称及文件的大小。
若没有足够的分配空间,应给出相应的提不信息。
4、回收外存空间时,应输入文件的名称。
六、各功能简要说明:
1、系统初始化:
对系统中的各个参数进行初始化。
2、分配外存空间功能:
当用户选定该功能后
(1)首先输入要存储的文件名及所需要空间的大小,根据设计的盘块人小来计算该文件需要的空闲盘块的个数。
(2)该按文件建立FCB,并将相应的信息记录到FCB中
(3)根据初始化选定的空闲盘块的组织方式,来给该文件分配相应的盘块。
(4)将分配给该文件的盘块组织起来,若采用FAT方式,需要将起始盘块号记入FCB中,若采用混合索引方式,则需要将地址项对应的索引结点的指针记入FCB中。
3、回收外存空间:
当用户选定该功能后
(1)首先要求用户输入要删除的文件名称,若该文件不存在,则需要给出相应的提示信息,若该文件存在,则转步骤
(2)。
(2)根据文件名,找到该文件的FCB,从而找到分配给该文件的所有盘块,对盘块进行回收。
七、其它注意问题:
1、若采用位示图法进行空闲盘块的管理时,盘块号和位示图的行列之间需进行相应的转换。
2、若采用成组链接法进行空闲盘块的管理时,当分配空闲盘块栈中的最后一个盘块时系统的处理方法;当空闲盘块号栈满的时候,还需要回收盘块,系统的处理方法。
3、显示链接和混合索引法,盘块的不同组织方式。
4、完成时间:
二周
八、实验报告要求:
同实验一。