导图社区 操作系统知识导图
操作系统知识导图,整理的知识点有操作系统引论、进程的描述与控制、处理机调度与死锁、存储器管理、虚拟存储器、输入输出系统等。
编辑于2021-11-14 21:57:49操作系统
第一章操作系统引论
第二章进程的描述与控制
什么是前趋图,为什么要引入前趋图
前驱图是一个有向无循环图记作DAG,用于描述进程之间执行的前后关系
为了更好地描述程序的顺序和并发执行情况
为什么程序并发执行会产生间断性特征
程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间出现间断性
程序并发执行时为什么会失去封闭性和可再现性
因为程序并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态是由多个程序来改变,致使程序的运行失去了封闭性,也会导致其失去可再现性
4.在操作系统中为什么要引入进程的概念,它会产生什么样的影响
为了程序需在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,从而在操作系统中引入进程概念
影响:是程序的并发执行得以实现
5.是从动态性,并发性和独立性来比较进程和程序
动态性
动态性是进程最基本的特效,而程序是静态实体
并发性
并发性是程序的重要特征,同时也是操作系统的重要特征,引入进程的目的正是为了使其程序能和其他建立了进程的程序并发执行,而程序本身不能并发执行
独立性
进程实体是一个能独立运行的独立单位,也是系统中独立获得资源和独立调度的基本单位,而程序不能当做独立单位而运行
6.试说明PCB的作用具体表现在哪几个方面?为什么说PCB是进程存在的唯一标识?
PCB是进程实体的一部分,是操作系统中记录型数据结构,PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。因而它的作用是使一个在多道程序并发执行的进程
在进程的整个生命周期中,系统总能通过其PCB对进程进行控制,系统根据进程的PCB感知进程的存在,所以说PCB是进程的唯一标识
7.PCB提供了进程管理和进程调度所需要的哪些信息?
进程管理:通用寄存器,指令计数器,程序状态字,用户栈指针;
进程调度:进程状态,进程优先级,事件,其他信息
8.进程控制块的组织方式有哪几种?
线性方式
链接方式
索引方式
9.何为操作系统内核?内核的主要功能是什么?
概念
通常将一些与硬件紧密相关的模块(如中断处理程序等)、各种常用设备的驱动程序以及运行频率较高的模块(如时钟管理、进程调度和许多模块所公用的一些基本操作),都安排在紧靠硬件的软件层次中,将它们常驻内存,即通常被称为的OS内核。
功能
支撑管理
资源管理
10.是说明进程在三个基本状态之间转换的经典原因
就绪——>执行:进程分配到CPU资源
执行——>就绪:时间片用完
执行——>阻塞:I/O请求
阻塞——>就绪:I/O完成
11.为什么要引入挂起状态?该状态有哪些性质?
引入挂起状态处于五中不同的需要:
终端用户需要,父进程需要,操作系统需要,对换需要和负荷调节需要
12.在进行进程切换时,所要保存的处理机状态信息有哪些?
进程当前暂存信息
下一指令地址信息
进程状态信息
过程和系统调用参数及调用地址信息
13.试说明引起进程创建的主要事件有
用户登录,作业调度,提供服务,应用请求
14.是说明引起进程被撤销的主要事件
正常结束,异常结束(越界错误,保护错误,非法指令,特权指令错误)外界干扰
15。在创建一个进程时所要完成的主要工作是什么
申请空白PCB,为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB; 为新进程分配其运行所需的资源,包括各种物理和逻辑资源,如内存、文件、I/O设备和CPU时间等;
初始化进程控制块;
如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。
16.在撤销一个进程时所要 成的主要工作是什么?
根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态;
若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度;
若该进程还有子孙进程,还应将其所有子孙进程也都予以终止,以防它们成为不可控的进程;
将被终止进程所拥有的全部资源或者归还给其父进程,或者归还给系统;
将被终止进程从所在队列中移出,等待其他程序来搜集信息。
17.是说明引起进程阻塞或被唤醒的主要事件是什么?
请求系统服务
启动某种操作
新数据尚未到达
无新工作可做
18.为什么要在操作系统中引入线程
减少程序并发执行时所产生的时空开销,使操作系统具有更好的并发性
19.试说明线程具有哪些属性?
轻型实体
独立调度和分配的基本单位
可并发执行
共享进程资源
20.试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较
调度
在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程,在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位;
并发性
在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程的多个线程之间,亦可并发执行,因而使OS具有更好的并发性;
拥有资源
无论是传统的操作系统,还是引入了线程的操作系统,进程始终是拥有资源的一个基本单位,而线程除了拥有一点在运行时必不可少的资源外,本身不拥有系统资源,但它可以访问其隶属进程的资源;
开销:
由于创建或撤销进程时,系统都要为之分配和回收资源,如内存空间等,进程切换时所要保存和设置的现场信息也要明显地多于线程,因此,操作系统在创建、撤销和切换线程所付出的开销将显著的大于线程。
21.线程控制块TCB中包含哪些内容?
线程标识符
一组寄存器:包含程序计数器PC,状态寄存器和通用寄存器的内容
线程运行的状态
优先级
线程专有存储区
信号屏蔽
堆栈指针
22.何谓用户级线程和内核支持线程
用户级线程是在用户空间实现的,对线程的创建,撤销,同步与通信等功能,都无需内核支持,及用户级线程与内核无关
内核支持线程在操作系统中所有进程,无论是系统进程还是用户进程,都是操作系统的内核都支持下运行的,都是与内核紧密相关的,他们的创建,阻塞,撤销和切换都是在内核空间实现的
23.试说明内核支持线程的实现方法
系统在创建新进程时,分配了一个任务数据区PTDA,其中包括若干个线程控制块TCB空间,创建一个线程分配一个TCB,有关信息写入TCB位置分配必要资源
24.试说明用户级线程的实现方法
用户级线程都运行在一个中间系统上,有两种方式实现中间系统,运行时系统和内核控制系统。
25多线程模型有哪几种类型?多对一模型有何优点?
多对一、一对一、多对多。
优点:线程管理的开销小,效率高;
缺点:如果一个线程在访问内核时发生阻塞,则整个进程都会被阻塞;此外,在任一时刻,只有一个线程能够访问内核,多个线程不能同时在多个处理机上运行。
第三章处理机调度与死锁
1.高级调度与低级调度的主要任务是什么?为什么要引入中级调度
高级调度主要任务:根据某种算法,决定将外存上处于后备队列中的哪几个作业调入内存,为他们创建进程,分配必要的资源,并将它们放入就绪队列
低级调度重要任务:根据某种算法,决定就绪队列中的哪个进程应获得处理机,并由分派程序将处理机分配给选中的进程,进程调度是最基本的一种调度,多道批,分时,实时中必须配置这种调度
引入中级调度的主要目的:提高内存利用率和系统吞吐量。
2。处理机调度算法的共同目标是什么?批处理系统的调度目标又是什么、
处理机调度算法共同目标
资源利用率
平衡性
策略强制执行
批处理系统的调度目标是
平均周转时间短
(所谓周转时间,是指从作业被提交给系统开始到作业完成为止的这段时间间隔,他包括四部分时间:作业在外存后备队列上等待调度时间,进程在就绪队列上等待进程调度的时间,进程在CPU上执行的时间以及进程等待I/O操作完成的时间)
系统吞吐量高
吞吐量是指在单位时间内系统所完成的作业数,因此他与批处理作业的平均长度有关
处理机利用率高
3.何为作业,作业步和作业流?
作业
作业是一个比程序更为广泛的概念,它不仅包含了通常的程序和数据,而且还配有一份作业说明书,系统根据该说明书来对程序的运行进行控制,在批处理系统中,是以作业为基本单位从外存调入内存的
作业步
通常,在作业运行期间,每个作业都必须经过若干个相对独立,又相互关联的顺序加工步骤才能得到结果,我们把其中的每一个加工步骤称为一个作业步,各作业步之间存在着相互联系
作业流
是指若干作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流
4.在什么情况下需要使用作业控制卡JCB,其中包含了哪些内容?
每当作业进入系统是,系统便为每个作业建立一个作业控制块,根据作业类型将它插入到相应的后备队列中。
JCB包含的内容通常有
作业标识
用户名称
用户账户
作业类型(CPU繁忙型,I/O繁忙型,批量型,终端型)
作业状态
调度信息(优先级,作业已运行)
资源要求
进入系统时间
开始处理时间
作业完成时间
作业退出时间
资源使用情况
5.在作业调度中应如何确定接纳多少个作业和接纳哪些作业?
作业调度每次接纳进入内存的作业数,取决于多道程序度。应将哪些作业从外存调入内存取决于采用的调度算法
最简单的事先来先服务调度算法,较常用的是短作业优先调度算法和基于作业优先级调度算法
6.为什么要引入高响应比优先调度算法?他有何优点?
在批处理系统中,FCFS算法所考虑的只是作业的等待时间,而忽视了作业的运行时间,而SJF算法正好与之相反,只考虑作业的运行时间,而忽视了作业的等待时间。
高响应比优先调度算法则即考虑了作业的等待时间,又考虑作业运行时间的调度算法,因此即照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机调度的性能
7.试说明低级调度的主要功能?
保存处理机的现场信息
按某种算法选取进程
把处理机分配给进程
8.在抢占调度方式中,抢占的原则是什么?
时间片原则
优先权原则
短作业优先权原则
9.在选择调度方式和调度算法时,应遵循的准则是什么?
面向用户的准则:周转时间短,响应时间快,截止时间得保证,优先权准则
面向系统的准则:系统吞吐量高,处理机利用率好,各类资源的平衡利用
10.在批处理系统,分时系统和实时系统中,各采用哪几种进程(作业)调度算法?
批处理系统的调度算法:短作业优先,优先权,高响应比优先,多级反馈队列调度算法
分时系统的调度算法:时间片轮转法
实时系统的调度算法:最早截止时间优先(EDF),最低松弛度优先算法(LLF)
11.何为静态和动态优先级?
静态优先级
在创建进程时确定且在进程的整个运行期间保持不变的优先级
动态优先级
可以随进程推进或随其等待时间增加而改变的优先级,可以获得更好的调度性能
12.试比较FCFS和SJF两种进程调度算法
相同点
两种调度算法都可以用在作业调度和进程调度
不同点
FCFS调度算法每次都从后备队列中选择一个或多个最先进入该队列的作业,将它们调入内存、分配资源、创建进程、插入到就绪队列。该算法有利于长作业/进程,不利于短作业/进程。SJF算法每次调度都从后备队列中选择一个或若干个估计运行时间最短的作业,调入内存中运行。该算法有利于短作业/进程,不利于长作业/进程。
13.在时间片轮转法中,应如何确定时间片大小?
时间片应略大于一次典型的交互需要的时间。一般应考虑三个因素:系统对相应时间的要求、就绪队列中进程的数目和系统的处理能力。
14.通过一个例子来说明通常的优先级调度算法为什么不能适用实时系统
实时系统的调度算法很多,主要是基于任务的开始截止时间和任务紧急/松弛程度的任务优先级调度算法,通常的优先级调度算法不能满足实时系统的调度实时性要求而不适用。
15.为什么说多级反馈队列调度算法能较好地满足各方面用户的需求?
终端型作业用户提交的作业大多属于较小的交互型作业,系统只要使这些作业在第一队列规定的时间片内完成,终端作业用户就会感到满足。
短批处理作业用户,开始时像终端型作业一样,如果在第一队列中执行一个时间片段即可完成,便可获得与终端作业一样的响应时间。对于稍长作业,通常只需在第二和第三队列各执行一时间片即可完成,其周转时间仍然较短。
长批处理作业,它将依次在第1,2,…,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。所以,多级反馈队列调度算法能满足多用户需求。
16.为什么说传统的几种调度算法都不能算是公平调度算法?
以上介绍的几种调度算法所保证的只是优先运行,如优先级算法是优先级最高的作业优先运行,但并不保证作业占用了多少处理机时间。另外也未考虑到调度的公平性。
17.保证调度算法是如何做到调度的公平性的?
保证调度算法是另外一种类型的调度算法,它向用户所做出的保证并不是优先运行,而是明确的性能保证,该算法可以做到调度的公平性。一种比较容易实现的性能保证是处理机分配的公平性。如果在系统中有n个相同类型的进程同时运行,为公平起见,须保证每个进程都获得相同的处理机时间1/n。
18.公平分享调度算法又是如何做到调度的公平性的?
在公平分享调度算法中,调度的公平性主要是针对用户而言,使所有用户能获得相同的处理机时间,或所要求的时间比例。
19.为什么在实时系统中,要求系统(尤其是CPU)具有较强的处理能力
实时系统中通常有着多个实时任务。若处理机的处理能力不够强,有可能因为处理机忙不过来而使某些实时任务得不到及时处理,导致发生难以预料的后果。
20.按调度方式可将实时调度算法分哪几种?
分为非抢占式和抢占式两种算法。而非抢占式算法又分为非抢占式轮转和优先调度算法;抢占式调度算法又分为基于时钟中断的抢占式优先权和立即抢占式优先权调度算法。
21.什么是最早截止时间优先调度算法?举例说明之
根据任务的开始截止时间确定的任务优先级调度算法。截止时间越早则优先级越高。该算法要求在系统中保持一个实时任务就绪队列,该队列按各任务截止时间的先后排序。
举例:非抢占式调度方式用于非周期实时任务。图3-9是将该算法用于非抢占调度方式之例。该例中具有四个非周期任务,它们先后到达。系统首先调度任务1执行,在任务1执行期间,任务2、3又先后到达。由于任务3的开始截止时间早于任务2,故系统在任务1后将调度任务3执行。在此期间又到达作业4,其开始截止时间仍是早于任务2的,故在任务3执行完后,系统又调度任务4执行,最后才调度任务2执行。
22.什么是最低松弛度优先调度算法?举例说明之
该算法是根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急程度愈高,为该任务所赋予的优先级就愈高,以使之优先执行。例如,一个任务在200 ms 时必须完成,而它本身所需的运行时间就有100 ms,因此,调度程序必须在100 ms 之前调度执行,该任务的紧急程度(松弛程度)为100 ms。又如,另一任务在400 ms 时必须完成,它本身需要运行 150 ms,则其松弛程度为 250 ms。
23.何为“优先级倒置”现象,可采取什么方法解决
高优先级进程被低优先级进程延迟或阻塞
解决方法:
(1)当进程进入临界区后,CPU就不能被剥夺;
(2)进程在运行过程中,可以不断地创造可消耗性资源的单元,将它们放入该资源类的缓冲区中,以增加该资源类的单元数目。
(3)进程在运行过程中,可以请求若干个可消耗性资源单元,用于进程自己的消耗,不再将它们返回给该资源类中。
24.试分别说明可重用资源和可消耗资源的性质
可重用资源
每一个可重用性资源中的单元只能分配给一个进程使用,不允许多个进程共享。
进程在使用可重用性资源时,须按照这样的顺序:①请求资源。如果请求资源失败,请求进程将会被阻塞或循环等待。②使用资源。进程对资源进行操作,如用打印机进行打印。③释放资源。当进程使用完后自己释放资源。
系统中每一类可重用性资源中的单元数目是相对固定的,进程在运行期间即不能创建也不能删除它。
可消耗资源
每一类可消耗性资源的单元数目在进程运行期间是可以不断变化的,有时它可以有许多,有时可能为0。
进程在运行过程中,可以不断地创造可消耗性资源的单元,将它们放入该资源类的缓冲区中,以增加该资源类的单元数目。
进程在运行过程中,可以请求若干个可消耗性资源单元,用于进程自己的消耗,不再将它们返回给该资源类中。
25.试举例说明竞争不可争强资源所引起的死锁
当一个进程已开始刻录光盘时,如果突然将刻录机分配给另一个进程,其结果必然会损坏正在刻录的光盘,因此只能等刻好光盘后进程自己释放刻录机,另外磁带机,打印机等也属于不可抢占性资源
26.为了破坏“请求和保持”条件而提出了两种协议,试比较这两种协议
第一种协议
内容
所有进程在开始运行之前,必须一次性地申请其在整个运行过程中所需的全部资源,此时若系统有足够的资源分配给某进程,便可把其需要的所有资源分配给他,这样,该进程在整个运行期间就不会再提出资源要求
优点
简单,易行,安全
缺点
资源被严重浪费,严重恶化资源利用率,进程在开始运行时就一次性占用了整个运行过程所需的全部资源,其中有些资源可能仅在运行初期或运行快结束时才能用,甚至根本不用
使进程经常会发生饥饿现象,因为仅当进程在获得了其所需的全部资源后才能运行,这样就可能由于个别资源长期被其他进程占用,导致使等待该资源的进程迟迟不能开始运行,而个别资源有可能仅在进程运行到最后才需要,如打印机
第二种协议
内容
允许一个进程只获得运行期间所需的资源后,便开始运行,进程运行过程中在逐步释放已分配给自己的,且已用毕的全部资源,然后再请求新的资源
优点
不仅能使进程更快的完成任务,提高设备的利用率还可以减少进程发生饥饿的几率
缺点
27.何为死锁?产生死锁的原因和必要条件是什么?
死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。
产生死锁的原因为竞争资源和进程间推进顺序非法。
必要条件是:互斥条件、请求和保持条件、不剥夺条件、环路等待条件。
28.在解决死锁问题的几个方法中,那种方法最易实现?哪种方法使资源利用率最高?
解决死锁的四种方法即预防、避免、检测和解除死锁中,预防死锁最容易实现;避免死锁使资源的利用率最高。
29.请详细说明可通过哪些途径预防死锁?
摈弃“请求和保持”条件,就是如果系统有足够资源,便一次性把进程需要的所有资源分配给它;
摈弃“不剥夺”条件,就是已经拥有资源的进程,当它提出新资源请求而不能立即满足时,必须释放它已保持的所有资源,待以后需要时再重新申请;
摈弃“环路等待”条件,就是将所有资源按类型排序标号,所有进程对资源的请求必须严格按序号递增的次序提出。
30.在银行家算法的例子中,如果P0发出的请求由Request(0,2,0)改为Request(0,1,0),问系统可否将资源分配给它
第四章存储器管理
1.为什么要配置层次式存储器
设置多个存储器可以使存储器两端的硬件能并行工作;采用多级存储系统,特别是Cache 技术,是减轻存储器带宽对系统性能影响的最佳结构方案;在微处理机内部设置各种缓冲存储器,减轻对存储器存取的压力。增加CPU中寄存器数量大大缓解对存储器压力
2.可采用哪几种方式将程序装入内存?他们分别适用于何种场合?
绝对装入方式,只适用于单道程序环境。
可重定位装入方式,适用于多道程序环境。
动态运行时装入方式,用于多道程序环境;不允许程序运行时在内存中移位置。
3.何为静态链接?静态链接时需要解决两个什么问题?
静态链接是指在程序运行前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。
要解决两个问题:对相对地址进行修改;变换外部调用符号
4.何为装入时动态链接?装入时动态链接方式有何优点?
装入时动态链接是指将用户源程序编译后得到的一组目标模块,在装入内存时采用边装入边链接的链接方式。
优点:便于修改和更新;便于实现对目标模块的共享。
5.何为运行时动态链接?运行时动态链接方式有何优点?
将某些模块的链接推迟到程序执行时才进行。
优点:加快程序的装入过程;节省大量的内存空间。
6.在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链?
为了实现对空闲分区的分配和链接,在每个分区的起始部分设置一些用于控制分区分配的信息,以及用于链接各分区所用的前向指针,在分区尾部则设置一后向指针。通过前、后向链接指针,可将所有的空闲分区链接成一个双向链。
7.为什么要引入动态重定位?如何实现?
在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,引入了动态重定位;具体实现方法是在系统中增加一个重定位寄存器,用来装入程序在内存中的起始地址,程序执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加之和,从而实现动态重定位。
8.什么是基于顺序搜索的动态分区分配算法?他可分为哪几种?
依次搜索空闲分配分区链上的空闲分区,去寻找一个其大小能满足要求的分区,就是基于顺序搜索的动态分区分配算法。
分为四种:首次适应算法、循环首次适应算法、最佳适应算法、最坏适应算法。
9.在采用首次适应算法回收内存时,可能出现哪几种情况?应怎样处理这些情况?
(1)回收区前邻空闲区。将回收区与前邻空闲区合并,将前邻空闲区大小修改为两者之和。
(2)回收区后邻空闲区。将两区合并,改后邻空闲区始址为回收区始址,大小为两者之和。
(3)回收区前后均邻空闲区。将三个分区合并,修改前邻空闲区大小为三者之和。
(4)回收区前后均不邻空闲区。为回收区设置空闲区表项,填入回收区始址和大小并插入空闲区队列。
10.什么是基于索引搜索的动态分区分配算法?他可分为哪几种?
我们把空闲分区按照某种属性(通常是大小)分类,把每一类都链接起来形成一个链表,建立一个表把每类链表的相关信息写进去以供索引,按照这个数据分配空闲分区的算法叫做基于索引搜索的动态分区分配算法。
它分为快速适应算法、伙伴系统、哈希算法。
11.令buddyk(x)为大小位2^k,地址为x的块的伙伴地址系统,试写出buddyk(x)的通用表达式
12.分区存储管理中常用哪些分配策略?比较他们的优缺点?
固定分区存储管理:
其基本思想是将内存划分为若干固定大小的分区每个分区中最多只能装入一个作业。当作业申请内存时系统按一定的算法为其选择一个适当的分区并装入内存运行。由于分区大小是事先固定的因而可容纳作业的大小受到限制而且当用户作业的地址空间小于分区的存储空间时造成存储空间浪费。
可变分区存储管理:
可变分区存储管理不是预先将内存划分分区而是在作业装入内存时建立分区使分区大小正好与作业要求的存储空间相等。这种处理方式使内存分配有较大的灵活性也提高了内存利用率。但是随着对内存不断地分配、释放操作会引起存储碎片的产生。
13.为什么要引入对换?对换可分为哪几种类型?
概念:
把内存中暂时不能运行的进程或者暂时不用的程序和数据换出到外存上,以腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据换入内存。
引入原因
在多道程序环境下,一方面,在内存中某些进程由于某事件尚未发生而阻塞,但它却占用了大量的内存空间,甚至有时可能在内存中所有进程都被阻塞,而无可运行的进程,迫使CPU停止下来等待的情况;另一方面,却又有着许多作业,因内存空间不足了,一直驻留在外存上,不能进入内存运行。
对换类型:
整体对换
部分(分页,分段)对换
14.对文件区管理的目标和对对换空间管理的目标有何不同?
对文件管理区的主要目标是提高文件存储空间的利用率,然后才是提高对文件的访问速度。 对对换空间管理的主要目标,是提高进程换入和换出的速度,然后才是提高文件存储空间的利用率。
15.为实现对换,系统应具备哪几种方面的功能?
对换空间管理,进程换出,进程换入。
16.在以进程为单为进行对换时,每次是否都将整个进程换进换出?为什么?
在选择换出进程后,在对进程换出时,只能换出非共享的程序和数据段,而对于那些共享的程序和数据段,只要还有进程需要它,就不能被换出。
17.基于离散分配时所用的基本单位不同,可将离散分配分为哪几种?
分页存储管理方式、分段存储管理方式、段页式存储管理方式。
18.什么是页面?什么是物理块?页面的大小应如何确定?
页面
将用户程序的地址空间分为若干个固定大小的区域,称为“页”或“页面”。
物理块
确定页面的大小
19.什么是页表?页表的作用是什么?
页表:是一种特殊的数据结构,记录着页面和页框的对应关系。(映射表)
页表的作用:是内存非连续分区分配的基础,实现从逻辑地址转化成物理地址。
20.为实现分页存储管理,需要哪些硬件支持?
地址变换机构
21.在分页系统中是如何实现地址变换的?
利用地址变换机构实现从逻辑地址到物理地址的转变换,通过页表来实现从页号到物理块号的变换,将逻辑地址中的页号转换为内存中的物理块号。
22.具有快表时是如何实现地址变换的?
在CPU给出有效地址后,由地址变换机构自动地将页号P送入高速缓冲寄存器,并将此页号与高速缓存中的所有页号进行比较,若其中有与此所对应的物理块号,便表示索要访问的页表项在快表中。于是,可直接从快表中独处改也所对应的物理块号,并送到物理地址寄存器中。如在快表中未找到对应的页表项,则还需再访问内存中的页表,找到后,把从页表项中独处的物理块号送往地址寄存器;同时,再将此页表项存入快表的一个寄存器单元中,亦即,重新修改快表。但如果联想寄存器已满,则OS必须找到一个老的且已被认为是不再需要的页表项,将它换出。
23较详细地说明引入分段存储管理是为了满足用户哪几方面的需要
方便编程、信息共享、信息保护、动态增长、动态链接。
24.在具有快表的段页式存储管理方式中,如何实现地址变换?
p151
25.为什么说分段系统比分页系统更易实现信息的共享和保护?
分页系统的每个页面是分散存储的,为了实现信息共享和保护,页面之间需要一一对应,为此需要建立大量的页表项;而分段系统的每个段都从0编址,并采用一段连续的地址空间,在实现共享和保护时,只需为要共享和保护的程序设置一个段表项,将其中的基址与内存地址一一对应就能够实现。
26.分页和分段存储管理有何区别?
页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外部零头,提高内存利用率。段则是信息的逻辑单位,它含有一组相对完整的信息。
页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机械硬件实现的,因而在系统中只能有一种大小的的页面;而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对原程序进行编译时,根据信息的性质来划分。
分页的作业地址空间是一维的,而分段作业地址空间则是二维的。
27.试全面比较连续分配和离散分配方式
连续分配是指为一个用户程序分配一个连续的地址空间,包括单一和分区两种分配方式。单一方式将内存分为系统区和用户区,最简单,只用于单用户单任务操作系统;分区方式分固定和动态分区。
离散分配方式分为分页、分段和段页式存储管理。分页式存储管理旨在提高内存利用率,分段式存储管理旨在满足用户(程序员)的需要,段页式存储管理则将两者结合起来,具有分段系统便于实现、可共享、易于保护和动态链接等优点,又能像分页系统很好解决外部碎片及为各段可离散分配内存等问题,是比较有效的存储管理方式;
第五章虚拟存储器
1.常规存储器管理方式具有那两大特征?它对系统性能有何影响?
一次性
驻留性
一次性及驻留性特征使得许多在程序中不用或暂时不用的程序(数据)占据了大量的内存空间,而一些需要运行的作业又无法装入运行,显然,这是在浪费宝贵的内存资源。
2.什么是程序运行时的时间局限性和空间局限性
时间局限性: 程序中的某条指令一旦执行, 则补救的将来该指令可能再次被执行; 对于储存单元同样使用 时间局限性主要原因是程序中大量的循环操作
空间局限性: 程序在一段时间内所访问的地址, 可能集中在一定的范围, 并不是所有的地址空间等概率的访问 空间局限性的原因是程序的顺序执行
3.虚拟存储器有那些特征?其中最本质的特征是什么?
虚拟存储器的特征: 多次性 对换性 虚拟性
最本质的特征是虚拟性
4.实现虚拟存储器需要哪些硬件支持?
分页请求系统:请求分页的页表机制、缺页中断机构、地址变换机构。
请求分段系统:请求分段的段表机制、缺段中断机构、地址变换机构。
5.实现虚拟存储器需要哪几个关键技术?
虚拟内存的实现主要建立在离散分配的内存管理方式上, 所需的具体技术有:
页表(段表)机制, 作为主要的数据结构
中断机构, 用于产生缺页中断等
地址变换机构, 用于将逻辑地址映射到物理地址
6.在请求分页系统中,页表应包括哪些数据项?每项的作用是什么?
页表的内容: 页号, 物理块号, 状态位P, 访问字段A, 修改位M, 外存地址
状态位P: 用于只是该页是否已调入内存
访问字段A: 用于记录本页在一段时间内被访问的次数, 或记录多长时间未访问
修改位M: 标记该页在调入内存后是否被修改
外存地址: 用于指出该页在外存上的地址
7.试比较缺页中断机构与一般的中断,他们之间有何明显的区别?
一般中断机制只需要保护现场然后就可以直接调到需要及时处理的地方。 缺页中断除了保护现场外,还要判断内存中是否有足够的空间存储所需的页或段
8.试说明请求分页系统中的地址变换过程
取逻辑地址分解为页号P和页内偏移w;
根据页号查找页表,获得该页的描述信息;
若该页中断位为1,产生缺页中断;
更新该页的描述信息;
根据页块号和页内偏移w,计算物理地址。
9.何谓固定分配局部置换和可变分配全局置换的内存分配策略?
固定分配局部置换:固定分配是指,为每个进程分配一组固定数目的物理块,在进程运行期间不再改变。 局部置换是指,如果进程在运行中发现缺页,则只能从分配给该进程的n个页面中,
可变分配全局置换:可变分配是指,先为每个进程分配一定数目的物理块,在进程运行期间,可根据情况做适当地改变。 全局置换是指,如果进程在运行中发现缺页,则将0S所保留的空闲物理块或者以所有
10.在请求分页系统中,应从何处将所需页面调入内存?
系统拥有足够的对换区空间,这时可以全部从对换区调入所需页面,以提高调页速度。
系统缺少足够的对换区空间,这时凡是不会被修改的文件,都直接从文件区调入;而当换出这些页面时,由于他们未被修改,则不必再将它们重写到磁盘(换出),以后再调入时,仍从文件区直接调入。但对于那些可能被修改的部分,在将它们换出时便须调到对换区,以后需要时再从对换区调入。
UNIX方式。由于与进程有关的文件都放在文件区,故凡是未运行过的页面,都应从文件区调入。而对于曾经运行过但又被换出的页面,由于是被放在对换区,因此在下次调入时应从对换区调入。
11.试说明在请求分页系统中页面的调入过程
每当程序所要访问的页面未在内存时(存在位为“0”),便向CPU发出一缺页中断,中断处理程序首先保留CPU环境,分析中断原因后,转入缺页中断处理程序。 该程序通过查找页表,得到该页表在外存的物理块后: 如果此时内存能容纳新页,则启动磁盘I/O,将所缺之页调入内存,然后修改页表。 如果内存已满,则须先按照某种置换算法,从内存中选出一页准备换出;如果该页未被修改过(修改位为“0”),可不必将该页写回磁盘;但如果此页已被修改(修改位为“1”),则必须将它写回磁盘,然后再把所缺的页调入内存,并修改页表中的相应表项,置其存在位为“1”,并将此页表项写入快表中。 在缺页调入内存后,利用修改后的页表,去形成所要访问数据的物理地址,再去访问内存数据。整个页面的调入过程对用户是透明的。
12.在请求分页系统中,常采用哪几种页面置换算法?
最佳置换算法OPT
先进先出置换算法FIFO
最近最近未使用置换算法LRU
时钟置换算法CLOCK
13.在一个请求分页系统中,采用FIFO页面置换算法时,假如一个作业的页面走向为4,3,2,1,4,3,5,4,3,2,1,5,当分配给该作业的物理块M分别为3和4时,试计算在访问过程中所发生的缺页次数和缺页率,并比较所得结果。
14.实现LRU算法所需的硬件支持是什么?
需要寄存器和栈等硬件支持。寄存器用于记录某进程在内存中各页的使用情况,栈用于保存当前使用的各个页面的页面号。
15,试说明改进型Clock置换算法的基本原理
因为修改过的页面在换出时付出的开销比未被修改过的页面大,在改进型Clock算法中,既考虑页面的使用情况,还要增加置换代价的因素;在选择页面作为淘汰页面时,把同时满足未使用过和未被修改过作为首选淘汰页面。
16.影响页面换进换出效率的若干因素是什么?
页面置换算法 此为最主要的因素, 直接影响页面置换的效率
磁盘写回频率: 添加磁盘缓冲, 将多次写回请求集中到一次执行, 减少磁盘写回的频率, 能够提升页面置换效率
内存读取频率: 减少将页面从外存上调入的频率, 能够提升页面置换效率
17.页面缓冲算法的主要特点是什么?它是如何降低页面换进,换出的频率的?
主要特点
显著降低页面进出频率, 大幅减少磁盘IO, 进而减少开销
实现起来非常简单, 因为页面进出开销大幅减小, 才能使用一种较为简单的置换策略(FIFO)以避免特殊的硬件支持
实现方法
使用可变分配和局部置换的内存分配策略
在内存中设置两个链表来降低页面换进换出频率:
空闲页面链表:
当未被修改的页面换出时, 直接将其所在的物理块挂到此链表尾, 而不将其换到外存, 用于分配给频繁缺页的进程, 以降低缺页率
修改页面链表:
将修改的页面挂到此链表尾, 减少换到内存中的频率, 同时降低磁盘写回的频率
18.在请求分页系统中,产生“抖动”的原因是什么?
产生抖动的直接原因是某个进程频繁访问的页面数量高于可用的物理页帧数量, 通常是由于多道程序度过高导致的
19.何谓工作集?它是基于什么原理确定的?
工作集指的是在某段时间间隔之内, 进程要访问的页面的集合
工作集的原理:
让操作系统跟踪每个进程的工作集,并为进程分配大于其工作集的物理块。工作集内的页面需要调入到驻留集中, 而工作集外的页面可从驻留集中换出, 如果还有空闲物理块,则可以再调一个进程到内存以增加多道程序数。如果所有工作集之和增加以至于超过了可用物理块的总数,那么操作系统会暂停一个进程,将其页面调出并且将其物理块分配给其他进程,防止出现抖动现象。
20.当前可以利用哪几种方法来防止“抖动”?
采用局部置换策略
把工作集算法结合进处理机调度算法中
利用“L=S”准则调节缺页率
暂停部分进程并调出页面
21.试说明如何利用“L=S”准则来调节缺页率,以避免“抖动”的发生。
p172
22.为了实现请求分段式存储管理,应在系统中增加配置哪些硬件机构?
请求段表机制、缺段中断机制和地址变换机构。
23.在请求段表机制中,应设置哪些段表项?
段名、段长、段基址、存取方式、访问字段、修改位、存在位、增补位、外存始地址。
24.说明请求分段系统中的缺页中断处理过程。
根据当前执行指令中的逻辑地址查页表,判断该页是否在主存储器中;
该页标志为“0”形成缺页中断,中断装置通过交换PSW让操作系统的中断处理程序占用处理器
操作系统处理缺页中断的办法是查主存分配表找一个空闲的主存块,查页表找出该页在磁盘上的位置,启动磁盘读出该页信息。
把从磁盘上读出的信息装入找到的主存块中。
当页面住处被装入主存后,应修改页表中对应的表目,填上该页所占用的主存块把标志置为“1”,表示该页已在主存储器中
由于产生缺页中断时的那条指令并没执行完,所以在把页面装入之后应重新执行被中断指令。
25.请对共享段表中的各项作简要说明。
在系统中配置一张共享段表,所有各共享段都在共享段表中占有一表项。在表项的上面记录了共享段的段号、段长、内存始址、状态(存在)位、外存始址以及共享计数等信息,接下来就是记录了共享此分段的每个进程的情况。 ①共享进程计数count:记录有多少进程正在共享该分段。 ②存取控制字段:对于一个共享段,应为不同的进程赋予不同的存储权限。 ③段号:每个进程可用自己进程的序号,去访问该共享段。
26.如何实现共享分段的分配和回收?
共享段的分配:在为共享段分配内存时,对第一个请求使用该共享段的进程,由系统为该共享段分配一物理区,当又有其它进程需要调用该共享段时,无须再为该段分配内存。
共享段的回收:当共享此段的某进程不再需要该段时,若无其他进程使用该段,则由系统回收该共享段的物理内存,否则只是取消调用者进程在共享段表中的有关记录。
第六章输入输出系统
1.试说明I/O系统的基本功能。
隐藏物理设备的细节、与设备的无关性、提高处理机和I/O设备的利用率、对I/O设备进行控制、确保对设备的正确共享、错误处理
2.简要说明I/O软件的4个层次的基本功能。
中断处理程序:用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后恢复现场,并返回到被中断的进程
设备驱动程序:与硬件直接有关,用来具体实现系统对设备发出的操作指令,驱动I/O设备工作
设备独立性软件:用于实现用户程序与设备驱动器的统一接口、设备命令、设备保护,以及设备分配与释放等。
用户层I/O软件:用于实现用户与I/O设备交互
3.I/O系统接口与软件/硬件(RW/HW)接口分别是什么接口?
I/O系统接口是I/O系统与上层系统之间的接口,向上层提供对设备进行操作的抽象I/O命令,以方便高层对设备的使用;
软件/硬件(RW/HW)接口的上面是中断处理程序和用于不同设备的设备驱动程序,它的下面是各种设备的控制器。
4.与设备无关性的基本含义是什么?为什么要设置该层?
为了提高OS的可适应性和可扩展性,在现代OS中都毫无例外地实现了设备独立性,也称设备无关性。
基本含义:应用程序独立于具体使用的物理设备。为了实现设备独立性而引入了逻辑设备和物理设备两概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。
优点
1. 设备分配时的灵活性
2.易于实现I/O重定向(用于I/O操作的设备可以更换(即重定向),而不必改变应用程序。
5.试说明设备控制器的组成。
设置控制器与处理机的接口;设备控制器与设备的接口;I/O逻辑。
6.为了实现CPU与设备控制器之间的通信,设备控制器应该具备哪些功能?
基本功能:接收和识别命令;数据交换;标识和报告设备的状态;地址识别:数据缓冲;差错控制。
7.什么是内存映像I/O?它是如何实现的?
驱动程序将抽象I/O命令转换出的一系列具体的命令、参数等数据装入设备控制器的相应寄存器,由控制器来执行这些命令,具体实施对I/O设备的控制。
方式:利用特定的I/O指令、内存映像I/O。
8.为什么说中断是OS赖以生存的基础?
中断在操作系统中有着特殊重要的地位,它是多道程序得以实现的基础,没有中断,就不可能实现多道程序,因为进程之间的切换是通过中断来完成的。
另一方面,中断也是设备管理的基础,为了提高处理机的利用率和实现CPU和I/O设备并执行,也必需有中断的支持。中断处理程序是整个I/O系统中最低的一层。
9.对中断源的两种处理方式分别用于哪种场合?
屏蔽(禁止)中断:当处理机正在处理一个中断时,将屏蔽掉所有的中断,直到处理机已处理完本次中断,再去检查是否有中断产生。所有中断按顺序处理,优点是简单,但不能用于实时性要求较高的中断请求。
嵌套中断:在设置了中断优先级的系统中,当同时有多个不同优先级的中断请求,CPU优先响应优先级最高的中断请求,高优先级的中断请求可以抢占正在运行的低优先级中断的处理机。
10.设备中断处理程序通常需完成哪些工作?
唤醒被阻塞的驱动进程。
保护被中断进程的CPU环境。
转入相应的设备处理程序。
中断处理
恢复被中断进程的现场。
11.简要说明中断处理程序对中断进行处理的几个步骤。
测定是否有未响应的中断信号
保护被中断进程的CPU环境
转入相应的设备处理程序
中断处理
恢复CPU的现场并退出中断
12.试说明设备驱动程序具有哪些特点。
驱动程序是实现在与设备无关的软件和设备控制器之间通信和转换的程序;
驱动程序与设备控制器以及I/O设备的硬件特性紧密相关,对于不同类型的设备,应配置不同的驱动程序。但可以为相同的多个终端设置一个终端驱动程序;
驱动程序与I/O设备所采用的I/O控制方式紧密相关,常用的I/O控制方式是中断驱动和DMA方式;
由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写;
驱动程序应允许可重入。
13.设备驱动程序通常需要完成哪些工作?
(1)接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的低层操作序列;
(2)检查用户I/O请求的合法性,了解I/0设备状态,传递有关参数,设置设备工作方式;
(3)发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者的请求块挂在设备队列上等待;
(4)及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。
14.简要说明设备驱动程序的处理过程可分为哪几步。
(1)将抽象要求转换为具体要求;
(2)对服务请求进行校验;
(3)检查设备的状态;
(4)传送必要的参数。
15.试说明I/0控制发展的主要推动因素是什么?
a.尽量减少CPU对I/O控制的干预,把CPU从繁杂的I/O控制中解脱出来,以便更多地去完成数据处理任务。
b.缓和CPU的高速性和设备的低速性之间速度不匹配的矛盾,以提高CPU的利用率和系统的吞吐量。
c.提高CPU和I/O设备操作的并行程度,使CPU和I/O设备都处于忙碌状态,从而提高整个系统的资源利用率和系统吞吐量。
16.有哪几种I/O控制方式?各适用于何种场合?
程序I/O方式:适用于早期的计算机系统中,并且是无中断的计算机系统;
中断驱动I/O控制方式:普遍用于现代的计算机系统中;
DMA I/O控制方式:适用于I/O设备为块设备时在和主机进行数据交换的一种I/O控制方式;
I/O通道控制方式:当I/O设备和主机进行数据交换是一组数据块时通常采用I/O通道控制方式,但此时要求系统必须配置相应的通道及通道控制器。
17.试说明DMA的工作流程。
18.为什么要引入与设备的无关性?如何实现设备的独立性?
引入设备独立性,可使应用程序独立于具体的物理设备,使设备分配具有灵活性。另外容易实现I/0重定向。为了实现设备独立性,必须在设备驱动程序之上设置一层设备独立性软件,用来执行所有I/0设备的公用操作,并向用户层软件提供统一接口。
19.与设备的无关的软件中,包括了哪些公有操作的软件?
设备驱动程序的统一接口
缓冲管理
差错控制
对独立设备的分配与回收
独立于设备的逻辑数据块
20.在考虑到设备的独立性时,应如何分配独占设备?
进程以逻辑设备名提出I/0请求。
根据逻辑设备表相应表项获得I/0请求的逻辑设备对应类型的物理设备在系统设备表中的指针。
从指针所指位置起顺序检索系统设备表,直到找到一个属于对应I/0请求所用类型、空闲可用且基于设备分配安全性算法验证为安全分配的设备的设备控制表,将对应设备分配给请求进程;
如果未找到安全可用的空闲设备,则把请求进程的进程控制块挂到相应类型设备的等待队列上等待唤醒和分配。
系统把设备分配给I/0请求进程后,再到该设备的设备控制表中找出与其相连接的控制器的控制器控制表,根据其状态字段判断该控制器是否忙碌,若忙则把请求进程的进程控制块挂到该控制器的等待队列上;否则将该控制器分配给进程。
系统把控制器分配给I/0请求进程后,再到该控制器的控制器控制表中找出与其相连接的通道的通道控制表,根据其状态字段判断该通道是否忙碌,若忙则把请求进程的进程控制块挂到该通道的等待队列上:否则将该通道分配给进程。
只有在设备、控制器和通道三者都分配成功时,这次的设备分配才算成功,然后便可启动设备进行数据传送。
21.何谓设备虚拟?实现设备虚拟式所依赖的关键技术是什么?
通过虚拟技术可将一台独占设备变换成若干台逻辑设备,供若干个用户(进程)同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。其实现所依赖的关键技术是SPOOLING技术。
22.在实现后台打印时,SPOOLing 系统应为请求I/0的进程提供哪些服务?
1、由输出进程在输出井中为之申请一空闲盘块区,并将要打印的数据送入其中;
2、输出进程再为用户进程申请一张空白的用户打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。
3、一旦打印机空闲,输出进程便从请求打印队列的队首取出一张请求打印表,根据表中的要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。
23.假脱机系统向用户提供共享打印机的基本思想是什么?
对每个用户而言,系统并非即时执行其程序输出数据的真实打印操作,而只是即时将数据输出到缓冲区,这时的数据并未真正被打印,只是让用户感觉系统已为他打印; 真正的打印操作,是在打印机空闲且该打印任务在等待队列中已排到队首时进行的;以上过程是对用户屏蔽的,用户是不可见的。
24.引入缓冲的主要原因是什么?
缓和CPU与I/0设备之间速度不匹配的矛盾;减少对CPU的中断频率:放宽对中断响应时间的限制:解决数据力度不匹配的问题;提高CPU和I/0设备之间的并行性。
25.在单缓冲情况下,为什么系统对一块数据的处理时间为max(C,T)+M?
在块设备输入时,假定从磁盘把一块数据输入到缓冲区的时间为T;操作系统将缓冲区数据传送给用户区的时间为M;而CPU对这一块数据进行计算得时间为C。 在单缓冲情况下,由于设备的输入操作和CPU的处理操作可以并行,所以系统对每一整块数据的处理时间为max(C,T)+M。
26.为什么在双缓冲情况下,系统对一块数据的处理时间为max(C,T)?
该方式又称缓冲对换方式,在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。此时操作系统可以从第一缓冲区移出数据,并送入用户进程。 接着由CPU对数据进行计算。在双缓冲区中,不仅设备的输入操作和CPU的处理操作可以并行,设备的输入操作和数据的传送操作也可以并行,因此耗时大约为max(C+M,T)。考虑到M是内存中数据块的“搬家”耗时,非常短暂可以省略,因此近似地认为是:max(C,T)。
27.试绘图说明把多缓冲用于输出时的情况。
28.试说明收容输入工作缓冲区和提取输出工作缓冲区的工作情况。
①收容输入工作缓冲区的工作情况为:在输入进程需要输入数据时,调用GetBuf(EmptyQueue)过程,从EmptyQueue队列的队首摘下一个空缓冲区,作为收容输入工作缓冲区Hin。 然后把数据输入其中,装满后再调用PutBuf(InputQueue,Hin)过程,将该缓冲区挂在输入队列InputQueue的队尾。
②提取输出工作缓冲区的工作情况为:当要输出数据时,调用GetBuf(OutputQueue)过程,从输出队列的队首取得一装满输出数据的缓冲区作为提取输出工作缓冲区Sout。在数据提取完后,再调用PutBuf(EmptyQueue,Sout)过程,将该缓冲区挂到空缓冲队列EmptyQueue的队尾。
29.何谓安全分配方式和不安全分配方式?
①安全分配方式是指每当进程发出I/0请求后,便进入阻塞状态,直到其I/0操作完成时才被唤醒。 在采用这种分配策略时,一旦进程已获得某种设备资源后便阻塞,使它不可能再请求任何资源,而在它运行时又不保持任何资源。这种分配方式已经摒弃了造成死锁的“请求和保持”条件,分配是安全的。缺点是进程进展缓慢,CPU与I/0设备串行工作。
②不安全分配方式是指进程发出I/0请求后仍继续执行,需要时又可发出第二个I/0请求、第三个I/0请求。仅当进程请求的设备已被另一个进程占有时,进程才进入阻塞状态。 优点是一个进程可同时操作多个设备,进程推进迅速。缺点是分配不安全,可能具有“请求和保持”条件,可能造成死锁。因此,在设备分配程序中需增加一个功能,用于对本次的设备分配是否会发生死锁进行安全性计算,仅当计算结果表明分配安全的情况下才进行分配。
30.磁盘访问时间由哪几部分组成?每部分时间应如何计算?
磁盘访问时间由寻道时间Ts、旋转延迟时间Tr、传输时间Tt三部分组成。
(1)Ts是启动磁臂时间s与磁头移动n条磁道的时间和,即Ts=m×n+s。
(2)Tr是指定扇区移动到磁头下面所经历的时间。硬盘15000r/min时Tr为2ms;软盘300或600r/min时Tr为50~100ms。
(3)Tt是指数据从磁盘读出或向磁盘写入经历的时间。Tt的大小与每次读/写的字节数b和旋转速度有关:Tt=b/rN。
31.目前常用的磁盘调度算法有哪几种?每种算法优先考虑的问题是什么?
目前常用的磁盘调度算法有先来先服务、最短寻道时优先级扫描等算法。
(1)先来先服务算法优先考虑进程请求访问磁盘的先后次序;
(2)最短寻道时间优先算法优先考虑要求访问的磁道与当前磁头所在磁道距离是否最近:
(3)扫描算法考虑欲访问的磁道与当前磁道间的距离,更优先考虑磁头当前的移动方向。
第七章文件管理
1.何谓数据项、记录和文件?
数据项:是最低级的数据组织形式,可以分为两种类型:基本数据项和组合数据项。
组合数据项是由若干个基本数据项组成的,简称组项。
基本数据项是用于描述一个对象的某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位,又称为字段。
记录:记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。
文件:文件是指由创建者所定义的、具有文件名的一组
2.文件系统的模型可分为三层,试说明其每一层所包含的基本内容。
最底层是对象及其属性,文件管理系统管理的对象如下:文件,目录,磁盘(磁带)存储空间。
中间层是对对象进行操纵和管理的软件集合
最高层是文件系统提供给用户的接口。
3.与文件系统有关的软件可分为那几个层次?
I/O控制层、基本文件系统层、基本I/O管理程序、逻辑文件系统。
4.试说明用户可以对文件施加的主要操作有哪些?
创建、删除、读、写、设置文件的读/写位置、打开、关闭。
允许用户直接设置和获得文件的属性:改变已存文件的文件名、改变文件的拥有着、改变对文件的访问权、查询文件的状态。o
对目录的操作:创建一个目录、删除一个目录、改变当前目录和工作目录等。
实现文件共享的系统调用,以及用于对文件系统进行操作的系统调用等。
5.为什么在大多数OS中都引入了“打开”这一文件系统调用?打开的含义是什么?
当用户要求对一个文件实施多次读/写或其他操作时,每次都要从检索目录开始。为了避免多次重复地检索目录,在大多数OS中都引入了“打开”这一文件系统调用。 “打开”就是在用户和指定文件之间建立起一个链接。此后,用户可通过该链接直接得到文件信息,从而避免了再次通过目录检索文件,即当用户再次向系统发出文件操作请求时,系统根据用户提供的索引号可以直接在打开文件中查找到文件信息。
6.何谓文件的逻辑结构?何谓文件的物理结构?
文件的逻辑结构:这是从用户观点出发所观察到的文件组织形式,即文件是由一系列的逻辑记录组成的,是用户可以直接处理的数据及其结构,它独立于文件的物理特性,又称为文件组织。
文件的物理结构:又称为存储结构。这是指系统将文件存储在外存上所形成的一种存储组织形式,是用户不能看见的。
7.按文件的组织形式可将文件分为哪几种类型?
顺序文件、索引文件、索引顺序文件。
8.如何提高对变长记录顺序文件的检索速度?
为变长记录文件建立一张索引表,为主文件中的每个记录在索引表中分别设置一个表项,记录指向记录的指针(即记录在逻辑地址空间的首址)以及记录的长度L,索引表按关键字排序,因此其本身也是一个定长记录的顺序文件,这样就把对变长记录顺序文件的顺序检索转变为对定长记录索引文件的随机检索,从而加快对记录检索的速度,实现直接存取。
9.通过哪两种方式来对固定长记录实现随机访问?
隐式寻址方式
显示寻址方式
10.可以采取什么方法来实现对变长记录文件进行随机检索?
为变长记录文件建立一张索引表,索引表中记录每一个变长记录项的地址。因为检索索引表是对定长文件进行检索,就可以实现随机检索。
11.试说明索引顺序文件的几个主要特征。
(1)记录是按关键字的顺序组织起来的;
(2)引入了文件索引表,通过该表可以实现对索引顺序文件的随机访问;
(3)增加了溢出文件,用它来记录新增加的、删除的和修改的记录。
12.试说明对索引文件和索引顺序文件的检索方法。
对索引文件进行检索时,可以根据用户(程序)提供的关键字利用折半查找法去检索索引表,从中找到相应的表项。再利用该表项中给出的指向记录的指针去访问所需的记录。
对索引顺序文件进行检索时,首先也是利用用户(程序)所提供的关键字以及某种查找算法去检索索引表,找到该记录所在记录组中第一个记录的表项,从中得到该记录组第一个记录在主文件中的位置。然后,再利用顺序查找法去查找主文件,从中找到所要求的记录。
13.试从检索速度和存储费用两方面来比较两级索引文件和索引顺序文件。
两级索引文件:存储费用高,检索速度较快。
索引顺序文件:存储费用不高,检索速度快。
14.对目录管理的主要要求是什么?
(1)实现“按名存取”;(2)提高对目录的检索速度;(3)文件共享;(4)允许文件重名。
15.采用单级目录能否满足对目录管理的主要要求?为什么?
它只能满足按名存取。 (1)查找速度慢。(2)不允许重名。(3)不便于实现文件共享。
16.目前广泛采用的目录结构形式是哪种?它有什么优点?
树形结构目录。明显提高了对目录的检索速度和文件系统的性能。
17.何谓路径名和当前目录?
路径名:在树形结构目录中,从根目录到任何数据文件都只有一条唯一的通路。在该路径上,从树的根(即主目录)开始,把全部目录文件名与数据文件名依次地用“/”连接起来,即构成该数据文件唯一的路径名。
当前目录:当一个文件系统有多级时,每访问一个文件,都要使用从树根开始,直到数据文件为止,是相当麻烦的事,可为每个进程设置一个“当前目录“,又称“工作目录“。 假设用户B的当前目录是F,则此时文件J的相对路径名仅是J本身。
18.Hash检索法有何优点?又有何局限性?
优点:显著提高检索速度。
局限:对于使用了通配符的文件名,此时系统便无法利用Hash法检索目录,还是需要利用线性查找法查找目录。
19.在Hash检索法中,如何解决“冲突”问题?
(1)在利用Hash法索引查找目录时,如果目录表中相应的目录项是空的,则表示系统中并无指定文件。
(2)如果目录项中的文件名与指定文件名相匹配,则表示该目录项正是所要寻找的文件所对应的目录项,故而可从中找到该文件所在的物理地址。
(3)如果在目录表的相应目录项中的文件名与指定文件名并不匹配,则表示发生了“冲突”,此时须将其Hash值再加上一个常数(该常数与目录的长度值互质),形成新的索引值,再返回到第一步重新开始寻找。
20.试说明在树形目录结构中线性检索法的检索过程,并给出相应的流程图。
p239
21.基于索引结点的文件共享方式有何优点?
优点是建立新的共享链接时,不改变文件拥有者关系,仅把索引结点共享计数器加1,系统可获悉了由多少个目录项指向该文件。缺点是拥有者不能删除自己的文件否则会出错。
22.什么是主父目录和链接父目录?如何利用符号链实现共享?
利用符号链接实现文件共享的基本思想,是允许一个文件或子目录有多个父目录,但其中仅有一个作为主父目录,其他的几个父目录都是通过符号链接方式与之相链接的(简称链接父目录)。
p243
23.基于符号链的文件共享方式有何优点?
在利用符号链方式实现文件共享时,只是文件主才拥有指向其索引结点的指针;而共享该文件的其他用户则只有该文件的路径名,并不拥有指向其索引结点的指针。这样,就不会发生在文件主删除一共享文件后留下一悬空指针的情况。
24.什么是保护域?进程与保护域之间存在着的动态联系是什么?
进程对一组对象访问权的集合,进程只能在指定区域内执行操作,域也就规定了进程所能访问的对象和能执行的操作。
进程和域之间,可以是一对多的关系,即一个进程可以联系着多个域。在此情况下,可将进程的运行分为若干个阶段,其每个阶段联系着一个域,这样便可根据运行的实际需要来规定在进程运行的每个阶段中所能访问的对象。
25.试举例说明具有域切换权的访问控制矩阵。
p245
26.如何利用拷贝权来扩散某种访问权?
p246
27.如何利用拥有权来增、删某种访问权?
p247
28.增加控制权的主要目的是什么?试举例说明控制权的应用。
用于改变在不同域中运行的进程对同一对象的访问权的。
29.什么是访问控制表?什么是访问权限表?
访问控制表是指对访问矩阵按列划分,为每一列建立一张访问控制表ACL。
访问权限表是如果把访问矩阵按行(即域)划分,便可由每一行构成一张访问权限表。这是由一个域对每一个对象可以执行的一组操作所构成的表,表中的每一项权限即为该域对某对象的访问权限。
30.系统如何利用访问控制表和访问权限表来实现对文件的保护?
当进程第一次试图访问一个对象时,必须先检查访问控制表,查看是否有权访问该对象。 如果无则拒绝访问,并构成一个例外异常事件;否则便允许访问,并为之建立访问权限,以便快速验证其访问的合法性。当进程不再访问该对象时便撤销该访问权限。
第八章磁盘存储器的管理
1.目前常用的外存有哪几种组织方式?
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
主题