操作系统打印.docx
《操作系统打印.docx》由会员分享,可在线阅读,更多相关《操作系统打印.docx(18页珍藏版)》请在冰点文库上搜索。
操作系统打印
1试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。
答:
(1)及时性:
实时信息处理系统对实时性的要求与分时系统类似,都是以人能接受的等待时间来确定的。
而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定,一般为秒级或毫秒级,甚至有的要低于100微秒。
(2)交互性:
实时信息处理系统虽然也具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。
不像分时系统那样能向终端用户提供数据和资源共享等服务。
(3)可靠性:
分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度
的可靠性。
因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统
中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。
2.简述操作系统的定义及功能。
操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充,它在计算机中占据了特别重要的地位,而其它的例如汇编程序、编译程序、数据库管理系统等系统软件,以及大量的应用软件,都将依赖于计算机操作系统的支持,取得它的服务
功能主要有处理机管理,存储器管理,设备管理,文件管理和用户接口。
3.是什么原因使操作系统具有异步性特征?
答:
操作系统的异步性体现在三个方面:
一是进程的异步性,进程以人们不可预知的速度向
前推进,二是程序的不可再现性,即程序执行的结果有时是不确定的,三是程序执行时间的
不可预知性,即每个程序何时执行,执行顺序以及完成时间是不确定的。
4.试从动态性,并发性和独立性上比较进程和程序?
答:
(1)动态性是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源
而暂停执行,由撤销而消亡。
进程有一定的生命期,而程序只是一组有序的指令集合,是静
态实体。
(2)并发性是进程的重要特征,同时也是OS的重要特征。
引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。
(3)独立性是指进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独立调度的基本单位。
对于未建立任何进程的程序,不能作为独立单位参加运行。
5.试说明PCB的作用,为什么说PCB是进程存在的惟一标志?
答:
PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。
作用是使一个在
多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程
并发执行的进程。
OS是根据PCB对并发执行的进程进行控制和管理的。
6.试说明进程在三个基本状态之间转换的典型原因。
答:
(1)就绪状态→执行状态:
进程分配到CPU资源
(2)执行状态→就绪状态:
时间片用完
(3)执行状态→阻塞状态:
I/O请求
(4)阻塞状态→就绪状态:
I/O完成
7.操作系统为什么具有异步性特征?
进程是以人们不可预知的速度向前推进,多道程序环境下,允许多个进程并发执行.但由于资源等因素的限制,进程的执行通常并非一气呵成,而是以走走停停的方式运行.内存中的每个进程在何时执行,何时暂停,以怎样的速度向前推进,每道程序总共需要多少时间才能完成,都是不可预知的.故而作业完成的先后次序与进入内存的次序并不完全一致,亦即进程是以异步方式运行的.但在有关进程控制及同步机制等的支持下,只要运行环境相同,作业经多次运行,都会获得完全相同的结果,因而异步方式是容许的.因此,操作系统便具有了异步性特征.。
8.为什么进程在进入临界区之前应先执行“进入区”代码?
而在退出前又要执行“退出
区”代码?
答:
为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问
的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,
并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码为"
进入区"代码;在退出临界区后,必须执行"退出区"代码,用于恢复未被访问标志,使其它进程能再访问此临界资源。
9.同步机构应遵循哪些基本准则?
为什么?
答:
基本准则是:
空闲让进、忙则等待、有限等待、让权等待
原因:
为实现进程互斥进入自己的临界区。
10.安全状态和非安全状态的定义是什么?
安全状态是指系统能按某种进程顺序(P1,P2,…,Pn)(称〈P1,P2,…,Pn>序列为安全状态)来为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利进程。
如果系统无法找到这样一个安全序列,则称系统处于不安全状态。
11.进程的三个基本状态三映像是什么?
答:
就绪状态、执行状态、阻塞状态。
由程序段,相关的数据段,和进程控制块(PCB)构成进程实体(又称进程映像)
12.试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较。
(1)调度性。
线程在OS中作为调度和分派的基本单位,进程只作为资源拥有的基本单位。
(2)并发性。
进程可以并发执行,一个进程的多个线程也可并发执行。
(3)拥有资源。
进程始终是拥有资源的基本单位,线程只拥有运行时必不可少的资源,本
身基本不拥有系统资源,但可以访问隶属进程的资源。
(4)系统开销。
操作系统在创建、撤消和切换进程时付出的开销显著大于线程。
13.何谓死锁?
产生死锁的原因和必要条件是什么?
答:
死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状
态时,若无外力作用,它们都将无法再向前推进。
产生死锁的原因为竞争资源和进程间推进顺序非法。
其必要条件是:
互斥条件、请求和
保持条件、不剥夺条件、环路等待条件。
14.分段和分页存储管理有何区别?
答:
(1)页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外部零头,提高内存利用率。
段则是信息的逻辑单位,它含有一组相对完整的信息。
(2)页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由
机械硬件实现的,因而在系统中只能有一种大小的的页面;而段的长度却不固定,决定于用户
所编写的程序,通常由编译程序在对原程序进行编译时,根据信息的性质来划分。
(3)分页的作业地址空间是一维的,而分段作业地址空间则是二维的。
15.什么是SPOOLing?
答:
在主机的直接控制下,实现脱机输入、输出功能。
此时的外围操作与CPU对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作称作SPOOLing。
16.试说明SPOOLing系统的组成
答:
SPOOLing系统由输入井和输出井、输入缓冲区和输出缓冲区、输入进程SPi和输出进程SPo三部分组成。
17.SPOOLing系统的特点?
(1)提高了I/O的速度
(2)将独占设备改造为共享设备(3)实现了虚拟设备功能
18.磁盘访问时间由哪几部分组成?
每部分时间应如何计算?
答:
磁盘访问时间由寻道时间Ts、旋转延迟时间Tr、传输时间Tt三部分组成。
(1)Ts是启动磁臂时间s与磁头移动n条磁道的时间和,即Ts=m×n+s。
(2)Tr是指定扇区移动到磁头下面所经历的时间。
硬盘15000r/min时Tr为2ms;软盘300或600r/min时Tr为50~100ms。
(3)Tt是指数据从磁盘读出或向磁盘写入经历的时间。
Tt的大小与每次读/写的字节数b和旋转速度有关:
Tt=b/rN
19.廉价磁盘冗余阵列是如何提高对磁盘的访问速度和可靠性的?
答:
廉价磁盘冗余阵列RAID是利用一台磁盘阵列控制器,统一管理和控制一组(几台到几
十台)磁盘驱动器,组成高度可靠快速大容量的磁盘系统。
操作系统将RAID中的一组物理磁盘驱动器看作一个单个的逻辑磁盘驱动器。
用户数据和系统数据可分布在阵列的所有磁盘中,并采取并行传输方式,大大减少数据传输时间和提高了可靠性。
其优点主要为
(1)可靠性高
(2)磁盘I/O速度快(3)性能/价格比高
20.试说明UNIX系统中所采用的混合索引分配方式。
答:
混合索引分配方式是指将多种索引分配方式结合而成的分配方式。
常见的是采用直接地址和一级索引联合的分配方式,或两级索引分配方式,甚至三级索引分配方式。
在UNIXSystemⅤ和BSDUNIX的索引结点中,都设置了13个地址项,即iaddr(0)~iaddr(12),把所有地址项分成直接地址和间接地址。
21.在具有快表的段页式存储管理方式中,如何实现地址变换?
答:
在CPU给出有效地址后,由地址变换机构自动将页号P送入高速缓冲寄存器,并将此
页号与高速缓存中的所有页号比较,若找到匹配页号,表示要访问的页表项在快表中。
可直
接从快表读出该页对应物理块号,送到物理地址寄存器中。
如快表中没有对应页表项,则再
访问内存页表,找到后,把从页表项中读出物理块号送地址寄存器;同时修改快表,将此页
表项存入快表。
但若寄存器已满,则OS必须找到合适的页表项换出。
22.周转时间指的是什么时间?
包含什么内容?
所谓周转时间,是指作业被提交给系统开始,到作业完成的这段时间间隔(称为作业周转时间)。
它包括四部分时间:
1)作业在外存后备队列上等待(作业)调度的时间,2)进程在就绪队列上等待进程调度的时间,3)进程在CPU上执行的时间,4)进程等待I/O操作完成的时间。
其中后三项在一个作业的整个处理过程中可能会发生多次,(也可能一次不发生)。
23.临界资源、临界区是什么意思?
临界资源,多道程序系统中存在许多进程,它们共享各种资源,然而有很多资源一次只能供一个进程使用。
一次仅允许一个进程使用的资源。
临界区每个进程中访问临界资源的那段程序
24.考虑一个有快表的请求分页系统,设内存的读写周期为1ns,内外存之间传送一个页面的平均时间为5000ns,快表的命中率为80%,页面失效率为10%,求内存的有效存取时间。
答:
内存的有效存取时间EAT(EfficentAccessTime)也叫平均存取时间
EAT=1ns×80%+2ns×10%+(5000ns+2ns)×10%=0.8ns+0.2ns+500.2ns=501.2ns
25如何利用管程来解决生产者与消费者问题?
答:
首先建立一个管程,命名为ProclucerConsumer,包括两个过程:
(1)Put(item)过程。
生产者利用该过程将自己生产的产品放到缓冲池,用整型变
量count表示在缓冲池中已有的产品数目,当count≥n时,表示缓冲池已满,生产者须等待。
(2)get(item)过程。
消费者利用该过程从缓冲池中取出一个产品,当count≤0
时,表示缓冲池中已无可取的产品,消费者应等待。
PC管程可描述如下:
typeproducer-consumer=monitor
Varin,out,count:
integer;
buffer:
array[0,…,n-1]ofitem;
notfull,notempty:
condition;
procedureentrydot(item)
begin
ifcount>=nthennotfull.wait;
buffer(in):
=nextp;
in:
=(in+1)modn;
count:
=count+1;
ifnotempty.queuethennotempty.signal;
end
procedureentryget(item)
begin
ifcount<=0thennotfull.wait;
nextc:
=buffer(out);
out:
=(out+1)modn;
count:
=count-1;
ifnotfull.quenethennotfull.signal;
end
beginin:
=out:
=0;
count:
=0
end
在利用管程解决生产者一消费者问题时,其中的生产者和消费者可描述为:
producer:
begin
pepeat
produceanineminnestp
PC.put(item);
untilfalse;
end
consumer:
begin
repeat
PC.get(item);
consumetheiteminenxtc;
untilfalse;
end
26.什么是AND信号量?
试利用AND信号量写出生产者一消费者问题的解法。
答:
为解决并行带来的死锁问题,在wait操作中引入AND条件,其基本思想是将进
程在整个运行过程中所需要的所有临界资源,一次性地全部分配给进程,用完后一次性释放。
解决生产者-消费者问题可描述如下:
varmutex,empty,full:
semaphore:
=1,n,0;
buffer:
array[0,...,n-1]ofitem;
in,out:
integer:
=0,0;
begin
parbegin
producer:
begin
repeat
…
produceaniteminnextp;
…
wait(empty);
wait(s1,s2,s3,...,sn);//s1,s2,...,sn为执行生产者进程除empty外其余的条件
wait(mutex);
buffer(in):
=nextp;
in:
=(in+1)modn;
signal(mutex);
signal(full);
signal(s1,s2,s3,...,sn);
untilfalse;
end
consumer:
begin
repeat
wait(full);
wait(k1,k2,k3,...,kn);//k1,k2,...,kn为执行消费者进程除full外其余的条件
wait(mutex);
nextc:
=buffer(out);
out:
=(out+1)modn;
signal(mutex);
signal(empty);
signal(k1,k2,k3,...,kn);
consumetheiteminnextc;
untilfalse;
end
parend
end
27.什么是信号量集?
试利用信号量集写出读者一写者问题的解法。
答:
对AND信号量加以扩充,形成的信号量集合的读写机制。
解法:
VarRNinteger;
L,mx:
semaphore:
=RN,1;
begin
parbegin
reader:
begin
repeat
Swait(L,1,1);
Swait(mx,1,1);
…
performreadoperation;
…
Ssignal(L,1);
untilfalse
end
writer:
begin
repeat
Swait(mx,1,1;L,RN,0);
performwriteoperation;
Ssignal(mx,1);
untilfalse
end
parend
end
28.一个盘子,只能放一个水果,爸爸只放苹果,妈妈只放桔子,儿子只拿桔子,女儿只拿苹果。
Var:
Plant,apple,orange:
semphare:
=1,0,0
Dad:
P(plant);
放苹果
V(apple);
Mum:
P(plant);
放桔子
V(orange);
Sun:
p(orange);
V(plant);
daughter:
p(apple);V(plant);
29、银行业务模拟:
5个窗口,20个座位,总共有20个椅子
begincustomer:
parbeginbegin
var:
wait(chairnum);
cusnum,chairnum:
semaphore:
=0,20;wait(mutex);
clenum,mutex:
semaphore:
=5,1;quhao;
clerk:
singal(cusnum);
beginsingal(mutex);
repeatwait(clenum);
wait(cusnum);singal(chairnum);
干活;接受服务;
打铃铛;离开;
singal(clenum);end
until下班时间到;parend;
endend.
30.某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。
若把一个购票者看作一个进程,请回答下列
(1)用P、V操作管理这些并发进程时,应怎样定义信号量?
写出信号量的初值以及信号量各种取值的含义。
答:
定义一信号量S,初始值为20。
S>0S的值表示可继续进入售票厅的人数;
S=0表示售票厅中已有20名购票者;
S<0|S|的值为等待进入售票厅中的人数。
(2)根据所定义的信号量,把应执行的P、V操作填入下述程序中,以保证进程能够正确地并发执行。
CobeginPROCESSPi(i=1,2,…)
Begin
进入售票厅;
购票;
退出;
End;Coend
答:
上框为P(S),下框为V(S)。
(3)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。
答:
S的最大值为20,S的最小值为20-N,N为某一时刻需要进入售票厅的最多人数。
31、问题:
用P.V操作解决下面问题
司机进程:
售票员进程:
REPEATREPEAT
启动车辆关门
正常驾驶售票
到站停车开门
UNTIL…UNTIL…
同步要求:
先关门,后开车;先停车,后开门
答:
信号量:
S_Door,{初值为0}
S_Stop;{初值为0}
司机进程:
乘务员进程:
BeginBegin
RepeatRepeat
P(S_Door);关门;
启动;V(S_Door);
驾驶;售票;
停车;P(S_Stop);
V(S_Stop);开门;
Untilfalse;Untilfalse;
EndEnd
32、桌上有一空盘,允许存放一只水果.爸爸只可向盘中放苹果,妈妈只可向盘中放橘子,儿子专等吃盘中的橘子,女儿专等吃盘中的苹果.规定当盘空时一次只能放一只水果供吃者取用,请用P,V原语实现爸爸,妈妈,儿子,女儿三个并发进程的同步.爸爸,妈妈,儿子,女儿
Parbeginmum;begin
Plant,apple,orange:
semphaer:
=1,0,0;repeat
Dad;beginWait(plant);
repeatPlaceanorange;
Wait(plant);Sngal(orange);
Placeanapple;Untilfalse;
Singal(apple);end
Untilfalse;son:
begin
endreapt
Daughter:
beginWait(orange);
reaptSingal(plant);
Wait(apple);Eatorange;
Singal(plant);Untilfalse
Eatapple;end
Untilfalseparend;
EndEnd
33.某个系统采用成组链接法来管理磁盘的空闲空间,目前磁盘的状态如图6.10所示。
(1)该磁盘中目前还有多少个空闲盘块?
(2)请简述磁盘块的分配过程。
(3)在为某个文件分配3个盘块后,系统要删除另一文件,并回收它所占的5个盘块,它们的盘块号依次为700、711、703、788、701,请画出回收后的盘块链接情况。
答:
(1)从图中可以看出,目前系统共有四组空闲盘块,第一组为2块,第二,三组分别为100块,第四组虽记为100快,但除去结束标记后实际只有99块,故空闲盘块总数为301块。
(2)磁盘块的分配过程如下:
首先检查超级块空闲盘块号栈是否已上锁,若已上锁则进程睡眠等待;否则将s_nfree减1,若s_nfree仍大于0,即第一组中不止一个空闲盘块,则将s_free[s_nfree]中登记的(即空闲盘块号栈顶的)空闲盘块分配出去。
若s_nfree为0,即当前空闲盘块号栈中只剩下最后一个空闲盘块,由于该盘块中登记有下一组空闲盘块的盘块号和盘块数,因此核心在给超级块的空闲盘块号栈上锁后,先将该盘块的内容读入超级块的空闲盘块号栈,再将该盘块分配出去。
另外,还需将空闲盘块号栈解锁,并唤醒所有等待其解锁的进程。
若s_nfree为0,而且栈底登记的盘块号为0,则表示系统已无空闲盘块可分配,此时也让进程睡眠等待其他进程释放盘块。
(3)根据题意,分配给某文件的3个盘块依次为299号,300号,301号这三个盘块。
在此基础上依次回收另一个文件的5个盘块:
700、711、703、788、701,回收完成后,空闲盘块的链接情况将如图6.11所示。
图6.10当前空闲块的情况
图6.11删除文件B后的空闲块链接情况
23.在两级索引分配方式下,如果每个盘快的大小为2KB,每个盘块号占4字节,则一个索引块中可以存放,允许的最大文件是多少?
解:
2KB/4=512B个盘块号
两级索引最多可以存放的盘块数为:
512B*512B=256KB个盘块号
因此允许的最大文件长度为:
256KB*2KB=512MB
24.假设盘快大小为4KB,每个盘快号占4个字节,在两级索引结构中,允许的最大文件长度是多少?
解:
一个盘快有4KB/4=1KB个登记项;
二级索引有1KB*1KB个登陆项;
则允许的最大文件长度:
1KB*1KB*4KB=4GB
25.假定磁盘块大小为1KB,若硬盘容量为1.2GB,FAT需占用多少空间?
解:
磁盘大小为1.2GB磁盘块的大小为1KB,所以该磁盘共有盘块:
1.2GB/1KB=1.2MB(个);
又1MB<1.2MB<2MB,故1.2MB个盘块号要用21位二进制表示,为了方便存取,每个盘块号用24位二进制描述,即文件分配表的每个表目为3个字节。
FAT需占用空间:
3*1.2MB=3.6MB
26.假定磁盘块的大小为1KB,540MB的硬盘,FAT表占多少存储空间?
解:
磁盘块个数:
540MB/1KB=540KB(个)
512KB<540KB<1024KB
FAT表中每个表目:
2.5字节
FAT表占多存储空间:
2.5*540KB=1350KB
22.在银行家算法中,若出现下述资源分配情:
Process
Allocation
Need
Available
P0
0032
0012
1622
P1
1000
1750
P2
1354
2356
P3
0332
0652
P4
0014
0656
试问:
⑴该状态是否安全?
⑵若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?
⑴该状态是安全的,因为存在一个安全序列{P0、P3、P4、P1、P2}。
下表为该时刻的安全序列表。
资源
进程
Work
Need
Allocation
Work+Allocation
Finish
P0
P3
P4
P1
P2
1622
1654
1987
19911
29911
0012
0652
0656
1750
2356
0032