第一章
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