为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

[原创]操作系统教材答案陈向群杨芙清

2017-11-17 47页 doc 85KB 125阅读

用户头像

is_266065

暂无简介

举报
[原创]操作系统教材答案陈向群杨芙清[原创]操作系统教材答案陈向群杨芙清 《操作系统教程》课后习题答案 第一章 操作系统概论 1.什么是计算机系统,计算机系统是怎么构成的,了解 PC 的组成情况,说明:1)硬件 组织的基本结构,画出硬件配置图;2)主要系统软件和应用软件(若有的话)他们的作 用。 答:计算机系统就是按照人的要求接收和存储信息,自动进行数据处理和计算,并输出 结果信息的系统。 计算机系统由硬件子系统和软件子系统组成。 计算机系统的构成包括:如图 1.2 计算机硬件系统的构成:如图 1.4 2.从功能以及程序涉设计的角度说明计算机系统...
[原创]操作系统教材答案陈向群杨芙清
[原创]操作系统教材答案陈向群杨芙清 《操作系统》课后习题答案 第一章 操作系统概论 1.什么是计算机系统,计算机系统是怎么构成的,了解 PC 的组成情况,说明:1)硬件 组织的基本结构,画出硬件配置图;2)主要系统软件和应用软件(若有的话)他们的作 用。 答:计算机系统就是按照人的要求接收和存储信息,自动进行数据处理和计算,并输出 结果信息的系统。 计算机系统由硬件子系统和软件子系统组成。 计算机系统的构成包括:如图 1.2 计算机硬件系统的构成:如图 1.4 2.从功能以及程序涉的角度说明计算机系统中软件系统是如何构成的, 答:分为系统软件,支撑软件和应用软件三层。 3.什么是操作系统,请举例说明操作系统在计算机系统中的重要地位。 答:操作系统是计算机系统中的一个系统软件,是一些程序 模块的集合。 它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源,合理的组织计算机的工 作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的 使用计算机,使整个计算机系统能安全高效地运行 4.请举一个实际的例子来说明操作系统的功能。 答:你能用用操作系统管理很多资源 5.为什么说“操作系统是控制硬件的软件”的说法不确切, 答:操作系统不仅能够控制硬件,也可以控制各种软件资源。 6.操作系统的基本特征是什么,说明他们之间的关系。 答:1.并发性 2.共享性 3.随机性 7.试从独立性,并发性和交互性和实时性四个方面来比较批处理系统,分时系统以及实 时系统。 答: 分时系统:并发性是指同时有多个用户共同使用一个计算机,宏观上看是多个人同时 使用一个 CPU,微观上是多个人在不同时刻轮流使用 CPU. 独占性,是指用户感觉不到计算机为他们服务,就好像整个系统为他所独占。 交互性:是指用户根据系统响应结果进一步提出新要求,用户直接干预每一步。 实时性:是指系统对用户提出的请求及时响应。 8.引入多道程序设计技术的起因和目的是什么,多道程序系统的特征是什么, 答:多道程序设计的基本思想在内存中保持多个作业,主机可以交替的方式同时处理 多个作业,一般来说任何一道作业的运行总是要交替的使用处理器和外设子案 9.多道程序设计的度是指在任一给定时刻,单个 CPU 所能支持的进程数目最大值。讨论要 确定一个特定系统的多道程序设计的度必须考虑的因素。可以假定批处理系统中进程数量 与作业数量相同。 答: 10.描述批处理系统响应一个执行请求需要的时间(称为响应时间),描述分时系统下的 响应时间,什么样的系统可能有较短的响应时间,为什么, 答: 1)就是将用户的作业组成一批作业,之后输入到计算机 中,计算机依次执行每个作 业 ,然后输出,即为响应时间。 2)定义这个响应时间就是:系统对一个输入的反应时间 实时系统的反应时间 11.什么情况下批处理是比较好的策略,什么情况下分时是比较好的策略,现代的操作系 统往往要把两者结合,请举出这样的例子,并说明它们是怎样被结合起来的,并通过这样 的结合获得了什么好处。 答:常见的通用操作系统是分时系统与批处理系统结合,其原则是:分时优先,批处理再 后,"前台"响应需要频繁交互的作业,如终端的要求。“后台”处理时间性要求不强的作 业 。 12.操作系统的技术发展是怎样的,从这一技术演化过程可以得到什么启发, 答:操作系统的发展是根据计算机硬件发展,计算机应用软件的发展而发展的, 我们发展操作系统的目标就是:充分利用硬件,提供更好的服务。 13.请作一个调查,看看各种计算机的应用领域都在使用什么 样的操作系统,他们分别是 什么类型的操作系统,调查的应该涵概现代操作系统的主要类别. 14.现有一下应用计算机的场合,请为其选择适当的操作系统。1)航天航空,核变研究; 2)国家统计局数据处理中心;3)学校学生上机学习编程 4)高炉炉温控制;5)民航定 票系统,6)发送电子邮件(在两个地区之间) 答:1)航天航空,核变研究:嵌入式操作系统 2)分布式操作系统 3)个人计算机操作系统 4)实时操作系统 5)批处理操作系统 6)网络操作系统。 15.什么是 Spooling 技术,他有什么用,你认为未来先进的个人计算机会把假脱机作为一 个关键特性吗, 答:假脱机(SPOOLing.)技术的全称是同时得外部设备联机操作,这种技术的基本思想 是用磁盘设备作为主机的直接输入输出设备,,主机直接从磁盘上选取作业运行,作业 的执行结果 16.外壳程序(shell)是不是操作系统的一部分,为什么, 答:不是,它不属于操作系统内核的一部分,它是一个应用程序。 17.如果你有一个可用得类 UNIX 系统,例如 Linux,Minix 或者 BSD 等,而且你有足够的权限 重起或者使得系统崩溃,请编写一个 shell 程序作下面的实验,用该 shell 程序不停的产生 新进程,观察发生的事情,在运行你的 shell 之前,请用 sync 命令同步硬盘和内存中的磁 盘缓存,以免在程序运行过程中访问文件系统,注意,请不要在任何共享的系统中做这件 事情, 答:进程数不断增多,最后导致系统崩溃了~ 重要: 18.现代操作系统的设计很讲求机制与策略的分离,已经使操作系统的结构和实现能够在 一定范围内适应不同的需要。例如 Solaris 的调度器实现了进程调度的基本机制,同时它 允许通过动态调整核心参数实现不同负载下的系统性能平衡,这就是一种机制和策略的分 离,请给出一个例子,说明怎样根据调度将机制和策略分开。请构造一种机制,允许父 进程控制子进程的调度策略。 19.有兴趣,可以去写一篇,记得写完了,发给我,我把你的文章贴上来~ 硬件环境 第二章 操作系统的硬件环境 1. 请简述处理器的组成和工作原理。你认为那些部分和操作系统的密切关系,为什么, 答: 一般的处理器由运算器,控制器,一系列的寄存器以 及高速缓存构成。运算器实现 任何指令中的算术和逻辑运算,是计算机计算的核心;控制器负责控制程序运行的流程, 包括取指令,维护 CPU 状态,CPU 与内存之间的交互等等。寄存器是指令在 CPU 内部做处理 的过程中占存数据,地址一级指令信息的存储设备,在计算机的存储系统中它具有最快的 访问速度。加上高速缓存以及内存管理单元(MMU) 2. 为了支持操作系统,现代处理器一般都提供哪两种工作状态,用来隔离操作系统和 普通程序,两种状态各有什么特点, 答; 多数系统将处理器工作状态划分为管态和目态 管态:操作系统管理程序运行的状态,较高的特权级别,又称为特权态(特态)、系统态 目态:用户程序运行时的状态,较低的特权级别,又称为普通态(普态)、用户态 3.什么是分级的存储体系结构,它主要解决什么问题, 答: 容量、速度和成本 三个目标不可能同时达到最优,要作权衡 存取速度快,每比特价格高 容量大,每比特价格越低,同时存取速度也越慢 解决:采用层次化的存储体系结构 当沿着层次下降时 每比特的价格将下降,容量将增大 速度将变慢,处理器的访问频率也将下降 4.主存储器通常有哪两种类型,它们各自的特点是什么,用在哪里, 答:硬盘存储器,和内存存储器. 硬盘存储器:容量大,存储速率慢,断电后,数据信息不丢失 内存存储器:容量小,存储速率快,断电后,数据信息丢失。 5.请简述程序局部性原理。这个原理在分级的存储体系结构中是怎么样起作用的, 答:时间局部性,空间局部性。起的作用是:提高存储系统效能这个目的。 6.什么是存储保护,有哪些方法实现存储保护, 答:对主存中的信息加以严格的保护,使操作系统及其它程序不被破坏,是其正确运行的 基 本条件之一 多用户,多任务操作系统:OS 给每个运行进程分配一个存储区域 操作系统提供了:1.界限地址寄存器,存储健两个存储保护机构~ 7。 呵呵,大家去翻资料把~~~ 8.缓冲技术在计算机系统中起着什么样的作用,它是如何工作的, 答:缓冲技术一般有三个用途,一种是用在处理器和主存储器之间的;另一种是用在处理 器和其他外部设备之间的;还有一种是用在设备与设备之间的通信上。 9.什么是中断,为什么说中断对现代计算机很重要, 答: 中断概念:指 CPU 对系统中或系统外发生异步事件的响应 异步事件是指无一定时序关系的随机发生事件 如外部设备完成数据传输,实时设备出现异常等 中断机制是操作系统得以正常工作的最重要的手段 它使得 OS 可以捕获普通程序发出的系统功能调用 及时处理设备的中断请求 防止用户程序中破坏性的活动等等 10.中断的一般处理过程是怎么样的,多个中断同时发生呢, 答:1)如图 2.9(简单的中断处理过程) 2)如书图 2.12(一个多优先级中断系统中多个中断的处理示例) 11.请简述中断和操作体统的关系,操作系统是如何利用中断机制的, 答: 中断机制是操作系统得以正常工作的最重要的手段 它使得 OS 可以捕获普通程序发出的系统功能调用 及时处理设备的中断请求 防止用户程序中破坏性的活动等等 12. 常用的 I/O 控制技术有那些,各有什么特点, 答:常用的 I/O 控制技术有以下几种:程序控制,中断驱动以及直接存储器存取(DMA) 以及通道。 程序控制 I/O 技术:由处理器提供 I/O 相关指令来实现 I/O 处理单元处理请求并设置 I/O 状态寄存器相关位 不中断处理器,也不给处理器警告信息 处理器定期轮询 I/O 单元的状态,直到处理完毕 I/O 软件包含直接操纵 I/O 的指令 控制指令: 用于激活外设,并告诉它做什么 状态指令: 用于测试 I/O 控制中的各种状态和条件 数据传送指令: 用于在设备和主存之间来回传送数据 主要缺陷:处理器必须关注 I/O 处理单元的状态,因而耗费大量时间轮询信息,严重地降 低了系统性能 中断驱动 I/O 技术:为了解决程序控制 I/O 方法的主要问题 应该让处理器从轮询任务中解放出来 使 I/O 操作和指令执行并行起来 具体作法: 当 I/O 处理单元准备好与设备交互的时候 通过物理信号通知处理器,即中断处理器 DMA 技术:中断的引入大大地提高了处理器处理 I/O 的效率 当处理器和 I/O 间传送数据时,效率仍旧不高 解决方法: 直接存储器访问(DMA:Direct Memory Access) 通过系统总线中一独立控制单元——DMA 控制器 自动控制成块数据在内存和 I/O 单元间的传送 大大提高处理 I/O 的效能 通道:独立于中央处理器,专门负责数据 I/O 传输的处理机 它对外设实现统一管理 代替 CPU 对 I/O 操作进行控制 使 CPU 和外设可以并行工作 通道又称为 I/O 处理机 引入通道的目的: 为了使 CPU 从 I/O 事务中解脱出来 同时为了提高 CPU 与设备、设备与设备之间的并行度 13.时钟对操作系统有什么重要作用, 时钟为计算机完成以下必不可少的工作: 在多道程序运行环境中,为系统发现陷入死循环(编程错误)的作业,防止机时的浪费 在分时系统中,间隔时钟实现作业间按时间片轮转 在实时系统中,按要求的间隔输出正确时间信号给实时的控制设备(如 A,D、D/A 转换设 备) 定时唤醒要求延迟执行的各外部事件(如定时为各进程计算优先数,银行中定时运行某类 结账程序等) 记录用户使用设备时间和记录某外部事件发生时间 记录用户和系统所需要的绝对时间,即年、月、日 第三章 用户接口与作业管理 1.阐述程序,作业,作业步和进程之间的联系和区别。 答: (1)作业 用户在一次计算过程中,或者一次事务处理过程中,要求计算机系统所做工作的总称 (2)作业步 一个作业可划分成若干部分,称为一个作业步 典型的作业控制过程: “编译”、“连接装配”、“运行” 2.一个具有分时兼批处理功能的操作系统应该怎样调度和管 理作业,为什么, 品 3.在一个批处理系统中,一个作业从提交到运行结束并退出系统,通常要经历哪几个阶段 和状态,你能说出这些状态转变的原因吗,哪些程序负责这些状态的转变, 4.假设有三个作业,他们进入时间和估计运行的时间如下: 作业号 进入时刻 估计运行时间 1 10:00 60 分钟 2 10:10 60 分钟 3 10: 25 15 分钟 在单道批处理方式下,采用先来先服务算法和最短作业优先 算法进行作业调度。请给出 他们的调度程序,并分别计算出作业平均周转时间和带权平均周转时间,请对计算结果进 行解释。 答:先来先服务: 作业号 进入时间 估计运行时间 开始时间 结束时间 周转时间 带权周转时间 1 10:00 60 10:00 11:00 60 1 2 10:10 60 11:00 12:00 110 11/6 3 10:25 15 12:00 12:15 110 22/3 平均周转时间:280/3 带权:55/6+6/6=61/6 最短作业服务: 作业号 进入时间 估计运行时间 开始时间 结束时间 周转时间 带权周转时间 1 10:00 60 10:00 11:00 60 1 2 10:10 60 11:15 12:15 125 25/12 3 10:25 15 11: 00 11: 15 50 10/3 平均周转时间:235/3 带权:1+25/12+10/3= 77/12 5.有一个两道的批处理操作系统,作业调度采用最短作业优先的调度算法,进程调度采用 基于优先数的抢占式调度算法,有如下的作业序列: 作业 进入时间 估计运行时间 优先数 1 10:00 40 分钟 5 2 10:20 30 分钟 3 3 10:30 50 分钟 4 4 10: 50 20 分钟 6 其中优先数数值越小,优先级越高。 1)列出所有作业进入内存时间及运行结束时间 2)计算作业平均周转时间和带权平均周转时间。 答: 作业号 进入时间 估计运行时间 开始时间 结束时间 周转时间 带权周转时间 1 10:00 40 10:00 11:00 60 3/2 2 10:20 30 10: 20 10:50 30 1 3 10:30 50 10:30 11:20 50 1 4 10:50 20 11: 00 11:20 30 3/2 平均周转时间:2.5 带权:5 第四章 进程管理 1..一个单 CPU 的操作系统共有 n 个进程,不考虑进程状态过渡时的情况,也不考虑空转进 程(1)给出运行进程的个数;(2)给出就绪进程的个数;(3)给出等待进程的个数。 解:1.运行进程的个数可能是 0,也可能是 1; 2,就绪的进程的个数可能是 0,也可能是 n-1 3(等待进程的个数可能是 0,也可能是 n 2.多道程序在单 CPU 上并发运行和多道程序在多 CPU 上并行执行,这两者在本质是否相同 为什么,请给出以上两者在实现时应考虑什么问题, 答: 1)本质上不同,前者是宏观上并发同时运行,微观上是交替顺序执行,后者则是宏观上并 行,微观上也并行。 2)在实现多道程序设计时,必须协调好资源使用者和被使用者之间的关系,即对处理机资 源 加以管理,以实现处理机在各个可运行程序之间的分配与调度,对内存资源加以管理,将 内存分配给各个运行程序,还要解决程序在内存中的定位问题,并防止内存中各个程序之 间互相干扰或对操作系统的干扰,对设备资源进行管理,使各个程序在使用设备时,不发 生冲突。 3.用进程概念说明操作系统的并发性和不确定性是怎样体现出来的, 答:进程的并发特性和异步特性体现了操作系统的并发性和不确定性。 进程的并发特性:可以同其他进程一道向前推进,即一个进程的第一个动作可以在另一 个进程的最后一个动作结束之前开始 进程的异步性:每个进程按照各自独立的,不可预知的速度向前推进。 4(PCB 的作用是什么,他是怎么样描述进程的动态本质的, 答:PCB 称为进程控制块(Process Control Block),为了便于系统控制和描述进程的活动 过程,在操作系统核心中为进程定义一个专门的数据结构,就是 PCB。 系统利用 PCB 来描述进程的基本情况以及进程的运行变化过程。PCB 是进程存在的唯一标 志。当系统创建一个进程时,为进程设置一个 PCB,再利用 PCB 对进程进行控制和管理;撤 销进程时,-系统收回它的 PCB,进程也随之消亡。 5.进程的三个基本状态转换如图(见书),图中 1,2,3,4 表示某种类型的状态变迁,请 分别回答下列问题: 1)什么“事件”引起某一种类型的状态变迁 答:运行中的进程因为中断的发生,或者需要等待某种事件的发生,变迁到等待状态 等待状态的进程,应为所等待的事件发生了,变迁到就绪态 CPU 为空的时候,就绪态的进程就变迁到运行状态 运行的进程因为调度程序,变迁到就绪状态 2)系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,试判断在下述情 况下,如果有的话,将发生什么因果变迁, 3 ->1 2. ->1 4->1 3->4 如果有处于就绪态的进程 (3->1) 如果有处于就绪态的进程 (2->1) CPU 为空(4->1) 等待事件发生(3->4) 3)在什么情况下,下述变迁中哪些将不立即引起其他变迁, 1 2 3 4 当 1 发生,并不引起其他变迁 当 2 发生,如果有进程处于就绪态,引起 1 发生 当 3 发生, 如果有进程处于就绪态,引起 1 发生 当 4 发生,如果 CPU 为空,那么引起 1 发生 4)引起进程状态变迁的根本原因是什么, 答: 原因:自身的进展情况和外界环境条件的变化。自身的逻辑,中断和进程调度程序 等~ 根据进程的动态性,进程在其生命周期内,需要经历一系列离散状态。 6.内核通常完成哪些功能,经过内核扩充后形成的虚拟机有哪些属性, 答:内核一般提供如下功能 1)中断处理 2)进程调度 3)进程控制 4)进程同步与互斥;5)进程通信;6)存储管理的 基本操作 7)设备管理的基本操作 8)文件信息管理的基本操作 9)时钟管理 虚拟机的属性有:1)没有中断 2)为每个进程提供了一台虚拟处理机,每个进程好像在各 自的处理机上顺序的运行 3)为进程提供了强大的指令系统,即非特权的指令和原语一起 组成的指令系统 7.并发进程执行时一定会产生与时间有关的错误吗,为什么, 答:不一定,如果并发进程都占有一些受到保护的私有资源(包括内存,设备等资源),那 么执行的结果和进程调度的算法以及中断等外界环境没有关系,所以不一定会产生与时间 有关的错误. 8.试举出进程状态转换的典型原因和引起进程调度的因素。 答:进程状态转换的典型原因:1 中断或者等待某事件发生,2.所等待事件发生了 3,CPU 为 空 引起进程调度的因素为: 1)正在执行的进程运行完毕 2)正在执行的进程调用阻塞原语将自己阻塞起来并进入等待状态 3)正在执行的进程调用了 P 原语操作,从而因为资源不足而被阻塞,或调用了 V 原语操作 激活了等待资源的进程队列 4) 执行中的进程提出了 I/O 请求后被阻塞 5) 在分时系统中时间片已经用完 以上都是 CPU 为不可抢占方式下引起进程调用的原因,当 CPU 为可抢占时,就绪队列中的进 程比当前运行的进程的优先级高,也引起进程调度 9.说明下列活动是属于哪些制约关系, 1)若干同学去图书馆借书 进程互斥 2)两队进行篮球比赛 进程互斥 3)流水线生产中的各道工序 进程同步 4)商品生产和社会消费 进程同步 10,是否所有的共享资源都是临界资源,为什么, 答:不是,根据定义,一次只允许一个进程使用得进程才叫临界资源,能同时被多个进程 使用得资源不是临界资源 11(设一台计算机,有两条 I/O 通道,分别接一台卡片输入机和一台打印机。卡片机把一 叠卡片逐一输入到缓冲区 B1 中,加工处理后再搬到缓冲区 B2 中,并在打印机上印出,问: 1)系统要设几个进程来完成这个任务,各自的工作是什么, 2)这些进程间有什么样的相互制约关系 3)用 P,V 操作写出这些进程的同步算法 4)设系统中只有上述几个进程,用图表示出各自状态变迁情况及原因, 答:这是一个典型的生产者,消费者问题 1)系统要设三个进程完成任务,第一个进程 P1,从卡片输入机中读入数据,并且把数据放 入缓冲区 B1 中,第二个进程从 B1 缓冲区中取数据,加工处理后放入缓冲区 B2 中。第三个进 程将缓冲区的内容输入到打印机中打印出来 2)这三个进程之间是同步和互斥的关系 3)三个进程之间必须协调工作,需设置四个信号量,S1,S2,S3,S4 并令 S1 的初值为 1,S2 的 处置为 0,S4 的初值为 1,则程序为: 进程 p1 进程 p2 进程 p3 P(S1) P(S2) P(S3) 从卡片机中读入数据 P(S4) 将缓冲区 B2 内容 V(S2) 将 Buffer B1 中的数据 在打印机中输出 拷贝道 Buffer B2 中 V(S4) V(S1) V(S3) 4)当缓冲区 B1 为空时,当有输入时,进程 p1 进入就绪态,如果 CPU 为空,则为运行态,输 入完成后,进入等待态 如果存在进程 p2,则为等待态,当 S2+1 后,处于等待态进程进入就绪态,如果 CPU 为空 进入运行态,拷贝完成后,进入等待态 如果存在进程 p3,则为等待态,当 S3+1 后,处于等待态进程进入就绪态,如果 CPU 为空 进入运行态,输出完成后,进入等待态 12.设有无穷多个信息,输入进程把信息逐个写入缓冲区,输入进程逐个地从缓冲区中取 出信息。在下述情况下:1)缓冲区是环形的,最多可以容纳 n 个信息;2)缓冲区是无穷大 的。 试分别回答下列问题, 1)输入,输出两进程读,写缓冲区需要什么条件, 2)用 P,V 操作写出输入,输出两进程的同步算法,并给出信号量含义以及初值 3)指出信号量的值的变化范围和其值的含义 答: 一:当缓冲区的大小为 n 时 1)当缓冲区信息为空的时候,输出进程无法读,处于等待状态,当缓冲区信息为满的时 候无法写,都某个缓冲区单位进行读写的时候,要互斥 2) 1.空的信号量 empty 初值为 n, 满的信号量为 full 初值为 0, 对缓冲区单元的互斥信号 量为 mutex,j,k 为缓冲区单位地址,初值为 0 写进程 读进程 P(empty) P(full) P(mutex) P(mutex) 向 Buffer[i]写入信息 从 Buffer[k]中读信息 V(mutex) V(mutex) V(full) V(empty) j:=(j+1)mod n k:=(k+1)mod n 4)empty 表示还有多少缓冲区单元为空,如果 empty=0,表示缓冲区满,系统调用写进程时 ,写进程处于等待态 full 表示缓冲区都多少有信心的单元,如果 full=0, 表示缓冲区空,系统调用写进程时 ,读进程处于等待态 mutex 表示对于缓冲区单元的互斥信号量,当 mutex=1 时,开锁,mutex=0 时,闭锁 二(当缓冲区大小为无穷大时 1)同上 2) 1(空的信号量 empty 不用设, 满的信号量为 full 初值为 0, 对缓冲区单元的互斥信号量 为 mutex,j,k 为缓冲区单位地址,初值为 0 写进程 读进程 P(full) P(mutex) P(mutex) 向 Buffer[i]写入信息 从 Buffer[k]中读信息 V(mutex) V(mutex) V(full) j:=(j+1)mod n k:=(k+1)mod n 4)full 表示缓冲区都多少有信心的单元,如果 full=0, 表示缓冲区空,系统调用写进程 时,读进程处于等待态 mutex 表示对于缓冲区单元的互斥信号量,当 mutex=1 时,开锁,mutex=0 时,闭锁 13.假定一个阅览室最多可以容纳 100 人,读者进入和离开阅览室都必须在阅览室门口的一 个登记表上标志(进入时登记,离开时去掉登记项)而且每次只允许一人登记或者去掉登 记,问: 1) 应编写几个进程完成这项工作,程序的主要动作是些什么,应该设置几个进程,进程 和程序间的关系如何, 2) 用 P,V 操作写出这些进程的同步通信关系 答:编写两个进程,一个处理读者进入,一个处理读者离开,进程是程序的动态执行 设置信号量 full 为初值为 0, 空的信号量 empty 初值为 100, 互斥信号量 mutex 初值 为 1 进入 离开 P(empty) P(full) P(mutex) P(mutex) 登记 取消登记 V(mutex) V(mutex) V(full) V(empty) 进入 离开 14(在生产者和消费者问题中,如果对调生产者(或消费者)进程中的两个 P 操作和两个 V 操作的次序,会发生什么情况,请说明~ 答:对调 P 操作, 会发生死锁 因为 P(empty)在 p(mutex) 和 v(mutex)内部,也就是临界 区中,当 empty?0,时,P(empty)在临界区中进入到了休眠状态。那么就别的进程都进入 不到临界区中,进入死锁状态。 而两个 V 操作无关紧要 15.为什么引入高级通信机构,他有什么优点,说明消息缓冲通信机构的基本工作过程, 答: 1)为了解决大量的消息交换, 2)优点:不仅能够保证相互制约的进程之间的相互关系,还同时实现了进程之间的信息 交换 3)消息缓冲通信技术的工作过程: 其基本思想是:根据“生产者-消费者”原理,利用内存中公用消息缓冲区实现进程之间 的信息交换。 内存中开辟了若干消息缓存区,用以存放消息,每当一个进程(发送进程)向另一个进程 (接收进程)发送消息时,便申请一个消息缓冲区,并把已准备好的消息发送到缓冲区中 ,然后把该消息缓冲区插入到接受进程的消息队列中,最后通知接受进程,接收进程收到 发送进程发送到的通知后,从本进程的消息队列中摘下一消息缓冲区,取出所需的消息, 然后把消息缓冲区还给系统。 16.进程间为什么要进行通信,在编写自己的程序时,是否考虑到要和别的用户程序进行 通信,各个用户进程间是否存在制约关系? 答;1)各个进程在运行的时候,共享内存,或者共同完成一个特定的功能,都需要进行通 信, 2)需要, 3)促在同步和互斥的关系,比如聊天程序 17.假定一个系统的磁盘块大小为 2KB,一个块的平均访问时间是 20 毫秒。一个有 40KB 进程 由于资源请求从运行态变为阻塞态,它必须保持阻塞多长时间, 答: 40/2 * 20=400 毫秒 保持阻塞态 400 毫秒 18.假设 A,B 两个火车站之间是单轨线,许多列车同时到达 A 站,然后经过 A 站到达 B 站;又 列车从 A 到 B 的行驶时间是 t,列车在 B 战后的停留时间是 t/2,试问在该问题模型中,什么是 临界资源,什么是临界区? 答:临界资源: A 到 B 之间的单轨线,以及 B 站是临界资源 临界区: 在 A 到 B 之间行驶,以及在 B 上停留是临界区 19.同步机制应该遵循哪些原则,为什么, 答:1.它的描述能力应该足够强,既能解决各种进程间的同步互斥问题; 2(其次,应该容易实现并效率高 3(第三,使用方便 20.我们为某临界资源设置一把锁 W。当 W=1 时,表示关锁,W=0 时,表示开锁,试写出开锁 和关锁原语,并利用它去实现互斥。 答: while(1==w); enter 临界区 21.进程 A1,A2,„,An 通过 m 个缓冲区向进程 B1,B2,„,Bn 不断发送消息,发送和接收工作遵 循如下规则: 1)每个发送进程每次发送一个消息,写入一个缓冲区,缓冲区大小与消息长度一样 2)对每一个消息,B1,B2,..Bn 都需要各接收一次,读到各自的数据区中; 3)m 个缓冲区都满时,发送进程等待,没有可读消息时,接受进程等待 试用 P,V 操作组织正确的发送和接收操作。 答: VAR mutex: Semaphore:{初值为 1,实现对缓冲区的互斥} empty: Semaphore:{初值为 n,有多少缓冲} Full: Array[1..n] OF Semaphore:{初值为 0,每个接收进程当前可接收的缓冲区 } Count:Array[1..n] OF INTEGER;{初值为 0,n 个缓冲区被访问的次数} ReceivePointer:Array[1„n] OF INTEGER{初值为 0,该接收进程要取哪个 } SendPointer:INTEGER;{初值为 0,发送进程下次要放到哪个缓冲区} 发送进程 (num:INTEGER) {num 为进程号} Repeat P(empty) P(mutex) 向 buff[sendPointer]放消息 sendPointer:=(sendPointer+1)mod k count[sendPointer]:=0 V(mutex) For i:=1 To n Do V(Full[i]) Until FALSE 接收进程 (num:INTEGER):{num 为接收进程号} Repeat P(Full[num]) P(mutex) 从 buff[ReceivePoiner[num]]中取消息 V(mutex) Count[ReceivePoiner[num]]:= Count[ReceivePoiner[num]]+1 IF(Count[ReceivePoiner[num]]==n) THEN V(empty) Count[ReceivePoiner[num]]==0 ReceivePoiner[num]]:=(ReceivePoiner[num])+1)mod n Until FALSE 22(有 K 个进程共享一个临界区,对于下述情况,请说明信号量值的初值,含义,并用 P, V 操作写出相关的互斥算法。 1) 一次只允许一个进程进入临界区 2) 一次只允许 m 个进程进入临界区 答:1)设置互斥信号量 mutex,初值为 1 P(mutex) Enter_region V(mutex) 2)设置同步信号量 mutex,初值为 m; P(mutex) Enter_region V(mutex) 23(爱睡觉的理发师问题,一个理发店有两间相连的屋子, 一间是私室,里面有一把理发 椅,另一个是等候室,有一个滑动门和 N 把椅子。理发师忙的时候,通向私室的门被关闭 ,新来的顾客找一把空椅子坐下,如果椅子都被占用了,则顾客只好离去,如果没有顾客 ,则理发师在理发椅上睡觉。并打开通向私室的门。理发师睡觉时,顾客可以叫醒他理发 ,请编写 理发师和顾客的程序,正确实现同步和互斥问题~ 答: 解:VAR: S1,S2 :Semaphore;{初值为 0,实现理发师与顾客的同步} Mutex:Semaphore:{初值为 1,实现对 waiting 的互斥} waiting:INTEGER:{初值为 0,等待的顾客数} 理发师进程 REPEAT P(S1) {若无顾客,则睡觉 } P(mutex) Waiting:=waiting-1 V(S2); (唤醒一个等待的客户) V(mutex) 理发 Until FALSE 顾客进程 P(mutex) IF(waitingT , 3)ST 时, CPU 的利用率=T/(T+S)*100%(当进程运行完后,就切换,也就相当于时间 片=T ) 3)当 S
/
本文档为【[原创]操作系统教材答案陈向群杨芙清】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索