答:操作系统的职能是管理和控制计算机系统中的所有硬、软件资源,合理地组织计算 机工作流程,并为用户提供一个良好的工作环境和友好的接口。操作系统的基本功能包括: 处理机管理、存储管理、设备管理、信息管理(文件系统管理)和用户接口等。
1.2什么是批处理、分时和实时系统?各有什么特征?
答:批处理系统(batch processing system):操作员把用户提交的作业分类,把一批作 业编成一个作业执行序列,由专门编制的监督程序(monitor)自动依次处理.其主要特征是:用户脱机使用计算机、成批处理、多道程序运行。
分时系统(time sharing operation system):把处理机的运行时间分成很短的时间片,按 时间片轮转的方式,把处理机分配给各进程使用。其主要特征是:交互性、多用户同时性、独立性。
实时系统(real time system):在被控对象允许时间范围内作出响应。其主要特征是:对实时信息分析处理速度要比进入系统快、要求安全可靠、资源利用率低。
1。3多道程序(multiprogramming)和多重处理(multiprocessing)有何区别?
答:多道程序(multiprogramming)是作业之间自动调度执行、共享系统资源,并不是真 正地同时执行多个作业;而多重处理(multiprocessing)系统配置多个CPU,能真正同时执行 多道程序。要有效使用多重处理,必须采用多道程序设计技术,而多道程序设计原则上不一 定要求多重处理系统的支持。
2。2 作业由哪几部分组成?各有什么功能?
答:作业由三部分组成:程序、数据和作业说明书.程序和数据完成用户所要求的业务处理工作,系统通过作业说明书控制文件形式的程序和数据,使之执行和操作.
2.4试述SPOOLING系统的工作原理。
答:在SPOOLING系统中,多台外围设备通过通道或DMA器件和主机与外存连接起 来,作业的输入输出过程由主机中的操作系统控制。操作系统中的输人程序包含两个独立的过程,一个过程负责从外部设备把信息读入缓冲区,另一个过程是写过程,负责把缓冲区中的信息送人到外存输入井中.
在系统输人模块收到作业输人请求后,输人管理模块中的读过程负责将信息从输人装置 读人缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存输人井中.读过程和写过程 反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志后,系统再次驱动写过程把最后一批信息写入外存并调用中断处理程序结束该次输入。然后,系统为该作业建立作业控制块JCB,从而使输入井中的作业进人作业等待队列,等待作业调度程序选中后进人内存。
2.5 操作系统为用户提供哪些接口?它们的区别是什么?
答:操作系统为用户提供两个接口,一个是系统为用户提供的各种命令接口,用户利用这些操作命令来组织和控制作业的执行或管理计算机系统。另一个接口是系统调用,编程人员使用系统调用来请求操作系统提供服务,例如申请和释放外设等类资源、控制程序的执行速度等.
1
2.7 什么是系统调用?系统调用与一般用户程序有什么区别?与库函数和实用程序又有什么区别?
答:系统调用是操作系统提供给编程人员的唯一接口。编程人员利用系统调用,在源程序以及动态请求和释放系统资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。它与一般用户程序、库函数和实用程序的区别是:系统调用程序是在核心态执行,调用它们需要一个类似于硬件中断处理的中断处理机制来提供系统服务。
3.2试比较进程和程序的区别.
答:(1)进程是一个动态概念,而程序是一个静态概念,程序是指令的有序集合,无执行含义,进程则强调执行的过程。(2)进程具有并行特征,程序则没有。(3)不同的进程可以包含同一个程序,同一程序在执行中也可以产生多个进程。
3.3 我们说程序的并发执行将导致最终结果失去封闭性。这话对所有的程序都成立吗?试举例说明。
答:并非对所有的程序均成立。例如: begin
local x
x :=10 print(x) end
上述程序中x是内部变量,不可能被外部程序访问,因此这段程序的运行不会受外部环境影响。
3.4 试比较作业和进程的区别。
答:一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。作业是用于需要计算机完成某项任务,而要求计算机所做工作的集合。一个作业的完成要经过作业提交,作业收容、作业执行和作业完成4个阶段。而进程是已提交完毕的程序所执行过程的描述,足资源分配的基本单位.其主要区别关系如下: (1)作业是用户向计算机提交任务的任务实体。在用户向计算机提交作业之后,系统将存储在外存中的作业等待队列中等待执行.而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。任一进程,只要它被创建,总有相应的部分存在于内存中。 (2)一个作业可由多个进程组成。且必须至少由一个进程组成,但反过来不成立。 (3)作业的概念主要用在批处理系统中.像Unix这样的分时系统中,则没有作业概念。而进程的概念则用在几乎所有的多道程序系统中。
3。6什么是临界区?试举一临界区的例子.
答:临界区是指不允许多个并发进程交叉执行的一段程序。它是由于不同并发进程的 程序段共享公用数据或公用数据变量而引起的.所以它叉被称为访问公用数据的那段程 序。例如:
getspace: begin
local g
g=stack[top]
2
top=top-1 end
release(ad): begin
top=top+1 stack[top]=ad end
3。8什么是进程间的互斥,什么是进程间同步?
答:进程间的互斥是指:一组井发进程中的一个或多个程序段,因共享某一公有资源而 导致它们必须以一个不许交叉执行的单位执行,即不允许两个以上的共享该资源的并发进 程同时进入临界区。
进程间的同步是指:异步环境下的一组并发进程因直接制约互相发送消息而进行互相 合作、互相等待.是各进程按一定的速度执行的过程。
3。11 两进程Pa,Pb通过两FIFO缓冲区队列连接(如图E1.1),每个缓冲区长度等于传送消息长度。进程Pa,Pb之间的通信满足如下条件:
(a)至少有一个空缓冲区存在时,相应的发送进程才能发送一个消息。
(b)当缓冲队列中至少存在一个非空缓冲区时,相应的接收进程才能接受一个消息。 试描述发送过程send(i,m)和接收过程receive(i,m).这里i代表缓冲队列。
答:定义数组 buf[0],buf[1],bufempty[0],buffull[1]是Pa的私有信息量,buffull[0],bufempty[1]是Pb的私有信息量。
初始时:
bufempty[0]=bufempty[1]=n,(n为缓冲区队列的缓冲区个数)
buffull[0]=buffull[1]=0
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
3
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)
3。13 编写一个程序使用系统调用fork生成3个子进程,并使用系统调用pipe创建一管道,使得这3个子进程和父进程公用同一个管道进行信息通信。 答: main() {
int r,p1,p2,p3,fd[2]; char buf[50],s[5]; pipe(fd);
while((p1=fork())==—1); if(p1==0) {
Lock(fd[1],1,0);
sprintf(buf,”child process P1 is sending message!\\n”); printf(“child process P1!\\n\");
write(fd[1],buf,50); sleep(5);
lockf(fd[1],0,0); exit(0); } else {
while((p2=fork())==-1); if(p2==0) {
sprintf(buf,”child process P2 is sending message!\\n”); printf(“child process P2!\\n”);
write(fd[1],buf,50); sleep(5);
lockf(fd[1],0,0); exit(0); } } else {
4
while((p3=fork())==—1); if(p3==0) {
sprintf(buf,\"child process P3is sending message!\\n\"); printf(“child process P3!\\n”);
write(fd[1],buf,50); sleep(5);
lockf(fd[1],0,0); exit(0); } }
wait(0);
if(e=read(fd[0],s,50)== -1)
printf(“can’t read pipe\\n”); else
printf(“%s\\n”,s); wait(0);
if(r=read(fd[0],s,50)== —1) printf(“can’t read pipe\\n\") else
printf(“%s\\n”,s); exit(0); }
3。14设有5个哲学家,共享一张放有五把椅子的桌子,每人分得一把椅子。但是,桌 子上总共只有五支筷子,在每人两边分开各放一支。哲学家们在肚子饥饿时才试图分两次 从两边拾起筷子就餐. 条件:
(1)只有拿到两支筷子时,哲学家才能吃饭。
(2)如果筷子已在他人手上,则该哲学家必须等到他人吃完之后才能拿到筷子。 (3)任一哲学家在自己未拿到两支筷子吃饭之前,决不放下自己手中的筷子。 试:
(1)描述一个保证不会出现两个邻座同时要求吃饭的通信算法。
(2)描述一个既没有两邻座同时吃饭,又没有人饿死(永远拿不到筷子)的算法. 在什么情况下,5个哲学家全部吃不上饭?
答(1) 设信号量c[o]~c[4],初始值均为l,分别表示I号筷子被拿(I=0,1,2,3,4)。 Send(I):第I个哲学家要吃饭 Begin
P(c[I]);
P(c[ (I+1) mod 5 ]); eat;
V(c[ (I+1) mod 5 ]); V(c[I]);
5
end
该过程能保证两邻座不同时吃饭,但会出现5个哲学家一人拿一支筷子,谁也吃不上饭的死锁情况。
答(2) 解决的思路如下:让奇数号的哲学家先取右手边的筷子,让偶数号的哲学家先取做左手边的筷子。这样,任何一个哲学家拿到一支筷子之后,就已经阻止了他邻座的一个哲学家吃饭的企图,除非某个哲学家一直吃下去,否则不会有人饿死。 Send(I):第I个哲学家要吃饭 Begin
If (I mod 2) = = 0 Then {
P(c[I]);
P(c[ (I+1) mod 5 ]); eat;
V(c[I]);
V(c[ (I+1) mod 5 ]);
} else {
P(c[ (I+1) mod 5 ]); P(c[I]); eat;
V(c[ (I+1) mod 5 ]);
V(c[I]); } End
3。15 什么是线程?试述线程与进程的区别。
答:线程是在进程内用于调度和占有处理机的基本单位,它由线程控制表、存储线程上下文的用户栈以及核心栈组成。线程可分为用户级线程、核心级线程以及用户、核心混合型线程等类型。其中用户级线程在用户态下执行,CPU调度算法和各线程优先级都由用户设置,与操作系统内核无关。核心级线程的调度算法及线程优先级的控制权在操作系统内核。混合型线程的控制权则在用户和操作系统内核二者。
线程与进程的主要区别有:
(1)进程是资源管理的基本单位,它拥有自己的地址空间和各种资源,例如内存空间、外部设备等;线程只是处理及调度的基本单位,它只和其他线程一起共享进程资源,但自己没有任何资源。
(2)以进程为单位进行处理机切换和调度时,由于涉及到资源转移以及现场保护等问题,将导致处理机切换时间变长,资源利用率降低。以线程为单位进行处理机切换和调度时,由于不发生资源变化,特别是地址空间的变化,处理机切换的时间较短,从而处理机效率也较高.
(3)对用户来说,多线程可减少用户的等待时间,提高系统的响应速度.例如,当一个进程需要对两个不同的服务进行远程过程调用时,对于无线进程系统的操作系统来说需要顺序等待
6
两个不同的调用返回结果后才能继续执行,且在等待中容易发生进程调度。对于多线程系统而言,则可以在同一进程中使用不同的线程同时进行远程过程调用,从而缩短进程的等待时间.
(4)线程和进程一样,都有自己的状态,也有相应的同步机制,不过,由于线程没有单独的数据和程序空间,因此,线程不能像进程的数据与程序那样,交换到外存存储空间。从而线程没有挂起状态。
(5)进程的调度、同步等控制大多数由操作系统内核完成,而线程的控制既可以由操作系统内核进行,也可以由用户控制进行。
4.1什么是分级调度?分时系统中有作业调度的概念吗?如果没有,为什么? 答:处理机调度为她实际上也是处理机的分配问题。显然只有那些参与竞争处理及所必需的资源都已得到满足的进程才能享有竞争处理机的资格.这是他们处于内存就绪状态。这些必需的资源包括内存、外设及有关数据结构等。从而,在进程有资格警长处理机之前,作业调度程序必须先调用存储管理、外设管理程序,并按一定的选择顺序和策略从输入并中选择出几个处于后备状态的作业,为他们分配资源和创建进程,使他们获得竞争处理机的资格。另外,由于处于执行状态下的作业一般包括多个进程,而在单机系统中,每一时刻只能有一个进程占有处理机,这样,在外存中,除了处于后备状态的作业外,外存在处于就绪状态而等待得到内存的作业。我们需要有一定的方法和策略为这部分作业分配空间。因此处理机调度需要分级。
一般来说,处理机调度可分为4级:
(1)作业调度:又称宏观调度,或高级调度.
(2)交换调度:又称中级调度。其主要任务是按照给定的原则和策略,将处于外存交换区中的就绪状态或等待状态或内存等待状态的进程交换到外存交换区。交换调度主要涉及到内存管理与扩充.因此在有写书本中也把它归入内存管理部分。
(3)进程调度:又称微观调度或低级调度.其主要任务是按照某种策略和方法选取一个处于就绪状态的进程占用处理机。在确立了占用处理机的进程之后,系统必须进行进程上下文切换以建立与占用处理机进程相适应的执行环境。
(4)线程调度:进程中相关堆栈和控制表等的调度。
在分时系统中,一般不存在作业调度,而只有线程调度、进程调度和交换调度。这是因为在分时系统中,为了缩短响应时间,作业不是建立在外存,而是直接建立在内存中。在分时系统中,一旦用户和系统的交互开始,用户马上要进行控制。因此,分时系统中没有作业提交状态和后备状态.分时系统的输入信息经过终端缓冲区为系统直接接收,或立即处理,或经交换调度暂存外存中。
4。3 作业调度的性能评价标准有哪些? 这些性能评价标准在任何情况下都能反映调度策略的优劣吗?
答:对于批处理系统,由于主要用于计算,因而对于作业的周转时间要求较高。从而作业的平均周转时间或平均带权周转时间被用来衡量调度程度的优劣。但对于分时系统来说,平均响应时间又被用来衡量调度策略的优劣.
对于分时系统,除了要保证系统吞吐量大、资源利用率高之外,还应保证用户能够容忍的响应时间。因此,在分时系统中,仅仅用周转时间或带权周转时间来衡量调度性能是不够的. 对于实时系统来说,衡量调度算法优劣的主要标志则是满足用户要求的时限时间.
7
4。4进程调度的功能有哪些? 答:进程调度的功能有:
(1)记录和保存系统中所有进程的执行情况; (2)选择占有处理机的进程; (3)进行进程上下文切换。
4。5 进程调度的时机有哪几种? 答:进程调度的时机有:
(1)正在执行的进程执行完毕。这时如果不选择新的就绪进程执行,将浪费处理机资源。 (2)执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等待状态。
(3)执行中进程调用了P原语操作,从而因资源不足而被阻塞:或调用了V原语操作激活了等待资源的进程队列。
(4)执行中进程提出I/O请求后被阻塞。 (5)在分时系统中时间片已经用完。
(6)在执行完系统调用等系统程序后返回用户程序时,可看做系统进程执行完毕,从而调度选择一新的用户进程执行。
(7)在CPU执行方式是可剥夺时,还有:就绪队列中的某进程的优先级变得高于当前执行进程的优先级,从而也将引发进程调度。
5。1 存储管理的主要功能是什么? 答:存储管理的主要功能包括以下几点: (1)在硬件的支持下完成统一管理内存和外存之间数据和程序段自动交换的虚拟存储器功能。
(2)将多个虚存的一维线性空间或多维线性空间变换到内存的唯一的一维物理线性地址空间。
(3)控制内外存之间的数据传输。 (4)实现内存的分配和回收.
(5)实现内存信息的共享与保护。
5.2什么是虚拟存储器?其特点是什么?
答:由进程中的目标代码、数据等的虚拟地址组成的虚拟空间称为虚拟存储器。虚拟 存储器不考虑物理存储器的大小和信息存放的实际位置,只规定每个进程中相互关联信息 的相对位置。每个进程都拥有自己的虚拟存储器.且虚拟存储器的容量是由计算机的地址 结构和寻址方式来确定。
实现虚拟存储器要求有相应的地址转换机构,以便把指令的虚拟地址变换为实际物理 自址;另外,由于内存空间较小,进程只有部分内容存放于内存中,待执行时根据需要再凋指令入内存.
5.3 实现地址重定位的方法有哪几类?
答:实现地址重定位的方法有两类:静态地址重定位和动态地址重定位.
(1)静态地址重定位是在虚拟空间程序执行之前由装配程序完成地址映射工作。静态重定位的优点是不需要硬件支持,但是用静态地址重定位方法进行地址变换无法实现虚拟存储器。静态重定位的另一个缺点是必须占用连续的内存空间和难以做到程序和数据的共享.
(2)动态地址重定位是在程序执行过程中,在CPU访问内存之前由硬件地址变换机构
8
将要访问的程序或数据地址转换成内存地址。动态地址重定位的主要优点有:
1。 可以对内存进行非连续分配。
2。 动态重定位提供了实现虚拟存储器的基础。 3. 动态重定位有利于程序段的共享。
5.6动态分区式管理的常用内存分配算法有哪几种?比较它们各自的优缺点. 答:动态分区式管理的常用内存分配算法有最先适应法(FF)、最佳适应法(BF)和最坏适应法(WF)。
优缺点比较:
(1)从搜索速度上看最先适应法最佳,最佳适应法和最坏适应法都要求把不同大小的空闲区按大小进行排队。
(2)从回收过程来看,最先适应法也是最佳,因为最佳适应法和最坏适应法都必须重新调整空闲区的位置。
(3)最佳适应法找到的空闲区是最佳的,但是会造成内存碎片较多,影响了内存利用率,而最坏适应法的内存碎片最少,但是对内存的请求较多的进程有可能分配失败。
总之,三种算法各有所长,针对不同的请求队列,它们的效率和功能是不一样的。
5。8简述什幺是覆盖?什么是交换?覆盖和交换的区别是什么?
答:将程序划分为若干个功能上相对独立的程序段,按照程序的逻辑结构让那些不会 同时执行的程序段共享同一块内存区的内存扩充技术就是覆盖.
交换是指先将内存某部分的程序和数据写入外存交换区,再从外存交换区中调入指定 的程序或数据到内存中来,并让其执行的一种内存扩充技术。 —
与覆盖技术相比,交换不要求程序员给出程序段之间的覆盖结构,而且,变换主要是在 进程或作业之间进行,而覆盖则主要在同一个作业或同一个进程内进行。另外,覆盖只能覆 盖那些与覆盖程序段无关的程序段。
5。9什么是页式管理?静态页式管理可以实现虚存吗?
答:页式管理就是把各进程的虚拟空间划分为若干长度相等的页面,把指令按页面大 小划分后存放在内存中执行或只在内存中存放那些经常被执行或即将被执行的页面,而那 些不被经常执行以及在近期内不可能被执行的页面则存放于外存中,按一定规则调入的一 种内存管理方式。
静态页式管理不能实现虚存,这是因为静态页式管理要求进程或作业在执行前全部被 装人内存,作业或进程的大小仍受内存可用页面数的限制。
5。10 什么是请求页式管理?
答:请求页式管理是动态页式内存管理的一种,它在作业或进程开始执行之前,不把作业或进程的程序段和数据段一次性的全部装入内存,而只装入被认为是经常反复执行和调用的工作区部分.其他部分则在执行过程中动态装入。请求页式管理的调入方式是,当需要执行某条指令而又发现它不在内存时,或当执行某条指令需要访问其他数据或指令时,而这些指令和数据又不在内存中,从而发生缺页中断,系统将外存中相应的页面调入内存.
5.11 请求页式管理中有哪几种常用的页面置换算法?试比较它们的优缺点。
答:比较常用的页面置换算法有:
(1) 随机淘汰算法(random glongram)。即随机地选择某个用户页面并将其换出.
9
(2) 轮转法RP(round robin)。轮转法循环换出内存可用区一个可以被换出的页,无
论该页是刚被换进或已经换进内存很长时间。
(3) 先进先出法FIFO(first in first out)。FIFO算法选择在内存驻留时间最长的一页将
其淘汰。
(4) 最近最久未使用页面置换算法LRU(least recently unused)。该算法的基本思想
是:当需要淘汰某一页时,选择离当前时间最近的一段时间内最久没有使用过的页面先淘汰。
(5) 理想型淘汰算法OPT(optimal replacement algorithm)。该算法淘汰在访问串中将
来再也不出现的或是在离当前最远的位置上出现的页面.
RP和FIFO都是基于CPU按线性顺序访问地址空间这一假设,但是实际上CPU在很多时候并非是按线性顺序访问地址空间的,因而它们的内存利用率不高。此外FIFO算法还存在着Belady现象。LRU算法的完全实现是相当困难的,因而在实际系统中往往要采取LRU的近似算法,常用的近似算法有最不经常使用页面淘汰算法LFU(least frequently used)和最近没有使用页面淘汰算法(NUR)。OPT算法由于必须预先知道每一个进程的指令访问串,所以它是无法实现的.
5.14什么是段式管理?它与页式管理有何区别?
答:段式管理就是将程序按照内容或过程(函数)关系分成段,每段拥有自己的名字. 一个用户作业或进程所包含的段对应于一个二维线性虚拟空间,也就是一个二维虚拟存储 器。段式管理程序以段为单位分配内存,然后通过地址映射机构把段式虚拟地址转换成实 际的内存物理地址。同页式管理时一样,段式管理也采用只把那些经常访问的段驻留内存, 而把那些在将来一段时间内不被访问的段放入外存,待需要时自动调人相关段的方法实现 二维虚拟存储器。
段式管理和页式管理的主要区别有:
(1) 页式管理中源程序进行编译链接时是将主程序、子程序、数据区等按照线性空间的
一维地址顺序排列起来.段式管理则是将程序按照内容或过程(函数)关系分成段,每段拥 有自己的名字-一个用户作业或进程所包含的段对应于一个二维线性虚拟空间,也就是一 个二维虚拟存储器.
(2) 同动态页式管理一样,段式管理也提供了内外存统一管理的虚存实现。与页式管 理不同的是:段式虚存每次交换的是一段有意义的信息,而不是像页式虚存管理那样只交 换固定大小的页,从而需要多次的缺页中断才能把所需信息完整地调入内存.
(3) 在段式管理中,段长可根据需要动态增长。这对那些需要不断增加或改变新数据 或子程序的段来说,将是非常有好处的.
(4) 段式管理便于对具有完整逻辑功能的信息段进行共享.
(5) 段式管理便于进行动态链接,而页式管理进行动态链接的过程非常复杂。
5.16为什么要提出段页式管理?它与段式管理及页式管理有何区别?
答:因为段式管理和页式管理各有所长.段式管理为用户提供了一个二维的虚拟地址 空间,反映了程序的逻辑结构,有利于段的动态增长以及共享和内存保护等,这极大地方便 了用户。而分页系统则有效地克服了碎片,提高了存储器的利用效率。从存储管理的目的 来讲,主要是方便用户的程序设计和提高内存的利用率.所以人们提出了将段式管理和页 式管理结合起来让其互相取长补短的段页式管理。
段页式管理与段式和页式管理相比,其访问时间较长。因此,执行效率低。
10
5。19 什么是局部性原理?什么是抖动?你有什么办法减少系统的抖动现象?
答:局部性原理是指在几乎所有程序的执行过程中,在一段时间内,CPU总是集中地访问程序中的某一部分而不是对程序的所有部分具有平均的访问概率.
抖动是指当给进程分配的内存小于所要求的工作区时,由于内存外存之间交换频繁,访问外存的时间和输入输出处理时间大大增加,造成CPU因等待数据而空转,使得整个系统性能大大下降。
在物理系统中,为了防止抖动的产生,在进行淘汰或置换时,一般总是把缺页进程锁住,不让其换出,从而防止抖动发生。
防止抖动发生的另一个方法是设置较大的内存工作区。
8。1 什么是文件、文件系统?文件系统有哪些功能?
答:在计算机系统中,文件被解释为一组赋名的相关字符流的集合,或者是相关记录的集合。
文件系统是操作系统中与管理文件有关的软件和数据.
文件系统的功能是为用户建立文件,撤销、读写修改和复制文件,以及完成对文件的按名存取和进行存取控制.
8.3 什么是文件的逻辑结构?什么是记录?
文件的逻辑结构就是用户可见的结构,可分为字符流式的无结构文件和记录式的有结构文件两大类。
记录是一个具有特定意义的信息单位,它由该记录在文件中的逻辑地址(相对位置)与记录名所对应的一组关键字、属性及其属性值所组成.
8.7文件的物理结构有哪几种?为什么说串联文件结构不适于随机存取?
文件的物理结构是指文件在存储设备上的存放方法。常用的文件物理结构有连续文件、串联文件和索引文件3种.
串联文件结构用非连续的物理块来存放文件信息.这些非连续的物理块之间没有顺序关系,链接成一个串联队列。搜索时只能按队列中的串联指针顺序搜索,存取方法应该是顺序存取的。否则,为了读取某个信息块而造成的磁头大幅度移动将花去较多的时间。因此,串联文件结构不适于随机存取。
8.9常用的文件存储设备的管理方法有哪些?试述主要优缺点.
答:文件存储设备的管理实质上是一个空闲块的组织和管理问题.有3种不同的空闲 块管理方法。即空闲文件目录、空闲块链和位示图。
空闲文件目录管理方法就是把文件存储设备中的空闲块的块号统一放在一个称为空闲 文件目录的物理块中,其中空闲文件目录的每个表项对应一个由多个空闲块构成的空闲区. 该方法实现简单,适于连续文件结构的文件存储区的分配与回收。但是由于回收时不进行 合并,所以使用该方法容易产牛大量的小块空闲区。
空闲块链法把文件存储设备上的所有空闭块链接在一起,从链头分配空闲块,把回收的 空闲块插入到链尾。该方法不占用额外的空间,但实现复杂。
位示图法是从内存中划出若干字节,每个比特位对应一个物理块的使用情况。如果该
位为0则表示对应的是空闲块,为l则表示对应的物理块已分配出去。位示图法在查找空闲 块时无需启动外设,但要占用内存空间.
11
8。11 什么是文件目录?文件目录中包含哪些信息?
答:一个文件的文件名和对该文件实施控制管理的说明信息称为该文件的说明信息,又称为该文件的目录.
文件目录中包含文件名、与文件名相对应的文件内部标识以及文件信息在文件存储设备上第一个物理块的地址等信息。另外还可能包含关于文件逻辑结构、物理结构、存取控制和管理等信息。
8。14设文件SQRT由连续结构的定长记录组成,每个记录的长度为500字节,每个物
理块密,l000字节,且物理结构是连续结构并采用直接存取方式;试按照图7.23所示文件系统模型,写出系统调用Read(SQRT,5,15000)的各层执行结果。其中,SQRT为文件名,5为记录号,l5000为内存地址。 答:(简述)
第l层用户接口层,把系统调用转化成内部调用格式。
第2层符号文件系统层,把第l层提供的用户文件名转化成系统内部的唯一标识符fd。 第3层基本文件系统层根据参数fd找到文件的说明信息.
第4层存取控制验证层根据存取控制信息和用户访问要求,检验文件访问的合法性。 第5层逻辑文件系统层根据文件逻辑结构找到第5个记录对应的逻辑地址2000,并将 其转换为相对块号2.
第6层物理文件系统层根据文件的物理结构把相对块号2转换成物理地址如1000000。 第7层文件存储设备分配模块和设备策略模块把物理块号转换成具体磁盘的柱面号、 磁道号和扇区号,然后准备启动输入设备命令.
第8层启动输入输出层由设备处理程序执行读操作,把第5个记录读到内存地址15000 处。
9.1 设备管理的目标和功能是什么?
答:设备管理的目标是:选择和分配输入输出设备以便进行数据传输操作;控制输入输出设备和CPU(或内存)之间交换数据;为用户提供一个友好的透明接口;提供设备和设备之间、CPU和设备之间,以及进程和进程之间的并行操作,以使操作系统获得最佳效率。
设备管理的功能是:提供和进程管理系统的接口;进行设备分配;实现设备和设备、设备和CPU等之间的并行操作;进行缓冲区管理.
9.2数据传送控制方式有哪几种?试比较它们各自的优缺点。
答:数据传送控制方式有程序直接控制方式、中断控制方式、DMA方式和通道方式 4种.
程序直接控制方式就是由用户进程来直接控制内存或CPU和外围设备之间的数据传 送。它的优点是控制简单,也不需要多少硬件支持.它的缺点是;CPU和外围设备只能串 行工作;设备之间只能串行工作;无法发现和处理由于设备或其他硬件所产生的错误。 中断控制方式是利用向CPU发送中断的方式控制外围设备和CPU之间的数据传送。 它的优点是大大提高了CPU的利用率且能支持多道程序和设备的并行操作。它的缺点是: 由于数据缓冲寄存器比较小,如果中断次数较多,仍然占用了大量CPU时间;在外围设备较多时,由于中断次数的急剧增加,可能造成CPU无法响应中断而出现中断丢失的现象;如果外围设备速度比较快,可能会出现CPU来不及从数据缓冲寄存器中取走数据而丢失数据
12
的情况.
DMA方式是在外围设备和内存之间开辟直接的数据交换通路进行数据传送。它的优 点是除了在数据块传送开始时需要CPU的启动指令,在整个数据块传送结束时需要发中断 通知CPU进行中断处理之外.不需要CPU的频繁干涉.它的缺点是在外围设备越来越多 的情况下,多个DMA控制器的同时使用,会引起内存地址的冲突并使得控制过程进一步复 杂化。
通道方式是使用通道来控制内存或CPU和外围设备之间的数据传送。通道是一个独 立与CPU的专管输人输出控制的机构,它控制设备与内存直接进行数据交换。它有自己的 通道指令,这些指令受CPU启动,并在操作结束时向CPU发中断信号.该方式的优点是进 一步减轻了CPU的工作负担,增加了计算机系统的并行工作程度。缺点是增加了额外的硬 件,造价昂贵。
9.3什么是通道?试画出通道控制方式时的CPU、通道和设备的工作流程图.
答:通道是一个独立与CPU的专管输入输出控制的机构,它控制设备与内存直接进行 数据交换。它有自己的通道指令,这些指令受CPU启动,并在操作结束时向CPU发中断 信号。设备和通道的工作流程图如下图所示。
设备 CPU
发start指令,指明I/O操通道接收到CPU发来的
作、设备号和对应的通道 启动指令start
当前进程等待,调度程序 启动设备准备数据 调度其他进程运行
设备根据通道指令要求,把
数据放入内存中指定的区域 被调度进程执行
否 否 收到中断信号? 传送结束?
是 是
发中断信号停止I/O操作 转中断处理程序 9.4 什么是中断?什么叫中断处理?什么叫中断响应?
答:中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行的过程。
CPU转去执行相应的事件处理程序的过程称为中断处理。 CPU收到中断请求后转到相应的事件处理程序称为中断响应。
9.6 什么是陷阱?什么是软中断?试述中断、陷阱和软中断之间异同。
答:陷阱指处理机和内存内部产生的中断,它包括程序运算引起的各种错误,如地址非
13
法、校验错、页面失效.存取访问控制错、从用户态到核心态的切换等都是陷阱的例子。
软中断是通信进程之间用来模拟硬中断的一种信号通信方式。
9.8 什么是缓冲?为什么要引入缓冲?
答:缓冲即是使用专用硬件缓冲器或在内存中划出一个区域用来暂时存放输入输出数据的器件。
引入缓冲是为了匹配外设和CPU之间的处理速度,减少中断次数和CPU的中断处理时间,同时解决DMA或通道方式时的数据传输瓶颈问题。
9.13什么是I/O控制?它的主要任务是什么?
答:I/O控制是指从用户进程的输入输出请求开始,给用户进程分配设备和启动有关设 备进行I/O操作,并在I/O操作完成之后响应中断,直至善后处理为止的整个系统控制过程。
14
因篇幅问题不能全部显示,请点此查看更多更全内容