操作系统课后题参考答案

更新时间:2023-03-08 07:44:54 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《操作系统教程》习题讲解

绪论

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..一个单CPU的操作系统共有n个进程,不考虑进程状态过渡时的情况,也不考虑空转进 程

1。给出运行进程的个数; 2。给出就绪进程的个数; 3。给出等待进程的个数。

解:1.运行进程的个数可能是 0,也可能是 1; 2,就绪的进程的个数可能是0,也可能是n-1 3.等待进程的个数可能是0,也可能是n

3多道程序在单CPU上并发运行和多道程序在多CPU上并行执行,这两者在本质是否相同

为什么?请给出以上两者在实现时应考虑什么问题? 答:

1)本质上不同,前者是宏观上并发同时运行,微观上是交替顺序执行,后者则是宏观上并 行,微观上也并行。

2)在实现多道程序设计时,必须协调好资源使用者和被使用者之间的关系,即对处理机资 源

加以管理,以实现处理机在各个可运行程序之间的分配与调度,对内存资源加以管理,将 内存分配给各个运行程序,还要解决程序在内存中的定位问题,并防止内存中各个程序之 间互相干扰或对操作系统的干扰,对设备资源进行管理,使各个程序在使用设备时,不发 生冲突。

4.用进程概念说明操作系统的并发性和不确定性是怎样体现出来的? 答:进程的并发特性和异步特性体现了操作系统的并发性和不确定性。

进程的并发特性:可以同其他进程一道向前推进,即一个进程的第一个动作可以在另一 个进程的最后一个动作结束之前开始

进程的异步性:每个进程按照各自独立的,不可预知的速度向前推进。

5.PCB的作用是什么?他是怎么样描述进程的动态本质的?

答:PCB称为进程控制块(Process Control Block),为了便于系统控制和描述进程的活动 过程,在操作系统核心中为进程定义一个专门的数据结构,就是PCB。

系统利用PCB来描述进程的基本情况以及进程的运行变化过程。PCB是进程存在的唯一标 志。当系统创建一个进程时,为进程设置一个PCB,再利用PCB对进程进行控制和管理;撤 销进程时,-系统收回它的PCB,进程也随之消亡。

6.进程的三个基本状态转换如图,图中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

17.有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(waiting

Waiting:=-waiting+1 ;(等待顾客数加1) V(mutex);

V(S1) {通知理发师}

P(S2) {若无理发师,挂起} 坐下理发 END

ELSE V(mutex)

24.进程之间的通信方式有几种?在单机环境下,常用的哪几种通信方式? 答:三种:共享内存,消息机制,以及管道通信

在单机环境下:常采用 共享内存以及管道通信。

25. 一个快餐店有四类雇员:1)领班,他们接受顾客点的菜单;2)厨师,准备饭菜;3) 打包工,将饭菜装在袋子里;4)收银元,将食品袋交给顾客并收钱,每个雇员都可以看 作一个进行通信的顺序进程,他们采用的进程间通信方式是什么? 答:通信方式为消息传递。

26.抢占式进程调度是指系统能够强制性的使执行进程放弃处理机,试问分时系统采用的 是抢占式还是非抢占式进程调度?实时系统? 答:分时系统采用的是非抢占式进程调度 实时系统采用的是抢占式进程调度

27.试述进程调度得主要任务,为什么说它把一台物理机变成了多台逻辑上的处理机

答:处理机调度的任务是控制协调进程对CPU的竞争即按一定的调度算法从就绪队列中选 中一个进程,把CPU的使用权交给被选中的进程

多个进程虽然在微观上仍然是顺序执行,但是在宏观上,仿佛是并发执行

28.在CPU按优先级调度的系统中

1)没有运行的进程是否一定没有就绪进程

2)没有运行进程,没有就绪进程或两者都没有是否可能?各是什么情况? 3)运行进程是否一定是自由进程中优先数最高的? 答:1)一定没有

2) 没有运行进程,一定没有就绪进程;没有就绪进程可能有等待进程,也可能有运行 进程;两者都没有,可能有等待进程

3)不一定,可能出现等待进程中优先级更高

29.对某系统进行监测后表明平均每个进程在I/O阻塞之前的运行时间为T,一次进程切换 的需要的时间是S,实际上就是开销,对于采用的时间片长度为Q的时间片轮转法,请给出 1)Q=无穷,2)Q>T , 3)S

解:1)当Q=无穷时, CPU的利用率=T/(T+S)*100%(当进程运行完后,就切换,也就相当 于时间 片=T)

2)当Q>T时, CPU的利用率=T/(T+S)*100%(当进程运行完后,就切换,也就相当于时间 片=T )

3)当S

5)当Q趋于0,CPU的利用率=T/T+nS=0 (n趋于无穷)

30大多数时间片轮转调度程序使用一个固定大小的时间片,请给出选择小时间片的理由, 然后再给出选择大时间片的理由

答:选择小时间片:I/O密集型,可以缩短响应时间,满足短的交互需求

选择大时间片:CPU密集型,可以防止过多的进程切换,提高CPU效率

31.有5个批处理作业A到E几乎同时到达一计算中心。他们估计运行时间分别为10,6,2,4和 8分钟,其优先数(由外部设定)分别为3,5,2,1,4其中5级为最高优先级,对于下列每 种调度算法,计算其平均周转时间,可忽略进程切换的开销。 1) 时间片轮转法 2) 优先级调度法

3) 先来先服务法(按照次序10,6,2,4,8运行) 4) 最短作业优先 对1),假设系统具有多道处理能力,每个作业均获得公平的CPU时间,对(2) 和(4)假设 任一时刻只有一个作业运行,直到结束,所有作业都是CPU密集型作业! 答:1) 和时间片的长短有关,比较繁琐!

2)运行顺序是(6,8,10,2,4) (6+14+24+26+30)/4=100/4=25 3)(10+16+18+22+30)/4=96/4=24

4) (2+(2+4)+(2+4+6)+(2+4+6+8)+( 2+4+6+8+10))/4=17.5

32:有5个待运行的作业,他们的估计运行时间分别是9,6,3,5,采用哪中次序运行各个 作业将得到最短的平均响应时间?答案依赖于X

答:由于5个作业同时到达,所以按最短作业优先调度会得到最短的响应时间: 9≤x 3 5 6 9 x 6≤x≤9 3 5 6 x 9 5≤x≤6 3 5 x 8 9 3≤x≤5 3 x 5 8 9 x≤3 x 3 5 8 9

33,在一间酒吧里有三个音乐爱好者队列,第一列音乐爱好者只有随身听,第二列只 有音乐

磁带,第三列只有电池,而要听音乐就必须有随身听,音乐磁带和电池这三中物品 。酒吧老板一次出售这三种物品中的任意两种,当一名音乐爱好者得到这三种物品 并听完乐曲后,酒吧老板才能再一次出售这三种物品中任意两种,于是第二名音乐 爱好者得到这三种物品。并开始听乐曲,全部买卖九这样进行下去。

使用P,V操作正确解决这一买卖。

解:买方有三个进程,卖方有1个进程

卖方,和买方的同步信号量 S1,S2 ,初值为0,1. 听音乐时的互斥信号量;mutex 卖方进程

P(S1) (没有音乐爱好者,等待) 卖物品 P(mutex) 放音乐 V(mutex)

V(S2)

买方进程 P(S2) 买物品

V(S1) {老板可以卖东西}

34.巴拿马运河建在太平洋和大西洋之间,由于太平洋和大西洋水面高度不同,有巨大落 差,所以运河中建有T(T≥2)级船闸,并且只能允许单向通行,船闸依次编号为1,2,…,T ,由大西洋来的船需要经过船闸T,T-1.,,,2,1通过运河到达太平洋,由太平洋来的船需要 经由船闸1,2,…,T-1,T通过运河到达大西洋。

使用P,V操作正确解决大西洋和太平洋的船只通航问题。

答:答:Array: S1[T] of Semaphore {为每个船闸设置的信号量初值都为1}

Array: count1[T] of INTEGER {为每个船闸设置通往大西洋的船的计数值,初值都为 0}

Array: count2[T] of INTEGER {为每个船闸设置通往太平洋的船的计数值,初值都为 0}

对count设置互斥信号量 mutex 去大西洋的进程: int j

for(j=0;j

if(count1[j]==0) P(S[j]) count[j]++

过第j+1个船闸

P(mutex) count[j]--

if(count[j]==0) V(S[j]) V(mutex) }

去太平洋的进程: int k

for(k=T-1;k≥T,k++){ P(mutex)

if(count2[k]==0) P(S[k]) count[k]++

过第k+1个船闸 P(mutex) count[k]--

if(count[k]==0) V(S[k]) V(mutex) }

35.某银行有人民币储蓄业务,由n个柜员负责,每个顾客进入银行后,先取一个号,并且 等着叫号,当一个柜员人员空闲下来,就叫上一个号,使用P,V操作正确编写柜台人员和 顾客进程的程序!

解; 取号的互斥信号量 mutex,叫号的互斥信号量mutex1

柜台人员和顾客进程的同步信号量为 S1,S2, 初值分别为n,0

柜台人员进程:

P(S2) (无顾客则等待) P(mutex1) 叫号

V(mutex1) 服务 V(S1)

顾客进程 P(mutex) 取号 V(mutex) P(S1) 享受服务 V(S2)

36,设A,B,C三个进程共享一个存储资源F,A对F只读不写,B对F只写不读,C对F先读后写。 (当一个进程写F时,其他进程既不能读F,也不能写F,但多个进程同时读F是允许的)试 利用管程的方法或者P,V操作,写出A,B,C三个进程的框架,要求:(1)执行正确 (2)正常运行时不产生死锁;(3)使用F的并发度高

37,某系统如此定义P,V操作 P(S) S=S-1

若S<1本进程进入等待队列末尾,否则继续进行 V(S) S=S+1

若S≤0,释放等待队列中末尾的进程,否则继续运行。

现有四个进程P1,P2,P3,P4竞争使用某一需要互斥使用的资源(每个进程可能反复使用多 次),使用这样的P,V操作来正确的实现互斥。 解:

S:ARRAY[0,,,3] OF Semaphore{初值为s[i]=i,i=0,1,2,3 } 访问进程

for i:=3 downto 1 do P(s[i]) 临界区操作

for i:=1 To N-1 Do V(S[i])

38,请用进程通信的办法解决生产者,消费者问题 39,请用管程实现哲学家就餐问题

进程管理

1).多道程序设计和并发

内存允许多个程序进入,操作系统能够同时执行这些程序 CPU在多个进程之间调度,切换

系统有时有进程,有线程

对CPU的管理:

每个实体都有一个环境,多个实体间存在一个切换 从顺序执行开始,到并发执行,会产生许多特征

顺序执行----并发执行(不可再现性)------与时间有关的错误

并发执行的结果,不可再现,由于每个程序执行的速度不同,会带来不一致性。 与时间有关的错误,即包括互斥(飞机订票系统,一张票卖给两个顾客,竞争条件), 这是由于并发执行,且资源共享引起的。

2).进程模型

进程:正在执行的程序,系统中同时会有许多程序在执行 进程有创建,有撤销

从以下几个方面考虑进程模型:

2.1 进程的组成,进程有动态,有静态,从动态的角度讲叫做进程映像。

一个系统中与进程有关的实体和空间

1.程序的地址 2.进程所需的数据 3.进程运行过程中所遗留的痕迹(栈) 栈是进程运行过程中临时性的信息存放的地方。

栈分为系统栈和用户栈

用户空间和系统空间时分开的。

用户地址空间包括:程序,数据和栈

PCB(进程控制块)是由系统来管理的,进程所需的信息都放在此数据结构中。

上下文环境,PCB,数据结构是进程存在的痕迹。

地址越界:用户只能在用户的地址空间活动,不能进入其他用户地址空间和系统空间

2.2进程状态以及状态转换

2.2.1进程控制块PCB,系统管理进程时,修改PCB

进程在运行时,通用寄存器要保存现场信息,不运行的时候,这些信息都要保存下 来

比如,指针等,现场要保存在自己的空间中,文件系统中。 现场信息包括很多内容。

进程控制块PCB时贯穿始终的

2.2.2状态的设置与进程的控制有关系,什么时候创建进程,什么时候中止进程,完全 由

原语来将进程从一个状态转变为另一个状态 最主要的就是了解进程的控制 3.进程的同步和互斥

这部分与 \与时间有关的错误\有关

同步是开发人员有意识安排的:在完成一个特定功能的软件中,由多个进程协作,这 些进程间有时序关系,互相配合完成,而这些时序是事先安排好的,OS不知道这些关系, 用

户通过OS提供的原语来维持这种时序。

同步:第一个进程执行道某一点后能否继续执行取决于另一个进程能够给它发消息。 进程的互斥:各个进程间要求共享资源,竞争使用资源。 书上讲解了“竞争条件”这一概念。

4.临界区:只允许一个进程使用的资源叫临界资源 竞争使用同一个资源的

不是一个进程的,而是以上进程

对于临界区的要求

1)任何两个进程不能同时处于临界区,即两段程序是不能交叉的 临界区的程序是可以中断执行的

2)如果想进入临界区,又进不去,则阻塞“有空让进,无空等待,有限等待” 3)不应对进程的速度和进程的数目作假设

解决互斥的问题:

*1 用户关闭中断会出现问题(忘了开中断,怎么办?)

*2 锁变量在解决互斥问题时,也可以引入新得互斥 *3 严格轮换法

以上三种方法都不能解决互斥。

以下两个都不考:

#1 Peterson Delker 知道算法,但不考 #2 用硬件法解决互斥也不考

重点:5. 掌握信号量以及PV操作 5.1 信号量和PV操作 down --up (首选) P---V (也对)

wait--signal(错误)

原理:在执行过程中,不可分割.

down操作:对信号量:-1,若小于1,则阻塞,送到等待队列

up 操作:+1,若小于等于0,相应的信号量等于等待队列上的进程。

重点中重点:必有P V操作的题:

解题的要素:1)设置好每个信号量(每道题的分数由若干部分组成) 列出所有的信号量及其初值就给分

2)写PV,操作时,PV操作部分不能用自然语言,其余的部分 可用伪码,自然语言均可

begin ---end , repeat --until(搞清楚 2分)

读者---写者(循环) 生产---消费(不循环)

6.几个典型模型(考试不会超过此类模型)

6.1 生产者---消费者类型

思想:由一些 buffer,一些进程向Buffer 中写,另一些向Buffer中读 回家总结:

*1 一个生产者,一个消费者,一个buffer *2 一个生产者,一个消费者,一些buffer

*3 一个生产者,多个消费者,一个或者多个buffer

*4 多个生产者,多个消费者,一个或者多个buffer(最复杂,不考!0)

6.2 哲学家进餐问题(认真读书上的每句话)

对于多个竞争进程互斥访问资源是非常有用的!

6.3 读者---写者问题(P42) 对共享资源的操作

读有许多读者,但写时只有一个写。

若是两组读者问题,第二个读者将第一个得拷贝过来,变量改变一下 2003年的考研题,运河问题均是读者---写者问题 2003年考研题思路:

如何限制只有3个过,第四个不能过。 关键在于问题如何分解

树上这种读者,写者会出现饥饿,但本题要求不出现饥饿 大船方向:写者,小船方向:写者

把原来程序的框架写出,将细节只允许3个船过(不允许出现饥饿)补充进去

6.4 理发师问题(P43)

6.5 吸烟者模型

小的问题:eg:银行叫号, 阅览室问题,(来一个申请一个资源,若干个进程对资 源的使用问题),考场问题(同步关系,比较简单)

做题套路:1)先写出程序 2)找出进程间的关系(分解开找,先找互斥,再找同步,一 个关系设置一个信号量) 3)P,V嵌入到相应的位置,信号量是在找关系的时候定好的!一 个一个关系找,不要嫌麻烦 4)赋好初值 5)注意细节(是否需要循环)

PV匹配,但存在 if--else 语局时会有问题,信号量的操作,只能出现在P V中,而不会 出现在P,V语句之外,且不要写出有死锁的程序。 五. 进程通信

进程通信包括同步,互斥,本部分是高级的进程通信,P,V是简单进程通信! linux中,信号量,共享内存,消息队列,Socket,管道均是通信机制 Windows中,互斥队列,信号量对象等均是通信机制。

分为如下几类:

1. 共享内存

与读--写者问题是同一模型,若P个进程互相通信(重点),要了解实现和设计细节

1.1 设置共享内存存取方式

读者如何互斥,写者如何互斥 1.2消息传递方式(OS 中用的多) 设计要点:

1)两个进程间收发消息模型 send-receive的操作来完成

消息的传递会产生如下问题:发送的消息会不会丢失,解决方案:作一个回答 ;

应答会不会丢!

重发一条消息,接受道两个同一信息所带来的问题! 消息本身会不会有差错!

2) 给谁发消息,进程的命名会不会产生二义性! 3)

以上问题会在多机系统中出现

如何知道所发的消息是正确的,合法的(安全性) 4)有几种可能性来实现消息的传递 有阻塞,无阻塞,有无缓冲 a:消息传递是最常用的

系统中会开辟出缓冲区,系统把消息从A地址空间复制到buffer

然后从buffer中放到消息队列中,挂到B地址空间(接受进程的地址空间) 这个buffer是有缓冲的。

消息缓冲是:生产----消费者模型 b:信箱模型

建一个信箱,把消息放在信箱中 一套操作:建信箱,信箱满如何办 c:有/无阻塞

d:管道:建立两个进程通信的通路,实现时利用了文件系统,在文件系统中支持 通过读/写文件实现! write---read!

六:进程调度

处理机调度:在有些书上分为两个层次 1):CPU调度,2)中级调度 :两极调度 在这里狭义的说法就是选择哪些进程上CPU,考虑以下问题 1)什么原则(what) 2)什么时候(when) 3)如何进行(How)

1.what 什么算法:FIFO,时间片轮转法,优先级调度,搞清调度问题的区别

*FIFO:一个进程上CPU后,除非由于它自身的原因,否则没有进程能够打断它, (#基于优先级的不可剥夺算法) 时间片轮转法,时间片用完就切换下来

基于优先级:1):抢占:一旦有了高优先级就可以切换原来运行的进程! 2):不可抢占

可变的一定是动态的,固定的一定是静态的。 2机制和策略问题在此部分有所体现 策略是用户可选的 机制是定好的

最新版本的OS要求抢占

多级排列:几种策略的结合(时间片,优先级,抢占)

2)时机(WHEN) 什么时候做什么工作

什么时候进行进程调度:一个进程运行完毕,进程出错,时间片到,基于优先级的可抢占 式

调度,自己用阻塞原语将自己阻塞

3)如何进行上下文切换(HOW)

一个进程让出来,另一个进程上去。

如何保存被换下来的现场,以及如何将要换上去的现场换上去, 是用汇编来做的

线程和进程之间的关系问题:

如果同一系统中线程和进程都存在,他们的关系: 原来进程:资源分配和CPU调度的单位;

接着:进程粒度变小,进程只管分配资源,线程是CPU调度单位, 线程的引入:从资源系统开销的角度,系统使用的角度。

存储管理

1.产生存储分配问题的背景是什么?何谓静态分配?何谓动态分配?动态分配的原因是 什么?

答:一个有效的存储分配机制,应对用户提出的需求做出快速响应,为之分配相应的存储 空间,在用户作业不需要它时,及时收回,供其他用户使用。 内存分配有两种方式

1)静态分配:程序要求的内存空间是在目标模块连接装入内存时确定并分配的,并且在 程序运行过程中不允许再申请或在内存中“搬家”,也就是分配工作是在程序运行前一次 性完成

2)动态分配:程序要求的基本内存空间是在目标模块连接装入内存时确定并且分配的, 但是在运行过程中,允许申请附加的内存空间或在内存中“搬家”,也就是分配工作可以 在程序运行前及运行过程中逐步完成

动态分配的原因:动态分配具有较大的灵活性,对提高内存的利用率,比静态分配更合理 些。

2.阐述操作系统中选择存储管理方案的原则。 答: 原则:

1. 存储管理必须合理地分配内存空间

2.为了避免内存中的各个程序相互干扰,还必须实现存储保护 3.有效利用内存空间,允许多个作业共享程序和数据

4.为了在内存中运行长度为任意大小的程序,必须采用一定的方法“扩充”内存

3.可变分区管理方式下,采用移动技术有什么优点?移动一道作业时操作系统要做哪些工 作?

答:对碎片进行整理,把所有空闲碎片合并成一个连续的大空闲区,供作业使用。 被移动了得程序,需要进行重新定位,可以用动态地址映射实现。

4.用可变分区方式管理主存时,假定主存中按地址顺序依次有5个空闲区,空闲区的大小 依次为32k,10k,5k,228k,100k。现有J1,J2,J3,J4,J5。它们各需主存1k,10k,108k,28k,1

15k。若采用最先适应分配法能把这5个作业按J1, J5次序全部装入主存吗?你认为按怎样 的次序装入这5个作业可使主存空间利用率最高。

答:1) 若采用最先适应分配法,无法将5 个作业全部装入主存!

2)通过对最佳适应分配法和最差适应分配法的分析,其中最差适应分配法的内存空 间

利用率最高.

5.什么是碎片?试述各种多道程序系统存储管理方案中碎片是如何出现的?

答:经过一段时间的分配回收后,内存中存在很多很小的空闲块。它们每一个都很小,不 足以满足分配要求;但其总和满足分配要求。这些空闲块被称为碎片

6.段式存储管理系统中是如何实现存储保护的?

答:段式管理的存储保护主要有两种。一种是地址越界保护法,另一种是存取方式控制保 护法。具体的措施有:

1)利用段表及段长来实现段的保护,防止程序执行的时地址越界

2)存取权限保护法,在段表中设有“存取权”一项,可对程序的访问权限进行各种必要 的限制

3)存取保护键保护:由于I/O通道对存储器的访问是不通过段表的,因此有的机器还采用 存储保护健来保护

7,在段式存储管理系统中,如何实现多个作业对一个信息段的共享?并说明可共享过程 段的动态链接过程。

答:1)如果多个用户进程或作业需要共享某段程序或者数据,可以使用不同的段名,在各 自的段表中填入已在内存中的共享段的地址,并设置适当的读写控制权,就可以做到共享 一

个内存段的信息。

8.段式存储管理系统中,为什么说存取方式控制对共享段特别重要? 答:

存取方式对于非共享段来说,主要是用来指示程序设计的错误,而对共享段来说,则显得 特别重要,例如某个纯代码段被共享,则必须禁止任何作业修改它,因此,规定这样的段 只能“执行”。对于某个共享的数据段,只允许大家“读”,而不能“写”,或只允许某 一个用户“写”。

此外,通常还禁止任何作业“读”一个过程段,因为: 1)读一个过程段显然是程序设计的错误

2)有些过程是专用的,只准使用,不准“拿走”。如果一个分段仅具有“执行”状态, 那么只能作为一个过程来调用,而“读”“写”是禁止的;如果有作业给他们企图“读” 和“写”,则系统发出保护中断信号。 --

9.保护方式除R,W,EX(执行)组合外,你还能想出其他的保护方式吗?

答:保护方式除了R,W,EX组合成的存取权限位外,还应该增加以下内容: 1)特征位(该段在/不在内存,是否可共享) 2)标志位(该段是否被修改过,能否移动) 3)扩充位(改段长度固定长/可扩充)

10.什么是动态链接?为什么虚拟段式存储管理系统有利于动态链接?

答:动态链接是:是在程序开始运行时,只将主程序段装配好,并调入内存,其他各段 的装配是在主程序段的运行过程中逐步完成。每当需要调用一个新段时,再将这个新段装 配好,并于主程序段链接。

2)?

11.有一个操作系统采用段式存储管理方案,用户区内存为512K,分配时截取空闲块的前 半部分(小地址部分)。初始时内存全部空闲,系统执行如下申请,释放操作序列。 申请300K,申请100K,释放300K,申请150K,申请50K,释放90K

1)若采用首先适应算法,空闲块表中有哪些空块(指出大小,地址) 2)若采用最佳适应算法,空闲块中有哪些空块(指出大小,地址)

3)若随后又申请了80K,针对上述两种情况说明结果?其结果说明了什么问题? 答:1)

空闲块:0--90 , 200--300,400---512 空闲块: 0--90 , 150--300,450--512 2)

空闲块:80--90, 200--300,400---512 空闲块:80--90 , 150--300,450--512

12.加入一个程序的段表如下:

段号 状态位 段起始地址 段长 存取控制 0 0 100 40 W 1 1 2010 20 W 2 0 1590 100 E 3 0 75 50 R

其中状态位“1”表示该段不在内存中,存取控制:W 表示可写,R表示可读,E表示可执 行

对于下列的逻辑地址可能发生什么情况? 1) STORE 1,[0,50] 2) STORE 1,[1,10] 3) LOAD 1,[2,77] 4) LOAD 1,[3,20] 答:1)的逻辑地址:150 2)的逻辑地址:2020 3)的逻辑地址:1667 4)的逻辑地质:95

13. 设在内存中按地址递增次序有三个不连续的空闲区F1,F2,F3,他们的容量分别为60K, 130K,20K请给出一个后备作业序列,使得实施存储分配时

1)采用最佳适应算法将取得好的效果,而采用最差适应算法和首先适应算法效果都不好 ;

2)采用最佳适应算法效果不好,而采用最差适应算法和首先是应算法都可取得好的效果 ;

3)采用最差适应算法将取得好的效果,而采用首先适应算法和最佳适应算法效果都不好 ;

4)采用三种算法都取得好的效果; 5)采用这三种算法效果都不好。 答:1)20,60,130 2)40,65,20 3)20,50,60 4) 130,60k,20 5) 140,70,70

14.页式存储管理系统中作业的地址空间是一维的还是二维的?请说明理由 答:二维的,有一维是:页号,和第二维是:页内地址!

15.页式存储管理需要哪些硬件支持?如何实现逻辑地址到物理地址的映射? 答:系统提供了一对寄存器:页表始址寄存器和页表长度寄存器。 1)具体步骤说明如下

1)地址映射机制把CPU给出的逻辑地址分为两部分:页号P和页内地址

2)将逻辑页号P与页表长度寄存器内容比较,如果P大于等于页表长度L,则为越届,发生

地址越界中断

3)根据页表始址寄存器的内容D得到页表在内存的首地址,并根据逻辑页号P在页表 中找到对应的内存块号P'

4)把物理页号与逻辑地址中的页内地址D拼在一起,形成访问内存的物理地址

16.假定一个存储管理程序已经把它的页面淘汰决定缩小到两页之一,假定其中一页由几 个进程共享,另一页仅由一个进程使用,最终应该淘汰哪一页?请解释! 答:当然是后一页,这样就能避免频繁的调度页面!

17. 在多道程序系统中,程序和数据共享可以大大的节省内存空间,分别说明页式,段式 和段页式存储管理系统中是如何实现共享的? 答:

页式:页式存储管理使每个程序能利用内存空间中一些不连续的存储块,这种灵活性就 允许两个或多个程序共享程序中的代码或公共数据段。

段式:如果多个用户进程或作业需要共享某段程序或数据,可以使用不同的段名,在各 自的段表中填入已在内存中的共享段的起始地址,并设置适当的读写控制权,就可以做 到共享一个内存段的信息。 段页式:?

18. 在页式存储管理系统中,对数据,过程的共享有什么限制,为什么?

答:对于数据页面的共享,实现起来比较简单,因为这个共享的数据页面,可以安排在程 序

地址空间的任何一个页面上,而代码的共享则不然,它必须把共享的代码安排到所有共享 它

的程序地址空间中相同页号的页面中,即共享代码所在地址空间必须重叠。

19.为什么期望大多数程序具有局部性?

答:利用虚拟存储技术,可以为程序提供较少的物理页面,就可以完成执行程序的任务。 20.设计一个页表应考虑哪些因素?

答:系统为每个用户程序建立一张页表,用于记录用户程序的逻辑页面与内存物理页面之 间

的对应关系,包括两项内容:逻辑页面号,该逻辑页面在内存中分配的物理页面号(内存 块号),用户程序的地址空间有多少页,该页表里登记多少行,且按逻辑页的顺序排列。 页表存放在内存系统区。

21. 操作系统的存储管理目标是什么?段页式管理是如何实现这些目标的? 答:

1)充分利用内存,对多道程序并发执行。

22.为什么说段页式管理时的虚拟地址仍然是二维的? 答:段号,段内地址。

23.假定磁盘空闲空间表表明有下列存储块空闲块:13,11,18,9和20块。有一个要求 为某文件分配10个连续的磁盘块。

1)如果采用首次适应分配策略,那么将分配哪个块?

31.有一台计算机含有四个页面,每一页的装入时间,最后一次修改时间以及R与M位的值 如下(时间为时间周期):

页 装入时间 最后访问时间 R M 0 126 279 0 0 1 230 260 1 0 2 120 272 1 1 3 160 280 1 1 1)NRU应该淘汰哪一页? 2)FIFO应该淘汰哪一页? 3)LRU 应该淘汰哪一页?

4)第二次机会应该淘汰哪一页?

答:?

32. 请求页式存储管理中,页面置换算法所花的时间属于系统开销,这种说法对吗? 答:额外开销。

33.何谓系统的“抖动”现象?当系统发生“抖动”时,你认为应该采取什么措施加以克 服?

答:在虚存中,页面在内存和外存之间频繁的调度,以至于调度页面所需时间比进程实际 运行的时间还多,此时系统效率急剧下降,甚至导致系统崩溃,这种现象称为颠簸(抖动 )

产生的原因:页面置换算法不合理,分配给进程的物理页面数太少。 解决办法:调整算法,多分配物理页面数。

34.在虚拟页式存储管理中,进程在内外存中的存放有以下两种方法: 1)一部分页面放在内存,其余页面放在外存

2)一部分页面放在内存,全部页面放在外存

试从系统开销的角度分析两种方法各自的优缺点,并说明页表的差别。 答:?

35,36,37 第二次复习的时候做!!

文件管理

1.举一个文件访问的例子,所举的领域在某些情况下,信息必须随机访问,而在其他时间 必须顺序访问.

答:进行视频文件播放时。

2.为什么支持索引文件的文件系统无法获得顺序访问文件系统相同的效率?

答:因为:索引结构的缺点就是:较多的寻道次数和寻道时间,以及索引表本身增加了存 储空间的开销。

连续结构的优点就是:文件存取非常简单迅速。

3.假设一个活动头磁盘有200道,编号1-199,当前磁头正在143道上服务,并且刚刚完成了 125道的请求,现有如下访盘请求序列(磁道号) 86,147,91,177,94,150,102,175,130

试给出采用下列算法后磁头移动的顺序和移动总量(总磁道数) 1)最短寻道时间优先(SSTF)磁盘调度算法

2)扫描法(SCAN)磁盘调度算法(假设沿磁头移动方向不再有访问请求,磁头沿相反方 向移动)

答:1)143 147 150 130 102 94 91 86 175 177 2)143 130 102 94 91 86 147 150 175 177

4.假定一个文件系统用索引文件结构管理存储块。每个文件都有一个目录项,存放文件名 ,第一个索引块,以及文件长度。第一个索引块指向248各文件块和下一个索引块。如果 一个文件当前放在第2009各逻辑块,而下一个操作是访问第306个逻辑块,那么必须从 磁盘上读多少个物理块? 答:

5.假定一个UNIX的磁盘块能够存放1048个磁盘地址。用直接盘块指针的文件的最大尺寸是 多少?一重间接块指针呢?二重间接块指针呢?三重呢?

6.早期MS-DOS版本的文件系统最大能够管理32M的磁盘空间,根据本章所讲的有关目录和 文件的知识,推测由于该限制可能导致的一些后果。

7.假定一个文件系统的组织方式与MS-DOS文件系统类似,在FAT中有64K个指针,请说明该 文件系统是否能够用这64K个指针来引用一个512M磁盘上一个512字节块。

8.文件系统检测程序经常利用位图。基本的想法就是把该图拷贝到检测程序的地址空间去 ,把图中每一个项放大,使它能够包含更多的状态信息(例如已分配,未分配,已检测, 坏块),请设计一个算法,用增加内容位示图来检测一个磁盘的上述状态信息,并作出具 体统计。

答: 1)为位图增加一个内容位示图,已分配,未分配,已检测,坏块分别用0,1,2,3来代 替

2)检测磁盘,遇到0,:count0++,遇到1:count1++,遇到2,count2++,遇到3,count3 ++,(初值都为0)

3)得出相应的块的个数。

9.假定需要一种机制,是的一个文件能被任何用户读,但只能被一个用户写。比如全国 高考成绩,可被高考学生读,但只能被有关办公室修改成绩,请设计该文件的存取控制机 制。

答:1)审定用户权限

2)比较用户权限的本次存取要求是否和用户的存取权限一致

3)将用户的存取要求和被访问文件的存取控制表进行比较,看是否冲突,如果没有 冲突,允许用户对有关文件进行访问,如果有冲突,处理冲突。

10.请描述一种机制,硬件的或软件的,它根据用户的指纹进行身份识别。

答:第一步要对用户的身份进行验证,第二步,采用一组称为存取控制模块的程序,对用 户

的存取权限进行控制。

11.文件目录的作用是什么?一个目录表目应包含哪些信息?

答:文件目录就是文件控制块的有序集合,即把所有文件控制块有机地组织起来,就构成 了文件目录。

文件控制块应该包括以下内容:文件名,文件号,用户名,文件地址,文件长度,文 件类型,文件属性,共享计数,文件的建立日期,保存期限,最后修改日期等!

12.多级目录结构的特点有哪些?有什么好处? 答: 优点:

层次结构清晰,便于管理和保护;有利于文件分类;解决重名问题;提高文件检索速度 ;能进行存取权限的控制 缺点:

查找一个文件按路径名逐层检查,由于每个文件都放在外存,多次访盘影响速度 13.可通过什么办法来实现用户之间共享某个文件? 答:1)绕道法 2)I节点法 3)符号链接法

14.在设计文件系统时,对文件的数据结构应做何考虑? 答:顺序结构,链接结构,索引结构以及I节点.

15.请设计一个文件系统的FCB,并说明为何要安排FCB的每一项内容。

答:文件控制块PCB为系统管理文件而设置的一个数据结构。FCB是文件存在的标志,它记 录了系统管理文件所需要的全部信息。见图6.2 文件控制块

16.在文件系统中,使用Create和Open命令的目的是什么?他们的具体功能是什么?能不 能只用一个命令,完成文件的建立和打开操作?

答:create 和open命令是建立一个和打开一个文件。

create建立一个文件,open打开一个已存在的文件,或者先创建然后打开一个文件 能用一个命令open来完成文件的建立和打开操作.

17.对下列每个问题,试说明它由文件系统中哪一个部分处理的,以及如何处理的? 1)存储碎片问题

2)允许给不同的文件以相同的文件名 3)缓冲处理

4)扩充文件时,存储空间的申请。 答:1)文件的物理结构 2)存储结构 3)存储性能

4)存储空间的管理

18. 对常用的计算机系统,分析其文件映射功能的透明性。 答:实现文件的按名存取

名字空间 映射 存储空间

19.在UNIX系统中,采用I节点方式给出一个文件所在磁盘号的块号。假设每个磁盘块的大 小为1024字节,并且每个间接盘块能容纳256个块号,试问:

1)如果进程要读取某文件的字节偏移量为8192,应该如何找到它所在的磁盘号? 2)如果要存取某文件的字节偏移量为640000,又将如何?

20.能用单级目录来模拟多级目录?如果能,揭示如何实现之。

21.由一个文件系统,根目录常驻内存,如下图所示。(图略)

目录文件采用链接结构,规定一个目录下最多存放40个下级文件,下级文件可以是目录文 件

,也可以是普通文件。每个磁盘块可以存放10个下级文件的描述信息,若下级文件为目录 文件,则上级目录指向目录文件的第一块,否则指向普通文件的文件控制块。

1)普通文件采用UNIX的三级索引结构,即文件控制块给出13个磁盘地址,前10个磁盘地址 指出文件前10块的物理地址,第11个磁盘地址指向一级索引表,一级索引表给出256个磁 盘地址,即指出该文件第11块到第266块的物理地址;第12个磁盘地址指向二级索引表, 二级索引表中指出了256个一级索引表的地址,第13个磁盘地址指向三级索引表,三级索 引表指出256个二级索引表的地址,该文件系统中的普通文件最大可由多少块?假设主索 引表放在FCB中,若要读问A\\D\\G\\I\\K中某一块,最少要启动磁盘几次?最多要启动磁盘几 次?若要减少启动磁盘的次数,可采用什么办法?2)普通文件采用链接结构,若要读A\\ D\\G\\I\\K的第75块最少启动磁盘几次,最多几次?

22.在文件系统中,使用文件前要先打开文件,请写出“打开文件”系统调用的主要实现 步骤,包括相关的数据结构,设命令为fopen(文件名,打开方式)。 答:打开文件

使用文件的第一步,任何一个文件使用前都要先打开,即把FCB送到内存 fd=open(文件路径名,打开方式) ① 根据文件路径名查目录,找到FCB主部; ② 根据打开方式、共享说明和用户身份检查访问合法性; ③ 根据文件号查系统打开文件表,看文件是否已被打开; 是→共享计数加1

否则→将外存中的FCB主部等信息填入系统打开文件表空表项,共享计数置为1; ④ 在用户打开文件表中取一空表项,填写打开方式等,并指向系统打开文件表对应表项 返回信息:fd:文件描述符,是一个非负整数,用于以后读写文件

23.1)在文件系统中,会出现文件希系统不一致的现象,请简要解释这种现象产生的原因 及问题的严重性.

为了解决文件系统的不一致性问题,常采用一个实用程序检查文件系统,在进行了

块的一致性检查后,得到如下结果: 图略

请解释该文件系统出现的每一错误,并给出处理方法。 2)第二轮复习的时候再看!

答:很多文件系统在读取磁盘块进行修改后,再写回磁盘,如果在修改过的磁盘块全部写 回之前,系统崩溃,则文件系统有可能处于不一致的状态。

如果未被写回的块是I节点,文件目录,或者是空闲块列表,那么问题就有点严重. 24.在实现文件系统时,为了加快文件目录的检索速度,可利用“文件控制块分解法”。

假设目录文件存放在磁盘上,每个盘块512字节,文件控制块占64字节,其中文件名占8字 节,文件控制块分解后,第一部分占用10字节(包括文件名和文件内部号),第二部分占 56字节

(其中包括文件内部号和文件其他信息)

1)假设某一目录文件共有256个文件控制块,分别给出采用分解法前和分解法后,查找该 目录文件的一个文件控制块的平均访盘次数。

2)一般地,若目录文件分解前占用n个盘块,分解后改用m个盘块存放文件名和文件内部 号部分,请给出访盘次数减少的条件。

25. 文件分配所用的位示图应该保存在哪里,请说明原因.

26.对于用户来说,有些系统把设备也看成文件,试问这样做有什么好处?还会带来什么 问题?

27.计算机用户身份鉴别与验证通常有哪三种方式?

28.在设计文件系统的安全性时,应该考虑哪些方面的情况?

29.请对常使用的计算机系统中的文件系统的性能和可靠性,做一个比较全面的评价。如 果想改进这个文件系统的性能和可靠性,可以从哪些方面进行?

作业管理

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=

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

本文来源:https://www.bwwdw.com/article/pop3.html

Top