精华内容
下载资源
问答
  • 寻道

    2011-12-12 18:48:13
    好久没有更新自己的博客了,我觉得人还是应该有个博客好好写点感悟的,不只局限于分享技术,点滴记录自己的思想,开始积累吧![@more@] ...
    好久没有更新自己的博客了,我觉得人还是应该有个博客好好写点感悟的,不只局限于分享技术,点滴记录自己的思想,开始积累吧![@more@]

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16628454/viewspace-1056805/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/16628454/viewspace-1056805/

    展开全文
  • 磁盘寻道时间

    千次阅读 2016-07-14 16:26:58
    寻道(Track)时,移动一个柱面需6ms,按下列算法计算所需寻道时间(柱面移动顺序及所需时间,总寻道时间;忽略到达指定柱面后所需寻道时间)。(上海交通大学1999年试题) ① 先来先服务。 ② 下一个最邻近柱面。 ...
    当前磁盘读写位于柱面号20,此时有多个磁盘请求,以下列柱面号顺序送至磁盘驱动器:10、22、20、2、40、6、38。寻道(Track)时,移动一个柱面需6ms,按下列算法计算所需寻道时间(柱面移动顺序及所需时间,总寻道时间;忽略到达指定柱面后所需寻道时间)。(上海交通大学1999年试题)
    ① 先来先服务。
    ② 下一个最邻近柱面。
    ③ 电梯算法(当前状态为向上)。
    先来先服务:
    ① 磁头移动顺序为:(20)→10→22→20→2→40→6→38 磁头移动总量是146柱面,总寻道时间是:146×6ms=876ms.
    ② 下一个最邻近柱面:
    磁头移动顺序为:(20)→20→22→10→6→2→38→40 磁头移动总量是60柱面,总寻道时间是:60×6ms=360ms.
    ③ 电梯算法
    磁头移动顺序为:(20)→20→22→38→40→10→6→2 磁头移动总量是58柱面,  总寻道时间是:58N×6ms=348ms.


    展开全文
  • 最短寻道时间优先算法(SSTF)&&扫描算法(SCAN)

    万次阅读 多人点赞 2018-10-19 16:04:52
    最短寻道时间优先算法(SSTF) SSTF问题描述:SSTF算法选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以使每次的寻找时间最短。当然,总是选择最小寻找时间并不能保证平均寻找时间最小,但是能提供比FCFS...

    目录

    1,最短寻道时间优先算法(SSTF)

    2,扫描算法(又称电梯算法)


    1,最短寻道时间优先算法(SSTF)

    • SSTF问题描述:SSTF算法选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以使每次的寻找时间最短。当然,总是选择最小寻找时间并不能保证平均寻找时间最小,但是能提供比FCFS算法更好的性能。这种算法会产生“饥饿”现象。
    • 1、算法思想:优先选择距当前磁头最近的访问请求进行服务,主要考虑寻道优先。

      2、优点:改善了磁盘平均服务时间。

      3、缺点:造成某些访问请求长期等待得不到服务。

    • 本算法是对输入的磁道首先进行非递减排序,然后判断当前磁头所在的磁道是否在将要寻找的磁道中,分别进行最短寻道时间计算。(如下图示,表示SSTF示意图)

    • 代码实现:
    //最短寻道时间优先SSTF
    #include "pch.h"
    #include <iostream>
    using namespace std;
    //快速排序
    int Partition(int *p, int low, int high)
    {
    	int i = low, j = high, pivot = p[low];
    	while (i < j)
    	{
    		while (i < j&&p[j] >= pivot)
    		{
    			j--;
    		}
    		if (i < j)
    		{
    			p[i] = p[j];
    			i++;
    		}
    		while (i < j&&p[i] <= pivot)
    		{
    			i++;
    		}
    		if (i < j)
    		{
    			p[j] = p[i];
    			j--;
    		}
    	}
    	p[i] = pivot;
    	return i;
    }
    void QuickSort(int *q, int left, int right)
    {
    	if (left < right)
    	{
    		int pivotpos = Partition(q, left, right);
    		QuickSort(q, left, pivotpos - 1);
    		QuickSort(q, pivotpos + 1, right);
    	}
    
    }
    int main()
    {
    	int count = 0;//输入磁盘请求的个数
    	int currentStair;//当前所在的磁道
    	int n;
    	int temp_1, temp_2;
    	int size = 0;//步数计数变量
    	int temp_3, temp_4;
    	cout << "请输入要寻到的数量:" << endl;
    	cin >> count;
    	n = count;
    	int *arr = new int[count];
    	cout << "请输入要寻得磁道:" << endl;
    	for (int i = 0; i < count; i++)
    	{
    		cin >> arr[i];//输入楼梯数
    	}
    	cout << "please input currentstars:" << endl;
    	cin >> currentStair;
    	QuickSort(arr, 0, count - 1);
    	for (int i = 0; i < count; i++)//当前磁道在要寻磁道中
    	{
    		if (currentStair == arr[i]) {
    			currentStair = arr[i];
    			temp_1 = i - 1;
    			temp_2 = temp_1 + 1;
    			while (temp_1 >= 0 && temp_2 < count)
    			{
    				if (abs(currentStair - arr[temp_1]) < abs(arr[temp_2] - currentStair))
    				{
    					size += abs(currentStair - arr[temp_1]);
    					currentStair = arr[temp_1];
    					if (temp_1 > 0)
    						temp_1 -= 1;
    					if (currentStair == arr[temp_1])
    					{
    						while (temp_2 < count)
    						{
    							size += abs(arr[temp_2] - currentStair);
    							currentStair = arr[temp_2];
    							temp_2++;
    						}
    					}
    				}
    				else {
    					size += abs(arr[temp_2] - currentStair);
    					if (temp_2 < count)
    						temp_2 += 1;
    					if (currentStair == arr[temp_2])
    					{
    						while (temp_1 > 0)
    						{
    							size += abs(arr[temp_1] - currentStair);
    							currentStair = arr[temp_1];
    							temp_1--;
    						}
    					}
    
    				}
    			}
    		}
    	}
    	for (int h = 0; h < count; h++)//当前所在的位置不在要寻的磁道中
    	{
    		if (currentStair > arr[h - 1] && currentStair < arr[h])//定位当前的位置
    		{
    			temp_3 = h - 1;
    			temp_4 = h;
    			while (temp_3 >= 0 && temp_4 < count)
    			{
    				if (abs(currentStair - arr[temp_3]) < abs(arr[temp_4] - currentStair))
    				{
    					size += abs(currentStair - arr[temp_3]);
    					currentStair = arr[temp_3];
    					if (temp_3 > 0)
    						temp_3 -= 1;
    					if (currentStair == arr[temp_3])
    					{
    						while (temp_4 < count)
    						{
    							size += arr[temp_4] - currentStair;
    							currentStair = arr[temp_4];
    							temp_4++;
    						}
    					}
    				}
    				else {
    					size += abs(arr[temp_4] - currentStair);
    					currentStair = arr[temp_4];
    					if (temp_4 < count)
    						temp_4 += 1;
    					if (currentStair == arr[temp_4])
    					{
    						while (temp_3 > 0)
    						{
    							size += arr[temp_3] - currentStair;
    							currentStair = arr[temp_3];
    							temp_3--;
    						}
    					}
    
    				}
    			}
    		}
    		else
    			if (currentStair < arr[0])
    			{
    				int i = 0;
    				while (i < count)
    				{
    					size += abs(arr[i] - currentStair);
    					currentStair = arr[i];
    					i++;
    				}
    			}
    			else
    				if (currentStair > arr[count - 1])
    				{
    					int j = count - 1;
    					while (j > 0)
    					{
    						size += abs(arr[j] - currentStair);
    						currentStair = arr[j];
    						j--;
    					}
    				}
    
    	}
    	int average = size / count;
    	cout << "最少寻磁道数是:"<<size<<"平均寻磁道数是:"<<average<< endl;
    }
    	

    2,扫描算法(又称电梯算法)

    • 扫描算法问题描述:SCAN算法在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。由于磁头移动规律与电梯运行相似,故又称为电梯调度算法。SCAN算法对最近扫描过的区域不公平,因此,它在访问局部性方面不如FCFS算法和SSTF算法好。
    • 算法思想:当设备无访问请求时,磁头不动;当有访问请求时,磁头按一个方向移动,在移 [2]  动过程中对遇到的访问  请  求   进行服务,然后判断该方向上是否还有访问请求,如果有则继续扫描;否则改变移动方向,并为经过的访问请求服务,如此反复 。
    • 优点:克服了最短寻道优先的缺点,既考虑了距离,同时又考虑了方向。(如下图表示SCAN图示)

    • 代码实现:
    import java.util.Scanner;
    public class Test_louti {
    //本算法我假设楼梯最大到200层,
    		public static void main(String[] args) {
    			System.out.println("please input your scan from 1 to 200:");
    			Scanner input =new Scanner(System.in);
    			int []arr=new int[200];//200楼电梯
    			System.out.println("请输入你要输入的楼层数:");
    			int number=input.nextInt();//number记录当前所在楼梯
    			int b=0;
    			System.out.println("请输入楼梯:");
    			for(int i=0;i<=200;i++)
    			{
    				if(b<number){
    				int num=input.nextInt();
    				arr[num]=num;//记住楼梯,从小到大
    				b++;
    				i++;
    				}
    				if(b==number)
    					break;
    			}
    			System.out.println("请输入当前楼梯号码:");
    			int currentScan=input.nextInt();//当前楼梯
    			int i=currentScan,team=0,j=0,a=currentScan;
    			arr[currentScan]=currentScan;
    			while(i<200)//i记住当前判断的楼梯号码
    			{
    				if(arr[i]!=0)
    				{
    					team+=(arr[i]-arr[currentScan]);
    					currentScan=i;
    					j=i;//记住最后的楼梯号码
    				}
    				i+=1;
    			}
    			//下半层
    			while(a>0)
    			{
    				if(arr[a]!=0)
    				{
    					team+=Math.abs((arr[a]-arr[j]));
    					j=a;	
    				}
    				a-=1;
    			}
    			System.out.println("总的移动量是:"+team);
    		}
    		}
    

     

    展开全文
  • 吞吐率和寻道

    2020-08-12 17:13:09
    把磁盘看成一个光盘,上边有一个磁头用来写东西,就像钢笔头一样,要在一个位置写东西,需要先将磁头移动到那个位置,这个操作叫seek(旋转+寻道),接下来就是将数据顺序写下去(write)。写完数据之后磁头自动向后...

    吞吐率,是指顺序从磁盘读取数据时候,能达到的最大传输速度,通常单位是 MB/s。

    把磁盘看成一个光盘,上边有一个磁头用来写东西,就像钢笔头一样,要在一个位置写东西,需要先将磁头移动到那个位置,这个操作叫seek(旋转+寻道),接下来就是将数据顺序写下去(write)。写完数据之后磁头自动向后移动,如果继续挨着写就不需要 seek 了。

    展开全文
  • 磁盘寻道调度算法

    2020-03-31 11:03:03
    磁盘调度在多道程序设计的计算机系统中,各个进程可能会不断提出不同的对磁盘进行读 / 写操作的请求。...最短寻道时间优先算法(SSTF), 扫描算法(SCAN), 循环扫描算法(CSCAN)   例: 假定某磁盘共有 ...
  • 最短寻道时间优先SSTF

    2021-01-12 11:03:16
    /*最短寻道时间优先SSTF(Shortest Seek Time First)算法:选择这样的进程,其要求访 问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。*/ #include <malloc.h> #include<stdio.h> #...
  • } } } } 磁盘调度算法先来先服务 / 最短寻道优先 #include<stdio.h> #include<stdlib.h> #include<math.h> void FCFS(int a[],int m,int now;// 先来先服务 void SSTF(int a[],int n,int now;// 最短寻道时间优先 ...
  • 学号 P71514032 专业 计算机科学与技术 姓名 实验日期 2017/12/7 教师签字 成绩 实验报告 实验名称 磁盘调度先来先服务策略 最短寻道策略 实验目的 磁盘调度中寻道时间直接影响到数据访问的快慢通过本次实验学习如何...
  • 磁盘调度算法先来先服务/最短寻道优先 #include<stdio.h> #include<stdlib.h> #include<math.h> void FCFS(int a[],int m,int now;//先来先服务 void SSTF(int a[],int n,int now;//最短寻道时间优先 void choose...
  • 磁盘寻道调度问题

    千次阅读 2018-08-19 11:17:26
    最短寻道时间优先算法(**FSST**-shorest seek time first) 3. 扫描算法(SCAN)也称为电梯调度 4. 循环扫描算法(CSCAN) 先来先服务算法: 按照请求访问磁盘的先后顺序进行调度,最简单的...
  • 分别采用先来先服务算法(FCFS),最短寻道时间优先算法(SSTF),扫描算法(SCAN),循环扫描算法(CSCAN),分别求总寻道长度和平均寻道长度? 解析: 移臂调度算法在于有效利用磁盘,保证磁盘的快速访问。移臂调度主要有...
  • 操作系统中的,4种寻道算法。FCFS(先来先服务) SSTF(最短寻道时间) SCAN(扫描算法) CSCAN(循环扫描法)
  • 磁盘寻道时间计算

    千次阅读 2016-03-10 16:05:00
    ㈠ 磁道 以盘片中心为圆心,用不同的半径,划分出不同的很窄的圆环形区域,称为磁道㈡ 扇区 ...㈣ 寻道时间磁头从开始移动到数据所在磁道所需要的时间寻道时间越短,I/O操作越快,     1.磁盘结构图:   工
  • 最短寻道时间优先算法(SSTF) 扫描算法(SCAN) 循环扫描算法(CSCAN) 先来先服务算法(FCFS,First Come First Served)  根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个...
  • 本代码包含银行家算法 处理机调度 磁盘寻道三个实验,解压后将所有文件导入Eclipse运行即可,注意:解压后将所有文件导入。
  • 最短寻道时间优先(SSTF,Shortest Seek Time First) 该算法选择这样的过程,其要求访问的的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。但这种算法不能保证平均寻道时间最短。下图示出了按SSTF算法...
  • 可以对给出的任意的磁盘请求序列、计算平均寻道长度; 要求可定制磁盘请求序列长度、磁头起始位置、磁头移动方向。 测试:假设磁盘访问序列:98,183,37,122,14,124,65,67;读写头起始位置:53,方向:磁道...
  • 操作系统实验-磁盘调度:先来先服务、最短寻道时间算法
  • 怎样算平均寻道时间

    万次阅读 2014-08-06 09:46:13
    一个单片磁盘的旋转速率为7200rpm,一面上的磁道数是30000,每道扇区数是600,寻道时间是每横越百磁道用1ms.假定开始时磁头位于磁道0,收到一个存取随机磁道上随机扇区的请求. 1,平均寻道时间为多少? 2,平均旋转延迟是...
  • 1.磁道以盘片中心为圆心,用不同的半径,划分出不同的很窄的圆环形区域,称为磁道。2.柱面上下一串盘片中,相同半径的磁道所组成的一个圆柱型的环壁,就称为...寻道时间磁头从开始移动到移动到数据所在磁道所需要...
  • 腾讯题目——求磁头平均寻道长度

    万次阅读 多人点赞 2018-04-05 15:10:12
    若采用最短寻道时间优先算法,则平均寻道长度是多少? 133 58.3 57.7 70.9 解析: 移臂调度算法在于有效利用磁盘,保证磁盘的快速访问。移臂调度主要有以下几种算法: 先来先服务算法(FCFS):该算法只...
  • 硬盘转速和平均寻道时间

    万次阅读 2017-05-08 12:45:26
    设一个磁盘的平均寻道时间为20ms,传输速率是1MB/s,控制器开销是2ms,转速为每分钟5400转。求读写一个512KB的平均磁盘访问时间。答案:读写一个512字节的扇区的平均时间为28.1ms平均旋转延时 = 0.5/5400转/分 = 0....
  • 该算法要求访问的磁道与当前磁头所在的距离你最近,使寻道时间最短 例如给数据90,58,55,39,38,18,150,160,184 平均寻道长度为27.5 原理见汤子瀛的《操作系统》第四版 p233页 首要的是分析如何才能找到第一个最接近...
  • 最短寻道时间优先(SSTF)和扫描(SCAN)算法。理解各调度算法的工作原理 对给出的任意的磁盘请求序列、计算平均寻道长度;要求可定制磁盘请求序列长度、磁头起始位置、磁头移动方向。 测试:假设磁盘访问序列:98,...
  • 最短寻道时间优先(SSTF)

    千次阅读 2018-12-21 18:48:54
    从100号磁道开始 被访问的下一个磁道 移动距离(磁道数) 90 10 58 32 55 3 ... 平均寻道长度:27.5 #include&lt;iostream&gt; #include&lt;algorithm&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,917
精华内容 766
关键字:

寻道