操作系统作业 下载本文

计算机操作系统作业

专业班级:信管1302

姓名:张美芝 学号:130404017

1

目录

第一章 .......................................................................................... 3

第二章 .......................................................................................... 6

第三章 .......................................................................................... 9

第四章 ........................................................................................ 15

第五章 ........................................................................................ 18

第七章 ........................................................................................ 21

2

第一章

思考与练习题

1. 什么是操作系统?它的主要功能是什么?

答:操作系统是用来管理计算机系统的,是所有其他软件运行的基础,从资源管理的角度来看,操作系统是对计算机系统内的所有软、硬件资源进行管理和控制,优化资源的利用,协调系统内的各种活动,处理可能出现的各种问题。 它的主要功能:

(1)存储管理:方便用户使用内存,提高内存利用率以及从逻辑上扩充内存。

(2)处理机(CPU)管理:协调多道程序之间的关系,解决对处理机的调度分配及回收等问题。

(3)设备管理:①完成用户提出的输入输出请求,为用户分配外部设备。②提高外部设备利用率。③尽可能地提高输入输出的速度。④方便用户使用外部设备。

(4)信息管理:向用户提供一种简便、统一的存取和管理信息的方法,并同时解决信息的共享、安全保密等问题。

(5)用户接口:为了方便用户使用操作系统,向用户提供给了用户与操作系统的接口。 2. 什么是多道程序设计技术?多道程序设计技术的主要特点是什么?

答:多道程序设计技术是指把多个程序同时放入内存,使他们共享系统中的资源,并使他们交替地执行,当一道程序暂停执行时,系统调度另一道程序运行,使CPU一直处于忙碌状态。

主要特点:(1)多道,即计算机内存中同时存放多道相互独立的程序。 (2)宏观上并行,是指同时进入系统的多道程序都处于运行过程中。

(3)微观上串行,是指在单处理环境下,内存中的多道程序轮流地占有CPU,交替执行。 3. 批处理系统是怎样的一种操作系统?它的特点是什么?

答:批处理操作系统是一种基本的操作系统类型,在该系统中,用户的作业(包括程序、数据及程序的处理步骤)被成批地输入到计算机中,然后在操作系统的控制下,用户的作业自动地执行。

批处理系统的特点:(1)资源利用率大。(2)系统吞吐量大。(3)平均周转时间长。(2)无交互能力。

4. 什么是分时系统?什么是实时系统?试从交互性、及时性、独立性、多路性和可靠性几

个方面比较分时系统和实时系统。

答:分时系统是指一个计算机和许多终端设备连接,每个用户通过终端向计算机发出命令,以交互方式使用计算机,共享主机中的资源的一种操作系统。

实时系统是指当有外来信息时,计算机能够接受并及时处理,在被控对象允许的范围内做出快速反应,并控制所有实时任务协调一致运行的操作系统。 实时系统与分时系统的比较:

(1) 多路性:在分时系统中,按原则为多个终端用户提供服务。而对于实时控制系统,

其多路性主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。

(2) 独立性:不管是实时信息处理系统还是实时控制系统,与分时系统一样具有独立性。

每个终端用户在向系统提出服务请求时是彼此独立地工作、互不干扰。

(3) 交互性:实时信息处理系统具有交互性,但人与系统的交互,仅限于访问系统中某

3

些特定的专用服务程序。而分时系统那样向终端用户提供数据处理、资源共享等服务。

(4) 及时性:实时信息处理系统对及时性的要求与分时系统类似,都以人们能够接受的

等待时间来确定。而实时控制系统对及时性要求更高,是以控制对象所要求的开始截止时间或完成截止时间来确定的。

(5) 可靠性:分时系统虽然也要求具有可靠性,但相比之下,实时系统则要求系统高度

可靠。

5. 实时系统分为哪两种类型? 答:(1)实时控制系统:能对输入作出快速处理,并能及时提供输出操作信号的计算机控制系统。

(2)实时信息处理系统:通常是把要求对信息进行实时处理的系统。 6. 操作系统的主要特征是什么? 答:(1)并发性:用户与用户之间的并发执行;用户和操作系统程序之间的并发执行。 (2)共享性:各种资源供运行的程序共同享用。

(3)虚拟性:通过技术手段把一个物理实体变成多个逻辑上的对应物。

(4)不确定性:在一个不确定的环境下运行,人们不能对目前所运行的程序的行为做出判断。

7. 操作系统与用户的接口有几种?它们各自用在什么场合? 答:两种,分为命令接口、程序接口

(1) 命令接口:可分为联机命令接口、脱机命令接口和图形用户界面接口。方便用户直

接控制自己的作业而提供的接口,其中联机命令接口是为联机用户提供,脱机命令接口是为批处理用户提供,而图形用户接口是采用图形化方式显示的操作界面。

(2) 程序接口:又称系统调用,是为用户在程序一级访问操作系统功能而设置的。 8. “操作系统是控制硬件的软件”这一说法确切吗?为什么?

答:不确切,操作系统不仅仅是控制硬件,其他所有的软件,如汇编程序、编译程序、数据库系统及大量的应用软件,都依赖与操作系统的支持,所以操作系统还控制计算机软件。 9.设内存中有三道程序,A、B、C,他们按A→B→C的先后次序执行,它们进行“计算”和“I/O操作”的时间表1-2所示,假设三道程序使用相同的I/O设备。

表1-2 三道程序的操作时间 操作 程序 A B C 计算 20 30 10 I/O操作 30 50 20 计算 10 20 10 (1) 试画出单道运行时三道程序的时间关系图,并计算完成三道程序要花多长时间。

4

计计AABBCCI/O计计ABC0205090140160170190200

单道程序时间关系图

20ms+30ms+10ms+30ms+50ms+20ms+10ms+20ms+10ms=200ms

(2) 试画出多道运行时三道程序的时间关系图,并计算完成三道程序要花多长时间。

计算ABACBCI/O操作ABC02050607090100120130

多道程序时间关系图

20ms+30ms+10ms+40ms+20ms+10ms=130ms

10.将下列左右两列词连接起来形成意义最恰当的的5对。

DOSOS/2UNIXLINUXWindows NT

网络操作系统自由软件多任务单任务为开发操作系统而设计C语言

5

第二章

思考与练习题

1. 操作系统中为什么要引入进程的概念?为了实现并发进程之间的合作和协调,以及保

证系统的安全,操作系统在进程管理方面要做哪些工作? 答:操作系统引入进程的概念是为了从变化的角度动态地分析研究可以并发执行的程序,真实地反映系统的独立性、并发性、动态性和相互制约。

操作系统的进程管理提供大量的服务,用来定义、支持和管理系统中的进程和线程。它除了负责进程和线程的管理之外,还负责用户进程和系统进程的创建与撤销、进程调度等。 2. 试描述当前正在运行的进程状态改变时,操作系统进行进程切换的步骤。

答:①运行状态→就绪状态。正在运行的进程,由于规定的时间片用完而被暂停执行,该进程就会从运行状态转变为就绪状态。此进程根据其自身的情况(如优先级)插入到就绪队列的适当位置,系统收回处理机转入进程调度程序重新进行调度。

②运行状态→阻塞状态。处于运行状态的进程,除了因为时间片用完而暂停执行外,还有可能由于系统中的其他因素的影响而不能继续执行下去。一个进程从运行状态到阻塞状态后,系统会调用进程调度程序重新选择一个进程投入运行。 3.现代操作系统一般都提供多任务环境,试回答下列问题。

(1)为支持多进程的并发执行,系统必须建立哪些关于进程的数据结构?

答:为支持多进程的并发执行,系统必须建立PCB。用链接的方式把PCB连接起来就形成了运行队列、就绪队列。

(2)为支持进程的状态变迁,系统至少应提供哪些控制原语?

答:系统至少应该提供创建新进程原语、唤醒原语、阻塞原语、激活原语、挂起原语 (3)当进程的状态变迁时,相应的数据结构发生变化吗? 发生变化

创建原语:申请空白PCB,初始化进程描述信息,为进程分配资源、分配存储空间,将新进程插入就绪队列。

撤销原语:查找撤销进程PCB,终止进程运行状态,归还资源从所在队列移出。 阻塞原语:将进程PCB的运行状态改为阻塞状态,并将进程投入阻塞队列。

唤醒原语:将进程PCB的运行状态从阻塞状态改为就绪状态,把进程从阻塞队列移出投入就绪队列。

4. 什么是进程控制块?从进程管理、中断管理、进程通信、文件管理、设备管理及存储管理的角度设计进程控制块应包含的内容。 答:进程控制块是来描述进程本身的特性、进程状态、进程的调度信息及对资源的占有情况,它是进程实体的一部分,是操作系统中最重要的数据结构。进程控制块记录了操作系统所需的用于描述进程情况及控制进程运行的全部信息。 为了进程管理,进程控制块包括以下几方面。

①进程的描述信息,包括进程标识符、进程名等。 ②进程的当前状况。 ③当前队列链接指针。 ④进程的家族关系。 为了中断处理,进程控制块的内容应该包括处理机状态信息和各种寄存器的内容,如通用寄存器、指令计数器、程序状态字(PSW)寄存器及栈指针等。

6

为了文件管理的需要,进程在执行时,可能与其他进程有同步关系或相互通信,进程使用的信号量、消息队列指针等都要存放在PCB中。

为了设备管理,进程控制块的内容应该包括进程所需全部资源以及已经占有的资源等。 5.假设系统就绪队列中有10个进程,这10个进程轮换执行,每隔300ms轮换一次,CPU在进程切换时所花费的时间是10ms,试问系统化在进程切换上的开销占系统整个时间比例的多少?

答:10/(300+10)=3.2﹪

6. 试述线程的特点及其与进程之间的关系。

答:线程是进程的一个实体,是被独立调度和分派的基本单位。同一进程内的多个线程都可以访问进程的所有资源,线程之间的通信比进程之间的通信方便。

线程与进程的关系:线程与进程是两个密切相关的概念,一个进程至少拥有比一个线程(该线程为主线程),进程根据需要创建若干个线程。进程中的所有线程共享该进程资源,它们驻留在同一块地址空间中,并且可以访问到相同的数据。 7.根据图2-18,回答以下问题。

(1)进程发生状态变迁1、3、4、6、7的原因。

答:1:表示新进程创建以后,进入高优先级就绪队列。3:表示正在运行的进程请求I/O或等待某事件,运行的进程进入阻塞队列。4:表示进程运行的时间片用完。6:表示进程I/O或等待某事件完成,进程又重新进入就绪队列。7:进程运行完成退出。

(2)系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,这种变迁称为因果变迁。下述变迁是否是因果变迁:3→2,4→5,7→2,3→6,试说明原因。

答:3→2是因果变迁,当一个进程从运行变为阻塞时,此时CPU空闲,首选一优先级高的进程投入运行。

4→5是因果变迁,进程在就绪队列中轮换运行,当一进程时间片用完CPU空闲,此时立即选择一进程投入运行,若无高优先级只能提低优先级。

7→2是因果关系,当进程运行完成退出后,CPU空闲,高优先级进程投入运行。

3→6不是因果变迁,因为进程由于自身原因发生阻塞和另一进程等待时间达到没有关系。 (3)根据此进程状态转换图,说明该系统CPU调度的策略和效果。

时间片500ms 5运行低优先级就绪时间片200ms 27退出4 3创建高优先级就绪9阻塞1 图2-18 进程状态转换图

答:当进程调度时,首先从高优先级就绪队列选择一进程,赋予时间片为100ms。如果高优先级就绪队列为空,则从低优先级就绪队列选择进程,但赋予500ms。这一策略照顾了短进程,一个进程如果在100ms运行完毕它将退出系统,照顾了I/O量大的进程,进程因I/O进入阻塞队列,当I/O完成后它就进入了高优先级就绪队列。 8. 回答以下问题。

7

(1)若系统中没有运行进程,是否一定没有就绪进程?为什么?

答:是,若系统中没有运行的进程,系统会马上选择一个就绪进程队列中的进程投入运行。只有就绪队列为空时,CPU才会空闲。

(2)若系统中既没有运行进程,也没有就绪进程,系统中是否没有阻塞进程?请解释。 答:不一定,当系统中所有进程都在请求I/O或等待某事件时他们都处于阻塞状态,此时既没有就绪进程也没有运行进程。

(3)如果系统采用优先级调度策略,运行的进程是否一定是系统中优先级最高的进程?为什么?

答:不一定,因为最高优先级的进程可能处于等待状态,进程调度只能从就绪队列中挑选一个进程投入运行。被选中运行的进程是就绪队列中优先级最高的,但它处于整个系统中不一定是最高的。

9. 假如有以下程序段,回答下面问题。

s1:a?3?x;s2:b?2*a; s3:c?5?a;(1) (2) (3) (1)

并发程序执行的Bernstein条件是什么? 试画图表示它们执行时的先后次序。

利用Bernstein条件证明, s1、s2和 s3哪两个可以并发执行,哪两个不能。 答:程序P1和P2并发执行的条件,当且仅当 R(P1)∩W(P2)∪R(P2)∩W(P1)∪W(P1)∩W(P2)={ }

s2s1s3(2)答: (3)答:S1和S2不能并发执行: R(S2)∩W(S1)={a}; R(S1)∩W(S2)={ };

S1和S3不能并发执行: R(S3)∩W(S1)={a}; R(S1)∩W(S3)={ }; S2和S3能并发执行:

R(S2)∩W(S3)∪ R(S3)∩W(S2)∪W(S2)∩W(S3)={ };

8

第三章

思考与练习题

1.以下进程之间存在相互制约关系吗?若存在,是什么制约关系?为什么? (1)几个同学去图书馆借同一本书。

答:互斥关系;只有一本书,先到者先得,剩下的人必须等待。 (2)篮球比赛中两队同学争抢篮板球。

答:互斥关系;先抢到篮板球者先得分,由于争抢篮板球,产生制约关系。 (3)果汁流水线生产中捣碎、消毒、灌装、装箱等各道工序。

答:同步关系;果汁的生产存在某种时序关系,它们按照规定的时序执行,以共同完成一项任务。

(4)商品的入库和出库。

答:同步关系;只有商品先入库了才能出库,所以存在一定的时序关系。 (5)工人做工与农民种粮。 答:没有相互制约关系。

2.在操作系统中引入管程的目的是什么?条件变量的作用是什么?

答:用信号量可以实现进程之间的同步和互斥,但要设置很多信号量,使用大量的P、V操作,还要仔细安排多个P操作的排列次序,否则将出现错误的结果或出现死锁现象。为了解决这些问题引入了管程。

条件变量的作用:条件变量是一种机制,使得进程不仅能被挂起,而且当条件满足且管程再次可用时,可以恢复该进程并允许它在挂起点重新进入管程。管程必须使用条件变量提供对同步支持,这些条件变量包含在管程中,并且只有在管程中才能被访问。 3.说明P、V操作为什么要设计成原语。

答:原语由若干指令构成,是用于完成一定功能的过程。用信号量S表示共享资源,其初值为1表示有一个资源。现在有两个进程申请该资源,其中一个进程先执行P操作,P操作由三条指令组成,先去S的寄存器使其减一再赋给S,若不用原语实现,在执行前两条指令时还没有把S-1的值赋给S进程被剥夺CPU,另一进程也要执行P操作。正确的结果是一个进程执行完,使另一进程阻塞。

4.设有一个售票大厅,可容纳200人购票。如果厅内不足200人则允许进入,超过则在厅外等候;售票员某时只能给一个购票者服务,购票者买完票后就离开。试问: (1)购票者之间是同步关系还是互斥关系? 答:购票者之间是互斥关系。

(2)用P、V操作描述购票者的工作过程。 答:

9

semaphore empty?200;semaphore mutex?1;void buyer? ?{ P(empty);P(mutex);buy;V(mutex);V(empty);}

5.进城之间的关系如图3-16所示,试用P、V操作描述它们之间的同步。

S2bS1S4aS3cS5gdefS6 图3-16 进程之间的关系

答:

?S1;P(a),P(b);??V(b);S2;P(e);??V(a);S3;P(d),P(c);??V(d);S4;P(f);? ?V(c);S5;P(g);??V(e),V(f),V(g);S6;?6.有四个进程P1、P2、P3、和P4共享一个缓冲区,进程P1向缓冲区中存入消息,进程P2、P3和P4从缓冲区中取消息,要求发送者必须等三个进程都取过本条消息后才能发送下一条消息。缓冲区每次只能容纳一个消息,用P、V操作叙述四个进程存取消息的情况。

10

semaphore mutex?0;{P1;V(mutex);}{P(mutex);P2;V(mutex);}{P(mutex);答:

P3;V(mutex);}{P(mutex);P4;V(mutex);}7.分析生产者—消费者问题中多个P操作颠倒引起的后果。

答:多个P操作的次序不能颠倒,在程序中,应先对资源信号执行P操作,再对互斥信号量执行P操作,否则可能引起死锁。

如以下的程序将P操作颠倒,先对互斥信号量执行P操作,此时易出现死锁现象,当消费者进程运行时,在full信号量上阻塞,此时mutex=0,在想运行生产者程序mutex=-1<0,此时生产者进程阻塞就产生死锁,生产者和消费者两个进程均不能运行。

11

semaphore mutex=1;semaphore empty=n;semaphore full=0;int i,j;ITEM buffer[n];ITEM data_p,data_c;void producer(){while (true){ produce an item in data_p; P(mutex); P(empty); buffer[i]=data_p; i=(i+1)%n; V(mutex); V(full); }}void consumer(){while (true){ P(mutex); P(full); data_c=buffer[j]; j=(j+1)%n; V(mutex); V(empty); consume the item in data_c; } }8.读者—写者问题中写者优先算法的实现。

12

semaphore Wmutex,Rmutex=1;int Rcount=0;semaphore mutex=1;void reader( ){while (true) { P(mutex); P(Rmutex); if (Rcount==0) P(Wmutex); Rcount=Rcount+1; V(Rmutex); V(mutex); ...; read; ...; P(Rmutex); Rcount=Rcount-1; if(Rcount==0) V(Wmutex); V(Rmutex); }}void writer( ) {while (true) { P(mutex); P(Wmutex); ...; write; ...; V(Wmutex); V(mutex); }}

13

9.写一个用信号量解决哲学家进餐问题不产生死锁的算法。 答:书上所提供的方法可能导致哲学家都只拿一只筷子而导致死锁且无法唤醒所有阻塞的进程。考虑引入一个互斥信号量mutex使哲学家一个个的进餐这样就不会引起死锁现象。 新设计的进程如下:

semaphore chopstick[5]={1,1,1,1,1};semaphore mutex=1;void philosopher (int i){while (true) { P(mutex); P(chopstick[i]); P(chopsick[(i+1)%5]); ...; eat; ...; V(mutex); V(chopstick[i]); V(chopstick[(i+1)%5]); ...; think; ...; }}10.一个文件可有若干个不同进程所共享,每个进程具有唯一的编码。假定文件可由满足下列限制的若干个进程同时访问,并发访问该文件的那些进程的编号的总和不得大于n,设计一个协调对该文件访问的管程。 答:

11.用管程解决读者—写者问题,并采用公平原则。

14

第四章

思考与练习题

1.某进程被唤醒后立即投入运行,能说明该系统采用的是可剥夺调度算法吗?

答:不能说明该系统采用的是可剥夺调度算法。当进程被唤醒时,此时就绪队列没有一个进程,则调度程序将它投入运行。

2.在哲学家进餐问题中,如果将先拿起左边筷子的哲学家称为左撇子,将先拿起右边筷子的哲学家称为右撇子。请说明在同时存在左、右撇子的情况下,任何的就座安排都不能产生死锁。

答:产生死锁,有以下四个必要条件:互斥、请求与保持、不可剥夺、环路。

此时哲学家进餐的问题,满足互斥、请求与保持和不可剥夺这三个条件。但是要满足环路条件,哲学家就需同时拿起左边或右边的筷子,即哲学家要么是左撇子,要么是右撇子。可是此时同时存在左、右撇子则不满足环路条件,任何就座安排都不产生死锁。

3.系统中有5个资源被4个进程所共享,如果每个进程最多需要2个这种资源,试问系统是否会产生死锁。

答:当资源数小于请求改种资源的进程数,就有可能产生死锁。现在由题可知每个进程最多需要2个资源,例如此时每个进程都先使用一个资源,则只剩下一个资源可供一个进程使用,这时一个进程申请资源,其他进程阻塞。这个进程运行完以后释放资源,此时唤醒其他阻塞进程运行,则不会造成进程阻塞而且还无法被唤醒。系统不产生死锁。

4.计算机系统有8台磁带机,由N个进程竞争使用,每个进程最多需要3台。问:当N为多少时,系统没有死锁的危险?

答:当N=1时,一个进程最多需要3台磁带机,此时不会产生死锁现象。当N=2时,两个进程申请6台,也足够使用,也不出现死锁现象。当N=3时,此时有进程不能完全得到3台,可是其他进程运行完以后释放磁带机,则此时阻塞的进程可以运行,也不会出现死锁的危险。当N=4时,可能出现每个进程都抢占到2台的情况,此时每个进程都不能运行下去,就出现了死锁。于是可以得出结论:当N<4时,系统不会出现死锁的危险。

5.假设系统有5个进程,它们的到达时间和服务时间如表4–8所示。新进程(没有运行过)与老进程(运行过的进程)的条件相同时,假定系统选新进程运行。

表4-8 进程情况

进程名 A B C D E 到达时间 0 2 4 6 8 服务时间 3 6 4 5 2 若按先来先服务(FCFS),时间片轮转法(时间片q=1),短进程优先(SPN)、最短剩余时间优先(SRT,时间片q=1)、响应比高者优先(HRRN)及多级反馈队列(MFQ,第一队列的时间片为1,第 i (i > 1) 个队列的时间片q=2(i-1)算法进行CPU调度,请给出各个进程的完成时间、周转时间、带权周转时间,及所有进程的平均周转时间和平均带权周转时间。

平均周转时间为

15

1nT=?Ti

ni?1其中Ti是每个作业的周转时间,n是作业的个数。

平均带权周转时间为

1nWi??Wi

ni?1其中Wi为带权周转时间,n是作业的个数。

以下是六种调度算法周转时间、平均周转时间、带权周转时间和平均带权周转时间的表格 进程名 到达时间 服务时间 完成时间 先来先 服务 周转时间 带权周转时间 完成时间 时间片 轮转法 q=1 周转时间 带权周转时间 完成时间 短进程 优先 周转时间 带权周转时间 完成时间 最短剩 余时间 优先 周转时间 带权周转时间 3 3 3 1 4 4 1.3 3 3 1 3 3 1 6 9 7 1.17 18 16 2.67 9 7 1.17 15 13 2.17 4 13 9 2.25 17 13 3.25 15 11 2.75 8 4 1 5 18 12 2.4 20 14 2.8 20 14 2.8 20 14 2.8 2 20 12 6 15 7 3.5 11 3 1.5 10 2 1 8.6 2.56 10.8 2.71 7.6 1.84 7.2 1.59 A 0 B 2 C 4 D 6 E 8 平均 16

完成时间 响应者比 高者 周转时间 优先 带权周转时间 完成时间 多级反 馈队列 周转时间 带权周转时间 3 3 1 3 3 1 9 7 1.17 17 15 2.5 13 9 2.25 18 14 3.5 20 14 2.8 20 14 2.8 15 7 3.5 14 6 3 8 2.14 10.4 2.56 6.设系统中有5个进程P1、P2、P3、P4和P5,有三种类型的资源A、B和C,其中A资源的数量是17,B资源的数量是5,C资源的数量是20,T0时刻系统状态如表4-9所示。

表4-9 T0时刻系统状态

进程 P1 P2 P3 P4 P5 已分配资源数量 A 2 4 4 3 3 B 1 0 0 0 1 C 2 2 5 4 4 A 5 5 4 4 4 最大资源需求量 B 5 3 0 2 2 C 9 6 11 5 4 A 3 1 0 2 1 仍然需求资源数 B 4 3 0 2 1 C 7 4 6 1 0 ⑴计算每个进程还可能需要的资源,并填入表的“仍然需要资源数”栏目中。 ⑵T0时刻系统是否处于安全状态?为什么?

答:系统属于安全状态,因为此时可以找到一组安全序列P4、P5、P2、P1、P3。 ⑶如果T0时刻进程P2又有新的资源请求(0,3,4),是否实施资源分配?为什么?

答:不实施资源分配,因为此时P2有新的资源请求(0,3,4)则此时P2的最大资源需求量为(5,6,10),由题知B资源数量是5,此时若分配资源P2因为B资源数量不够阻塞,不能释放资源,可能产生死锁现象。

⑷如果T0时刻,若进程P4又有新的资源请求(2,0,1),是否实施资源分配?为什么? 答:实施资源分配,此时P4的最大资源需求量达到(6,2,6)。此时可以先向P5分配资源,P5使用完以后释放资源此时资源数为(5,4,7),然后在向进程P4进行资源分配。 ⑸在(4)的基础上,若进程P1又有新的资源请求(0,2,0),是否实施资源分配?为什么? 答:不实施资源分配,因为此时P1的最大资源需求量为(5,7,9),由题知B资源最大为5,此时若实施资源分配,进程P1不释放资源容易造成死锁现象。

17

第五章

思考与练习题

1. 存储管理的基本任务是为多道程序的并发执行提供良好的存储环境,这包括哪些方面? 答:(1)能使存储器有较好的利用率。

(2)为用户对信息的访问、保护、共享以及程序的动态链接、动态增长提供方便。

(3)从逻辑上扩充内存容量,为用户提供更大的存储空间,使更多的程序同时投入运行或是很大的程序在较小的内存中运行。

(4)防止某道程序干扰和破坏其他用户程序或系统程序,存储管理提供了一定的存储保护措施。

2.页式存储管理系统是否产生碎片?如何应对此现象?

答:页式存储管理系统在为进程分配内存空间时,以页为单位进行。进场的最后一页经常装不满一个存储块,而形成不可利用的碎片,称为页内碎片。若选择页面较小,可以使页内碎片减小。一般页面大小应适中选择,通常在512B~4MB之间。

3.在页式存储管理系统中页表的功能是什么?当系统的地址空间很大时会给页表的设计带来哪些新问题?

答:在页式管理系统中,进程的若干个页被离散地存储在内存的多个存储块中,为了能找到每个页所对应的存储块,系统为每个进程建立一张页表。进程所有的页,依次在页表中有页表项,其中记录了相应页在内存中对应的物理块号。因此页表的功能是实现从页号到存储块号的地址映射。

当系统地址空间很大时,页表也变得很大,占相当大的内存空间。 4.什么是动态链接?用哪种存储管理方案可以实现动态链接? 答:链接程序的功能是将经过编译后得到的一组目标模块以及它们所需要的库函数,装配成一个完整的装入模块。动态链接就是在程序运行过程中,实现目标模块的链接。只有在段式存储管理方案中,才能实现在程序运行过程中调用某段时才将该段(目标模块)调入内存并进行链接。动态链接也要求以段式为存储管理单位。

5.某进程的大小为25F3H字节,被分配到内存的3A6BH字节开始的地址。但进程运行时,若使用上、下界寄存器,寄存器值是多少?如何进行存储保护?若使用地址、限长寄存器,寄存器值是多少?如何进行存储保护?

答:下界寄存器的值是3A6BH,上界寄存器的值是25F3H+3A6BH=605EH,当访问的地址小于3A6BH,大于605EH时,越界中断。

地址寄存器值是3A6BH,限长寄存器值是25F3H,当访问地址小于3A6BH,大于605EH时发生越界中断。

6.在系统中采用可变分区存储管理,操作系统占用低址部分的126KB,用户区的大小是386KB,采用空闲分区表管理空闲分区。若分配时从高地址开始,对于下述作业申请序列:作业1申请80KB;作业2申请56KB;作业3申请120KB;作业1完成;作业3完成;作业4申请156KB;作业5申请80KB。使用首次适应法处理上述作业,并回答以下问题。 (1)画出作业1、2、3进入内存后,内存的分布情况。 (2)画出作业1、3完成后,内存的分布情况。 (3)画出作业4、5进入内存后,内存的分布情况。

18

作业1 80KB作业2 56KB作业3 120KB空闲 80KB作业2 56KB空闲 80KB作业2 56KB作业4 156KB空闲 250KB空闲 130KB作业5 80KB空闲 14KB操作系统 126KB操作系统 126KB操作系统 126KB答:(1) (2) (3)

7.某系统采用页式存储管理策略,某进程的逻辑地址空间为32页,页的大小为2KB,物理地址空间的大小是4MB。 (1)写出逻辑地址的格式。 答:逻辑地址的格式如下:

由题知逻辑空间为32页,则页号占5个位,页大小为2KB故页内位移占11位。

15页号1110页内位移0

(2)该进程的页表有多少项?每项至少占多少位?

答:由题知逻辑空间为32页,所以页表共有32项。页表中记录的是相应页在内存中对应的物理块号。物理地址的大小为4MB则分为4MB÷2KB=2KB个块,每项占11位。 (3)如果物理地址空间减少一半,页表的结构有何变化?

答:物理地址要是减少一半变为2MB,页表的项数没有发生改变仍为32项。由于2MB÷2KB=1KB,页表中每项此时占10位。

8.某页式存储管理系统,内存的大小为64KB,被分为16块。块号为0、1、2、?、15.设某进程有4页,其页号为0、1、2、3,被分别装入内存的2、4、7、5,为: (1)该进程的大小是多少字节? 答:由题知内存大小为64KB 且此时被分为16块,则每一块占4KB,这是进程总共有4页,所以进程的大小为4×4KB=16KB。

(2)写出该进程每一页在内存的起始地址。

答:由题,页号0、1、2、3对应的块号为2、4、7、5。 页号为0内存的起始地址:2×4KB=8KB 页号为1内存的起始地址:4×4KB=16KB 页号为2内存的起始地址:7×4KB=28KB 页号为3内存的起始地址:5×4KB=20KB

(3)逻辑地址4146对应的物理地址是多少?

答:逻辑地址4146 的二进制形式为1000000110010

逻辑地址41461000000110010

此时页内位移占12位,剩下1位为页号,逻辑地址4146的页号为1,对应的块号为4。

19

物理地址16436100000000110010

9.某段式存储管理系统的段表如图5-33所示。

段号段长段始址01215KB8KB10KB40KB80KB100KB

图5-33 段表

请将逻辑地址[0,137]、[1,9000]、[2,3600]、[3,320]转化成物理地址。

答:[0,137]的物理地址:由题知段号0段号的段长为15KB,137B<15KB,则此时[0,137]的物理地址为40×1024+137=41097B。

[1,9000]的物理地址:由题知1段号的段长为8KB,此时9000B>8KB,此时发生越界中断。 [2,3600]的物理地址:由题知2段号的段长为10KB,此时3600B<10KB,则此时[2,3600]的物理地址为 100×1024+3600=106000B。

[3,320]由于该段表没有给出段号为3时的段长和段始址,无法求出其物理地址。

20

第七章

思考与练习题

1. 数据传输控制方式有哪几种?试比较它们的优缺点。 答:数据传输控制方式有以下四种:

(1) 程序直接控制方式就是由用户进程直接控制CPU与外设之间信息传递。

缺点:①CPU与外设只能串行工作。②CPU在一段时间内只能与一台外设交换数据信息,因此多台外设之间也是串行。③无法发现和处理由于设备和其他硬件所产生的错误。程序直接控制方式只适用于那些CPU执行速度较慢,且外设较少的系统。 (2) 中断控制方式

与程序直接控制方式比较,中断控制方式可以成百倍地提高CPU的利用率,但还存在以下问题: ① 设备控制器的数据寄存器装满数据后,发生中断。在进程传送数据的过程中,发生中断

的次数可能很多,这将消耗CPU的大量处理时间。 ② 计算机的各种外设通过中断方式进行数据传送,由于中断次数的急剧增加会造成CPU

无法响应中断,出现数据丢失现象。 (3) DMA控制方式

采用中断方式时,CPU是以字节为单位进行干预的。如果将这种方式用于块设备I/O,显然是低效的。因此引入DMA控制方式。

局限性:DMA方式对外设的管理和操作仍由CPU控制,多个DMA同时使用显然会引起内存地址的冲突并使得控制过程进一步复杂化。 (4) 通道方式

通道方式是DMA方式的发展,它可以进一步减少CPU干预,即把对一个数据块的读(写)干预减少到对一组数据块的读(写)干预。同时又实现CPU、通道及I/O设备三者的并行工作,从而更有效地提高整个系统的资源利用率。 2. 何谓设备的独立性?如何实现设备的独立性?

答:设备的独立性,也称设备的无关性。其含义是,用户独立于具体使用的物理设备。 为实现设备独立性,系统必须使用能够将用户程序中所使用的逻辑设备名转换成物理设备名。为此需要设置一张逻辑设备表(LUT),该表的每个表目包含逻辑设备、物理设备名和设备驱动程序的入口地址。当以后进程再利用逻辑设备名请求I/O操作时,系统通过查找LUT表,即可找到物理设备和相应设备的驱动程序。逻辑设备表如图:

逻辑设备名物理设备名驱动程序入口地址/dev/tty/dev/print...53...10342056...

3.什么是缓冲?为什么要引入缓冲?操作系统如何实现缓冲技术?

答:缓冲是在通信问题中,为了通信双方的速度匹配引入的一个中间层次,这个层次的速度比通信双方中较慢的一方快,而与较快的一方更匹配。

21

引入缓冲的目的:(1)缓解CPU与I/O设备之间速度不匹配的矛盾。(2)减少中断CPU的次数。(3)提高CPU与I/O设备之间的并行性。

为实现缓冲技术,操作系统在内存中开辟I/O设备缓冲区、文件缓冲区。脱机I/O技术和SPOOLing技术也属于缓冲技术。 4.设备分配中为什么可能出现死锁?

答:在对于不同属性的设备时采用不同的分配方式。对于独占设备,采用独享分配策略,即在将一个设备分配给某个进程以后,便一直由它独占,直到进程完成或释放改设备,然后系统才将该设备分配给其他进程使用。若此时将设备分配给一个进程,它一直占有。其他进程请求设备只能阻塞,设备不释放进程一直阻塞。此时设备利用不充分,还引起死锁。

对于共享设备,在多个进程使用时要合理调度,若多个进程此时都争夺申请该设备就会出现死锁现象。

5.以打印机为例说明SPOOLing技术的工作原理。 答

打印请求表内存输入进程SP1输出进程SP0磁盘输入设备输入缓冲区输出缓冲区输入井输出井打印机

SPOOLing系统组成 当打印机要打印东西时,插入用户的磁盘。此时由输出设备在输出井中为之申请一空闲盘块区,并将要打印的数据送入其中。输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表犹如打印队列。当打印机空闲时,输出进程将从请求打印队列上依次取出一张用户请求打印表,根据表中要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。打印完毕后,输出进程再查看打印队列是否还有等待打印的请求,依次根据要求打印。

6.假设一个磁盘有200个柱面,编号0~199,当前存取臂的位置是在143号柱面上,并刚刚完成了125号柱面的服务请求,如果存在以下请求序列:86、147、91、177、94、150、102、175、130,试问:为完成上述请求,采用下列算法时存取臂的移动顺序是什么?移动总量是多少?

(1)先来先服务(FCFS)。

(2)最短寻道时间优先(SSTF)。 (3)扫描算法(SCAN)。

(4)循环扫描算法(C-SCAN)。

22

以下表格清晰地展示了存取臂的移动顺序:

FCFS 下一个访移动的磁问的磁道 道数 86 147 91 177 94 150 102 175 130 57 61 56 86 83 56 48 73 45 SSTF 下一个访移动的磁问的磁道 道数 147 150 130 102 94 91 86 175 177 4 3 20 28 8 3 5 89 2 SCAN 下一个访移动的磁问的磁道 道数 147 150 175 177 130 102 94 91 86 4 3 25 2 47 28 8 3 5 C-SCAN 下一个访移动的磁问的磁道 道数 147 150 175 177 86 91 94 102 130 4 3 25 2 91 5 3 8 28 移动总量:565 移动总量:162 移动总量:125 移动总量:169 7.磁盘的访问时间分为三部分:寻道访问、旋转数据和数据传输时间。而优先磁盘磁道上的

信息分布能减少输入输出服务的总时间。例如,有一个文件有10个记录A,B,C,…,J存放在磁盘的某一磁道上,假定该磁盘共有10个扇区,每个扇区存放一个记录,安排如表7-4所示。现在要从这个磁道上顺序地将A~J这个记录读出,如果磁盘的旋转速度为20ms转一周,处理程序每读出一个记录要花4ms进行处理。试问: (1)处理完10个记录的总时间为多少?

答:由题知磁盘的旋转速度是20ms则共有10个扇区,每个扇区有一个记录。则读取一个记录的时间为:20ms/10=2ms。此时从A开始读,先读取A记录需要2ms,再处理4ms,共需2ms+4ms=6ms。在处理A时经过4ms 磁盘转动,此时转到D扇区。要想顺序处理A~J记录,就需要在转回B 扇区,就要经过8个扇区共经过:2ms*8=16ms。则处理B所需时间为16ms+2ms+4ms=22ms,C~J均为这样,故所需总时间为22ms*9+6ms=204ms。 (2)为了优化分布缩短处理时间,如何安排这些记录?并计算处理的总时间。 答:为了优化分布缩短处理时间,应该按如下所示安排:

EHKDAIFBGJ

这样安排的话就使A 依次到J读取数据,则处理的总时间:10*(2ms+4ms)=60ms。

表7-4 文件记录的存放 扇区号 1 A 2 B 3 C 4 D 5 E 6 F 7 G 8 H 9 I 10 J 记录号 23

8.假设一个磁盘有100个柱面,每个柱面有10个磁道,每个磁道有15个扇区。当进程的要访问磁盘的12345扇区时,计算该扇区在磁盘的第几柱面、第几磁道、第几扇区?

答:由题知每个柱面有10个磁道,每个磁道有15个扇区,则100个柱面共有10*15=150个扇区,12345/150=82??45则此时12345扇区处于82柱面。45/15=3,则该磁盘处于第82柱面、第2磁道、第15扇区。

9.一个文件记录大小为32B,磁盘输入输出以磁盘块为单位,一个盘块的大小为512B。当用户进程顺序读文件的各个记录时,计算实际启动磁盘I/O占用整个访问请求时间的比例。 答:由题知盘块大小为512B 一个文件记录为32B,此时存放了512B/32B=16个文件,进程顺序读文件的各记录只需要读一次即可,则启动磁盘I/O占用整个访问时间的比例为1/16。 10.如果磁盘扇区的大小固定为512B,每个磁道有80个扇区,一共有4个可用盘面。假设磁盘旋转速度是360rpm。处理机使用中断驱动方式从磁盘读取数据,每字节产生一次中断。如果处理中断需要2.5ms,试问:

(1)处理机花费在处理I/O上的时间占整个磁盘访问时间的百分比是多少(忽略寻道时间)?

答:磁盘的访问时间分为三部分Ts、Tr、Tt 由题知忽略Ts,此时只需要计算Tr、Tt

用360rpm/60s 则每1/6s转一周,则平均旋转时间Tr为1/12s。 Tt为512B/512B*80*6r/s=1/480 ;T=1/12s+1/480s 处理I/O的时间为(512B*2.5ms/1000)s

百分比为(512B*2.5ms/1000)/[1/12s+1/480s+(512B*2.5ms/1000)]=99.9%

(2)采用DMA方式,每个扇区产生一次中断,处理机花费在处理I/O上的时间占整个磁盘访问时间的百分比又是多少?

答:采用DMA方式,CPU只在传输数据的开始和结束干预,数据传送在DMA的控制下完成。

处理机花费在I/O上的时间为2.5ms

此时百分比为(2.5ms/1000)/[1/12s+1/480+(2.5ms/1000)]=96.7%

24