操作系统实验讲稿资料.docx
- 文档编号:26250531
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:11
- 大小:20.90KB
操作系统实验讲稿资料.docx
《操作系统实验讲稿资料.docx》由会员分享,可在线阅读,更多相关《操作系统实验讲稿资料.docx(11页珍藏版)》请在冰豆网上搜索。
操作系统实验讲稿资料
操作系统实习
·本次实习的要求:
1.总学时为36学时,要求每位同学确保在此时间内完成实验。
2.实习结束时,由老师上机验收,并上交实习报告。
验收成绩占75%,实习报告成绩占25%。
3.实习报告内容(纸质报告):
(1)实习题目。
(2)实习内容及设计思想:
设计思路、主要数据结构、主要代码结构及代码段分析。
(3)上机实验所用平台及相关软件。
(可以采用任何软件平台设计实现)
(4)调试过程:
测试数据设计、测试结果分析。
(5)总结:
实习中遇到的问题及解决方法、实习中产生的错误及原因分析、实习体会及收获。
4.实习内容:
完成下述实习题的设计,或者2~3个同学一组设计一个操作系统。
5.注意:
实习二及实习三中,有两个算法的实现思想类似,要求完成不同思想的两个算法。
如内存管理用位示图实现,则外存管理应采用连续外存分配方法,不能采用位示图。
实习一处理器调度
一、实习内容
选择一个调度算法,实现处理器调度。
二、实习目的
本实习模拟在单处理器环境下的处理器调度,加深了解处理器调度的工作。
三、实习题目
本实习有两题,可任选一题。
第一题:
设计一个按优先数调度算法实现处理器调度的程序。
[提示]:
(1)假定系统有5个进程,每个进程用一个PCB来代表。
PCB的结构为:
·进程名——如P1~P5。
·指针——按优先数的大小把5个进程连成队列,用指针指出下一个进程PCB的首地址。
·要求运行时间——假设进程需要运行的单位时间数。
·优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。
·状态——假设两种状态:
就绪和结束,用R表示就绪,用E表示结束。
初始状态都为就绪状态。
(2)每次运行之前,为每个进程任意确定它的“优先数”和“要求运行时间”。
(3)处理器总是选择队首进程运行。
采用动态改变优先数的办法,进程每运行1次,优先数减1,要求运行时间减1。
(4)进程运行一次后,若要求运行时间不等于0,则将它加入就绪队列,否则,将状态改为“结束”,退出队列。
(5)若就绪队列为空,结束,否则转到(3)重复。
要求能接受键盘输入的进程优先数及要求运行时间,能显示每次进程调度的情况,如哪个进程在运行,哪些进程就绪,就绪进程的排列情况。
第二题:
设计一个按时间片轮转法实现处理器调度的程序
[提示]:
(1)假定系统有5个进程,每个进程用一个PCB来代表。
PCB的结构为:
·进程名——如Q1~Q5。
·指针——把5个进程连成队列,用指针指出下一个进程PCB的首地址。
·要求运行时间——假设进程需要运行的单位时间数。
·已运行时间——进程已运行的单位时间数,初始值为0。
·状态——假设两种状态,就绪和结束,用R表示就绪,用E表示结束。
初始状态都为就绪状态。
(2)每次运行之前,为每个进程任意确定它的“要求运行时间”。
(3)把5个进程按顺序排成循环队列,用指针指出队列连接情况。
用一个标志单元记录轮到运行的进程。
处理器调度总是选择标志单元指示的进程运行,对所指的进程,将其“已运行时间”加1。
(4)进程运行一次后,若“要求运行时间”等于“已运行时间”,则将状态改为“结束”,退出队列,否则将继续轮转。
(5)若就绪队列为空,结束,否则转到(3)重复。
要求能接受键盘输入的进程要求运行时间,能显示每次进程调度的情况,如哪个进程在运行,哪些进程就绪,就绪进程的排列情况。
实习二主存空间的分配和回收
一、实习内容
主存储器空间的分配和回收。
二、实习目的
通过本实习帮助理解在不同的存储管理方式下应怎样进行存储空间的分配和回收。
三、实习题目
本实习有两题,可任选一题。
第一题:
可变分区管理方式下采用首次适应算法实现主存分配和回收
[提示]:
(1)可变分区方式是按作业需要的主存空间大小来分割分区的。
当要装入一个作业时,根据作业需要的主存容量查看是否有足够的空闲空间,若有,则按需分配,否则,作业无法装入。
假定内存大小为128K(可输入),空闲区说明表格式为:
·起始地址——指出空闲区的起始地址;
·长度——一个连续空闲区的长度;
·状态——有两种状态,一种是“未分配”状态;另一种是“空表目”状态,表示该表项目前没有使用。
(2)采用首次适应算法分配回收内存空间。
运行时,输入一系列分配请求和回收请求。
要求能接受来自键盘的空间申请及释放请求,能显示分区分配及回收后的内存布局情况。
第二题:
在分页管理方式下采用位示图来表示主存分配情况,实现主存分配和回收
[提示]:
(1)假定系统的主存被分成大小相等的64个块,用0/1对应空闲/占用。
(2)当要装入一个作业时,根据作业对主存的需求量,先查空闲块数是否能满足作业要求,若能满足,则查位示图,修改位示图和空闲块数。
位置与块号的对应关系为:
块号=j*8+i,其中i表示位,j表示字节。
根据分配的块号建立页表。
页表包括两项:
页号和块号。
(3)回收时,修改位示图和空闲块数。
要求能接受来自键盘的空间申请及释放请求,能显示位示图和空闲块数的变化,能显示进程的页表。
实习三磁盘存储空间的分配和回收
一、实习内容
模拟磁盘空闲空间的表示方法,以及模拟实现磁盘空间的分配和回收。
二、实习目的
磁盘初始化时把磁盘存储空间分成许多块(扇区),这些空间可以被多个用户共享。
用户作业在执行期间常常要在磁盘上建立文件或把已经建立在磁盘上的文件删去,这就涉及到磁盘存储空间的分配和回收。
一个文件存放到磁盘上,可以组织成顺序文件(连续文件)、链接文件(串联文件)、索引文件等,因此,磁盘存储空间的分配有两种方式,一种是分配连续的存储空间,另一种是可以分配不连续的存储空间。
怎样有效地管理磁盘存储空间是操作系统应解决的一个重要问题,通过本实习使学生掌握磁盘存储空间的分配和回收算法。
三、实习题目
本实习有三个题目,可以任选一个,但不能与内存管理的题目类似。
第一题:
连续磁盘存储空间的分配和回收
[提示]:
(1)要在磁盘上建立顺序文件时,必须把按序排列的逻辑记录依次存放在磁盘的连续存储空间中。
可假定磁盘初始化时,已把磁盘存储空间划分成若干等长的块(扇区),按柱面号和盘面号的顺序给每一块确定一个编号。
随着文件的建立、删除、磁盘存储空间被分成许多区(每一区包含若干块),有的区存放着文件,而有的区是空闲的。
当要建立顺序文件时必须找到一个合适的空闲区来存放文件记录,当一个文件被删除时,则该文件占用的区应成为空闲区。
为此可用一张空闲区表来记录磁盘存储空间中尚未占用的部分,格式如下:
序号
起始空闲块号
空闲块个数
状态
1
5
6
未分配
2
14
3
未分配
3
21
30
未分配
4
空表目
(2)建立文件时,先查找空闲区表,从状态为“未分配”的表项中找出一个块数能满足要求的区,由起始空闲块号能依次推得可使用的其它块号。
若不需要占用该区的所有块时,则剩余的块仍应为未分配的空闲块,这时要修改起始空闲块号和空闲块数。
若占用了该区的所有块,则相应登记栏中的状态修改成“空表目”。
删除一个文件时,需要考虑空闲块的合并情况。
磁盘存储空间的分配和回收算法类似于主存储器的可变分区方式的分配和回收。
同学们可参考实习二的第一题。
(3)当找到空闲块后,必须启动磁盘把信息存放到指定的块中,启动磁盘必须给出由三个参数组成的物理地址:
盘面号、柱面号和物理记录号(即扇区号)。
故必须把找到的空闲块号换算成磁盘的物理地址。
为了减少移臂次数,磁盘上的信息按柱面上各磁道顺序存放。
现假定一个盘组共有200个柱面,(编号0-199)每个柱面有20个磁道(编号0-19,同一柱面上的各磁道分布在各盘面上,故磁道号即盘面号。
),每个磁道被分成等长的6个物理记录(编号0-5,每个盘面被分成若干个扇区,故每个磁道上的物理记录号即为对应的扇区号)。
那么,空闲块号与磁盘物理地址的对应关系如下:
则物理记录号=空闲块号%6
磁道号=(空闲块号/6)%20
柱面号=(空闲块号/6)/20
(4)删除一个文件时,从文件目录表中可得到该文件在磁盘上的起始地址和逻辑记录个数,假定每个逻辑记录占磁盘上的一块,则可推算出归还后的起始空闲块号和块数,登记到空闲区表中。
换算关系如下:
起始空闲块号=(柱面号20+磁道号)6+物理记录号
空闲块数=逻辑记录数
(5)请设计磁盘存储空间的分配和回收程序,要求把分配到的空闲块转换成磁盘物理地址,把归还的磁盘空间转换成空闲块号。
要求能接受来自键盘的空间申请及释放请求,能显示或打印分配及回收后的空闲区表以及分配到的磁盘空间的起始物理地址。
第二题:
用位示图管理磁盘存储空间
[提示]:
(1)为了提高磁盘存储空间的利用率,可在磁盘上组织成链接文件、索引文件,这类文件可以把逻辑记录存放在不连续的存储空间。
为了表示哪些磁盘空间已被占用,哪些磁盘空间是空闲的,可用位示图来指出。
位示图由若干字节构成,每一位与磁盘上的一块对应,“1”状态表示相应块已占用,“0”状态表示该块为空闲。
位示图的形式与实习二中的位示图一样,但要注意,对于主存储空间和磁盘存储空间应该用不同的位示图来管理,绝不可混用。
(2)申请一块磁盘空间时,由分配程序查位示图,找出一个为“0”的位,计算出这一位对应块的磁盘物理地址,且把该位置成占用状态“1”。
假设现在有一个盘组共8个柱面,每个柱面有2个磁道(盘面),每个磁道分成4个物理记录。
那么,当在位示图中找到某一字节的某一位为“0”时,这个空闲块对应的磁盘物理地址为:
柱面号=字节号
磁道号=位数/4
物理记录号=位数%4
(3)归还一块磁盘空间时,由回收程序根据归还的磁盘物理地址计算出归还块在位示图中的对应位,把该位置成“0”。
按照
(2)中假设的盘组,归还块在位示图中的位置计算如下:
字节号=柱面号
位数=磁道号4+物理记录号
(4)设计申请磁盘空间和归还磁盘空间的程序。
要求能接受来自键盘的空间申请及释放请求,要求能显示或打印程序运行前和运行后的位示图;分配时把分配到的磁盘空间的物理地址显示或打印出来,归还时把归还块对应于位示图的字节号和位数显示或打印出来。
第三题:
模拟UNIX系统的空闲块成组链接法,实现磁盘存储空间的管理
[提示]:
(1)假定磁盘存储空间已被划分成长度为n的等长块,共有M块可供使用。
UNIX系统中采用空闲块成组链接的方法来管理磁盘存储空间,将磁盘中的每N个空闲块(N 0 空闲块数k 1 空闲块号1 2 空闲块号2 … … K 空闲块号k 当第一项内容为“0”时,则第二项起指出的空闲块是最后一组。 (2)可用二维数组A[0…M-1][0…n-1]来模拟管理磁盘空间,用A[i]表示第I块,第0块A[0]作为专用块。 (3)成组链接的分组情况记录在磁盘物理块中,为了查找链接情况,必须把它们读入主存,故当磁盘初始化后,系统先将专用块内容复制到主存中。 定义一个数组MA存放专用块内容,即MA: =A[0]。 申请一块磁盘空间时,查MA,从中找出空闲块号,当一组的空闲块只剩第一块时,则应把该块中指出的下一组的空闲块数和块号复制到专用块中,然后把该块分配给申请者。 当一组的空闲块分配完后则把专用块内容(下一组链接情况)复制到主存,再为申请者分配。 (4)归还一块时给出归还的块号,若当前组不满规定块数时,将归还块登记入该组;若当前组已满,则另建一新组,这时归还块作为新一组的第一块,应把主存中登记的一组链接情况MA复制到归还块中,然后在MA重新登记一个新组。 (5)设计分配和归还磁盘空间的程序。 要求能接受来自键盘的空间申请及释放请求,能显示或打印分配的磁盘空间的块号,在完成一次分配或归还后能显示或打印各空闲块组的情况(各组的空闲块数和块号)。 本实习省去了块号与物理地址之间的转换工作,而在实际的系统中必须进行块号与物理地址的转换工作。 实验四银行家算法实现 一、实习内容 编写实现银行家算法,实现资源的安全分配。 二、实习目的 通过本实验熟悉银行家算法,对预防死锁有更深刻的认识。 三、实验内容 初始状态下,设置数据结构存储可利用资源向量(Available),最大需求矩阵(MAX),分配矩阵(Allocation),需求矩阵(Need),输入待分配进程队列和所需资源。 设计安全性算法,设置工作向量表示系统可提供进程继续运行的可利用资源数目。 如果进程队列可以顺利执行打印输出资源分配情况,如果进程队列不能顺利执行打印输出分配过程,提示出现死锁位置。 实验五模拟页面地址重定位 一、实验目的: 1、编写和调试模拟实现页式地址重定位。 2、加深理解页式地址重定位技术在多道程序设计中的作用和意义。 二、实验原理: 当进程在CPU上运行时,如指令中涉及逻辑地址时,操作系统自动根据页长得到页号和页内偏移,把页内偏移拷贝到物理地址寄存器,再根据页号,查页表,得到该页在内存中的块号,把块号左移页长的位数,写到物理地址寄存器。 三、实验内容: 1、设计页表结构; 2、设计地址重定位算法 3、有良好的人机对话界面 编号: 实验 一 二 三 四 五 六 七 八 九 十 总评 教师签名 成绩 武汉大学计算机学院 课程实验(设计)报告 专业(班): 学号: 姓名: 课程名称: 操作系统设计 任课教师: 年月日 说明 1、本课程设计报告包括: 实习题目、实习内容及设计思想(设计思路、主要数据结构、主要代码结构及代码段分析)、上机实习所用平台及相关软件、调试过程(测试数据设计、测试结果分析)、总结(实习中遇到的问题及解决方法、实习中产生的错误及原因分析、实习体会及收获)。 2、课程设计报告用A4纸打印。 标题4号宋体加粗,正文5号宋体,图表文字标注、程序等用6号。 页边距: 左边3.17cm,右边3.17cm,上2.54cm,下2.54cm。 行间距: 1.5倍行距,一页30行,每行39字。 页脚: 1.5cm,页脚(页码,居中)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 讲稿 资料