习题一
1. 什么是操作系统?它的主要功能是什么?
答:操作系统是用来管理计算机系统的软、硬件资源,合理地组织计算机的工作流程,以方便用户使用的程序集合;
其主要功能有进程管理、存储器管理、设备管理和文件管理功能。 2. 什么是多道程序设计技术?多道程序设计技术的主要特点是什么?
答:多道程序设计技术是把多个程序同时放入内存,使它们共享系统中的资源; 特点:(1)多道,即计算机内存中同时存放多道相互独立的程序;
(2)宏观上并行,是指同时进入系统的多道程序都处于运行过程中; (3)微观上串行,是指在单处理机环境下,内存中的多道程序轮流占有CPU,交替执行。
3. 批处理系统是怎样的一种操作系统?它的特点是什么?
答:批处理操作系统是一种基本的操作系统类型。在该系统中,用户的作业(包括程序、数据及程序的处理步骤)被成批的输入到计算机中,然后在操作系统的控制下,用户的作业自动地执行;
特点是:资源利用率高、系统吞吐量大、平均周转时间长、无交互能力。 4. 什么是分时系统?什么是实时系统?试从交互性、及时性、独立性、多路性和可靠性几个方面比较分时系统和实时系统。
答:分时系统:一个计算机和许多终端设备连接,每个用户可以通过终端向计算机发出指令,请求完成某项工作,在这样的系统中,用户感觉不到其他用户的存在,好像独占计算机一样。
实时系统:对外部输入的信息,实时系统能够在规定的时间内处理完毕并作出反应。 比较:(1)交互性:实时系统具有交互性,但人与系统的交互,仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样向终端用户提供数据处理、资源共享等服务。实时系统的交互性要求系统具有连续人机对话的能力,也就是说,在交互的过程中要对用户得输入有一定的记忆和进一步的推断的能力。
(2)及时性:实时系统对及时性的要求与分时系统类似,都以人们能够接受的等待时间来确定。而及时系统则对及时性要求更高。
(3)独立性:实时系统与分时系统一样具有独立性。每个终端用户提出请求时,是彼此独立的工作、互不干扰。
(4)多路性:实时系统与分时一样具有多路性。操作系统按分时原则为多个终端用户提供服务,而对于实时系统,其多路性主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。
(5)可靠性:分时系统虽然也要求可靠性,但相比之下,实时系统则要求系统高度可靠。
5. 实时系统分为哪两种类型?
答:实时控制系统、实时信息处理系统。 6.操作系统的主要特征是什么?
答:并发性、共享性、虚拟性、不确定性。
7.操作系统与用户的接口有几种?他们各自用在什么场合?
答:有两种:命令接口、程序接口;
命令接口:分为联机命令接口、脱机命令接口和图形用户界面接口,它是为方便用户控制自己的作业。 程序接口:又称系统调用,是为用户在程序一级访问操作系统功能而设置的,是用户程序取得操作系统服务的唯一途径,它由一组系统调用构成,每个系统调用完成一个特定的功能。
8.“操作系统是控制硬件的软件”这一说法确切吗?为什么?
答:不正确,操作系统不仅仅在控制硬件,同时它还控制着计算机的软件。所以说操作系统是控制硬件的软件是不正确的。
9.设内存中有三道程序,A,B,C,他们按A→B→C的先后次序执行,它们进行“计算”和“I/O操作”的时间如表1-2所示,假设三道程序使用相同的I/O设备。
表1-2 三道程序的操作时间
操作程序ABC计算I/O操作计算 203010305020102010
(1) 试画出单道运行时三道程序的时间关系图,并计算完成三道程序要花多
少时间。
计算ABBCCAI/O操作BC20506090170200140160190总时间=20+30+10+30+50+20+10+20+10=200
(2) 试画出多道运行时三道程序的时间关系图,并计算完成三道程序要花多
长时间。
程序A程序B程序CABABCAI/O操作BI/O操作CI/O操作201305060708090100120140C总时间=130
10.将下列左右两列词连接起来形成意义最恰当的5对。
DOSOS/2UNIXLINUXWindows NT网络操作系统自由软件多任务单任务为开发操作系统而设计c语言
11.选择一个现代操作系统,查找和阅读相关的技术资料,写一篇该操作系统如何运行内存管理、存储管理、设备管理和文件管理的文章。
习题二
1. 操作系统中为什么要引入进程的概念?为了实现并发进程之间的合作和协调,以及保证系统的安全,操作系统在进程管理方面要做哪些工作? 答:(1)为了从变化的角度动态地分析研究可以并发执行的程序,真实地反应系统的独立性、并发性、动态性和相互制约,操作系统中就不得不引入“进程”的概念; (2)为了防止操作系统及其关键的数据结构,受到用户程序有意或无意的破坏,通常将处理机的执行状态分成核心态和用户态;对系统中的全部进程实行有效地管理,其主要表现是对一个进程进行创建、撤销以及在某些进程状态之间的转换控制,
2. 试描述当前正在运行的进程状态改变时,操作系统进行进程切换的步骤。 答:(1)就绪状态→运行状态。处于就绪状态的进程,具备了运行的条件,但由于未能获得处理机,故没有运行。
(2)运行状态→就绪状态。正在运行的进程,由于规定的时间片用完而被暂停执行,该进程就会从运行状态转变为就绪状态。
(3)运行状态→阻塞状态。处于运行状态的进程,除了因为时间片用完而暂停执行外还有可能由于系统中的其他因素的影响而不能继续执行下去。
3. 现代操作系统一般都提供多任务的环境,试回答以下问题。
(1) 为支持多进程的并发执行,系统必须建立哪些关于进程的数据结构?
答:为支持进程的并发执行,系统必须建立“进程控制块(PCB)”,PCB的组织方式常用的是链接方式。
(2) 为支持进程的状态变迁,系统至少应该供哪些进程控制原语?
答:进程的阻塞与唤醒原语和进程的挂起与激活原语。
(3) 当进程的状态变迁时,相应的数据结构发生变化吗? 答:创建原语:建立进程的PCB,并将进程投入就绪队列。; 撤销原语:删除进程的PCB,并将进程在其队列中摘除;
阻塞原语:将进程PCB中进程的状态从运行状态改为阻塞状态,并将进
程投入阻塞队列;
唤醒原语:将进程PCB中进程的状态从阻塞状态改为就绪状态,并将进
程从则色队列摘下,投入到就绪队列中。
4. 什么是进程控制块?从进程管理、中断处理、进程通信、文件管理、设备管
理 及存储管理的角度设计进程控制块应该包含的内容。
答:(1)进程控制块是用来描述进程本身的特性、进程的状态、进程的调度信息及对资源的占有情况等的一个数据结构;
(2)为了进程管理,进程控制块包括以下几方面。
a) 进程的描述信息,包括进程标识符、进程名等。 b) 进程的当前状况。 c) 当前队列链接指针。 d) 进程的家族关系。
为了中断处理,进程控制块的内容应该包括处理机状态信息和各种寄存
器的内容。
为了内存管理的需要,进程控制块的内容应该包括进程使用的信号量、
消息队列指针等。
为了设备管理,进程控制块的内容应该包括进程占有资源的情况。
5. 假设系统就绪队列中有10个进程,这10个进程轮换执行,每隔300ms轮换一次,CPU在进程切换时所花费的时间是10ms,试问系统化在进程切换上的开销占系统整个时间的比例是多少?
答:因为每隔300ms换一次进程,且每个进程切换时所花费的时间是10ms,则系统化在进程切换上的开销占系统整个时间的比例是10/(300+10)=3.2% 6. 试述线程的特点及其与进程之间的关系。 答:(1)特点:线程之间的通信要比进程之间的通信方便的多;同一进程内的线程切换也因为线程的轻装而方便的多。同时线程也是被独立调度的分配的;
(2)线程与进程的关系:线程和进程是两个密切相关的概念,一个进程至少拥有一个线程,进程根据需要可以创建若干个线程。线程自己基本上不拥有资源,只拥有少量必不可少的资源(线程控制块和堆栈) 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调度的策略和效果。
答:当进程调度时,首先从高优先级就绪队列选择一个进程,赋予它的时间片为100ms。如果高优先级就绪队列为空,则从低优先级就绪队列选择进程,并且赋予该进程的时间片为500ms。
这种策略一方面照顾了短进程,一个进程如果在100ms运行完毕它将退出系统,更主要的是照顾了I/O量大的进程,进程因I/O进入阻塞队列,当I/O完成后它就进入了高优先级就绪队列,在高优先级就绪队列等待的进程总是优于低优先级就绪队列的进程。而对于计算量较大的进程,它的计算如果在100ms的时间内不能完成,它将进入低优先级就绪队列,在这个队列的进程被选中的机会要少,只有当高优先级就绪队列为空,才从低优先级就绪队列选择进程,但对于计算量大的进程,系统给予的适当照顾时间片增大为500ms。 8. 回答以下问题。
(1) 若系统中没有运行进程,是否一定没有就绪进程?为什么?
答:是,因为当CPU空闲时,系统就会在就绪队列里调度进程,只有当就绪队列为空时,系统中才没有运行程序。
(2) 若系统中既没有运行进程,也没有就绪进程,系统中是否就没有阻塞
进程?解释。
答:不一定,当运行的程序都因为请求I/O或等待事件时而进入阻塞,
系统中就没有就绪进程。
(3) 如果系统采用优先级调度策略,运行的进程是否一定是系统中优先级
最高的进程?为什么?
答:不一定,若优先级高的进程进入阻塞状态时,而且优先级高的就绪队列里没有等待的进程,这时就会调度优先级低的就绪队列的进程。
9. 假如有以下程序段,回答下面的问题。 S1: a=3-x; S2: b=2*a; S3: c=5+a;
(1) 并发程序执行的Bernstein 条件是什么?
答:若P1与P2R并发执行,当且仅当 R(P1)∩W(P2)∪R(P2)∩W(P1)∪W(P1)∩W(P2)={}时才满足。
(2) 试画图表示它们执行时的先后次序。
S2S1S3
(3) 利用Bernstein 条件证明,S1、S2和S3哪两个可以并发执行,哪两个不能。 答:R(s1)={x},W(s1)={a};R(s2)={a},W(s2)={b};R(s3)={a},W(s3)={c};
(1).R(s1)∩W(s2)∪R(s2)∩W(s1)∪W(s1)∩W(s2)={a},则s1与s2不能并发执行; (2). R(s1)∩W(s3)∪R(s3)∩W(s1)∪W(s1)∩W(s3)={a},则s1与s3不能并发执行; (3). R(s2)∩W(s3)∪R(s3)∩W(s2)∪W(s2)∩W(s3)={},则s2与s3可以并发执行。
习题三
1. 一下进程之间存在相互制约关系吗?若存在,是什么制约关系?为什么? (1) 几个同学去图书馆借同一本书。
答:互斥关系;因为他们要借同一本书,不可能同时借到,所以互斥。
(2) 篮球比赛中两队同学争抢篮板球。
答:互斥关系;因为争抢同一个篮板,存在互斥关系。
(3) 果汁流水线生产中捣碎、消毒、灌装、装箱等各道工序。
答:同步关系;他们必须相互协作才能使进程圆满完成。
(4) 商品的入库出库。
答:同步关系;因为商品出库可以为入库提供空间。
(5) 工人做工与农民种粮。
答:没有制约关系。
2. 在操作系统中引入管程的目的是什么?条件变量的作用是什么?
答:用信号量可以实现进程的同步于互斥,但要设置许多信号量,使用大量的P、V操作,而且还要仔细安排P操作的排列次序,否则将会出现错误的结果或是死锁现象。为了解决这些问题引进了管程; 条件变量的作用是使进程不仅能被挂起,而且当条件满足且管程再次可用时,可以恢复该进程并允许它在挂起点重新进入管程。 3. 说明P、V操作为什么要设计成原语。
答: 用信号量S表示共享资源,其初值为1表示有一个资源。设有两个进程申请该资源,若其中一个进程先执行P操作。P操作中的减1操作有3跳及其指令组成:去S送寄存器R;R-1送S。若P操作不用原语实现,在执行了前述三条指令中的2条,即还未执行R送S时(此时S值仍为1),进程被剥夺CPU,另一个进程执行也要执行P操作,执行后S的值为0,导致信号量的值错误。正确的结果是两个进程执行完P操作后,信号量S的值为-1,进程阻塞。
4. 设有一个售票大厅,可容纳200人购票。如果厅内不足200人则允许进入,超过则在厅外等候;售票员某时只能给一个购票者服务,购票者买完票后就离开。试问:
(1) 购票者之间是同步关系还是互斥关系?
答:互斥关系。
(2) 用P、V操作描述购票者的工作过程。 semaphore empty=200;
semaphore mutex=1; semaphore waiting=0; void buy()
{ p(waiting); p(mutex); 买票; v(mutex); v(empty); }
void waiting() {
p(empty); 等待; waiting++; }
5. 进程之间的关系如图3-16所示,试用P、V操作描述它们之间的同步。
AS2CS1S4FBDS6S3GES5
semaphore A,B,C,D,E,F,G=0; {S1,V(A),V(B)};
{P(A),S2,V(C)};
{P(B),S3,V(D),V(E)}; {P(D),S4,V(F)}; {P(E),S5,V(G)};
{P(C),P(F),P(G),S6};
6. 有4个进程P1、P2、P3、P4共享一个缓冲区,进程P1向缓冲区存入消息,进程P2、P3、P4从缓冲区中取消息,要求发送者必须等三个进程都取过本消息后才能发送下调消息。缓冲区内每次只能容纳一个消息,用P、V操作描述四个进程存取消息的情况。
答:semaphore p1=0;semaphore p2,p3,p4=1;
semaphore cout=0;semaphore mutex=1; void main()
{P(p2);P(p3);P(4); V(cout);} write p1() {P(p1);P(metux);P(cout); 存入消息;
V(p1);V(metux);} Read p2()
{ P(mutex);P(p1); 读消息;
V(p1);V(p2);V(metux);} Read p3()
{ P(mutex);P(p1); 读消息;
V(p1);V(p3);V(metux);} Read p4()
{ P(mutex);P(p1); 读消息;
V(p1);V(p4); V(metux);}
7. 分析生产者——消费者问题中多个P操作颠倒引起的后果。
答:semaphore mutex=1; semaphore empty=n; semaphore full=0; int i,j; ITEM buffer[n]; ITEM data_p,data_c;
void producer()/*生产者进程*/ void consumer() /*消费者进程*/
{while(true) {while(true) { { P(mutex) ; P(mutex); P(full);
P(empty); data_c=buffer[j];
buffer[i]=data_p; j=(j+1)%n; i=(i+1)%n; V(mutex); V(mutex); V(empty); V(full);} } } }
若把生产者进程的P操作颠倒,消费者进程的P操作颠倒(如图),则生产者进程执行到V(mutex)时,消费者就可以执行P(mutex) 但由于full=0,消费者进程不可执行P(full);当生产者进程执行完V(full)后,full=1,但由于mutex=0,消费者进程无法执行,造成死锁。 8. 读者——写者问题中写者优先的实现。 答: 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); }}
9. 写一个用信号量解决哲学家进餐问题不产生锁死的算法。
semaphore chopstick[5]={1,1,1,1,1}; semaphore mutex=1;
void philosopher (){while(true)
{P(mutex);
P(chopstick[i]);
P(chopstick[(i+1)%5]); V(mutex); ?; eat; ?;
V(chopstick[i]);
V(chopstick[(i+1)%5]); ?; think; ?;} }
10. 一个文件可有若干个不同的进程所共享,每个进程具有唯一的编号。假定文件可由满足下列限制的若干个不同的进程同时访问,并发访问该文件的哪些进程的编号的总和不得大于n,设计一个协调对该文件访问的管程。 答:
11. 用管程解决读者——写者问题,并采用公平原则。 答:
习题四
1. 某进程被唤醒后立刻投入运行,能说明该系统采用的是可剥夺调度算法吗?
答:不能说明,因为如果现在就绪队列中没有进程,那么唤醒的进程会立刻投入运行。 2. 在哲学家进餐问题中,如果将先拿起左边筷子的哲学家称为左撇子,先拿起右边筷子的
哲学家称为右撇子。请说明在同时存在左、右撇子的情况下,任何的就坐安排都不能产生锁死。
答:任何的就坐安排都不会构成环路,这就符合避免死锁的条件,所以不会产生死锁。 3. 系统中有5个资源被4个进程所共享,如果每个进程最多需要2个这种资源,试问系统
是否会产生锁死?
答:不会产生死锁;因为因为资源数可以满足进程的需要,当其中的一个进程争取到剩下的一个资源可以执行,当执行完成以后会释放资源,供其他进程使用,所以不会产生死锁。
4. 计算机系统有8台磁带机,由N个进程竞争使用,每个进程最多需要3台。问:N为多
少时,系统没有死锁的危险?
答:当n为1、2、3时,没有死锁的危险;因为当n小于3时,每个进程分配2台磁带机,还有磁带机剩余,那么当其中的一个进程得到剩余的磁带机则可运行,运行结束后会释放磁带机,供其他进程使用,系统不会有死锁的危险;当n为4时,每台分配2台时没有剩余,则会产生死锁,当大于5时同样会死锁。
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调度,请给出各个进程的完成时间、周转时间、带权周转时间,及所有的进程的平均周转时间和平均带权周转时间。 答:
A到达时间FCFS服务时间完成时间周转时间带权周转03331B2697C44139D651812E82201268.62.56平均周转时间平均带权周转时间1.172.252.4
A到达时间服务时间时间片轮转完成时间周转时间0344B261816C441713D652014E821573.510.82.71平均周转时间平均带权周转时间带权周转1.332.673.252.8A到达时间SPN服务时间完成时间周转时间带权周转03331B2697C441511D652014E821131.5平均周转时间平均带权周转时间7.67.61.172.752.8
平均周转时间平均带权周转时间A到达时间SRT服务时间完成时间周转时间带权周转03331B2620183C44841D651591.8E8210217.21.56
A到达时间HRRN服务时间完成时间周转时间带权周转03331B2697C44139D652014E821573.5平均周转时间平均带权周转时间82.141.172.252.8
平均周转时间平均带权周转时间A到达时间MFQ服务时间完成时间周转时间带权周转03331B2617152.5C4418143.5D6520142.8E82146310.42.56
6. 设系统中有5个进程P1、P2、P3、P4、P5,有3种类型的资源A、B、C,其中A资源
的数量是17,B资源的数量是5,C资源的数量是20,T0时刻系统状态如表4-9所示。 表4-9 T0时刻系统状态 已分配资源数量 最大资源需求量 仍然需求资源数 进程 A B C A B C A B C P1 P2 P3 P4 P5 2 4 4 2 3 1 0 0 0 1 2 2 5 4 4 5 5 4 4 4 5 3 0 2 2 9 6 11 5 4 3 1 0 2 1 4 3 0 2 1 7 4 6 1 0 (1) 计算每个进程还可能需要的资源,并填入表的“仍然需要资源数”的栏目。 (2) T0时刻系统是否处于安全状态?为什么?
答:处于安全状态,因为序列
答:不实施资源分配,因为将所有资源都分配给p2时,p2的C是5,不能够运行,进入死锁。
(4) 如果T0时刻,若进程P4又有新的资源请求(2,0,1),是否实施资源分配?为什
么?
答:实施;因为p4请求资源后,存在安全状态。
(5) 在(4)的基础上,若进程P1又有新的资源请求(0,2,0),是否实施资源分配?为
什么?
答:不实施;
习题五
1. 存储管理的基本任务是为多道程序的并发执行提供良好的存储环境,这包括哪些方面? 答:存储管理的基本任务是为多道程序的并发执行提供良好的存储器环境,它包括以下几个方面。
(1)能让没到程序“各得其所”,并在不受干扰的环境中运行时,还可以使用户从存储空间的分配、保护等事物中解脱出来。
(2)向用户提供更大的存储空间,使更多的程序同时投入运行或是更大的程序能在小的内存中运行。
(3)为用户对信息的访问、保护、共享以及程序的动态链接、动态增长提供方便。
(4)能使存储器有较高的利用率。
2. 页式存储管理系统是否产生碎片?如何应对此现象?
答:页式存储管理系统产生的碎片,称为内碎片,它是指一个进程的最后一页没有沾满一个存储块而被浪费的存储空间。减少内碎片的办法是减少页的大小。
3. 在页式存储管理系统中页表的功能是什么?当系统的地址空间很大时会给页表的设计带来哪些新的问题? 答:页式存储管理系统中,允许将进程的每一页离散地存储在内出的任何一个物理页面上,为保证进程的正常运行,系统建立了页表,记录了进程每一页被分配在内存的物理号。页表的功能是实现从页号到物理块的地址映射; 当系统地址很大时,页表也会变得非常大,它将占有相当大的内存空间。 4. 什么是动态链接?用哪种存储管理方案可以实现动态链接?
答:动态链接是指进程在运行时,只将进程对应的主程序段装入内存,并与主程序段链接上。通常一个大的程序是由一个主程序和若干个子程序以及一些数据段组成。而段式存储管理方案中的段就是按用户的逻辑段自然形成的,因此可实现动态链接。
5. 某进程的大小为25F3H字节,被分配到内存的3A6BH字节开始的地址。但进程运行时,若使用上、下界寄存器,寄存器的值是多少?如何进行存储保护?若使用地址、限长寄存器,寄存器的值是多少?如何进行存储保护? 答:(1)若使用上下界寄存器,上界寄存器的值是3A6BH,下界寄存器的值是3A6BH+25F3H=605EH,当访问内存的地址大于605EH、小于3A6BH时产生越界中断。
(2) 若使用地址、限长寄存器,地址寄存器的值是3A6BH,限长寄存器的值是25F3H,当访问内存的地址小于3A6BH,超过3A6BH+25F3H=605EH时产生越界中断。
6. 在系统中采用可变分区存储管理,操作系统占用低地址部分的126KB,用户区的大小是386KB,采用空闲分区表管理空闲分区。若分配时从高地址开始,对于下述的作业申请序列:作业1申请80KB;作业2申请56KB;作业3申请120KB;作业1完成;作业3完成;作业4申请156KB;作业5申请80KB。使用首次适应法处理上述作业,并回答以下问题。
(1) 画出作业1、2、3进入内存后,内存的分布情况。
5111261250答:
321空130KB120KB56KB80KB
(2) 画出作业1、3完成后,内存的分布情况。
5111261250答:
2空空250KB56KB80KB
(3) 画出作业4、5进入内存后,内存的分布情况。
答
511空542126空1250156KB56KB80KB14KB80KB
7. 某系统采用页式存储管理策略,某进程的逻辑地址空间为32页,页的大小为2KB,物理地址空间的大小是4MB。 (1) 写出逻辑地址的格式。
151110页号页内位移0
(2) 该进程的页表有多少项?每项至少占多少位?
答:因为进程的逻辑地址空间为32页,因此该进程的页表项有32项。页表中应存储每页的块号。因为物理地址空间大小是4MB,4MB的物理地址空间内分成4MB/2KB=2K个块,因此块号部分需要11位(二进制),所以页表中每项占11位。
(3) 如果物理地址空间减少一半,页表的结构有何变化? 答:当减少一半时,有2MB/2KB=1K个块,因此块号部分需要10位(二进制),所以页表中每项占10位。 8. 某页式存储管理系统,内存的大小为64KB,被分为16块,块号为0、1、2、??、15。设某进程有4页,其页号为0、1、2、3,被分别装入内存的2、4、7、5,问:
(1) 该进程的大小是多少字节?
答:总共64KB,16页,则每页有4KB。该进程有四页,则进程的大小为16KB。
(2) 写出该进程每一页在内存的起始地址。
页号0123块号起始地址24758KB16KB28KB35KB答:
(3) 逻辑地址4146对应的物理地址是多少?
答:4146除以4096得1余50,这页号为1,页内位移为50;1对应于4,这物理地址为4*4096+50=16434b。
9. 某段式存储管理系统的段表如图所示。
段号段长段始址015KB40KB18KB80KB210KB100KB
请将逻辑地址[0,137]、[1,9000]、[2,3600]、[3,230]转换成物理地址。 答:[0,137]:40*1024+137=41097B [1,9000]:80*1024+9000=90920B [2,3600]:100*1024+3600=106000B [3,230]不合法
习题七
1. 数据传输控制方式有哪几种?试比较它们的优缺点。
答:数据转送控制方式有程序直接控制方式、中断控制方式、DMA控制方式和通道方式四种。
程序直接控制方式:优点:实现简单,不需要硬件的支持; 缺点:(1).CPU与外设只能串行工作; (2).CPU在一段时间内只能与一台外设交换数据信息;
(3).由于程序直接控制方式是依靠测试设备的状态来控制数据传递的,因此无法发现和处理由于设备和其他硬件所产生的错误。 中断控制方式:优点:提高了CPU的利用率;
缺点:(1).在进程传送数据的过程中,发生中断的次数可能很多,这将消耗CPU大量处理时间;
(2).计算机中通常配置各种各样的外设,如果这些外设都通过中断的方式进行数据传递,由于中断次数过多将使CPU无法及时响应中断,造成数据丢失。 DMA控制方式:优点:(1).数据传输的基本单位为数据块;
(2).紧在开始和结束才需要CPU干预,整块数据的传送是在控制器的控制之下完
成的;
(3).所传送的数据是从设备直接到内存或者从内存直接到设备。
通道方式:优点:把对一个数据块的读(写)干预减少到对一组数据块的读(写)干预;
2. 何为设备的独立性?如何实现设备的独立性?
答:设备独立性是指用户程序独立于具体使用的物理设备;此时,用户使用逻辑设备名申请使用某列物理设备。当系统中有多台该烈性的设备是,系统可将其中的任意一台分配给请求进程,而不局限于某一台制定的设备。这样,可显著的改善资源的利用率即可使用性。设备独立使用用户独立于设备的烈性。如进行输出时,亦可以使用现实终端,也可以使用打印机。有了这种独立性,就可以很方便的进行输入/输出重定向。
3. 什么是缓冲?为什么要引入缓冲?操作系统如何实现缓冲技术? 答:缓冲是在两个不同速度设备之间传输信息时,用于平滑传输过程的一种手段。 (1)换届CPU与I/O设备之间的速度不匹配的矛盾。 (2)减少中断CPU的次数。
(3)提高CPU与I/O设备之间的并行性。 4. 设备分配中为什么可能出现死锁?
答:安全分配方式:在某些操作系统中,一个进程只能提供一个I/O请求。也就是说,执行进程向系统提出I/O请求后边立即进入等待状态,直到I/O请求完成后才被唤醒。这样系统对设备的分配比较安全,不会出现死锁。但这种方式对进程来说,因CPU与I/O设备是串行工作的,这使得该进程的推进速度缓慢; 不安全分配方式:当进程发出I/O请求后不阻塞,而是继续运行,当需要时有可能接着发出第二个、第三个I/O请求,仅当进程所请求的I/O设备已被另一个进程占用时,进程才进入等待状态。这种一个进程同时可以使用多个I/O设备的方式提高了系统的资源利用率,但也带来了一种危险,即如果两个进程都提出请求使用对方占有的I/O设备时,就会出现死锁。
5. 以打印机为例说明SPOOLing技术的工作原理。
答:当用户进程请求打印输出时,操作系统接受用户的打印请求,但并不真正把打印机分配给该用户进程,而是为进程再次在输出井中分配一空闲块区,并将要打印的数据送入其中,同时还为用户进程申请一张用户请求打印表,将用户的打印要求填入其中,再将该表挂在请求打印队列上。如果还有进程要求打印输出,系统仍可以接受请求,也可以完成上述操作。
6. 假设一个磁盘有200个柱面,编号为0~199,当前存取臂的位置是在143号柱面上,并刚刚完成了125号柱面的服务请求,如果存在下列请求序列:86、147、91、177、94、150、102、175、130,试问:为完成上述请求,采用下列算法时存取的移动顺序是什么?移动总量是多少? (1) 先来先服务(FCFS)。
答:移动顺序:143、86、147、91、177、94、150、102、175、130;
移动总量:(143-86)+(147-86)+(147-91)+(177-91)+(177-94)+(150-94)+(150-102)+(175-102)+(175-130)=565 (2) 最短寻道时间优先(SSTF)。
答:移动顺序:143、147、150、130、102、94、91、86、175、177 移动总量:(147-143)+(150-147)+(150-130)+(130-102)+(102-94)+(94-91)+(91-86)+(175-86)+(177-175)=162
(3) 扫描算法(SCAN)。
答:移动顺序:143、147、150、175、177、130、102、94、91、86 移动总量:(147-143)+(150-147)+(175-150)+(177-175)+(177-130)+(130-102)+(102-94)+(94-91)+(91-86)=125 (4) 循环扫描算法(C-SCAN)。
答:移动顺序是:143、147、150、175、177、86、91、94、102、130 移动总量:(147-143)+(150-147)+(175-150)+(177-175)+(177-86)+(91-86)+(94-91)+(102-94)+(130-102)=169.
7. 磁盘的访问时间分成三部分:寻道时间、旋转时间和数据传输时间。而优化磁盘磁道上的信息分布能减少输入输出服务的总时间。例如,有一个文件有10个记录A,B,C,??,J存放在磁盘的某一磁道上,假定该磁盘共有10个扇区,每个扇区存放一个记录,安排如表7-4所示。现在要从这个磁道上顺序地将A~J这10个记录读出,如果磁盘的旋转速度为20ms转一周,处理程序每读出一个记录要花4ms进行处理。试问: (1) 处理完10个记录的总时间为多少?
答:由题目所列条件可知,磁盘的旋转速度为20ms转一周,每个此道有10个记录,因此读出1个记录的时间为20ms/10=2ms。
对于表中记录的初始分布,读出并处理记录A需要20ms+4ms=60ms。6ms后读/写头急转到了记录D出,为了读出记录B必须再转8个山区,急需要8*2ms=16ms,记录B的读取时间为2ms,处理时间为4ms,股处理记录B共花时间为:16ms+2ms+4ms=22ms。后续8个记录的读取时间与记录B相同。所以处理10记录的总时间是:9*22ms+6ms=204ms。
(2) 为了优化分布缩短处理时间,如何安排这些记录?并计算处理的总时
间。
表7-4 文件记录的存放扇区号记录号1A2B3C4D5E6F7G8H9I10J答:为了缩短处理时间应按图琐事安排这些记录。 经优化处理后,读出并处理记录A后,读/写头刚好转到记录B的开始出,因此立即可读取并处理记录B,后续记录的读取与处理情况相同。股处理10个记录的总时间为10*(2ms+4ms)=60ms。 8. 假设一个磁盘有100个柱面,每个柱面有10个磁道,每个磁道有15个扇区。当进程的要访问磁盘有12345扇区时,计算该扇区在磁盘的第几柱面、第几磁道、第几扇区?
答:由题目知,磁盘每个柱面有10个磁头,每个此道有15个15个山区。则每个柱面的山区数位10*15=150.13524/150=90余24,故13524所在煮面为90.24/15=1余9,故13524再次头号为1,山区为9。综上所述,13524山区所在的磁盘地址为:第90号柱面,第1号磁头,第9号扇区。
9. 一个文件记录大小为32B,磁道输入输出以磁盘块为单位,一个盘块的大小为512B。当用户进程顺序读文件的各个记录时,计算实际启动磁盘I/O占用整个访问请求时间的比例。
答:盘块的大小为512B,一个文件记录大小为32B,故一个盘块包含的记录数为:512/32=16。显然在访问16个记录中,只需要一次启动磁盘,故实际启动磁盘I/O占用整个访问请求的比例为1/16=6.25%
10.如果磁盘扇区的大小固定为512B,每个磁道有80个扇区,一共有4个可用的盘面。假设磁盘旋转速度是360rpm。处理机使用中断驱动方式从磁盘读取数据,每字节产生一次终端。如果处理中断需要2.5ms,试问:
(1)处理机花费在处理I/O上的时间占整个磁盘访问时间的百分比是多少(忽略寻道时间)?
答:(512*2.5)/((1/12+1/480)+(512*2.5))*100%=99.9%
(2)采用DMA方式,每个扇区产生一次中断,处理机话费在处理I/O上的时间占整个磁盘访问时间的半分比是多少?
答:2.5/((1/12+1/480)+2.5)*100%=96.7%
习题八
1. 文件系统要解决的问题有哪些?
答:文件系统的目标是提高存储空间的利用率,他要解决的主要问题有:完成文件存储空间的管理,实现文件名到物理地址的转换,实现文件的目录操作,提高文件共享能力和保护措施,提供友好的用户接口。文件系统向用户提供了有关文件的目录操作的各种功能接口和系统调用,如命令接口,成寻接口和图形用户接口。
2. 许多操作系统中提供了文件重命名功能,它能赋予文件一个新的名字。若进行文件复制,并给复制文件起一个新的名字,然后删除旧文件,也能达到给文件重命名的目的。是问这个方法在实现上有何不同?
答:给文件重命名,用户必须提供两个参数:旧文件名和新文件名。实现该功能是,系统使用旧文件名查找文件目录,若找到旧文件名所在的目录表项,则将目录表箱中文件名字段对应的值改为新文件名值。从视线上看,文件重命名功能完成的工作室修改表项中的文件名字段,出文件名外,文件的其他属性都未改变。
3. 使用文件系统时,通常要显式地进行Open()与Close()操作。试问: (1) 这样做的目的是什么?
答:显式操作完成文件的打开功能,它将访问文件的目录信息读入内存活动文件表,建立起用户进程与文件的联系。显式操作完成文件关闭操作,该操作删除内存中有关该文件的目录信息,切断用户与该文件的联系。若在文件打开期间,该文件做过某些修改,还应将其写回磁盘。 (2) 能够取消显式地Open()与Close()操作么?若能,怎样做? 答:可以取消显式的OPEN与CLOSE操作。如果取消了显式地OPEN与CLOSE操作,系统在进行文件操作之前需要半段文件是否已经打开,若文件为打开,则应自动完成文件的打开功能,已建立用户与文件之间的联系。同时,在系统结束时,还应该自动关闭所有打开的文件。
(3) 取消显式地Open()与Close()操作有什么不利影响?
答:取消显示的OPEN雨CLOSE操作是的文件低些的系统开销增加。因为每次读写文件之前都需要半段文件是否打开,若为打开,还要完成打开操作。系统在结束时也要做一些额外的工作,已完成CLOSE操作所完成的功
能。当用户进程已完成对一个文件的访问单进程本书呢尚未执行完毕时,因无显式地CLOSE操作而无法关闭文件,从而不利于系统资源回收。 4. 文件目录的作用是什么?文件目录项通常包含哪些内容?
答:文件目录是文件名与文件所在存储位置的一张映射表。文件系统根据他实现用户安明存取文件。文件目录由若干目录项组成,每个目录项纪录一个文件的管理和控制信息。其中包括文件名、文件类型、文件在存储设备上的位置、文件的存取控制信息、文件的常见、访问和修改信息等。 5. 文件物理结构中的链接分配方式有几种实现方法?各什么特点?
答:文件物理结构中的链接分配方式有两种:一种是隐式的,即文件占用物理块中除存储文件信息之外,还存储有一个链接指针(即指向下一个物理块的指针);另一种是显式地,即将链接指针从物理块中提取出来,单独建立一个表,如MS-DOS操作系统采用这种方式,该表乘坐文件分配表。
隐式链接结构的文件只能采用顺序存取方法,否则效率太低。
显式链接结构的文件,优于指针单独管理,通常将文件分配表放在贮存中,无论采用顺序存取还是随机存取,其速度都差不多。
6. 设某文件A由100个物理块组成,现分别用连续文件,链接文件和索引文件来构造。针对3种不同的结构,执行以下操作时各需要多少次从洗盘I/O? (1) 将一物理块加到文件头部。 (2) 将一物理块加到文件正中间。 (3) 将一物理块加到文件尾部。
构造数量连续文件链接文件索引文件将一物理块加到文件头部将一物理块加到文件正中间将一物理块加到文件尾部2011011521021111
7. 文件系统用混合方式管理存储文件的物理块,设块的大小为512B,每个块号占3B,如果不考虑逻辑块号在物理块中所占的位置,求二级索引和三级索引时可寻址的文件最大长度。
答:由题目知,块大小为512B,每个块号占3B,一个物理块客房512/3=170个目录项。
一级索引可寻址的文件最大长度为:170*512=85KB;
二级索引可寻址的文件最大长度为:170*170*512=14450KB
三级索引可寻址的文件最大长度为:170*170*170*512=2456500KB
8. 一个计算机系统中,文件控制块占64B,磁盘块的大小为1KB,采用一级目录,假定目录中有3200个目录,问查找一个文件平均需要访问磁盘多少次? 答:3200个目录项占用的磁盘块数为: 3200*64/1024=200(块)
一级目录平均访问磁盘的次数为1/2盘块数,故平均访问磁盘100次。 9. 假定磁盘块的大小是1KB,对于1GB的磁盘,其文件分配表FAT需要占用多少存储空间?当硬盘的容量为10GB时,FAT需要占用多少空间?
答:由题目可知,磁盘的大小为1GB的磁盘,磁盘块的大小为1KB,所以该磁盘共有盘块数为:1GB/1KB==1M(个)
而1MB个盘块号需要20位表示,及文件分配表的每个表亩大小为2.5B。FAT
要占用的存储空间总数为:2.5B*1M=2.5MB
当磁盘大小为10GB时,硬盘共有盘块:10GB/1KB=10M(个) 又因 8M<10M<16M
故10M个盘号要用24位二进制表示。及文件分配表的每个表亩大小为3B。FAT要占用的存储空间总数为:3B*10M=30MB。
10.UNIX系统中采用索引节点表示文件的组织,在每个索引节点中,假定有12个直接块指针,分别有一个一级、二级和三级间接指针。此外,假定系统盘块大小为8KB。如果盘快指针用32位表示,其中8位用于标识物理磁盘号,24位用于标识磁盘块号。问:
(1) 该系统支持的最大文件长度是多少?
答:由题目一直,盘块指针用32位表示,即盘块指针占32/8=4B,一个索引盘块
可以存放的盘快数为:8KB/(4B)=2K,假定文件有12个直接快。分别由一个一级,二级和三级间接指针。最大文件长度是:
12*8KB+2K*8KB+2K*2K*8KB+2K*2K*2K*8KB=96KB+16MB+32GB+64TB
(2) 该系统支持的最大文件系统分别是多少?
答:因为24位用于标识磁盘块好,该系统支持的最大文件系统分区是:224个盘块,共有8kb*224=128GB。
(3) 假定主存中除了文件索引节点外没有其他信息,访问位置在12345678
字节时,需要访问磁盘多少次
答:假定主存中除了文件索引节点外没有其他信息,访问文件的位置为12345678B,相当于访问文件的相对块号为:
123456789/8K=1507余334.,即访问文件的第1507块,块内位移为334.系统有12个直接快,1507-12=1495,由于1507<2K,第1495号索引项应在一级简介索引块状中,股首先访问内存,得到一级间接索引快好;然后访问该简介快,得到1495号索引项对应的物理块好,最后得到块内位移为334的位置就是文件的12345678字节。
11.磁盘文件的物理结构采用链接分配盘块中放2个记录,如表所示。若要访问该文件的第1580字节,问:方式,文件A有10个记录,每个记录的长度为256B存放在5个磁盘块中,每个
(1)应访问那个盘块才能将该字节的内容读出?
答:要访问该文件的第1580字节所在的相对盘块为:1580/(256*2)=3余44
(2)要访问几次几盘才能将该字节的内容读出? 答:访问磁盘2次。
12.有一个磁盘共有10个盘面,每个盘面上有100个此道,没个此道有16个山区,每个扇区有512字节。假定文件分配以扇区为单位,若使用位示图来管理磁盘空间,问:
(1)磁盘的容量有多大?
答:磁盘的容量为:
10*100*16*512B=8000KB
(2)位示图需要占用多少空间?
答:位示图用于描述山区的使用情况,每个扇区用1位表示,位示图需要存储空间为:
10*100*16=16000bit=2000B
(3)若空白文件目录的每个表目占5字节,什么时候空白文件目录占用空间大于位示图? 答:由题目知,空白文件目录的每个表目占5B,更具上诉计算位示图需要2000B, 2000/5=400 所以当空白区数目大于400时,空白文件目录占用空间大于位示图。