fat998

本文介绍了硬盘调度的实验,包括FCFS、SSTF、SCAN、C-LOOK等算法的实现和性能分析。通过C程序模拟这些算法,研究了寻道时间和平均响应时间。实验结果显示,FCFS算法平均响应时间最差,而C-LOOK算法表现最优。
摘要由CSDN通过智能技术生成

Lab Week 18

实验内容:硬盘调度。

编写一个 C 程序模拟实现课件 Lecture25 中的硬盘磁头调度算法,包括FCFS、SSTF、SCAN 和 C-LOOK 调度策略。

  • 固定一个硬盘柱面数;
  • 输入一批随机的硬盘柱面请求序列,计算各个调度策略下的磁头移动平均总距离(假设磁头运动是理想匀速的,可以把移动距离看作是移动时间,将总时间除以请求数得到平均响应时间)。

分析上述实验结果。

磁盘调度

磁盘为现代计算机系统提供大量外存,容量以GB计数,结构如下所示。
在这里插入图片描述

每一层称为一个柱面,共有数千个柱面。每个柱面分有若干个扇区。每个扇区有若干个磁道。数据可以理解为储存在某个柱面的某个扇区的某个磁道上。
在通电后磁盘高速旋转每秒约转60~250次。
读取和写入数据时,磁头要移动到对应的柱面,所需时间称为寻道时间
旋转磁头到目标扇区的时间称为选择延迟
本实验仅考虑寻道时间

操作系统的一个重要职责就是有效利用硬件,让磁盘有较快的访问速度和较宽的带宽。
磁盘带宽指一段传输的总字节数除以传输的时间
当程序需要进行磁盘I/O时,将调用系统调用,但磁盘速度远远慢于内存和CPU,磁盘需要建立等待队列,维护多个待处理的请求。
磁头需要根据磁盘调度算法移动和读写信息。
本实验中不考虑磁头的读写时间。

FCFS先来先服务调度算法

按加入顺序处理I/O请求
貌似对所有进程都是公平的
如果有许多进程/请求,则在性能上接近随机调度
即每一次寻道时间的期望为三分之一的柱面数

代码中用数组模拟的FIFO队列实现
关键代码如下

if(!tim1)
     	{
   //FCFS算法 
     		while(fifo[h1]==pos1 && h1<=t1)
     		{
   // 若到达了目标柱面,就执行读写 
     			h1++;
     			ans1++;
			}
     		
     		if(h1<=t1)
     		{
   
     			if( fifo[h1]> pos1)
				pos1++;
				else
				pos1--
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值