![操作系统原理 习题及答案(机工孟庆昌第2版)_第1页](http://file4.renrendoc.com/view12/M07/10/2D/wKhkGWdg_JeAF5JDAANpbnOterY492.jpg)
![操作系统原理 习题及答案(机工孟庆昌第2版)_第2页](http://file4.renrendoc.com/view12/M07/10/2D/wKhkGWdg_JeAF5JDAANpbnOterY4922.jpg)
![操作系统原理 习题及答案(机工孟庆昌第2版)_第3页](http://file4.renrendoc.com/view12/M07/10/2D/wKhkGWdg_JeAF5JDAANpbnOterY4923.jpg)
![操作系统原理 习题及答案(机工孟庆昌第2版)_第4页](http://file4.renrendoc.com/view12/M07/10/2D/wKhkGWdg_JeAF5JDAANpbnOterY4924.jpg)
![操作系统原理 习题及答案(机工孟庆昌第2版)_第5页](http://file4.renrendoc.com/view12/M07/10/2D/wKhkGWdg_JeAF5JDAANpbnOterY4925.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统原理(第2版)习题参考答案
习题1
1.计算机系统主要由哪些部分组成?
答:通常,一个完整的计算机系统是由硬件和软件两大部分组成的。
2.解释以下术语:硬件、软件、特权指令、核心态、用户态、多道程序设计、操作系
统、分时、实时、并发、并行、吞吐量、系统调用、纯码
答:硬件一一是指计算机物理装置本身,它是计算机软件运行的基础。
软件一一是与计算机系统操作有关的计算机程序、过程、规则以及相关的文档资料的总
称。
特权指令一一计算机的指令集中一类具有特殊权限的指令,只用于操作系统或其他系统
软件,一般普通用户不能直接使用。它主要用于系统资源的分配和管理。
核心态一一是处理机的一种运行模式。当执行操作系统程序时,处理机处于核心态。它
有较高的特权,可以执行所有的指令,包括一般用户程序中不能使用的特权指令,从而能对
所有寄存器和内存进行访问、启动I/O操作等。
用户态一一是处理机的一种运行模式。用户程序是在用户态下执行,它的权限较低,只
能执行指令集中非特权指令。
多道程序设计一一内存中同时存放多道程序,在管理程序的控制下交替地执行。这些作
业共享CPU和系统中的其他资源。
操作系统一一是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运
行的系统软件(或程序集合),是用户与计算机之间的接口。
分时——是对时间的共享。在分时系统中,分时主要是指若干并发程序对CPU时间的共享。
实时一表示"及时”或“即时”。
并发——是指两个或多个活动在同一•给定的时间间隔中进行。它是宏观上的概念。
并行一一是指两个或多个活动在同一时刻进行。
吞吐量——在一段给定的时间内,计算机所能完成的总工作量。
系统调用一是用户在程序中能以“函数调用”形式调用的、由操作系统提供的子功能
的集合。每一个子功能称做一条系统调用命令。它是操作系统对外的接口,是用户级程序取
得操作系统服务的唯一途径。
纯码一一是指在执行过程中,本身不作任何变化的代码,通常是由指令和常数组成的。
3.什么是操作系统(OS)?它的主要功能是什么?
答:操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运
行的系统软件(或程序集合),是用户与计算机之间的接口。
操作系统应具备的五大基本功能,即存储管理、进程和处理机管理、文件管理、设备管
理、用户接口。
4.操作系统主要有哪三种基本类型?各有什么特点?
答:传统上说,最基本的类型有三种,即多道批处理系统、分时系统和实时系统。
批处理系统有两个特点:一是“多道”,二是“成批”。
分时系统的特点是:同时性:若干用户可同时上机使用计算机系统;交互性:用户能方
便地与系统进行人一机对话;独立性:系统中各用户可以彼此独立地操作,互不干扰或破坏;
及时性;用户能在很短时间内得到系统的响应.
实时系统的特点是:对时间的严格限制和对可靠性的严格要求。
5.操作系统的基本特征是什么?
答:操作系统的基本特征是:并发、共享、异步性和抽象性。
6.何谓脱机I/O和联机I/O?
答:脱机I/。是指输入/输出工作不受主机直接控制.而由卫星机专门负责完成I/O,主
机专门完成快速计算任务,从而二者可以并行操作。
联机I/O是指作业的输入、调入内存及结果的输出都在CPU直接控制下进行。
7.操作系统一般为用户提供了哪三种接口?各有什么特点?
答:现代操作系统通常向用户提供如下三种类型的接口:程序接口=命令行接口和图
形用户接口。
程序接口的特点:①它是程序一级的接口,也称系统调用或者广义指令,是操作系统内
核与用户程序、应用程序之间的接II;②它位于操作系统内核的最高层,并且只能在核心态
下执行;③在UNIX/Linux系统中,系统调用以C函数的形式出现。
命令行接口的特点:①它是操作系统与用户的交互界面:②在提示符之后用户从键盘上
输入命令,命令解释程序接收并解释这些命令,然后把它们传递给操作系统内部的程序,执
行相应的功能;③这些命令及其解释程序都在用户态下运行,需要操作系统内核提供服务;
④在UNIX/Linux系统中,称其为shell。
图形用户接口通常称作图形用户界面(简称图形界面)。其特点是:①它是用户上机最宜
观、方便的工具;②利用鼠标、窗I」、菜单、图标等图形界面工具,可以有效地使用系统服
务和各种应用程序及实用工具;③它是核外的用户接口程序,在用户态下运行。
8.操作系统主要有哪些类型的体系结构?
答:一般说来,操作系统主要有以下体系结构,即:单体结构,一层次结构虚拟机结
构、微内核结构和客户■服务器结构。
9.多道程序设计的主要特点是什么?
答:多道程序设计的主要特点是:
①多道-内存中同时存放两道或两道以上的程序,它们共享CPU和系统中的其他资源。
②宏观上开行一在一个时间段内,多个作业都在同时运行。
③微观上串行一在某一个时刻,只有一道作业真正在CPU上运行,即:各作业都在管
理程序的控制下在一台计算机上交替地执行。
10.系统初启的一般过程是什么?
答:一般初启过程分为硬件检测、加载引导程序、列始化内核和实现用户登录等阶段。
11.在计算机系统中操作系统处于什么地位?
答:操作系统是裸机之上的第一层软件,它只在核心态模式下运行,受硬件保护,与硬
件关系尤为密切。操作系统是整个计算机系统的控制管理中心,其他所有软件都建立在操作
系统之上。操作系统对它们既具有支配权力,又为其运行建造必备环境。
12.什么是处理机的核心态和用户态?为什么要设置这两种不同的状态?
答:当执行操作系统程序时,处理机处于核心态。它有较高的特权,可以执行所有的指
令,包括一般用户程序中不能使用的特权指令,从而能对所有寄存器和内存进行访问、启动
I/O操作等。
用户程序是在用户态下执行,它的权限较低,只能执行指令集中非特权指令。
设置这两种不同状态的目的是为了保护操作系统程序(特别是其内核部分),防止受到
用户程序的损害。
13.下列哪些指令应该只在核心态下执行?
①屏蔽所有中断
②读时钟日期
③设置时钟日期
@改变指令地址寄存器的内容
⑤启动打印
⑥清内存
答:只在核心态下执行的指令有:①屏蔽所有中断。③设置时钟日期。⑤启动打印机。
⑥清内存。
14.设计实时操作系统必须首先考虑的因素是什么?
答:实时系统的一个重要特征就是对时间的严格限制和要求。实时系统的首要任务是调
度一切可利用的资源完成实时控制任务,其次才着眼F提高计算机系统的使用效率。所以,
设计实时操作系统必须首先考虑处理各种事件的时间限制。
15.你熟悉哪些操作系统?想一想你在使用计算机过程中,操作系统如何提供服务?
答:(个人发挥)通常,大家会熟悉以下操作系统:Windows,UNIX或Linux
使用计算机过程中,操作系统为用户提供的服务包括:命令和数据输入/输出的管理,
内存的分配,用户文件的管理,CPU的分配,设备管理等。
16.设计操作系统时采用层次结构有什么好处?
答:①结构关系清晰,提高系统的可靠性和安全性。②各层模块的功能明确,提高系统
的可扩充性和可移植性。③各层间具有单向依赖性,增强系统的可维炉性。④符合软件工程
的思想,便于实施研制开发。
17.一个分层结构的计算机系统由裸机,用户,CPU调度和P、V操作,文件系统,作业
管理,内存管理,设备管理,命令管理等部分组成。试按层次结构的原则从外至内将它们重
新排列。
答:按层次结构的原则从外至内重新排列的顺序应是:用户,命令管理,作业管理,文
件系统,内存管理,设备管理,CPU调度和P、V操作,裸机。
18.UNIX系统属于哪和类型的操作系统?其核心结构是怎样的?
答:UNIX是当代最著名的多用户、多进程、多任务分时操作系统。
UNIX系统可分为三层:靠近硬件的底层是内核,即UNIX操作系统常驻内存部分;核
心外的中间层是shell层;最高层是应用层。
UNIXS_5(BPsystemV)的核心结构如本书图1-14所示(略)。
19.采用虚拟机结构的操作系统其主要优点和缺点是什么?
答:虚拟机结构的操作系统其主要优点是:①实现对裸机的更用,可以有多个不同的操
作系统运行在同一物理硬件机器之上;②提供一个比裸机有更方便扩展界面的计算机;③支
持多道程序处理能力。④多个不同操作系统的应用程序可以同时运行在同•裸机之上,是研
究操作系统技术的理想平台。
其主要缺点是:①实现比较困难。要实现对底层硬件所有特性的完全模拟是相当困难的。
②由于应用程序运行在各自的操作系统之上,因此,系统运行性能受到影响。
20.采用微内核模式设计系统的主要优点是什么?
答:①精减核心的功能,提供了一种简单的高度模块化的体系结构,提高了系统设计及
使用的灵活性。②可移植性好。所有与具体机器特征相关的代码,全部隔离在微内核中。③
可伸缩性好。操作系统能方便地进行定制、犷充或缩减,以适应硬件的快速更新和应用需求
的不断变化。④实时性好。微内核可以方便地支持实时处理。⑤提供多线程机制,支持多处
理器的体系结构和分布式系统及计算机网络。⑥系统安全性好。传统的操作系统将安全性功
能建立在内核之外,因而它并不是很安全的。而微内核则将安全性作为系统内特性来进行设
计。
进程程序
进程是动态概念程序是爵态概念
进程具仃并发性.宏观上同时运行程序本身具有顺序性,程序的并发执行是通过进程实现的
进程具有独立性,是一个能独立运行的单位,是系统资源分
程序本身没有此特性
配的基本单位,是运行调度的基本单位
程序和进程无一一对应关系,一个进程可顺序执行多个程序一个程序可由多个进程共用
进程异步前进,公相互制约程序不具备此特性
然而,进程与程序之间存在密切关系,进程的功能是通过程序的运行得以实现的,进程
活动的主体是程序。进程不能脱离开具体程序而独自存在。
进程的基本特征是:①动态性②并发性③调度性④异步性⑤结构性。
3.PCB的作用是什么?它是怎样描述进程的动态性质的?
答:PCB是进程组成中最关键的部分。每个进程有唯一的进程控制块;操作系统根据PCB
对进程实施控制和管理,进程的动态、并发等特征是利用PCB表现出来的;PCB是进程存在
的唯一标志。
PCB中有表明进程状态的信息,该进程的状态包括运行态、就绪态和阻塞态,它利用状
态信息来描述进程的动态性质。
4.进程的基本状态有哪几种?试描绘进程状态转换图。
答:(见本书P39)
5.进程进入临界区的调度原则是什么?
答:(见本书P65-66)
6.用如图2-38所示的进程状态转换图能够说明
有关处理机管理的大量内容。试回答:
①什么事件引起每次显著的状态变迁?
②下述状态变迂因果关系能否发生?为什
么?
(A)2一1(B)3.2(C)4Tl
答:①就绪一运行:CPU空闲,就绪态进程被
调度程序选中。
运行一阻塞运行态进程因某种条件未满足而放弃对CPU的占用,如等待读文件。
阻塞一就绪阻塞态进程所等待的事件发生了,例如读数据的操作完成。
运行f就绪正在运行的进程用完了本次分配给它的CPU时间片。
②下述状态变迁:
(A)2-1,可以。运行进程用完了本次分配给它的时间片,让出CPU,从就绪队列中
选一个进程投入运行。
(B)3~2,不行。任何时候一个进程只能处于一种状态,它既然由运行态变为阻定态,
就不能再变为就绪态。
(C)4-l,可以。某一阻塞态进程等待的事件出现了,而且此时就绪队列为空,该进
程进入就绪队列后马上又被调度运行。
7.PCB表的组织方式主要有哪几种?分别简要说明。
答:(见本书P43-44)
8.简述信号量的定义和作用。P、V操作原语是如何定义的?
答:信号量是协调相关进程活动的一种设施。一般信号量是由两个成员组成的数据结构:
一个成员是整型变量,表示该信号量的值;另一个是指向PCB的指针。当多个进程都等待
同一信号量时,它们就排成一个队列,山信号量的指针项指出该队列的头。
利用信号量和相应操作可以解决多个进程的互斥和同步问题。
(有关P、v操作原语的定义,参见本书P69-70。)
9.N个进程共享某一临界资源,则互斥信号量的取值范围为o
a.0~1b.-l-0c.1--(N-I)d.0--(N-l)
答:co由于互斥信号量的初值是1,而另一极端情况是某一个进程在访问临界资源,
其余NT个进程处于阻塞状态,此时信号量的值为-(NT)。
10.简述线程与进程的关系。
答:(参见本书P61;
11.实现线程主要由哪两种方式?各有何优缺点?
答:(参见本书P61-62)
12.管程由哪些部分组成?有什么基本特性?
答:(参见本书P86)
13.计算机系统中产生死锁的根本原因是什么?
答:产生死锁的根本原因是资源有限且操作不当。
14.产生死锁的四个必要条件是什么?一般对待死钺的方法有哪三种?
答:发生死锁的四个必要条件是:互斥条件、不可抢占条件、占有且申请条件和环路等
待条件。
解决死锁的一般方法有:死锁的预防、死锁的避免、死锁的检测与恢复等二种。
15.死锁预防的基本思想是什么?
答:死锁预防的基本思想是:要求进程申请资源时遵循某种协议,从而打破产生死锁的
4个必要条件中的一个或几个(互斥条件不能被破坏),保证系统不会进入死锁状态。
16.死锁避免的基本思想是什么?
答:死锁避免的基本思想是:对进程所发出的每一个申请资源命令加以动态地检查,并
根据检查结果决定是否进行资源分配。就是说,在资源分配过程中若预测有发生死锁的可能
性,则加以避免。这种方法的关键是确定资源分配的安全性。
17.什么是进程的安全序列?何谓系统是安全的?
答:(参见本书P93)
18.死锁预防的有效方法是什么?死锁避免的著名算法是什么?
答:死锁预防的有效方法是:资源有序分配策略一分类编号,按序分配。
死锁避免的著名算法是银行家算法。
19.死锁、"饥饿’’和活锁之间的主要差别是什么?
答:①死锁是一种僵局,在无外力干预下,处于死锁状态的全部进程都不能前进,即它
们都处于阻塞态,可能造成整个系统瘫痪;而现饥饿时系统照常运行,只是某个或某几个
进程永远也不能得到所需的全部服务;处于活锁的进程是在不断的改变状态,并未被封锁,
是可以“活动”的,活锁有可能自行解开,死锁则不能。
②造成死锁的根本原因是资源有限且使用不当;造成饥饿的原因是资源分配策略或调度
策略不合适,如果采用先来先服务的资源分配策略就可以避免饥饿;造成活锁的原因是进程
在轮询地等待某个不可能为真的条件为真。
③发生死锁时,一定至少有一个资源被无限期地占用而得不到释放;而饥饿出现时,系
统中的每个资源占有者都在有限的时间内释放它所占用的资源。活锁是忙式等待,占用CPU
且不会主动让出CPU。
20.在生产者-消费者问题中,如果对调生产者(或消费者)进程中的两个P操作和两
个V操作的次序,会发生什么情况?试说明之。
答:在生产者-消费者问题中,如果对调生产者进程中的两个P操作,形如:
生产者进程Producer:
while(TRUE){
P(mutcx);
P(empty);
V(mutex);
V(full);
)
当缓冲区全满时,只要有一个生产者进程试图进入临界区,并在empty信号量上阻塞,
所有消费者进程都无法进入自己的临界区(在信号量mutex上阻塞),从而无法使该生产者
进程醒来。于是,所有生产者进程和消费者进程都无限期地处于阻塞状态,从而出现死锁。
然而,如果对调生产者进程中的两个V操作,并不出现任何故障,只是从进程退出临
界区的角度考虑,应越快越好。
如果对调消费者进程中的两个P操作,也会产生同群的死锁问题。
21.高级进程通信有哪几类?各自如何实现进程间通信?
答:(参见本书P78-79)
22.是否所有的共享资源都是临界资源?为什么?
答:不足所有的共享资源都是临界资源。因为临界资源是一次仅允许一个进程使用的资
源,而系统中有很多资源可以让多个进程同时使用,例如硬盘、正文段等。
23.系统中只有一台打印机,有三个用户的程序在执行过程中都要使用打印机输出计算
结果。设每个用户程序对应一个进程。问:这三个进程间有什么样的制约关系?试用P、V
操作写出这些进程使用打印机的算法。
答:因为打印机是一种临界资源,所以这三个进程只能互斥使用这台打印机,即一个川
户的计算结果打印完之后,另一个用户再打印。
设三个进程分别为A,B和C,如图1所示。设一个互斥信号量为mutex,其初值为1。
A进程B进程C进程
P(mutex)P(mutex)P(mutex)
使用打印机使用打印机使用打印机
V(mutex)V(mutcx)V(mutcx)
图I
24.判断下列同步问勉的算法是否正确?若有错,请指出错误原因并予以改正。
①设A,B两个进程共用一个缓冲区Q,A向Q写入信息,B从Q读出信息,算法框
图如图2-39所示。
②设A,B为两个并发进程,它们共享一个临界资源。其运行临界区的算法框图如图
2-40所示。
进程A进程B进程A进程B
信号费SLS2的初值均为0
信号量$的初值为0
图2-39进程A,B的算法框图图2-40两个并发进程临界区的算法框图
答:①这个算法不对,因为A,B两进程共用一个缓冲区Q,如果A先运行,且信息数
量足够多,那么缓冲区Q中的信息就会发生后面的冲掉前面的,造成信息丢失,B就不能
从Q中读出完整的信息。
改正:A,B两进程要同步使用缓冲区Q。为此,设立两个信号量。empty—缓冲区Q
为空,初值为1。full——缓冲区Q为满,初值为0。
算法框图如图2所示。
②这个算法不对。因为A,B两个进程是并发的,它们共享一个临界资源,所以二者应
互斥地使用该临界资源,在进入临界区时不存在A先B后的时序关系,而是哪个进程先到
•步就先进入自口的临界区。
改正:A,B两个进程应互斥地进入临界区。为此,设立一个信号量:互斥信号量为mutex,
其初值为算法框图如图3所示。
A进程B进程A进程B进程
P(empty)P(full)P(mutex)P(mutex)
向Q写入植息
从Q中读出信息临界区代码CSa临界区代码CSb
V(fiill)V;empty)V(mutex)V(mutex)
图2图3
25.设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。卡片机
把一叠卡片逐一揄入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上打印
结果。问:
①系统要设几个进程来完成这个任务?各自的工作是什么?
②这些进程间有什么样的相互制约关系?
③用P、V操作写出这些进程的同步算法。
答:①如图4所示,系统可设三个进程来完成这个任务:R进程负责从卡片输入机上读
入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,
之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。
R进程C进程P进程
P(Blempty)P(Blfull)P(B2full)
输入信息写入缓冲区Bl从Bl中取出信息从B2中取出信息进行打印
V(Blfull)V(Blempty)V(B2cmpty)
P(B2empty)
加工信息
结果送入B2
V(B2ftill)
图4
②R进程受C进程影响,B1放满信息后R进程要等待,等到C进程将其中信息全部取
走,才能继续读入信息;C进程受R进程和P进程的约束,BI中信息放满后C进程才可从
中取出它们,且B2被取空后C进程才可将加工结果送入其中:P进程受C进程的约束,B2
中信息放满后P进程才可从中取出它们,进行打印。
③信号量含义及初值:Blfull——缓冲区BI满,初值为0。Blempty——缓冲区B1空,
初值为1。B2full——线冲区B2满,初值为0。B2empty——缓冲区B2空,初值为1。
同步算法如图4所示。
26.设有无穷多个信息,输入进程把信息逐个写入缓冲区,输出进程逐个从缓冲区中取
出信息。针对下述两种情况:
①缓冲区是环形的,最多可容纳〃个信息;
②缓冲区是无穷大的。
试分别回答下列问题:
①输入、输出两组进程读/写缓冲区需要什么条件?
②用P、V操作写出榆入、输出两组进程的同步算去,并给出信号量含义及初值。
答;(1)①输入、输出两组进程读/写缓冲区需要的条件是;
所有进程都要互斥使用缓冲区。
•所有输入进程连续写入缓冲区的个数不能超过缓冲区的总容量(n)o
•输出进程不能超前输入进程。
②设置三个信号量:
full—放有信息的缓冲区数,其初值为0。
empty——可供使用的缓冲区数,其初值为n。
mutex—互斥信号量,初值为1,表示各进程互斥进入临界区,即保证任何时候只有一
个进程使用缓冲区。
两个计数变量:in和。ut分别是输入进程和输出进程使用的计数量,衣示下面使用的缓
冲区编号,初值都是0。
输入进程:输出进程:
while(TRUE)(while(TRLE)(
P(empty);P(full);
P(mutex);P(mutex);
信息送往buffer(in):从bufiier(out)中取出信息
in=(in+1)modn;/*以n为模*/out=(out+1)»nodn;/*以n为模*/
V(mutex);V(mu.ex);
V(full);V(cmpty);
)
(2)①输入、输出两组进程读/写缓冲区需要的条件是所有进程都要互斥使用缓冲区;
输出进程不能超前输入进程。
②信号量:full——缓冲区满的情况,初值为0。mutex-----互斥信号量,初值为1。
计数器:i=0,j=0(i,j分别为输入进程和输出进程使用的缓冲区号码)。
输入进程:输出进程:
while(TRUE){while(TRUE){
P(mutex);P(full);
信息送往buffer(i);P(mutex);
i=i+l;从hif¥er(j)中取出信息;
V(mutex);j=j+l;
V(full);V(mutex);
})
27.假定一个阅览室最多可容纳100人,读者进入和离开阅览室时都必须在阅览室门口
的一张登记表上做标识(进入时登记,离开时去掉登记项),而且每次只允许一人登记或去
掉登记。问:
①应编写几个程序完成此项工作?程序的主要动作是什么?应设置几个进程?进程与
程序间的对应关系如何?
②用P、V操作写出这些进程的同步通信关系。
答:①完成此项工作可编写一个或两个程序(函数),要求:
每个读者对应一个进程。
每个读省的动作包括:
,入室前查表、登记---register()o
进入室内,阅读书籍。
,出室时删除登记项----delete()。
进程是程序的一次执行过程,程序和进程无一一对应关系。
②信号量:
S——座位情况,初值为100o
mutex----互斥使用登记表,初值为1。
下面给出两种解决方案:
第一种方案(仅一个程序)第二种方案(3个困数)
每位读者进程typedefintsemaphore;
Isemaphores=IOO:
P(S)semaphoremutex=I;
P(mutex)voidmain()
查表,登记
V(mutex)regisler():
入室,阅读rcading();
P(mutcx)dclete();
出室查表,删除登记项
V(mutex)voidregister)
V(S)(
P(S);
P(mutex);
Check_regisier();
V(mutex);
}
voiddelctc()
{
P(mutcx);
Check_delete();
V(mutex);
V(S);
)
28.在一个飞机订票系统中,多个用户共享一个数据库。各用户可以同时查询信息,若
有一个用户要订票,需更新数据库时,其余所有用户都不可以访问数据库。请用P、V操作
设计一个同步算法,实现用户查询与订票功能。要求:当一个用户订票而需要更新数据库时,
不能因不断有查询者到来而使其长时间等待。利用信号量机制保证其正常执行。
答:本题是典型的读者-写者问题。查询信息的用户是读者,订票用户是写者,并且要
求写者优先。
【解法1】读者-写者按先后顺序交叉访问数据库,如图5所示。
读者进程写者进程
P⑸P(S)
P(Src)P(Sw)
rc=rc+1更新数据库内容
iRrc==l)P(Sw)V(Sw)
V(Src)V(S)
V(S)
查询库中信息
P(Src)
iv-ic-l
if(rc==O)V(Sw)
V(Src)
图5
计数变量:rc——正在运行的查询者进程数目,初值为0。
信号量:Sw——控制订票者进程的活动,初值为1。
Src—互斥使用rc变量,初值为L
S——当订票者到达时封锁后续的读进程,初值为1。
【解法2】保证写者优先于读者,即一旦有写者到达时,则新读者要等待。
信号量:
rmutex一一当至少有一个写者到达时,阻止所有读者访问的互斥操作信号量,初值为1。
wmutex——写者间以及读者与写者间互斥操作信号量,初值为1。
x------控制rcadcount变量修改的互斥信号量,初值为1。
y------控制writecount变量修改的互斥信号量,初值为1。
z——有写者时,只允许一个读者在rmutex上排队,其他读者在信号量z上排队,初值
为1。
计数变量:
readcount-----读者计数器,初值为0。它控制对wmutex的设置。
writecount------写者数目,初值为0。它控制对rmutex的设置。
读者进程写者进程
while(TRUE){while(TRUE){
P(z);P(y);
P(rmutex);writecount++;
P(x);if(writecount==1)
iciukuun.++,P(llllUlVA),
if(readcount==1)V(y);
P(wmulex);P(wmulcx);
V(x);执行写操作
V(nnutex);V(wmutex);
Mz);p(y);
执行读操作wntccount
P(x):if(writecount==0)
readcoun:—;V(rmutex);
if(readcount==0)V(y);
V(umutex);)
V(x);
)
29.某高校计算机系开设网络课,安排了上机实习。假设机房共有2m台机器,有2n
名学生选该课,规定:
①每两个学生为一组,各占一台机器,协同完成上机实习。
②只有一组两个学生都到齐,并且此时机房有空用机器时,该组学生才能进入机房。
③上机实习由一名教师检查,检查完毕,一组学生同时离开机房。试用P、V操作模拟
上机实习过程。
答:除学生进程、教师进程外,为保证系统控制流程,需另设一个监控进程,用于控制
学生的进入和计算机的分配,如图6所示。
信号量:
student------学生到达情况,初值为0。
computer-----计算机分配情况,初值为2m。
entei-能否进入机房情况,初值为0。
finish—学生完成情况,初值为0。
check——检查工作完成情况,初值为0。
学生进程教师进程监控进程
V(student)
P(compnter)P(finish)P(student)
P(enter)P(finish)P(student)
与伙伴一起实习检查学生实习筲况V(entcr)
V(flnish)V(check)V(cntcr)
P(chcck)V(check)
V(computcr)
图6
30.用P、V操作实现本书2.6节介绍的哲学家进卷问题的第2种解法,即:仅当某哲
学家面前的左、右两支筷子均可用时,才允许他拿起筷子。
答:用P、V操作实现本书2.6节介绍的哲学家进餐问题的第2种解法,即:仅当某哲
学家面前的左、右两支筷子均可用时,才允许他拿起筷子。
设立一个整型数组state,用来保存各位哲学家的状况:进餐(EATING)、思考
(THINKING)或者饥饿(HUNGRY,想拿筷子)。一位哲学家仅当其左右邻座都不进餐
时,他才能进餐。第i位哲学家的两位邻座由宏LEFT和RIGHT定义:如果i是2,则LEFT
是1,RIGHT是3。
程序中使用一个信号量数组S,每位哲学家对应其口一个元素(初值为0)。如果感到
饥饿的哲学家所用的筷子正被别人占用着,他就等待(阻塞)。注意,每个进程都从主代码
philosopher开始执行。
#defineN5
#defineLEFT(i+N-l)%N
#defineRIGHT(i+l)%N
#dcfincTHINKING0
#defineHUNGRYI
#defineEATING2
typedefstruct{/*定义结构型信号量*/
intvalue;
structPCB*list;
}semaphore;
intstate[N];
semaphoremu(ex=I;/*互斥进入临界区*/
semaphores[N];/*每位哲学家一个信号量*/
voidphilosopher(inti)
while(TRl'E){
think();/*哲学家在思考问题*/
take_chopstick(i);/*拿到两根筷子或者等待*/
eat();/*进餐*/
put_chcpstick(i);/*把筷子放回原处*/
}
}
voidlake_chopsuck(inti)
[
P(mutex);
state[i]=HLNGRY;
test(i);/*试图拿两根筷子*/
V(mutex);
P(s[iJ);
voidput_chopstick(inti)
{
P(mutex);
state[i]=THINKING;
tcsKLEFT):/*查看左邻,现在能否进餐*/
tcst(RIGHT);/*查看右邻,现在能否进餐*/
V(mu(ex);
I
voidtest(inti)
{
if(state[i]==HUNGRY&&state[LEFT]!=EATING&&sta(e[RIGHT]!=EATING){
state(il=EATING;
V(s[i]):
)
31.某个计算机系统有10台可用磁带机。在这个系统上运行的所有作业最多要求4台
磁带机。此外,这些作业在开始运行的很长一段时间内只要求3台磁带机;它们只在自己工
作接近结束时才短时间地要求另一台磁带机。这些作业是连续不断地到来的。
①若作业调度策略是静态分配资源,满足后方可运行。那么,能同时运行的最大作业
数是多少?作为这种策略的后果,实际上空闲的磁带机最少是几台?最多是几台?
②若采用银行家算法将怎样进行调度?能够同时运行的最大作业数足多少?作为其
后果,实际上空闲的磁带机最少和最多各是多少台?
答:①能同时运行的最大作业数是2,实际上空闲的磁带机最少是2台,最多是4台。
②作业对磁带机资源提出请求时,系统判断:若分配的话,系统是否仍处于安全状态。
在3个作业各分到3台磁带机的情况下,系统仍然是安全的。所以,能同时运行的最大作业
数是3,实际上空闲的磁带机最少和最多台数各是0和I。
32.设有三个进程P1,P1,P3,各按如下所示顺序执行程序代码:
进程P1进程P2进程P3
P(s1)P(s3)P(s2)
P(s2)P(s1)P(s3)
V(s1)V(s3)V(s2)
V(s2)V(s1)V(s3)
其中s1,s2,s3是信号量,且初值均为1.
在执行时能否产生死锁?如果可能产生死锁,请说明在什么情况下产生死锁?并绐出一
个防止死锁产生的修改办法。
答:可能产生死锁。因为当进程P1执行P(sl),进程P2执行P(s3),进程P3执行P(s2)
后,三个资源(即信号量sl,s2,s3)被三个进程分别占用,接下来任何一个进程都无法得到
所申请的资源,于是都无限地循环等待,造成死锁。
一个防止死锁产生的办法是:进程申请信号量时,按序申请。如图7所示
进程Pl进程P2进程P3
II1
P(sl)P(sl)P(s2)
P(s2)P(s3)P(s3)
V(sl)V(sl)V(s2)
V(s2)V(s3)V(s3)
图7
33.考虑由〃个进程共享的具有m个同类资源的系统,如果对/=1,2,…,n,有Need,,
>0,并且所有最大需求量之和小于府〃,试证明:该系统不会产生死锁。
答:设每个进程对共享资源的最大需求量为max(0VmaxW〃?),由于每个进程最多申请
使用max个资源,在最坏的情况下,每个进程都得到(max-1)个资源,并且都需要申请最后
一个资源v此时,系统剩余的资源为只要系统还有一个资源可用,就可以使
其中的•个进程获得所需的全部资源。进而该进程运行结束后,释放出它占用的资源,供其
他进程使用,从而所有的进程都可以运行完成。就是说,当〃L〃(max-l)2l时,系统不会
发生死锁。整理该不等式,得到如下关系:〃XmaxW(m+1),所以,〃XmaxWm+〃。从而
证明〃个进程所有最大需求量之和小于时,该系统不会产生死锁。
34.设系统中有三种类型的资源(4B,。和五个进程(月,月,月,PA,只),4资源的
数量为17,8资源的数量为5,C资源的数量为20。在心时刻系统状态如表270所示。系
统采用银行家算法来避免死锁。
①7;时刻是否为安全状态?若是,请给出安全序列。
②在石时刻,若进程月请求资源(0,3,4),能否实现资源分配?为什么?
③在②的基础上,若进程月请求资源(2,0,1),能否实现资源分配?为什么?
④在③的基础上,若进程月请求资源(0,2,0),能否实现资源分配?为什么?
表2-10万时刻系统状态
最大瓷箱需求量已分配波源数量系统利余资源数量
进程
ABCABcABC
p、559212233
536402
p4011405
A425204
P424314
答:①71)时刻是安全状态,因为存在一个安全序列{〃4,P5,P1,P2,P3}。
②不能实现资源分配,因为所剩余的资源数量不够。
③可以分配。当分配完成后,系统剩余的资源向量为(0,3,2),这时,仍可找到一个
安全序列(PA,P5,pi,P2,P3}o
④不能分配。如果分配的话,则系统剩余的资源向最为(0,I,2),这时无法找到一个
安全序列c
习题3
1.解释以下术语:作业调度、进程调度、周转时间、平均周转时间、响应时间、中断、
中断源、中断请求、中断向量
答:作业调度一是根据一定的算法,从输入的一批伶业中选出若干个作业,分配必要的
资源,如内存、外设等,为它建立相应的用户作业进程和为其服务的系统进程(如输入、输
出进程),最后把它们的程序和数据调入内存,等待进程调度程序对其执行调度,并在作业
完成后作善后处理工作。
进程调度一是根据一定的算法将CPU分派给就绪队列中的一个进程。
周转时间一从作业提交到作业完成的时间间隔。
平均周转时间一系统中n个作业周转时间的算术平均值。
响应时间一从提交第一个请求到产生第一个响应所用的时间。
中断--是指CPU对系统发生的某个事件作出的一种反应,CPU暂停正在执行的程序,保
留现场后自动地执行相应的处理程序,处理完该事件后,如被中断进程的优先级最高,则返
回断点继续执行被“打断”的程序。
中断源一引起中断的事件或发出中断请求的来源称为中断源。
中断请求一中断源向CPU提出进行处理的请求。
中断向量一中断向量表的表项,通常包括相应中断处理程序入口地址和中断处理时处理
机状态字PSW。
2.处理机调度的主要目的是什么?
答:处理机调度的主要目的就是为了分配处理机,处理机分配由调度和分派两个功能组
成。
3.高级调度与低级调度的主要功能是什么?为什么要引入中级调度?
答:高级调度的主要力能是根据一定的算法,从输入的一批作业中选出若干作业,分配
必要的资源,如内存、外设等,为它建立相应的用户作业进程和为其服务的系统进程(如输
入/输出进程),最后把它们的程序和数据调入内存,等待进程调度程序对其执行调度,并在
作业完成后做善后处理工作。
低级调度的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。
为了使内存中同时存放的进程数目不至于太多,有时需要把某些进程从内存移到外存
上,以减少多道程序的数目,为此设立了中级调度。引入中级调度的主要目的是为了提高内
存的利用率和系统吞吐量,它实际上就是存储管理中的对换功能。
4.处理机调度一般分为哪三级?其中哪一级调度必不可少?为什么?
答:处理机调度般分为三级调度:高级调度(又称作业调度)、中级调度和低级调度
(又称进程调度)。
其中,进程调度必不可少。
CPU是计算机最主要的资源。进程只有在得到CPU之后才能真正活动起来,所有就绪进
程经由进程调度才能获得CPU的控制权。实际上,进程调度完成一台物理的CPU转变成多台
虚拟(或逻辑)的CPU的工作;进程调度的实现策略往往决定了操作系统的类型,其算法优
劣直接影响整个系统的性能。
5.作业在其存在过程中分为哪四种状态?
作业在其存在过程中分为提交、后备、执行和完成4种状态。
6.在OS中,引起进程调度的主要因素有哪些?
答:一般说来,当发生以下事件后要执行进程调度:正在运行的进程任务完成,或等待
资源,或运行到时,或核心发现系统中“重新调度”标志被置上。
7.作业调度与进程调度二者间如何协调工作?
答:作业调度从外存的后备队列中选择一批作业调入内存,为它们创建进程,这些进程
被送入就绪队列。进程调
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年仓储机械叉车租用协议
- 2025年公共自行车租赁系统建设合同
- 2025年中学教学楼扩建工程合同
- 2025年农业高效生产承包协议
- 2025年企业网络设备安装与维护工程协议书
- 2025年制造商与微商共同发展策划协议
- 2025年专业咨询服务委托合同模板
- 2025年专项冷藏车辆租凭协议
- 2025年花店销售业务合同
- 2025年上海货运资格证考试有哪些项目
- 边坡抗滑桩计算
- 【新版本】华为 H12-711 V4.0 HCIA-Security 认证华为安全题库(含答案)
- 村卫生室2023年度绩效考核评分细则(基本公共卫生服务)
- 关联公司合作合同
- 2022人脸识别安全白皮书
- 【建模教程】-地质统计学矿体建模简明教材
- DB23T 2656-2020桦树液采集技术规程
- 重源煤矿 矿业权价款计算书
- PSM工艺安全管理
- GB/T 21872-2008铸造自硬呋喃树脂用磺酸固化剂
- 上海市中小学生语文学业质量绿色指标测试
评论
0/150
提交评论