第第二二章章进进程程管管理理5.在操作系统中为什么要引入进程概念?它会产生什么样的影响?为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,从而在操作系统中引入了进程概念。影响:使程序的并发执行得以实行。6.试从动态性,并发性和独立性上比较进程和程序?a.动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,是静态实体。b.并发性是进程的重要特征,同时也是OS的重要特征。引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身是不能并发执行的。c.独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。13.在创建一个进程时所需要完成的主要工作是什么?(1)操作系统发现请求创建新进程事件后,调用进程创建语句2,申请空白PCB(进程控制块)3,为新进程分派资源;4初始化PCB;d,将新进程插入就绪队列;14.在撤销一个进程时所需要完成的主要工作是什么?A.os调用进程终止语句B.根据被终止进程的标识符,从PCB集合中检索出该进程的PCB从中读出该进程状态C.若被终止进程正处于执行状态,应立即终止该进程的执行并设置调度标志为真D.若该进程还有子孙进程还应经所有子孙进程终止E.将该进程所拥有的全部资源或者归还给其父进程,或者还给系统F将被终止的进程从所在的队列移出,等待其他进程搜索信息15:试说明引起进程阻塞或被唤醒的主要事件是什么?A.请求系统服务B.启动某种操作C.新数据尚未到达D无新工作可做26.试修改下面生产者——消费者问题解法中的错误:producer:beginrepeat……produceaniteminnextp;wait(mutex);wait(full);buffer(in):=nextp;……signal(mutex);untilfalse;endconsumer:beginrepeat……wait(mutex);wait(empty);nextc:=buffer(out);out:=out+1;signal(mutex);consumeiteminnextc;untilfalse;e36.为什么要在OS中引入线程?在OS中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量。在OS中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。37:试说明线程具有哪些属性?A.轻型实体b独立调度和分派的基本单位c可并发执行d共享进程资源38.试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较.a.调度性。在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程,在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位;b.并发性。在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,亦可并发执行,因而使OS具有更好的并发性;c.拥有资源。无论是传统的操作系统,还是引入了线程的操作系统,进程始终是拥有资源的一个基本单位,而线程除了拥有一点在运行时必不可少的资源外,本身基本不拥有系统资源,但它可以访问其隶属进程的资源;d.开销。由于创建或撤销进程时,系统都要为之分配和回收资源,如内存空间等,进程切换时所要保存和设置的现场信息也要明显地多于线程,因此,操作系统在创建、撤消和切换进程时所付出的开销将显著地大于线程。第第三三章章处处理理机机调调度度与与死死锁锁2;何为作业.业步和作业流?答:A:通常的程序和数据,还配有作业说明书,系统根据说明书对程序的进程进行控制。批处理系统中以作业为基本单位从外存入内存B.作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤C.作业流是指若干个作业进入系统后一次存放在外存上进行的输入作业流在操作系统的控制下逐个作业进程处理,于是形成了处理作业流。7:在选择调度方式和算法时,应遵循的准则是什么?答:A.面向用户的准则周转时间短、响应时间快、截止时间的保证、优先权准则B:面向系统的准则:系统吞吐量高、处理机效率好、各类资源的平衡利用8:在批处理系统、分时系统和实时系统中各采用哪几种进程(作业)调度算法?答:批处理:短作业优先、优先权、高响应比优先、多级反馈队列调度算法分时:时间片轮转法实时:最早截止时间优先即EDF、最低松弛度优先即LLF算法15.按调度方式可将实时调度算法分为哪几种?按调度方式不同,可分为非抢占调度算法和抢占调度算法两种。18.何谓死锁?产生死锁的原因和必要条件是什么?a.死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进;b.产生死锁的原因有二,一是竞争资源,二是进程推进顺序非法;c.必要条件是:互斥条件,请求和保持条件,不剥夺条件和环路等待条件。19.在解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法是资源利用率最高?解决/处理死锁的方法有预防死锁、避免死锁、检测和解除死锁,其中预防死锁方法最容易实现,但由于所施加的限制条件过于严格,会导致系统资源利用率和系统吞吐量降低;而检测和解除死锁方法可是系统获得较好的资源利用率和系统吞吐量。22.在银行家算法中,若出现下述资源分配情:ProcessAllocationNeedAvailableP0003200121622P110001750P213542356P303320652P400140656试问:⑴该状态是否安全?⑵若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?⑴该状态是安全的,因为存在一个安全序列P0P3P4P1P2。下表为该时刻的安全序列表。资源情况进程WorkNeedAllocationWork+AllocationFinishP0P3P4P1P2162216541987199112991100120652065617502356003203330014100013541654198719911299113121417truetruetruetruetrue⑵若进程P2提出请求Request(1,2,2,2)后,系统不能将资源分配给它,若分配给进程P2,系统还剩的资源情况为(0,4,0,0),此时系统中的资源将无法满足任何一个进程的资源请求,从而导致系统进入不安全状态,容易引起死锁的发生。第第四四章章存存储储器器管管理理6.为什么要引入动态重定位?如何实现?a.程序在运行过程中经常要在内存中移动位置,为了保证这些被移动了的程序还能正常执行,必须对程序和数据的地址加以修改,即重定位。引入重定位的目的就是为了满足程序的这种需要。b.要在不影响指令执行速度的同时实现地址变换,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中的起始地址。程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。15:在具有快表的段页式存储管理方式中,如何实现地址变换?答:在CPU给出的有效地址后,由地址变换机结构自动将页P送入高速缓冲寄存器,并将此页号与高速缓冲的所有页号比较,若找到匹配的页号,表示要访问的页表在快表中。可直接从页表中该页对应的物理块号,送到物理地址寄存器中。如快表中没有对应页表项,则再访问内存页表,找到后,把从页表项读出物理块号送地址寄存器;同时修改快表,将此页表项存入快表。但若寄存器已满,则OS必须找到合适的页表项换出。16.为什么说分段系统较之分页系统更易于实现信息共享和保护?a.对于分页系统,每个页面是分散存储的,为了实现信息共享和保护,则页面之间需要一一对应起来,为此需要建立大量的页表项;b.而对于分段系统,每个段都从0开始编址,并采用一段连续的地址空间,这样在实现共享和保护时,只需为所要共享和保护的程序设置一个段表项,将其中的基址与内存地址一一对应起来即可。18.试全面比较连续分配和离散分配方式。a.连续分配是指为一个用户程序分配一个连续的地址空间,包括单一连续分配方式和分区式分配方式,前者将内存分为系统区和用户区,系统区供操作系统使用,用户区供用户使用,是最简单的一种存储方式,但只能用于单用户单任务的操作系统中;分区式分配方式分为固定分区和动态分区,固定分区是最简单的多道程序的存储管理方式,由于每个分区的大小固定,必然会造成存储空间的浪费;动态分区是根据进程的实际需要,动态地为之分配连续的内存空间,常用三种分配算法:首次适应算法,该法容易留下许多难以利用的小空闲分区,加大查找开销;循环首次适应算法,该算法能使内存中的空闲分区分布均匀,但会致使缺少大的空闲分区;最佳适应算法,该算法也易留下许多难以利用的小空闲区;b.离散分配方式基于将一个进程直接分散地分配到许多不相邻的分区中的思想,分为分页式存储管理,分段存储管理和段页式存储管理.分页式存储管理旨在提高内存利用率,满足系统管理的需要,分段式存储管理则旨在满足用户(程序员)的需要,在实现共享和保护方面优于分页式存储管理,而段页式存储管理则是将两者结合起来,取长补短,即具有分段系统便于实现,可共享,易于保护,可动态链接等优点,又能像分页系统那样很好的解决外部碎片的问题,以及为各个分段可离散分配内存等问题,显然是一种比较有效的存储管理方式;c.综上可见,连续分配方式和离散分配方式各有各自的特点,应根据实际情况加以改进和利用.26.在一个请求分页系统中,采用FIFO页面置换算法时,假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数M分别为3和4时,试计算在访问过程中所发生的缺页次数和缺页率,并比较所得结果。4321435432154441115553334442222233314444555511M=3M=4333344445222233331111222M=3时,采用FIFO页面置换算法的缺页次数为9次,缺页率为75%;M=4时,采用FIFO页面置换算法的缺页次数为10次,缺页率为83%。由此可见,增加分配给作业的内存块数,反而增加了缺页次数,提高了缺页率,这种现象被称为是Belady现象。30:如何实现分段共享?答:可在每个进程的段表中,用相应的表项来指向共享段在内存中起始地址;配置相应的数据结构作为共享段表,可在段表项中设置共享进程计数Count,每调用一次该共享段,Count指增1,每当一个进程释放一个共享段时,Count执行减1操作,若减为0,则由系统回收该共享段的物理内存,以及取消在共享段表中该段所对应的表项;对于一个共享段,应给不同的进程以不同的存取权限;不同的进程可以使用不同的段号去共享该段.第五章设备管理7.有哪几种I/O控制方式?各适用于何种场合?答:I/O控制方式:程序I/O方式、中断驱动I/O控制方式、DMAI/O控制方式、I/O通道控制方式。程序I/O方式适用于早期的计算机系统中,并且是无中断的计算机系统;中断驱动I/O控制方式是普遍用于现代的计算机系统中;DMAI/O控制方式适用于I/O设备为块设备时在和主机进行数据交换的一种I/O控制方式;当I/O设备和主机进行数据交换是一组数据块时通常采用I/O通道控制方式,但此时要求系统必须配置相应的通道及通道控制器18:试说明SPOOLing系统的组成以及作用答:(1)输入井和输出井:为磁盘上开辟的两大存储空间,分别模拟脱机输入/出时的磁盘,并用于收容I/O设备输入的数据和用户程序的输出数据作用:将输入设备上的信息写到外存输入井中(2)输入缓冲区和输出缓冲区:输入缓冲区和输出缓冲区,在内存中开辟,分别用于暂存由输入设备和输出井送来的数据作用:系统或用户程序从外存输入井中读出信息(3)输入进程SPi和输出进程Spo:入进程SPi和输出进程SPo,分别模拟脱机输入/出时的外围控制机,用于控制I/O过程作用:系统或用户程序将输出