计算机操作系统作业汇总清华大学出版社.docx
《计算机操作系统作业汇总清华大学出版社.docx》由会员分享,可在线阅读,更多相关《计算机操作系统作业汇总清华大学出版社.docx(30页珍藏版)》请在冰豆网上搜索。
计算机操作系统作业汇总清华大学出版社
思考与练习题(第一章)
1.什么是操作系统?
它的主要功能是什么?
答:
操作系统是控制和管理计算机的软、硬件资源,合理地组织计算机的工作流程,以方便用户使用的程序集合。
其主要功能包括进程管理功能、存储管理功能、设备管理功能和文件管理功能。
2.什么是多道程序设计技术?
多道程序设计技术的主要特点是什么?
答:
把多个独立的程序同时放入内存,使它们共享系统中的资源。
(1)多道,即计算机内存中同时放多道相互独立的程序。
(2)宏观上并行,是指同时进入系统的多道程序都处于运行过程中。
(3)微观上串行,是指在单道处理机环境下,内存中的多道程序轮流占用CPU,交
替执行。
3.批处理操作系统是怎样的一种操作系统?
它的特点是什么?
答:
批处理操作系统是一种基本的操作系统类型。
在该系统中,用户的作业(包括程序、数据及程序的处理步骤)被成批地输入到计算机中,然后在操作系统的控制下,用户的作业自动的执行。
特点:
单道:
(1)自动性。
(2)顺序性。
(3)单道性。
多道:
(1)多道性。
(2)无序性。
(3)调度性。
4.什么是分时操作系统?
什么是实时操作系统?
试从交互性、及时性、独立性、多路性和可靠性几个方面比较分时操作系统和实时操作系统。
答:
分时操作系统:
计算机能够同时为多个终端用户服务,而且能在很短的时间内响应用户的要求。
实时操作系统:
对外部输入的信息,实时系统能够在规定的时间内处理完毕并做出反应。
(1)多路性:
分时系统是为多个终端用户提供服务,实时系统的多路性主要表现在经常对多路的现场信息进行采集以及多个对象或多个执行机构进行控制。
(2)独立性:
每个终端向实时系统提出服务请求时,是彼此独立的工作、互不干扰。
(3)及时性:
实时信息处理系统与分时系统对及时性的要求类似,都以人们能够接受
的等待时间来确定。
实时控制系统对一时性的要求更高,是以控制对象所要求的开始截止时间或完成截止时间来确定的。
5.实时操作系统分为哪两种类型?
答:
(1)实时控制系统
(2)实时信息处理系统。
6.操作系统的主要特征是什么?
答:
(1)并发性
(2)共享性 (3)虚拟性 (4)不确定性。
7.操作系统与用户的接口有几种?
它们各自用在什么场合?
答:
两种,命令接口和程序接口。
命令接口:
分为联机命令接口、脱机命令接口和图形用户命令接口。
方便用户直接控
制自己的作业而提供的接口。
程序接口:
又称为系统调用,是为用户能在程序一级访问操作系统功能而设置的,是用户程序取得操作系统服务的唯一途径。
8.“操作系统是控制硬件的软件”这一说法确切吗?
为什么?
答:
不正确,因为操作系统不仅控制硬件,同时它还控制计算机的软件。
9.假设内存中有三道程序A、B、C,它们按A→B→C的先后次序执行,它们进行“计算”和“I/O操作”的时间如表1-2所示,假设三道程序使用相同的I/O设备。
表1-2三道程序的操作时间
操作
程序
计算
I/O操作
计算
A
20
30
10
B
30
50
20
C
20
20
10
(1)试画出单道运行时三道程序的时间关系图,并计算完成三道程序要花多少时间。
(2)试画出多道运行时三道程序的时间关系图,并计算完成三道程序要花多少时间。
答:
(1)
单道运行三道程序要花时间为200。
(2)
多道运行三道程序要花时间为130。
10.将下列左右两列词语连接起来形成意义最恰当的5对。
11.选择一个现代操作系统,查找和阅读相关的技术资料,写一篇关于该操作系统如何进行内存管理、存储管理、设备管理和文件管理的文章。
Windows7是由微软公司开发的,具有革命性变化的操作系统。
该系统旨在让人们的日常电脑操作更加简单和快捷,为人们提供高效易行的工作环境。
Win7可供家庭及商业工作环境、笔记本电脑、平板电脑、多媒体中心等使用,下面我将介绍Win7系统是如何进行内存管理、存储管理、设备管理和文件管理的。
Win7的内存管理:
Win7会尽可能的使用“可用”的内存空间来缓存用户的预存数据,通过“超级预读”来确定哪些操作是用户常做的,以及把这些需要的数据放到“可用”内存中,这样在用户执行操作时就可以直接从内存读取数据而不用先从硬盘读到内存了。
这样,Win7就会把大内存剩余的空间利用上了,在你进行操作时候会有“飞速”的感觉,这就是说Win7越用越快的原因。
当然了,这部分空间当有新的需要时候它会即时释放,这超级预读这功能是XP所没有的,从vista开始引入,但因为当时大家电脑内存普遍不大,所以没发挥出多少效果,到了Win7时代,经过完善后终于大放异彩。
Win7的存储管理:
存储管理要管理的资源是内存储器(简称内存)。
它的任务是方便用户使用内存,提高内存的利用率以及从逻辑上扩充内存。
Win7的设备管理:
设备管理是操作系统中最复杂、最琐碎的部分。
Win7的设备管理器是该操作系统的一个重要应用程序,通过它可以方便地对计算机硬件进行管理。
Win7的文件管理:
win7的文件管理是通过资源管理器,通过它可以方便地显示和操作计算机中的文件资源。
其中包括文件、文件夹和文件系统,win7支持FAT32、NTFS和exFAT三种格式文件系统。
思考与练习题(第二章)
1.操作系统中为什么要引入进程的概念?
为了实现并发进程之间的合作和协调以及保证系统的安全,操作系统在进程管理方面要做哪些工作?
答:
(1)为了从变化的角度动态地分析研究可以并发执行的程序,真实地反应系统的独立性、并发性、动态性和相互制约,操作系统中就不得不引入“进程”的概念;
(2)进程管理的职能就是对系统中的全部进程实行有效地管理,其主要表现是对一个进程进行创建、撤销以及在某些进程状态之间的转换控制。
为了防止操作系统及其关键的数据结构(如PCB等)受到用户程序有意或无意的破坏,通常将处理机的执行状态分成核心态和用户态,通常用户的程序会在用户态下运行,不能访问操作系统的区域,从而防止了用户程序对操作系统的破坏。
2.试描述当前正在运行的进程状态改变时,操作系统进行进程切换的步骤。
答:
(1)就绪状态→运行状态。
处于就绪状态的进程具备了运行的条件,但未能获得处理机,故没有运行。
(2)运行状态→就绪状态。
正在运行的进程,由于规定的时间片用完而被暂停执行,该进程就会从运行状态转变为就绪状态。
(3)运行状态→阻塞状态。
处于运行状态的进程,除了因为时间片用完而暂停执行外还有可能由于系统中的其他因素的影响而不能继续执行。
3.现代操作系统一般都提供多任务的环境,试回答以下问题。
(1)为支持多进程的并发执行,系统必须建立哪些关于进程的数据结构?
(2)为支持进程的状态变迁,系统至少应该供哪些进程控制原语?
(3)当进程的状态变迁时,相应的数据结构发生变化吗?
答:
(1)进程的阻塞与唤醒原语和进程的挂起与激活原语。
(2)系统必须建立进程控制块(ProcessControlBlock,PCB)。
(3)会根据状态的变迁发生相应的变化。
例如将进程PCB中进程的状态从阻塞状态改为就绪状态,并将进程从阻塞队列摘下,投入到就绪队列中。
4.什么是进程控制块?
从进程管理、中断处理、进程通信、文件管理、设备管理及存储管理的角度设计进程控制块应该包含哪些内容。
答:
(1)用来描述进程本身的特性、进程的状态、进程的调度信息及对资源的占有情况等的一个数据结构是进程控制块。
(2)应该包含进程描述信息、处理机状态信息、进程调度信息、进程控制和资源占用信息。
5.假设系统就绪队列中有10个进程,这10个进程轮换执行,每隔300ms轮换一次,CPU在进程切换时所花费的时间是10ms,试问系统在进程切换上的开销占系统整个时间的比例是多少?
答:
(10*10)/[(300+10)*10]=3.2%
6.试述线程的特点及其与进程之间的关系。
答:
(1)特点:
线程是进程的一个实体,是被独立调度和分派的基本单位;线程之间的通信要比进程之间的通信方便的多;同一进程内的线程切换也因为线程的轻装而方便的多。
(2)线程与进程的关系:
线程是进程的一部分,是进程内的一个实体;一个进程可以有多个线程,但至少必须有一个线程。
7.根据图2-18,回答以下问题。
(1)进程发生状态变迁1、3、4、6、7的原因。
(2)系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,这种变迁称为因果变迁。
下述变迁3→2,4→5,7→2,3→6是否为因果变迁?
试说明原因。
(3)根据图2-18所示的进程状态转换图说明该系统CPU调度的策略和效果。
答:
(1)变迁1原因:
创建进程后,将其按高优先级插入就绪队列;
变迁3原因:
进程请求I/O或等待某事件而阻塞;
变迁4原因:
时间片用完;
变迁6原因:
进程I/O完成或时间完成;
变迁7原因:
进程完成而退出。
(2)3→2是因果变迁,当一个进程从运行态变为阻塞态时,此时CPU空闲,系统首先到高优先级队列中选择一个进程。
4→5是因果变迁,当一个进程运行完毕时,此时CPU空闲,系统首先到高优先级队列中选择进程,但如果高优先级队列为空,则从低优先队列中选择一个进程。
7→2是因果变迁,当一个进程运行完毕时,CPU空闲,系统首先到高优先级队列中选择一个进程。
3→6不是因果变迁。
一个进程阻塞时由于自身的原因而发生的,和另一个进程等待的时间到达没有因果关系。
(3)策略:
当进程调度时,首先从高优先级就绪队列选择一个进程,赋予它的时间片为100ms。
如果高优先级就绪队列为空,则从低优先级就绪队列选择进程,并且赋予该进程的时间片为500ms。
效果:
在100ms运行完毕的短进程在运行完毕后就退出系统;I/O量大的进程在I/O完成后就会进入高优先级就绪队列;在100ms运行不完的进程就会进入低优先级就绪队列,当高优先级就绪队列为空时,被再次执行,给予大时间片500ms。
这种策略减少了进程切换次数,减少了系统开销,但大程序因进入低优先级,会运行时间较长。
8.回答以下问题。
(1)若系统中没有运行进程,是否一定没有就绪进程?
为什么?
(2)若系统中既没有运行进程,也没有就绪进程,系统中是否就没有阻塞进程?
请解释。
(3)如果系统采用优先级调度策略,运行的进程是否一定是系统中优先级最高的进程?
为什么?
答:
(1)是,因为一旦系统中没有运行程序,就会从就绪队列中调度进程,只有当就绪队列为空时,系统中才没有进程。
(2)不一定,当运行的程序都因为请求I/O或等待事件时而进入阻塞,系统中就没有就绪进程。
(3)不一定,若优先级高的进程进入阻塞状态时,而且优先级高的就绪队列里没有等待的进程,这时就会调度优先级低的就绪队列的进程。
9.假如有以下程序段,回答下面的问题。
S1:
a=3-x;
S2:
b=2*a;
S3:
c=5+a;
(1)并发程序执行的Bernstein条件是什么?
(2)试画图表示它们执行时的先后次序。
(3)利用Bernstein条件证明,S1、S2和S3哪两个可以并发执行,哪两个不能。
答:
(1)S1和S2并发执行的条件是当且仅当R(S1)∩W(S2)∪R(S2)∩W(S1)∪W(S1)∩W(S2)={}。
(2)
(3)因为W(S1)∩R(S2)={a}, 所以S1和S2不能并发执行;
W(S1)∩R(S2)={a}, 所以S1和S3也不能并发执行;
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操作为什么要设计成原语。
答:
因为P操作和V操作都是对信号量的操作,是为了实现进程同步和互斥的,互斥要解决的就是如何在一个进程修改共享内存区时不让操作系统切换给另一个同样访问这块共享内存区的进程的问题,所以在执行P、V操作时一定不能让进程切换,所以必须采用原语。
4.设有一个售票大厅可容纳200人购票。
如果厅内不足200人则允许进入,超过则在厅外等候;售票员某时只能给一个购票者服务,购票者买完票后就离开。
(1)购票者之间是同步关系还是互斥关系?
答:
互斥关系。
(2)用P、V操作描述购票者的工作过程。
答:
semaphoremutex=1;
semaphoreempty=200;
semaphorewaiting=0;
voidpurchase()
{
P(waiting);
P(mutex);
buyingtickets;
V(mutex);
V(empty);
}
voidwaiting()
{
P(empty);
waiting;
waiting++;
}
5.进程之间的关系如图3-16所示,试用P、V操作描述它们之间的同步。
答:
semaphorea=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操作描述四个进程存取消息的情况。
答:
semaphorep1=0;
semaphorep2,p3,p4=1;
semaphorecout=0;
semaphoremutex=1;
voidmain()
{
P(p2);P(p3);P(p4);
V(cout);
}
writep1()
{
P(p1);P(meux);P(cout);
存入消息;
V(p1);V(metux);
}
readp2()
{
P(mutex);P(p1);
取消息;
V(p1);V(p2);V(metux);
}
readp3()
{
P(mutex);P(p1);
取消息;
V(p1);V(p3);V(metux);
}
readp4()
{
P(mutex);P(p1);
取消息;
V(p1);V(p4);V(metux);
}
7.分析生产者—消费者问题中多个P操作颠倒引起的后果。
答:
semaphoremutex=1;
semaphoreempty=n;
semaphorefull=0;
inti,j;
ITEMbuffer[n];
ITEMdata_p,data_c;
voidproducer()/*生产者进程*/
{
while(true)
{
produceanitemindata_p;
P(mutex);
P(empty);
buffer[i]=data_p;
i=(i+1)%n;
V(mutex);
V(full);
}
}
voidconsumer()/*消费者进程*/
{
while(true)
{
P(full);
P(mutex);
data_c=buffer[j];
j=(j+1)%n;
V(mutex);
V(empty);
consumetheitemindata_c;
}
}
若把生产者进程的P操作颠倒,消费者进程的P操作颠倒,则生产者进程执行到V(mutex)时,消费者就可以执行P(mutex)但由于full=0,消费者进程不可执行P(full);当生产者进程执行完V(full)后,full=1,但由于mutex=0,消费者进程无法执行,造成死锁。
8.读者—写者问题中写者优先算法的实现。
答:
semaphoreWmutex,Rmutex=1;
intRcount=0;
semaphoremutex=1
voidreader()/*读者进程*/
{
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);
}
}
voidwriter()/*写者进程*/
{
while(true)
{
P(mutex);
P(Wmutex);
…;
write;/*执行写操作*/
…;
V(Wmutex);
V(mutex);
}
}
9.写一个用信号量解决哲学家进餐问题又不产生死锁的算法。
答:
semaphorechopstick[5]={1,1,1,1,1};
semaphoremutex=1;
voidphilosopher()/*哲学家进餐*/
{
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,设计一个协调对该文件访问的管程。
答:
monitormonitor_PC;
intidentifier[n]={0};
voidvisit
{
for(i=0;i{
intm=0;
m=m+identifier[i];
if(m<=n)访问文件;
elsebreak;
}
}
11.用管程解决读者——写者问题,并采用公平原则。
答:
monitormonitor_PC;
intrecount=0;
inti;
conditionwrite,read=1;
voidreader()
{
cwait(write);
while(true)
{
cwait(read);
i=0;
…;
read;
…;
csignal(read);
}
csignal(write);
}
voidwriter()
{
while(true)
{
cwait(write);
i=1;
…;
write;
…;
csignal(write);
}
}
voidmanage()
{
if(i=0)monitor_PC.writer();
if(i=1)monitor_PC.reader();
}
思考与练习题(第四章)
1.某进程被唤醒后立即投入运行,能说明该系统采用的是可剥夺调度算法吗?
答:
不能说明,因为如果现在就绪队列中没有进程,那么唤醒的进程会立刻投入运行。
2.在哲学家进餐问题中,如果将先拿起左边筷子的哲学家称为左撇子,将先拿起右边筷子的哲学家称为右撇子。
请说明在同时存在左、右撇子的情况下,任何的就坐安排都不能产生死锁。
答:
任何的就坐安排都不会构成环路,这就符合避免死锁的条件,所以不会产生死锁。
3.系统中有5个资源被4个进程所共享,如果每个进程最多需要2个这种资源,试问系统是否会产生锁死?
答:
不会产生死锁。
由于资源数大于进程数,所以系统中总会有一个进程获得资源数大于等于2,该进程已经满足了它的最大需求,当它运行完毕后会把它占有的资源归还给系统,此时其余3个进程也能满足最大需求而顺利运行完毕。
因此系统不会产生死锁。
4.计算机系统有8台磁带机,由N个进程竞争使用,每个进程最多需要3台。
问:
当N为多少时,系统没有死锁的危险?
答:
当N<4时,系统没有死锁的危险。
因为当n<3时,每个进程分配2台磁带机,还有磁带机剩余,那么当其中的一个进程得到剩余的磁带机则可运行,运行结束后会释放磁带机,供其他进程使用,系统不会有死锁的危险;当n为4时,每台分配2台时没有剩余,则会产生死锁,当n>5时同样会死锁。
5.假设系统有5个进程,它们的到达时间和服务时间如表4-8所示。
新进程(没有运行过的进程)与老进程(运行过的进程)的条件相同时,假定系统选新进程运行。
表4-8进程情况
进程名
到达时间
服务时间
A
0
3
B
2
6
C
4
4
D
6
5
E
8
2
若按先来先服务(FCFS)、时间片轮转法(时间片q=1)、短进程优先(SPN)、最短剩余时间优先(SRT,时间片q=1)、响应比高者优先(HRRN)及多级反馈队列(MFQ,第1个队列的时间片为1,第i(i>1)个队列的时间片q=2(i-1))算法进行CPU调度,请给出各个进程的完成时间、周转时间、带权周转时间及所有进程的平均周转时间和平均带权周转时间。
答:
6.设系统中有5个进程P1、P2、P3、P4、P5,有3种类型的资源A、B和C,其中A资源的数量是17,B资源的数量是5,C资源的数量是20,T0时刻系统状态如表4-9所示。
表4-9T0时刻系统状态
进程
已分配资源数量
最大资源需求量
仍然需求资源数
A
B
C
A
B
C
A
B
C
P1
2
1
2
5
5
9
3
4
7
P2
4
0
2
5
3
6
1
3
4
P3
4
0
5
4
0
11
0
0
6
P4
2
0
4
4
2
5
2
2
1
P5
3
1