操作系统移动臂调度算法的实现

合集下载

《操作系统》考试试卷及答案(B卷)

《操作系统》考试试卷及答案(B卷)

《操作系统》考试试卷及答案(B卷)课程名称:操作系统考试时间:120分钟年级:xxx级专业:xxx题目部分,(卷面共有51题,100分,各大题标有题量和总分)一、单项选择题(28小题,共28分)1、把作业空间中使用的逻辑地址变为内存中物理地址称为()。

A、加载B、重定位C、物理化D、逻辑化答案:B2、考虑页面置换算法,系统有m个物理块供调度,初始时全空,页面引用串长度为p,包含了n个不同的页号,无论用什么算法,缺页次数不会少于()。

A、mB、pC、nD、min(m,n)答案:C3、段页式存储管理汲取了页式管理和段式管理的长处,其实现原理结合了页式和段式管理的基本思想,即()。

A、用分段方法来分配和管理物理存储空间,用分页方法来管理用户地址空间B、用分段方法来分配和管理用户地址空间,用分页方法来管理物理存储空间C、用分段方法来分配和管理主存空间,用分页方法来管理辅存空间D、用分段方法来分配和管理辅存空间,用分页方法来管理主存空间答案:B4、首次适应算法的空闲分区是()。

A、按大小递减顺序连在一起B、按大小递增顺序连在一起C、按地址由小到大排列D、按地址由大到小排列答案:C5、文件存储空间中空闲块管理方法中没有()。

A、空闲文件目录B、位示图C、空闲块散列D、空闲块链答案:C6、启动磁盘执行一次输入输出操作时,()是硬件设计时就固定的。

A、寻道时间B、延迟时间C、传输时间D、一次I/O操作的总时间答案:C7、设磁盘的I/O请求队列中的柱面号为19、376、205、134、18、56、193、396、29、3、19、40,磁头的起始位置为100若采用SCAN(电梯调度)算法(磁头的运行方向是从大磁道向小磁道进行的),则磁头移动()个磁道。

A、205B、480C、490D、512答案:C8、在以下磁盘调度中,()算法可能出现饥饿现象。

A、电梯调度B、最短寻道时间优先C、循环扫描算法D、先来先服务答案:B9、以下对物理块和逻辑记录关系的描述中正确的是()。

考研操作系统-设备管理(一)

考研操作系统-设备管理(一)

考研操作系统-设备管理(一)(总分:86.00,做题时间:90分钟)一、单项选择题(总题数:15,分数:30.00)1.通过硬件和软件的功能扩充,把原来独占的设备改造成若干用户共享的设备,这种设备称为( )。

A.存储设备 B.系统设备 C.虚拟设备 D.用户设备(分数:2.00)A.B.C. √D.解析:2.是操作系统中采用的以空间换时间的技术。

A.通道技术 B.SPOOLing技术 C.覆盖技术 D.虚拟存储技术(分数:2.00)A. √B.C.D.解析:3.CPU输出数据的速度远远高于打印机的打印速度,为解决这一矛盾,可采用 ( )。

A.虚拟技术 B.通道技术 C.并行技术 D.缓冲技术(分数:2.00)A.B.C.D. √解析:4.关于设备管理和文件管理这二者的关系,下面说法中正确的是( )。

A.设备管理是文件系统的基础,文件管理是设备管理的一部分B.文件系统为用户提供按名存取服务,实现逻辑文件与物理文件C.文件管理和设备管理是操作系统的两个完全独立的功能,二者不存在任何关系D.设备管理与文件系统密切相关,文件系统是设备管理的基础,设备管理必须依赖文件管理才能最终完成相应的功能(分数:2.00)A.B. √C.D.解析:5.在下面的4个选项中,不属于设备管理的功能是( )。

A.实现虚拟设备 B.实现外围设备的分配与回收C.实现按名存取 D.实现外围设备的启动(分数:2.00)A.B.C. √D.解析:6.打印机是( )。

A.独占设备 B.共享设备C.有时是独占设备,有时是共享设备 D.常用的字符输出设备(分数:2.00)A. √B.C.D.解析:7.对输入/输出设备,输入/输出操作的信息传输单位为( );对存储型设备,输入/输出操作的信息是以( )为单位传输的。

A.字节,字 B.字符,字 C.位,块 D.字符,块(分数:2.00)A.B.C.D. √解析:8.下面关于计算机外围设备的说法中错误的是( )。

操作系统(第二版)习题答案

操作系统(第二版)习题答案

第1章一、填空1.计算机由硬件系统和软件系统两个部分组成,它们构成了一个完整的计算机系统。

2.按功能划分,软件可分为系统软件和应用软件两种。

3.操作系统是在裸机上加载的第一层软件,是对计算机硬件系统功能的首次扩充。

4.操作系统的基本功能是处理机(包含作业)管理、存储管理、设备管理和文件管理。

5.在分时和批处理系统结合的操作系统中引入“前台”和“后台”作业的概念,其目的是改善系统功能,提高处理能力。

6.分时系统的主要特征为多路性、交互性、独立性和及时性。

7.实时系统与分时以及批处理系统的主要区别是高及时性和高可靠性。

8.若一个操作系统具有很强的交互性,可同时供多个用户使用,则是分时操作系统。

9.如果一个操作系统在用户提交作业后,不提供交互能力,只追求计算机资源的利用率、大吞吐量和作业流程的自动化,则属于批处理操作系统。

10.采用多道程序设计技术,能充分发挥CPU 和外部设备并行工作的能力。

二、选择1.操作系统是一种B 。

A.通用软件B.系统软件C.应用软件D.软件包2.操作系统是对C 进行管理的软件。

A系统软件B.系统硬件C.计算机资源D.应用程序3.操作系统中采用多道程序设计技术,以提高CPU和外部设备的A 。

A.利用率B.可靠性C.稳定性D.兼容性4.计算机系统中配置操作系统的目的是提高计算机的B 和方便用户使用。

A.速度B.利用率C.灵活性D.兼容性5.C 操作系统允许多个用户在其终端上同时交互地使用计算机。

A.批处理B.实时C.分时D.多道批处理6.如果分时系统的时间片一定,那么D ,响应时间越长。

A.用户数越少B.内存越少C.内存越多D.用户数越多三、问答1.什么是“多道程序设计”技术?它对操作系统的形成起到什么作用?答:所谓“多道程序设计”技术,即是通过软件的手段,允许在计算机内存中同时存放几道相互独立的作业程序,让它们对系统中的资源进行“共享”和“竞争”,以使系统中的各种资源尽可能地满负荷工作,从而提高整个计算机系统的使用效率。

操作系统磁头引臂调度算法

操作系统磁头引臂调度算法

操作系统磁头引臂调度算法操作系统的磁头引臂调度算法是磁盘调度算法的一种,用于管理磁盘访问请求的顺序,以提高磁盘I/O系统的性能。

在操作系统中,磁道是磁盘表面上的一个圆环,磁头是读写磁道上数据的设备。

磁头引臂用于支撑磁头,并将磁头移动到不同的磁道上进行读写操作。

磁头引臂调度算法的目标是最小化磁头移动的时间,以减少访问延迟并提高磁盘的吞吐量。

常见的磁头引臂调度算法有以下几种:1.先来先服务算法(FCFS):该算法将磁盘请求按照它们到达磁盘的顺序进行服务。

虽然该算法实现简单,但是可能会导致磁头在不同的磁道上频繁移动,从而降低磁盘I/O系统的性能。

2.最短寻道时间优先算法(SSTF):该算法选择离当前磁头位置最近的磁道进行服务。

这样可以最小化磁头移动的距离,从而提高磁盘I/O系统的性能。

然而,该算法可能会导致一些请求一直等待,从而产生饥饿现象。

3.扫描算法(SCAN):该算法将磁头按照一个方向移动,直到到达最外或最内磁道。

然后,磁头方向改变,并在返回的过程中服务等待的磁道请求。

这样可以通过服务等待请求来减少移动距离。

然而,该算法可能会导致一些请求等待时间较长。

4.循环扫描算法(C-SCAN):该算法类似于扫描算法,但是在磁头到达一端后,直接返回到另一端并重新开始。

这样可以避免一些请求长时间等待。

5.电梯算法(LOOK):该算法类似于扫描算法,但是在磁头到达一端后,不直接返回,而是只服务等待的磁道请求。

这样可以减少磁头移动的距离,并提高磁盘I/O 的吞吐量。

以上是常见的磁头引臂调度算法,它们各有优劣。

在实际应用中,选择合适的磁头引臂调度算法取决于具体的应用场景和需求。

一般来说,SSTF算法和LOOK算法是应用较广泛的磁头引臂调度算法,它们相对简单而且能够提供较好的性能。

值得注意的是,随着技术的发展,新的磁盘调度算法也在不断涌现,例如基于预测磁盘访问模式的算法(如SSF和C-SCAN-EDF算法)以及基于套接字的磁盘调度算法(如HybridSCAN算法)。

操作系统有哪些主要调度算法

操作系统有哪些主要调度算法

操作系统有哪些主要调度算法操作系统调度算法一、磁盘调度1.先来先服务fcfs:是按请求访问者的先后次序启动磁盘驱动器,而不考虑它们要访问的物理位置2.最短一般说来时间优先sstf:使距当前磁道最近的命令访问者启动磁盘驱动器,即是使查找时间最短的那个作业先继续执行,而不考量命令访问者到来的先后次序,这样就消除了先来先服务调度算法中磁臂移动过小的问题3.扫描算法scan或电梯调度算法:总是从磁臂当前位置开始,沿磁臂的移动方向去选择离当前磁臂最近的那个柱面的访问者。

如果沿磁臂的方向无请求访问时,就改变磁臂的移动方向。

在这种调度方法下磁臂的移动类似于电梯的调度,所以它也称为电梯调度算法。

4.循环读取算法cscan:循环读取调度算法就是在读取算法的基础上改良的。

磁臂改成单项移动,由外向里。

当前边线已经开始沿磁臂的移动方向回去挑选距当前磁臂最近的哪个柱面的访问者。

如果沿磁臂的方向并无命令出访时,再返回最外,出访柱面号最轻的作业命令。

操作系统调度算法二、进程调度算法1.先进先出算法fifo:按照进程步入准备就绪队列的先后次序去挑选。

即为每当步入进程调度,总是把准备就绪队列的队首进程资金投入运转。

2.时间片轮转算法rr:分时系统的一种调度算法。

轮转的基本思想是,将cpu的处理时间划分成一个个的时间片,就绪队列中的进程轮流运行一个时间片。

当时间片结束时,就强迫进程让出cpu,该进程进入就绪队列,等待下一次调度,同时,进程调度又去选择就绪队列中的一个进程,分配给它一个时间片,以投入运行。

3.最低优先级算法hpf:进程调度每次将处理机分配给具备最低优先级的准备就绪进程。

最低优先级算法可以与相同的cpu方式融合构成可以抢占市场式最低优先级算法和不容抢占市场式最低优先级算法。

4.多级队列反馈法:几种调度算法的结合形式多级队列方式。

操作系统调度算法三、常用的批处理作业调度算法1.先来先服务调度算法fcfs:就是按照各个作业进入系统的自然次序来调度作业。

自考02323《操作系统概论》真题及(2022.10)

自考02323《操作系统概论》真题及(2022.10)

自考02323《操作系统概论》真题及(2022.10)自考02323《操作系统概论》真题解析(2022.10)1.[单选题] 下列有关系统软件的说法中,正确的是()A.系统软件与具体的应用领域无关,解决任何领域的问题一般都要用到系统软件B.系统软件与具体的应用领域有关,解决任何领域的问题一般都要用到系统软件C.系统软件与具体的应用领域无关,解决任何领域的问题都不需要用到系统软件D.系统软件与具体的应用领域有关,一些问题的解决不一定非要用到系统软件2.[单选题] 操作系统负责管理计算机的()A.程序B.作业C.资源D.进程3.[单选题] 设计实时操作系统时,首先应考虑系统的()A.可靠性和交互性B.实时性和可靠性C.吞吐能力和可靠性D.吞吐能力和设备利用率4.[单选题] 正在运行的进程发现定点操作数溢出,此时发生中断,其中断类型属于()A.程序中断B.访管中断C.输入循出中断D.外部中断5.[单选题] 下列体现了原语主要特点的是()A.并发性B.异步性C.共享性D.不可分割性6.[单选题] 按照作业进入输入井的先后次序来挑选作业的调度算法是()A.计算时间短的作业优先算法B.响应比高者优先算法C.先来先服务算法D.优先级调度算法7.[单选题] 用于存放当前参加运算的操作数、运算结果等寄存器是()A.指令寄存器B.通用寄存器C.控制寄存器D.程序状态字寄存器8.[单选题] 在页式存储系统中,逻辑地址由两部分组成,分别是()A.页号、页内地址B.块号、块内地址C.页号、块号D.页内地址、块内地址9.[单选题] 某页式管理系统的逻辑地址采用16位,其中高6位用于页号,低10位用于页内地址。

有一个程序,访问的逻辑地址(十进制)是2058,那么它的页内地址(十进制)是()A.2058B.1058C.1034D.1010.[单选题] 文件系统实现按名存取的重要手段是()A.堆栈结构B.指针C.页表D.文件目录11.[单选题] 索引文件组织的一个主要优点是()A.不需要链接指针B.能实现物理块的动态分配C.回收实现比较简单D.用户存取方便12.[单选题] 当前目录是/usr/meng,其下属文件prog/file.c的绝对路径名是()A./usr/meng/file.cB./usr/file.cC./prog/file.cD./usr/meng/prog/file.c13.[单选题] 存放在磁盘上的文件以链接结构组织,假定磁盘的分块大小为每块512字节,而文件的逻辑记录的大小为每个记录250字节。

操作系统-第8章练习题

操作系统-第8章练习题

0、磁盘的驱动调度有“移臂调度”和“旋转调度”两部分组成。

常用的移臂调度算法有:先来先服务算法最短寻找时间优先算法电梯调度算法单向扫描算法。

(要注意题目要求的是哪种算法,求总移动距离还是平均移动距离)假设柱面的编号从0到199。

例如,如果现在读写磁头正在53号柱面上执行输入输出操作,而等待访问者依次要访问的柱面为98,183,37,122,14,124,65,67。

(1).先来先服务调度算法当53号柱面上的操作结束后,访问柱面的次序为98,183,37,122,14,124,65,67。

读写磁头总共移动了640个柱面的距离。

(从53开始,每次移动距离之和,平均移动距离是640/8=80个柱面)(2).最短寻找时间优先调度算法现在当53号柱面的操作结束后,访问次序为65、67、37、14,98,122,124,183。

读写磁头总共移动了236个柱面的距离。

(从53开始,每次找距离当前最近的进行移动)(3) 电梯调度算法由于该算法是与移动臂的方向有关,所以,应分两种情况来讨论。

(i)移动臂先向外移。

当前正在53号柱面执行操作的读写磁头是移动臂由里向外(向0号柱面方向)带到53号柱面的位置,因此,当访问53号柱面的操作结束后,依次访问的次序为37、14,65,67,98,122,124,183。

读写磁头共移动了208个柱面的距离。

(ii)移动臂先向里移。

当前正在53号柱面执行操作的读写磁头是移动臂由外向里(向柱面号增大方向)带到53号柱面的位置,因此,当访问53号柱面的操作结束后,依次访问的次序为65、67,98,122,124,183、37,14柱面的访问者服务。

读写磁头共移动了299个柱面的距离。

(总之象电梯一样,移动一个来回完成所有访问)(4).单向扫描调度算法1. 一个磁盘组有100个柱面,每柱面8个磁道,每磁道8个扇区,现有一个文件含5000个记录,每记录与扇区大小相等,在磁盘组上顺序存放(从0面0道0扇区开始),问(1)第3468个记录的物理位置(2)第56个柱面上第7磁道第5扇区对应的块号。

操作系统试卷1答案

操作系统试卷1答案

)1、引入多道程序设计技术的目的是 (C)增强系统的用户友好性B.提高系统实时性C.充分利用处理器资源D.扩充内存容量2、假设系统处于下列状态,目前系统剩余资源数量为2。

下列哪一个进程序列有可能发生死锁?(b)进程已占资源数最大需求数P1 1 2P2 4 7P3 3 5P4 5 7A)P1,P2,P3,P4B)P2,P3,P4,P1C)P3,P1,P2,P4D)P4,P3,P2,P13、有如下请求磁盘服务的队列,要访问的磁道分别是98,183,37,122,14,124,65,67。

现在磁头在53道上,若按最短寻道时间优先法,磁头总的移动道数是:(c )。

A.234B.235C.236D.2374、下列关于紧凑技术的叙述中,哪个是不正确的?(A)A.内存中任意一个程序都可以随时移动B.移动可以集中分散的空闲区C.移动会增加处理器的开销D.采用紧凑技术时应尽可能减少移动的信息量5、引入虚拟存储技术的关键前提是(B)A.有大容量的外存B.程序执行的局部性原理C.硬件提供地址转换机制D.选择一种合适的页面调度算法6、构成文件的基本单位是字符,这一类文件称为(A)A.流式文件B.记录式文件C.顺序文件D.索引文件7、下列哪一种(些)磁盘调度算法只考虑了公平性(A)Ⅰ. 先来先服务Ⅱ. 最短寻道时间优先Ⅲ. 扫描A.ⅠB.ⅡC.Ⅰ和ⅢD.全部8、在可变分区分配方案中,为了实现主存的空间分配,采用(d )进行管理。

A.页表 B.段表 C.段表+页表 D.分区分配表+空闲区表9、设某类资源有5个,由3个进程共享,每个进程最多可申请(b )个资源而使系统不会死锁。

A. 1 B. 2 C. 3 D. 410、动态重定位是在(c)完成的。

A.作业执行前集中一次 B.作业执行过程中集中一次C.作业执行过程中 D.作业执行过程中由用户11、进程从等待状态进入就绪状态可能是由于(c )A.现运行进程运行结束B.现运行进程执行了P操作C.现运行进程执行了V操作D.现运行进程时间片用完12、UNIX文件系统对盘空间的管理采用(d )A. FAT表法 B.位示图法C.空闲块链接法 D.空闲块成组链接法13、下列算法可用于磁盘移臂调度的是(b )A. LRU算法B. SCAN调度算法C.时间片轮转法 D.响应比高者优先算法14、特权指令( b)执行。

磁盘移臂调度过程模拟设计-先来先服务法、最短寻道时间

磁盘移臂调度过程模拟设计-先来先服务法、最短寻道时间

学号:课程设计题目磁盘移臂调度过程模拟设计—先来先服务法、最短寻道时间优先算法学院计算机科学与技术专业计算机科学与技术班级计算机姓名指导教师2011 年 1 月18 日课程设计任务书学生姓名:专业班级:计指导教师:工作单位:计算机科学与技术学院题目: 磁盘移臂调度过程模拟设计——先来先服务法、最短寻道时间优先算法初始条件:1.预备内容:阅读操作系统的文件管理章节内容,理解有关文件组织形式、存储设备的概念。

2.实践准备:掌握一种计算机高级语言的使用。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.编程序模拟磁盘调度的过程,采用指定算法,模拟并输出存取臂的移动顺序,并计算存取臂移动的磁道总数。

能够处理以下的情形:⑴可根据需要输入当前磁头的位置,磁头移动方向;⑵能够输入柱面数,磁道访问序列等参数,并能够显示调度结果(磁盘访问请求的磁道号以及磁头移动的总磁道数)。

2.设计报告内容应说明:⑴课程设计目的与功能;⑵需求分析,数据结构或模块说明(功能与框图);⑶源程序的主要部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他的其他方法(如果有,简要说明该方法);v)对实验题的评价和改进意见,请你推荐设计题目。

时间安排:设计安排一周:周1、周2:完成程序分析及设计。

周2、周3:完成程序调试及测试。

周4、周5:验收,撰写课程设计报告。

(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)指导教师签名:年月日系主任(或责任教师)签名:年月日磁盘移臂调度过程模拟设计——先来先服务法、最短寻道时间优先算法1 设计目的与功能1.1 设计目的编程序模拟磁盘调度的过程,采用指定算法,模拟并输出存取臂的移动顺序,并计算存取臂移动的磁道总数。

操作系统,

操作系统,
LRU算法是指把最近一段时间里最久没有被访问过的页面先淘汰,而LFU算法是指把最近一段时间里被访问的次数最少的页面淘汰。即前者是用时间来衡量,而后者是用频率来衡量。
32. 设有三个A,B,C,进程A和进程B各需要运行3毫秒的处理器时间,而进程C需要24毫秒的运行时间,分别考虑当三个进程到达顺序为A,B,C时及C,B,A时,用先来先服务进行调度时各自的平均等待时间。
A. 链接文件 B. 流式文件
C. 记录式文件 D. 只读文件
17. 文件系统采用二级文件目录可以 【 D 】
A. 缩短访问存储器的时间 B. 实现文件共享
A. 至少1个 B. 最多1个
C 最少2个 D. 最多4个
5. 进程具有如下特性,其中不包括 【 C 】
A. 动态性 B. 并发性
D
10:00 20分钟 70KB 10:10 10:40 11:00 60分钟
(2)四个作业的平均周转时间是 (40+60+120+60)/4=70分钟 。
36. 在单道批处理系统中,有四个作业进入系统,进入时间及所需时间如下表所示。现忽略作业调度所花时间。当第一个作业进入系统后就可开始调度。
为了使逻辑地址空间大于实际主存空间的作业可以执行,许多系统采用了虚拟存储器管理方法。
其工作原理是:把作业信息保留在磁盘等辅存上,当作业请求装入时,只将其中一部分先装入主存储器,作业执行中若要访问的信息不在主存中,则再设法把这些信息 装入主存。
依据:
(1)程序执行时有些部分是彼此互斥的,即在程序的一次执行中,执行了这部分就不会去执行另一部分。
A. 只能管理软件 B. 只能管理软件
C. 既不能管理软件,也不能管理硬件 D. 既能管理软件,又能管理硬件

磁盘移臂调度过程模拟设计-电梯算法_最短寻道时间优先教学文案

磁盘移臂调度过程模拟设计-电梯算法_最短寻道时间优先教学文案

磁盘移臂调度过程模拟设计-电梯算法_最短寻道时间优先学号:课程设计题目磁盘移臂调度过程模拟设计--电梯算法、最短寻道时间优先算法学院计算机科学与技术学院专业班级姓名指导教师吴利军2013 年 1 月15 日课程设计任务书学生姓名:指导教师:吴利军工作单位:计算机科学与技术学院题目: 磁盘移臂调度过程模拟设计——电梯算法、最短寻道时间优先算法初始条件:1.预备内容:阅读操作系统的文件管理章节内容,理解有关文件组织形式、存储设备的概念。

2.实践准备:掌握一种计算机高级语言的使用。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.编程序模拟磁盘调度的过程,采用指定算法,模拟并输出存取臂的移动顺序,并计算存取臂移动的磁道总数。

能够处理以下的情形:⑴可根据需要输入当前磁头的位置,磁头移动方向;⑵能够输入柱面数,磁道访问序列等参数,并能够显示调度结果(磁盘访问请求的磁道号以及磁头移动的总磁道数)。

2.设计报告内容应说明:⑴课程设计目的与功能;⑵需求分析,数据结构或模块说明(功能与框图);⑶源程序的主要部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他的其他方法(如果有,简要说明该方法);v)对实验题的评价和改进意见,请你推荐设计题目。

时间安排:设计安排一周:周1、周2:完成程序分析及设计。

周2、周3:完成程序调试及测试。

周4、周5:验收,撰写课程设计报告。

(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)指导教师签名:年月日系主任(或责任教师)签名:年月日磁盘移臂调度过程模拟设计——电梯算法、最短寻道时间优先算法1 课程设计目的与功能操作系统课程设计,主要是在学习操作系统课程并完成操作系统各部分实验的基础上,对操作系统的整体进行一个模拟,通过实践加深对各个部分的管理功能的认识,进一步分析各个部分之间的联系,以达到对完整系统的理解。

第五章_磁盘移臂调度算法

第五章_磁盘移臂调度算法

思考:假设磁盘访问序列: 98, 183, 37, 122, 14, 124, 65, 67 读写头起始位置:53 试安排磁头服务序列,并计算磁头移动总距离(道数)
四、循环扫描算法CSAN(Circular SCAN)(不考) SCAN算法存在这样的问题:当磁头刚从里向外 移动过某一磁道时、恰有进程请求访问此磁道,这 时该进程必须等待,待磁头从里向外.然后再从外 向里扫描完所有要访问的磁道后、才处理该进程的 请求,致使该进程的请求被严重地推迟。为了减少 这种延迟, SSTF的另一个修改版本是循环扫描法 (CSAN)。 该算法规定磁头单向移动。例如,只自里 向外移动,当磁头移到最外的被访问磁道时,磁头 立即返回到最里的欲访磁道,即将最小磁道号紧接 着最大磁道号构成循环,进行扫描。即一个在磁道0 上的I/O请求,将在磁道400上请求之后马上可以得 到满足。
思考:假设磁盘访问序列: 98, 183, 37, 122, 14, 124, 65, 67 读写头起始位置:53 试安排磁头服务序列,并计算磁头移动总距离(道数)
三、扫描(SCAN)算法(电梯调度算法) 具体做法:当设备无访问请求时,磁头不动; 当有访问请求时,磁头按一个方向移动,在移动过 程中对遇到的访问请求进行服务,然后判断该方向 上是否还有访问请求,如果有则继续扫描;否则改 变移动方向,并为经过的访问请求服务,如此反复.
按按此策略完成这组I/O操作需移动磁头的总距 离为490磁道。。(如右下图所示) 当前磁道=100 移动方向=OUT(向0道) 该方法克服了最短 进程号 磁道号 移动距离(磁道数) 寻道优先的缺点,既考 22 56 44 虑了距离,同时又考虑 29 40 16 了方向。 32 29 11 4 19 10 但是,必须说明, 12 19 0 这种修改的SCAN调度 34 18 1 策略并不总是优于纯 17 3 15 7 134 131(移动方向=IN) SSTF调度算法。 14 192 58 由于这种算法中磁 23 205 13 头移动的规律颇似电梯 9 376 171 的运行,故又常称为电 3 396 20 磁头移动的总距离=490 (磁道) 梯调度算法

操作系统复习(填空题)

操作系统复习(填空题)

第一章操作系统引论1.计算机配置了操作系统后不仅可以提高效率而且_____________。

2.操作系统的主要设计目标是__________和__________。

3.在操作系统中,不可中断执行的操作称为。

4.用户与操作系统之间的接口主要分为和两类。

5.操作系统的管理功能可分成五大部分,即:、、、和。

6.操作系统的两个最主要的特征是和。

(程序的并发性,资源的共享性)7.实时操作系统有如下两个基本特征:和。

(及时性,可靠性)8.如果操作系统具有很强的交互性,它可供多个用户使用,但时间响应不太及时,则属于________类型。

如果操作系统可靠,时间响应及时但仅有简单的交互能力,则属于类型。

如果操作系统在用户提交作业后不提供交互能力,只提供作业流程的自动化,则属于________类型。

9.操作系统的主要性能参数中是指单位时间内系统处理的作业量。

第二章进程管理1.如果信号量的当前值为-3,则表示系统中在该信号量上有个等待进程。

2.为了感知进程的存在并对它进行控制和管理,系统设置了。

3.在操作系统中,两个或多个事件在同一时间间隔内发生,这是指程序的性。

4.多道程序设计能充分发挥与之间的并行工作能力。

5.进程队列是把链接在一起形成的。

6.一个结束等待状态的进程,必须先变成状态,然后才可能运行。

7.进程运行满一个时间片后让出处理器,它的状态应变为状态。

8.进程是一个程序对某个数据集的。

9.在有m个进程的系统中出现死锁时,死锁进程的个数k应满足的条件是。

10.进程由两个主要部分组成,即和。

程序通常由和组成。

11.设有n个进程使用同一个共享变量(它们都有各自的相关临界区),如果最多允许m(m < n)个进程同时进入临界区,则信号量的变化范围是。

12.操作系统在控制和管理进程过程中,进程存在的唯一标志涉及到的一个重要数据结构是。

13.正在运行的进程,因某种原因而暂时停止运行,等待某个事件的发生,该进程将转变为___________状态。

操作系统—移动臂调度算法实现

操作系统—移动臂调度算法实现

操作系统—移动臂调度算法实现移动臂调度算法是指磁盘调度算法中的一种,主要用于提高磁盘读写操作的效率。

它是在磁盘读写请求队列中选择下一个读写请求的顺序,以减少寻道时间和旋转延迟,从而提高磁盘的响应速度。

常见的移动臂调度算法有FCFS(先来先服务)、SSTF(最短寻道时间优先)、SCAN(电梯算法)、C-SCAN(循环扫描算法)等。

SSTF(Shortest Seek Time First)是选择距离当前磁头最近的磁道进行处理。

它充分考虑了寻道时间,优先处理距离当前位置较近的请求,能够有效减少磁头移动的时间。

SCAN(电梯算法)是按照一个方向上的连续磁道进行处理,当到达一些方向的极限时,改变方向继续处理。

它模拟了电梯上下行的行为,能够有效减少磁头移动的次数,提高磁盘效率。

C-SCAN(循环扫描算法)类似于SCAN算法,不同之处在于当到达一些方向的极限时,不改变方向继续处理,而是返回磁道的起点重新开始。

以下是一个移动臂调度算法的实现:```pythondef FCFS(requests, start):current = startfor request in requests:current = requestdef SSTF(requests, start):current = startwhile requests:next_request = min(requests, key=lambda x: abs(x - current)) current = next_requestrequests.remove(next_request)def SCAN(requests, start, direction):current = startif direction == "up":for i in range(current, max(requests) + 1):if i in requests:current = ielif direction == "down":for i in range(current, min(requests) - 1, -1):if i in requests:current = idef C_SCAN(requests, start, direction):current = startif direction == "up":for i in range(current, max(requests) + 1):if i in requests:current = ielif direction == "down":for i in range(current, min(requests) - 1, -1):if i in requests:current = i#测试样例requests = [98, 183, 37, 122, 14, 124, 65, 67]start = 53direction = "up"print("FCFS: ", FCFS(requests, start))print("SSTF: ", SSTF(requests, start))print("SCAN: ", SCAN(requests, start, direction))print("C-SCAN: ", C_SCAN(requests, start, direction))```以上是一个简单的移动臂调度算法的实现,通过给定的请求队列和起始位置,可以计算出不同调度算法下的总寻道时间。

磁盘移臂调度算法

磁盘移臂调度算法

磁盘移臂调度算法
磁盘移臂调度算法是操作系统中磁盘调度算法的一种,其作用是为了提高磁盘读写效率。

磁盘移臂调度算法的思想是尽可能地减少磁盘移臂的次数,从而提高磁盘读写效率和系统响应速度。

下面就来介绍几种比较常见的磁盘移臂调度算法。

首先是先来先服务(FCFS)算法,具体的实现方式是按照磁盘请求的顺序进行处理,先来的请求先得到服务,但是这种算法容易产生“饥饿”状态,即某些请求长时间等待得不到服务的情况。

其次是最短寻道时间优先(SSTF)算法,该算法会优先选择磁头距离当前要访问的磁道最近的那个请求进行处理,简单高效但可能导致跨度大的请求一直被忽略。

再次是扫描(SCAN)算法,它的思路是磁头按照同一方向移动,直到抵达磁盘末端,然后自动返回到另一端并继续处理其他请求,不过SCAN算法可能会造成磁盘最中心区域的请求得不到服务。

最后是循环扫描(C-SCAN)算法,它的思想是磁头在磁盘上发生扫描操作,从而按照一条直线进行磁盘的处理,当遇到磁盘末尾时立即回到磁盘起始端口,且只在往该方向转移时服务请求,可以有效地平衡请求响应时间。

总体来说,磁盘移臂调度算法在提高磁盘读写效率方面起到了重要作用。

通过优化调度算法,可以使得磁盘访问时间更加快速,也能更好地实现磁盘系统的稳定性。

操作系统 移动臂调度算法的实现

操作系统 移动臂调度算法的实现

南京工程学院上机实验报告课程名称:操作系统实验项目名称:移动臂调度算法的实现学生班级:学生学号:学生姓名:指导教师:实验时间:实验地点:信息楼专业机房实验成绩评定:2016-2017-1学期一、实验目的及内容掌握操作系统的设备管理功能,熟悉移动臂调度算法,设计恰当的数据结构和算法,模拟实现移动臂调度算法。

要求至少模拟实现一种磁盘移臂调度算法。

二、实验相关知识简介磁盘移臂调度的目标就是要使磁盘访问的总时间中的寻找时间最小。

因此,磁盘移臂调度要尽量减少磁盘移动臂移动的距离。

磁盘移臂调度算法很多,常用的也有好几种,一个好的磁盘调度算法,不仅要使磁盘寻找时间最小,同时,还要避免移动臂频繁地改变移动方向,因为频繁的改向不仅使时间增加,还容易损耗机械部件。

常用的磁盘移臂调度算法有:先来先服务、最短寻找时间优先、单向扫描、双向扫描调度算法等。

三、解决问题思路及关键程序代码分析(一) 最短寻找时间优先调度算法简介最短寻找时间调度算法总是使寻找时间最短的请求最先得到服务,跟请求者的请求时间先后顺序无关。

这种算法具有比先来先服务更好的性能。

但是该算法可能会出现请求者被“饿死”的情况,当靠近磁头的请求源源不断地到来,这会使早来的但离磁头较远的请求长时间得不到服务。

该算法的优点是可以得到较短的平均响应时间,有较好的吞吐量。

该算法的缺点是缺乏公平性,对中间磁道的访问比较“照顾”,对两端磁道访问比较“疏远”,相应时间的变化幅度较大。

该算法与先来先服务算法一样,都会导致移动臂频繁改向。

(二) 算法模拟1. 对算法设计进行说明该算法的实现中,主要是选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以使每次的寻道时间最短。

当选择了某个离当前磁头所在磁道最近的磁道,下一轮的当前磁道便改成了上一轮的最近磁道,并且把这个最近的磁道从请求序列取消,直到请求序列中不再有请求的磁道。

2. 关键代码分析import java.io.*;import java.util.*;public class{private static int maxsize = 100;private static int Disc[] = new int[maxsize]; //请求序列private static int count;//要访问的磁道数private static int disc; //当前磁道号private static int perTime;//移过每个柱面需要时间private static int Distance=0;//总寻道长度private static int FindTime;//查找时间private static double AvgDistance;//平均寻道长度public Suanfa(int disc,int count,int perTime,int Disc[]){this.disc=disc;this.count=count;this.perTime=perTime;for(int i=0;i<Disc.length;i++)Disc[i]=Disc[i];}public void input(){System.out.print("请输入当前磁道号:");Scanner s1=new Scanner(System.in);disc=s1.nextInt();System.out.print("请输入要访问的磁道数:");Scanner s2=new Scanner(System.in);count=s2.nextInt();System.out.print("请输入移过每个柱面需要的时间:");Scanner s3=new Scanner(System.in);perTime=s3.nextInt();System.out.print("请输入磁盘请求序列(以空格隔开):");Scanner s4=new Scanner(System.in);for(int i=0;i<count;i++)Disc[i]=s4.nextInt();}public void Delete(int arr[],int n){for(int i=n;i<arr.length-1;i++)arr[i]=arr[i+1];}public void running(){int j=0,count1=count;int min;int discc=disc;int Discc[]=new int[count];while(j<count){int num=0;min=(Disc[0]>=discc)?(Disc[0]-discc):(discc-Disc[0]);for(int i=0;i<count1;i++){if(((Disc[i]>=discc)&&(Disc[i]-discc<min))||((Disc[i]<discc)&&(discc-Disc[i ]<min))){min=(Disc[i]>=discc)?(Disc[i]-discc):(discc-Disc[i]);num=i;}}Discc[j++]=Disc[num];Distance+=min;discc=Disc[num];Delete(Disc,num);count1--;}AvgDistance=(double)Distance/count;FindTime=perTime*Distance;System.out.print("\n服务序列:"+disc+" ");for(int i=0;i<count;i++)System.out.print(Discc[i]+" ");System.out.println("\n总寻道长度:"+Distance);System.out.println("平均寻道长度:"+AvgDistance);System.out.println("寻道时间:"+FindTime+"ms");}public static void main(String[] args){System.out.println("----------最短寻找时间优先算法----------");Suanfa Suanfa=new Suanfa(disc,count,perTime,Disc);Suanfa.input();Suanfa.running();}}四、运行结果程序的运行结果如图所示:五、体会与提高通过本次的实验设计,把教材中的理论知识转化为实践,在一定程度上深了我对读者-写者这类经典的同步问题的理解,同时也提高了我的动手编程和独立思考的能力。

操作系统第五次作业死锁

操作系统第五次作业死锁

操作系统第五次作业死锁1.什么是移臂调度?什么是旋转调度?移臂调度:在满足一个磁盘请求时,总是选取与当前移动臂前进方向上最近的那个请求,使移臂距离最短。

选装调度:在满足一个磁盘请求时,总是选取与当前读写头旋转方向上最近的那个请求,使旋转圈数最少。

各5分2.假设一个可移动磁头的磁盘具有 200个磁道,其编号为0~199,当它刚刚结束了 125道的存取后,现正在处理143道的服务请求,假设系统当前的请求序列以请求的先后次序排列如下: 86、147、91、177、150、102、175、130。

试问对以下几种磁盘IO请求调度算法而言,满足以上请求序列,磁头将分别如何移动?(1)先来先服务算法(FCFS)(2)最短寻道时间优先调度(SSTF)(3)扫描算法(SCAN)(4)循环扫描算法(CSCAN)先后顺序依次为:1)FCFS:143、86、147、91、177、150、102、175、130;(2)SSTF:143、147、150、130、102、94、91、86、175、177;(3)SCAN:143、147、150、175、177、130、102、94、91、86;(4)C-SCAN:143、147、150、175、177、86、91、94、102、130。

3.3个进程共享4个同类资源,这些资源的分配与释放只能一次一个,已知每一进程最多需要两个资源,试问该系统会发生死锁吗?为什么?该系统不会发生死锁。

因为最坏情况是每个进程都占有一个资源,申请第二个资源,而此时系统中还剩一个资源,不管这个资源分给哪个进程,都能满足它的资源要求,因此它能在有限时间内运行结束而释放它所占有的两个资源,这两个资源又可以分配给另外两个进程,使它们能够运行结束,所以系统不会发生死锁。

4.下图表示一带闸门的运河,其上有两架吊桥,吊桥坐落在一条公路上,为使该公路避开一块沼泽地而其横跨运河两次。

运河和公路的交通都是单方向的,运河的基本运输由驳船担负。

考研操作系统-设备管理(一)

考研操作系统-设备管理(一)

考研操作系统-设备管理(一)(总分:86.00,做题时间:90分钟)一、单项选择题(总题数:15,分数:30.00)1.通过硬件和软件的功能扩充,把原来独占的设备改造成若干用户共享的设备,这种设备称为( )。

A.存储设备 B.系统设备 C.虚拟设备 D.用户设备A.B.C. √D.2.是操作系统中采用的以空间换时间的技术。

A.通道技术 B.SPOOLing技术 C.覆盖技术 D.虚拟存储技术A. √B.C.D.3.CPU输出数据的速度远远高于打印机的打印速度,为解决这一矛盾,可采用 ( )。

A.虚拟技术 B.通道技术 C.并行技术 D.缓冲技术A.B.C.D. √4.关于设备管理和文件管理这二者的关系,下面说法中正确的是( )。

A.设备管理是文件系统的基础,文件管理是设备管理的一部分B.文件系统为用户提供按名存取服务,实现逻辑文件与物理文件C.文件管理和设备管理是操作系统的两个完全独立的功能,二者不存在任何关系D.设备管理与文件系统密切相关,文件系统是设备管理的基础,设备管理必须依赖文件管理才能最终完成相应的功能A.B. √C.D.5.在下面的4个选项中,不属于设备管理的功能是( )。

A.实现虚拟设备 B.实现外围设备的分配与回收C.实现按名存取 D.实现外围设备的启动A.B.C. √D.6.打印机是( )。

A.独占设备 B.共享设备C.有时是独占设备,有时是共享设备 D.常用的字符输出设备A. √B.C.D.7.对输入/输出设备,输入/输出操作的信息传输单位为( );对存储型设备,输入/输出操作的信息是以( )为单位传输的。

A.字节,字 B.字符,字 C.位,块 D.字符,块A.B.C.D. √8.下面关于计算机外围设备的说法中错误的是( )。

A.输入/输出型设备负责主存与外围设备间的信息传递,信息传输单位是字符B.存储类型设备一般属于共享设备,而输入/输出型设备则属于独占设备C.计算机外围设备可以分为存储型设备和输入/输出型设备D.存储型设备可以作为主存的扩充,信息传输以块为单位A.B. √C.D.9.当两个进程访问同一柱面,同一扇区,不同磁道的时候( )。

操作系统第4章5.6 本单元作业参考答案

操作系统第4章5.6 本单元作业参考答案

单元四课后作业答案一、填空1.磁带、磁盘这样的存储设备都是以块为单位与内存进行信息交换的。

2.根据用户作业发出的磁盘I/O请求的柱面位置,来决定请求执行顺序的调度,被称为移臂调度。

3.DMA控制器在获得总线控制权的情况下能直接与内存储器进行数据交换,无需CPU介入。

4.在DMA方式下,设备与内存储器之间进行的是成批数据传输。

5.通道程序是由通道执行的。

6.通道是一个独立与CPU的、专门用来管理输入/输出操作的处理机。

7.缓冲的实现有两种方法:一种是采用专门硬件寄存器的硬件缓冲,一种是在内存储器里开辟一个区域,作为专用的I/O缓冲区,称为软件缓冲。

8.设备管理中使用的数据结构有系统设备表(SDT)和设备控制块(DCB)。

9.基于设备的分配特性,可以把系统中的设备分为独享、共享和虚拟三种类型。

10.引起中断发生的事件称为中断源。

二、选择1.在对磁盘进行读/写操作时,下面给出的参数中,C 是不正确的。

A.柱面号B.磁头号C.盘面号D.扇区号2.在设备管理中,是由B 完成真正的I/O操作的。

A.输入/输出管理程序B.设备驱动程序C.中断处理程序D.设备启动程序3.在下列磁盘调度算法中,只有D 考虑I/O请求到达的先后次序。

A.最短查找时间优先调度算法B.电梯调度算法C.单向扫描调度算法D.先来先服务调度算法4.下面所列的内容里,C 不是DMA方式传输数据的特点。

A.直接与内存交换数据B.成批交换数据C.与CPU并行工作D.快速传输数据5.在CPU启动通道后,由A 执行通道程序,完成CPU所交给的I/O任务。

A.通道B.CPU C.设备D.设备控制器6.利用SPOOL技术实现虚拟设备的目的是A 。

A.把独享的设备变为可以共享B.便于独享设备的分配C.便于对独享设备的管理D.便于独享设备与CPU并行工作7.通常,缓冲池位于C 中。

A.设备控制器B.辅助存储器C.主存储器D.寄存器8. B 是直接存取的存储设备。

操作系统第6章习题带答案

操作系统第6章习题带答案

第六章一、问答题1、什么是文件的逻辑结构?什么是文件的物理结构?2、为了能够查找到文件的位置,在采用连续文件、链接文件和索引文件时,在目录中需要登记哪些内容?3、磁盘容错技术可以分为哪三级?4、目前最广泛采用的目录结构是哪种?它有什么优点?5、文件在磁盘上存放的形式有几种?它们与存取方法有何关系?6、简述以下移臂调度算法的思想:先来先服务调度算法、最短查找时间优先算法、电梯调度算法。

7、简述文件控制块中包含的内容。

8、假设多个用户共享一个文件目录系统,用户甲要用文件A、B、C、E,用户乙要用文件A、D、E、F。

已知用户甲的文件A与用户乙的文件A实际上不是同一个文件;用户甲的文件C与用户乙的文件F实际上是同一个文件;甲、乙两用户的文件E是同一个文件。

试问你是否可以拟定一种文件目录组织方案,使得甲、乙两用户既能共享文件而又不造成混乱?答:采用多级目录结构,文件目录分解为基本目录和符号目录,只要在不同文件符号目录中使用相同文件内部标识符,甲、乙两用户既能共享文件而又不造成混乱。

画图并简要说明二、计算题1、假定盘块的大小为1KB,硬盘的大小为10GB,采用显示链接分配方式时,请问文件分配表只是占用多大空间?磁盘块数:10GB/1KB=10M表达10M盘块,FAT每项至少需要24位,即3个字节所以文件分配表至少占用3B*10M=30M2、系统中磁头停留在磁道号为70的磁道上,这时先后有4个进程提出了磁盘访问请求,要访问磁盘的磁道号按申请到达的先后顺序依次为:45,68,28,90。

移动臂的运动方向:沿磁道号递减的方向移动。

假设分别采用FCFS磁盘调度算法、SSTF算法,SCAN算法时,所需寻道长度分别为多少〔走过多少柱面〕?0号磁道是最里面还是最外面的一个磁道?提示:FCFS磁盘调度算法:70->45->68->28->90SSTF算法:70->68->90->45->28SCAN算法:70->68->->45->28->903、某系统采用UNIX操作系统的专用块内容为:空闲块数3,然后依次登记的空闲块号为77,89,60,问此时假设一个文件A需要5个盘块,系统进行分配后有个文件B被删除,它占用的盘块块号为100,101,109,500,则回收这些盘块后专用块的内容是什么?写出整个分析过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统移动臂调度算
法的实现
文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]
南京工程学院
上机实验报告课程名称:操作系统
实验项目名称:移动臂调度算法的实现
学生班级:
学生学号:
学生姓名:
指导教师:
实验时间:
实验地点:信息楼专业机房
实验成绩评定:
2016-2017-1学期
一、实验目的及内容
掌握操作系统的设备管理功能,熟悉移动臂调度算法,设计恰当的数据结构和算法,模拟实现移动臂调度算法。

要求至少模拟实现一种磁盘移臂调度算法。

二、实验相关知识简介
磁盘移臂调度的目标就是要使磁盘访问的总时间中的寻找时间最小。

因此,磁盘移臂调度要尽量减少磁盘移动臂移动的距离。

磁盘移臂调度算法很多,常用的也有好几种,一个好的磁盘调度算法,不仅要使磁盘寻找时间最小,同时,还要避免移动臂频繁地改变移动方向,因为频繁的改向不仅使时间增加,还容易损耗机械部件。

常用的磁盘移臂调度算法有:先来先服务、最短寻找时间优先、单向扫描、双向扫描调度算法等。

三、解决问题思路及关键程序代码分析
(一) 最短寻找时间优先调度算法简介
最短寻找时间调度算法总是使寻找时间最短的请求最先得到服务,跟请求者的请求时间先后顺序无关。

这种算法具有比先来先服务更好的性能。

但是该算法可能会出现请求者被“饿死”的情况,当靠近磁头的请求源源不断地到来,这会使早来的但离磁头较远的请求长时间得不到服务。

该算法的优点是可以得到较短的平均响应时间,有较好的吞吐量。

该算法的缺点是缺乏公平性,对中间磁道的访问比较“照顾”,对两端磁道访问比较“疏远”,相应时间的变化幅度较大。

该算法与先来先服务算法一样,都会导致移动臂频繁改向。

(二) 算法模拟
1. 对算法设计进行说明
该算法的实现中,主要是选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以使每次的寻道时间最短。

当选择了某个离当前磁头所在磁道最近的磁道,下一轮的当前磁道便改成了上一轮的最近磁道,并且把这个最近的磁道从请求序列取消,直到请求序列中不再有请求的磁道。

2. 关键代码分析
import .*;
import .*;
public class
{
private static int maxsize = 100;
private static int Disc[] = new int[maxsize]; //请求序列
private static int count;//要访问的磁道数
private static int disc; //当前磁道号
private static int perTime;//移过每个柱面需要时间
private static int Distance=0;//总寻道长度
private static int FindTime;//查找时间
private static double AvgDistance;//平均寻道长度
public Suanfa(int disc,int count,int perTime,int Disc[])
{
=disc;
=count;
=perTime;
for(int i=0;i<;i++)
Disc[i]=Disc[i];
}
public void input()
{
"请输入当前磁道号:");
Scanner s1=new Scanner;
disc=();
"请输入要访问的磁道数:");
Scanner s2=new Scanner;
count=();
"请输入移过每个柱面需要的时间:");
Scanner s3=new Scanner;
perTime=();
"请输入磁盘请求序列(以空格隔开):");
Scanner s4=new Scanner;
for(int i=0;i<count;i++)
Disc[i]=();
}
public void Delete(int arr[],int n)
{
for(int i=n;i<;i++)
arr[i]=arr[i+1];
}
public void running()
{
int j=0,count1=count;
int min;
int discc=disc;
int Discc[]=new int[count];
while(j<count)
{
int num=0;
min=(Disc[0]>=discc)(Disc[0]-discc):(discc-Disc[0]);
for(int i=0;i<count1;i++)
{
if(((Disc[i]>=discc)&&(Disc[i]-
discc<min))||((Disc[i]<discc)&&(discc-Disc[i]<min)))
{
min=(Disc[i]>=discc)(Disc[i]-discc):(discc-Disc[i]);
num=i;
}
}
Discc[j++]=Disc[num];
Distance+=min;
discc=Disc[num];
Delete(Disc,num);
count1--;
}
AvgDistance=(double)Distance/count;
FindTime=perTime*Distance;
"\n服务序列:"+disc+" ");
for(int i=0;i<count;i++)
" ");
"\n总寻道长度:"+Distance);
"平均寻道长度:"+AvgDistance);
"寻道时间:"+FindTime+"ms");
}
public static void main(String[] args)
{
"----------最短寻找时间优先算法----------");
Suanfa Suanfa=new Suanfa(disc,count,perTime,Disc);
();
();
}
}
四、运行结果
程序的运行结果如图所示:
五、体会与提高
通过本次的实验设计,把教材中的理论知识转化为实践,在一定程度上
深了我对读者-写者这类经典的同步问题的理解,同时也提高了我的动手编程和独立思考的能力。

虽然在分析问题的过程中,遇到了很多的疑惑与。

相关文档
最新文档