前言:快考试了,做篇期末总结,都是重点与必考点。标☆的重点看!
题型:简答题(每章一道)(40分);程序设计题(P-V操作)(20分)、计算题(作业调度)、综合应用题(页面置换、银行家算法、磁盘调度的磁头路径)
☆ 1、在计算机系统上配置OS的目标是什么?作用表现在哪几个方面?
答:在计算机系统上配置OS,主要目标是实现:方便性、有效性、可扩充性和开放性。
OS的作用主要表现在以下3个方面:
1)OS作为用户与计算机硬件系统之间的接口;
2)OS作为计算机系统资源的管理者;
3)OS实现对计算机资源的抽象。
2、试说明OS与硬件、其他系统软件以及用户之间的关系。
答:OS是覆盖在硬件上的第一层软件,它管理计算机的硬件和软件资源,并向用户提供良好的界面。OS与硬件密切相关,它直接管理着硬件资源,为用户完成所有与硬件相关的操作,极大地方便了用户对硬件资源的使用并提高了硬件资源的利用率。OS是一种特殊的系统软件,其他系统软件运行在OS的基础之上,可获得OS提供的大量服务,也就是说OS是其他系统软件与硬件之间的接口。而一般用户使用计算机除了需要OS支持以外,还需要用到大量的其他系统软件和应用软件,以使其工作更高效。
答:1)计算机系统资源的利用率不断提高;
2)方便用户;
3)器件不断更新换代;
4)计算机体系结构不断发展;
5)新的应用需求不断被提出。
4、在OS中,何谓脱机I/O方式和联机I/O方式?
答:脱机I/O方式是指事先将装有用户程序或数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上,该方式下的I/O操作由外围机控制完成,并且是在脱离主机的情况下进行的,因此叫作脱机I/O方式。联机I/O方式是指程序和数据的I/O都是在主机的直接控制下进行的。
5、设有3道程序A、B、C,它们按照优先次序(A->B->C)顺序执行,它们的计算时间和I/O操作时间如下表所示,假设3道程序以串行方式使用相同的设备进行I/O操作,试画出单道程序运行和多道程序运行的时间关系图,并计算完成这3道程序所须花费的时间。
答:(1)单道程序运行,时间为:(30+40+10)+(60+30+10)+(20+40+20)=260ms
(2)多道程序运行,非立即抢占式为180ms;立即抢占式为190ms
6、(考研真题)一个多道批处理系统中仅有P1和P2两个作业,P2比P1晚5ms到达,它们的计算和I/O操作顺序如下。
P1:计算 60ms, I/O操作 80ms, 计算 20ms。
P2:计算 120ms, I/O操作 40ms,计算 40ms。
不考虑调度和切换时间,请就算完成两个作业需要的最少时间。
答:显然当CPU不被抢占时,完成这两个作业需要的时间最少。又P2比P1晚5ms到达,所以P1先执行。如图可得结果260ms
☆ 7、OS的概念、特征和功能是什么?
答:OS是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度以方便用户使用计算机的集合。OS是配置在计算机硬件上的第一层系统软件,是对硬件系统的首次扩充;是硬件系统和应用软件间的桥梁;是用户与计算机硬件进行交互的接口;是计算机系统资源的管理者。
OS的4个特征,并发性,共享性,虚拟性,异步性。①并发:一段时间内多个进程并发执行,是宏观上的并行,微观上的串行。②共享:系统中的资源可供内存中多个并发执行的进程共同使用。③虚拟:通过某种技术,将物理实体变为若干个逻辑上的对应物。④异步:进程以不可预知的速度向前推进。
OS的5大功能:处理机管理,存储器管理,设备管理,文件管理,接口管理。①处理机管理:进程控制②存储器管理:内存的分配与回收、地址转换、虚拟内存的实现等。③设备管理:设备的分配与回收、缓冲区管理、磁盘调度、设备虚拟等。④文件管理:文件存储空间的管理文件、目录管理、文件共享与保护等。⑤接口管理:用户接口,程序接口(即系统调用),命令接口和网络接口。
(1)叙述该计算问题中处理机、输入机和打印机是如何协同工作的。
(2)计算在上图所示的执行情况下处理机的利用率。
(3)简述处理机利用率不高的原因。
(4)请画出能提高处理机利用率的执行方案。
解析:(1)处理机、输入机和打印机是按照输入→处理→打印的顺序依次执行的,输入机为处理机提供数据,处理机得到数据后进行处理,处理结果通过打印机打印输入。输入机读取一批数据,花费时间为100;处理机对这批数据进行计算,花费时间为20;打印机打印计算结果,花费时间为40。
(2)处理机的利用率 = [20/(100+20+40)] ×100%=12.5%
(3)当一道程序在运行中发出I/O请求后,处理机只能处于等待状态,即必须等I/O完成后才能继续运行,因此处理机会长时间处于空闲状态,这会导致其利用率不高。
(4)
知识点随笔:
多道批处理系统的优缺点:
内核态(管态、系统态):执行包括特权指令在内的一切指令。
用户态(目态):不能执行特权指令。
系统调用概念:
与一般过程调用的区别:
资源管理技术
1、什么是前趋图?试画出下面四条语句的前趋图.
S1: a = x + y a=x+y a=x+y;
S2: b = z + 1 b=z+1 b=z+1;
S3: c = a − b c=a-b c=a−b;
S4: w = c + 1 w=c+1 w=c+1;
答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(DirectedAcyclicGraph),用于描述进程之间执行的前后关系。
2、什么是进程?OS中为什么要引入进程?它会产生什么样的影响?
答:进程是一段可并发执行的具有独立功能的程序,是关于某个数据集的一次执行过程。也是OS进行资源分配和保护的基本单位。引入进程是为了实现多个程序的并发执行。 影响:好处是多个程序的并发执行,能极大的提高资源利用率和系统吞吐量。 缺点是管理进程PCB所占的内存占用、进程间切换、同步与通信开销较大。
☆ 3、进程最基本的状态有哪些?哪些事件可能会引起不同状态间的转换?
答:运行态、就绪态、阻塞态(等待态)
1.运行→等待:等待使用资源或某事件发生
2.等待→就绪:资源得到满足或某事件已经发生
3.运行→就绪:时间片到,或者有更高优先级进程到达
4.就绪→运行:CPU空闲时间调度选中一个就绪进程需要其运行
☆ 4、试从调度、并发、拥有资源和系统开销这4个方面对传统进程和线程进行比较。
调度 | 并发 | 拥有资源 | 系统开销 | |
---|---|---|---|---|
线程 | 线程是OS中调度和分派的基本单位,具有唯一的标识符和TCB | 同一进程的多个线程在一个或多个处理机上并发执行。 | 同一进程的所有线程共享但不拥有进程的状态和资源,且驻留在进程的同一个内存地址空间中,可以访问相同的数据,通信和同步的实现也十分方便 | 作为系统调度和分派的基本单位,线程会被频繁地调度和切换;同一进程中的多线程共享同一地址空间,这能使线程实现快速切换 |
传统进程 | 传统进程具有独立的虚地址空间,以传统进程为单位进行任务调度时,系统必须切换地址空间,且切换时间长。 | 许多“多任务OS”会限制用户拥有的最大进程数目,该数目对于许多并发应用来说是不够的。 | 传统进程是系统中资源分配和保护的基本单位,也是系统调度的独立单位;每个传统进程都能以各自独立的速度在CPU上运行 | 对多个传统进程进行管理(如创建、调度、终止等)时,系统开销大,如在为了响应客户请求而须建立新的服务进程的服务器应用过程中,创建开销大 |
5、(考研真题)现代OS一般都提供多进程(或称多任务)运行环境,回答以下问题。
(1)为支持多进程的并发执行,系统必须建立哪些关于进程的数据结构?
(2)为支持进程状态的变迁,系统至少应提供哪些进程控制原语?
(3)在执行每一个进程控制原语时,进程状态会发生什么变化?相应的数据结构会发生什么变化?
解析:(1)PCB(进程控制块)、队列结构(如就绪队列、等待队列、运行指针等)。
(2)创建原语,阻塞原语,唤醒原语,撤销原语。
(3)有4种变化:
①创建原语:创建PCB并初始化→进程变为就绪状态,加入到就绪队列;
②阻塞原语:运行变为阻塞状态→阻塞进程的PCB插入相应的阻塞队列;
③唤醒原语:阻塞变为就绪状态→阻塞队列中删除该进程,插入到就绪队列中;
④撒销原语:运行变为消亡状态→系统撤销该进程的PCB
知识点随笔:
程序并发执行的特征:
进程和程序的区别
周转时间 = 完成时间 - 到达时间
带权周转时间 = 周转时间 / 运行时间
等待时间 = 周转时间 - 运行时间
1、高级调度与低级调度的主要任务是什么?为什么要引入中级调度?
答:①高级调度的主要任务是将外存的作业调入内存,又称作业调度;低级调度的主要任务是为内存中处于就绪态的作业分配处理机。
②为了提高内存的利用率与系统吞吐量。
2、何谓作业和JCB(job control block,作业控制块)?
①.作业是一组程序与数据和作业说明书,是高级调度的基本单位;
②.JCB是作业控制块,是作业存在的表示,包含管理,调度所需的全部信息。
3、(考研真题)有5个进程需要调度执行,若采用非抢占式优先级(短进程优先)调度算法,问这5个进程的平均周转时间是多少?
进程 | 到达时间 | 执行时间 |
---|---|---|
P1 | 0.0 | 9 |
P2 | 0.4 | 4 |
P3 | 1.0 | 1 |
P4 | 5.5 | 4 |
P5 | 7 | 2 |
解析:绘制甘特图如下
平均周转时间=(P1+P3+P5+P2+P4)÷ 5 = [(9-0.0)+(10-1.0)+(12-7)+(16-0.4)+(20-5.5)] ÷ 5 =10.62
☆ 4、(考研真题)假定要在一台处理机上执行下表所示的作业,且假定这些作业在时刻0以1,2,3,4,5的顺序到达。请说明分别采用FCFS、RR(时间片为1)、SJF及非抢占式优先级调度算法时,这些作业的执行情况(优先级的高低顺序依次为1到5)。针对上述每种调度算法,给出平均周转时间和平均带权周转时间。
作业 | 执行时间 | 优先级 |
---|---|---|
1 | 10 | 3 |
2 | 1 | 1 |
3 | 2 | 3 |
4 | 1 | 4 |
5 | 5 | 2 |
(1)FCFS(先来先服务调度算法)
平均周转时间 =(10+11+13+14+19)÷ 5 = 13.4
平均带权周转时间 = (10/10 + 11/1 +13/2 + 14/1 + 19/5)÷ 5 = 7.26
(2)RR(时间片轮转调度算法)
平均周转时间 = (19+2+7+4+14)÷ 5 = 9.2
平均带权周转时间 = (19/10 + 2/1 + 7/2 + 4/1 + 14/5)÷ 5 = 2.84
(3)SJF(短作业优先调度算法)
平均周转时间 = (19+1+4+2+9)÷ 5 = 7
平均带权周转时间 = (19/10 + 1/1 + 4/2 + 2/1 + 9/5)÷ 5 = 1.74
(4)非抢占式优先级调度算法
平均周转时间 = (16+1+18+19+6)÷ 5 = 12
平均带权周转时间 = (16/10 + 1/1 + 18/2 + 19/1 + 6/5)÷ 5 = 6.36
5、(考研真题)假设系统中有下述3种解决死锁的方法:
(1)银行家算法;
(2)检测死锁,终止处于死锁状态的进程,释放该进程所占有的资源;
(3)资源预分配。
简述上述哪种方法允许最大的并发性?请按“并发性”从大到小对上述3种方法进行排序。
答:①题中给出的3种方法中,检测死锁能允许更多的进程无须等待地向前推进,并发性最大。因为该方法允许进程最大限度地申请并分配资源,直至出现死锁,再由系统解决死锁。②银行家算法允许进程自由申请资源,只是在某个进程申请资源时会检查系统是否处于安全状态,若是,则可立即分配;若不是,则拒绝。其并发性的大小次于检测死锁这一方法。③最后是资源预分配,因为此方法要求进程在运行之前申请所需的全部资源,这会使许多进程因申请不到全部资源而无法开始,得到部分资源的进程也会因未得到全部资源而不释放已占用的资源,所以此方法会导致资源浪费。因此,上述3种方法按并发性从大到小排序为:检测死锁、银行家算法、资源预分配。
☆ 6、假定系统中有五个进程{P0,P1,P2,P3,P4}和三类资源{A,B,C} ,各种资源的数量分别为10、5、7,剩余可用资源分别为3、3、2,在T0时刻的资源分配情况如下表所示。
(1)T0时刻的安全性
(2)P1请求资源:P1发出请求向量Request (1,0,2) ,系统按银行家算法进行检查
进程 | 最大需求 | 已分配 | 最多还需要 |
---|---|---|---|
P0 | (7,5,3) | (0,1,0) | (7,4,3) |
P1 | (3,2,2) | (2,0,0) | (1,2,2) |
P2 | (9,0,2) | (3,0,2) | (6,0,0) |
P3 | (2,2,2) | (2,1,1) | (0,1,1) |
P4 | (4,3,3) | (0,0,2) | (4,3,1) |
解析:(1)
①依次检查剩余可用资源(3,3,2)是否能满足各进程的需求
可满足P1需求,将P1加入安全序列,并更新剩余可用资源值为(5,3,2)
②依次检查剩余可用资源(5,3,2)是否能满足剩余进程(不包括已加入安全序列的进程)的需求可满足P3需求,将P3加入安全序列,并更新剩余可用资源值为(7,4,3)
③依次检查剩余可用资源(7,4,3)是否能满足剩余进程(不包括已加入安全序列的进程)的需求…….…
进程 | Work | Need | Allocation | Work+Allocation | Finish |
---|---|---|---|---|---|
P1 | (3,3,2) | (1,2,2) | (2,0,0) | (5,3,2) | T |
P3 | (5,3,2) | (0,1,1) | (2,1,1) | (7,4,3) | T |
P0 | (7,4,3) | (7,4,3) | (0,1,0) | (7,5,3) | T |
P2 | (7,5,3) | (6,0,0) | (3,0,2) | (10,5,5) | T |
P4 | (10,5,5) | (4,3,1) | (0,0,2) | (10,5,7) | T |
以此类推,共五次循环检查即可将5个进程都加入安全序列中,最终可得一个安全序列:{P1、P3、P0、P2、P4}, 状态安全(答案不唯一)。
(2)第一步,判断请求的资源是否小于Need和Available
(1,0,2) < (1,2,2) && (1,0,2) < (3,3,2) ,可以请求,但安全状态待判断。
第二步,表格修改一下,此时Available为(2,3,0)
进程 | 最大需求 | 已分配 | 最多还需要 |
---|---|---|---|
P0 | (7,5,3) | (0,1,0) | (7,4,3) |
P1 | (3,2,2) | (3,0,2) | (0,2,0) |
P2 | (9,0,2) | (3,0,2) | (6,0,0) |
P3 | (2,2,2) | (2,1,1) | (0,1,1) |
P4 | (4,3,3) | (0,0,2) | (4,3,1) |
检查安全状态过程同上,答案略。
知识点随笔:
死锁的处理方法:
1、什么是临界资源?什么是临界区?
答:临界资源:以互斥形式访问的资源;临界区:访问临界资源的代码。
2、同步机制应遵循的准则有哪些?
答:空闲让进;忙则等待;有限等待;让权等待。
3、若信号量的初值为2,当前值为-1,则表示有多少个等待进程?请分析。
答:1个等待进程;当前值为-1时,表示有一个进程正在临界区运行,而另一个进程因等待而阻塞在信号量队列中,需要被当前已在临界区运行的进程在退出时唤醒。
注:信号量的应用:
设mutex为互斥信号量,其初值为1,取值为(-1,0,1)。当mutex=1时,表示两个进程皆未进入需要互斥访问的临界区;当mutex=0时,表示有一个进程进入临界区运行,另一个必须等待,挂入阻塞队列;当mutex=-1时,表示有一个进程正在临界区运行,而另一个进程因等待而阻塞在信号量队列中,需要被当前已在临界区运行的进程在退出时唤醒。
4、有m个进程共享同一临界资源,若使用信号量机制实现对某个临界资源的互斥访问,请求出信号量的变化范围。
答:范围: 1 ∼ − ( m − 1 ) 1\sim -(m-1) 1∼−(m−1) 即 1 ∼ 1 − m 1\sim1-m 1∼1−m
分析:为实现互斥访问,初始值需要设置为1。如果某时刻信号量为-x,则证明等待队列中有x个进程在等待。此题中,有m个进程,那么最多就有m-1个进程等待。对应信号量的值就是-(m-1)=1-m。
☆☆☆ 5、3个进程P1、P2、P3互斥地使用一个包含N(N>0)个单元的缓冲区。P1每次用produce()生成一个正整数,并用put()将其送入缓冲区的某一空单元中;P2每次用getodd()从缓冲区中取出一个奇数,并用countodd()统计奇数的个数;P3每次用geteven()从该缓冲区中取出一个偶数,并用counteven()统计偶数的个数。请用信号量机制实现这3个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。
// 定义四个信号量:empty表示缓冲区的空单元数,初始值为N;
// even和odd分别表示缓冲区中偶数和奇数的个数,初始值为0;
// mutex是互斥信号量,用于保证缓冲区的互斥访问,初始值为1。
semaphore empty = N, even = 0, odd = 0,mutex = 1;
P1: // 生产者进程
while(1)
{
x = produce(); // 生成一个正整数
P(empty); // 等待缓冲区有空单元
P(mutex); // 请求互斥访问缓冲区
put(x); // 将生成的正整数放入缓冲区的某一空单元中
V(mutex); // 释放互斥访问缓冲区
if(x%2 == 0) // 如果生成的正整数是偶数
V(even); // 偶数个数加1
else // 如果生成的正整数是奇数
V(odd); // 奇数个数加1
}
P2: // 消费奇数的消费者进程
while(1)
{
P(odd); // 等待缓冲区有奇数
P(mutex); // 请求互斥访问缓冲区
getodd(); // 从缓冲区中取出一个奇数
countodd(); // 统计奇数的个数
V(mutex); // 释放互斥访问缓冲区
V(empty); // 空单元数加1
}
P3: // 消费偶数的消费者进程
while(1)
{
P(even); // 等待缓冲区有偶数
P(mutex); // 请求互斥访问缓冲区
geteven(); // 从缓冲区中取出一个偶数
counteven(); // 统计偶数的个数
V(mutex); // 释放互斥访问缓冲区
V(empty); // 空单元数加1
}
AI评价:这段代码的设计思路清晰,结构紧凑,很好地实现了生产者-消费者问题的解决方案。它使用了信号量机制来同步和互斥三个进程的活动,确保了在任何时刻只有一个进程能够访问缓冲区,从而避免了并发控制中的竞态条件。此外,通过对偶数和奇数的单独处理,使得两个消费者进程能够并行地进行,提高了系统的并发性能。
知识点随笔:
进程间的制约关系
信号量S-整型变量
提供两个不可分割的[原子操作]访问信号量
wait(S):
while s<=0 ; /*do no-op 空操作,也称为自旋操作*/
s--;
signal(S):
s++;
wait(s)又称为P(S)
signal(s)又称为V(S)
缺点:进程忙等
记录型信号量:去除忙等的信号量
每个信号量S除一个整数值S.value
外,还有一个进程等待队列S.list
,存放阻塞在该信号量的各个进程PCB
typedef struct {
int value;
stuct process_control_block *list;
}semaphore;
相应的,其P-V操作可描述为:
wait(semaphores *S) { //请求一个单位的资源
S->value --; //资源减少一个
if (S->value<0) block(S->list) //进程自我阻塞
}
signal(semaphores *S) //释放一个单位资源
{
S->value++; //资源增加一个
if (S->value<=0) wakeup(S->list); //唤醒等待队列中的一个进程
}
生产者-消费者问题是相互合作进程关系的一种抽象
利用记录型信号量实现:
临界资源
生产者
buffer[in] = nextp;
in = (in + 1) % N;
counter++;
消费者
nextc = buffer[out];
out = (out + 1) % N;
counter--;
知识点随笔:
物理地址(绝对地址)
逻辑地址(虚拟地址、相对地址)
内存回收流程:
具有快表的地址变换机构:
在可变分区管理中,有三种主要的内存分配算法:
1、常规存储器管理方式具有哪两大特征?它们对系统性能有何影响?
答:一次性:将全部作业装入内存才运行。会导致内存装不下或者装的太少影响系统性能。
驻留性:调入内存后直到运行结束都不会调出内存。容易浪费内存。
2、什么是虚拟存储器?如何实现页式虚拟存储器?
答:虚拟存储器是具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储系统;在分页储存管理的基础上,增加了请求调页和页面置换功能,进程运行之初只调用很少的页面,后续将需要的页面调入内存,且将不需要的页面调出内存。
3、(考研真题)某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。假定某时刻系统为用户的第0、1、2、3页分配的物理块号为5、10、4、7,而该用户作业的长度为6页,试将十六进制的虚拟地址0A5C、103C、1A5C转换成物理地址。
解析:由32=25个页面,每页1KB=210B可知,该系统的逻辑地址有15位,其中高5位为页号,低10位为页内地址;由16KB=24 × 210B可知,物理地址有14位,其中高4位为块号,低10位为块内地址。另外,由于题目中给出的逻辑地址是十六进制数,故可先将其转换成二进制数以直接获得页号和页内地址,再完成地址的转换。
(1)如下图,逻辑地址(0A5C)的页号为(00010),即2,故页号合法;从页表中找到对应的内存块号为4,即(0100);与页内地址(10 0101 1100)拼接形成物理地址(010010 0101 1100),即(125C)。
(2)由于该用户作业的长度为6页,即第0,1,2,3,4,5页的页号合法。逻辑地址(103C)的页号为4,页号合法,但该页未装入内存,故产生缺页中断。
(3)逻辑地址(1A5C)的页号为6,为非法页号,故产生越界中断。
4、某请求调页系统,其页表保存在寄存器中;若有一个可用的空页或被替换的页未被修改,则它处理一个缺页中断需要8ms;若被替换页已被修改,则它处理一个缺页中断需要20ms;内存存储时间为1μs,访问页表的时间可忽略不计;假定70%被替换页被修改过,为保证有效存取时间不超过2μs,可接受的最大缺页率是多少?
1ms = 10-3s,1μs = 10-6s
解析:设最大缺页率为 p p p,则:
( 1 − p ) × 1 μ s + p × ( 0.3 ∗ 8 m s + 0.7 ∗ 20 m s + 1 μ s ) ≤ 2 μ s 1-p) × 1μs + p ×(0.3*8ms+0.7*20ms+ 1μs)≤ 2μs 1−p)×1μs+p×(0.3∗8ms+0.7∗20ms+1μs)≤2μs
2400 p + 14000 p + 1 − p < = 2 2400p+14000p+1-p<=2 2400p+14000p+1−p<=2
16400 p < = 1 16400p<=1 16400p<=1
p < = 0.00006 p<=0.00006 p<=0.00006
5、(考研真题)有一个请求分页式虚拟存储器系统,分配给某进程3个物理块,开始时内存中预装入第1、2、3个页面,该进程的页面访问序列为:1、2、4、2、6、2、1、5、6、1
(1)若采用OPT(optimal,最佳)页面置换算法,则访问过程发生的缺页率为多少?
(2)若采用LRU(最近最少使用)页面置换算法,则访问过程中的缺页率为多少?
解析:
(1)缺页率 f = 3 10 × 100 % = 30 % f=\frac{3}{10} \times 100\% = 30\% f=103×100%=30%
(2)缺页率 f = 5 10 × 100 % = 50 % f=\frac{5}{10} \times 100\% = 50\% f=105×100%=50%
注:此题目前有争议,(开始时内存中预装入第1、2、3个页面 这句话理解不一),对于第1小问,答案有3次、5次、2次的说法,暂不确定。
☆ 6、在一个请求分页系统中,有一个长度为5页的进程,假如系统为它分配3个物理块,并且此进程的页面走向为2,3,2,1,5,2,4,5,3,2,5,2。分别用FIFO,LRU,OPT 算法分别计算出程序访问过程中所发生的缺页次数。
知识点随笔:
页面置换算法:
Clock置换算法例子
例:假设系统为某进程分配了五个内存块,并考虑到有以下页面号引用串:1,3,4,2,5,6,3,4,7
1、(考研真题)某磁盘的转速为10 000r/min,平均寻道时间是6ms,磁盘传输速率是20MB/s,磁盘控制器延迟为0.2ms,读取一个4KB的扇区所需的平均时间约为多少?
解析:根据公式:平均磁盘访问时间 = 平均寻道时间 + 平均旋转延时 + 传输时间 + 控制器延时。磁盘转速是10 000r/min,平均转1转的时间是6ms,因此平均查询扇区的时间是3ms(即等于旋转一周时间的一半),平均寻道时间是6ms,读取4KB扇区信息的时间为 4 K B 20 M B / s = 2 × 1 0 − 4 s = 0.2 m s \frac{4KB}{20MB/s} = 2 \times 10^{-4} s = 0.2ms 20MB/s4KB=2×10−4s=0.2ms,控制器延迟的时间为0.2ms,总时间为3+6+0.2+0.2=9.4ms。故读取一个4KB的扇区所需时间为:6ms+3ms+0.2ms+0.2ms = 9.4ms
☆ 2、(考研真题)磁盘请求服务队列中要访问的磁道分别为38、6、37、100、14、124、65、67,磁头上次访问了20磁道,当前处于30磁道上,试采用FCFS、SSTF(shortest seek time first,最短寻道时间优先)和SCAN(电梯)调度算法,分别计算磁头移动的磁道数(即寻道长度)。
解析:
(1)FCFS调度算法:磁头移动顺序为30、38、6、37、100、14、124、65、67;移动磁道数为8+32+31+63+86+10+59+2=391
(2)SSTF调度算法:磁头移动顺序为30、37、38、14、6、65、67、100、124;移动磁道数为7+1+24+8+59+2+33+24=158
(3)SCAN调度算法:磁头移动顺序为30、37、38、65、67、100、124、14、6;移动磁道数为7+1+27+2+33+24+110+8=212
知识点随笔:
I/O通道
I/O设备的控制方式:轮询、中断、DMA、通道
磁盘调度算法:
知识点随笔:
文件的逻辑结构:从用户观点所观察的文件组织形式
文件目录
目录操作
❗ 转载请注明出处
作者:HinsCoder
博客链接: 作者博客主页