操作系统经典复习资料_第1页
操作系统经典复习资料_第2页
操作系统经典复习资料_第3页
操作系统经典复习资料_第4页
操作系统经典复习资料_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1什么是操作系统?它在计算机中的地位如何?其功能有哪些? 参考答案 :操作系统是一组控制和管理计算机硬件和软件资源, 合理地对各类作业进行 调度,以及方便用户使用的程序的集合。 操作系统 是计算机系统中最靠近硬件的一层软件, 它支持和管理硬件, 与具体的应 用领域无关, 在计算机系统的所有软件中, 操作系统是基础, 其它软件只有在操作系统 的支持下,才能发挥作用。 它是计算机硬件和其它软件以及计算机用户之间的联系纽带, 如果没有操作系统,用户几乎无法使用计算机系统。 从资源管理的观点看,操作系统具有五个方面的功能:处理器管理、存储器管理、 设备管理、 文件管理和提供用户接口。这五大部分相互配合

2、, 协调工作,实现计算机系 统的资源管理、控制程序的执行、并为用户提供方便的使用接口。 2操作系统有哪几种类型?各有什么特点? 参考答案 :操作系统是随着计算机硬件技术的不断发展和用户的使用要求的提高而从无 到有不断完善起来的,其主要类型及其特点如下: ( 1) 批处理操作系统:具有很高的资源利用率和系统吞吐量,但作业的平均周转时 间较长,也没有交互性。 ( 2) 分时操作系统:具有多路性、独立性、及时性和交互性特征,而交互性是其最 重要的特征之一。 ( 3) 实时操作系统:实时操作系统通常是专用的,具有高及时性和高可靠性,但交 互性较弱。 ( 4) 微机操作系统:是配置在微型计算机上的操作系

3、统,可以是单任务或多任务, 也可以是单用户或多用户系统。 ( 5) 网络操作系统:是配置在网络中的操作系统,用于管理网络通信和共享资源, 协调各计算机上任务的运行,并向用户提供统一的、有效方便的网络接口。 ( 6) 分布式操作系统:是配置在分布式处理系统上的操作系统,其最基本的特征是 能实现处理上的分布,而处理分布的实质是资源、功能、任务和控制都是分布 的。 ( 7) 嵌入式操作系统:通常具有以下特点: (1)操作系统规模一般较小。因为通常 相应硬件配置较低,而且对操作系统提供的功能要求也不高。( 2)应用领域差 别大。对于不同的应用领域其硬件环境和设备配置情况有明显得差别。 3.现有以下计算

4、机的应用场合,请为其选择适当的操作系统:航空航天,核变研 究; 国家统计局数据处理中心;机房学生上机学习编程; 锅炉炉温控制; 民航 机票订购系统; 两个不同地区之间发送电子邮件; 产品组装流水线。 参考答案: 航空航天,核变研究:配置实时操作系统;国家统计局数据处理中 心:配置批处理操作系统; 机房学生上机学习编程:配置分时操作系统; 锅炉炉 温控制:配置实时操作系统;民航机票订购系统:配置实时操作系统;两个不同 地区之间发送电子邮件: 配置网络操作系统; 产品组装流水线: 配置实时操作系统。 4.操作系统有哪些特征?其最基本的特征是什么?它们之间有什么联系? 参考答案 :不同操作系统的特征

5、各不相同, 但都具有以下几个基本特征: 并发性、共享 性、虚拟性和异步性。其中最基本的特征是并发和共享,它们互为存在条件。首先,共 享是以并发执行为条件, 若系统不支持程序并发执行, 则系统中将不存在资源共享; 同 时,共享也必然会影响程序的并发执行, 若资源共享不当,并发性会减弱, 甚至无法实 现。 5操作系统一般为用户提供了哪三种使用接口? 参考答案 :现代操作系统通常向用户提供以下三种类型的用户接口: ( 1) 命令接口:操作系统向用户提供一组键盘操作命令。用户从键盘上输入命令, 命令解释程序接收并解释这些命令,然后调用操作系统内部的相应程序,完成 相应的功能。 (2)程序接口:是操作系

6、统内核与应用程序之间的接口,是为应用程序在执行中访 问系统资源而设置的,通常由一组系统调用组成,每一个系统调用都是一个能 完成特定功能的子程序。系统调用只能在程序中调用,不能直接作为命令从键 盘上输入执行。 ( 3) 图形接口:这是为了方便用户使用操作系统而提供的图形化操作界面。用户利 用鼠标、窗口、菜单、图标等图形用户界面工具,可以直观、方便、有效地使 用系统服务和各种应用程序及实用工具,而不必象使用命令接口那样去记住命 令名及格式。 第二章习题: 1进程管理主要包括哪些管理功能? 参考答案: 进程管理实际上就是对处理器的管理, 因为传统的多道程序系统中, 处理器 的分配和运行都是以进程为基

7、本单位的。 主要有以下几方面的功能: 进程控制、 进程互 斥与同步、进程通信、进程调度。 2什么是进程?进程有哪些特征?其中最基本的特征是什么? 参考答案: 进程是具有一定独立功能的程序关于某个数据集合的一次运行活动, 是系统 进行资源分配和调度的一个独立单位。进程具有动态性、并发性、独立性、异步性、结 构性特征,其中最基本的特征是动态性。 3简述进程与程序的区别和联系。 参考答案: 进程与程序是两个不同的概念, 它们之间既有区别又有联系。 首先程序是构 成进程的组成部分之一,一个进程的运行目标是执行它所对应的程序,如果没有程序, 进程就失去了其存在的意义;反之, 如果没有进程, 多道程序也不

8、可能并发运行。但进 程与程序又有着本质的区别: ( 1)程序是静态概念, 本身可以作为软件资源长期保存; 而进程是程序的一次执行 过程,是动态的,有一定的生命期。 (2)进程是一个能独立运行的单位, 是系统进行资源分配和调度的基本单位, 能与 其它进程并发执行,而程序则不然。 (3)程序和进程无一一对应关系。 一个程序可由多个进程共享, 而一个进程在其运 行过程中又可顺序地执行多个程序。 例如,在分时系统中多个终端用户同时进行C 程序 编译,这样,一个 C 编译程序对应多个用户进程;而对每个用户进程来说,在进行编译 的过程中会用到预处理、词法及语法分析、代码生成和优化等几个程序模块。 ( 4)

9、 各进程在并发执行过程中存在异步性特征, 而程序本身是静态的, 没有这个特 征。 4进程有哪三种基本状态?试说明引起进程状态转换的典型原因。 参考答案: 进程有就绪状态、 执行状态、阻塞状态三种状态。引起进程发生状态转换的 典型原因: (1) 就绪T执行:处于就绪状态的进程,当进程调度程序为之分配了处理器后,该进 程便由就绪状态转换到执行状态。 (2) 执行t就绪:在分时系统中,正在执行的进程如果时间片用完则将暂停执行;在 抢占调度方式中,如有更高优先级的进程需要运行,将迫使正在运行的进程让出CPU。 (3) 执行t阻塞:正在执行的进程因发生某事件而无法执行,如等待I/O操作的完成 或未能申请

10、到所需的系统资源等,则进程转为阻塞状态。 I/O 操作已完成 (4) 阻塞t就绪:处于阻塞状态的进程,所等待的事情已经发生,如 或获得了所需的资源,则进程将转变为就绪状态。 5进程控制块的作用是什么?在进程控制块中主要包括哪些信息? 参考答案: 进程控制块,简称 PCB (Process Control Block) ,是进程实体的重要组成部 分,其中记录了用于描述进程情况及控制进程运行所需要的全部信息。通过PCB,使得原 来不能并发执行的程序, 成为能并发执行的进程。 在进程的控制和管理中, 随进程的创建而 建立PCB ;因进程的状态变化而修改 PCB的相关内容;当进程被撤销时,系统收回其P

11、CB。 可见,系统是根据 PCB 来感知进程的存在的, PCB 是进程存在的唯一标志。 不同的操作系统其 PCB所包含的信息会有些不同, 但PCB通常都应包含如下基本信息: (1) 进程标识符:系统中的每个进程都有唯一的标识符,以标识一个进程,可以用字 符串或编号表示。 ( 2)说明信息:是与进程调度有关的一些信息,包括进程所处的状态、进程优先权、 进程等待时间或已执行时间、进程阻塞原因等。 (3) 现场信息:主要是由处理器的各个寄存器中的内容组成,包括通用寄存器内容、 指令计数器的值、程序状态字内容以及用户栈指针。当执行中的进程因某种原因而暂停时, 必须将这些寄存器中的信息保存在PCB中,以

12、便当进程再次获得处理器时,能从PCB中恢 复上次断点处的现场信息而正确地继续执行。 (4) 管理信息:是进程管理和控制所需要的相关信息,包括程序和数据在内存或外存 的地址、进程同步和通信机制、资源清单(记录进程所需的除CPU 外的全部资源和已经分 配到的资源) 、进程队列的链接指针等。 6进程创建、进程撤销、进程阻塞、进程唤醒几个原语主要应完成哪些工作? 参考答案:(1)进程创建原语的功能是为新进程申请一个空白PCB,分配必要的资源, 并把新进程的相关信息填入 PCB 中,如进程名、父进程标识符、处理器初始状态、进 程状态、 进程优先级、 进程对应程序入口地址、 资源申请和分配情况等。 然后将

13、其 PCB 插入就绪队列等待进程调度。 (2) 进程撤消原语的主要功能是收回被撤消进程所占用的系统资源,包括PCB。原语 首先检查被撤消进程在系统中是否存在, 如果存在,则回收该进程占用的所有系统资源, 将其 PCB 从所在队列中移出。如果该进程还有子进程,则一并予以撤消。最后撤消其 PCB。 (3) 进程阻塞原语首先停止该进程的执行,将 CPU 中各寄存器内容填入该进程的 PCB 中,并将其状态由“执行”改为“阻塞” ,然后插入相应的阻塞队列,最后转进程调度 程序重新进行调度。 ( 4)进程唤醒原语首先将被阻塞进程的PCB 从所在阻塞队列中移出,并将其 PCB 中 的状态由“阻塞”改为“就绪

14、” ,然后插入就绪队列中等待调度。 7同步机制应遵循的四个准则是什么? 参考答案: 同步机制应遵循的四个准则是: ( 1) 空闲让进: 当无进程处于临界区时, 相应的临界资源处于空闲状态, 因而应允 许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用资源。 (2)忙则等待: 当已有进程进入临界区时, 表示相应的临界资源正被访问, 因而所 有其它试图进入相关临界区的进程必须等待,以保证诸进程互斥访问临界资源。 ( 3) 有限等待: 对要求访问临界资源的进程, 应保证该进程能在有限的时间内进入 自己的临界区,以免陷入“永远等待”状态。 ( 4) 让权等待:当进程不能进入临界区时,应立即释

15、放处理器,以免陷入“忙等” 状态。 8简述进程互斥与同步的概念。 参考答案: 多个进程之间彼此无关, 它们并不知道其它进程的存在, 但由于同处于一个 系统中, 必然存在着资源共享关系。 系统中某些资源一次只允许一个进程使用, 这类资 源称为临界资源, 许多物理设备 (如打印机、 磁带机等) 和许多软件资源 (如共享变量、 数据、表格、队列等)都属于临界资源。多个进程在共享临界资源时,必须以互斥方式 共享。 所谓进程同步是指相互合作的进程需按一定的先后顺序执行, 以顺利完成某共同 任务。具体说, 这些进程之间需要交换一定的信息, 当某进程未获得其合作进程发来的 信息之前, 该进程等待, 直到接收

16、到相关信息时才继续执行, 从而保证诸进程的协调运 行。 9信号量的 PV 操作是如何定义的?试说明信号量的 PV 操作的物理意义。 参考答案:P( S):将信号量S减1,若结果大于或等于 0,则该进程继续执行;若结 果小于 0 ,则该进程被阻塞, 并将其插入到该信号量的等待队列中, 然后转去调度另一进程。 V( S):将信号量S加1,若结果大于0,则该进程继续执行;若结果小于或等于 0, 则从该信号量的等待队列中移出一个进程, 使其从阻塞状态变为就绪状态, 并插入到就绪队 列中,然后返回当前进程继续执行。 PV操作的物理含义:信号量 S值的大小表示某类资源的数量。当S0时,其值表示当 前可供分

17、配的资源数目;当 S 0,表示可以为进程分配资源, 即允许进程进入其临界区;若 S0,表示等待队列为空;若 sw 0, 则表示等待队列中有因申请不到相应资源而被阻塞的进程,于是唤醒其中一个进程, 并将其 插入就绪队列。无论以上哪种情况,执行V操作的进程都可继续运行。 10 什么是临界资源?什么是临界区? 参考答案: 系统中某些资源一次只允许一个进程使用, 这类资源称为临界资源, 许多物 理设备(如打印机、磁带机等)和许多软件资源(如共享变量、数据、表格、队列等) 都属于临界资源。每个进程中访问临界资源的那段代码称为临界区。 11在生产者消费者问题中, 如果缺少了 V(full )或 V( em

18、pty ),或者将 P( full ) 与P ( mutex)互换位置,或者将 V (full )与V (mutex)互换位置,结果分别是什么? 参考答案:在生产者消费者问题中,如果缺少了V (full )或V ( empty),系统最终 可能进入死锁状态。将P (full )与P (mutex)互换位置,系统也可能进入死锁状态。 将V (full )与V (mutex)互换位置,系统不会出现什么问题,最多只是临界资源的释 放推迟。 12.假设有三个并发进程 P, Q, R,其中P负责从输入设备上读入信息并传送给 Q, Q 将信息加工后传送给 R, R 则负责将信息打印输出。写出下列条件的并发

19、程序: ( 1)进程 P、Q 共享一个缓冲区,进程 Q、R 共享另一个缓冲区。 (2)进程P、Q共享一个由m个缓冲区组成的缓冲池,进程Q、R共享另一个由n个 缓冲区组成的缓冲池。 参考答案:( 1) 第一步:确定进程 3 个进程 P、 Q、 R P 进程: 从输入设备上读入信息 将信息放入缓冲区 1 Q 进程: 从缓冲区 1 取出信息 将信息放入缓冲区 2 中 R 进程: 从缓冲区 2 取出信息 将信息打印输出 第二步:确定进程的同步、互斥关系 同步: P 当缓存区 1 无数据 时,才可以向缓冲区 1 写入信息 同步: Q 当 缓存区 1 有数据 时,才可以从缓冲区 1 读取信息 同步: Q

20、当 缓存区 2 无数据 时,才可以向缓冲区 2 写入信息 同步: R 当 缓存区 2 有数据 时,才可以从缓冲区 2 读取信息 第三步: 设置信号量 缓存区 1 无数据, empty1 ,初值 1 缓存区 1 有数据, full1 ,初值 0 缓存区 2 无数据, empty2,初值 1 缓存区 2 有数据, full2 ,初值 0 第四步: 用伪代码描述 begin empty1,empty2,full1,full2: semaphore; empty1 :=1; empty2 :=1; full1 :=0; full2 :=0; cobegin P ( ); Q ( ); R ( ); c

21、oend; end; process P ( ) begin L1: 从输入设备上读入信息 P( empty1 ) ; 将信息放入缓冲区 1 ; V( full1 ); goto L1 end; process Q ( ) begin L2:P ( full1 ) ; 从缓冲区 1 取出信息 ; V( empty1 ) ; P( empty2 ) ; 将信息放入缓冲区 2 ; V( full2 ); goto L2 end; process R ( ) begin L3:P ( full2 ) ; 从缓冲区 2 取出信息 ; V( empty2 ) ; 将信息打印输出 ; goto L3 ;

22、end; 2) 第一步:确定进程 3 个进程 P、 Q、 R P 进程: 从输入设备上读入信息 将信息放入缓冲池 1 中的一个空缓冲区中 Q 进程: 从缓冲池 1 中的一个非空缓冲区中取出信息 将信息放入缓冲池 2 中的一个空缓冲区中 R 进程: 从缓冲池 2 中的一个非空缓冲区中取出信息 将信息打印输出 第二步:确定进程的同步、互斥关系 同步: 同步: 同步: 同步: P 当缓冲池 1 中有空的缓冲区时,才可以向缓冲池 1 写入信息 1 读取信息 2 写入信息 2 读取信息 Q 当缓冲池 1 中有非空的缓冲区时,才可以从缓冲池 Q 当缓冲池 2 中有空的缓冲区时,才可以向缓冲池 R 当缓冲池

23、 2 中有非空的缓冲区时,才可以从缓冲池 第三步:设置信号量 缓冲池 1 中的空缓冲区的数量, emptyl,初值 m 缓冲池 1 中的非空缓冲区的数量, full1 ,初值 0 缓冲池 2 中的空缓冲区的数量, empty2,初值 n 缓冲池 2 中的非空缓冲区的数量, full2 ,初值 0 第四步:用伪代码描述 begin empty1,empty2,full1,full2: semaphore; empty1 :=m; empty2 :=n; full1 :=0; full2 :=0; cobegin P ( ); Q ( ); R ( ); coend; end; process P

24、 ( ) begin L1: 从输入设备上读入信息 ; P( empty1 ) ; 将信息放入缓冲池 1 中的一个空缓冲区中; V( full1 ); goto L1 end; process Q ( ) begin L2:P ( full1 ) ; 从缓冲池 1 中的一个非空缓冲区中取出信息 V( empty1 ) ; P( empty2 ) ; 将信息放入缓冲池 2 中的一个空缓冲区中; V( full2 ); goto L2 end; process R ( ) begin L3:P ( full2 ) ; 从缓冲池 2 中的一个非空缓冲区中取出信息 V( empty2 ) ; 将信息打

25、印输出 ; goto L3 ; end; 13.有四个并发进程:R1 , R2, W1和W2,它们共享可以存放一个数的缓冲区。 进程 R1 每次从磁盘读入一个数存放到缓冲区中,供进程 W1 打印输出;进程 R2 每次从键 盘读一个数存放到缓冲区中, 供进程 W2 打印输出。 当缓冲区满时, 不允许再向缓冲区中存 放数据;当缓冲区空时,不允许再从缓冲区中取出数据打印输出。试用PV 操作实现四个进 程的协调运行。 参考答案: 第一步:确定进程 4 个进程 R1 、R2、W1 、W2 R1 进程: 从磁盘上读入一个数 将数存放到缓冲区中 W1 进程: 将 R1 进程放进缓冲区中的数取出 打印输出 R

26、2 进程: 从键盘读入一个数 将数存放到缓冲区中 W2 进程: 将 R2 进程放进缓冲区中的数取出 打印输出 第二步:确定进程的同步、互斥关系 同步: R1 当缓存区无数据时,才可以向缓冲区写入数据 同步: R2 当缓存区无数据时,才可以向缓冲区写入数据 semaphore; 同步: W1 当缓存区中是 R1 写的数据时,才可以将数据从缓冲区中读出 同步: W2 当缓存区中是 R2 写的数据时,才可以将数据从缓冲区中读出 第三步:设置信号量 缓存区无数据 , empty,初 值1 缓存区中是 R1 写的数据, full1 , 初值 0 缓存区中是 R2 写的数据, full2 , 初值 0 第

27、四步:用伪代码描述 begin empty, full1,full2 empty :=1; full1 :=0; full2 :=0; cobegin R1 ( ); R2 ( ); W1 ( ); W2 ( ); coend; end; process R1 ( ) begin L1: 从磁盘上读入一个数; P( empty ); 将数存放到缓冲区中; V( full1 ); goto L1 end; process R2 ( ) begin L2: 从键盘上读入一个数; P( empty ); 将数存放到缓冲区中; V( full2 ); goto L2 end; process W1 (

28、 ) begin L3:P ( full1 ) ; 将缓冲区中的数取出; V( empty ); 打印输出 ; goto L3 end; process W2 ( ) begin L4:P ( full2 ) ; 将缓冲区中的数取出; V( empty ); 打印输出 ; goto L4 end; 14 设公共汽车上,司机的活动顺序是:启动车辆、正常行车、到站停车;售票员 的活动顺序是:关车门、售票、开车门。现假设初始状态为:司机和售票员都已经在车上, 汽车处于停止状态,车门处于开的状态。在汽车不断地到站、停车、行驶过程中,请用信号 量的 PV 操作实现司机与售票员之间的同步关系。 参考答案:

29、 第一步:确定进程 2个进程 Driver (司机)、Busman (售票员) Driver 进程: 启动车辆 正常行车 到站停车 Busman 进程: 关车门 开车门 第二步:确定进程的同步、互斥关系 同步:当售票员将 车门关上 后,司机才可以启动车辆 同步:当司机 到站停车 后,售票员打开车门 第三步:设置信号量 车门关上,close,初值0 到站停车,stop,初值0 第四步:用伪代码描述 begin close, stop:semaphore; close := 0; stop := 0; cobegin Driver ( ); Busman ( ); coend; end; proc

30、ess Driver ( ) begin L1: P ( close ); 启动车辆; 正常行始; 到站停车; V( stop ); goto L1 end; process Busman ( ) begin L2: 关车门; V( close ); 1=1 P( stop ); 开车门; goto L2 end; 15 哲学家进餐问题: 五位哲学家吃面条, 只有五根筷子, 每个人必须用一双筷子 才能吃面条。请用信号量的 PV 操作描述哲学家之间的关系。 参考答案: 错误解法! 第一步:确定进程 5个进程 Pi(i= 04) Pi 进程: 思考 拿起左边筷子 拿起右边筷子 吃面条 放下右边筷子

31、 放下左边筷子 第二步:确定进程的同步、互斥关系 互斥:筷子是互斥资源, 每个人都只能使用他左右的两根筷子 第三步:设置信号量 chopstick5 :表示 5 根筷子,初值 1 第四步:用伪代码描述 begin chopstick04: semaphore; chopstick04 := 1; cobegin process Pi(i=0 ,2,,4) begin 思考; P( chopsticki) ; P( chopsticki+1%5) 吃面条; V( chopsticki+1%5) V( chopsticki) ; end coend; end; 错误原因: 假如所有的哲学家都同时拿

32、起左侧筷子, 看到右侧筷子不可用, 都在等待右侧筷 子,无限期地运行,但是都无法取得任何进展,即出现饥饿,所有哲学家都吃不上饭。 解决方案: 1、至多只允许四个哲学家同时进餐 ,以保证至少有一个哲学家能够进餐,最终总会释放出他 所使用过的两支筷子 ,从而可使更多的哲学家进餐。 2、规定奇数号的哲学家先拿起他左边的筷子,然后再去拿他右边的筷子 ;而偶数号的哲学家 则相反 .按此规定 ,将是 1,2号哲学家竞争 1号筷子 ,3,4号哲学家竞争 3号筷子 .即五个哲学 家都竞争奇数号筷子 ,获得后 ,再去竞争偶数号筷子 ,最后总会有一个哲学家能获得两支筷 子而进餐。 而申请不到的哲学家进入阻塞等待队

33、列, 则先申请的哲学家会较先可以吃饭, 因此不会出现饿死的哲学家。 3、将拿筷子的操作做成原子操作,即当一个哲学家正在拿筷子的时候,其它的哲学家不能 动筷子,当他那好筷子开始吃饭的时候,其它哲学家才可以拿筷子。 这里给出正确解决方案中的第 1 种方案: 解: 第一步:确定进程 5个进程Pi(i= 04) Pi 进程: 思考 拿起左边筷子 拿起右边筷子 吃面条 放下右边筷子 放下左边筷子 第二步:确定进程的同步、互斥关系 互斥:筷子是互斥资源, 每个人都只能使用他左右的两根筷子 同步:只能有四个人同时吃饭 第三步:设置信号量 chopstick5 :表示 5 根筷子,初值 1 num:表示允许吃

34、面的人的个数,初值4 第四步:用伪代码描述 begin chopstick04 : semaphore; num : semaphore; chopstick04 := 1; num := 4; cobegin process Pi(i=0 ,2,,4) begin 思考; P (num); P( chopsticki) ; P( chopsticki+1%5) ; 吃面条; V( chopsticki+1%5) ; V( chopsticki) ; V (num); end coend; end; 16系统中只有一台打印机,有三个进程在运行中都需要使用打印机进行打印输 出,问:这三个进程间有

35、什么样的制约关系?试用信号量的 PV 操作描述这种关系。 参考答案: 由于打印机是临界资源,三个进程共享临界资源,是互斥关系。 为临界资源设置互斥信号量S,初始值为1: begin S : Semaphore; S := 1; cobegin proceSS Pi(i=0,1,2) begin 其他工作; P (S); 打印; V (S); end coend; end; 17根据例 2.5,把题目修改为以下几种情况,请用 PV 操作实现他们之间的同步 关系: ( 1 )桌上一个盘子,只能放一只水果。爸爸放苹果,妈妈放桔子,儿子只吃桔子,女 儿只吃苹果。 (2)桌上一个盘子,只能放一只水果。爸

36、爸放苹果,妈妈放桔子,儿子吃桔子、苹果。 参考答案: 第一步:确定进程 4 个进程 Father (爸爸)、Mother (妈妈)、Son (儿子)、Daughter (女儿) Father 进程: 将苹果放入盘中 Mother 进程: 将桔子放入盘中 Son 进程: 从盘中取出桔子 吃桔子 Daughter 进程: 从盘中取出苹果 吃苹果 第二步:确定进程的同步、互斥关系 同步: Father 当盘中无水果时,才可以将苹果放入盘中 同步: Mother 当盘中无水果时,才可以将桔子放入盘中 同步: Son 当盘中有桔子时,才可以从盘中取出桔子 同步: Daughter 当盘中有苹果时,才可以

37、从盘中取出苹果 第三步:设置信号量 盘中无水果,Sp,初值1 盘中有桔子,So,初值0 盘中有苹果,Sa,初值0 第四步:用伪代码描述 begin Sp,So,Sa : semaphore; Sp :=1; So :=0; Sa :=0; cobegin Father ( ); Mother ( ); Son ( ); Daughter ( ); coend; end; process Father ( ) begin L1: P(Sp); 将苹果放入盘中; V (Sa); goto L1; end; process Mother ( ) begin L2: P(Sp); 将桔子放入盘中; V

38、 (So); goto L2; end; process Son ( ) begin L3: P( So) ; 从盘中取出桔子; V(Sp ) 吃桔子; goto L3 ; end; process Daughter ( ) begin L4: P( Sa) ; 从盘中取出苹果; V(Sp ) 吃苹果; goto L4 ; end; 2) 第一步:确定进程 3个进程Father (爸爸)、Mother (妈妈)、Son (儿子) Father 进程: 将苹果放入盘中 Mother 进程: 将桔子放入盘中 Son 进程: 从盘中取出水果(桔子或苹果) 吃水果(桔子或苹果) 第二步:确定进程的同步

39、、互斥关系 同步:Father当盘中无水果时,才可以将苹果放入盘中 同步: Mother 当盘中无水果时,才可以将桔子放入盘中 同步: Son 当盘中有水果(桔子或苹果)时,才可以从盘中取出水果 第三步:设置信号量 盘中无水果,empty,初值1 盘中有水果(桔子或苹果) , full ,初值 0 第四步:用伪代码描述 begin empty, full: semaphore; empty:=1; full :=0; cobegin Father ( ); Mother ( ); Son ( ); coend; end; process Father ( ) begin L1: P ( emp

40、ty ) ; 将苹果放入盘中; V ( full ); goto L1; end; process Mother ( ) begin L2: P ( empty ) ; 将桔子放入盘中; V ( full ); goto L2; end; process Son ( ) begin L3: P ( full ) ; 从盘中取出水果 ; V (empty ) ; 吃水果 ; goto L3 ; end; 18有一个阅览室,共有 100 个座位。读者进入阅览室时必须在入口处进行登记; 离开阅览室时必须进行注销。试用 PV 操作描述读者进入 /离开阅览室的同步与互斥关系。 参考答案: 第一步:确定进

41、程 可以进入阅览室的读者可以有很多,这里设为n即 n个Reader (读者)进程 Reader 进程: 登记 进入阅览室 读书 离开阅览室 注销 第二步:确定进程的同步、互斥关系 同步:当 教室内有空座位 时,读者才可以登记,并进入阅览室 互斥:同时 只能有一个读者在入口处进行登记 互斥:同时 只能有一个读者在出口处进行注销 第三步:设置信号量 教室内空座位数量,seat,初值100 为入口处进行登记设置互斥信号量Sin,初值 1表示当前可用 为出口处进行注销设置互斥信号量Sout,初值1,表示当前可用 第四步:用伪代码描述 begin Sin, Sout, seat: semaphore;

42、seat :=100; Sin := 1; Sout := 1; cobegin process Reader-i (i = 1,2,n ); begin P(seat); P(Sin); 登记 ; V(Sin); 进入阅览室 ; 读书 ; 离开阅览室 ; P(Sout); 注销 ; V(Sout); V( seat ) ; end coend; end; 19某工厂有一个可以存放设备的仓库,总共可以存放 10 台设备。生产的每一台 设备都必须入库, 销售部门可从仓库提出设备供应客户。 设备的入库和出库都必须借助运输 工具。 现只有一台运输工具, 每次只能运输一台设备。 请设计一个能协调工作的

43、自动调度管 理系统。 参考答案: 第一步:确定进程 可以为入库(Pin)和出库(Pout)各设置一个进程 Pin 进程: 生产了一台设备 使用运输工具入库 Pout 进程: 使用运输工具出库 提出设备供应客户 第二步:确定进程的同步、互斥关系 同步:当 仓库中有空余位置存放设备 时,设备才可以入库 同步:当 仓库中有存放的设备 时,设备才可以出库 互斥: 运输工具 是临界资源,要互斥访问 第三步:设置信号量 仓库中有空余位置数量, empty ,初值 10 仓库中有存放的设备数量, full ,初值 0 为运输工具设置互斥信号量 S,初值1,表示当前可用 第四步:用伪代码描述 begin em

44、pty, full, S: semaphore; empty := 10; full := 0; S := 1; cobegin Pin (); Pout (); coend; end; process Pin ( ) begin L1:生产了一台设备 P( empty ); P (S); 使用运输工具入库 V (S) ; V( full); goto L1; end; process Pout ( ) begin L2: P ( full ); P (S); 使用运输工具出库 V (S) ; V( empty ); 提出设备供应客户 goto L2; end; 20进程通信主要有哪几种类型?

45、 参考答案: 进程通信的类型主要有: 共享存储器系统、 消息传递系统以及管道通信系统。 21 高级调度与低级调度的主要任务是什么?为什么要引入中级调度? 参考答案: 高级调度又称作业调度, 其任务是从外存上的后备队列中按照一定的原则选 择若干个作业调入内存,为他们创建进程,分配必要的资源,如内存、外设等,并将新 创建的进程插入就绪队列, 准备执行。 低级调度通常又称为进程调度, 其任务是决定就 绪队列中的哪个进程获得处理器,然后由分派程序把处理器分配给该进程,为它恢复运 行现场,让其运行。引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。 22. 引起进程调度的原因有哪些? 参考答案:

46、引起进程调度的原因有:(1)正在执行的进程执行完毕,或因发生某事件而 不能再继续执行;(2)执行中的进程因提出I/O请求而暂停执行;(3)在进程通信或同 步过程中执行了某种原语操作;(4)当采用基于优先权的强占式调度算法时,就绪队列 中出现优先级比当前正在执行的进程优先级更高的进程时;(5)当采用时间片轮转调度 算法时,当前进程的时间片用完了。 23. 选择进程调度算法的原则有哪些? 参考答案:一个操作系统如何选择调度方式和算法,在很大程度上取决于操作系统的类 型和目标,通常应尽量遵循以下几方面的原则: (1) 周转时间短。从作业提交开始到作业完成为止的时间间隔称为周转时间,它包 括作业等待进

47、入内存、进程在就绪队列中等待、进程在CPU上执行和完成I/O操 作所花费的时间总和。 它主要用于评价批处理系统。为了能更准确地评价系统的性 能,引入了另一个指标:带权周转时间,即作业的周转时间与系统实际为其提供的 服务时间之比。 (2) 响应时间快。从用户通过键盘提交一个请求开始,直至系统首次产生响应为止 的时间间隔称为响应时间,主要用于评价分时系统。 (3) 要保证截止时间。 所谓截止时间,是指某任务必须开始执行的最迟时间,或必 须完成的最迟时间,主要用于评价实时系统。 (4) CPU利用率高。 当CPU的价格非常昂贵时,希望尽可能使它得到充分利用。 CPU的利用率可从0%到100%,但在实

48、际系统中,一般是在40%90%之间。 (5) 系统吞吐量高。所谓系统吞吐量,是指单位时间内系统所完成的作业数量, 主要用于评价批处理系统。 24. 批处理操作系统、分时操作系统和实时操作系统常用哪些进程调度算法? 参考答案:批处理操作系统常用的进程调度算法有:先来先服务调度算法、 短进程优先 调度算法、高优先权优先调度算法、高响应比优先调度算法; 分时操作系统常用的进程 调度算法有:时间片轮转调度算法、多级反馈队列调度算法; 实时操作系统常用的进程 调度算法主要有:高优先权优先调度算法。 25. 什么是静态优先权和动态优先权?各有何优缺点? 参考答案:静态优先级是在进程创建时根据进程的类型、进

49、程对资源的需求以及用户的 要求而确定的,在进程的整个运行期间保持不变。对于动态优先级,也是在创建进程时 为进程赋予一个初始优先级,以后在进程的运行过程中随着进程特性的变化,不断修改 优先级,如随着进程在就绪队列中等待时间的增长,可提高进程的优先级; 随着进程连 续占用CPU时间的增长,可降低其优先级,防止一个进程长期垄断CPU等。 26. 设有五个进程,它们到达就绪队列的时刻和运行时间如表2 - 5所示。若分别 采用先来先服务算法和短进程优先算法,试给出各进程的调度顺序以及平均周转时间。 表2-5各进程到达就绪队列的时刻、运行时间 进程 到达时刻 运行时间 P1 10.1 0.3 P2 10.

50、3 0.9 P3 10.4 0.5 P4 10.5 0.1 P5 10.8 0.4 参考答案: (1)先来先服务(FCFS) 调度顺序 进程 到达时刻 运行时间 开始时间 完成时间 周转时间 1 P1 10.1 0.3 10.1 10.4 0.3 2 P2 10.3 0.9 10.4 11.3 1.0 3 P3 10.4 0.5 11.3 11.8 1.4 4 P4 10.5 0.1 11.8 11.9 1.4 5 P5 10.8 0.4 11.9 12.3 1.5 平均周转时间:T = (0.3 + 1.0 + 1.4 + 1.4 + 1.5 ) / 5 =1.12 (2)短进程优先(SPF

51、) 调度顺序 进程 到达时刻 运行时间 开始时间 完成时间 周转时间 1 P1 10.1 0.3 10.1 10.4 0.3 2 P3 10.4 0.5 10.4 10.9 0.5 3 P4 10.5 0.1 10.9 11.0 0.5 4 P5 10.8 0.4 11.0 11.4 0.6 5 P2 10.3 0.9 11.4 12.3 2.0 平均周转时间:T = (0.3 + 0.5 + 0.5 + 0.6 + 2.0 ) / 5 =0.78 27. 设有四个进程,它们到达就绪队列的时刻、运行时间及优先级(此处优先级1 为最低优先级,优先级 4为最高优先级)如表 2-6所示。若分别采用非

52、抢占式优先级调度 算法和可抢占式优先级调度算法,试给出各进程的调度顺序以及平均周转时间。 表2-6各进程到达就绪队列的时刻、运行时间及优先级 进程 到达时刻 运行时间 优先级 P1 0 8 1 P2 1 3 3 P3 2 7 2 P4 3 12 4 参考答案: (1)非抢占式优先级调度算法 调度顺序 进程 优先级 到达时刻 运行时间 开始时间 完成时间 周转时间 1 P1 1 0 8 0 8 8 2 P4 4 3 12 8 20 17 3 P2 3 1 3 20 23 22 4 P3 2 2 7 23 30 28 平均周转时间:T =( 8 + 17 + 22 + 28) / 4 = 18.7

53、5 (2) 抢占式优先级调度算法 调度 顺序 进程 优先级 到达 时刻 剩余运 行时间 开始 时间 停止 时间 共完成 时间 状态 周转 时间 1 P1 1 0 8 0 1 1 未完成 2 P2 3 1 3 1 3 2 未完成 3 P4 4 3 12 3 15 12 完成 12 4 P2 3 1 1 15 16 3 完成 15 5 P3 2 2 7 16 23 7 完成 21 6 P1 1 0 7 23 30 8 完成 30 平均周转时间: T=( 12 + 15 + 21 + 30 ) / 4 = 19.5 28. 什么是死锁?产生死锁的原因和必要条件是什么?处理死锁的基本方法有哪 些? 参

54、考答案:若系统中存在一组进程(两个或两个以上),它们中的每一个都占用了某些 资源而又都在等待其中另一个进程所占用的资源,这种等待如果没有外力作用,将永远 不会结束,这就是“死锁”,或说这一组进程处于“死锁”状态。 产生死锁的原因主要有两个:一是多个进程竞争资源,二是进程请求和释放资源 的时机不对。 产生死锁的必要条件有:互斥条件、占有且等待条件、不可剥夺条件、循环等待条 件。处理死锁的基本方法有:预防死锁、避免死锁、检测和解除死锁。 29. 什么是线程?简述与进程的区别和联系。 参考答案:线程是进程中的一个实体,是CPU调度和分派的基本单位。 线程具有许多传统进程的特征, 故又称为轻型进程。

55、传统的进程称为重型进程, 相当于 只有一个线程的任务。在引入线程的操作系统中,通常一个进程拥有若干个线程, 至少也有 一个线程。下面从调度、并发性、拥有资源和系统开销几个方面对线程和进程进行比较。 (1) 调度。在传统的操作系统中,进程既是资源分配和拥有的基本单位,又是独立调 度和执行的基本单位。而在引入线程后,则把线程作为调度和执行的基本单位,把进程作为 资源分配和拥有的基本单位,把传统进程的两个属性分开,使线程轻装运行,从而显著提高 系统的并发程度。同一进程中两个线程的切换不会引起进程切换,但由一个进程中的线程切 换到另一个进程中的线程时,将会引起进程切换。 (2) 并发性。在引入线程的操

56、作系统中,不仅进程之间可以并发执行,而且在一个进 程中的多个线程之间也可以并发执行,因而使系统具有更好的并发性,从而能更有效地使用 系统资源和提高系统吞吐量。 (3) 拥有资源。不论是传统的操作系统,还是引入线程的操作系统,进程都是拥有资 源的独立单位。线程基本上不拥有资源(只有一点运行时必不可少的资源),但它可以访问 其所属进程的全部资源。亦即一个进程的代码段、数据段以及系统资源(如已打开的文件、 I/O设备等),可供该进程的所有线程共享。 (4) 系统开销。系统在创建或撤消进程时,都要为之分配或回收资源,如内存空间、 I/O设备等,因此系统所付出的开销将显著地大于创建或撤消线程的开销。同样

57、,在进行进 程切换时,需要保存当前进程的执行环境,设置和恢复被调度进程的执行环境,而线程切换 只需保存和设置少量寄存器的内容,不涉及存储管理方面的操作,因而进程切换的开销也远 大于线程切换的开销。 第三章习题 1什么叫重定位?它有哪两种方式?这两种方式有什么区别? 参考答案: 当程序装入内存时, 操作系统将为该程序分配一个合适的内存空间, 由于程 序的逻辑地址与所分配到内存的物理地址不一致,而 CPU 执行指令时是按物理地址进 行的,为使程序能正确运行,必须将用户程序中的逻辑地址转换成内存中的物理地址, 这个地址转换过程就称为 “重定位”,又称为“地址映射” 。它有静态重定位和动态重定 位两种

58、方式。 两者的区别是: 静态重定位是当用户程序被装入内存时, 由装入程序一次性地把逻 辑地址转换成物理地址, 以后不再转换, 它不需要增加硬件地址转换机构, 但程序在内 存中需占据一片连续区域, 并且在重定位之后就不能再移动位置。 动态重定位是把程序 装入内存后,并不立即将程序中的逻辑地址转换为物理地址,而是在 CPU 执行每一条 指令时进行地址转换, 程序装入内存后可移动位置, 不必连续存放在一起, 但是需要硬 件地址变换机构的支持。 2在动态分区分配方式中,若采用最先适应算法,应如何回收内存? 参考答案: 在动态分区分配方式中,若采用最先适应算法,则在回收一块内存空间时, 首先根据回收区的

59、始址在空闲分区链中查找插入点, 找到后, 按照下面四种情况进行回 收: (1)回收分区(记为 R)与其前面的空闲分区(记为 F1)邻接:合并 R与F1,修改 空闲分区表中F1的大小,即加上 R的大小,始址不变。 (2)回收分区(记为 R)与其后面的空闲分区(记为 F2)邻接:合并 R与F2,修改 空闲分区表中F2的大小,即加上 R的大小,始址不变。 (3) 回收分区(记为 R)与其前后的空闲分区(分别记为F1和F2)均邻接:合并 R 与F1、F2,修改空闲分区表中 F1的大小,即加上 R与F2的大小,始址不变。 (4) 回收分区(记为 R)与其前后的空闲分区(分别记为F1和F2)均不邻接:在空

60、 闲分区表中增加一条记录,该空闲分区的始址和大小,即为R 的始址和大小。 3动态分区分配的常用算法有哪些?各有什么特点? 参考答案: 动态分区分配的常用的内存分配算法 (1)最先适应算法。该算法要求空闲分区表按各分区起始地址递增的顺序排列。每 次分配时, 总是从第一条记录开始顺序查找空闲分区表, 找到第一个能满足作业长度要求 的空闲区,分割该空闲区,一部分分配给作业,余下部分仍为空闲区。该算法可能将大的 空闲分区分割成多个小分区,从而使系统产生很多小得无法再用的“碎片”。 (2)最优适应算法。从所有空闲分区中挑选一个大小能满足作业要求的最小分区, 这样可以保证不去分割一个更大的分区, 使装入大

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论