计算机操作系统教程_张尧学(第3版)【课后练习答案、复习资料】
计算机操作系统(第三版)复习课件

执行
完成
退出
就绪
时间片用完
等待事件
时间发生
阻塞
进程控制
1、进程的创建 导致一个进程去创建另一个进程的典型事件,可有以下 四类: (1)用户登录。 (2)作业调度。 (3)提供服务。例如:I/O请求 (4)应用请求。基于应用进程的需求,由它自己创建一个 新进程,以便使新进程以并发运行方式完成特定任务。
操作系统的形成和发展
操作系统的发展经历了以下几个阶段:
手工存在阶段(无操作系统) 脱机输入输出技术阶段 批处理技术阶段 多道程序设计技术阶段。
操作系统的基本类型
最常用分类方法(按照操作系统的用户服务方式分)
主要有:
多道批处理系统; 分时系统; 实时系统。
其它操作系统还包括 通用操作系统 网络操作系统 并发操作系统 ..
多道批处理系统
•运行方式(了解)
•特征:多道性、无序性、调度性 •优缺点:
优点:资源利用率高,系统吞吐量大。 缺点:平均周转时间长、无交互能力。
•在设计批处理系统时,首先要考虑的是周转时间和系统的 吞吐量。
分时系统
实现基本方法;设立时间片 特性:多路性、独立性、及时性、交互性。 响应时间:指从终端用户发出一条命令开始,到系统
进程控制
2、进程的终止 引起进程终止的事件 1)正常结束。 2)异常结束: ①越界错误。 ②保护错。 ③非法指令。 ④特权指令错。 ⑤运行超时。 ⑥等待超时。 ⑦算术运算错。被0除: ⑧I/O故障。 3)外界干预:外界干预并非指在本进程运行中出现了异常 事件,而是指进程应外界的请求而终止运行。
计算机操作系统教程(张尧学 史美林 张高)(第三版)第二章

精品课程系列-计算机学院版权所有
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
重庆大学计算机学院 《操作系统》教程
–用户程序与陷入(访管)指令访问系统程序及数 据的区别 • 调用中若发生错误,用户程序的错误不影响系 统,系统程序的错误可能引起系统崩溃 • 系统数据用于管理系统状态与系统资源,用户 程序调用中若被修改可能引起系统管理的混乱 • 用户程序调用时现场保护在用户区内——系统 资源的变化不能修改其中的数据。OS调用时现 场保护在OS的内存区内或特定的寄存器中—— 系统资源的变化不能修改其中的数据。 • 用户程序调用时控制权属于用户,OS调用时控 制权属于OS。
精品课程系列-计算机学院版权所有
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
重庆大学计算机学院 《操作系统》教程
系统调用原则 – 为了保障操作系统的安全性,使得操作系统的程序不被用户
程序破坏,一般操作系统都不允许用户程序访问操作系统的 系统程序及数据。编程人员可以利用陷入(访管)指令来向 操作系统提出对系统程序及数据访问要求。
精品课程系列-计算机学院版权所有
计算机操作系统教程(张尧学 史美林 张高)(第三版)第一章

• 提高效率的途径 – 专门的操作员,批处理
精品课程系列-计算机学院版权所有
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
重庆大学计算机学院 《操作系统》教程
单道批处理系统 (simple batch processing, ,uniprogramming)
50年代末 ~ 60年代中(晶体管):利用磁带把若干个作业分类编成 作业执行序列,每个批作业由一个专门的监督程序(Monitor)自动 依次处理。可使用汇编语言开发。
• 缺点: – 用户交互性差:整个作业完成后或中间出错时,才与用户交互,不 利于调试和修改; – 作业平均周转时间长:短作业的周转时间显著增长;
课程的目的与要求
• 课程目的 – 对操作系统的基本概念和基本结构有清楚的认识 – 从资源管理的角度领会操作系统的原理、功能和技术 – 提高运用理论知识解决实际问题的能力。
• 课程要求 – 掌握现代操作系统的基本概念、基本原理和基本方法 – 能设计并使用程序设计语言编制和调试操作系统的关键算法和组成 模块 – 了解和熟悉操作系统在计算机系统中的作用和地位,与硬件和其它 软件的关系 – 了解操作系统控制计算机系统工作的全过程
• 计算机的工作特点 – 用户独占全机:资源利用率低; – CPU等待用户:计算前,手工装入纸带或卡片;计算完成后, 手工卸取纸带或卡片;CPU利用率低;
精品课程系列-计算机学院版权所有
操作系第3版答案

部分习题参考答案针对书中习题的重点和难点部分给出参考答案,而其余习题可在书中相应章节处得到答案。
3•操作系统是裸机之上的第一层软件,它只在核心态模式下运行,受硬件保护,与硬件关系尤为密切。
操作系统是整个计算机系统的控制管理中心,其他所有软件都建立在操作系统之上。
操作系统对它们既具有支配权力,又为其运行建造必备环境。
4•脱机I/O是指输入/输出工作不受主机直接控制,而由卫星机专门负责完成I/O,主机专门完成快速计算任务,从而二者可以并行操作。
联机I/O是指作业的输入、调入内存及结果输出都在CPU直接控制下进行。
&硬件一一是指计算机物理装置本身,它是计算机系统的物理基础。
如CPU内存、设备等。
软件一一是相对硬件而言的,它是与数据处理系统的操作有关的计算机程序、过程、规则及相关文档资料的总称。
简单地说,软件是计算机执行的程序。
多道程序设计一一在这种设计技术下,内存中能同时存放多道程序,在管理程序的控制下交替地执行。
这些作业共享CPU和系统中的其他资源。
并发一一是指两个或多个活动在同一给定的时间间隔中进行。
它是宏观上的概念。
吞吐量一一在一段给定的时间内,计算机所能完成的总工作量。
分时一一就是对时间的共享。
在分时系统中,分时主要是指若干并发程序对CPU寸间的共享。
实时一一表示“及时”或“即时”。
系统调用一一是用户在程序中能以“函数调用”形式调用的、由操作系统提供的子功能的集合。
每一个子功能称做一条系统调用命令。
它是操作系统对外的接口,是用户级程序取得操作系统服务的唯一途径。
10. 通常,大家会熟悉以下操作系统:Windows 2000, Windows XP, UNIX或Linux。
在上机工作过程中,操作系统为用户提供的服务包括:命令和数据输入/输出的管理,内存的分配,用户文件的管理,CPU的分配,设备管理等。
12. 当执行操作系统程序时,处理机处于核心态。
它有较高的特权,可以执行所有的指令,包括一般用户程序中不能使用的特权指令,从而能对所有寄存器和内存进行访问、启动I/O操作等。
计算机操作系统教程(张尧学 史美林 张高)(第三版)第二章

精品课程系列-计算机学院版权所有
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
重庆大学计算机学院 《操作系统》教程
• 系统调用的分类(书P32) – 设备管理 – 文件管理 – 进程管理 – 进程通信 – 存储管理
精品课程系列-计算机学院版权所有
– 虚拟现实 • 虚拟现实(virtual reality,VR)是用计算机技术来生成一个 逼真的三维视觉、听觉、触觉、嗅觉等感觉世界,让用户可以 从自己的视点出发,利用自然的技能和某些设备对这一生成的 虚拟世界进行浏览和交互考察。实际应用的虚拟现实系统大体 可分为:
–桌面虚拟现实系统 –沉浸虚拟现实系统 –分布式虚拟现实系统 –增强现实
精品课程系列-计算机学院版权所有
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
重庆大学计算机学院 《操作系统》教程
系统调用原则 – 为了保障操作系统的安全性,使得操作系统的程序不被用户
程序破坏,一般操作系统都不允许用户程序访问操作系统的 系统程序及数据。编程人员可以利用陷入(访管)指令来向 操作系统提出对系统程序及数据访问要求。
精品课程系列-计算机学院版权所有
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
重庆大学计算机学院 《操作系统》教程
– X-window • X-window 是1986年由美国MIT的雅典娜工程开发小组为了提供 一个独立于硬件的用户图形界面而开发成功的,广为流行的是 1988年3月发行的X11.2版本。尤其与UNIX操作系统结合,可运 行于IBM-PC到各种大中型机以及巨型机上,它又可运行在X终 端上。同时它也给程序员提供了工具箱(toolkit)和事件驱 动型编程模型。
操作系统(第三版)习题答案

:第一章操作系统引论1.设计现代OS的主要目标是什么答:(1)有效性(2)方便性(3)可扩充性(4)开放性2.OS的作用可表现在哪几个方面答:(1)OS作为用户与计算机硬件系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象3.为什么说OS实现了对计算机资源的抽象、答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。
OS通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。
4.试说明推动多道批处理系统形成和发展的主要动力是什么答:主要动力来源于四个方面的社会需求与技术发展:(1)不断提高计算机资源的利用率;(2)方便用户;(3)器件的不断更新换代;(4)计算机体系结构的不断发展。
5.何谓脱机I/O和联机I/O%答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。
该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。
而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。
6.试说明推动分时系统形成和发展的主要动力是什么答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。
主要表现在:CPU的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。
7.实现分时系统的关键问题是什么应如何解决答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户。
解决方法:针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收用户从各个终端上输入的数据;为每个终端配置缓冲区,暂存用户键入的命令或数据。
计算机操作系统教程(张尧学 史美林 张高)(第三版)第四章
精品课程系列-计算机学院版权所有
重庆大学计算机学院 《操作系统》教程
4.2
作业调度
制 制 作 作 者 者 : : 郭 郭 平 平 、 、 王 王 在 在 模 模 、 、 何 何 静 静 媛 媛
作业调度是按照某种规则,从后备作业 队列中挑选作业进入内存,参与处理机的竞 争的过程。
精品课程系列-计算机学院版权所有
从后备队列中选 出一个作业 审核资源要求 否 放弃作业 资源要求 能满足吗? 是 分配资源 建立进程 进程调度 (a) 后备状态到执行状态的转变
回收分配给作业的全部资源 计算作业的执行费用 撤消作业的所有进程,以及JCB 调度下一个作业
(b) 执行状态到完成状态的转变
精品课程系列-计算机学院版权所有
外存
就绪
等待
提交状态
收容状态
就绪 等待
交换调度 执行状态 完成状态 执行
作业注册
作业调度
进程调度
内存
线程调度
作业的状态及转换
返回
精品课程系列-计算机学院版权所有
重庆大学计算机学院 《操作系统》教程
4.1.2 调度的层次
制 制 作 作 者 者 : : 郭 郭 平 平 、 、 王 王 在 在 模 模 、 、 何 何 静 静 媛 媛
又称为作业调度,用于决定把外存上处于后备队列中的作业调入 内存,并为它们创建进程、分配必要的资源,然后,将新创建的进程 排在就绪队列中,准备执行。在作业调度中,必须解决两个问题: 1) 接纳多少个作业:多道程序的度数的确定应该系统的规模和运行 速度,做适当的折中。 2) 接纳哪些作业:应该将作业从外存中调入内存,将取决于所采用 的调度算法。关于各种不同的调度算法将随后讨论。
精品课程系列-计算机学院版权所有
操作系统第三版 张尧学著 第3章 进程管理
以上进程的定义,尽管各有侧重,但在本质上是 相同的。即主要注重进程是一个动态的执行过程这 一概念。也可以这样定义进程:一个具有独立功能 的程序对某个数据集在处理机上的执行过程和分配 资源的基本单位。这里,程序指一组操作序列,而 数据集则是接受程序规定操作的一组存储单元的内 容。 进程和程序是两个既有联系又有区别的概念,它 们的区别和关系可简述如下:
3.1.3 作业和进程的关系 作业是用户需要计算机完成某项任务时要求计算机 所作工作的集合。进程是已提交完毕程序的执行过 程的描述,是资源分配的基本单位。区别与关系: (1) 作业是用户向计算机提交任务的任务实体。而进 程则是完成用户任务的执行实体,是向系统申请分 配资源的基本单位。任一进程,只要它被创建,总 有相应的部分存在于内存中。 (2) 一个作业可由多个进程组成。且必须至少由一个 进程组成,但反过来不成立。 (3) 作业的概念主要用在批处理系统中。而进程的概 念则用在几乎所有的多道系统中。
(1) 描述信息 ① 进程名或进程标识号 ② 用户名或用户标识号 ③ 家族关系 (2) 控制信息 ① 进程当前状态(就绪态、执行态和等待状态。) ② 进程优先级 与进程优先级有关的PCB表项有: a. 占有CPU时间; b. 进程优先级偏移; c. 占据内存时间,等。
③ 程序开始地址 ④ 各种计时信息 给出进程占有和利用资源的有关情况。 ⑤ 通信信息 用来说明该进程在执行过程中与别的进程所发 生的信息交换情况。 (3) 资源管理信息 PCB 中包含最多的是资源管理信息,包括有关存 储器的信息、使用输入输出设备的信息、有关文件 系统的信息等。这些信息有: ① 占用内存大小及其管理用数据结构指针,例如 后述内存管理中所用到的进程页表指针等。
从上述讨论可以看出,由于程序的顺序性、静 态性以及孤立性,用程序段作为描述其执行过程和 共享资源的基本单位既增加操作系统设计和实现的 复杂性,也无法反映操作系统所应该具有的程序段 执行的并发性、用户随机性,以及资源共享等特征。 也就是说,用程序作为描述其执行过程以及共享资 源的基本单位是不合适的。需要有一个能描述程序 的执行过程且能用来共享资源的基本单位。这个基 本单位被称为进程process(或任务task)。
计算机操作系统教程(张尧学(第三版)第五章
精品课程系列-计算机学院版权所有
关于动态地址重定位可以如下图所示的过程说明:
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
用户程序的虚地址空间 0 100 1KB 0 内存 基地址寄存器 操作系统 22628 22KB 22528
XXXXX
20KB 22KB 22KB+100 XXXXXX
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
精品课程系列-计算机学院版权所有
动态地址重定位
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
动态地址重定位是在程序执行过程中,在CPU访问 内存之前,将要访问的程序或数据地址转换成内存地 址。动态地址重定位依靠硬件地址变换机构完成。
硬件地址转换机构一般由一个“基地址寄存器” 和一个“虚地址寄存器”组成,用户程序不做任何修 改地装入分配给它的存储区域。当调度到用户程序运 行时,则转换成实际的物理地址。
精品课程系列-计算机学院版权所有
分区的分配与释放
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
分区的分配: 若采用的是一个队列的管理方案,则当一个分区被释放时, 需要在队列中选出一个作业运行,可以有以下几种方案: (1)选出第一个可容纳的作业。该方案虽然实现简单,选择 率高,但是可能会因为一个小作业进入而浪费掉该分区的大部分 存储空间,存储利用率不高。 (2)在队列中找出该分区能容纳的最大的作业。由于每个分 配出的分区产生出的内部碎片小,因此,此方案存储空间的利用 率高;缺点是对小作业不公平。
22kb10022kb300023kbd图51地址变换示意图郭平王在模何静媛其中程序a中的一条入口地址为3000的一条指令为call100其中程序a中的一条入口地址为3000的一条指令为call100在装入内存之后由于程序的起始地址不再为0故程序中的指令需要做相应的转换
操作系统第三版习题答案
操作系统第三版习题答案操作系统是计算机科学中的核心课程之一,它涉及到计算机系统的管理和协调资源分配。
第三版的习题答案通常涵盖了操作系统的基本概念、原理和实现方法。
以下是一些可能的习题答案示例:# 操作系统第三版习题答案第一章:操作系统概述1. 操作系统的定义:操作系统是一个系统软件,负责管理计算机硬件资源,并为用户和其他软件提供运行环境和控制硬件的手段。
2. 操作系统的主要功能:包括进程管理、内存管理、文件系统管理、输入/输出设备管理等。
第二章:进程管理1. 进程的概念:进程是操作系统进行资源分配和调度的一个独立单位,是程序的执行实例。
2. 进程的状态:通常包括就绪态、运行态、阻塞态和终止态。
第三章:线程1. 线程与进程的区别:线程是进程中的一个执行流,比进程更轻量级,同一进程内的线程共享进程资源。
2. 线程的创建和管理:操作系统提供了API来创建和管理线程,例如Pthread库。
第四章:内存管理1. 内存管理的作用:负责分配和回收内存资源,确保程序运行时有足够的内存空间。
2. 虚拟内存:一种内存管理技术,允许计算机通过硬盘来扩展可用的内存容量。
第五章:文件系统1. 文件系统的功能:文件系统负责存储、组织和访问文件数据。
2. 文件的属性:包括文件类型、大小、创建时间、访问权限等。
第六章:输入/输出系统1. I/O设备分类:包括块设备、字符设备、网络设备等。
2. I/O控制方式:包括程序控制方式、中断驱动方式和DMA方式。
第七章:死锁1. 死锁的条件:互斥条件、占有和等待条件、不可剥夺条件、循环等待条件。
2. 死锁的预防和避免:通过破坏死锁条件来预防死锁的发生。
第八章:操作系统安全1. 安全机制:包括用户身份验证、访问控制、数据加密等。
2. 安全策略:确定哪些用户可以访问哪些资源。
结语操作系统习题的答案不仅需要理解理论知识,还需要通过实践来加深理解。
希望这些答案能够帮助你更好地掌握操作系统的知识点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 《计算机操作系统教程》 张尧学__(第3版)
第一章 绪论 1.什么是操作系统的基本功能? 答:操作系统的职能是管理和控制汁算机系统中的所有硬、软件资源,合理地组织计算机工作流程,并为用户提供一个良好的工作环境和友好的接口。操作系统的基本功能包括: 处理机管理、存储管理、设备管理、信息管理(文件系统管理)和用户接口等。 2.什么是批处理、分时和实时系统?各有什么特征? 答:批处理系统(batchprocessingsystem):操作员把用户提交的作业分类,把一批作业编成一个作业执行序列,由专门编制的监督程序(monitor)自动依次处理。其主要特征是:用户脱机使用计算机、成批处理、多道程序运行。 分时系统(timesharingoperationsystem):把处理机的运行时间分成很短的时间片,按时间片轮转的方式,把处理机分配给各进程使用。其主要特征是:交互性、多用户同时性、独立性。 实时系统(realtimesystem):在被控对象允许时间范围内作出响应。其主要特征是:对实时信息分析处理速度要比进入系统快、要求安全可靠、资源利用率低。 3.多道程序(multiprogramming)和多重处理(multiprocessing)有何区别? 答;多道程序(multiprogramming)是作业之间自动调度执行、共享系统资源,并不是真正地同时值行多个作业;而多重处理(multiprocessing)系统配置多个CPU,能真正同时执行多道程序。要有效使用多重处理,必须采用多道程序设计技术,而多道程序设计原则上不一定要求多重处理系统的支持。 4.讨论操作系统可以从哪些角度出发,如何把它们统一起来? 答:讨论操作系统可以从以下角度出发: (1)操作系统是计算机资源的管理者 (2)操作系统为用户提供使用计算机的界面; (3)用进程管理观点研究操作系统,即围绕进程运行过程来讨论操作系统。 上述这些观点彼此并不矛盾,只不过代表了同一事物(操作系统)站在不同的角度来看待。 每一种观点都有助于理解、分析和设计操作系统。
第三章 用户管理和配置管理 1.有A说,一个进程是由伪处理机执行的一个程序,这话对吗?为什么? 答:对。 因为伪处理机的概念只有在执行时才存在,它表示多个进程在单处理机上并发执行的二个调度单位。因此,尽管进程是动态概念,是程序的执行过程,但是,在多个进程并行执行时,仍然只有一个进程占据处理机执行,而其他并发进程则处于就绪或等待状态。这些并发进程就相当于由伪处理机执行的程序。 2.试比较进程和程序的区别。 答:(1)进程是一个动态概念,而程序是一个静态概念,程序是指令的有序集合,无执行含义,进程则强调执行的过程。 (2)进程具有并行特征(独立性,异步性),程序则没有。 (3)不同的进程可以包含同一个程序,同一程序在执行中也可以产生多个进程。 3.我们说程序的并发执行将导致最终结果失去封闭性广这话对所有的程序都成立吗?举例说明. 答:并非所有程序均成立。 如: Begin local“ Z K::10 print(x) End 上述程序中x是内部变量,不可能被外部程序访问,因此这段程序的运行不会受外部环境影响。 2
4.试比较作业和进程的区别。 答:一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。作业是用于需要计算机完成某项任务,而要求计算机所做工作的集合。一个作业的完成要经过作业提交,作业收容、作业执行和作业完成4个阶段。而进程是已提交完毕的程序所执行过程的描述,足资源分配的基本单位。其主要区别关系如下: (1)作业是用户向计算机提交任务的任务实体。在用户向计算机提交作业之后,系统将存储在外存中的作业等待队列中等待执行。而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。任一进程,只要它被创建,总有相应的部分存在于内存中。 (2)一个作业可由多个进程组成。且必须至少由一个进程组成,但反过来不成立。 (3)作业的概念主要用在批处理系统中。像Unix这样的分时系统中,则没有作业概念。而进程的概念则用在几乎所有的多道程序系统中。
5.UNIXSystem V中,系统程序所对应的正文段未被考虑成进程上下文的一部分,为什么? 答:因为系统程序的代码被用户程序所共享,因此如果每个进程在保存进程上下文时,都将系统程序代码放到其进程上下文中,则大大浪费了资源。因此系统程序的代码不放在进程上下文中,而是统一放在核心程序所处的内存中。 6.什么是临界区?试举一临界区的例子。 答:临界区是指不允许多个并发进程交叉执行的一段程序。它是由于不同并发进程的程序段共享公用数据或公用数据变量而引起的。所以它又被称为访问公用数据的那段程序。 例如: getspace: Begin local g top=top-1 End release(ad): Begin top’top十1 stack[top]=ad End 7.并发进程间的制约有哪两种?引起制约的原因是什么? 答:并发进程所受的制约有两种:直接制约和间接制约。 直接制约是由并发进程互相共享对方的私有资源所引起的。 间接制约是由竞争共有资源而引起的。 8.什么是进程间的互斥?什么是进程间同步? 答:进程间的互斥是指:一组并发进程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不许交叉执行的单位执行,即不允许两个以上的共享该资源的并发进程同时进入临界区。 进程间的同步是指:异步环境下的一组并发进程因直接制约互相发送消息而进行互相合作、互相等待,各进程按一定的速度执行的过程。 9.试比较P,V原语法和加锁法实现进程间互斥的区别。 答:互斥的加锁实现是这样的:当某个进程进入临界区之后,它将锁上临界区,直到它退出临界区时为止。并发进程在申请进入临界区时,首先测试该临界区是否是上锁的,如果该临界区已被锁住,则该进程要等到该临界区开锁之后才有可能获得临界区。但是加锁法存在如下弊端:(1)循环测试锁定位将损耗较多的CPU计算时间; (2)产生不公平现象。为此,P,V原语法采用信号量管理相应临界区的公有资源,信号量的数值仅能由P,V原语操作改变,而P,V原语执行期间不允许中断发生。其过程是这样的:当某个进程正在临界区内执行时,其他进程如果执行了P原语,则该进程并不像lock时那样因进不了临界区而返回到lock的起点,等以后重新执行测试,而是在等待队列中等待由其他进程做V原语操作释放资源后,进入临界区,这时P原语才算真正结束。若有多个进程做P原语操作而进入等待状态之后,一旦有V原语释放资源,则等待进程中的一个进入临界区,其余的继续等待。 总之,加锁法是采用反复测试lock而实现互斥的,存在CPU浪费和不公平现像,P,V原语使用了信号量,克服了加锁法的弊端。 3
14.设有5个哲学家,共享一张放有五把椅子的桌子,每人分得一把椅子。但是,桌子上总共只有5支筷子,在每人两边分开各放一支。哲学家们在肚子饥饿时才试图分两次从两边拾起筷子就餐。 条件: (1) 只有拿到两支筷子时,哲学家才能吃饭。 (2) 如果筷子已在他人手上,则该哲学家必须等待到他人吃完之后才能拿到筷子。 (3) 任一哲学家在自己未拿到两支筷子吃饭之前,决不放下自己手中的筷子。 试: (1) 描述一个保证不会出现两个邻座同时要求吃饭的通信算法。 (2) 描述一个既没有两邻座同时吃饭,又没有人饿死(永远拿不到筷子)的算法。 (3) 在什么情况下,5 个哲学家全部吃不上饭? 解答: (1)、设信号量c[0]~c[4],初始值均为1,分别表示i号筷子被拿(i=0,1,2,3,4), send(i):第i个哲学家要吃饭 begin P(c[i]); P(c[i+1 mod 5]); eat; V(c[i+1 mod 5]); V(c[i]); End; 该过程能保证两邻座不同时吃饭,但会出现5个哲学家一人拿一只筷子,谁也吃不上饭的死锁情况. (2)、解决的思路如下:让奇数号的哲学家先取右手边的筷子,让偶数号的哲学家先取左手边的筷子.这样,任何一个哲学家拿到一只筷子之后,就已经阻止了他邻座的一个哲学家吃饭的企图,除非某个哲学家一直吃下去,否则不会有人会饿死. send(i):第i个哲学家要吃饭 Begin If i mod 2==0 then { P(c[i]),P(c[i+1 ]mod 5)) eat; V(c[i],c[i+1 mod 5]) } Else { P(c[i+1 mod 5]) P(c[i]) Eat V(c[i+1 mod 5]) V(c[i]) } End 15.什么是线程?试述线程与进程的区别, 答;线程是在进程内用于调度和占有处理机的基本单位,它由线程控制表、存储线程上下文的用户栈以及核心栈组成。线程可分为用户级线程、核心级线程以及用户/核心混合型线程等类型。其中用户级线程在用户态下执行,CPU调度算法和各线程优先级都由用户设置,与操作系统内核无关。核心级线程的调度算法及线程优先级的控制权在操作系统内核。混合型线程的控制权则在用户和操作系统内核二者。线程与进程的主要区别有: (1)进程是资源管理的基本单位,它拥有自己的地址空间和各种资源,例如内存空间、外部设备等;线程只是处理机调度的基本单位,它只和其他线程一起共享进程资源,但自己没有任何资源。 (2)以进程为单位进行处理机切换和调度时,由于涉及到资源转移以及现场保护等问题,将导致处理机切换时间变长,资源利用率降低。以线程为单位进行处理机切换和