资源描述
第一章
1.什么就是操作系统得基本功能?
答:操作系统得职能就是管理与控制计算机系统中得所有硬、软件资源,合理地组织计算机工作流程,并为用户提供一个良好得工作环境与友好得接口。操作系统得基本功能包括:处理机管理、存储管理、设备管理、信息管理(文件系统管理)与用户接口等。
2。什么就是批处理、分时与实时系统?各有什么特征?
答:批处理系统(batch processingsystem):操作员把用户提交得作业分类,把一批作业编成一个作业执行序列,由专门编制得监督程序(monitor)自动依次处理。其主要特征就是:用户脱机使用计算机、成批处理、多道程序运行。
分时系统(time sharing operation system):把处理机得运行时间分成很短得时间片,按时间片轮转得方式,把处理机分配给各进程使用.其主要特征就是:交互性、多用户同时性、独立性。
实时系统(real time system):在被控对象允许时间范围内作出响应.其主要特征就是:对实时信息分析处理速度要比进入系统快、要求安全可靠、资源利用率低.
3. 多道程序设计与多重处理有何区别?
答;多道程序(multiprogramming)就是作业之间自动调度执行、共享系统资源,并不就是真正地同时执行多个作业;而多重处理(multiprocessing)系统配置多个CPU,能真正同时执行多道程序。要有效使用多重处理,必须采用多道程序设计技术,而多道程序设计原则上不一定要求多重处理系统得支持。
4. 讨论操作系统可以从哪些角度出发,如何把它们统一起来?
答;讨论操作系统可以从以下角度出发:(1)操作系统就是计算机资源得管理者;(2)操作系统为用户提供使用计算机及界面;(3)用进程管理观点研究操作系统,即围绕进程运行过程来讨论操作系统.
上述这些观点彼此并不矛盾,分别代表了从不同角度对同一事物(操作系统)得观点。每种观点都有助于理解、分析与设计操作系统。
6. 设计计算机操作系统与哪些硬件器件有关?
答;计算机操作系统得重要功能之一就是对硬件资源得管理。因此设计计算机操作系统时应考虑下述计算机硬件资源:(1)CPU与指令得长度与执行方式;(2)内存、缓存与高速缓存等存储装置;(3)各类寄存器,包括各种通用寄存器、控制寄存器与状态寄存器;(4)中断机构;(5)外部设备与I/O控制装置;(6)内部总线与外部总线;(7)对硬件进行操作得指令集。
第二章
1、 什么就是作业?作业步?
答:把在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做得有关该次业务处理得全部工作称为一个作业。作业由不同得顺序相连得作业步组成。作业步就是在一个作业得处理过程中,计算机所做得相对独立得工作。如,编辑输入就是一个作业步,它产生源程序文件;编译也就是一个作业步,它产生目标代码文件.
2、 作业由哪几部分组成? 各有什么功能?
答:作业由三部分组成:程序、数据与作业说明书。程序与数据完成用户所要求得业务处理工作,作业说明书则体现用户得控制意图。
3.作业得输入方式有哪几种?各有何特点
答:作业得输入方式有5种:联机输入方式、脱机输入方式、直接耦合方式、SPOOLING (Simultaneous Peripheral Operations Online)系统与网络输入方式,各有如下特点:
(1) 联机输入方式:用户与系统通过交互式会话来输入作业。
(2) 脱机输入方式:又称预输入方式,利用低档个人计算机作为外围处理机进行输入处理,存储在后备存储器上,然后将此后援存储器连接到高速外围设备上与主机相连,从而在较短得时间内完成作业得输入工作.
(3) 直接耦合方式:把主机与外围低档机通过一个公用得大容量外存直接耦合起来,从而省去了在脱机输入中那种依靠人工干预来传递后援存储器得过程.
(4) SPOOLING系统:可译为外围设备同时联机操作。在SPOOLING系统中,多台外围设备通过通道或DMA器件与主机与外存连接起来,作业得输入输出过程由主机中得操作系统控制.
(5) 网络输入方式:网络输入方式以上述几种输入方式为基础,当用户需要把在计算机网络中某一台主机上输入得信息传送到同一网中另一台主机上进行操作或执行时,就构成了网络输入方式。
4.试述SPOOLING系统得工作原理.
答:在SPOOLING系统中,多台外围设备通过通道或DMA器件与主机与外存连接起来,作业得输入输出过程由主机中得操作系统控制。操作系统中得输入程序包含两个独立得过程,一个过程负责从外部设备把信息读入缓冲区,另一个过程就是写过程,负责把缓冲区中得信息送入到外存输入井中。
在系统输入模块收到作业输入请求后,输入管理模块中得读过程负责将信息从输入装置读入缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存输入井中.读过程与写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志后,系统再次驱动写过程把最后一批信息写入外存并调用中断处理程序结束该次输入。然后,系统为该作业建立作业控制块JCB,从而使输入井中得作业进入作业等待队列,等待作业调度程序选中后进入内存。
5。操作系统为用户提供哪些接口?它们得区别就是什么?
答:操作系统为用户提供两个接口,一个就是系统为用户提供得各种命令接口,用户利用这些操作命令来组织与控制作业得执行或管理计算机系统.另一个接口就是系统调用,编程人员使用系统调用来请求操作系统提供服务,例如申请与释放外设等类资源、控制程序得执行速度等.
6.作业控制方式有哪几种?调查您周围得计算机得作业控制方式.
答:作业控制得主要方式有两种:脱机方式与联机方式.
脱机控制方式利用作业控制语言来编写表示用户控制意图得作业控制程序,也就就是作业说明书。作业控制语言得语句就就是作业控制命令。不同得批处理系统提供不同得作业控制语言。
联机控制方式不同于脱机控制方式,它不要求用户填写作业说明书,系统只为用户提供一组键盘或其她操作方式得命令.用户使用操作系统提供得操作命令与系统会话,交互地控制程序执行与管理计算机系统。
7.什么就是系统调用?系统调用与一般用户程序有什么区别?与库函数与实用程序又有什么区别?
答:系统调用就是操作系统提供给编程人员得唯一接口.编程人员利用系统调用,在源程序一级动态请求与释放系统资源,调用系统中已有得系统功能来完成那些与机器硬件部分相关得工作以及控制程序得执行速度等。因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统得具体动作而只提供有关得功能.
系统调用与一般用户程序、库函数与实用程序得区别就是:系统调用程序就是在核心态执行,调用它们需要一个类似于硬件中断处理得中断处理机制来提供系统服务。
8。简述系统调用得实现过程。
答:用户在程序中使用系统调用,给出系统调用名与函数后,即产生一条相应得陷入指令,通过陷入处理机制调用服务,引起处理机中断,然后保护处理机现场,取系统调用功能号并寻找子程序入口,通过入口地址表来调用系统子程序,然后返回用户程序继续执行.
9.为什么说分时系统没有作业得概念?
答:因为咋分时系统中,每个用户得到得时间片有限,用户得程序与数据信息直接输入到内存工作区中与其它程序一起抢占系统资源投入执行,而不必进入外存输入井等待作业调度程序选择.因此,分时系统没有作业控制表,也没有作业调度程序。
第三章
1。有人说,一个进程就是由伪处理机执行得一个程序,这话对吗?为什么?
答:对.因为伪处理机得概念只有在执行时才存在,它表示多个进程在单处理机上并发执行得一个调度单位。因此,尽管进程就是动态概念,就是程序得执行过程,但就是,在多个进程并发执行时,仍然只有一个进程占据处理机执行,而其它并发进程则处于就绪或等待状态。这些并发进程就相当于由伪处理机执行得程序。
2.试比较进程与程序得区别。
答:(1) 进程就是一个动态概念,而程序就是一个静态概念,程序就是指令得有序集合,无执行含义,进程则强调执行得过程。
(2) 进程具有并行特征(独立性,异步性),程序则没有。
(3) 不同得进程可以包含同一个程序,同一程序在执行中也可以产生多个进程。
4.试比较作业与进程得区别。
答:并非对所有得程序均成立.例如:
begin
local x
x:=10
print(x)
end
上述程序中x就是内部变量,不可能被外部程序访问,因此这段程序得运行不会受外界环境影响。
4.试比较作业与进程得区别。
答:一个进程就是一个程序对某个数据集得执行过程,就是分配资源得基本单位。作业就是用于需要计算机完成某项任务,而要求计算机所做工作得集合.一个作业得完成要经过作业提交,作业收容、作业执行与作业完成4个阶段.而进程就是已提交完毕得程序所执行过程得描述,就是资源分配得基本单位。其主要区别关系如下:
(1) 作业就是用户向计算机提交任务得任务实体。在用户向计算机提交作业之后,系统将存储在外存中得作业等待队列中等待执行。而进程则就是完成用户任务得执行实体,就是向系统申请分配资源得基本单位。任一进程,只要它被创建,总有相应得部分存在于内存中。
(2) 一个作业可由多个进程组成。且必须至少由一个进程组成,但反过来不成立。
(3) 作业得概念主要用在批处理系统中。像Unix这样得分时系统中,则没有作业概念。而进程得概念则用在几乎所有得多道程序系统中。
6.什么就是临界区?试举一临界区得例子。
答:临界区就是指不允许多个并发进程交叉执行得一段程序.它就是由于不同并发进程得程序段共享公用数据或公用数据变量而引起得.所以它又被称为访问公用数据得那段程序.
例如:
getspace:
begin local g
ﻩg=stact[top]
ﻩtop=top—1
End
release(ad):
Begin
top=top+1
stack[top]=ad
End
7.并发进程间得制约有哪两种?引起制约得原因就是什么?
答:并发进程所受得制约有两种:直接制约与间接制约。
直接制约就是由并发进程互相共享对方得私有资源所引起得.
间接制约就是由竞争共有资源而引起得.
8.什么就是进程间得互斥?什么就是进程间同步?
答:进程间得互斥就是指:一组并发进程中得一个或多个程序段,因共享某一公有资源而导致它们必须以一个不许交叉执行得单位执行,即不允许两个以上得共享该资源得并发进程同时进入临界区。
进程间得同步就是指:异步环境下得一组并发进程因直接制约互相发送消息而进行互相合作、互相等待,使得各进程按一定得速度执行得过程。
9。试比较P,V原语法与加锁法实现进程间互斥得区别。
答:互斥得加锁实现就是这样得:当某个进程进入临界区之后,它将锁上临界区,直到它退出临界区时为止.并发进程在申请进入临界区时,首先测试该临界区就是否就是上锁得,如果该临界区已被锁住,则该进程要等到该临界区开锁之后才有可能获得临界区.
加锁法存在如下弊端:(1) 循环测试锁定位将损耗较多得CPU计算时间;(2) 产生不公平现象.
P,V原语法采用信号量管理相应临界区得公有资源,信号量得数值仅能由P,V原语操作改变,而P,V原语执行期间不允许中断发生。其过程就是这样得:当某个进程正在临界区内执行时,其她进程如果执行了P原语,则该进程并不像lock时那样因进不了临界区而返回到lock得起点,等以后重新执行测试,而就是在等待队列中等待由其她进程做V原语操作释放资源后,进入临界区,这时P原语才算真正结束。若有多个进程做P原语操作而进入等待状态之后,一旦有V原语释放资源,则等待进程中得一个进入临界区,其余得继续等待.
总之,加锁法就是采用反复测试lock而实现互斥得,存在CPU浪费与不公平现像,P,V原语使用了信号量,克服了加锁法得弊端。
10.
答:设第I块缓冲区得公有信号量为metex[I],保证生产者进程与消费者进程对同一块缓冲区操作得互斥,初值为1;
设信号量avail为生产者进程得私有信号量,初值为m;
设信号量full为消费者进程得私有信号量,初值为0.
用信号量与P、V操作描述发送过程deposit(data) 与接收过程remove(data) 如下:
deposit(data):
ﻩbegin
ﻩ ﻩP(avail)
ﻩ 选择一个空缓冲区i
ﻩﻩP(mutex[i])
ﻩ ﻩ 送数据入缓冲区i
ﻩ V(mutex[i])
ﻩﻩﻩV(full)
ﻩﻩEnd
remove(data):
ﻩbegin
ﻩP(full)
ﻩﻩ 选择一个满缓冲区i
ﻩﻩﻩP(mutex[i])
ﻩ ﻩ取缓冲区i中得数据
V(mutex[i])
ﻩV(avail)
ﻩEnd
12.
答:定义数组buf[0],buf[1]。
设bufempty[0],buffull[1]就是Pa得公有信号量;
设bufempty[1],buffull[0]就是Pb得公有信号量;
初值为:
bufempty[0]= bufempty[1]=n
buffull[0]= buffull[1]=0
用信号量与P、V操作描述发送过程send(i,m) 与接收过程receive(i,m) 如下:
send (i,m):
ﻩbegin
ﻩ local x
ﻩﻩﻩP(bufempty[i])
ﻩﻩ 按FIFO选择一个空缓冲区buf[i](x)
buf[i](x)=m
buf[i](x)置满标记
ﻩV(buffull[i])
ﻩEnd
receive(i,m):
ﻩbegin
ﻩﻩlocal x
P(buffull[i])
ﻩﻩﻩ按FIFO选择一个满缓冲区buf[i](x)
m=buf[i](x)
buf[i](x)置空标记
V(bufempty[i])
ﻩEnd
Pa调用send(0,m)与receive(1,m)
Pb调用send(1,m)与receive(0,m)
14.
答:设信号量c[i],初值为1;i=0,1,2,3,4。i表示第i号筷子。
(1)第i个哲学家要吃饭:
eat(i):
ﻩ begin
ﻩP(c[i])
ﻩﻩ P(c[i+1 mod 5])
ﻩﻩ ﻩ吃饭
ﻩ ﻩV(c[i+1 mod 5])
ﻩV(c[i])
ﻩ End
该过程能保证两个邻座不同时吃饭,但有可能出现每人只拿到一支筷子,谁也吃不上饭得情况。
(1)为解决上述情况,让奇数号得哲学家先取右手边得筷子,偶数号得哲学家先取左手边得筷子。这样只要有一个哲学家拿到了一支筷子,就阻止了邻座得哲学家吃法得企图,从而不会死锁,除非某哲学家永远吃下去。
算法描述如下:
eat(i):
ﻩﻩbegin
if i mod 2 == 0 then
ﻩﻩ{
P(c[i])
ﻩP(c[i+1 mod 5])
ﻩ 吃饭
ﻩﻩﻩV(c[i+1 mod 5])
ﻩﻩﻩV(c[i])
ﻩﻩ}
else
ﻩ {
ﻩ P(c[i+1 mod 5])
P(c[i])
ﻩﻩﻩ 吃饭
V(c[i])
V(c[i+1 mod 5])
ﻩﻩ}
End
另解:最多只允许4个哲学家同时要求进餐,这样至少有一位哲学家能取到两只筷子并可以进餐,进餐后释放两只筷子,其她哲学家可以陆续进餐。
设哲学家进餐信号量sm=4;筷子信号量c[i]=1(i=0,1,2,3,4)
eat(i):
begin
P(sm)
P(c[i])
P(c[i+1 mod 5])
ﻩ ﻩ吃饭
ﻩﻩV(c[i+1 mod 5])
ﻩ V(c[i])
V(sm)
ﻩEnd
15。什么就是线程? 试述线程与进程得区别。
答;线程就是在进程内用于调度与占有处理机得基本单位,它由线程控制表、存储线程上下文得用户栈以及核心栈组成。线程可分为用户级线程、核心级线程以及用户/核心混合型线程等类型。其中用户级线程在用户态下执行,CPU调度算法与各线程优先级都由用户设置,与操作系统内核无关。核心级线程得调度算法及线程优先级得控制权在操作系统内核.混合型线程得控制权则在用户与操作系统内核二者。
线程与进程得主要区别有:
(1) 进程就是资源管理得基本单位,它拥有自己得地址空间与各种资源,例如内存空间、外部设备等;线程只就是处理机调度得基本单位,它只与其她线程一起共享进程资源,但自己没有任何资源。
(2) 以进程为单位进行处理机切换与调度时,由于涉及到资源转移以及现场保护等问题,将导致处理机切换时间变长,资源利用率降低.以线程为单位进行处理机切换与调度时,由于不发生资源变化,特别就是地址空间得变化,处理机切换得时间较短,从而处理机效率也较高。
(3) 对用户来说,多线程可减少用户得等待时间。提高系统得响应速度。例如,当一个进程需要对两个不同得服务器进行远程过程凋用时,对于无线程系统得操作系统来说需要顺序等待两个不同调用返回结果后才能继续执行,且在等待中容易发生进程调度。对于多线程系统而言,则可以在同一进程中使用不同得线程同时进行远程过程调用,从而缩短进程得等待时间。
(4) 线程与进程一样,都有自己得状态.也有相应得同步机制,不过,由于线程没有单独得数据与程序空间,因此,线程不能像进程得数据与程序那样,交换到外存存储空间。从而线程没有挂起状态.
(5) 进程得调度、同步等控制大多由操作系统内核完成,而线程得控制既可以由操作系统内核进行,也可以由用户控制进行。
思考题:读者与写者关系问题(读者优先)。
答:设写者互斥信号量wm=1;读者计数器readcount=0;互斥操作readcount得信号量rm=1;
reader()
begin
P(rm)
Readcount:=readcount+1
If readcount==1 then P(wm)
V(rm)
读数据
P(rm)
Readcount:=readcount-1
If readcount==0 then V(wm)
V(rm)
end
writer()
begin
P(wm)
写数据
V(wm)
end
第四章
1。什么就是分级调度?分时系统中有作业调度得概念吗?如果没有,为什么? P86
答:处理机调度问题实际上也就是处理机得分配问题.显然只有那些参与竞争处理及所必需得资源都已得到满足得进程才能享有竞争处理机得资格。这时它们处于内存就绪状态。这些必需得资源包括内存、外设及有关数据结构等。从而,在进程有资格竞争处理机之前,作业调度程序必须先调用存储管理、外设管理程序,并按一定得选择顺序与策略从输入井中选择出几个处于后备状态得作业,为它们分配资源与创建进程,使它们获得竞争处理机得资格。
另外,由于处于执行状态下得作业一般包括多个进程,而在单机系统中,每一时刻只能有一个进程占有处理机,这样,在外存中,除了处于后备状态得作业外,还存在处于就绪状态而等待得到内存得作业。我们需要有一定得方法与策略为这部分作业分配空间。因此处理机调度需要分级.
一般来说,处理机调度可分为4级:
(1) 作业调度: 又称宏观调度,或高级调度。
(2) 交换调度:又称中级调度。其主要任务就是按照给定得原则与策略,将处于外存交换区中得就绪状态或等待状态得进程调入内存,或处于内存就绪状态或等待状态得进程交换到外存交换区。交换调度主要涉及到内存管理与扩充。
(3) 进程调度:又称微观调度或低级调度。其主要任务就是按照某种策略与方法选取一个处于就绪状态得进程占用处理机。在确立了占用处理机得进程之后,系统必须进行进程上下文切换以建立与占用处理机进程相适应得执行环境。
(4) 线程调度:进程中相关堆栈与控制表等得调度.
2.试述作业调度得主要功能。 P88
答: 作业调度得主要功能就是:
(1)记录系统中各作业得状况。
(2)按一定得原则对外存输入井上得大量后备作业进行选择.
(3)给选出得作业分配内存、输入输出设备等必要得资源,并建立相应进程,使该作业得相关进程获得竞争处理机得权利。
(4)当作业执行完毕时,还负责回收系统资源。
3。作业调度得性能评价标准有哪些?这些性能评价标准在任何情况下都能反映调度策略得优劣吗?
答:调度得性能评价标准:
(1)对所有作业应该就是公平合理得;
(2)应使设备有高得利用率;
(3)每天执行尽可能多得作业;
(4)有快得响应时间.
不能.对于批处理系统,由于主要用于计算,因而对于作业得周转时间要求较高。从而作业得平均周转时间或平均带权周转时间被用来衡量调度程序得优劣。但对于分时系统来说,平均响应时间又被用来衡量调度策略得优劣。对于分时系统,除了要保证系统吞吐量大、资源利用率高之外,还应保证用户能够容忍得响应时间。因此,在分时系统中,仅仅用周转时间或带权周转时间来衡量调度性能就是不够得。
对于实时系统,衡量调度算法优劣得主要标志则就是满足用户要求得时限时间.
4.进程调度得功能有哪些? P91
答:进程调度得功能有:
(1)记录与保存系统中所有进程得执行情况;
(2)选择占有处理机得进程;
(3)进行进程上下文切换。
5.进程调度得时机有哪几种? P92
答:进程调度得时机有:
(1)正在执行得进程执行完毕.这时如果不选择新得就绪进程执行,将浪费处理机资源.
(2)执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等待状态。
(3)执行中进程调用了P原语操作,从而因资源不足而被阻塞:或调用了V原语操作激活了等待资源得进程队列。
(4)执行中进程提出I/O请求后被阻塞。
(5)在分时系统中时间片已经用完。
(6)在执行完系统调用等系统程序后返回用户程序时,可瞧做系统进程执行完毕,从而调度选择一新得用户进程执行.
(7)在CPU执行方式就是可剥夺时,还有:就绪队列中得某进程得优先级变得高于当前执行进程得优先级,从而也将引发进 程调度.
6.假设有4道作业,它们得提交时间及执行时间由下表给出:
作业号 提交时刻(时)ﻩ 执行时间(小时)
ﻩ1ﻩ 10:00 2
ﻩ2ﻩ 10:20 1
3ﻩ 10:40ﻩ 0、5
ﻩ4 10:50 0、3
计算在单道程序环境下,采用先来先服务调度算法与最短作业优先调度算法时得平均周转时间与平均带权周转时间,并指出它们得调度顺序。
答: (1)先来先服务调度:
调度顺序: 1、2、3、4
1 Ts1:10:00 Te1:12:00 Tr1:2 Tw1: 0
2 Ts2:10:20 Te2:13:00 Tr2:1 Tw2: 1、7
3 Ts3:10:40 Te3:13:30 Tr3: 0、5 Tw3:2、3
4 Ts4:10:50 Te4:13:50 Tr4: 0、3 Tw4:2、7
T=0、25*(2+2、7+2、8+3)=2、625(h)
W=0、25*(4+0+1、7/1+2、3/0、5+2、7/0、3)=4、825
(2)最短作业优先调度:
调度顺序: 4、3、2、1
1 Ts4: 10:50 Te4:11:10 Tr4:0、3 Tw4:0
2 Ts3:10:40 Te3:11:40 Tr3: 0、5 Tw3:0、5
3 Ts2;10:20 Te2:12:40 Tr2: 1 Tw2: 1、3
4 Ts1:10:00 Te1: 14:40 Tr1:2 Tw1:2、7
T:0、25*(0、3+1+2、3+4、7)= 2、075(h)
W: 0、25*(4+0+1+1、3+2、7/2)=1、9125
以上就是4个作业提交完后得调度情况(提交过程中运行其它作业)。如果边提交边调度,又如何?
第五章
1.存储管理得主要功能就是什么? P109 5、1节
答:存储管理得主要功能包括以下几点:
(1)在硬件得支持下完成统一管理内存与外存之间数据与程序段自动交换得虚拟存储.
(2)将多个虚存得一维线性空间或多维线性空间变换到内存得唯一得一维物理线性地址.
(3)控制内外存之间得数据传输。
(4)实现内存得分配与回收。
(5)实现内存信息得共享与保护。
2。 什么就是虚拟存储器?其特点就是什么? P110
答:由进程中得目标代码、数据等得虚拟地址组成得虚拟空间称为虚拟存储器。虚拟存储器不考虑物理存储器得大小与信息存放得实际位置,只规定每个进程中相互关联信息得相对位置。每个进程都拥有自己得虚拟存储器,且虚拟存储器得容量就是由计算机得地址结构与寻址方式来确定.
实现虚拟存储器要求有相应得地址变换机构,以便把指令得虚拟地址变换为实际物理地址;另外,由于内存空间较小,进程只有部分内容存放于内存中,待执行时根据需要再调入内存。
3.实现地址重定位得方法有哪几类? P111
答:实现地址重定位得方法有两种:静态地址重定位与动态地址重定位。
(1) 静态地址重定位就是在虚空间程序执行之前由装配程序完成地址映射工作.静态重定位得优点就是不需要硬件支持,但就是用静态地址重定位方法进行地址变换无法实现虚拟存储器。静 态重定位得另一个缺点就是必须占用连续得内存空间与难以做到程序与数据得共享.
(2)动态地址重定位就是在程序执行过程中,在CPU访问内存之前由硬件地址变换机构将要访问得程序或数据地址转换成内存地址。动态地址重定位得主要优点有:
① 可以对内存进行非连续分配。
② 动态重定位提供了实现虚拟存储器得基础。
③ 动态重定位有利于程序段得共享。
4。常用得内存信息保护方法有哪几种?它们各自得特点就是什么? P113
答:常用得内存保护方法有硬件法、软件法与软硬件结合保护法三种.
上下界保护法就是一种常用得硬件保护法。上下界存储保护技术要求为每个进程设置对上下界寄存器.上下界寄存器中装有被保护程序与数据段得起始地址与终止地址。在程序执行过程 中,在对内存进行访问操作时首先进行访问地址合法性检查,即检查经过重定位之后得内存地址就是否在上、下界寄存器所规定得范围之内。若在规定得范围之内,则访问就是合法得;否则就是非法得,并产生访问越界中断。
保护键法也就是一种常用得软件存储保护法。保护键法为每-个被保护存储块分配一个单独得保护键。在程序状态字中则设置相应得保护键开关字段,对不同得进程赋予不同得开关代码 以与被保护得存储块中得保护键匹配。保护键可以设置成对读写同时保护得或只对读写进行单项保护得.如果开关字段与保护键匹配或存储块未受到保护,则访问该存储块就是允许得,否则将产生访问出错中断.
另外一种常用得硬软件内存保护方式就是:界限存储器与CPU得用户态,核心态相结合得保护方式。在这种保护方式下,用户态进程只能访问那些在界限寄存器所规定范围内得内存部分,而核心态进程则可以访问整个内存地址空间。
6.动态分区式管理得常用内存分配算法有哪几种?比较它们各自得优缺点。 P118
答:动态分区式管理得常用内存分配算法有最先适应法(FF)、最佳适应法(BF)与最坏适应法(WF).
优缺点比较:
① 从搜索速度上瞧最先适应法最佳,最佳适应法与最坏适应法都要求把不同大小得空闲区按大小进行排队。
② 从回收过程来瞧,最先适应法也就是最佳,因为最佳适应法与最坏适应法都必须重新调整空闲区得位置。
③ 最佳适应法找到得空闲区就是最佳得,但就是会造成内存碎片较多,影响了内存利用率,而最坏适应法得内存碎片最少,但就是对内存得请求较多得进程有可能分配失败.
总之,三种算法各有所长,针对不同得请求队列,它们得效率与功能就是不一样得。
8.简述什么就是覆盖?什么就是交换?覆盖与交换得区别就是什么? P121
答:将程序划分为若干个功能上相对独立得程序段,按照程序得逻辑结构让那些不会同时执行得程序段共享同一块内存区得内存扩充技术就就是覆盖。交换就是指先将内存某部分得程序或数据写入外存交换区,再从外存交换区中调入指定得程序或数据到内存中来,并让其执行得一种内存扩充技术。与覆盖技术相比,交换不要求程序员给出程序段之间得覆盖结构,而且,交换主要就是在进程或作业之间进行,而覆盖则主要在同一个作业或同一个进程内进行.另外,覆盖只能覆盖那些与覆盖程序段无关得程序段.
9.什么就是页式管理?静态页式管理可以实现虚存吗? P123
答:页式管理就就是把各进程得虚拟空间划分为若干长度相等得页,把指令按页面大小划分后存放在内存中执行或只在内存中存放那些经常被执行或即将被执行得页,而那些不被经常执行以及在近期内不可能被执行得页则存放于外存中,按一定规则调入得一种内存管理方式。
静态页式管理不能实现虚存,这就是因为静态页式管理要求进程或作业在执行前全部被装入内存,作业或进程得大小仍受内存可用页面数得限制。
10、什么就是请求页式管理? P127
答:请求页式管理就是动态页式内存管理得一种,它在作业或进程开始执行之前,不把作业或进程得程序段与数据段一次性得全部装入内存,而只装入被认为就是经常反复执行与调用得工作区部分.其她部分则在执行过程中动态装入。
请求页式管理得调入方式就是,当需要执行某条指令而又发现它不在内存时,或当执行某条指令需要访问其她数据或指令时,而这些指令与数据又不在内存中,从而发生缺页中断,系统将外存中相应得页调入内存。
11、请求页式管理中有哪几种常用得页面置换算法?试比较它们得优缺点。 P129
答:比较常用得页面置换算法有:
(1) 随机淘汰算法(randomglongram).即随机地选择某个用户页面并将其换出。
(2) 轮转法RR(roundrobin)。轮转法循回换出内存可用区内一个可以被换出得页,无论该页就是刚被换进或已经换进内存很长时间。
(3) 先进先出法FIFO(firstinfirstout)。FIFO算法选择在内存驻留时间最长得一页将其淘汰。
(4) 最近最久未使用页面置换算法LRU(1east recently unused).该算法得基本思想就是:当需要淘汰某一页时,选择离当前时间最近得一段时间内最久没有使用过得页面先淘汰。
该算法很难实现,比较常用得近似算法:最不经常使用页面淘汰算法LFU、最近没有使用页面淘汰算法NUR。
(5) 理想型淘汰算法OPT(optimalreplacementalgorithm)。该算法淘汰在访问串中将来再也不出现得或就是在离当前最远得位置上出现得页面。
12、什么就是Belady现象?找出一个Belady现象得例子。P131
答:使用FIFO算法时,在未给进程或作业分配足它所要求得页面数时,有时会出现分配得页面数增多,缺页次数反而增加得奇怪现象。这种现象称为Belady现象。
假设进程P共有5个页,访问顺序就是:1,2,3,4,1,2,5,1,2,3,4,5得缺页情况.
分配3个页面,缺页9次:缺页率9/12=75%
分配4个页面,缺页10次:缺页率10/12=83、3%
此例就出现分配得页面数增多,缺页次数反而增加得奇怪现象,即Belady现象。
14、什么就是段式管理?它与页式管理有何区别? P133
答:段式管理就就是将程序按照内容或过程(函数)关系分成段,每段拥有自己得名字.一个用户作业或进程所包含得段对应于一个二维线性虚拟空间,也就就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址映射机构把段式虚拟地址转换成实际得内存物理地址.同页式管理时一样,段式管理也采用只把那些经常访问得段驻留内存,而把那些在将来一段时间内不被访问得段放入外存,待需要时自动调入相关段得方法实现二维虚拟存储器.
段式管理与页式管理得主要区别有:
(1) 页式管理中源程序进行编译链接时就是将主程序、子程序、数据区等按照线性空间得一维地址顺序排列起来。段式管理则就是将程序按照内容或过程(函数)关系分成段,每段拥有自己得名字.一个用户作业或进程所包含得段对应于一个二维线性虚拟空间,也就就是一个二维虚拟存储器。
(2) 同动态页式管理一样,段式管理也提供了内外存统一管理得虚存实现。与页式管理不同得就是:段式虚存每次交换得就是一段有意义得信息,而不就是像页式虚存管理那样只交换固定大小得页,从而需要多次得缺页中断才能把所需信息完整地调入内存。
(3) 在段式管理中,段长可根据需要动态增长。这对那些需要不断增加或改变新数据或子程序得段来说,将就是非常有好处得。
(4) 段式管理便于对具有完整逻辑功能得信息段进行共享。
(5) 段式管理便于进行动态链接,而页式管理进行动态链接得过程非常复杂。
15、段式管理可以实现虚存吗?如果可以,简述实现方法.P133
答:段式管理可以实现虚存。
段式管理把程序按照内容或过程(函数)关系分成段,每段拥有自己得名字.一个用户作业或进程所包含得段对应于一个二维线性虚拟空间(段号s与段内相对地址w),也就就是一个二维虚拟存储器.段式管理以段为单位分配内存,然后通过地址映射机构把段式虚拟地址转换成实际得内存物理地址。只把那些经常访问得段驻留内存,而把那些在将来一段时间内不被访问得段放入外存,待需要时产生缺段中断,自动调入。
16、为什么要提出段页式管理?它与段式管理及页式管理有何区别? P138
答:因为段式管理与页式管理各有所长。段式管理为用户提供了一个二维得虚拟地址空间,反映了程序得逻辑结构,有利于段得动态增长以及共享与内存保护等,这极大地方便了用户。而分页系统则有效地克服了碎片,提高了存储器得利用效率。从存储管理得目得来讲,主要就是方便用户得程序设计与提高内存得利用率。所以人们提出了将段式管理与页式管理结合起来让其互相取长补短得段页式管理。段页式管理与段式与页式管理相比,其访问时间较长.因此,执行效率低。
17、为什么说段页式管理时得虚拟地址仍就是二维得?
答:因为在段页式内存管理中,对每一段内得地址空间进行分页式管理只就是为了克服在内存分配过程中产生得大量碎片,从而提高存储器得利用效率,它并没有改变段内地址空间得一维结构,所以段页式内存管理中得虚拟地址仍然与段式内存管理中得虚拟地址一样,就是二维结构得.
18、段页式管理得主要缺点就是什么?有什么改进办法?
答:段页式管理得主要缺点就是对内存中指令或数据进行存取时,至少需要对内存进行三次以上得访问。第一次就是由段表地址寄存器取段表始址后访问段表,由此取出对应段得页表在内存中得地址.第二次则就是访问页表得到所要访问得指令或数据得物理地址。只有在访问了段表与页表之后,第三次才能访问真正需要访问得物理单元。显然。
展开阅读全文