操作系统实验
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录 编号 文件名 物 读 写 理 指 指 地 针 针 址 0 0 0
空闲块表
序号 0 首块号 2
1
11
3
行编辑器+文件系统功能
– 要求提供以下文件操作:
• • • • • • create创建文件:根据行数分配盘块数,查空闲表 open打开文件:文件目录项加入打开文件表 close关闭文件:从打开文件表中删除文件目录项 write写文件:写入disk中 read读文件: 从disk中读 delete删除文件:从目录表中删除文件目录项
•
•
程序输入
• • • • • • • • • • • 作业1申请130KB。 作业2申请60KB。 作业3申请100KB。 作业2释放60KB。 作业4申请200KB。 作业3释放100KB。 作业1释放130KB。 作业5申请140KB。 作业6申请60KB。 作业7申请50KB。 作业6释放60KB。
实验3 页面置换算法
• 程序模拟实现请求分页系统页面置换算法: • 输入:某进程的页面访问序列及分配给该进 程的固定物理块数; • 输出: 分别按最佳置换算法、先进先出法置 换算法、最近最久未使用置换算法进行页 面置换, 动态演示置换算法的置换过程
例如
• 假定系统为某进程分配了三个物理块, 并
有以下的页面号引用串:
上机报告内容
• • • • • 上机题目; 上机内容; 数据结构设计; 算法设计; 实验结果及分析
实验(二) 银行家算法
假定系统中有五个进程{P0,P1,P2,P3,P4}和三类资源 {A,B,C},各类资源的数量分别为10、5、7,在T0时刻 的资源分配情况如下表:
Max A B C P0 P1 P2 P3 P4 7 5 3 3 2 2 9 0 2 2 2 2 4 3 3 Allocation A B C 0 1 0 2 0 0 3 0 2 2 1 1 0 0 2 Need A B C 7 4 3 1 2 2 6 0 0 0 1 1 4 3 1 Available A B C 3 3 2
实验(一)进程调度算法
假设有五个进程A,B,C,D,E,它们的到达时间及要 求服务的时间分别为:
进程名 到达时间 服务时间 A 0 4 B 1 3 C 2 4 D 3 2 E 4 4
时间片大小分别为1,2,4 按时间片轮转的调度,计算五个进程的周转时间及带权周转 时间
实验要求
• 程序输入:五个进程A,B,C,D,E,它们的到达时间 及要求服务的时间 • 程序输出: (1)进程调度序列 • (2)每个进程的周转时间及带权周转时间, • (3)平均周转时间及带权周转时间 • 编程语言:不限(C,C++, Java) • 实验学时为2学时,必须提前预习实验内容,提前编写代 码,调试程序
程序输出
• 每次分配和回收后显示出空闲内存分区链 的情况
简单文件编辑器、小型文件系统的设计
(1)在内存中开辟一个虚拟磁盘空间作为文件存储 器,在其上实现一个简单的单用户文件系统。 在退出这个简单的文件系统时,应将该虚拟 文件系统保存到磁盘上,以便下次可以再将 它恢复到内存的虚拟磁盘空间中。 (2) 文件目录结构采用一级目录结构。为了简单 起见,可以不使用索引节点,其中的每个目 录项应包含文件名、物理地址、长度等信息。
– 要求提供以下文件操作:
• • • • • • create:用于创建文件 open:用于打开文件 close:用于关闭文件 write:用于写文件 read:用于读文件 delete:用于删除文件
我们的简化设计
(1)用一个一维字符串数组disk[1000]表示磁盘存储空间, 每个数组元素对应一个盘块。 例如:String[ ] disk =new String[1000]; (2)文件外存分配采取连续分配方式。 (3)每个文件都是文本文件。每一行占用一个盘块。 (4)在退出文件系统时,应将该二维字符串数组保存为 一个文本文件。 (5) 文件目录结构采用一级目录结构,其中的每个目录项 应包含文件名、物理地址、长度等信息。 物理地址即起始盘块号,disk的数组元素下标号 长度即盘块数,该文件所占数组元素个数
字符串数组disk[1000]
目录文件
目录 编号
0 1
4 8
物理 地址
0 7
5 6 7 9 10 11
文件 名
file1 file2
块数
2 3
12 13 14 15
0 1 2 3 99
“hello”
“world”
“”
file2 “happy” “new” “year”
块数 6 1 2 file1
打开文件表
操作系统实验
上机时间安排
• 5月16日(周 四) • 第三次实验:页面置换算法。 • 4班:5-6节; • 5班:7-8节 5月23日(周 四) 第四次实验: 磁盘调度算法 4班:5-6节; 5班:7-8节
上机时间安排
• 5月7日(周一) 7-8节第一次实验: 进程 调度算法 • 月日(周)节第二次实验:银行家算法 • 月日(周) 节第三次实验:存储器分配算法 • 月日(周) 节第四次实验:简单文件编辑 器、小型文件系统的设计
例如
• 有九个进程先后提出磁盘I/O请求: • 55,58,39,18,90,160,150,38,184 • 磁头当前位置是100
实验(三)存储器分配算法
• 分别实现采用首次适应算法和最佳适应算 法的动态分区分配过程alloc()和回收过程 free()。 其中,空闲分区通过空闲分区链来管理; 在进行内存分配时,系统优先使用空闲区 低端的空间。 假设初始状态下,可用的内存空间为 640KB
(1)利用安全性算法分析T0时刻的安全性。 (2)P1发出请求向量Request(1,0,2),按银行家算法进行检查; (3)P4发出请求向量Request(3,3,0),按银行家算法进行检查; (4)P0发出请求向量Request(0,2,0),按银行家算法进行检查;
输入与输出
• • • • 输入:当前资源分配图 输出:安全序列,分配与否的结论 编程语言:不限(C,C++, Java) 实验学时为2学时,必须提前预习实验内容, 提前编写代码,调试程序
• 7,0,1,2,0,3,0,4,2,3,0,3,2,1,
2, 0, 1, 7 , 0, 1
实验4 磁盘调度算法
• 程序模拟实现磁盘调度算法: • 输入: 请求进百度文库数N、该N个进程的磁盘I/O请求磁 道序列,磁头当前位置。 输出: 分别按先来先服务算法、最短寻道时间优 先算法、扫描算法进行磁盘调度,输出磁 盘调度次序和平均寻道长度。
数据结构
(1)目录表 (2)打开文件表 (3)磁盘存储空间:用一个二维字符串数组 表示,每个盘块对应一个数组元素。一个数 组元素可以存放一个字符串 (4)磁盘存储空间盘块空闲状态数据结构。 空闲表、空闲链、位示图(推荐你认为最简 单的方法)
file1 “hello” “world” 0 1 2 3
空闲块表
序号 0 首块号 2
1
11
3
行编辑器+文件系统功能
– 要求提供以下文件操作:
• • • • • • create创建文件:根据行数分配盘块数,查空闲表 open打开文件:文件目录项加入打开文件表 close关闭文件:从打开文件表中删除文件目录项 write写文件:写入disk中 read读文件: 从disk中读 delete删除文件:从目录表中删除文件目录项
•
•
程序输入
• • • • • • • • • • • 作业1申请130KB。 作业2申请60KB。 作业3申请100KB。 作业2释放60KB。 作业4申请200KB。 作业3释放100KB。 作业1释放130KB。 作业5申请140KB。 作业6申请60KB。 作业7申请50KB。 作业6释放60KB。
实验3 页面置换算法
• 程序模拟实现请求分页系统页面置换算法: • 输入:某进程的页面访问序列及分配给该进 程的固定物理块数; • 输出: 分别按最佳置换算法、先进先出法置 换算法、最近最久未使用置换算法进行页 面置换, 动态演示置换算法的置换过程
例如
• 假定系统为某进程分配了三个物理块, 并
有以下的页面号引用串:
上机报告内容
• • • • • 上机题目; 上机内容; 数据结构设计; 算法设计; 实验结果及分析
实验(二) 银行家算法
假定系统中有五个进程{P0,P1,P2,P3,P4}和三类资源 {A,B,C},各类资源的数量分别为10、5、7,在T0时刻 的资源分配情况如下表:
Max A B C P0 P1 P2 P3 P4 7 5 3 3 2 2 9 0 2 2 2 2 4 3 3 Allocation A B C 0 1 0 2 0 0 3 0 2 2 1 1 0 0 2 Need A B C 7 4 3 1 2 2 6 0 0 0 1 1 4 3 1 Available A B C 3 3 2
实验(一)进程调度算法
假设有五个进程A,B,C,D,E,它们的到达时间及要 求服务的时间分别为:
进程名 到达时间 服务时间 A 0 4 B 1 3 C 2 4 D 3 2 E 4 4
时间片大小分别为1,2,4 按时间片轮转的调度,计算五个进程的周转时间及带权周转 时间
实验要求
• 程序输入:五个进程A,B,C,D,E,它们的到达时间 及要求服务的时间 • 程序输出: (1)进程调度序列 • (2)每个进程的周转时间及带权周转时间, • (3)平均周转时间及带权周转时间 • 编程语言:不限(C,C++, Java) • 实验学时为2学时,必须提前预习实验内容,提前编写代 码,调试程序
程序输出
• 每次分配和回收后显示出空闲内存分区链 的情况
简单文件编辑器、小型文件系统的设计
(1)在内存中开辟一个虚拟磁盘空间作为文件存储 器,在其上实现一个简单的单用户文件系统。 在退出这个简单的文件系统时,应将该虚拟 文件系统保存到磁盘上,以便下次可以再将 它恢复到内存的虚拟磁盘空间中。 (2) 文件目录结构采用一级目录结构。为了简单 起见,可以不使用索引节点,其中的每个目 录项应包含文件名、物理地址、长度等信息。
– 要求提供以下文件操作:
• • • • • • create:用于创建文件 open:用于打开文件 close:用于关闭文件 write:用于写文件 read:用于读文件 delete:用于删除文件
我们的简化设计
(1)用一个一维字符串数组disk[1000]表示磁盘存储空间, 每个数组元素对应一个盘块。 例如:String[ ] disk =new String[1000]; (2)文件外存分配采取连续分配方式。 (3)每个文件都是文本文件。每一行占用一个盘块。 (4)在退出文件系统时,应将该二维字符串数组保存为 一个文本文件。 (5) 文件目录结构采用一级目录结构,其中的每个目录项 应包含文件名、物理地址、长度等信息。 物理地址即起始盘块号,disk的数组元素下标号 长度即盘块数,该文件所占数组元素个数
字符串数组disk[1000]
目录文件
目录 编号
0 1
4 8
物理 地址
0 7
5 6 7 9 10 11
文件 名
file1 file2
块数
2 3
12 13 14 15
0 1 2 3 99
“hello”
“world”
“”
file2 “happy” “new” “year”
块数 6 1 2 file1
打开文件表
操作系统实验
上机时间安排
• 5月16日(周 四) • 第三次实验:页面置换算法。 • 4班:5-6节; • 5班:7-8节 5月23日(周 四) 第四次实验: 磁盘调度算法 4班:5-6节; 5班:7-8节
上机时间安排
• 5月7日(周一) 7-8节第一次实验: 进程 调度算法 • 月日(周)节第二次实验:银行家算法 • 月日(周) 节第三次实验:存储器分配算法 • 月日(周) 节第四次实验:简单文件编辑 器、小型文件系统的设计
例如
• 有九个进程先后提出磁盘I/O请求: • 55,58,39,18,90,160,150,38,184 • 磁头当前位置是100
实验(三)存储器分配算法
• 分别实现采用首次适应算法和最佳适应算 法的动态分区分配过程alloc()和回收过程 free()。 其中,空闲分区通过空闲分区链来管理; 在进行内存分配时,系统优先使用空闲区 低端的空间。 假设初始状态下,可用的内存空间为 640KB
(1)利用安全性算法分析T0时刻的安全性。 (2)P1发出请求向量Request(1,0,2),按银行家算法进行检查; (3)P4发出请求向量Request(3,3,0),按银行家算法进行检查; (4)P0发出请求向量Request(0,2,0),按银行家算法进行检查;
输入与输出
• • • • 输入:当前资源分配图 输出:安全序列,分配与否的结论 编程语言:不限(C,C++, Java) 实验学时为2学时,必须提前预习实验内容, 提前编写代码,调试程序
• 7,0,1,2,0,3,0,4,2,3,0,3,2,1,
2, 0, 1, 7 , 0, 1
实验4 磁盘调度算法
• 程序模拟实现磁盘调度算法: • 输入: 请求进百度文库数N、该N个进程的磁盘I/O请求磁 道序列,磁头当前位置。 输出: 分别按先来先服务算法、最短寻道时间优 先算法、扫描算法进行磁盘调度,输出磁 盘调度次序和平均寻道长度。
数据结构
(1)目录表 (2)打开文件表 (3)磁盘存储空间:用一个二维字符串数组 表示,每个盘块对应一个数组元素。一个数 组元素可以存放一个字符串 (4)磁盘存储空间盘块空闲状态数据结构。 空闲表、空闲链、位示图(推荐你认为最简 单的方法)
file1 “hello” “world” 0 1 2 3