操作系统磁盘调度算法实验报告及代码

上传人:学*** 文档编号:292024559 上传时间:2022-05-13 格式:DOCX 页数:7 大小:18.55KB
返回 下载 相关 举报
操作系统磁盘调度算法实验报告及代码_第1页
第1页 / 共7页
操作系统磁盘调度算法实验报告及代码_第2页
第2页 / 共7页
操作系统磁盘调度算法实验报告及代码_第3页
第3页 / 共7页
操作系统磁盘调度算法实验报告及代码_第4页
第4页 / 共7页
操作系统磁盘调度算法实验报告及代码_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《操作系统磁盘调度算法实验报告及代码》由会员分享,可在线阅读,更多相关《操作系统磁盘调度算法实验报告及代码(7页珍藏版)》请在金锄头文库上搜索。

1、本文格式为Word版,下载可任意编辑操作系统磁盘调度算法实验报告及代码 华南农业大学信息(软件)学院 操作系统分析与设计实习劳绩单 开设时间:2022学年第一学期 小组成员、组内分工及各成员劳绩 学号 姓名 分工 劳绩 测验题目题目二 磁盘调度算法的模拟实现及比较 通过这次的操作系统课程设计,我懂得了大量,首先是让我对操作系统磁盘调度策略有了更加深刻的熟悉,自己动手操作比光看书能更加了解磁盘调度的策略和原理,同时对磁盘调度的四种算法先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、有了更深刻的理解和掌管,使我能够为磁盘调度选择适当的算法,提高CPU工作效率。设计过程中遇到的困难在老

2、师和同学的扶助下顺遂解决并通过了验收,我深刻认自我评价识到算法的规律性对程序的重要影响,算法的切实度对程序运行结果的重要影响,这对我以后在操作系统的学习中有极大扶助。也巩固了我写代码的才能,尤其是设计算法有了进步,知道了时间繁杂度的重要性。由于这次的课程设计是单人做的,所以也巩固了独立做程序的才能。不过,通过这次课程设计,我也了解到自己有好多缺乏,譬如在设计界面方面明显阅历缺乏,大量地方都需要上网查询,以至于界面的简陋,代码也不够工整领略。总的来说,这次课程设计不仅提升了自己的学识和才能,还让自己知道了自己的大量缺乏之处。 教师评语 评价指标: ? 题目内容和要求完成处境优 良 中 差 ? 对

3、算法原理的理解程度 优 良 中 差 ? 程序设计水平优 良 中 差 ? 程序运行效果及正确性 优 良 中 差 ? 课程设计报告布局明显优 良 中 差 ? 报告中总结和分析详尽优 良 中 差 教师签名 一、需求分析: (1)输入的形式和输入值的范围: 在文本框输入序列长度,输入值为int类型 (2)输出的形式: 输出每种磁盘调度算法的服务序列 (3)程序所能达成的功能: 模拟实现FCFS、SSTF、电梯LOOK、C-SCAN 算法,并计算及对比磁头移动道数。 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。 输入磁道范围 输入所选磁道个数 选择算法 01000 01000 14

4、 二、概要设计: 主程序流程图: 三、细致设计: 先来先服务算法(FCFS): 按先来后到次序服务,未作优化。 最简朴的移臂调度算法是“先来先服务”调度算法,这个算法实际上不考虑访问者要求访问的物理位置,而只是考虑访问者提出访问苦求的先后次序。 采用先来先服务算法抉择等待访问者执行输入输出操作的次序时,移动臂来回地移动。先来先服务算法花费的探索时间较长,所以执行输入输出操作的总时间也很长。 最短寻道时间优先算法(SSTF) : 最短探索时间优先调度算法总是从等待访问者中挑拣探索时间最短的那个苦求先执行的,而不管访问者到来的先后次序。与先来先服务、算法对比,大幅度地裁减了探索时间,因而缩短了为各

5、访问者苦求服务的平均时间,也就提高了系统效率。 但最短查找时间优先(SSTF)调度,FCFS会引起读写头在盘面上的大范围移动,SSTF查找距离磁头最短(也就是查找时间最短)的苦求作为下一次服务的对象。SSTF查找模式有高度局部化的倾向,会推迟一些苦求的服务,甚至引起无限拖延(又称饥饿)。 扫描算法(SCAN): SCAN 算法又称电梯调度算法。SCAN算法是磁头前进方向上的最短查找时间优先算法,它摈弃了磁头在盘面局部位置上的往复移动,SCAN算法在很大程度上消释了SSTF算法的不公允性,但仍有利于对中间磁道的苦求。“电梯调度”算法是从移动臂当前位置开头沿着臂的移动方向去选择离当前移动臂最近的那

6、个柱访问者,假设沿臂的移动方向无苦求访问时,就变更臂的移动方向再选择。但是,“电梯调度”算法在实现时,不仅要记住读写磁头的当前位置,还务必记住移动臂的当前前进方向。 循环扫描(C-SCAN): 循环扫描 CSCAN是为了裁减 SCAN 算法造成的某些进程的苦求被严重推迟,CSCAN 算法规定磁头单向移动。 函数调用关系图: 四、调试分析: (1) 调试过程中遇到的问题是如何解决的以及对设计与实现的议论和分析; 通过对每一行的输出判断问题展现在哪里,然后把出问题的地方缩小到确定范围,然后解决问题,如若解决不出那么上网查询,再不行就接洽同学。设计主要分为界面设计和算法设计,界面设计片面并没有举行过

7、多的提升,算法片面SSTF算法实现的对比繁杂,时间繁杂度较高。 (2) 算法的时间繁杂性(包括根本操作和其他算法的时间繁杂性的分析)和提升设想; FIFO算法体验一重循环,时间繁杂度为O(n),算法对比简朴; SSTF算法体验二重循环,时间繁杂度为O(n2),算法较为繁杂 SCAN和CSCAN算法含多个一重循环,时间繁杂度为O(n),动态数组存储服务序列; (3) 设计过程的阅历和体会; 设计过程务必要考虑时间繁杂度,过高的时间繁杂度会导致程序执行效率低下。务必要举行布局化设计,各个模块要很明显的表达,能在代码中找到相关模块的代码,这样才便于程序的维护和调试。 (4) 实现过程中展现的主要问题

8、及解决方法。 主要问题是SSTF算法的设计。解决方法是上网查询SSTF算法的代码,学习其中的算法思想,然后运用到自己的代码中去。 五、运行结果: 输入磁道范围、输入所选磁道个数、选择算法: 测试与运行结果:输出苦求序列、平均寻道时间: 六、总结: 通过这次的操作系统课程设计,我懂得了大量,首先是让我对操作系统磁盘调度策略有了更加深刻的熟悉,自己动手操作比光看书能更加了解磁盘调度的策略和原理,同时对磁盘调度的四种算法先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、有了更深刻的理解和掌管,使我能够为磁盘调度选择适当的算法,提高CPU工作效率。设计过程中遇到的困难在老师和同学的扶助下顺

9、遂解决并通过了验收,我深刻熟悉到算法的规律性对程序的重要影响,算法的切实度对程序运行结果的重要影响,这对我以后在操作系统的学习中有极大扶助。也巩固了我写代码的才能,尤其是设计算法有了进步,知道了时间繁杂度的重要性。由于这次的课程设计是单人做的,所以也巩固了独立做程序的才能。不过,通过这次课程设计,我也了解到自己有好多缺乏,譬如在设计界面方面明显阅历缺乏,大量地方都需要上网查询,以至于界面的简陋,代码也不够工整领略。总的来说,这次课程设计不仅提升了自己的学识和才能,还让自己知道了自己的大量缺乏之处。 七、源代码: #include #include #include #include using namespace std; #define maxsize 1000 /判断输入的数据是否有效 int decide(char str) /将字符串转换为数字 int trans(char str, int a) /冒泡排序算法 int *bubble(int cidao, int m) int i, j; int temp; for (i = 0; i cidaoj) temp = cidaoi; cidaoi = cidaoj; cidaoj = temp; int i; int sum = 0; for (i = 0; i 9) i+; return 0; break; 7

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号