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