当前位置:文档之家› 操作系统原理实验指导

操作系统原理实验指导

(3)计算页面命中率程序流程图
3、实验题
(1)设计一个内存分配模拟程序。假定在计算机系统作业后备队列中有六个等待调度运行的作业,参与分配的内存大小为32KB,采用简单页式管理,每个页帧的大小为1KB。根据要求进行内存的分配和回收。要求打印内存分配表。有关作业的组织和作业有关参数的设置请自行设计,要大致符合实际情况。
main()
{
int i;
if (fork())
{
i=wait();
printf(“It is parent process.\n”);
printf(“The child process, ID number %d, is finished.\n”,i);
}
else{
print(“It is child process.\n”);
(2)自选设计一个进程调度算法,并加以实现。
实验三存储器管理
1、目的与要求
目的:存储器管理是操作系统重要的组成部分,提高存储器的效率始终是操作系统研究的重要课题之一。虚拟存储技术是用来扩大存储容量的一种重要方法。学生应独立地使用一种开发工具或高级语言编写几个常用的存储分配算法,并能设计一个存储管理的模拟程序,对各种算法进行分析比较,评测其性能优劣,从而加深对这些算法的理解,巩固所学的知识。
操作系统实验指导
操作系统是计算机的最重要的系统软件,它在计算机中具有核心地位,其作用是对计算机系统资源进行统一的调度和管理,提供各种强有力的系统服务,为用户创造灵活而又方便的使用环境。一个精心设计的操作系统能极大地扩充计算机系统的功能,充分地发挥系统中各种资源的使用效率,提高系统工作的可靠性。
操作系统原理是计算机科学与技术专业的一门主要专业课程,它涉及计算机系统中各种软、硬资源管理的实现原理与方法,内容非常丰富,综合性非常强,并且还具有很强的实践性。只有把理论与实践紧密地结合起来,才能取得较好地学习效果。
(3)程序流程图(见下页)
3、实验题
(1)设计一个有6个进程并发运行的模拟进程调度程序,每个进程由一个进程控制块(PCB)标志,每个进程处于运行(run)、就绪(ready)、阻塞(blocked)和完成(finish)状态之一。要求分别用优先数法、轮转法和短进程优先法进行调度和比较,并且显示打印进程状态参数变化情况。
cat合并和传送文件、
cp复制文件
mv文件改名
cc编译C语言源程序
组合命令:shell简单命令可以用管道算符|组合构成功能更强的命令。
例如:ls-l|wc显示文件目录(长格式)
shell过程:shell命令语言提供了shell变量和各种控制流语句。可以按照编写程序的方式将shell命令组织成shell过程存放在一个文件上。调用执行shell过程时,shell解释程序逐条解释执行其中的命令。例如:
catprog1.c
ccprog1.c
mva.outprog1.out
prog1.out
如果该shell过程文件名testpro,则用命令:shtestpro。
系统调用:Unix操作系统面向用户态程序的界面是系统调用。用户使用汇编语言和C语言编写程序时,可以使用系统调用要求操作系统提供服务。
下面重点讨论一下进程的生成和撤消、父子进程的同步等方面的系统调用:
进程控制块结构如下:
进程标识号
链指针
优先数/轮转时间片数
占用CPU时间片数
进程所需时间片数
进程状态
进程控制块链结构如下:
一个运行队列、一个就绪队列和一个完成队列,通过链指针连接起来。每个队列设置一个链首指针。
(1)优先数法:进程就绪队列按优先数大小从高到低排列,队首进程首先投入运行。每过一个时间片,运行进程所需时间片减1,优先数减3,说明它已运行一个时间片,如果在一个时间片内完成不了,应降低其优先数。接着比较现行进程和就绪队列队首进程的优先数,如果仍是现行进程优先数高或者相同,就让现行进程继续运行,否则,调度就绪队列队首进程投入运行。原运行进程再按优先数大小插入就绪队列,且改变它们对应进程的状态,直至所有进程都运行完各自的时间片数。
(2)对访问串:1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6,驻留集大小分配为1,2,3,4,5,6,7时,试指出在淘汰算法FIFO、LRU和OPT控制下的页故障数,要求列表显示和比较。
(3)设计一个比较完善的随机数发生器和指令地址流,使能更接近实际情况。
实验四磁盘驱动调度
(1)电梯算法;
(2)最短寻找时间优先算法(SSTF)。
实验五文件管理系统
1、目的与要求
目的:通过本实验,学生应熟悉文件目录的实现原理、文件的逻辑组织和物理组织,常用的文件操作,加深对操作系统的文件管理的理解。
要求:能在任选一种开发环境下开发一个简单的文件管理系统。
2、示例
采用二级目录结构,第一级为主文件目录MFD,第二级为用户文件目录UFD。假定系统可同时管理N个用户的文件,每个用户最多在磁盘上保存L个文件。约定用户把文件组织成记录式文件,文件中记录都城是定长的,文件在磁盘上组织形式为链接结构。
1、目的与要求
目的:通过本实验,学生应熟悉辅助存储器磁盘的几种驱动调度算法,加深对操作系统的驱动调度有关技术的理解。
要求:能在任选一种开发环境下模拟磁盘驱动调度过程。
2、示例
熟练掌握FCFS、SSTF、SCAN、C-SCAN和电梯驱动调度算法(具体内容参考教材设备管理磁盘驱动调度的有关章节)。
(4)电梯驱动调度算法程序流程图
3、实验题
假定一磁盘有200个柱面,编号为0~199,当前移ቤተ መጻሕፍቲ ባይዱ臂的位置在143号柱面上,并刚刚完成125号柱面的服务请求,如果请求队列的先后顺序是86,147,91,177,94,150,102,175,130。请按下列算法分别计算为完成上述各次访问总共需要的磁头移动量,并写出磁头的移动顺序。要求通过编写模拟程序实现,开发工具任选。
3、实验题
(1)要求通过编写文件管理模拟程序实现用户登录,建立文件、打开文件、关闭文件、读文件、写文件和撤消文件等文件操作,开发工具任选。
(2)使用操作系统提供的文件操作功能,在流式文件基础上,实现记录式文件的功能。由学生自定义记录的结构,如学生信息表,每个记录定长,实现信息的插入、删除和查询等操作,类似数据库的操作,但没有数据库支撑。开发工具任选。
熟悉系统实用程序的调用方法和各种系统调用模块的功能和用法。
2、示例
用1~2种操作系统提供的各种手段,建立、修改、编辑、编译和运行程序,最后撤消一个简单程序。要尽可能多地使用系统提供的各种命令和功能。
操作系统可为如下两种序列:
(1)Windows 98或Windows2000或Windows XP。
(2)Linux或Unix。
要求:为了比较真实地模拟存储管理,可预先生成一个大致符合实际情况的指令地址流,模拟这样一种指令序列的执行来计算和分析各种算法的访问命中率。
2、示例
(1)存储分配方法:熟悉页式、段式和段页式存储分配方法的思想(具体内容参考教材存储器管理的有关章节)。
(2)淘汰算法:先进先出(FIFO)淘汰算法、最近最少使用淘汰算法(LRU)和最佳淘汰算法(OPT)三个页面淘汰算法(具体内容参考教材存储器管理的有关章节)。
培养计算机专业学生的系统程序设计能力,也是本课程的重要环节。系统程序要求结构清晰、合理、可读性好,有准确而简明的注释。通过实验可以培养学生正规系统程序设计能力。
本实验包括下列六个方面:
实验一几种操作系统的界面
实验二进程调度
实验三存储器管理
实验四存储器管理
实验五磁盘驱动调度
实验六文件管理系统
上述每个实验约需要10个学时。可根据实际情况选用。最好学生自己独立完成,如有困难,可参考一些示例,弄清每个实验的思想和实现方法,上机调试通过,不能完全照搬示例。
exit();
}
}
3、实验题
(1)在Unix或Linux环境下使用fork()、wait()和exit()编写一个C语言多进程程序,并要求演示多个进程的运行轨迹,同时熟悉此操作系统环境下建立、修改、运行,打印源程序和结果。
(2)在Windows环境下利用一个开发工具(Delphi、C++、PB、VB等)开发一个多线程的程序,并要求演示多线程的运行轨迹和最终的运行结果。
实验一几种操作系统的界面
1、目的与要求
目的:通过本实验,学生应熟悉1~2种操作系统的界面。在熟练使用的基础上,能了解各种命令和调用在系统中的大致工作过程,也就是通过操作系统的外部特性,逐步深入到操作系统的内在实质内容中去。
要求:能熟练地在1~2种操作系统环境下工作。学会使用各种命令,熟悉系统提供的各种功能。主动而有效地使用计算机。
(2)简单轮转法:进程就绪队列按各进程进入的先后顺序排列,进程每次占用处理机的轮转时间按其重要程度写入进程控制块中的时间片数记录项(相应于优先数法的优先数记录项位置)。每过一个时间片,运行进程占用处理机的时间片数加1,然后比较占用处理机的时间片数是否与该进程的轮转时间片数相等,若相等说明已到达轮转时间,应将现运行进程排到就绪队列队尾,调度队首进程占用处理机,且改变它们的状态,直至所有进程完成各自时间片。
整个系统只有一张主文件目录表,但有N张用户文件目录表,可为每个用户设置一张“用户已打开文件表”(UOF),用以说明该用户当前正在使用文件的情况。假定文件系统提供的文件操作有建立文件、打开文件、关闭文件、读文件、写文件和撤消文件(具体内容参考教材文件管理磁盘驱动调度的有关章节)。
文件管理系统模拟程序流程图见上页。
实验二进程调度
1、目的与要求
目的:进程是操作系统最重要的概念之一,进程调度又是操作系统核心的主要内容。通过本实验,要求学生独立地使用一种开发工具或高级语言编写和调试一个简单的模拟进程调度程序。调度算法可任意选择或自行设计。本实验可加深对于进程调度和各种调度算法的理解,巩固所学的知识。
相关主题