1、1操作系统复习资料一、名词解释1.作业周转时间从作业进入系统开始,到作业完成并退出系统所经历的时间。2.多道程序指在内存中同时存放若干个作业,并使它们同时运行的一种程序设计技术。在单机上,这些作业在宏观上是同时运行的,而实质上它们在交替运行。3.临界区每个进程中访问临界资源的那段代码称为临界区。为了实现各进程对临界资源的互斥访问,应保证各进程在各自进入自己的临界区时互斥。4.进程进程是程序的一次执行,是可以和其他计算并发执行的计算。它可以独立请求并占有系统资源,有独立的数据结构 PCB 登记它所有的信息。5.静态存储分配作业所需的内存空间是在作业调入时分配的,在其整个运行期间,它一直占用,且不
2、能再申请新的内存空间,也不允许在内存中移动。6.物理地址物理地址是内存中各存储单元的编号,即存储单元的真实地址,它是可识别、可寻址并实际存在的。7.文件系统操作系统中负责管理和存取文件信息的软件机构称为文件系统。8.原语是指由若干条机器指令构成的并用以完成特定功能的一段程序,这段程序在执行期间是不可分割的。9名空间程序中由符号名组成的空间称为名空间。10. 进程控制块(PCB)系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。系统利用 PCB 来控制和管理进程,所以 PCB 是系统感知进程存在的唯2一标志。 进程与 PCB 是一一对应的。11. 当前目
3、录为了提高文件检索速度,文件系统向用户提供了一个当前正在使用的目录,称为当前目录。查找一个文件可从当前目录开始,使用部分路径名;当前目录可根据需要任意改变。当前目录一般存放在内存。12. 死锁一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象称为进程死锁,这一组进程就称为死锁进程。13文件控制块文件控制块是操作系统为管理文件而设置的数据结构,存放了为管理文件所需的所有有关信息。文件控制块是文件存在的标志。14系统调用用户程序中对操作系统的调用称为系统调用(system call) 。15中断中断是现代计算机系统中基本设施之一,它起着通讯联络作用,协
4、调系统对各种外部事件的响应和处理。中断是实现多道程序的必要条件。二、简答题1. 程序在顺序执行和并发执行时,各有哪些特征?答:程序顺序执行时具有以下特征:严格的顺序执行时独占系统中全部资源;程序的执行结果和它的执行速度无关;初始环境一定时,多次执行结果不变。总之,系统具有封闭性和可再现性。程序并发执行时具有以下特征:打破了封闭性和可再现性;系统资源不再被一道程序独占;并发执行的程序间由于共享、竞争及合作,带来了制约关系;程序和程序的执行不再一一对应;并发执行中程序具有间断性。2. Dijkstra 的银行家算法的基本思想是什么?它能够用来解决实际中的死锁问题吗?为什么?答:Dijkstra 的
5、银行家算法是解决死锁问题的一种策略,其基本思想是在进行资源分配前,先计算该次分配后系统是否安全,若安全则分配,否则拒绝分配。该算法理论意义很好,但实际中却很难使用。因为算法所假设的条件(例如,进程预3知申请资源的最大数量等)在实际环境中并不成立。故它很难被用在实际中解决死锁问题。3何为分时操作系统?分时系统如何使各终端用户感到是自己独占一台计算机?答:所谓分时操作系统就是把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时中断,把处理机让给另一个作业使用,等待下一轮时再继续其运行。由于计算机速度很快,作业运行轮
6、转也很快,给每个用户的印象是好像他独占了一台计算机。4为什么要在页式存储管理中引入快表?答:为了提高页地址转换速度,在地址变换机构中加入一定数量的高速半导体相关存储器,半导体存储器的存取速度比一般存储器高一个数量级,而且具有并行查询能力。其中存放着正在运行进程中的最常用的部门页面的页号和它的相应块号,构成一张“快表” 。首先在快表中进行匹配,若该页不在相关存储器中,则使用直接映象方法查找进程的页表,找出其块号与页内地址拼成绝对地址,然后访问内存。5什么是重定位?请描述静态重定位和动态重定位的区别?答:把逻辑地址转换成绝对地址的过程称为地址转换,也称为重定位。静态重定位是指作业在装入过程中进行的
7、地址转换,需要由专门设计的重定位装入程序完成,不需要硬件地址变换机构。动态重定位是指在作业执行过程中,当访问指令或数据时才进行的地址变换,需要硬件变换机构实现。6何为实时操作系统?它的应用领域主要是哪些方面?答:实时操作系统指的是应用于对外部事件及时响应并处理的计算机操作系统。它有实时控制系统和信息处理系统两种,其设计目标在于实时相应、实时处理的能力和高可靠性。主要应用于如工业自动化控制、机船订票系统等领域7. 什么叫多道程序设计?它的主要特点是什么?答:多道程序设计指的是让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种程序设计技术称为“多道程序设计” ,这种计算机系统称为“多道程
8、序设计系统”或简称“多道系统” 。多道程序设计主要的特点是:1)主存中同时存放两道或两道以上的程序;2)以上程序宏观上是并行处理的;3)以上程序在微观上是串行执行的。8. 文件目录的作用是什么?一个目录项中应包括哪些信息?答:计算机系统中的文件种类繁多,数量庞大,为了使用户方便地找到所需文件,也4为了系统更好地组织和管理文件,引入了文件目录,因此文件目录的主要作用就是负责对系统内所有文件进行统一管理,使得用户可以方便地按名存取文件。一个目录项中应包含的信息有文件名、有关文件结构的信息、有关存储控制信息、有关管理方面的信息等。9什么是临界资源和临界区?对临界区管理的基本要求是什么?答:临界资源指
9、的是可共享的资源,但一次仅允许一个进程使用(即独占资源) 。临界区是指并发进程中与共享变量有关的程序段。对临界区管理的基本要求是:一次最多让一个进程在临界区执行;任何一个进入临界区执行的进程必须在有限的时间内退出临界区;不能强迫一个进程无限地等待进入临界区。10怎样预防死锁的发生?常用的方法有哪些?答:为了预防死锁的发生,只要破坏产生死锁的四个必要条件之一即可。1) 为了破坏资源使用的互斥性,可采用共享使用法。2) 为了破坏非剥夺控制,可采用剥夺控制。3) 为了破坏“逐次请求”和“环路”条件,可以采用资源静态分配法和资源顺序分配法。三、应用题1. 有一矩阵“int a100100”以行优先形式
10、存储。有一个虚拟存储系统,物理内存共有 3 页,其中 1 页用来存放程序,其余 2 页用来存放数据。假设程序已在内存中占 1 页,其余 2 页空闲。 程序 A:for (i=0;i=99;i+)for (j=0;j=99;j+)ai,j=0;程序 B:for (j=0;j=99;j+)for (i=0;i=99;i+)ai,j=0;若每页可存放 200 个整数,程序 A 和程序 B 的执行过程各会发生多少次缺页?若每页5只能存放 100 个整数呢?以上情况说明了什么问题?解:由题意可知,数组 a 有 100*100=10000 个整数,系统中共有 2 个内存页用于存放数组信息,数组中的元素按行
11、编址。若每页可以存放 200 个整数,则一个内存页中可以存放 2 行数组元素,对于程序 A,数组元素的访问顺序为:a00, a01, a099a10, a11, a199a990, a991, a9999可见,程序 A 对数组 a 的访问顺序与存储顺序是一致的,也是按行进行的。因此程序A 每访问 2 行数组都会发生一次缺页中断,则访问整个数组会产生 100/2=50 次缺页中断。对于程序 B,数组元素的访问顺序为:a00, a10, a990a00, a11, a991a099, a199, a9999可见,程序 B 对数组 a 的访问顺序与存储顺序不一致。因此程序 B 每访问 2 个元素将产
12、生一次缺页中断,则访问整个数组将产生 10000/2=5000 次缺页中断。若每页只能存放 100 个整数,则一个内存页中只能存放 1 行数组元素,对于程序 A,每访问 1 行数组元素都会产生一次缺页中断,则访问整个数组会产生 100 次缺页中断;对于程序 B,每访问 1 个元素将产生一次缺页中断,则访问整个数组将产生 10000 次缺页中断。以上情况说明,缺页中断的次数和数据存放方法及程序访问数据的方法有很大关系;当缺页次数较少时,减小页面大小影响不大,当缺页次数很大时,页面的减小对系统效率及程序的执行会带来很大影响。2设内存中有三道程序 A、B、C,它们按 A、B、C 的优先次序执行。它们
13、的计算和 I/O 操作时间如下表所示(单位:ms) 。 (本题 10 分)三道程序的操作时间表A B C计算 30 60 20I/O 操作 40 30 40计算 10 10 20程序操作6假设三道程序使用相同的设备进行 I/O 操作,即程序以串行方式使用设备,试画出单道运行和多道运行的时间关系图(调度程序的执行时间忽略不计) 。在两种情况下,完成这三道程序各要花多少时间?解: 单道方式运行时,其程序运行时间关系图如下图所示,总运行时间为:30+40+10+60+30+10+20+40+20=260 ms单道运行的时间关系图多道方式运行时,其程序运行时间关系图如下图所示,总运行时间为:30+40
14、+10+20+30+40+20=190 ms若采用多道方式运行这三道程序,因系统按 A、B、C 的优先次序执行,则在运行过程中,无论使用 CPU 还是 I/O 设备,A 的优先级最高,B 的优先级次之, C 的优先级最低。多道运行的时间关系图3. 设有一个信箱只能存放一封信件,只要信箱为空,进程 A 就不断产生信件并送入信箱,只要信箱中有信件,进程 B 就不断从信箱中取走信件进行处理。初始时,信箱为空。试用P、V 操作表达进程 A、B 之间的关系。信号量规则:本题中,设置两个信号量 full、empty,信号量 full 表示信箱中的信件数目,其初值为 0;信号量 empty 表示信箱中的空位
15、置数目,其初值为 1。解:本题信号量规则:设置两个信号量 full、empty,信号量 full 表示信箱中的信件数目,其初值为 0;信I/O计算0 30 70 80 140 170 180 200 240 260A B CAABBCCI/O计算0 30 70 80 100 130 140 170 190A120AB A BB CC B C7号量 empty 表示信箱中的空位置数目,其初值为 1。semaphore empty=1;semaphore full=0;main( )cobeginA( ); A( ) while(true) 产生一封信件; p(emtpy);将信件放入信箱中;v(
16、full); 从信箱中取出一封信件;v(empty); semaphore Spig=0;semaphore Stiger=0;main() CobeginHunter();Peasant();Hotel();Zoo();CoendHunter() 将老虎赶入笼中;V(Stiger); 8Peasant() 将猪赶入笼中;V(Spig); Hotel() 从笼中抓走猪;V(Scage); Zoo() 从笼中抓走老虎;V(Scage); 4. 假定系统中有五个进程P0, P1, P2, P3, P4和四类资源A, B, C, D ,各种资源的数量分别为 3,14,12,12,若系统运行中出现如下
17、表所示的资源分配情况,请问该系统是否安全?如果进程 P1 此时提出资源申请(0,4,2,0) ,请问系统是否能将资源分配给它?为什么? 表:系统资源分配表资源进程Allocation Need AvailableP0 0 0 1 2 0 0 1 2 1 5 2 0P1 1 0 0 0 1 7 5 0P2 1 3 5 4 2 3 5 6P3 0 6 3 2 0 6 5 2P4 0 0 1 4 0 6 5 6解:(1)利用安全性算法对此刻的资源分配情况进行分析,得到如下表所示的安全性检测情况:资源进程Work Need Allocation Work+Allocation FinishP0 1 5
18、 2 0 0 0 1 0 0 0 1 2 1 5 3 2 TureP2 1 5 3 2 2 3 5 6 1 3 5 4 2 8 8 6 TureP3 2 8 8 6 0 6 5 2 0 6 3 2 2 14 11 8 TureP4 2 14 11 8 0 6 5 6 0 0 1 4 2 14 12 12 TureP1 2 14 12 121 7 5 0 1 0 0 0 3 14 12 12 Ture由以上分析可知,该时刻存在着一个安全序列P0,P2,P3,P4,P1,故系统是安全的。(2)如果进程 P1 要求(0,4,2,0) ,系统假定可为 P1 分配资源,按银行家算法进行检查:9Reque
19、st1(0,4,2,0)=Need 1(1,7,5,0)Request1(0,4,2,0)=Available(1,5,2,0)利用安全算法对该时刻资源分配情况进行分析,如下图所示:资源进程Work Need Allocation Work+Allocation FinishP0 1 1 0 0 0 0 1 0 0 0 1 2 1 1 1 2 TureP2 1 1 1 2 2 3 5 6 1 3 5 4 2 4 6 6 TureP3 2 4 6 6 0 6 5 2 0 6 3 2 2 10 9 8 TureP4 2 10 9 8 0 6 5 6 0 0 1 4 2 10 10 12 TureP
20、1 2 10 10 121 3 3 0 1 4 2 0 3 14 12 12 Ture由以上分析可知,可找到一个安全序列P0,P2,P3,P4,P1,故系统能立即满足进程的要求。5. 有两个程序,A 程序按顺序使用 CPU 15 秒,使用设备甲 5 秒,使用 CPU 15 秒,使用设备乙 5 秒,最后使用 CPU 10 秒。B 程序按顺序使用设备甲 12 秒,使用 CPU 15 秒,使用设备乙 10 秒,使用 CPU 15 秒,使用设备乙 5 秒。在顺序执行环境下,先执行 A 程序,再执行 B 程序,问 CPU 的利用率是多少?解:由题目所给条件可知,两个程序顺序执行,先执行程序 A,后执行程序 B。A 程序的执行时间为:15+5+15+5+10=50 秒其中使用 CPU 的时间为:15+15+10=40 秒B 程序的执行时间为:12+15+10+15+5=57 秒其中使用 CPU 的时间为:15+15=30 秒两个程序的总执行时间为:50+57=107 秒其中使用 CPU 时间为:40+30=70 秒故 CPU 利用率为:70/107*100%=65.42%6. P122-P123 例 4-1-例 4-4