1、第一章1什么是操作系统的基本功能?答:操作系统的职能是管理和控制计算机系统中的所有硬、软件资源,合理地组织计算机工作流程,并为用户提供一个良好的工作环境和友好的接口。操作系统的基本功能包括:处理机管理、存储管理、设备管理、信息管理(文件系统管理)和用户接口等。2什么是批处理、分时和实时系统?各有什么特征?答:批处理系统(batch processingsystem):操作员把用户提交的作业分类,把一批作业编成一个作业执行序列,由专门编制的监督程序(monitor)自动依次处理。其主要特征是:用户脱机使用计算机、成批处理、多道程序运行。分时系统(time sharing operation sy
2、stem):把处理机的运行时间分成很短的时间片,按时间片轮转的方式,把处理机分配给各进程使用。其主要特征是:交互性、多用户同时性、独立性。实时系统(real time system):在被控对象允许时间范围内作出响应。其主要特征是:对实时信息分析处理速度要比进入系统快、要求安全可靠、资源利用率低。3 多道程序设计和多重处理有何区别?答;多道程序(multiprogramming)是作业之间自动调度执行、共享系统资源,并不是真正地同时执行多个作业;而多重处理(multiprocessing)系统配置多个 CPU,能真正同时执行多道程序。要有效使用多重处理,必须采用多道程序设计技术,而多道程序设计
3、原则上不一定要求多重处理系统的支持。4 讨论操作系统可以从哪些角度出发,如何把它们统一起来?答;讨论操作系统可以从以下角度出发:(1)操作系统是计算机资源的管理者;(2)操作系统为用户提供使用计算机及界面;(3)用进程管理观点研究操作系统,即围绕进程运行过程来讨论操作系统。上述这些观点彼此并不矛盾,分别代表了从不同角度对同一事物(操作系统)的观点。每种观点都有助于理解、分析和设计操作系统。6 设计计算机操作系统与哪些硬件器件有关?答;计算机操作系统的重要功能之一是对硬件资源的管理。因此设计计算机操作系统时应考虑下述计算机硬件资源:(1)CPU 与指令的长度与执行方式;(2)内存、缓存和高速缓存
4、等存储装置;(3)各类寄存器,包括各种通用寄存器、控制寄存器和状态寄存器;(4)中断机构;(5)外部设备与 I/O 控制装置;(6)内部总线与外部总线;(7)对硬件进行操作的指令集。第二章1. 什么是作业?作业步?答:把在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。作业由不同的顺序相连的作业步组成。作业步是在一个作业的处理过程中,计算机所做的相对独立的工作。如,编辑输入是一个作业步,它产生源程序文件;编译也是一个作业步,它产生目标代码文件。2. 作业由哪几部分组成? 各有什么功能?答:作业由三部分组成:程序、数据和作业说明书。程序和
5、数据完成用户所要求的业务处理工作,作业说明书则体现用户的控制意图。3作业的输入方式有哪几种?各有何特点答:作业的输入方式有 5 种:联机输入方式、脱机输入方式、直接耦合方式、SPOOLING (Simultaneous Peripheral Operations Online)系统和网络输入方式,各有如下特点:(1) 联机输入方式:用户和系统通过交互式会话来输入作业。(2) 脱机输入方式:又称预输入方式,利用低档个人计算机作为外围处理机进行输入处理,存储在后备存储器上,然后将此后援存储器连接到高速外围设备上和主机相连,从而在较短的时间内完成作业的输入工作。(3) 直接耦合方式:把主机和外围低档
6、机通过一个公用的大容量外存直接耦合起来,从而省去了在脱机输入中那种依靠人工干预来传递后援存储器的过程。(4) SPOOLING 系统:可译为外围设备同时联机操作。在 SPOOLING 系统中,多台外围设备通过通道或 DMA 器件和主机与外存连接起来,作业的输入输出过程由主机中的操作系统控制。(5) 网络输入方式:网络输入方式以上述几种输入方式为基础,当用户需要把在计算机网络中某一台主机上输入的信息传送到同一网中另一台主机上进行操作或执行时,就构成了网络输入方式。4试述 SPOOLING 系统的工作原理。答:在 SPOOLING 系统中,多台外围设备通过通道或 DMA 器件和主机与外存连接起来,
7、作业的输入输出过程由主机中的操作系统控制。操作系统中的输入程序包含两个独立的过程,一个过程负责从外部设备把信息读入缓冲区,另一个过程是写过程,负责把缓冲区中的信息送入到外存输入井中。在系统输入模块收到作业输入请求后,输入管理模块中的读过程负责将信息从输入装置读入缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存输入井中。读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志后,系统再次驱动写过程把最后一批信息写入外存并调用中断处理程序结束该次输入。然后,系统为该作业建立作业控制块 JCB,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存。5操作系统为用
8、户提供哪些接口?它们的区别是什么?答:操作系统为用户提供两个接口,一个是系统为用户提供的各种命令接口,用户利用这些操作命令来组织和控制作业的执行或管理计算机系统。另一个接口是系统调用,编程人员使用系统调用来请求操作系统提供服务,例如申请和释放外设等类资源、控制程序的执行速度等。6作业控制方式有哪几种?调查你周围的计算机的作业控制方式。 答:作业控制的主要方式有两种:脱机方式和联机方式。脱机控制方式利用作业控制语言来编写表示用户控制意图的作业控制程序,也就是作业说明书。作业控制语言的语句就是作业控制命令。不同的批处理系统提供不同的作业控制语言。 联机控制方式不同于脱机控制方式,它不要求用户填写作
9、业说明书,系统只为用户提供一组键盘或其他操作方式的命令。用户使用操作系统提供的操作命令和系统会话,交互地控制程序执行和管理计算机系统。7什么是系统调用?系统调用与一般用户程序有什么区别?与库函数和实用程序又有什么区别?答:系统调用是操作系统提供给编程人员的唯一接口。编程人员利用系统调用,在源程序一级动态请求和释放系统资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。系统调用与一般用户程序、库函数和实用程序的区别是:系统调用程序是在核心态执行,调用它们需要一个类似于硬件中断处
10、理的中断处理机制来提供系统服务。8简述系统调用的实现过程。答:用户在程序中使用系统调用,给出系统调用名和函数后,即产生一条相应的陷入指令,通过陷入处理机制调用服务,引起处理机中断,然后保护处理机现场,取系统调用功能号并寻找子程序入口,通过入口地址表来调用系统子程序,然后返回用户程序继续执行。9为什么说分时系统没有作业的概念?答:因为咋分时系统中,每个用户得到的时间片有限,用户的程序和数据信息直接输入到内存工作区中和其它程序一起抢占系统资源投入执行,而不必进入外存输入井等待作业调度程序选择。因此,分时系统没有作业控制表,也没有作业调度程序。第三章1有人说,一个进程是由伪处理机执行的一个程序,这话
11、对吗?为什么?答:对。因为伪处理机的概念只有在执行时才存在,它表示多个进程在单处理机上并发执行的一个调度单位。因此,尽管进程是动态概念,是程序的执行过程,但是,在多个进程并发执行时,仍然只有一个进程占据处理机执行,而其它并发进程则处于就绪或等待状态。这些并发进程就相当于由伪处理机执行的程序。2试比较进程和程序的区别。答:(1) 进程是一个动态概念,而程序是一个静态概念,程序是指令的有序集合,无执行含义,进程则强调执行的过程。(2) 进程具有并行特征(独立性,异步性),程序则没有。(3) 不同的进程可以包含同一个程序,同一程序在执行中也可以产生多个进程。4试比较作业和进程的区别。答:并非对所有的
12、程序均成立。例如:beginlocal xx:=10print(x)end上述程序中 x 是内部变量,不可能被外部程序访问,因此这段程序的运行不会受外界环境影响。4试比较作业和进程的区别。答:一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。作业是用于需要计算机完成某项任务,而要求计算机所做工作的集合。一个作业的完成要经过作业提交,作业收容、作业执行和作业完成 4 个阶段。而进程是已提交完毕的程序所执行过程的描述,是资源分配的基本单位。其主要区别关系如下:(1) 作业是用户向计算机提交任务的任务实体。在用户向计算机提交作业之后,系统将存储在外存中的作业等待队列中等待执行。而进程则
13、是完成用户任务的执行实体,是向系统申请分配资源的基本单位。任一进程,只要它被创建,总有相应的部分存在于内存中。(2) 一个作业可由多个进程组成。且必须至少由一个进程组成,但反过来不成立。 (3) 作业的概念主要用在批处理系统中。像 Unix 这样的分时系统中,则没有作业概念。而进程的概念则用在几乎所有的多道程序系统中。6什么是临界区?试举一临界区的例子。答:临界区是指不允许多个并发进程交叉执行的一段程序。它是由于不同并发进程的程序段共享公用数据或公用数据变量而引起的。所以它又被称为访问公用数据的那段程序。例如:getspace: begin local g g=stacttoptop=top-
14、1Endrelease(ad):Begintop=top+1stacktopadEnd7并发进程间的制约有哪两种?引起制约的原因是什么? 答:并发进程所受的制约有两种:直接制约和间接制约。直接制约是由并发进程互相共享对方的私有资源所引起的。间接制约是由竞争共有资源而引起的。8什么是进程间的互斥?什么是进程间同步? 答:进程间的互斥是指:一组并发进程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不许交叉执行的单位执行,即不允许两个以上的共享该资源的并发进程同时进入临界区。进程间的同步是指:异步环境下的一组并发进程因直接制约互相发送消息而进行互相合作、互相等待,使得各进程按一定的速度
15、执行的过程。9试比较 P,V 原语法和加锁法实现进程间互斥的区别。答:互斥的加锁实现是这样的:当某个进程进入临界区之后,它将锁上临界区,直到它退出临界区时为止。并发进程在申请进入临界区时,首先测试该临界区是否是上锁的,如果该临界区已被锁住,则该进程要等到该临界区开锁之后才有可能获得临界区。加锁法存在如下弊端:(1) 循环测试锁定位将损耗较多的 CPU 计算时间;(2) 产生不公平现象。P,V 原语法采用信号量管理相应临界区的公有资源,信号量的数值仅能由P,V 原语操作改变,而 P,V 原语执行期间不允许中断发生。其过程是这样的:当某个进程正在临界区内执行时,其他进程如果执行了 P 原语,则该进
16、程并不像 lock 时那样因进不了临界区而返回到 lock 的起点,等以后重新执行测试,而是在等待队列中等待由其他进程做 V 原语操作释放资源后,进入临界区,这时 P 原语才算真正结束。若有多个进程做 P 原语操作而进入等待状态之后,一旦有 V 原语释放资源,则等待进程中的一个进入临界区,其余的继续等待。总之,加锁法是采用反复测试 lock 而实现互斥的,存在 CPU 浪费和不公平现像,P,V 原语使用了信号量,克服了加锁法的弊端。10答:设第 I 块缓冲区的公有信号量为 metexI,保证生产者进程和消费者进程对同一块缓冲区操作的互斥,初值为 1;设信号量 avail 为生产者进程的私有信号
17、量,初值为 m;设信号量 full 为消费者进程的私有信号量,初值为 0。用信号量和 P、V 操作描述发送过程 deposit(data) 和接收过程remove(data) 如下:deposit(data):beginP(avail)选择一个空缓冲区 iP(mutexi)送数据入缓冲区 iV(mutexi)V(full)Endremove(data):beginP(full)选择一个满缓冲区 iP(mutexi)取缓冲区 i 中的数据V(mutexi)V(avail)End12答:定义数组 buf0,buf1。设 bufempty0,buffull1是 Pa 的公有信号量;设 bufempt
18、y1,buffull0是 Pb 的公有信号量;初值为:bufempty0= bufempty1=nbuffull0= buffull1=0用信号量和 P、V 操作描述发送过程 send(i,m) 和接收过程 receive(i,m) 如下:send (i,m):beginlocal xP(bufemptyi)按 FIFO 选择一个空缓冲区 bufi(x)bufi(x)=mbufi(x)置满标记V(buffulli)Endreceive(i,m):beginlocal xP(buffulli)按 FIFO 选择一个满缓冲区 bufi(x)m=bufi(x)bufi(x)置空标记V(bufempt
19、yi)EndPa 调用 send(0,m)和 receive(1,m)Pb 调用 send(1,m)和 receive(0,m)14答:设信号量 ci,初值为 1;i=0,1,2,3,4。i 表示第 i 号筷子。(1)第 i 个哲学家要吃饭:eat(i):beginP(ci)P(ci+1 mod 5)吃饭V(ci+1 mod 5)V(ci)End该过程能保证两个邻座不同时吃饭,但有可能出现每人只拿到一支筷子,谁也吃不上饭的情况。(1)为解决上述情况,让奇数号的哲学家先取右手边的筷子,偶数号的哲学家先取左手边的筷子。这样只要有一个哲学家拿到了一支筷子,就阻止了邻座的哲学家吃法的企图,从而不会死锁
20、,除非某哲学家永远吃下去。算法描述如下:eat(i):beginif i mod 2 = 0 thenP(ci)P(ci+1 mod 5)吃饭V(ci+1 mod 5)V(ci)elseP(ci+1 mod 5)P(ci)吃饭V(ci)V(ci+1 mod 5)End另解:最多只允许 4 个哲学家同时要求进餐,这样至少有一位哲学家能取到两只筷子并可以进餐,进餐后释放两只筷子,其他哲学家可以陆续进餐。设哲学家进餐信号量 sm=4;筷子信号量 ci=1(i=0,1,2,3,4)eat(i):beginP(sm)P(ci)P(ci+1 mod 5)吃饭V(ci+1 mod 5)V(ci)V(sm)E
21、nd15什么是线程? 试述线程与进程的区别。答;线程是在进程内用于调度和占有处理机的基本单位,它由线程控制表、存储线程上下文的用户栈以及核心栈组成。线程可分为用户级线程、核心级线程以及用户核心混合型线程等类型。其中用户级线程在用户态下执行,CPU调度算法和各线程优先级都由用户设置,与操作系统内核无关。核心级线程的调度算法及线程优先级的控制权在操作系统内核。混合型线程的控制权则在用户和操作系统内核二者。线程与进程的主要区别有:(1) 进程是资源管理的基本单位,它拥有自己的地址空间和各种资源,例如内存空间、外部设备等;线程只是处理机调度的基本单位,它只和其他线程一起共享进程资源,但自己没有任何资源
22、。(2) 以进程为单位进行处理机切换和调度时,由于涉及到资源转移以及现场保护等问题,将导致处理机切换时间变长,资源利用率降低。以线程为单位进行处理机切换和调度时,由于不发生资源变化,特别是地址空间的变化,处理机切换的时间较短,从而处理机效率也较高。(3) 对用户来说,多线程可减少用户的等待时间。提高系统的响应速度。例如,当一个进程需要对两个不同的服务器进行远程过程凋用时,对于无线程系统的操作系统来说需要顺序等待两个不同调用返回结果后才能继续执行,且在等待中容易发生进程调度。对于多线程系统而言,则可以在同一进程中使用不同的线程同时进行远程过程调用,从而缩短进程的等待时间。(4) 线程和进程一样,
23、都有自己的状态也有相应的同步机制,不过,由于线程没有单独的数据和程序空间,因此,线程不能像进程的数据与程序那样,交换到外存存储空间。从而线程没有挂起状态。(5) 进程的调度、同步等控制大多由操作系统内核完成,而线程的控制既可以由操作系统内核进行,也可以由用户控制进行。思考题:读者与写者关系问题(读者优先)。答:设写者互斥信号量 wm=1;读者计数器 readcount=0;互斥操作readcount 的信号量 rm=1;reader()beginP(rm)Readcount:=readcount+1If readcount=1 then P(wm)V(rm)读数据P(rm)Readcount:
24、=readcount-1If readcount=0 then V(wm)V(rm)endwriter()beginP(wm)写数据V(wm)end第四章1什么是分级调度?分时系统中有作业调度的概念吗?如果没有,为什么? P86答:处理机调度问题实际上也是处理机的分配问题。显然只有那些参与竞争处理及所必需的资源都已得到满足的进程才能享有竞争处理机的资格。这时它们处于内存就绪状态。这些必需的资源包括内存、外设及有关数据结构等。从而,在进程有资格竞争处理机之前,作业调度程序必须先调用存储管理、外设管理程序,并按一定的选择顺序和策略从输入井中选择出几个处于后备状态的作业,为它们分配资源和创建进程,使
25、它们获得竞争处理机的资格。另外,由于处于执行状态下的作业一般包括多个进程,而在单机系统中,每一时刻只能有一个进程占有处理机,这样,在外存中,除了处于后备状态的作业外,还存在处于就绪状态而等待得到内存的作业。我们需要有一定的方法和策略为这部分作业分配空间。因此处理机调度需要分级。一般来说,处理机调度可分为 4 级:(1) 作业调度: 又称宏观调度,或高级调度。(2) 交换调度:又称中级调度。其主要任务是按照给定的原则和策略,将处于外存交换区中的就绪状态或等待状态的进程调入内存,或处于内存就绪状态或等待状态的进程交换到外存交换区。交换调度主要涉及到内存管理与扩充。(3) 进程调度:又称微观调度或低
26、级调度。其主要任务是按照某种策略和方法选取一个处于就绪状态的进程占用处理机。在确立了占用处理机的进程之后,系统必须进行进程上下文切换以建立与占用处理机进程相适应的执行环境。(4) 线程调度:进程中相关堆栈和控制表等的调度。2试述作业调度的主要功能。 P88答: 作业调度的主要功能是:(1)记录系统中各作业的状况。(2)按一定的原则对外存输入井上的大量后备作业进行选择。(3)给选出的作业分配内存、输入输出设备等必要的资源,并建立相应进程,使该作业的相关进程获得竞争处理机的权利。(4)当作业执行完毕时,还负责回收系统资源。3作业调度的性能评价标准有哪些?这些性能评价标准在任何情况下都能反映调度策略
27、的优劣吗?答:调度的性能评价标准:(1)对所有作业应该是公平合理的;(2)应使设备有高的利用率;(3)每天执行尽可能多的作业;(4)有快的响应时间。不能。对于批处理系统,由于主要用于计算,因而对于作业的周转时间要求较高。从而作业的平均周转时间或平均带权周转时间被用来衡量调度程序的优劣。但对于分时系统来说,平均响应时间又被用来衡量调度策略的优劣。对于分时系统,除了要保证系统吞吐量大、资源利用率高之外,还应保证用户能够容忍的响应时间。因此,在分时系统中,仅仅用周转时间或带权周转时间来衡量调度性能是不够的。对于实时系统,衡量调度算法优劣的主要标志则是满足用户要求的时限时间。4进程调度的功能有哪些?
28、P91答:进程调度的功能有:(1)记录和保存系统中所有进程的执行情况; (2)选择占有处理机的进程;(3)进行进程上下文切换。5进程调度的时机有哪几种? P92答:进程调度的时机有:(1)正在执行的进程执行完毕。这时如果不选择新的就绪进程执行,将浪费处理机资源。(2)执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等待状态。(3)执行中进程调用了 P 原语操作,从而因资源不足而被阻塞:或调用了 V原语操作激活了等待资源的进程队列。(4)执行中进程提出 IO 请求后被阻塞。(5)在分时系统中时间片已经用完。(6)在执行完系统调用等系统程序后返回用户程序时,可看做系统进程执行完毕,从而调度选择一新
29、的用户进程执行。(7)在 CPU 执行方式是可剥夺时,还有:就绪队列中的某进程的优先级变得高于当前执行进程的优先级,从而也将引发进 程调度。6假设有 4 道作业,它们的提交时间及执行时间由下表给出:作业号 提交时刻(时) 执行时间(小时)1 10:00 22 10:20 13 10:40 0.54 10:50 0.3计算在单道程序环境下,采用先来先服务调度算法和最短作业优先调度算法时的平均周转时间和平均带权周转时间,并指出它们的调度顺序。答: (1)先来先服务调度:调度顺序: 1、2、3、41 Ts1:10:00 Te1:12:00 Tr1:2 Tw1: 02 Ts2:10:20 Te2:13:00 Tr2:1 Tw2: 1.73 Ts3:10:40 Te3:13:30 Tr3: 0.5 Tw3:2.34 Ts4:10:50 Te4:13:50 Tr4: 0.3 Tw4:2.7