《操作系统》实验讲义.docx
《《操作系统》实验讲义.docx》由会员分享,可在线阅读,更多相关《《操作系统》实验讲义.docx(10页珍藏版)》请在冰豆网上搜索。
《操作系统》实验讲义
《操作系统》实验讲义
黑龙江大学计算机科学技术学院
《操作系统》课程设计讲义
一.开设本课程设计目的
为配合《操作系统》课程的教学,通过模拟操作系统原理的实现,使学生能更深刻地领会操作系统工作原理和操作系统实现方法,并提高程序设计能力,特开设此课程设计。
二.课程设计的题目
在WINDOWS环境下,利用高级语言模拟操作系统的实现。
三.课程设计的主要内容
模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理和文件管理四部分。
四.课程设计的具体内容和要求
1.进程管理
进程管理主要包括进程控制、进程调度、进程的同步与互斥的模拟实现。
(1)进程控制:
建立一个交互式命令接口或图形接口的小型系统。
用来模拟进程创建、终止、阻塞和唤醒等原语操作,实现进程的基本状态的转换。
进程控制块内容包括进程标识符、主要寄存器内容、进程状态、等待原因、进程页表位置、中间结果等等(为以后扩充系统)。
模拟系统最多容纳10个进程块。
(2)进程调度:
进程调度在模拟系统中,采用先来先服务、短进程优先、时间片轮转调度算法。
我们可以根据创建进程的系统时钟,取相对时钟作为进程的到达时间,利用随机数产生每个进程的估计运行时间。
利用模拟系统中提供的算法分别计算其相应的周转时间和带权周转时间。
(3)进程同步:
采用信号量机制,建立两个原语(如P,V原语)用于实现进程的同步与互斥。
用全局变量模拟重要寄存器,如程序状态寄存器等。
中断的发现应该是硬件的工作,这里在函数CPU中加检测PSW的方式来模拟。
系统中的绝对时钟和相对时钟用全局变量模拟。
2.存储管理
存储管理部分主要实现主存空间的分配和回收、存储保护。
模拟系统中,内存部分分为两部分,一部分是系统区,这里只存放进程控制块,一部分是用户区,这里主要是对用户区的管理。
存储管理可以采用分区存储管理、请求分页式存储管理和请求分段式存储管理方式其中的一种,我们建议采用请求分页式存储管理的方法。
分页式存储管理系统是内存非连续存储管理中基本的方法,可以通过把一个作业分成多个页面分配到不连续的内存块中去。
实验可以通过位示图的方式来模拟内存的使用情况,为每个作业建立页表用于完成正确的地址转换。
然后在请求分页中实现页面置换算法,完成虚拟存储器的基本原理。
3.设备管理
设备管理主要包括设备的分配和回收、实现设备独立性。
假定模拟系统中有A(3台)、B(2台)、C三种设备,采用安全分配方式。
设备管理子系统涉及到系统设备表(SDT)、通道控制表(CHCT)、控制器控制表(COCT)和设备控制表(DCT)来体现输入输出系统的四级结构和三级控制。
我们模拟这样的数据结构来完成对外围设备的管理。
设备分配必须满足设备的独立性要求。
为了实现设备独立性,要求在驱动程序之上设计一层设备无关软件,其主要功能可分为:
(1)执行所有设备的公有操作,主要包括:
(a)独占设备的分配与回收;(b)将逻辑设备名映射为物理设备(LUT),进一步可以找到相应物理设备的驱动程序。
(2)向用户层(或文件层)软件提供统一的接口。
例如,对各种设备的读操作,在应用程序中都用read;而对各种设备的写操作,则都使用write。
4.文件管理
文件管理部分实现的主要是单用户的磁盘文件管理部分,包括文件的逻辑结构、物理结构、目录管理、磁盘分配回收、用户接口的实现。
具体要求:
文件的逻辑结构:
可分为定长记录的有结构文件和无结构文件。
目录结构采用树型目录结构。
磁盘的分配采用链接结构(显式链接)的分配。
磁盘空闲存储空间管理采用位示图方法。
位示图和显示链接的指针合在一起组成文件分配表。
5.综合实验
将前几个实验综合为一个完整的系统程序。
五、教学文件及教学形式
教学文件:
《计算机操作系统》汤子瀛编著西安电子科技大学出版社
教学形式:
教学与实验同步进行,通过实验更好的理解课堂讲授的原理,加以上机实验,编程调试。
实验一进程控制
(一)实验目的:
利用简单的结构和控制方法模拟进程结构、进程状态和进程控制。
(二)实验内容与步骤:
用PCB表示整个进程实体,利用随机数方法或键盘控制方法模拟进程执行中产生的事件。
或者利用鼠标或者键盘中断的基于图形接口方式的进程控制管理。
具体过程:
1、定义PCB(可以采用静态结构或动态结构):
包括理论PCB中的基本内容,如内部ID、外部ID、进程状态、队列指针。
由于无法实现真正的进程创建功能,在实验中只需建立PCB,用它代表完整的进程。
2、定义进程状态转换方式:
进程的状态转换是由进程内部操作或操作系统的控制引起,由于无法实现这些功能,学生可以采用随机数方法或键盘控制方法模拟,并实现对应的控制程序。
随机方法指产生1-6的随机数,分别代表创建进程(c)、结束进程(e)、进程阻塞(b)、激活进程(w)、调度进程(p)、时间片到(t)等事件;键盘模拟方法指定义6种按键代表以上6种事件。
3、根据四种事件处理就绪队列、阻塞队列和当前执行中的进程。
4、每次事件处理后应形象地显示出当前系统中的执行进程是哪一个,就绪队列和阻塞队列分别包含哪些进程。
实验二进程调度
(一)实验目的:
在实验一的基础上实现先来先服务FCFS、短作业优先SJF以及时间片轮转调度算法。
(二)实验内容与步骤:
我们可以根据创建进程的系统时钟,取相对时钟作为进程的到达时间,利用随机数产生每个进程的估计运行时间。
利用模拟系统中提供的算法分别计算其相应的周转时间和带权周转时间。
具体过程:
1、利用绝对时间和相对时钟产生一组进程的到达时刻和运行时间。
2、实现FCFS算法:
根据进程的到达时间的先后次序来完成对若干进程的调度。
3、实现SJF算法:
根据当前时间已经到达进程的需要运行时间选取其中时间最小的进程最先运行。
4、实现时间片轮转算法:
首先要求确定时间片的大小,依据进程的到达时间依次加入队列,每次分配一个时间片大小的时间,如果没有完成参与下一次的竞争,当最后需要一个小于等于时间片的时间时本进程完成,同时退出队列。
5、计算每种算法调度后,系统的平均周转时间和平均带权周转时间。
实验三进程的同步与互斥(*)
(一)实验目的:
利用整型信号量实现生产者-消费者问题,了解进程间同步和互斥的控制方法。
(二)实验内容与步骤:
利用内存固定单元分别存放Full、Empty、Mutex信号量值,并将生产的消息保存到长度为10个字节的另一内存区域(缓冲区)中,每个字节表示一个消息。
对该区域进行写(生产)或读(消费),并将消息内容显示出来。
具体过程:
生产者进程:
1、定义Wait操作和Signal操作。
2、如果三个信号量的初值没有设定,则初始化。
其中Empty信号量为MK_FP(9:
0xFFF0)单元,Full信号量为MK_FP(9:
0xFFF1)单元,Mutex信号量为MK_FP(9:
0xFFF2)单元,缓冲区为MK_FP(9:
FFF3)开始的10个单元。
3、生产一个消息(随机产生A-Z字符)。
4、循环执行生产过程,并把消息写入缓冲区。
可以用按键控制其下一轮执行。
消费者进程:
1、定义Wait操作和Signal操作。
2、如果三个信号量的初值没有设定,则初始化。
3、循环执行消费过程,并把消息内容显示。
可以用按键控制其下一轮执行。
实验四分页式存储管理
(一)实验目的:
实现分页式存储地址转换过程,在此基础上实现请求分页的地址转换。
分页式存储管理系统是内存非连续存储管理中基本的方法,可以通过把一个作业分成多个页面分配到不连续的内存块中去。
实验可以通过位示图的方式来模拟内存的使用情况,为每个作业建立页表用于完成正确的地址转换。
(二)实验内容与步骤:
利用键盘输入本模拟系统的物理块的大小,作业的页表中的块号;完成逻辑地址转换成相应的物理地址的过程。
具体过程:
1、建立一张位示图,用来模拟内存的分配情况,利用随机数产生一组0和1的数对应内存的使用情况。
2、输入块(页)的大小,通过模拟位示图为本作业分配内存空间建立相应的页表(长度不定);
3、录入逻辑地址转换成相应的物理地址
4、扩充页表,变成请求式的二维页表(增加存在位等)完成地址转换。
实验五请求分页中页面置换算法
(一)实验目的:
实现请求页式地址转换中出现的缺页现象中,用到的先进先出FIFO、最近最久未使用LRU、最佳OPT置换算法。
熟悉文件的基本操作(读、写)。
(三)实验内容和步骤:
利用键盘输入本模拟系统分配给作业的内存物理块个数,作业在执行过程中的页面调度次序。
计算出三种算法的缺页次数和缺页率。
具体过程:
1、输入分配给本作业的块数,模拟作业执行的逻辑地址转换成页面调度次序;
2、分别采用OPT、FIFO、LRU置换算法,利用堆栈结构完成页面置换;记录被换出的页面和新换入的页面。
3、将得到的结果写入到文本文件中。
实验六设备管理
(一)实验目的:
设备管理主要包括设备的分配和回收、同时实现设备独立性。
(二)实验内容和步骤:
假定模拟系统中有A(3台)、B(2台)、C三种设备,采用安全分配方式。
1、设备管理子系统涉及到系统设备表(SDT)、通道控制表(CHCT)、控制器控制表(COCT)和设备控制表(DCT)来体现输入输出系统的四级结构和三级控制。
我们模拟这样的数据结构来完成对外围设备的管理。
(1)添加设备:
增加对应的设备控制表和系统设备表中的表项,如果需要新建对应的控制器控制表。
(2)删除设备:
删除对应的设备控制表和系统设备表中的表项,如果需要删除对应的控制器控制表。
2、设备分配必须满足设备的独立性要求。
为了实现设备独立性,要求在驱动程序之上设计一层设备无关软件,其主要功能可分为:
(1)执行所有设备的公有操作,主要包括:
(a)独占设备的分配与回收;(b)将逻辑设备名映射为物理设备(LUT),进一步可以找到相应物理设备的驱动程序。
(2)向用户层(或文件层)软件提供统一的接口。
例如,对各种设备的读操作,在应用程序中都用read;而对各种设备的写操作,则都使用write。
实验七有结构定长文件的读取(*)
(一)实验目的:
通过读取DBF文件内容,了解有结构定长文件的存取。
(二)实验内容和步骤:
将给定的DBF文件中的记录内容读出并显示。
说明:
DBF文件是一种定长记录的数据库文件。
它由三部分组成:
文件头、结构定义以及记录内容。
1、文件头:
长度为32字节,包括标志、日期、记录个数、文件头部分长度+结构定义部分长度+1、记录长度以及20个未用字节。
2、结构定义:
由若干个(=字段个数)32字节数据组成,每32个字节由以下部分组成:
字段名称、1个未用字节、类型字节(“C”、“N”、“D”和“M”)、4个未用字节、字段长度、字段小数以及14个未用字节。
3、数据部分:
由若干个(=记录个数)固定长度(=记录长度)数据组成。
整个结构如下图所示:
具体过程:
1、打开DBF文件。
2、读取文件头(长度为32字节)。
3、读取结构定义并显示结果(共((*)-32-1)/32个,每次长度为32字节)。
4、读取数据内容并根据结构定义显示不同类型数据的内容。
实验八树型目录结构
(一)实验目的:
利用交互式命令实现树型目录结构和文件管理。
(二)实验内容和步骤:
在文件中保存目录内容,创建文件或子目录可以用命令行命令:
MD、CD、RD、MK(创建文件)、DEL(删除文件)和DIR。
目录项包括文件或目录名称、类型(文件、目录或空目录项)、创建日期以及下一个目录项指针、下一级目录项指针。
具体过程:
1、创建初始文件,建立根目录的“.”和“..”目录项。
2、显示命令提示符“$”。
4、输入命令后根据命令含义完成相应文件操作:
●MD:
在目录文件中创建子目录,同时搜索当前目录最后一个目录项,并保存指针信息;
●CD:
根据当前目录切换到指定目录;
●RD:
搜索所要删除的目录是否为空目录,若是则删除;
●MK:
在当前目录中创建文件名称;
●DEL:
搜索所要删除的文件是否存在,若是则删除;
●DIR:
列出当前目录的所有目录项。
实验九外存空间的管理(*)
(一)实验目的:
利用位示图表示外存的分配情况,新建文件时分配必要的空间,模拟文件分配表记录文件在外存上的存储方式。
(二)实验内容和步骤:
磁盘的分配采用链接结构(显式链接)的分配。
磁盘空闲存储空间管理采用位示图方法。
位示图和显示链接的指针合在一起组成文件分配表。
具体过程:
1、利用位示图模拟外存的空闲空间的情况。
2、在实验八中创建文件的时候分配空闲的磁盘空间,采用显示链接的方式,利用文件分配表(FAT)记录文件在外存上的存储情况。
3、当删除文件时,回收外存上的空间,修改位示图和文件分配表。
实验考核标准
1、本课程设计共包含四个实验,本学期每个学生必须完成前四个实验。
这四个实验从本学期的第四教学周开始,第十八周结束。
需在第十七周完成各个模块的连接形成相对完整的系统,完成全部实验的学生经测试答辩通过,方可得到学分。
不合格者需要重修。
2、实验成绩分为优秀、良好、中等、及格、不及格五个层次。
每个实验需在规定时间内完成,成绩达到及格以上方可进行下一个实验。
3、具体安排
适合专业
计算机科学与技术专业
总学时/实验学时
60/60
序
号
实验项目
内容提要
周数
(第)
类型
1
进程管理
建立四个函数模拟进程创建、撤销、阻塞和唤醒四个原语。
完成创建进程(申请空白PCB),以及进程状态转换(三种)、利用队列机制。
进程调度在模拟系统中,采用先来先服务、短进程优先、时间片轮转调度算法。
建立两个原语(如P,V原语)用于实现进程的同步与互斥。
4-5
7
6
必修
8分
8分
8分
2
存储管理
模拟实现页式存储管理,建立主存分配表和为用户作业分配主存建立相应页表地址转换、页面置换;学习操作系统的存储器管理的功能。
8
9
8分
必修
8分
3
设备管理
设备分配必须满足设备的独立性要求。
为了实现设备独立性,要求在驱动程序之上设计一层设备无关软,。
10
必修
8分
4
文件管理
文件管理部分实现的主要是单用户的磁盘文件管理部分,包括文件的逻辑结构、物理结构、目录、磁盘分配回收、文件的保护和用户接口的实现。
目录结构采用树型目录结构。
磁盘的分配采用链接结构(显式链接)的分配。
11-12
13
必修
8分
8分
5
将各个部分连接成一个小型模拟OS
将各个部分连接成一个小型模拟操作系统。
14-15
36分