计算机操作系统作业汇总(清华大学出版社)

发布时间:2019-11-03 08:03:03

思考与练习题(第一章)

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 三道程序的操作时间

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

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

答:

(1)

word/media/image1.gif

单道运行三道程序要花时间为200。

(2)

word/media/image2.gif

多道运行三道程序要花时间为130。

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

word/media/image3.gif

11. 选择一个现代操作系统查找和阅读相关的技术资料写一篇关于该操作系统如何进行内存管理存储管理设备管理和文件管理的文章

Windows 7 是由微软公司开发的,具有革命性变化的操作系统。该系统旨在让人们的日常电脑操作更加简单和快捷,为人们提供高效易行的工作环境。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)系统必须建立进程控制块(Process Control Block,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)进程发生状态变迁13467的原因。

(2)系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,这种变迁称为因果变迁。下述变迁32,45,72,36是否为因果变迁?试说明原因。(3)根据图2-18所示的进程状态转换图说明该系统CPU调度的策略和效果。

word/media/image4.gif

答:(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 条件证明,S1S2S3哪两个可以并发执行,哪两个不能。

答:(1)S1S2并发执行的条件是当且仅当R(S1)W(S2)R(S2)W(S1)W(S1)W(S2)={}

(2)

word/media/image5.gif

(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操作描述购票者的工作过程。

答:

semaphore mutex=1;

semaphore empty=200;

semaphore waiting=0;

void purchase()

{

P(waiting);

P(mutex);

buying tickets;

V(mutex);

V(empty);

}

void waiting()

{

P(empty);

waiting;

waiting++;

}

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

word/media/image6.gif

答:

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(p4);

V(cout);

}

write p1()

{

P(p1);P(meux);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() /*生产者进程*/

{

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(full);

P(mutex);

data_c=buffer[j];

j=(j+1)%n;

V(mutex);

V(empty);

consume the item in data_c;

}

}

若把生产者进程的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,设计一个协调对该文件访问的管程。

答:

monitor monitor_PC;

int identifier[n]={0};

void visit

{

for(i=0;i

{

int m=0;

m=m+identifier[i];

if(m<=n) 访问文件;

else break;

}

}

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

答:

monitor monitor_PC;

int recount=0;

int i;

condition write,read=1;

void reader()

{

cwait(write);

while(true)

{

cwait(read);

i=0;

…;

read;

…;

csignal(read);

}

csignal(write);

}

void writer()

{

while(true)

{

cwait(write);

i=1;

…;

write;

…;

csignal(write);

}

}

void manage()

{

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台磁带机,还有磁带机剩余,那么当其中的一个进程得到剩余的磁带机则可运行,运行结束后会释放磁带机,供其他进程使用,系统不会有死锁的危险;当n4时,每台分配2台时没有剩余,则会产生死锁,当n>5时同样会死锁。

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

4-8 进程情况

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

答:

word/media/image7.gif

6. 设系统中有5个进程P1P2P3P4P5,有3种类型的资源ABC,其中A资源的数量是17B资源的数量是5C资源的数量是20T0时刻系统状态如表4-9所示。

4-9 T0时刻系统状态

(1) 计算每个进程还可能需要的资源,并填入表的“仍然需求资源数”栏目中。

(2) T0时刻系统是否处于安全状态?为什么?

答:处于安全状态;安全状态是指至少存在一个安全序列使每个进程都可以顺利完成,而序列4P2P3P5P1>是一个安全序列,所以处于安全状态。

(3) 如果T0时刻进程P2又有新的资源请求(034),是否实施资源分配?为什么?

答:不实施资源分配;因为实施资源分配后系统就不处于安全状态,会发生死锁。

(4) 如果T0时刻,若进程P4又有新的资源请求(201),是否实施资源分配?为什么?

答:实施资源分配;因为P4请求资源后,仍然存在安全序列4P2P3P5P1>

(5) 在(4)的基础上,若进程P1又有新的资源请求(020),是否实施资源分配?为什么?

答:不实施资源分配;因为实施资源分配后系统就不处于安全状态,会发生死锁。

思考与练习题(第五章)

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进入内存后,内存的分布情况。

(2) 画出作业1、3完成后,内存的分布情况。

(3) 画出作业4、5进入内存后,内存的分布情况

答:

word/media/image8.gifword/media/image9.gifword/media/image10.gif

7. 某系统采用页式存储管理策略,某进程的逻辑地址空间为32页,页的大小为2KB,物理地址空间的大小是4MB。

(1) 写出逻辑地址的格式。

word/media/image11.gif

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

答:该进程的页表项有32项,每项至少占11位。

(3) 如果物理地址空间减少一半,页表的结构有何变化?

答:页表中每项会由占11位变为占10位。

8. 某页式存储管理系统,内存的大小为64KB,被分为16块,块号为0、1、2、……、15。设某进程有4页,其页号为0、1、2、3,被分别装入内存的2、4、7、5,问:

(1) 该进程的大小是多少字节?

答:(64/16)*4=16KB=16384B,该进程的大小为16384字节。

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

答:

第0页起始地址:8KB;

第1页起始地址:16KB;

第2页起始地址:28KB;

第3页起始地址:20KB。

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

答:4146/4096=1……50,所以对应页号为1,页内位移为50;第1页对应内存第4块,所以物理地址为4*4096+50=16434B。

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

word/media/image12.gif

请将逻辑地址[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)设备控制器的数据寄存器装满数据后发生中断;(2)可能会由于中断次数的急剧增加造成CPU无法及时响应中断,出现数据丢失现象。

DMA控制方式:优点:(1)数据传输的基本单位是数据块;(2)所传送的数据是从设备直接到内存或者从内存直接到设备;(3)仅在传送数据块的开始和结束时需要CPU的干预,整块数据的传送是在控制器的控制之下完成的。缺点:在大、中型计算机系统中,系统所配置的外设种类多,因而对外设的管理和控制也愈来愈复杂。多个DMA同时使用显然会引起内存地址的冲突并使得控制过程进一步复杂化。

通道控制方式:优点:(1)进一步减少CPU的干预,即把对一个数据块的读(写)干预减少到对一组数据块的读(写)的干预;(2)同时,又可实现CPU、通道及I/O设备三者的并行工作,从而有效地提高整个系统的资源利用率。

2. 何谓设备的独立性?如何实现设备的独立性?

答:设备独立性含义是用户程序独立于具体使用的物理设备。

为了实现设备的独立性,引入了逻辑设备和物理设备两个概念。在用户程序中,使用逻辑设备名请求使用某类设备,而系统在实际执行时,使用的是物理设备名。操作系统具有将逻辑设备名转换成物理设备名的功能。

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

广义来说缓冲是在通信问题中为了通信双方的速度匹配而引入的一个中间层次这个层次的速度比通信双方中较慢的一方快而与较快的一方较匹配

原因:(1)换届CPUI/O设备之间的速度不匹配的矛盾;(2)减少中断CPU的次数;(3)提高CPUI/O设备之间的并行性。

如何实现单缓冲:当用户发出I/O请求时操作系统在主存中为其分配一个缓冲区。

双缓冲:操作系统在主存储器中设置两个缓冲区当块设备使用双缓冲时,先将数据输入第一个缓冲区,装满后再输入第二个缓冲区,在向第二个缓冲区送数据的同时,CPU对第一个缓冲区中的数据进行计算

循环缓冲:操作系统在主存储器中设置多个缓冲区多个缓冲区链接成一个循环

4. 设备分配中为什么可能出现死锁?

答:在不安全分配方式中,当进程发出I/O请求后不阻塞,而是继续运行,当需要时有可能接着发出第二个I/O请求、第三个I/O请求,等等。仅当进程所请求的设备已被另一个进程占用时,进程才进入阻塞状态。这种分配方式的优点是一个进程可以同时操作多个设备,从而使进程推进迅速。其缺点是分配方式不安全,因为它可能具备“请求与保持条件”,从而可能造成死锁。

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

答:当用户进程请求打印输出时,操作系统接受用户的打印请求,但并不真正把打印机分配给该用户进程,而是为进程再次在输出井中分配一空闲块区,并将要打印的数据送入其中,同时还为用户进程申请一张用户请求打印表,将用户的打印要求填入其中,再将该表挂在请求打印队列上。如果还有进程要求打印输出,系统仍可以接受请求,也可以完成上述操作。

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

(1) 先来先服务(FCFS)

(2) 最短寻道时间优先(SSTF)

(3) 扫描算法(SCAN)

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

答:(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)

移动顺序:143147150175177130102949186

移动总量:(147-143+150-147+175-150+177-175+177-130+130-102+102-94+94-91+91-86=125

(5)循环扫描算法(C-SCAN)

移动顺序是:143147150175177869194102130

移动总量:(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~J10个记录读出,如果磁盘的旋转速度为20ms转一周,处理程序每读出一个记录要花4ms进行处理。试问:

(1) 处理完10个记录的总时间为多少?

(2) 为了优化分布缩短处理时间,如何安排这些记录?并计算处理的总时间。

表7-4 文件记录的存放

答:

(1)2ms+4ms+(18ms+4ms)*9=204ms;

(2)应这样安排这些记录:

总时间:20ms+4ms*10=60ms。

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

答:12345/150=82……45,45/15=3,所以该扇区在磁盘的第82柱面,第3磁道,第0扇区。

9. 一个文件记录大小为32B,磁道输入输出以磁盘块为单位,一个盘块的大小为512B。当用户进程顺序读文件的各个记录时,计算实际启动磁盘I/O占用整个访问请求时间的比例。

答:实际启动磁盘I/O占用整个访问请求时间的比例为32/512=6.25%

10.如果磁盘扇区的大小固定为512B,每个磁道有80个扇区,一共有4个可用的盘面。假设磁盘旋转速度是360rpm。处理机使用中断驱动方式从磁盘读取数据,每字节产生一次中断。如果处理中断需要2.5ms,试回答如下问题:

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

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

答:(1)(512*2.5/((1/12+1/480+(512*2.5))*100%=99.9%

(2)2.5/((1/12+1/480)+2.5)*100%=96.7%

欢迎您的光临,Word文档下载后可修改编辑.双击可删除页眉页脚.谢谢!希望您提出您宝贵的意见,你的意见是我进步的动力。赠语; 1、如果我们做与不做都会有人笑,如果做不好与做得好还会有人笑,那么我们索性就做得更好,来给人笑吧! 2、现在你不玩命的学,以后命玩你。3、我不知道年少轻狂,我只知道胜者为王。4、不要做金钱、权利的奴隶;应学会做“金钱、权利”的主人。5、什么时候离光明最近?那就是你觉得黑暗太黑的时候。6、最值得欣赏的风景,是自己奋斗的足迹。 7、压力不是有人比你努力,而是那些比你牛×几倍的人依然比你努力。

计算机操作系统作业汇总(清华大学出版社)

相关推荐