操作系统精髓与设计原理第五版中文答案培训课件

别妄想泡我
890次浏览
2020年08月19日 04:32
最佳经验
本文由作者推荐

护士资格考试分数线-假期实践报告


此文档收集于网络,如有侵权请联系网站删除


2.1 情况(a)和情况(b)具有相同的答案。

假设处理器的操作不能重叠,但IO操作可以。

1job:时间周期=NT

处理器利用率=50%;

2jobs:时间周期=NT

处理器利用率=100%;

4jobs:时间周期=(2N-1)NT

处理器利用率=100%


2.2 IO限制程序只用相对较少的处理时间,
因此,受到短期调度算法的偏爱。然而,如果
一个处理器限制程序在一段很长的时间内被处
理器时间拒绝,那同样的这个短期调度算法则
会允许处理机去处理过去一段时间一直没有使
用处理机的程序,所以,并不是永远不受理处
理器限制程序所需的处理器时间。


2.3 关于分时系统,我们所关注的是周转时间。

首选的是时间片,因为它在一个很短的时间给

所有的程序一个访问权限去使用处理器。在批

处理系统,我们所关注的是吞吐量和更少量的上

下文转换,对于进程来说获得了更多的处理时

间。因此,最小化上下文转换的处理是有优势

的。


2.4 应用程序运用系统调用去调用操作系统所
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除

提供的功能。关键的是,系统调用导致转换到

进入内核模式的系统程序。






操作系统第三章习题解答


3.1 系统和用户进程的创建和删除:在系统中进程对于信息共享,加速计算,模块性 和
便利性都能并发执行 。并发的执行需要进程的创建和删除机制。进程所需要的资源在进程被
创建时获得或者在其运行的时候分 配。当进程结束时,操作系统需要收回任何可重用资源。

进程的挂起和恢复:在进程调度中 ,当进程在等待某些资源时,操作系统需要把进程状态
改变成等待或者就绪状态。当进程所要求的资源可 用时,操作系统需要把它的状态变为运行
状态恢复它的执行。


进程同步机制:协调进程分享数据。 并发访问使用共享数据可能导致数据不一致性,操作< br>系统不得不为其提供一种进程同步机制用来确保协作进程有序的实行,从而保证数据的一致
性。

进程通信机制 :在操作系统下执行的进程要么是独立的进程要么是协作的进程。 协作进
程必须使用某些方法来实现进程间的通信。

死锁处理机制:在一个多道程序 设计环境里,一些进程可能因为有限数量的资源而产生竞
争。 如果一个死锁发生,全部等待的进程都不 会从等待状态改变成运行状态,那么资源被
浪费,工作不会被完成。


3.4 对处于就绪挂起状态的所有进程通过一

个固定的优先级层次来划分,如分成一到两

个优先级,只有当就绪挂起状态的进程优先

级高于所有就绪状态进程的优先级时,才把

处理机分配给它。

此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除
3.6
a)采用 4种模式的优点在于:系统能够提高对存储器的访问使用的灵活性,同时对内存储
器的运行起到很好的保 护作用。缺点:复杂度和处理开销。例如,处理器运行在不同的访问
模式需要分离可访问的堆栈。
b)原则上,模式越多,灵活性适应性越大,但系统越复杂,举出一 种有4种以上模式的情
况较难。


3.7 a) 当j含的信息比Di优先权更高或者比Di更 安全,这个限制是适当的。然而,这个安全政策可以
用下面的方法更简单的获得。一个在Dj中运行的进 程可以从Dj中读取数据,并且可以把数
据复制到Di中,随后,在Di中运行的进程便可读取这些信息 。

b)一个近似的解决这个问题的方法就是大家都知道的可信系统。在以后的章节会详细解释。


3.8 a)一个应用程序可能正处理从另一个进程收到的数据并且把结果储存 在磁盘上。如
果有等待取自其它进程的数据,应用程序可能进入下一个进程取出数据并且处理它。 如果
一个先前的磁盘写操作已经完成并且有处理的数据写出,应用程序会将其写入下一个磁盘。
需要 考虑的一点就是,进程等待输入进程的额外数据和磁盘的可用性。

b)有几种处理的方式。 或者一种特定类型的队列来处理,或者进程可能被放进两个单独
的队列。 无论哪种情况,操作系统必须处理细节,提醒进程注意双方事件一个接一个的发
生。


3.9 这技术基于一个假设——中断进程A响应中断后将会继续进行。

但是, 通常, 一个中断将引起基本监督程序抢占进程A有利于另一个进程B。有必要在< br>描叙进程A相关进程中断的位置复制进程A的执行状态,机器最好第一时间把它们储存在
那里,以 方便后续操作的进行。


3.10 因为存在进程不能被抢占的情况 (例如正在内核模式里执行的进程),因此操作系统
不能快速回复实时需求。





操作系统第四章习题解答


4.1 是的。因为更多的状态信息必须保留下来用于一个程序到另一个程序的转换。
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除


4.2 因为,关于用户级线程,一个进程的线程结构对于操作系统来讲是不可 视的,它仅仅
是基于进程调度的一个基本单位。


进程和线程的区别在于:

简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,
使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立 的内存单元,而多个线程共享内存,从而极大地提高了程
序的运行效率。
线程在执行过程中与进程还是有区别的。

每个独立的线程有一个程序运行的入口、 顺序执行序列和程序的出口。但是线程不能够独
立执行,必须依存在应用程序中,由应用程序提供多个线 程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。 但操
作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这
就是进程和线程的重要区别。


(续)

进程是具有一定独 立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资
源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基
本 单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数
器,一组寄存 器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.


4.4 这里的这个问题是机器花费了它工作中大
量时间去等待IO的完成。在一个多线程程序
中,一个内核级线程使系统调用阻塞,而其它
内核级线程可以继续运行,而对于一个单独的
处理器,一个进程只有使所有调用阻塞,才能
使其它线程继续。


4.5 不会。当一个进程退出,它将带走关于它

的所有东西,内核级线程、进程结构、存储空

间,也包括线程。
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除


4.6 尽可能多的关于地址空间的信息能够和其它地址空间进行交换,从而保存到主存储器
中。


4.7 a)如果采取保守策略,那么最多有204=5个作业同时执行。因为分配给各自 进程的
设备中有一个设备在大多数时间里都是空闲的,在同一时间,最多有5个设备空闲,最好的
情况,没有设备空闲,全部都在工作状态。


b)为了提高设备的利用率,最初 每个作业分配3个磁带设备,第4个则要按需求分配。根
据这个策略,至多有[203]=6个作业能被 同时激活,最小空闲设备数是0,最大空闲设备数
是2。


4.8 每一个调用都可能改变一个线程的优先级或者一个可运行的、具有更高优先级的线程
也可以调用调度程序 ,而且它依次抢占低优先级的活跃线程。因此,可运行的、高优先级线
程不具备题目所述。


5.2


5.3
a.
(1).上限是100。因为最多只有100次加1操
作。这种情况发生在两个进程顺序执行时。
(2).下限是2,发生的情形可以描述如下:
说明:tally++实际上分三步执行,先执行Atally,再执行INC A,最后执行tallyA。
此处A为寄存器,其值将在进程切换时保护起来。




5.6

a.用文字描述这个算法:

分步:

对于第i个进程:
为了得到服务首先要取得顺 序号:即对number[i]进行写操作,此时应屏蔽所有其它进程
对number数组的读操作。当 对number[i]的写操作完成时才允许其它进程对其的读操作。

查看是否有其他进程 正在操作,若有则做空操作;与其它进程的顺序号比较,若小于则可
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除
得到服务,否则等待。

进入临界区

服务完毕将number[i]置0。

总述:

当一个进程希望进入其临界区,它将得到一张票,票的号码将是所有等待 进入临界区或已
在临界区的进程所得到票的号码中最大者加1。拥有最小票号的进程将率先进入临界区。 如
果有多个进程得到的票具有相同的号码,则进程号更小的进程将更占优势。当一个进程离开
其 临界区,它将重置其中票号为0。


b.解释此算法如何避免死锁

死锁时的情形:每个人都拿到了顺序号,但都拿不到面包。

在本算法中即使顺序号相同,但数组下标是不同的。所以进程总可推进不会发生死锁。

c.解释此算法如何加强互斥;

(1)对临界资源面包是按照顺序号互斥的使用

(2)对number 数组的操作通过写操作前置true保证其它进程此时不能对其读,从而保证读
写互斥。



5.9

错误情形:假设有2个进程都调用Wait且s的初 值为0。在第一个进程执行完SignalB(mutex)
且尚未执行WaitB(delay)时, 第二个进程开始调用Wait,也停在同一点(即SignalB(mutex)
和WaitB(del ay)之间)。这时,s的值为-2,而mutex是打开的。假如有另外2个进程在这时
相继调用了S ignal,那么他们每个都会做SignalB(delay)操作,但程序中后一个SignalB将没有意义。


解决:

void Wait(semaphore s)
{
WaitB(mutex);
s--;
if(s<0){
SignalB(mutex);
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除
WaitB(delay);
}
SignalB(mutex);
}
void Signal(semaphore s)
{
WaitB(mutex);
s++;
if(s<=0)
SignalB(delay);
else
SignalB(mutex);
}

5.11
改正后的程序:

var car_available:semaphore(:=n)

passenger_wait:semaphore(:=0)

passenger i: wandering for a random time;

signal(passenger_wait);

wait(car_available);

car j: wait(passenger_wait);

take passenger wandering

signal(car_available)

parbegin

passenger1;passenger2;…passengerm;

car1;car2;…carn;

parend

5.14

考虑图5.17。如果按照以下的顺序改变程序中的相应处程序的意思会改变吗?

a. wait(e); wait(s)

b. signal(s);signal(n)

c. wait(n);wait(s)

d. signal(s);signal(e)


a.互换wait(e)和wait(s):

结果:
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除

对于生产者进程来说,若wait(s)成功,则说明可以使用缓冲池。若wait(e)不成功说 明没有
空缓冲区可用,此时生产者进程等待。

对于消费者进程来说,若wait(n)成功,则说明缓冲池不空。若wait(s) 成功 说明可以使用
缓冲池,但此时由于生产者进程已将缓冲池占有,此时消费者进程等待。结果发生死锁。

b.意思不变

c.同a

d.意思不变
5.16

这一问题给出了相应三种进程的信号量的使用。圣诞老人(Santa Claus)在北极他的店里
睡觉仅能被(1)、(2)唤醒。

(1)所有九个驯鹿都结束它们的假期从南太平洋回来

(2)仅当制造 玩具的小孩子有困难时将其喊醒为了让圣诞老人多睡会儿觉,仅当三个小孩子
有问题时将其唤醒。当三个 小孩子有问题在解决时,其他小孩子想访问圣诞老人时必须等其
他人回来。

如果圣诞老人醒来发现有三个小孩子在他的店门外等候,同时最后一条驯鹿已经从热带回
来,圣诞老 人已经决定让这些小精灵等到圣诞节之后,因为他的雪橇已经准备好了,这一点
比较重要(假定驯鹿不想 离开热带,因此他们会停留到最后一刻)。最后一只驯鹿到达时圣诞
老人必须出发,以前到达的驯鹿在拉 雪橇前在一个温暖的小屋里等待。使用信号量解决这一
问题。


分析:

三类进程:Santa Claus, reindeer, kids

Santa Claus: sleep in North Pole

waken by reindeer(9头)

Kids(3个)

Reindeer:Vacation in tropics

Return North Pole
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除

Christmas activity

Kids: Making toys

having difficulties ,need help


Semaphore:wakesanta=0;唤醒圣诞老人的信号量

returnreindeer=1; 返回的驯鹿的计数器互斥信号量

needhelp=1;需要帮助的Elves的计数器互斥信号量

int :reindeercount=0, Kidscount=0;

Santa Claus:{

while (true){

wait(wakesanta);等待被唤醒

if(reindeercount==9)

{christmas activity;

send_reindeer();

wait(returnreindeer);获得寻路返回互斥信号量

reindeercount=0;

signal(returnreindeer);释放驯鹿返回互斥信号量}


if(elvescount>=3){

help_Kids();

wait(needhelp);等待需要帮助信号量

Kidscount=0;

signal(needhelp);释放需要帮助信号量}

}

Reindeer i{

while true{vacation on tropics;

return to North Pole;

wait(returnreindeer);获得驯鹿返回互斥信号量

reindeercount++;

if(reindeercount==9)

signal(wakesanta)释放唤醒圣诞老人信号量
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除


else {wait_in_hut();

signal(returnreindeer)释放驯鹿返回互斥信号量}

}

Kids i:{making toys;

wait(needhelp);获得需要帮助信号量

Kidscount++;

if elvescount==3

signal(wakesanta);释放唤醒圣诞老人信号量

else signal(needhelp);释放需要帮助互斥信号量

}

6.1
互斥:在每一时刻,只能有一辆车占用十字路口的一个象限;
占有且等待:没有车倒退;每辆车一直在等待,直到它前面的十字路口的象限可以使用;
非抢占:没有车辆能够强迫另一辆车给自己让路;
循环等待:每辆车一直等待另外的车辆占用的十字路口的象限。

6.2
1.Q获得B,然后获得A,然后释放B和A;当P恢复执行的时候,它可以获得全部资源。
2.Q获得B,然后获得A;P执行并阻塞在对A的请求上;Q释放B和A,当P恢复执行时,
它可以获 得全部资源。
3.Q获得B,P获得并释放A,然后Q获得A并释放B和A,当P恢复执行时,它可以 获
得B。
4.P获得A,Q获得B,P释放A,Q获得A并释放B,P获得B并且释放B。
5.P获得并释放A,P获得B;Q执行并阻塞在对B的请求上;P释放B,当Q恢复执行时,
它可以获得全部资源。
6.P获得A并且释放A,P获得B并且释放B,当Q恢复执行时,他可以获得全部资源。

6.3.如果Q在P请求A之前获得B和A,那么Q能够使用并稍后释放这两个资源,允许P
继 续执行。
如果P在Q请求A之前获得A,那么Q至多执行到请求A之前,然后被阻塞。尽管这< br>样,一旦P释放A,Q就能够继续执行。一旦Q释放B,P也能继续执行。




6.5

(1) w=2 1 0 0

(2) 进程P3的请求等于W,标记P3,W=2 1 0 0+0 1 2 0=2 2 2 0
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除

(3)进程P2的请求小于W,标记P2,W=2 2 2 0+2 0 0 1=4 2 2 1

(4)进程P1的请求小于W,标记P1,W= 4 2 2 1 +0 0 1 0=4 2 3 1

(5)所有的进程都标记了,所以系统不存在死锁

6.10 a.第四个进程到达,最大需求是60,初始要求是25


b.第四个进程到达,最大需求是60,初始需求是35

6.13
a.三个进程共享四个资源单元





最坏情况是,3个进程各只得到1个资源单元。
这时系统尚存有1个资源单元,因而将不会死
锁。

b.
定义:claim[i]=进程i总共需要的资源数目;
allocation[i]=进程i已经分配的资源数目;
deficit[i]=进程i仍然需要的资源数目。
根据题意,我们有下式成立:


在一个死锁的情况下,所有的资源都是被占
有的,所以有下式成立:



并且,此时,每个进程都在等待资源。
从以上两个式子我们可以得出:


也就是说至少有一个进程j,它已经获得了所
有所需要的资源(deficit[j]=0),将完成其工
作并释放所有的资源,剩下的进程将依次完
成工作,因此死锁不会发生。

此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除
6.14
安全状态,需要的最小资源数目是3。
依次用P1-P4来表示四个进程。从矩阵可以看
出,四个进程还需要的资源数目为(2,1,
6,5),当有一个可用资源时,P2可以执行
完成,并释放占用资源,可用资源数目为2,
允许P1执行完成,可用资源数目为3,此时,
P3需要6个资源,P4需要5个资源,既最小情
况还需要2个额外资源,P4执行完成,释放资
源后,P3再执行完成。
6.17

如果至少有一个左撇子或右撇子,则当所有哲学家都准备拿起第一根筷子时,必定会有两个哲学家竞争一根筷子而其中一个得不到处于等待,这样必定有一个哲学家可以获得两根筷
子,而不 至于发生死锁。

同样也不会发生饥饿

7.1
重定位 支持模块化程序设计
保护 进程隔离;保护和访问控制
共享 保护和访问控制
逻辑组织 支持模块化程序设计
物理组织 长期存储;自动分配和管理

7.2
分区数目等于主存的字节数除以每个分区的字
节数:



每8位二进制数表示 个分区中的一个分区。

7.3
定义s和h分别为内存中段的数量和空洞的数
量。假定在动态分区的内存中,存储段的创建
和释放以相同的概率发生,那么对于任一分
区,它后面紧挨着的那个部分是一个分区或者
是一个空洞的概率各为0.5。所以,对于有s个
段的内存中,空洞的平均数量为s2,既空洞
的数量是段数量的一半。

7.5
最佳适配算法在每次分割之后切割下来的剩
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除
余部分总是最小的,这样会在存储器中留下
很多难以利用的小空闲区。最坏适配算法当
有进程调入的时候每次都分配最大的空闲存
储块,这样块中剩余的空闲空间就足够大从
而可以满足另外的请求。缺点是第一次分配
的时候就把最大的空闲区分配了,当有大的
空间分配请求时极易分配失败。

7.6



a.第一个块分配到第二个空闲块,起始地址为80M,第二个块分配到第一个空闲块,起始地
址为2 0M,第三个块分配到第二个空闲块起始地址为120M。
b.第一个块分配到第四个空闲块,起始地 址为230M,第二个块分配到第一个空闲块,起始
地址为20M,第三个块分配到第三个空闲

块,起始地址为160M。
c.从上一次放置的位置开始扫描(注意只往后看), 所以三个块的起始地址分别为80M,120M
和160M。
d.每次都找最大的空闲块。三个块的起始地址为80M,230M和360M。
7.7
a.
b.

7.8
a.

b.

7.9




其中,mod表示求余运算。


7.10
a. 我们完全可以采用斐波那契(Fibonacci)数 列作为块的划分准则,从而建立起与普遍采
用的对分伙伴系统(binary buddy system)不同的伙伴系统。
b. 与对分伙伴系统相比,按照斐波那契数列建立起来的伙伴系统 能够提供更多不同的块容
量;也就是说,整个内存空间划分得更细致了,块的容量更具有多样性。因此, 在为进程分
配存储空间时,可以找到最佳适配的存储块,因而可以使内部碎片的尺寸得以减小,这是这< br>此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除
种伙伴系统具有的显著优点。

7.12
a.逻辑地址空间为:
逻辑地址空间包含的位数为26位。
b.一个帧的大小和页的大小相同都是 。
c.存储器地址空间帧大小= ,所以指定帧需要22位。
d.逻辑地址空间有 个页,所以含有 个页表项。
e.加上一个有效无效位,制定一个帧的位数为22,所以总共为23位。

7.14
a.从段表可以看出,段表中的四个字段依次为段0,1,2,3。
物理地址=660+198=858
b.物理地址=222+156=378
c.由于段内偏移(530)>段的长度(442),所以发生段错误。
d.物理地址=996+444=1440
e.物理地址=660+222=882

8.1

a

步骤:

从虚地址求取页号和页内偏移(利用公式:虚地址=页号*页长+页内偏移)

利用页表由页号求取对应的块号

求物理地址(利用公式:物理地址=块 号*块长+块内偏移,注意到块长=页长,块内偏移=
页内偏移)


b.

(i) 1052 = 1024 + 28 虚拟页号为1,得到帧号为7。

物理地址=7*1024+28=7196

(ii) 2221 = 2 * 1024 + 173

虚拟页号为2,页错误。

(iii) 5499 = 5 *1024 + 379虚拟页号为5,得到帧号为0。

物理地址=0*1024+379=379
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除

8.2
a.存储器地址空间页大小= ,所以在虚拟存储器中指定页需要22
位。
每一页包含 个页表项。每个
页表占据了8位,因此22位需要用到三级页表。
b.两级的页表包含 个页表项,一级页表包含 个页表项(8+8+6=22)。
c.我们这里有三级,三级所占位数为6,8,8,则页的个数为:
若三级所占位数为:8,6,8,则页的个数为:

若三级所占位数为:8,8,6,则页的个数为:

8.4

a. 3号页帧的内容将被置换,因为它最早被加载。

b. 1号页帧的内容将被置换,因为它的上次访问时间离当前最久。

c. 0号页帧的内容将被置换,因为其中R位和M位的值为(0, 1)。

d. 3号页帧的内容将被置换,因为由将来的访问序列可知,页面3的访问顺序最靠后。


8.6

a. 命中率=1633




b. 命中率=1633


c. 对于这个特定的访问序列, 采用上述两种替换策略得到的命中率相等。一般来说,采用
LRU替换策略的命中率会高于采用FIFO 替换策略的情况,而对于这个特定的访问序列来说,
一个页面被载入之后,很少发生在接下来的5次连续 访问中再次被访问的情形,因此缺页发
生的时刻与LRU的情况相当接近,从而使得对应的命中率接近于 LRU。

8.8
存储器地址从4000开始:
4000 (R1) ONE Establish index register for i
4001 (R1) n Establish n in R2
4002 compare R1, R2 Test i > n
4003 branch greater 4009
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除
4004 (R3) B(R1) Access B[i] using index register R1
4005 (R3) (R3) + C(R1) Add C[i] using index register R1
4006 A(R1) (R3) Store sum in A[i] using index register R1
4007 (R1) (R1) + ONE Increment i
4008 branch 4002
6000-6999 storage for A
7000-7999 storage for B
8000-8999 storage for C
9000 storage for ONE
9001 storage for n

8.10

假设需要i级,则可以表示的地址空间大小

=

要求表示64位地址空间,则要求10i+12>=64,所以i至少取6


8.11

a. 400ns

b. 15%*420+85%*220=250



8.12

a. 缺页下限=n

b. 缺页上限=p



8.17

a. 每段的最大尺寸=8*2K=16K

b. 该任务的逻辑地址空间最大=4*16K=64K

c. 逻辑地 址格式是:2位表示段号,3位表示页号,其他11位表示页内偏移。最后的11
位转换为十六进制为2 BC

8.18
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除

a. 逻辑地址格式是:前5位表示页号,后11位表示页内偏移。

b. 页表长度:25=32个条目;页表宽度:20-11=9位。

c. 页表宽度由9位变为8位。

9.1 每个方块表示一个执行单元,方块中的数字表示当前执行的进程。

FCFS
RR, q = 1
RR, q = 4
SPN
SRT
HRRN
A A A B B B B B C C D D D D D E E E E E
A B A B C A B C B D B D E D E D E D E E
A A A B B B B C C B D D D D E E E E D E
A A A C C B B B B B D D D D D E E E E E
A A A C C B B B B B D D D D D E E E E E
A A A B B B B B C C D D D D D E E E E E
Feedback, q = 1 A B A C B C A B B D B D E D E D E D E E
Feedback, q = 2i A B A A C B B C B B D D E D D E E D E E
FCFS
RR, q = 1
RR, q = 4
SPN
SRT
HRRN
A A A B B B B B C C D D D D D E E E E E
A B A B C A B C B D B D E D E D E D E E
A A A B B B B C C B D D D D E E E E D E
A A A C C B B B B B D D D D D E E E E E
A A A C C B B B B B D D D D D E E E E E
A A A B B B B B C C D D D D D E E E E E
Feedback, q = 1 A B A C B C A B B D B D E D E D E D E E
Feedback, q = 2i A B A A C B B C B B D D E D D E E D E E

9.7
首先,调度器计算在时间t+r1+r2+r3时刻的响应
比,此时,三个作业都已经完成。这个时候第三个
作业具有最小的响应比(图中可以看出),所以,
调度器决定最后执行第三个作业;继续查看在时间
t+r1+r2时,第一和第二个作业都已完成,此时,
第一个任务的响应比要小些,所以,在时间t的时
候第二个作业被选择执行,既执行顺序为r2,r1,r3。
这个算法在每完成一个作业之后重新查看作业的响
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除
应比,跟高响应比优先算法是有区别的,如果是后
者那么在时间t的时候就会选择第一个作业。


9.14

在多级反馈队列调度器的调度下,IO-bound的进程比CPU- bound的进程更有利,也就是
说,调度器更倾向于选择IO- bound的进程进行分派。原因在于IO- bound的进程会比较长
时间地阻塞;在阻塞过程中,CPU- bound的进程得到多次分派执行,因而会很快进入低优先
级的反馈队列中。这样,IO- bound的进程被唤醒之后,通常具有比CPU- bound的进程高得
多的优先级,所以会得到调度器的“青睐”。

9.16

11.3

第二问,如果沿着磁道号增大的方向移动,则只有扫描算法和循环扫描算法需要改变。

11.8
a.
物理块大小=(10逻辑记录物理记录)*(120字节逻辑记录)=1200字节
物理块长度=1200字节(1600字节寸)=0.75寸
传输时间=0.75120+0.660=0.01625
块数量=2400*12(0.75+0.6)=21333
花费的时间=21333*0.01625=346(s)


b.
物理块大小=(30逻辑记录物理记录)*(120字节逻辑记录)=3600字节
物理块长度=3600字节(1600字节寸)=2.35寸
传输时间=2.35120+0.660=0.02875
块数量=2400*12(2.35+0.6)=10105
花费的时间=10105*0.02875=291(s)


c.对于a,物理块为21333,逻辑记录=10*21333=213330
对于b,物理块为10105,逻辑记录=30*10105=303150
d.对于a,
r=(213330个记录*120个字节记录)346秒
= 73987字节秒
对于b,
r=(303150个记录*120个字节记录)291秒
= 125010字节秒

此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除
e.对于a,
容量=213330个记录*120字节记录
= 25599600字节
对于b,
容量=303150个记录*120字节记录
=36378000字节

11.10
每个扇区有512个字节,每个字节 产生一次中断,那么就有512次中断,总共的中断处
理时间=2.5*512=1280us.
磁盘旋转速度为360rm=6rs,既转一圈要16秒。
所以,读一个扇区的时间
=(16s)(96扇区磁道)=0.001736s
=1736us
处理器花费在处理IO上的时间百分比
=12801736=74%

12.3
a.索引
b.索引顺序
c.哈希或索引

12.6

a

可以,一 种简单的方式是:首先,建立一个数据结构以表示文件系统所在磁盘的所有块。
然后,从文件系统的根目 录开始遍历整个系统,并为每个文件所使用的每个块在前述数据结
构中打上标记。最后,当遍历完成,没 有被打上标记的块既为空闲块。

b

可以使用空闲空间链的备份链。

12.7

a

一个磁盘块的大小是8K,每个磁盘 块指针是32位,则,一个磁盘块中可以容纳的块指针
数=8*1024*(832)=2048
因此,最大文件的大小
=12*8K+2048*8K+2048*2048*8K+2 048*2048*2048*8K=96K+16M+32G+64T

b

8K=16M8K=128G
此文档仅供学习和交流


此文档收集于网络,如有侵权请联系网站删除

c
地址12,423,956大约在11M的范围内,需要用到单重链接。所以需要两次磁盘访问。


此文档仅供学习和交流

中国人打外国人-业务员的工作计划


念奴娇昆仑-苏州科技学院分数线


庆熙大学-公装合同


西安培华学院-学校中层述职报告


菊花岛-歌颂老师的诗


销售心德-什么时候是母亲节


母爱诗句-南方医科大学录取分数线


三台中学-毕业生自我鉴定范文