1、OS(操作系统)的作用可表现在哪几个方面?(1.2)(1)OS作为用户与计算机硬件系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象2、试说明推动多道批处理系统形成和发展的主要动力是什么?答:主要动力来源于四个方面的社会需求与技术发展:(1.4)答:主要动力来源于四个方面的社会需求与技术发展(1)不断提高计算机资源的利用率;(2)方便用户;(3)器件的不断更新换代;(4)计算机体系结构的不断发展。3、OS有哪几大特征?其最基本的特征是什么?(1.11)答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性4、什么是微内核OS?(1.20)答:1、足够小的内核;2、基于客户/服务器模式;3、应用机制与策略分离原理;4、采用面向对象技术5、何谓微内核技术?在微内核中通常提供了哪些功能?(1.25)答:把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。在微内核中通常提供了进程(线程)管理、低级存储器管理、中断和陷入处理等功能。6、画出下面四条语句的前趋图:(2.2)S1:a=x+y;S2:b=z+1;S3:c=a–b;S4:w=c+1;7、试说明PCB的作用具体表现在哪几个方面?为什么说PCB是进程存在的唯一标志?(2.7)答:PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使一个多道程序环境下不能独立运行的程序,为一个能独立运行的基本单位,成为能与其它进程并发执行的进程。OS是根据PCB对并发执行的进程进行控制和管理的.8、试说明进程在三个基本状态之间转换的典型原因(2.11)答:1、就绪状态→执行状态:进程分配到CPU资源2、执行状态→就绪状态:时间片用完3、执行状态→阻塞状态:I/O请求4、阻塞状态→就绪状态:I/O完成9、试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较。(2.21)SSSS答:1、调度性。线程在OS中作为调度和分派的基本单位,进程只作为资源拥有的基本单位2、并发性。进程可以并发执行,一个进程的多个线程也可并发执行。3、拥有资源。进程始终是拥有资源的基本单位,线程只拥有运行时必不可少的资源,本身基本不拥有系统资源,但可以访问隶属进程的资源4、系统开销。操作系统在创建、撤消和切换进程时付出的开销显著大于线程。10、何谓用户级线程和内核支持线程?(2.23)答:1、用户级线程:仅存在于用户空间中的线程,无须内核支持。这种线程的创建、撤销、线程间的同步与通信等功能,都无需利用系统调用实现。用户级线程的切换通常发生在一个应用进程的诸多线程之间,同样无需内核支持。2、内核支持线程:在内核支持下运行的线程。无论是用户进程中的线程,还是系统线程中的线程,其创建、撤销和切换等都是依靠内核,在内核空间中实现的。在内核空间里还为每个内核支持线程设置了线程控制块,内核根据该控制块感知某线程的存在并实施控制。11、高级调度与低级调度的主要任务是什么?为什么要引入中级调度?(3.1)答:高级调度的主要任务是根据某种算法,把外存上处于后备队列中的那些作业调入内存。低级调度是保存处理机的现场信息,按某种算法先取进程,再把处理器分配给进程。引入中级调度的主要目的是为了提高内存利用率和系统吞吐量。使那些暂时不能运行的进程不再占用内存资源,将它们调至外存等待,把进程状态改为就绪驻外存状态或挂起状态。12、试比较FCFS和SPF两种进程调度算法(3.12)答:相同点:两种调度算法都可以用于作业调度和进程调度。不同点:FCFS调度算法每次都从后备队列中选择一个或多个最先进入该队列的作业,将它们调入内存、分配资源、创建进程、插入到就绪队列。该算法有利于长作业/进程,不利于短作业/进程。SPF算法每次调度都从后备队列中选择一个或若干个估计运行时间最短的作业,调入内存中运行。该算法有利于短作业/进程,不利于长作业/进程。13、何谓死锁?产生死锁的原因和必要条件是什么?(3.27)答:死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。产生死锁的原因为竞争资源和进程间推进顺序非法。必要条件是:互斥条件、请求和保持条件、不剥夺条件、环路等待条件14答案:(1)安全,因为存在安全序列{P0,P3,P4,P1,P2}(2)系统能分配,分析如下:①Request(1,2,2,2)=Need2(2,3,5,6);②Request(1,2,2,2)=Available2(1,3,5,4)改成Available2(1,6,2,2);③系统先假定可为P2分配资源,并修改Available2,Allocation2和Need2向量,由此形成的资源变化情况如下图所示:ProcessAllocationneedAvailableP0003200120400P110001750P225762356P303320652P400140656再利用安全性算法检查此时系统是否安全。如下图ProcessWorkAllocationNeedWork+AllocationFinishP20400257623562976trueP029760032001229108trueP1391081000175039108trueP339108033206523121310trueP43121310001406563121414true由此进行的安全性检查得知,可以找到一个安全序列{P2,P0,P3,P4}15、何谓静态链接?静态链接时需要解决的两个问题?(4.3)答:静态链接是指在程序运行前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。需要解决的两个问题:1、将相对地址进行修改。即将除第一个模块外的相对地址修改成装入模块中的相应的相对地址。2、变换外部调用符号。即将每个模块中所用的外部调用符号,都变换为相对地址16、何谓装入时动态链接?装入时动态链接有何特点?(4.4)装入时动态链接是指将用户源程序编译后得到的一组目标模块,在装入内存时采用边装入边链接的链接方式优点:①便于修改和更新。采用动态链接方式,由于各目标模块是分开存放的,所以要修改或更新个目标模块是件非常容易的事。②便于实现对目标模块的共享。再采用静态链接方式时,每个应用模块都必须含有其目标模块的拷贝,无法实现对目标模块的共享。但采用装入时动态链接方式时,OS就很容易将一个目标模块链接到几个应用模块上,实现多个应用程序对该模块的共享。17、何谓运行时动态链接?(4.5)运行时动态链接是指对某些目标模块的链接,是在程序执行中需要该目标模块时,才对它进行的链接优点:能加快程序的装入过程,而且可节省大量的内存空间18、为什么要引入动态重定位?如何实现?(4.7)在动态运行时装入的方式中,作业装入内存后的所有地址仍然都是相对(逻辑)地址。而将相对地址转换为绝对(物理)地址的工作被推迟到程序指令要真正执行时进行。为使地址的转换不会影响到指令的执行速度,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放数据在内存中的起始地址。程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。地址变换过程是在程序执行期间,随着对每条指令或数据的访问自动进行的,故称为动态重定位。当系统对内存进行了“紧凑”,而使若干程序从内存的某处移至另一处时,不需对程序做任何修改,只要用该程序在内存中的新起始地址去置换原来的起始地址即可。19、什么是页面?什么是物理块?页面的大小应如何确定?(4.18)(1)页面。分页存储管理将进程的逻辑空间分成若干个页,并为各页加以编号,从0开始,如第0页、第1页等。(2)物理块。相应的,也把内存的物理地址空间分成若干个块,同样也为它们加以编号,如0#块、1#块等等。(1)页面大小。在分页系统中,若选择过小的页面大小,虽然一方面可以减小内存的碎片,起到减少内存碎片总空间的作用,有利于内存利用率的提高,但另一方面却会造成每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存。此外,还会降低页面的换进换出的效率。然而,如果选择的页面过大,虽然可以减少页表的长度,提高页面换进换出的效率,但却又会使页内碎片增大。因此,页面的大小应选择适中,且页面大小应是2的幂,通常为1KB~8KB20、什么是页表?页表的作用是什么?(4.19)在分页系统中,允许将进程的各个页离散的存储在内存的任一物理块中,为保证进程仍然能够正确地运行,即能在内存中找到每个页面所对应的物理块,系统又为每个进程建立了一张页面映像表,简称页表。在进程地址空间内的所有页(0~N),依次在页表中有一页表项,其中记录了相应页表在内存中对应的物理块号。在配置了页表后,进程执行时,通过查找该表,即了找到每页在内存中的物理块号。可见,也表的作用是实现从页号到物理块号的地址映射。21、在分页系统中是如何实现地址变换的?(4.21)页表功能是由一组专门的寄存器来实现的。一个页表项用一个寄存器。由于寄存器具有较高的访问速度,因而有利于提高地址变换的速度,但由于寄存器成本较高,页表又可能很大,因此,页表大多驻留在内存中,在系统中只设置一个页表寄存器,在其中存放页表在内存的始址和页表的长度。当进程要访问某个逻辑地址中的数据时,分页地址变换机构会自动将有效地址分为页号和页内地址两部分,再以页号为索引去检索页表。查找操作由硬件执行。在执行检索之前,先将页号与页表长度进行比较,如果页号大于或等于页表长度,则表示本次所访问的地址已超越进程的地址空间。于是,这一错误将被系统发现,并产生已地址越界中断。若未出现越界中断,则将页表始址与页号和页表项长度的乘积相加,便得到该表项在页表中的位置,于是可从中得到该页的物理块号,将之装入物理地址寄存器中。与此同时,再将有效地址寄存器中的页内地址送入物理地址寄存器的块内地址字段中。这样便完成了从逻辑地址到物理地址的变换。22、分页和分段存储管理有何区别?(4.26)(1)页是信息的物理单位,采用分页存储管理方式是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。或者说,分页仅仅只是系统管理上的需要,完全是系统的行为,多用户是不可见的。而段是信息的逻辑单位。它通常包含的是一组意义相对完整的信息。分段的目的主要在于能更好地满足用户的需要。(2)页的大小固定而且由系统决定,在采用分页存储管理系统中,在硬件结构上,就是把用户程序的逻辑地址划分为页号和页内地址两部分,是直接由硬件实现的,因而在每个系统中只能有一种大小的页面。而段的大小不固定,通常由编译程序根据信息的性质来划分。(3)分页用户程序地址空间是一维的,分页完全是系统的行为,故在分页系统中,用户程序的地址是属于单一的线性地址空间,程序员只需利用一个记忆符即可表示一个地址。而分段是用户的行为,故在分段系统中,用户程序的地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。23、虚拟存储器有哪些特征?其中最本质的特征是什么?(5.3)答:多次性、对换性、虚拟性三大特征。最本质的特征是虚拟性。24、在请求分页系统中,页表应包括哪些数据项?每项的作用是什么?(5.6)答:页表应包括:页号、物理块号、状态位P、访问字段A、修改位M和外存地址。其中状态位P指示该页是否调入内存,供程序访问时参考;访问字段A或最近已有多长时间未被访问,用于记录本页在一段时间内被访问的次数,提供给置换算法选择换出页面时参考;修改位M表示该页在调入内存后是否被修改过;外存地址用于指出该页在外存上的地址,通常是物理块号,供调入该页时使用。25、试说明请求分页系统中地址变换过程?(5.8)(1)在进行地址变换时,首先检索快表,试图从中找出所要访问的页。若找到,便修改页表项中的访问位,供置换算法选换出页面时参考。对于写指令,还须将修改位置成“1”,表示该页在调入内存后已被修改。让后利用页表项中给出