电脑屏幕亮给我1秒钟钟就黑了,检查了下独立显卡依然再转,然后把独立显卡拆了,接主板的接口,也是一样。

亮度控制电路故障, 小问题
液晶屏問题,要换, 大问题,
说不好的,如果是修后才这样, 那就是小问题, 修前就有这个问题的话, 保重吧
全部

显卡(Video card、Display card、Graphics card、Video adapter)是 PC(Personal Computer)最基本的組成部分之一用途是将计算机系统所需要的显示信息进行转换,继而驱动显示器并向显示器提供逐行或隔行扫描信号,控制显示器的囸确显示是连接显示器和个人计算机主板的重要组件,是 “人机对话” 的重要设备之一

显卡是插在计算机主板扩展槽(现在一般是 PCI-E 插槽,此前还有 AGP、PCI、ISA 等插槽)上的外部设备它主要负责把主机向显示器发出的显示信号转化为一般电器信号,使得显示器能明白个人计算機在让它做什么显卡的主要芯片叫 “显示芯片”(Video chipset,也叫 GPU 或 VPU图形处理器或视觉处理器),是显卡的主要处理单元显卡上也有和计算機存储器相似的存储器,称为 “显示存储器”简称显存。

早期的显卡只是单纯意义的显卡只起到信号转换的作用。目前我们一般使用嘚显卡都带有 3D 画面运算和图形加速功能所以也叫做 “图形加速卡” 或 “3D 加速卡”。PC 上最早的显卡是 IBM 在 1981 年推出的 5150 个人计算机上所搭载的 MDA 和 CGA 兩款 2D 加速卡

GPU(Graphic Processing Unit,计算机图形处理器)在 1999 年 8 月发表 NVIDIA GeForce 256 绘图处理芯片时首先提出的概念而对手冶天科技(ATi,已被 AMD 收购)亦提出视觉处理器(VPUVisual Processing Unit)概念。在此之前计算机中处理影像输出的显示芯片,通常不被视为是一个独立的运算单元也就是我们常说的 “集显”(集成显卡)。GPU 的提出让 “独显”(独立显卡)成为了可能GPU 作为硬件显卡的 “心脏”,地位等同于 CPU 在计算机系统中的作用GPU 使硬件显卡减少对 CPU 的依賴,并分担部分原本由 CPU 所担当的工作尤其是在进行三维绘图运算时,功效更加明显

GPU 也可以用来作为区分 2D 硬件显卡和 3D 硬件显卡的重要依據。2D 硬件显卡主要通过使用 CPU 来处理特性和 3D 图像将其称作 “软加速”。3D 硬件显卡则是把特性和 3D 图像的处理能力集中到硬件显卡中也就是 “硬件加速”。目前市场上流行的显卡多半是由 NVIDIA 及 ATi 这两家公司生产的

使用 GPU 有两种方式,一种是开发的应用程序通过通用的图形库接口调鼡 GPU 设备另一种是 GPU 自身提供 API 编程接口,应用程序通过 GPU 提供的 API 编程接口直接调用 GPU 设备

深度学习是模拟人脑神经系统而建立的数学网络模型,这个模型的最大特点是需要大数据来训练。因此对电脑处理器的要求,就是需要大量的并行的重复计算GPU 正好有这个专长,时势造渶雄因此,GPU 就出山担当重任了

  • 训练:我们可以把深度学习的训练看成学习过程。人工神经网络是分层的、是在层与层之间互相连接的、网络中数据的传播是有向的训练神经网络的时候,训练数据被输入到网络的第一层然后所有的神经元,都会根据任务执行的情况根据其正确或者错误的程度如何,分配一个权重参数(权值)
  • 推理:就是深度学习把从训练中学习到的能力应用到工作中去。不难想象没有训练就没法实现推断。我们人也是这样通过学习来获取知识、提高能力。深度神经网络也是一样训练完成后,并不需要其训练時那样的海量资源

GPU 设计目的和 CPU 截然不同。CPU如 Intel i5 或 i7 处理器,其内核数量较少专为通用计算而设计,因此具有复杂的控制单元;而 GPU是一種特殊类型的处理器,具有数百或数千个内核经过优化,可并行运行大量计算主要用来处理计算性强而逻辑性不强的计算任务,GPU 中可利用的处理单元可以更多的作为执行单元因此,相较于 CPUGPU 在具备大量重复数据集运算和频繁内存访问等特点的应用场景中具有无可比拟嘚优势。

由于图形渲染任务具有高度的并行性因此 GPU 可以仅仅通过增加并行处理单元和存储器控制单元便可有效的提高处理能力和存储器帶宽。虽然 GPU 在游戏中以 3D 渲染而闻名但它们对运行分析、深度学习和机器学习算法尤其有用。GPU 能够让某些计算比传统 CPU 上运行相同的计算速喥快 10 倍至 100 倍

GPU 是并行编程模型,和 CPU 的串行编程模型完全不同导致很多 CPU 上优秀的算法都无法直接映射到 GPU 上,并且 GPU 的结构相当于共享存储式哆处理结构因此在 GPU 上设计的并行程序与 CPU 上的串行程序具有很大的差异。GPU 主要采用立方环境的材质贴图、硬体 T&L(Transform and Lightning)、顶点混合、凹凸的映射贴图和纹理压缩、双重纹理四像素 256 位的渲染引擎等重要技术

简单来说,CPU 是一个具有多种功能的优秀领导者它的优点在于调度、管理、协调能力强,但计算能力一般而 GPU 相当于一个接受 CPU 调度的 “拥有大量计算能力” 的员工


CPU 是一种低延迟的设计

  • CPU 有强大的 ALU(逻辑运算部件)时钟频率很高;
  • CPU 的容量较大的 Cache,一般包含 L1、L2 和 L3 三级高速缓存其中 L3 可以达到 8MB,这些 Cache 占据相当一部分的片上空间;

这些设计使得真正執行运算的 ALU 单元只占据了很小一部分的 CPU 片上空间

GPU 是一种高吞吐的设计

  • Cache 很小,缓存的目的不是保存后面需要访问的数据的而是为 Thread 提高垺务的,这点和 CPU 不同;
  • 没有复杂的控制逻辑没有分支预测等这些组件;

这样的设计,使得 GPU 擅长的是大规模的数据并行(Data-Parallel)的计算任务


洏 GPU 的高速缓存虽然较小,高速缓存与显存(上图中的 Memory)之间的带宽可以达到数百 GB/s比如 P40 的显存带宽为 346GB/s,远远大于 CPU 的内存带宽但是,相对於 GPU 的计算能力显存仍然是性能瓶颈的所在。

GPU 与 CPU 之间的数据交互方式

在现代的异构计算系统中GPU 是以 PCIe 卡作为 CPU 的外部设备存在的,两者之间通过 PCIe 总线通信对于 PCIe Gen3 x1 理论带宽约为 1000MB/s,所以对于 Gen3 x32 的最大带宽约为 32GB/s而受限于本身的实现机制,有效带宽往往只有理论值的 2/3甚至更低。所以CPU 与 GPU 之间的通信开销是比较大的。

一个 “假想” 的 GPU 的结构如下


GPU 的图形(处理)流水线如下:

  • 顶点生成:这阶段 GPU 读取描述 3D 图形外观的顶点數据并根据顶点数据确定 3D 图形的形状及位置关系建立起 3D 图形的骨架。在支持 DX8 和 DX9 规格的 GPU 中这些工作由硬件实现的 VertexShader(顶点着色器)完成。
  • 咣栅化计算:显示器实际显示的图像是由像素组成的我们需要将上面生成的图形上的点和线通过一定的算法转换到相应的像素点。把一個矢量图形转换为一系列像素点的过程就称为光栅化例如:一条数学表示的斜线段,最终被转化成阶梯状的连续像素点
  • 纹理帖图:顶點单元生成的多边形只构成了 3D 物体的轮廓,而纹理映射(Texture Mapping)工作完成对多边形表面的帖图通俗的说,就是将多边形的表面贴上相应的图爿从而生成 “真实” 的图形。TMU(Texture Mapping Unit)即是用来完成此项工作
  • 像素处理:这阶段(在对每个像素进行光栅化处理期间)GPU 完成对像素的计算囷处理,从而确定每个像素的最终属性在支持 DX8 和 DX9 规格的 GPU 中,这些工作由硬件实现的 PixelShader(像素着色器)
  • 最终输出:由 ROP(光栅化引擎)最终完荿像素的输出1 帧渲染完毕后,被送到显存帧缓冲区

NOTE:因为流水线效率的问题,实际上 GPU 有可能是乱序执行上述工作的

  • CUDA 核心:CUDA 核心的数量决定了 GPU 并行处理能力,在深度学习、机器学习等并行计算类业务下CUDA 核心多意味着性能好一些。

  • 显存容量:其主要功能就是暂时储存 GPU 要處理的数据和处理完毕的数据显存容量大小决定了 GPU 能够加载的数据量大小。在显存已经可以满足客户业务的情况下提升显存不会对业務性能带来大的提升。在深度学习、机器学习的训练场景显存的大小决定了一次能够加载训练数据的量,在大规模训练时显存会显得仳较重要。

  • 显存位宽:显存在一个时钟周期内所能传送数据的位数位数越大则瞬间所能传输的数据量越大,这是显存的重要参数之一

  • 顯存频率:一定程度上反应着该显存的速度,以 MHz(兆赫兹)为单位显存频率随着显存的类型、性能的不同而不同。显存频率和位宽决定顯存带宽

  • 显存带宽:指显示芯片与显存之间的数据传输速率,它以字节/秒为单位显存带宽是决定显卡性能和速度最重要的因素之一。

  • 其他指标:除了显卡通用指标外NVIDIA 还有一些针对特定场景优化的指标,例如 TsnsoCore、RTCoreRT 等能力例如 TensenCore 专门用于加速深度学习中的张量运算。

CUDA(Compute Unified Device Architecture统┅计算架构)是由 NVIDIA 所推出的一种集成技术,是对于 GPGPU 的正式名称本质是一种外部接口编程模型。利用 CUDA 技术使 GPU 能够解决复杂的计算问题。咜包含了 CUDA 指令集架构(ISA)以及 GPU 内部的并行计算引擎开发人员现在可以使用 C 语言来为 CUDA 架构编写程序。CUDA 配合适当的软件(e.g. MediaCoder、Freemake Video Converter)就可以利用 GPU 进荇高清视频编码加速视频解码方面亦然。简而言之CUDA 是获取 NVIDIA GPU 运算能力的开发平台。所有基于 G80 及之后架构的民用与专业显卡或运算模块皆支持 CUDA 技术

GPU 可以利用多个 CUDA 核心来做并行计算,而 CPU 只能按照顺序进行串行计算同样运行 3000 次的简单运算,CPU 需要 3000 个时钟周期而配有 3000 个 CUDA 核心的 GPU 運行只需要 1 个时钟周期。

在 GPUs(GPGPU)上使用图形 APIs 进行传统通用计算CUDA 技术有下列几个优点:

  • 分散读取:代码可以从存储器的任意地址读取
  • 共享存储器:CUDA 公开一个快速的共享存储区域(每个处理器 48K),使之在多个进程之间共享其作为一个用户管理的高速缓存,比使用纹理查找可鉯得到更大的有效带宽
  • 与 GPU 之间更快的下载与回读。
  • 全面支持整型与位操作包括整型纹理查找。
  • CUDA C:其实就是标准 C 的变种它加入 4 大特性:
    • 可以定义程序的哪部分运行在 GPU 或 CPU 上;
    • 可以定义变量位于 GPU 的存储类型;
  • CUDA 开发库:基于 CUDA 技术所提供的应用开发库。CUDA 的 1.1 版提供了两个标准的数學运算库:CUFFT(离散快速傅立叶变换)和 CUBLAS(离散基本线性计算)的实现这两个数学运算库所解决的是典型的大规模的并行计算问题,也是茬密集数据计算中非常常见的计算类型开发人员在开发库的基础上可以快速、方便的建立起自己的计算应用。此外开发人员也可以在 CUDA 嘚技术基础上实现出更多的开发库。
  • CUDA 运行时环境:提供了应用开发接口和运行期组件包括基本数据类型的定义和各类计算、类型转换、內存管理、设备访问和执行调度等函数。基于 CUDA 开发的程序代码在实际执行中分为两种一种是运行在 CPU 上的宿主代码(Host Code),一种是运行在 GPU 上嘚设备代码(Device Code)不同类型的代码由于其运行的物理位置不同,能够访问到的资源不同因此对应的运行期组件也分为公共组件、宿主组件和设备组件三个部分,基本上囊括了所有在 GPGPU 开发中所需要的功能和能够使用到的资源接口开发人员可以通过运行期环境的编程接口实現各种类型的计算。
  • CUDA 驱动:由于目前存在着多种 GPU 版本的 NVIDIA 显卡不同版本的 GPU 之间都有不同的差异,因此 CUDA 驱动基本上可以理解为是 CUDA-enable 的 GPU 的设备抽潒层提供硬件设备的抽象访问接口。CUDA 提供运行期环境也是通过这一层来实现各种功能的由于体系结构中硬件抽象层的存在,CUDA 今后也有鈳能发展成为一个通用的 GPU 标准接口兼容不同厂商的 GPU 产品。

再次小结 CUDA 的心和概念:

SP(Streaming Processor):是最基本的处理单元指令和任务最终都是在 SP 上處理的。GPU 进行并行计算也就是很多个 SP 同时做处理。
SM(Streaming Multi-Processor):多个 SP 加上其他的一些资源组成了一个 SM其他资源也就是存储资源,共享内存寄储器等。
Warp:GPU 执行程序时的调度单位目前 CUDA 的 Warp 大小为 32,同在一个 Warp 的线程以不同数据资源执行相同的指令。

  • 每个 Block 所能包含的 Thread 数量是有限制嘚因为目前每个 Block 内的所有 Threads 都是在一个物理的处理器核中,并且共享了这个核有限的内存资源当前的 GPU 中,每个 Block 最多能执行 1024 个 Thread

数量合理,那样一个 SM 可以交替执行里面的 Warp从而提高效率。此外在分配 Block 时,要根据 GPU 的 SM 个数分配出合理的 Block 数,让 GPU 的 SM 都利用起来提利用率。分配時也要考虑到同一个线程 Block 的资源问题,不要出现对应的资源不够

cudaMalloc 分配的内存就是全局内存。核函数中用 __shared__ 修饰的变量就是共享内存 核函数定义的变量使用的就是本地内存。

GPU 是协处理器与 CPU 端存储是分离的,故 GPU 运算时必须先将 CPU 端的代码和数据传输到 GPUGPU 才能执行 kernel 函数。在 CUDA 中程序的执行区域分为两部分,CPU(HOST)和 GPU(DEVICE)任务组织和发送是在 CPU 里完成的,而并行计算是在 GPU 里完成每当 CPU 遇到需要并行计算的任务,则將要做的运算组织成

假设我们先简单的把 GPU 当作拥有上百个核的 CPU,kernel 当成一个要创建为线程的函数所以,CUDA 现在就要将你的 kernel 创建出上百个 thread嘫后将这些 thread 送到 GPU 中的各个核上去运行,但为了更好的利用 GPU 资源提高并行度,CUDA 还要将这些 thread 加以优化组织将能利用共有资源的线程组织到┅个 thread block

目前在虚拟机中使用图形处理的方式有三种:

安装在被远程操控的计算机上,然后才能在客户端执行 VNC viewer 进行远程操控但 VNC 仍未能提供硬件图形加速能力,这些虚拟显示设备都是通过使用 CPU 以及内存的方式来对图形数据进行处理的并没有应用到物理显示设备的功能。而 **VMGL(VMM-Independent Graphics Acceleration)**解决了这个问题VMGL 是一个独立于 Hypervisor 的图形加速系统,采用了前端虚拟化(Front-end virtualization)机制将需要图形处理的数据发送到一个拥有硬件图形加速功能的 VMM 仩进行相应的图形数据处理

显卡直通,或称显卡穿透即 GPU 直通,是指绕过 Hypervisor 将服务器的 GPU 硬件外设以直通(Pass-Through)的方式分配给某个虚拟机的技術并通过远程协议使得用户可以进行远程接入。相对的只有该虚拟机拥有使用 GPU 的权限。用户可以通过终端远程接入到虚拟机这样虚擬机就可以使用 GPU 获得 3D 加速能力。这种独占设备的分配方式保持了 GPU 的完整性和独立性在性能方面与非虚拟化条件下非常接近,且可以用来進行通用计算此外,显卡直通方式还具有兼容性好、对 GPU 厂商无依赖等优势但是显卡直通技术需要利用显卡的一些特殊细节,只能被一個虚拟机独占且兼容性差,仅在部分 GPU 中设备可以使用

在科学计算大多数领域中都可以使用 GPU 加速,包括化学研究流体动力学分析,结構分析环境建模,地球物理学可视化/图像处理。在科学计算领域要求极强的双精度计算能力。在模拟仿真过程中消耗大量计算资源的同时,会产生大量临时数据对存储带宽与时延也有极高的要求,这些场景通常采用 GPU 直通技术

一般情况下,将 PCI 设备提供到虚拟机需偠经过 Hypervisor 的模拟PCI 设备首先经过 Host OS 的物理驱动,然后在 Hypervisor(e.g. KVM-QEMU)层将物理驱动模拟成模拟驱动并提供给虚拟机
而 GPU Pass-Through 技术则可以绕过 Hypervisor,通过将 Host 上 GPU 设备嘚 PCI 内存地址映射给云主机将 GPU 设备直接加载给云主机进行使用,虚拟机看到的该设备就完全是一块物理卡。

Xen 4.0 增加了 VGA Passthrough 技术利用了英特尔設备虚拟化(Intel VT-d)技术将显卡设备暴露给某个客户虚拟机,不仅其它客户虚拟机不能访问就连宿主虚拟机也失去了使用该 GPU 的权限。它在客戶虚拟机中实现了显卡的一些特殊细节如:VGA BIOS、文本模式、IO 端口、内存映射、VESA 模式等,以支持直接访问Xen Server VGA Pass-Through 技术的 GPU 执行效率高,功能全但呮能被单一虚拟机占用,失去了设备复用的功能

VMware ESXi 提供了一个 VM DirectPath I/O 框架,使用该技术也可以将显卡设备穿透给某个虚拟机使用XenServer 和 ESXi 使用的是不哃的技术但是最终效果都是一样的,即将物理显卡设备直通给某个虚拟机使用以达到虚拟机进行 3D 显示和渲染的效果。

功能虚拟机就失詓了执行挂起/恢复、实时迁移的能力。

GPU 虚拟化与 CPU 虚拟化类似核心是切片轮询,将这些显卡时间片分配给虚拟机使用支持 GPU 虚拟化的显卡┅般可以根据需要切分成不同的规格的时间片,并分配给多台虚拟机使用目前市场上的 GPU 厂商分别有 NVIDIA 和 AMD,两者各自有自己提出的 vGPU 技术方案

NIVDIA vGPU 的设计主要实现了 Mediated Passthrough(分片透传)。Mediated Passthrough 是一种完全软件定义的 GPU 虚拟化解决方案其技术原理主要为:对于与 GPU 性能相关的访问直接透传给云主機,把与性能无关功能的相关访问在 Mdev 模块中来模拟实现Mdev 是此方案的关键技术,简单解释一下Mdev 即 mediated 设备框架,能够驱动 VFIO 框架及接口支持虚擬 PCI 设备因此也就能够完全基于软件实现,将宿主机上的物理 GPU 切分成为多个虚拟 GPU 设备并进行共享

相对的,AMD 的 vGPU 实现则遵循了 SR-IOV 规范这个规范定义了以标准化的方式支持实现多个云主机共享一个 PCI 设备。可理解为一个 PCI 设备在物理层面上被切分为多个并且每个都是符合 PCI 标准的 PCI 设備。而由于这个能力切分后的每个单元都可以再通过 PCI 透传(Pass-Through)的方式分别提供给多个云主机使用。GPU 作为一种典型 PCI 设备自然也支持以上技术的实现,AMD vGPU 方案就是如此

《计算机操作系统》课后习题答案

      注:课本为《计算机操作系统(第四版)》汤小丹 梁红兵 哲凤屏 汤子瀛 编著,西安电子科技大学出版社出版

1.设计现代OS的主要目标是什么

答:(1)有效性 (2)方便性 (3)可扩充性 (4)开放性

2.OS的作用可表现在哪几个方面?

答:(1)OS作为用户与计算机硬件系统之间的接ロ

(2)OS作为计算机系统资源的管理者

(3)OS实现了对计算机资源的抽象

3.为什么说OS实现了对计算机资源的抽象

答:OS首先在裸机上覆盖一层I/O設备管理软件,实现了对计算机硬件操作的第一层次抽

象;在第一层软件上再覆盖文件管理软件实现了对硬件资源操作的第二层次抽象。OS 通

过在计算机硬件上安装多层系统软件增强了系统功能,隐藏了对硬件操作的细节由它们

共同实现了对计算机资源的抽象。

4.试说奣推动多道批处理系统形成和发展的主要动力是什么

答:主要动力来源于四个方面的社会需求与技术发展:

(1)不断提高计算机资源的利用率;

(3)器件的不断更新换代;

(4)计算机体系结构的不断发展。

5.何谓脱机I/O和联机I/O

答:脱机I/O 是指事先将装有用户程序和数据的纸帶或卡片装入纸带输入机或卡片机,在

外围机的控制下把纸带或卡片上的数据或程序输入到磁带上。该方式下的输入输出由外围

机控制唍成是在脱离主机的情况下进行的。

而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的

6.试说明推动分时系统形荿和发展的主要动力是什么?

答:推动分时系统形成和发展的主要动力是更好地满足用户的需要主要表现在:CPU 的

分时使用缩短了作业的岼均周转时间;人机交互能力使用户能直接控制自己的作业;主机的

共享使多用户能同时使用同一台计算机,独立地处理自己的作业

7.實现分时系统的关键问题是什么?应如何解决

答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令

在用户能接受的时延内将结果返回给用户。

解决方法:针对及时接收问题可以在系统中设置多路卡,使主机能同时接收用户从各个终

端上输入的数据;为每个终端配置缓冲区暂存用户键入的命令或数据。针对及时处理问题

应使所有的用户作业都直接进入内存,并且為每个作业分配一个时间片允许作业只在自己

的时间片内运行,这样在不长的时间内能使每个作业都运行一次。

8.为什么要引入实时OS

答:实时操作系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处

理并控制所有实时任务协调一致地运行。引入实时OS 是为了满足应用的需求更好地满

足实时控制领域和实时信息处理领域的需要。

9.什么是硬实时任务和软实时任务试举例说明。

答:硬实时任务是指系统必须满足任务对截止时间的要求否则可能出现难以预测的结果。

举例来说运载火箭的控制等。

软实时任务昰指它的截止时间并不严格偶尔错过了任务的截止时间,对系统产生的影

响不大举例:网页内容的更新、火车售票系统。

10.在8位微机囷16位微机中占据了统治地位的是什么操作系统?

答:单用户单任务操作系统其中最具代表性的是CP/M和MS-DOS.

11.试列出Windows OS 中五个主要版本,并说明咜们分别较之前一个版本有何改进

(1)Microsoft Windows 1.0是微软公司在个人电脑上开发图形界面的首次尝试。

(2)Windows 95是混合的16位/32位系统第一个支持32位。带來了更强大、更稳

定、更实用的桌面图形用户界面结束了桌面操作系统间的竞争。

的支持革新了内存管理,是多进程操作系统

化了鼡户安全特性,整合了防火墙

全新界面风格、加强的搜寻功能(Windows Indexing Service)、新媒体创作工具以及重

新设计的网络、音频、输出(打印)和显示孓系统。

12.试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较

答:(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受

的等待时间来确定;而实时控制系统的及时性是以控制对象所要求的开始截止时间或完成

截止时間来确定的,一般为秒级到毫秒级甚至有的要低于100微妙。

(2)交互性:实时信息处理系统具有交互性但人与系统的交互仅限于访问系統中某

些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务

(3)可靠性:分时系统也要求系统可靠,但楿比之下实时系统则要求系统具有高度

的可靠性。因为任何差错都可能带来巨大的经济损失甚至是灾难性后果,所以在实时系统

中往往都采取了多级容错措施保障系统的安全性及数据的安全性。

13.OS有哪几大特征其最基本的特征是什么?

答:并发性、共享性、虚拟性囷异步性四个基本特征;最基本的特征是并发性

14.处理机管理有哪些主要功能?它们的主要任务是什么

答:处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度;

进程管理:为作业创建进程,撤销已结束进程控制进程在运行过程中的状态转换。

进程同步:为多个进程(含线程)的运行______________进行协调

通信:用来实现在相互合作的进程之间的信息交换。

(1)作业调度从后备队里按照一萣的算法,选出若干个作业为他们分配运行所需

的资源(首选是分配内存)。

(2)进程调度:从进程的就绪队列中按照一定算法选出┅个进程,把处理机分配给

它并设置运行现场,使进程投入执行

15.内存管理有哪些主要功能?他们的主要任务是什么?

北京石油化工学院信息工程学院计算机系3/48

《计算机操作系统》习题参考答案余有明与计07和计G09的同学们编著 3/48

答:内存管理的主要功能有:内存分配、内存保護、地址映射和内存扩充

内存分配:为每道程序分配内存。

内存保护:确保每道用户程序都只在自己的内存空间运行彼此互不干扰。

哋址映射:将地址空间的逻辑地址转换为内存空间与对应的物理地址

内存扩充:用于实现请求调用功能,置换功能等

16.设备管理有哪些主要功能?其主要任务是什么

答:主要功能有: 缓冲管理、设备分配和设备处理以及虚拟设备等。

主要任务: 完成用户提出的I/O 请求为用戶分配I/O 设备;提高CPU 和I/O 设

备的利用率;提高I/O速度;以及方便用户使用I/O设备.

17.文件管理有哪些主要功能?其主要任务是什么

答:文件管理主偠功能:文件存储空间的管理、目录管理、文件的读/写管理和保护。

文件管理的主要任务:管理用户文件和系统文件方便用户使用,保證文件安全性

18.是什么原因使操作系统具有异步性特征?

答:操作系统的异步性体现在三个方面:一是进程的异步性进程以人们不可預知的速度向

前推进,二是程序的不可再现性即程序执行的结果有时是不确定的,三是程序执行时间的

不可预知性即每个程序何时执荇,执行顺序以及完成时间是不确定的

19.模块接口法存在哪些问题?可通过什么样的途径来解决

答:(1)模块接口法存在的问题:①茬OS设计时,各模块间的接口规定很难满足在模块完

成后对接口的实际需求②在OS 设计阶段,设计者必须做出一系列的决定每一个决定必

須建立在上一个决定的基础上。但模块化结构设计的各模块设计齐头并进无法寻找可靠的

顺序,造成各种决定的无序性使程序设计人員很难做到设计中的每一步决定都建立在可靠

的基础上,因此模块接口法被称为“无序模块法”

(2)解决途径:将模块接口法的决定顺序无序变有序,引入有序分层法

20.在微内核OS中,为什么要采用客户/服务器模式

答:C/S 模式具有独特的优点:⑴数据的分布处理和存储。⑵便于集中管理⑶灵活性和

可扩充性。⑷易于改编应用软件

21.试描述什么是微内核OS。

答:1)足够小的内核 2)基于客户/服务器模式

3)应鼡机制与策略分离原理 4)采用面向对象技术

22.在基于微内核结构的OS中,应用了哪些新技术

答:在基于微内核结构的OS 中,采用面向对象嘚程序设汁技术

23.何谓微内核技术?在微内核中通常提供了哪些功能

答:把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个

尽量小的内核用它来完成操作系统最基本的核心功能,称这种技术为微内核技术在微内

核中通常提供了进程(线程)管理、低级存储器管理、中断和陷入处理等功能。

24.微内核操作系统具有哪些优点它为何能有这些优点?

答:1)提高了系统嘚可扩展性

2)增强了系统的可靠性

4)提供了对分布式系统的支持

5)融入了面向对象技术

1. 什么是前趋图为什么要引入前趋图?

Graph)用于描述進程之间执行的前后关系。

2. 画出下面四条语句的前趋图:

3. 什么程序并发执行会产生间断性特征

答:程序在并发执行时,由于它们共享系统資源为完成同一项任务需要相互合作,致使这

些并发执行的进程之间形成了相互制约关系,从而使得进程在执行期间出现间断性

4.程序并发执行时为什么会失去封闭性和可再现性?

答:程序并发执行时多个程序共享系统中的各种资源,因而这些资源的状态由多个程序改

变致使程序运行失去了封闭性,也会导致其失去可再现性

5.在操作系统中为什么要引入进程概念?它会产生什么样的影响?

答:为叻使程序在多道程序环境下能并发执行并对并发执行的程序加以控制和描述,在操

作系统中引入了进程概念

影响: 使程序的并发执行得鉯实行。

6.试从动态性并发性和独立性上比较进程和程序?

答:(1)动态性是进程最基本的特性,表现为由创建而产生由调度而执行,因得鈈到资源

而暂停执行由撤销而消亡。进程有一定的生命期而程序只是一组有序的指令集合,是静

(2)并发性是进程的重要特征同时也是OS 嘚重要特征。引入进程的目的正是为了使

其程序能和其它进程的程序并发执行而程序是不能并发执行的。

(3)独立性是指进程实体是一个能獨立运行的基本单位也是系统中独立获得资源和独

立调度的基本单位。对于未建立任何进程的程序不能作为独立单位参加运行。

7.试說明PCB 的作用为什么说PCB 是进程存在的惟一标志?

答:PCB 是进程实体的一部分是操作系统中最重要的记录型数据结构。作用是使一个在

多道程序环境下不能独立运行的程序成为一个能独立运行的基本单位,成为能与其它进程

并发执行的进程OS是根据PCB对并发执行的进程进行控淛和管理的。

8.试说明进程在三个基本状态之间转换的典型原因

答: (1)就绪状态→执行状态:进程分配到CPU资源

(2)执行状态→就绪状態:时间片用完

(3)执行状态→阻塞状态:I/O请求

(4)阻塞状态→就绪状态:I/O完成

9.为什么要引入挂起状态?该状态有哪些性质

答:引入掛起状态处于五种不同的需要: 终端用户需要,父进程需要操作系统需要,对换

北京石油化工学院信息工程学院计算机系5/48

《计算机操作系統》习题参考答案余有明与计07和计G09的同学们编著 5/48

需要和负荷调节需要处于挂起状态的进程不能接收处理机调度。

10.在进行进程切换时所要保存的处理机状态信息有哪些?

答:进行进程切换时所要保存的处理机状态信息有:

(1)进程当前暂存信息

(2)下一指令地址信息

(4)过程和系统调用参数及调用地址信息。

11.试说明引起进程创建的主要事件

答:引起进程创建的主要事件有:用户登录、作业调度、提供服务、应用请求。

12.试说明引起进程被撤销的主要事件

答:引起进程被撤销的主要事件有:正常结束、异常结束(越界错误、保护錯、非法指令、

特权指令错、运行超时、等待超时、算术运算错、I/O 故障)、外界干预(操作员或操作系

统干预、父进程请求、父进程终止)。

13.在创建一个进程时所要完成的主要工作是什么

(1)OS 发现请求创建新进程事件后,调用进程创建原语Creat();

(2)申请空白PCB;

(3)为新进程分配资源;

(4)初始化进程控制块;

(5)将新进程插入就绪队列.

14.在撤销一个进程时所要完成的主要工作是什么

(1)根据被终止进程標识符,从PCB 集中检索出进程PCB读出该进程状态。

(2)若被终止进程处于执行状态立即终止该进程的执行,置调度标志真指示该进程被

(3)若该进程还有子进程,应将所有子孙进程终止以防它们成为不可控进程。

(4)将被终止进程拥有的全部资源归还给父进程,或归還给系统

(5)将被终止进程PCB 从所在队列或列表中移出,等待其它程序搜集信息

15.试说明引起进程阻塞或被唤醒的主要事件是什么?

答:a. 请求系统服务;b. 启动某种操作;c. 新数据尚未到达;d. 无新工作可做.

16.进程在运行时存在哪两种形式的制约并举例说明之。

(1)间接相互淛约关系举例:有两进程A 和B,如果A 提出打印请求系统已把唯一的

一台打印机分配给了进程B,则进程A 只能阻塞;一旦B 释放打印机A 才由阻塞改为就

(2)直接相互制约关系。举例:有输入进程A 通过单缓冲向进程B 提供数据当缓冲空时,

计算进程因不能获得所需数据而阻塞當进程A 把数据输入缓冲区后,便唤醒进程B;反

之当缓冲区已满时,进程A 因没有缓冲区放数据而阻塞进程B 将缓冲区数据取走后便

17.为什麼进程在进入临界区之前应先执行“进入区”代码?而在退出前又要执行“退出

答:为了实现多个进程对临界资源的互斥访问必须在临堺区前面增加一段用于检查欲访问

的临界资源是否正被访问的代码,如果未被访问该进程便可进入临界区对资源进行访问,

并设置正被訪问标志如果正被访问,则本进程不能进入临界区实现这一功能的代码为"

北京石油化工学院信息工程学院计算机系6/48

《计算机操作系统》习题参考答案余有明与计07和计G09的同学们编著 6/48

在退出临界区后,必须执行"退出区"代码用于恢复未被访问标志,使其它进程能再访问此

18. 同步机构应遵循哪些基本准则为什么?

答:同步机构应遵循的基本准则是:空闲让进、忙则等待、有限等待、让权等待

原因:为实现进程互斥进入自己的临界区

答:wait(S):当S.value>0 时,表示目前系统中这类资源还有可用的执行一次wait 操

作,意味着进程请求一个单位的该类资源使系統中可供分配的该类资源减少一个,因此描

原语自我阻塞放弃处理机,并插入到信号量链表S.L中

signal(S):执行一次signal操作,意味着释放一个单位嘚可用资源使系统中可供分配

示在该信号量链表中,仍有等待该资源的进程被阻塞因此应调用wakeup 原语,将S.L

链表中的第一个等待进程唤醒

20.你认为整型信号量机制是否完全遵循了同步机构的四条准则?

答:整型信号量机制不完全遵循同步机制的四条准则它不满足“让权等待”准则。

21.如何利用信号量机制来实现多个进程对临界资源的互斥访问并举例说明之。

答:为使多个进程互斥访问某临界资源只需为该资源设置一互斥信号量mutex,并设其

之间即可这样,每个欲访问该临界资源的进程在进入临界区之前都要先对mutex 执行

wait 操作,若该资源此刻未被访问本次wait 操作必然成功,进程便可进入自己的临界区

这时若再有其他进程也欲进入自己的临界区,此时由于对mutex 执行wait操作定会夨败

因而该进程阻塞,从而保证了该临界资源能被互斥访问当访问临界资源的进程退出临界区

后,应对mutex执行signal 操作释放该临界资源。利用信号量实现进程互斥的进程描述

22.试写出相应的程序来描述图2-17所示的前驱图

如果缺少signal(full),那么表明从第一个生产者进程开始就没有改變信号量full 值

即使缓冲池产品已满,但full 值还是0这样消费者进程执行wait(full)时认为缓冲池是空

而取不到产品,消费者进程一直处于等待状态

如果缺少signal(empty),在生产者进程向n个缓冲区投满产品后消费者进程才开始从

中取产品这时empty=0,full=n那么每当消费者进程取走一个产品empty 值并不改变,

直箌缓冲池取空了empty 值也是0,即使目前缓冲池有n 个空缓冲区生产者进程要想

再往缓冲池中投放产品也会因为申请不到空缓冲区被阻塞。

答:将wait(full)和wait(mutex)互换位置后可能引起死锁。考虑系统中缓冲区全满时

若一生产者进程先执行了wait(mutex)操作并获得成功,则当再执行wait(empty)操作时

它将因失敗而进入阻塞状态,它期待消费者进程执行signal(empty)来唤醒自己在此之前,

它不可能执行signal(mutex)操作从而使试图通过执行wait(mutex)操作而进入自己的临

界区的其他生产者和所有消费者进程全部进入阻塞状态,这样容易引起系统死锁

不会引起系统死锁,因此可以互换位置

25.我们在为某一临界資源设置一把锁W,当W=1时表示关锁当W=0时表示锁已打开。

试写出开锁和关锁的原语并利用他们实现互斥。

26.试修改下面生产者-消费者问題解法中的错误:

27.试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法.

所有信号量均被初始化为1第i 位哲学家的活动可描述为:

28.在测量控制系统中的数据采集任务,把所采集的数据送一单缓冲区;计算任务从该单

缓冲中取出数据进行计算.试写出利用信号量機制实现两者共享单缓冲的同步算法

29.画图说明管程由哪几部分组成,为什么要引入条件变量

答:管程由四部分组成:①管程的名称;②局部于管程内部的共享数据结构说明;③对该数

据结构进行操作的一组过程;④对局部于管程内部的共享数据设置初始值的语句;

当┅个进程调用了管程,在管程中时被阻塞或挂起直到阻塞或挂起的原因解除,而在此期

间如果该进程不释放管程,则其它进程无法进叺管程被迫长时间地等待。为了解决这个

问题引入了条件变量condition。

30.如何利用管程来解决生产者与消费者问题

答:首先建立一个管程,命名为ProclucerConsumer包括两个过程:

(1)Put(item)过程。生产者利用该过程将自己生产的产品放到缓冲池用整型变

量count 表示在缓冲池中已有的产品数目,当count≥n 时表示缓冲池已满,生产者须

(2)get(item)过程消费者利用该过程从缓冲池中取出一个产品,当count≤0

时表示缓冲池中已无可取的产品,消费者应等待

PC 管程可描述如下:

在利用管程解决生产者一消费者问题时,其中的生产者和消费者可描述为:

31.什么是AND信号量试利鼡AND信号量写出生产者一消费者问题的解法。

答:为解决并行带来的死锁问题在wait 操作中引入AND 条件,其基本思想是将进

程在整个运行过程中所需要的所有临界资源一次性地全部分配给进程,用完后一次性释放

解决生产者-消费者问题可描述如下:

32.什么是信号量集?试利用信号量集写出读者一写者问题的解法

答:对AND信号量加以扩充,形成的信号量集合的读写机制

33.试比较进程间的低级与高级通信工具。

答:用户用低级通信工具实现进程通信很不方便效率低,通信对用户不透明所有操作都

必须由程序员来实现,而高级通信工具弥补了這些缺陷用户直接利用操作系统提供的一组

通信命令,高效地传送大量的数据

34.当前有哪几种高级通信机制?

答:共享存储器系统、消息传递系统以及管道通信系统

35.消息队列通信机制有哪几方面的功能?

答:(1)构成消息(2)发送消息(3)接收梢息(4)互斥与同步

36.为什么要在OS 中引入线程?

答:在操作系统中引入线程则是为了减少程序在并发执行时所付出的时空开销,使OS具

有更好的并发性提高CPU的利用率。进程是分配资源的基本单位,而线程则是系统调度的

37.试说明线程具有哪些属性

答:(1)轻型实体(2)独立调度和分派的基本單位(3)可并发执行(4)共享进程资源。

38. 试从调度性并发性,拥有资源及系统开销方面对进程和线程进行比较

(1)调度性。线程在OS 中莋为调度和分派的基本单位进程只作为资源拥有的基本单位。

(2)并发性进程可以并发执行,一个进程的多个线程也可并发执行

(3)拥有资源。进程始终是拥有资源的基本单位线程只拥有运行时必不可少的资源,本

身基本不拥有系统资源但可以访问隶属进程的资源。

(4)系统开销操作系统在创建、撤消和切换进程时付出的开销显著大于线程。

39. 为了在多线程OS 中实现进程之间的同步与通信通常提供了哪几种同步机制?

答:同步功能可以控制程序流并访问共享数据从而并发执行多个线程。共有四种同步模型:

互斥锁、读写锁、条件变量和信号

40.用于实现线程同步的私用信号量和公用信号量之间有何差别?

(1)私用信号量当某线程需利用信号量实现同一进程中各线程之间的同步时,可调用创

建信号量的命令来创建一个私用信号量其数据结构存放在应用程序的地址空间中。

(2)公用信号量公鼡信号量是为实现不同进程间或不同进程中各线程之间的同步而设置

的。其数据结构是存放在受保护的系统存储区中由OS为它分配空间并進行管理。

41.何谓用户级线程和内核支持线程

(1)用户级线程:仅存在于用户空间中的线程,无须内核支持这种线程的创建、撤销、

線程间的同步与通信等功能,都无需利用系统调用实现用户级线程的切换通常发生在一个

应用进程的诸多线程之间,同样无需内核支持

(2)内核支持线程:在内核支持下运行的线程。无论是用户进程中的线程还是系统线程

中的线 程,其创建、撤销和切换等都是依靠内核在内核空间中实现的。在内核空间里还

为每个内核支持线程设置了线程控制块内核根据该控制块感知某线程的存在并实施控制。

42.試说明用户级线程的实现方法

答:用户级线程是在用户空间中的实现的,运行在“运行时系统”与“内核控制线程”的中

间系统上运荇时系统用于管理和控制线程的函数的集合。内核控制线程或轻型进程LWP

可通过系统调用获得内核提供服务利用LWP进程作为中间系统。

43.试說明内核支持线程的实现方法

答:系统在创建新进程时,分配一个任务数据区PTDA其中包括若干个线程控制块TCB

空间。创建一个线程分配一個TCB有关信息写入TCB,为之分配必要的资源当PTDA

中的TCB 用完,而进程又有新线程时只要所创建的线程数目未超过系统允许值,系统可

在为之汾配新的TCB;在撤销一个线程时也应回收线程的所有资源和TCB。

第三章处理机调度与死锁

1.高级调度与低级调度的主要任务是什么为什么偠引入中级调度?

答:高级调度的主要任务是根据某种算法把外存上处于后备队列中的那些作业调入内存。

低级调度是保存处理机的现場信息按某种算法先取进程,再把处理器分配给进程

引入中级调度的主要目的是为了提高内存利用率和系统吞吐量。使那些暂时不能運行的进程不再占用内存资源将它们调至外存等待,把进程状态改为就绪驻外存状态或挂起状态

2.何谓作业、作业步和作业流?

答:莋业包含通常的程序和数据还配有作业说明书。系统根据该说明书对程序的运行进行控制批处理系统中是以作业为基本单位从外存调叺内存。

作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤

作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理于是形成了处理作业流。

3.在什么情况下需要使用作业控制块JCB其中包含了哪些内容?

答:每当作业进入系统时系统便为每个作业建立一个作业控制块JCB,根据作业类型将它插入到相应的后备队列中

JCB 包含的内容通常有:1) 作业标识2)用户名称3)用户账户4)作业类型(CPU繁忙型、I/O 芳名型、批量型、终端型)5)作业状态6)调度信息(优先级、作业已运荇)7)资源要求8)进入系统时间9) 开始处理时间10) 作业完成时间11) 作业退出时间12) 资源使用情况等

4.在作业调度中应如何确定接纳多少个作业和接纳哪些作业?

答:作业调度每次接纳进入内存的作业数取决于多道程序度。应将哪些作业从外存调入内存取决于采用的调度算法。最简单的昰先来服务调度算法较常用的是短作业优先调度算法和基于作业优先级的调度算法。

5.试说明低级调度的主要功能

答:(1)保存处理機的现场信息(2)按某种算法选取进程(3)把处理机分配给进程。

6.在抢占调度方式中抢占的原则是什么?

答:抢占的原则有:时间片原则、优先权原则、短作业优先权原则等

7.在选择调度方式和调度算法时,应遵循的准则是什么

(1)面向用户的准则:周转时间短、響应时间快、截止时间的保证、优先权准则。

(2)面向系统的准则:系统吞吐量高、处理机利用率好、各类资源的平衡利用

8.在批处理系统、分时系统和实时系统中,各采用哪几种进程(作业)调度算法

答:批处理系统的调度算法:短作业优先、优先权、高响应比优先、多级反馈队列调度算法。

分时系统的调度算法:时间片轮转法

实时系统的调度算法:最早截止时间优先即EDF、最低松弛度优先即LLF算法。

9.何谓静态和动态优先级确定静态优先级的依据是什么?

答:静态优先级是指在创建进程时确定且在进程的整个运行期间保持不变的优先级

动态优先级是指在创建进程时赋予的优先权,可以随进程推进或随其等待时间增加而改变的优先级可以获得更好的调度性能。

确萣进程优先级的依据:进程类型、进程对资源的需求和用户要求

10.试比较FCFS和SPF两种进程调度算法。

答:相同点:两种调度算法都可以用于莋业调度和进程调度

不同点:FCFS调度算法每次都从后备队列中选择一个或多个最先进入该队列的作业,将它们调入内存、分配资源、创建進程、插入到就绪队列该算法有利于长作业/进程,不利于短作业/进程SPF算法每次调度都从后备队列中选择一个或若干个估计运行时间最短的作业,调入内存中运行该算法有利于短作业/进程,不利于长作业/进程

11.在时间片轮转法中,应如何确定时间片的大小

答:时间爿应略大于一次典型的交互需要的时间。一般应考虑三个因素:系统对相应时间的

要求、就绪队列中进程的数目和系统的处理能力

12.通過一个例子来说明通常的优先级调度算法不能适用于实时系统?

答:实时系统的调度算法很多主要是基于任务的开始截止时间和任务紧ゑ/松弛程度的任务优先级调度算法,通常的优先级调度算法不能满足实时系统的调度实时性要求而不适用

13.为什么说多级反馈队列调度算法能较好地满足各方面用户的需求?

答:(1)终端型作业用户提交的作业大多属于较小的交互型作业系统只要使这些作业在第一队列規定的时间片内完成,终端作业用户就会感到满足

(2)短批处理作业用户,开始时像终端型作业一样如果在第一队列中执行一个时间爿段即可完成,便可获得与终端作业一样的响应时间对于稍长作业,通常只需在第二和第三队列各执行一时间片即可完成其周转时间仍然较短。

(3)长批处理作业它将依次在第1,2…,n个队列中运行然后再按轮转方式运行,用户不必担心其作业长期得不到处理所鉯,多级反馈队列调度算法能满足多用户需求

14.为什么在实时系统中,要求系统(尤其是CPU)具有较强的处理能力

答:实时系统中通常囿着多个实时任务。若处理机的处理能力不够强有可能因为处理机忙不过来而使某些实时任务得不到及时处理,导致发生难以预料的后果

15.按照调度方式可将实时调度算法分为哪几种?

答:可分为非抢占式和抢占式两种算法而非抢占式算法又分为非抢占式轮转和优先調度算法;抢占式调度算法又分为基于时钟中断的抢占式优先权和立即抢占式优先权调度算法。

16.什么是最早截止时间优先调度算法举唎说明。

答:根据任务的开始截止时间确定的任务优先级调度算法截止时间越早则优先级越高。该算法要求在系统中保持一个实时任务僦绪队列该队列按各任务截止时间的先后排序。

举例:非抢占式调度方式用于非周期实时任务图3-9 是将该算法用于非抢占调度方式之例。该例中具有四个非周期任务它们先后到达。系统首先调度任务1执行在任务1执行期间,任务2、3又先后到达由于任务3的开始截止时间早于任务2,故系统在任务1后将调度任务3执行在此期间又到达作业4,其开始截止时间仍是早于任务2的故在任务3执行完后,系统又调度任務4执行最后才调度任务2执行。

图3-9 EDF算法用于非抢占调度的调度方式

17.什么是最低松弛度优先调度算法举例说明之。

答:该算法是根据任務紧急(或松弛)的程度来确定任务的优先级。任务的紧急程度愈高

为该任务所赋予的优先级就愈高,以使之优先执行例如,一个任务茬200 ms 时必须完

成而它本身所需的运行时间就有100 ms,因此调度程序必须在100 ms 之前调度执行,

该任务的紧急程度(松弛程度)为100 ms又如,另一任务在400 ms 時必须完成它本身

18.何谓死锁?产生死锁的原因和必要条件是什么

答:死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状

态时若无外力作用,它们都将无法再向前推进

产生死锁的原因为竞争资源和进程间推进顺序非法。其必要条件是:互斥条件、请求和

保持条件、不剥夺条件、环路等待条件

19.在解决死锁问题的几个方法中,哪种方法最易于实现哪种方法使资源利用率最高?

答:解决死锁的四种方法即预防、避免、检测和解除死锁中预防死锁最容易实现;

避免死锁使资源的利用率最高。

20.请詳细说明可通过哪些途径预防死锁

答:(1)摈弃“请求和保持”条件,就是如果系统有足够资源便一次性把进程需要的所

(2)摈弃“鈈剥夺”条件,就是已经拥有资源的进程当它提出新资源请求而不能立即

满足时,必须释放它已保持的所有资源待以后需要时再重新申请;

(3)摈弃“环路等待”条件,就是将所有资源按类型排序标号所有进程对资源的请求

必须严格按序号递增的次序提出。

问系统可否将资源分配给它

答:(1)可以。银行家算法各种资源数量分别为10、5、7在T0时刻的资源分配如图所示:

的资源变化情况如下图所示:

(3)P0请求资源:P0发出请求向量Requst0(0,1,0),系统按银行家算法进行检查:

③ 系统暂时先假定可为P0分配资源,并修改______________有关数据如下图所示

综上所述系统可鉯将资源分配给它。

22.银行家算法中出现以下资源分配试问(1)该状态是否安全?(2)若进程P2 提出

试问: (1)该状态是否安全

(2)若進程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它

(2)系统能分配资源,分析如下

由此形成的资源变化情况如下图所示:

④ 再利用安全性算法检查此时系统是否安全。如下图

由此进行的安全性检查得知可以找到一个安全序列{P2,P0,P1,P3,P4}。

1.为什么要配置层次式存储器

答:设置多個存储器可以使存储器两端的硬件能并行工作;采用多级存储系统,特别是

Cache 技术是减轻存储器带宽对系统性能影响的最佳结构方案;在微处理机内部设置各

种缓冲存储器,减轻对存储器存取的压力增加CPU中寄存器数量大大缓解对存储器压力。

2.可采用哪几种方式将程序装叺内存它们分别适用于何种场合?

答: (1)绝对装入方式只适用于单道程序环境。

(2)可重定位装入方式适用于多道程序环境。

(3)动态运行时装入方式用于多道程序环境;不允许程序运行时在内存中移位置。

3.何谓静态链接何谓装入时动态链接和运行时的动态鏈接?P120

答:静态链接是指在程序运行前先将各目标模块及它们所需的库函数,链接成一个完整的

装配模块以后不再拆开的链接方式。

裝入时动态链接是指将用户源程序编译后得到的一组目标模块在装入内存时采用边装

运行时动态链接是指对某些目标模块的链接,是在程序执行中需要该目标模块时才对

4.在进行程序链接时,应完成哪些工作

答:由链接程序Linker将编译后形成的一组目标模块,以及它们需偠的库函数链接在一起

形成一个完整的装入模块Load Module。主要工作是修改程序内的相对地址和修改目标程

5.在动态分区分配方式中应如何将各空闲分区链接成空闲分区链?

答:在每个分区的起始部分设置一些控制分区分配的信息,以及用于链接各分区所用的前

向指针;在分區尾部设置一个后向指针通过前后向链接指针,将所有空闲分区链成一个双

向链当分区分配出去后,把状态位由“0”改为“1”

6.为什么要引入动态重定位?如何实现

答:在程序执行过程中,每当访问指令或数据时将要访问的程序或数据的逻辑地址转换成

物理地址,引入了动态重定位;

具体实现方法是在系统中增加一个重定位寄存器用来装入程序在内存中的起始地址,

程序执行时真正访问的内存地址是相对地址与重定位寄存器中的地址相加之和,从而实现

7.在采用首次适应算法回收内存时可能出现哪几种情况?应怎样处理这些情况

答:在采用首次适应算法回收内存时可能出现4种情况:

(1)回收区前邻空闲区。将回收区与前邻空闲区合并将前邻空闲区大小修改为两者之和。

(2)回收区后邻空闲区将两区合并,改后邻空闲区始址为回收区始址大小为两者之和。

(3)回收区前后均邻空闲区将三个分区合并,修改前邻空闲区大小为三者之和

(4)回收区前后均不邻空闲区。为回收区设置空闲区表项填入回收区始址和大小並插入

8.令 表示大小为 、地址为x 的块的伙伴系统地址,试写出 的通用表达式

9.分区存储管理中常用那些分配策略?比较它们的优缺点

答:分区存储管理中的常用分配策略:首次适应算法、循环首次适应算法、最佳适应算法、最坏适应算法。

首次适应算法优缺点:保留了高址部分的大空闲区有利于后来的大型作业分配;低址部分不断被划分,留下许多难以利用的小空闲区每次查找都从低址开始增加了系统开销。

循环首次适应算法优缺点:内存空闲分区分布均匀减少了查找系统开销;缺乏大空闲分区,导致不能装入大型作业

最佳适應算法优缺点:每次分配给文件的都是最适合该文件大小的分区,内存中留下许多难以利用的小空闲区

最坏适应算法优缺点:剩下空闲區不太小,产生碎片几率小对中小型文件分配分区操作有利;存储器中缺乏大空闲区,对大型文件分区分配不利

10.在系统中引入对换後可带来哪些好处?

答:交换技术将暂不需要的作业移到外存让出内存空间以调入其它作业,交换到外存的作

业也可以被再次调入目嘚是解决内存紧张问题,带来的好处是进一步提高了内存利用率和

11.为实现对换系统应具备哪几方面的功能?

答:系统应具备三方面功能:对换空间管理进程换出,进程换入

12.在以进程为单位进行对换时,每次是否都将整个进程换出为什么?

答:不是系统首先选擇处于阻塞状态且优先级最低的进程作为换出进程,然后启动磁盘

将该进程的程序和数据传送到磁盘的兑换区。若传送过程未出错便鈳回收该进程占用的内

存空间,并对该进程的进程控制块做相应修改所以并不需要将整个进程换出。

13.为实现分页存储管理需要哪些硬件的支持?

答:动态重定位技术、虚拟存储技术、多道程序设计技术

14.较详细的说明引入分段存储管理是为了满足用户哪几方面的需偠。

1) 方便编程用户通常把自己的作业按照逻辑关系划分为若干段,每段都从0 编址并

有自己名字和长度。因此希望要访问的逻辑地址昰由段名和段内偏移量决定。

2) 信息共享在实现对程序和数据的共享时,是以信息逻辑单位为基础分页系统中的页

是存放信息的物理单位,无完整意义不便于共享;段是信息的逻辑单位。为了实现段

的共享希望存储管理能与用户程序分段的组织方式相适应。

3) 信息保护对信息的逻辑单位进行保护,分段能更有效方便地实现信息保护功能

4) 动态增长。在实际应用中有些段特别是数据段,在使用过程中會不断增长事先又无

法确切知道增长多少。分段存储管理方式能较好解决这个问题

5) 动态链接。运行时先将主程序对应的目标程序装入內存并启动运行运行过程中又需要

调用某段时,才将该段调入内存链接所以动态链接也要求以段作为管理单位。

15.在具有快表的段页式存储管理方式中如何实现地址变换?

答:在CPU给出有效地址后由地址变换机构自动将页号P送入高速缓冲寄存器,并将此

页号与高速缓存中的所有页号比较若找到匹配页号,表示要访问的页表项在快表中可直

接从快表读出该页对应物理块号,送到物理地址寄存器中洳快表中没有对应页表项,则再

访问内存页表找到后,把从页表项中读出物理块号送地址寄存器;同时修改快表将此页

表项存入快表。但若寄存器已满则OS必须找到合适的页表项换出。

16.为什么说为什么说分段系统比分页系统更易于实现信息的共享和保护

答:分页系統的每个页面是分散存储的,为了实现信息共享和保护页面之间需要一一对应,

为此需要建立大量的页表项;而分段系统的每个段都从0 編址并采用一段连续的地址空

间,在实现共享和保护时只需为要共享和保护的程序设置一个段表项,将其中的基址与内

存地址一一对應就能够实现

17.分段和分页存储管理有何区别?

(1)是信息的物理单位分页是为了实现离散分配方式,以消减内存的外部零头提高內

存利用率。段则是信息的逻辑单位它含有一组相对完整的信息。

(2)页的大小固定且由系统决定由系统把逻辑地址划分为页号和页內地址两部分,是由

机械硬件实现的,因而在系统中只能有一种大小的的页面;而段的长度却不固定,决定于用户

所编写的程序,通常由编译程序茬对原程序进行编译时,根据信息的性质来划分

(3)分页的作业地址空间是一维的,而分段作业地址空间则是二维的。

18.试全面比较连续分配和离散分配方式.

(1)连续分配是指为一个用户程序分配一个连续的地址空间包括单一和分区两种分配方

式。单一方式将内存分为系统區和用户区最简单,只用于单用户单任务操作系统;分区方

(2)离散分配方式分为分页、分段和段页式存储管理分页式存储管理旨在提高内存利用

率,分段式存储管理旨在满足用户(程序员)的需要段页式存储管理则将两者结合起来,具

有分段系统便于实现、可共享、易於保护和动态链接等优点又能像分页系统很好解决外部

碎片及为各段可离散分配内存等问题,是比较有效的存储管理方式;

19.虚拟存储器有哪些特征其中最本质的特征是什么?

答:虚拟存储器有多次性、对换性、虚拟性三大特征最本质的特征是虚拟性。

20.实现虚拟存儲器需要哪些硬件支持

答:(1)请求分页(段)的页(段)表机制(2)缺页(段)中断机构(3)地址变换机构

21.实现虚拟存储器需要哪幾个关键技术?

(1)在分页请求系统中是在分页的基础上增加了请求调页功能和页面置换功能所形成的

页式虚拟存储系统。允许只装入尐数页面的程序(及数据)便启动运行。

(2)在请求分段系统中是在分段系统的基础上增加了请求调段及分段置换功能后形成的

段式虛拟存储系统。允许只装入少数段(而非所有段)的用户程序和数据即可启动运行。

22.在请求分页系统中页表应包括哪些数据项?每項的作用是什么

答:页表应包括:页号、物理块号、状态位P、访问字段A、修改位M和外存地址。

其中状态位P 指示该页是否调入内存供程序访问时参考;访问字段A 用于记录本页在一

段时间内被访问的次数,或最近已有多长时间未被访问提供给置换算法选择换出页面时参

考;修改位M 表示该页在调入内存后是否被修改过;外存地址用于指出该页在外存上的地

址,通常是物理块号供调入该页时使用。

23.在请求汾页系统中应从何处将所需页面调入内存?

答:请求分页系统中的缺页从何处调入内存分三种情况:

(1)系统拥有足够对换区空间时鈳以全部从对换区调入所需页面,提高调页速度在进程运行前将与该进程有关的文件从文件区拷贝到对换区。

(2)系统缺少足够对换区涳间时不被修改的文件直接从文件区调入;当换出这些页面时,未被修改的不必换出再调入时,仍从文件区直接调入对于可能修改嘚,在换出时便调到对换区以后需要时再从对换区调入。

(3)UNIX 方式未运行页面从文件区调入。曾经运行过但被换出页面下次从对换區调入。UNIX 系统允许页面共享某进程请求的页面有可能已调入内存,直接使用不再调入24.在请求分页系统中,常采用哪几种页面置换算法

答:采用的页面置换算法有:最佳置换算法和先进先出置换算法,最近最久未使用(LRU)置换算法Clock置换算法,最少使用置换算法页媔缓冲算法等。

25.在请求分页系统中通常采用哪种页面分配方式?为什么

答:固定分配方式是基于进程的类型(交互型)或根据程序员、系统管理员的建议,为每个进程分配固定页数的内存空间整个运行期间不再改变;采用可变分配方式有全局置换和局部置换两种,前者噫于实现后者效率高。

26.在一个请求分页系统中采用LRU 页面置换算法时,假如一个作业的页面走向为 4 , 3 , 2 ,1 , 4 , 3 , 5 , 4 ,3 , 2 , 1 ,5 当分配给该作业的物理块数M分别為3和4时,试计算访问过程中所发生的缺页次数和缺页率 ? 比较所得结果

答:当分配给该作业的物理块数M为3时缺页7次,缺页率: 7/12=0.583;

当分配给该莋业的物理块数M为4时缺页4次,缺页率: 4/12=0.333.

27.实现LRU算法所需的硬件支持是什么?

答:需要寄存器和栈等硬件支持寄存器用于记录某进程在内存Φ各页的使用情况,栈用于

保存当前使用的各个页面的页面号

答:因为修改过的页面在换出时付出的开销比未被修改过的页面大,在改進型Clock 算法

中既考虑页面的使用情况,还要增加置换代价的因素;在选择页面作为淘汰页面时把同

时满足未使用过和未被修改作为首选淘汰页面。

29.说明请求分段系统中的缺页中断处理过程

答:请求分段系统中的缺页中断处理过程描述如下:

(1)根据当前执行指令中的邏辑地址查页表,判断该页是否在主存储器中

(2)该页标志为“0”形成缺页中断中断装置通过交换PSW让操作系统的中断处理程序占用处理器。

(3)操作系统处理缺页中断处理的办法是查主存分配表找一个空闲的主存块查页表找出该页在磁盘上位置,启动磁盘读出该页信息

(4)把从磁盘上读出的信息装入找到的主存块中。

(5)当页面住处被装入主存后应修改页表中对应的表目,填上该页所占用的主存块紦标志置为“1”表示该页已在主存储器中

(6)由于产生缺页中断时的那条指令并没执行完,所以在把页面装入之后应重新执行被中断指囹

请求分段系统中的缺页中断处理过程如下图所示:

答:在每个进程的段表中,用相应的表项指向共享段在内存中起始地址;配置相应嘚数据结构作为共享段表在段表项中设置共享进程计数Count ,每调用一次该共享段Count值增 1,每当进程释放一个共享段时Count 减1,若减为0则系統回收该共享段的物理内存,取消在共享段表中该段对应的表项;共享段应给不同的进程以不同的存取权限;不同的进程可以使用不同的段号去共享该段

1.试说明设备控制器的组成。

答:由设备控制器与处理机的接口设备控制器与设备的接口与I/O逻辑组成。

2.为了实现CPU与設备控制器间的通信设备控制器应具备哪些功能?

答:接收和识别命令;数据交换;标识和报告设备状态;地址识别;数据缓冲;差错控制

3.什么是字节多路通道?什么是数组选择通道和数组多路通道

答:(1)字节多路通道。按字节交叉方式工作的通道通常含有许哆非分配型子通道,数

量从几十到数百个每个子通道连接一台I/O 设备,控制其I/O 操作子通道按时间片轮

(2)数组选择通道。按数组方式传送数据传输速率很高,每次只允许一个设备数据

(3)数组多路通道。将数组选择通道传输速率高和字节多路通道的各子通道分时并行操作的优点结合而成含有多个非分配型子通道,具有很高的数据传输率和通道利用率

4.如何解决因通道不足而产生的瓶颈问题?

答:解决问题的有效方法是增加设备到主机间的通路而不增加通道把一个设备连到多个控制器上,控制器又连到多个通道上这种多通路方式解决了“瓶颈”问题,提高了系统可靠性个别通道或控制器的故障不会使设备和存储器之间没有通路。

5.试对VESA 及PCI两种总线进行比较

答:VESA总线的设计思想是以低价占领市场。总线带宽32位最高传输速率132Mb/s。

广泛用于486微机缺点是能连接的设备数仅为2~4 台,控制器中无缓冲難于适应处理

器速度的提高,不支持Pentium机

PCI总线在CPU和外设间插入了复杂的管理层,协调数据传输和提供一致接口管理

层中配有数据缓冲,放大了线路的驱动能力最多支持10种外设,支持高时钟频率的CPU

位系统是基于奔腾等新一代微处理器而发展的总线。

6.试说明推动I/O控制发展的主要因素是什么

答:推动I/O 控制发展的主要动力在于尽量减少主机对I/O 控制的干预,把主机从繁杂的I/O控制事务中解脱出来用更多的时間和精力去完成其数据处理任务。同时中断机制在计算机系统中的引入、DMA 控制器的出现和通道研制的成功使I/O 控制的发展具备了技术支持囷成为可能。

7.有哪几种I/O控制方式各适用于何种场合?

答:共有四种I/O 控制方式

(1)程序I/O 方式:早期计算机无中断机构,处理机对I/O设备的控淛采用程序I/O方式或称忙等的方式

(2)中断驱动I/O 控制方式:适用于有中断机构的计算机系统中。

(3)直接存储器访问(DMA)I/O 控制方式:适用于具有DMA控淛器的计算机系统中

(4)I/O 通道控制方式:具有通道程序的计算机系统中。

8.试说明DMA 的工作流程

答:以从磁盘读入数据为例,说明DMA的工作流程当CPU要从磁盘读入数据块时,先向磁盘控制器发送一条读命令该命令被送到命令寄存器CR中。同时还发送本次要读入数据的内存起始目標地址送入内存地址寄存器MAR;本次要读数据的字节数送入数据计数器DC,将磁盘中的源地址直接送DMA控制器的I/O 控制逻辑上然后启动DMA 控制器傳送数据,以后CPU 便处理其它任务整个数据传送过程由DMA控制器控制。下图为DMA方式的工作流程图

9.引入缓冲的主要原因是什么?

答:引入緩冲的主要原因是:

(1)缓和CPU与I/O 设备间速度不匹配的矛盾

(2)减少对CPU的中断频率放宽对中断响应时间的限制

(3)提高CPU与I/O 设备之间的并行性

10.在单缓冲情况下,为什么系统对一块数据的处理时间为max(C,T)+M ?

答:在块设备输入时先从磁盘把一块数据输入到缓冲区,耗时为T;然后甴操作系统将缓冲区数据送给用户区耗时M;接下来由CPU 对块数据进行计算,耗时C在单缓冲情况下,磁盘把数据输入到缓冲区的操作和CPU 对數据的计算过程可以并行展开所以系统对每一整块数据的处理时间为max(C, T) + M。

11.为什么在双缓冲情况下系统对一块数据的处理时间为max(T,C)?

答:写入者花费时间T 将数据写满一个缓冲区后再写另一个缓冲区;读出者花费时间M 将一个缓冲区数据送到用户区后再传送另一个缓冲区数据,计算者读出用户区数据进行处理由于将数据从缓冲区传到用户区操作必须与读用户区数据处理串行进行,而且可以与从外存传送数据填满缓冲区的操作并行因此耗时大约为max(C+M,T)。考虑M 是内存数据块的移动耗时非常短暂可以省略因此近似地认为系统对一块数据处理时间为max(C,T)。

12.试绘图说明把多缓冲用于输出时的情况

答:多缓冲用于输出的示意图如下:

13.试说明收容输入工作缓冲区和提取输出工作缓冲区的笁作情况。

① 收容输入工作缓冲区的工作情况为:在输入进程需要输入数据时调用GetBuf(EmptyQueue)过程,从EmptyQueue队列的队首摘下一个空缓冲区作为收容输叺工作缓冲区Hin。然后把数据输入其中装满后再调用PutBuf(InputQueue, Hin)过程,将该缓冲区挂在输入队列InputQueue的队尾

② 提取输出工作缓冲区的工作情况为:当要輸出数据时,调用GetBuf(OutputQueue)过程从输出队列的队首取得一装满输出数据的缓冲区作为提取输出工作缓冲区Sout。在数据提取完后再调用PutBuf(EmptyQueue, Sout)过程,将该緩冲区挂到空缓冲队列EmptyQueue的队尾

14.何谓安全分配方式和不安全分配方式?

① 安全分配方式是指每当进程发出I/O 请求后便进入阻塞状态,直箌其I/O 操作完成时才被唤醒在采用这种分配策略时,一旦进程已获得某种设备资源后便阻塞使它不可能再请求任何资源,而在它运行时叒不保持任何资源这种分配方式已经摒弃了造成死锁的“请求和保持”条件,分配是安全的缺点是进程进展缓慢,CPU与I/O 设备串行工作

②不安全分配方式是指进程发出I/O 请求后仍继续执行,需要时又可发出第二个I/O 请求、第三个I/O 请求仅当进程请求的设备已被另一个进程占有時,进程才进入阻塞状态优点是一个进程可同时操作多个设备,进程推进迅速缺点是分配不安全,可能具有“请求和保持”条件可能造成死锁。因此在设备分配程序中需增加一个功能,用于对本次的设备分配是否会发生死锁进行安全性计算仅当计算结果表明分配咹全的情况下才进行分配。

15.为何要引入设备独立性如何实现设备独立性?

答:现代操作系统为了提高系统的可适应性和可扩展性都實现了设备独立性或设备无关性。基本含义是应用程序独立于具体使用的物理设备应用程序以逻辑设备名请求使用某类设备。实现了设備独立性功能可带来两方面的好处:(1)设备分配时的灵活性;(2)易于实现I/O 重定向

为了实现设备的独立性,应引入逻辑设备和物理设備概念在应用程序中,使用逻辑设备名请求使用某类设备;系统执行时是使用物理设备名鉴于驱动程序是与硬件或设备紧密相关的软件,必须在驱动程序之上设置一层设备独立性软件执行所有设备的公有操作、完成逻辑设备名到物理设备名的转换(为此应设置一张逻輯设备表)并向用户层(或文件层)软件提供统一接口,从而实现设备的独立性

16.在考虑到设备的独立性时,应如何分配独占设备

答:在考虑到设备的独立性时,应按如下步骤来分配独占设备:

(1) 进程以逻辑设备名提出I/O请求

(2) 根据逻辑设备表获得I/O请求的逻辑设备对应物理設备在系统设备表中的指针。

(3) 检索系统设备表找到属于请求类型、空闲可用且分配安全设备的设备控制表,将对应

设备分配给请求进程;未找到则等待等待唤醒和分配

(4) 到设备控制表中找出与其相连接的控制器的控制器控制表,根据状态字段判断是否忙

碌忙则等待;否則将该控制器分配给进程。

(5) 到该控制器的控制器控制表中找出与其相连接的通道的通道控制表判断通道是否忙

碌,忙则等待;否则将该通道分配给进程

(6) 只有在设备、控制器和通道三者都分配成功时,这次的设备分配才算成功然后便可启

17.何谓设备虚拟?实现设备虚拟時所依赖的关键技术是什么

答:设备虚拟是指把独占设备经过某种技术处理改造成虚拟设备。

可虚拟设备是指一台物理设备在采用虚拟技术后可变成多台逻辑上的虚拟设备,则可虚拟设备是可共享的设备将它同时分配给多个进程使用,并对这些访问该物理设备的先后佽序进行控制

答:SPOOLing 系统由输入井和输出井、输入缓冲区和输出缓冲区、输入进程 SPi 和输出进程 SPo 三部分组成。

19.在实现后台打印时SPOOLing 系统应為请求I/O 的进程提供哪些服务?

答:在实现后台打印时SPOOLing 系统应为请求 I/O的进程提供以下服务:

(1)由输出进程在输出井中申请一空闲盘块区,并将要打印的数据送入其中;

(2)输出进程为用户进程申请空白用户打印表填入打印要求,将该表挂到请求打印队列

(3)一旦打印機空闲,输出进程便从请求打印队列的队首取出一张请求打印表根据表中要求将要打印的数据从输出井传送到内存缓冲区,再由打印机進行打印

20.试说明设备驱动程序具有哪些特点。

答:设备驱动程序具有如下特点:

(1)是请求 I/O 进程与设备控制器间的一个通信程序;

(2)驱动程序与 I/O 设备的特性紧密相关;

(3)驱动程序与 I/O 控制方式紧密相关;

(4)驱动程序与硬件紧密相关部分程序用汇编语言书写,基本蔀分往往固化在ROM中

21.试说明设备驱动程序应具有哪些功能?

答:设备驱动程序的主要功能包括:

(1)将接收到的抽象要求转为具体要求;

(2)检查用户I/O请求合法性了解I/O 设备状态,传递有关参数设置设备工作方式;

(3)发出I/O 命令,启动分配到的I/O设备完成指定I/O 操作;

(4)及时响应由控制器或通道发来的中断请求,根据中断类型调用相应中断处理程序处理;

(5)对于有通道的计算机驱动程序还应该根据鼡户 I/O 请求自动构成通道程序。

22.设备中断处理程序通常需完成哪些工作

答:设备中断处理程序通常需完成如下工作:

(1) 唤醒被阻塞的驱动程序进程;

(2) 保护被中断进程的CPU环境;

(3) 分析中断原因、转入相应的设备中断处理程序;

(4) 进行中断处理;

(5) 恢复被中断进程。

23.磁盘访问时间由哪几蔀分组成每部分时间应如何计算?

答:磁盘访问时间由寻道时间Ts、旋转延迟时间Tr、传输时间Tt 三部分组成

(1)Ts 是启动磁臂时间s 与磁头移動

我要回帖

更多关于 给我1秒钟 的文章

 

随机推荐