操作系统之进程的描述和控制

2019-07-14 07:56发布

注:本文章内容来自西安电子科技大学出版社《计算机操作系统》
(1)什么是前趋图?为什么要引入前趋图? 前趋图:指一个有向无循环图,可记为DAG(Directed Acyclic Graph),用于描述进程之间执行的先后顺序。图中的每个结点可用来表示一个进程或程序段,乃至一条语句,结点间的有向边则表示两个结点之间存在的偏序或前趋关系。
(2)试画出下面四条语句的前趋图:

(3)为什么程序并发执行为产生间断性特征?
程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的程序之间形成相互制约的关系。如上图中,I,C,P是三个相互合作的程序,当计算机完成C1的计算的时候,如果I2还没有完成输入,就不能操作C2,此时就要暂停执行。只有当使程序暂停的因素消失后,才能继续执行。因此,相互制约将导致并发程序具有“执行--->暂停--->执行”这种间断性的活动规律。
(4)程序并发执行时为什么会失去封闭性和可再现性? 当系统中存在多个可以并发执行的程序时,系统的资源一起共享,这些资源的状态也由这些程序改变,致使其中任一程序在运行时,其环境都必然会受到其它程序的影响。例如,当处理机已被分配给某个进程运行时,其它程序必须等待。显然,程序的运行已失去了封闭性。
(5)在操作系统中为什么要引入“进程”的概念,它会产生什么影响? 程序在并发执行时,由于失去封闭性,也将导致失去可再现性。 例如,现在有两个循环程序A和B,它们共享一个变量N。程序A每执行一次时,都要做N=N+1操作;程序B每执行一次时,都要执行Print(N)操作,然后再将N置成0.出现三种情况: 1.N=N+1在Print(N)和N=0之前:N+1,N+1,0 2.N=N+1在Print(N)和N=0之后 : N,0,1 3.N=N+1在Print(N)和N=0之间:N,N+1,0 上述情况说明:程序在并发执行时,由于失去封闭性,其计算结果必将与并发程序的执行速度有关,从而能使程序的执行失去可再现性。也就是说,程序经过多次执行后,虽然它们执行时的环境和初始条件相同,但得到的结果各不相同。
(6)试从动态性,并发性和独立性上比较进程和程序? 1.动态性:进程的实质是进程实体的执行过程,动态性是进程的最基本的特征。进程实体有一定的生命周期,而程序则只是一组有序指令的集合,并存放在某种介质上,其本身并不具有活动的含义,因而是静态的。 2.并发性:是指多个进程实体同存于内存中,且能在一段时间内同时运行。程序(没有PCB)是不能参与并发执行的。 3.独立性:进程实体是一个独立运行、独立获得资源和独立接受调度的基本单位。凡未建立PCB的程序都不能作为一个独立的单元参与运行。
(7)试说明PCB的作用具体表现在哪几个方面,为什么说PCB是进程存在的唯一标志? 1.作为独立运行基本单位的标志。 2.能实现间断性运行方式。 3.提供进程管理所需要的信息。 4.提供进程调度所需要的信息。 5.实现与其它进程的同步与通信。
当系统创建一个新进程时,就为它建立了一个PCB。进程结束时又回收其PCB,进程也随之消亡。系统是通过PCB感知进程的存在的。
(8)PCB提供了进程管理和进程调度所需要的哪些信息? 当调度程序调度到某进程运行时,只能根据该进程PCB中记录的程序和数据在内存或外存中的始址指针,找到相应的程序和数据;在进程运行过程中,当需要访问文件系统中的文件或I/O设备时,也都需要借助于PCB中的信息。另外,还可根据PCB中的资源清单了解到该进程所需要的全部资源等。 1.进程标识符 2.处理机状态 3.进程调度信息 4.进程控制信息
(9)进程控制块的组织方式有哪几种? 1.线性方式 2.链接方式 3.索引方式
(10)何谓操作系统内核?内核的主要功能是什么? 通常将一些与硬件紧密相关的模块(如中断处理程序等)、各种常用设备的驱动程序以及运行频率较高的模块(如时钟管理、进程调度和许多模块所公有的一些基本操作),都安排在紧靠硬件的软件层次中,将它们常驻内存,即通常被称为OS内核。 两大方面的功能: 1.支撑功能:中断处理、时钟管理、原语操作。 2.资源管理功能:进程管理、存储器管理、设备管理。
(11)试说明进程在三个基本状态之间转换的典型原因。
处于就绪状态的进程,在调度程序为之分配了处理机之后便可执行,相应地,其状态就由就绪状态转变为执行态;正在执行的进程(当前进程)如果因分配给它的时间片已完而被剥夺处理机暂停执行时,其状态便由执行转为就绪;如果因发生某事件,致使当前进程的执行受阻(例如进程访问某临界资源,而该资源正被其他进程访问时),使之无法继续进行,则该资源由执行转为阻塞。
(12)为什么要引入挂起状态?该状态有哪些性质? 原因:1.终端用户的需要 2.父进程请求 3.负荷调节的需要 4.操作系统的需要 性质:当该操作作用于某个进程时,该进程将被挂起,意味着此时该进程处于静止状态。如果进程正在执行,它将暂停执行。若原本处于就绪状态,则该线程此时暂不接受调度。
(13)在进行进程切换时,所要保存的处理机状态信息有哪些? 处理机状态信息主要包括进程运行过程中处理机的各种寄存器中的内容:   ①通用寄存器, ②指令计数器, ③程序状态字PSW ④用户栈指针。 处理状态信息主要包括进程运行过程中处理机的各种寄存器中的内容:1通用寄存器 2.指令计数器 3程序状态字PSW 4.用户栈指针
(14)试说明引起进程创建的主要事件。 1.用户登录 2.作业调度  3.提供服务  4.应用请求
(15)试说明引起进程被撤销的主要事件。 1.正常结束,表示进程的任务已经完成,准备退出运行。 2.异常结束,是指进程在运行时发生了某种异常事件,使程序无法继续运行。 3.外界干预,是指进程应外界的请求而终止运行。
(16)在创建一个进程时所要完成的主要工作是什么? 1.申请空白PCB  2.位新进程分配其运行所需的资源  3.初始化进程控制块(PCB)  4.如果进程就绪队列能够接纳新进程,边将新进程纳入就绪队列。
(17)在撤销一个进程时所要完成的主要工作是什么? 1.根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。 2.若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。 3.若该进程还有子孙进程,还应将其所有子孙进程也都予以终止,以防它们成为不可控的进程。 4.将被终止进程所拥有的全部资源或者归还给其父进程,或者归还给系统。 5.将被终止进程(PCB)从所在队列(或链表)移出,等待其他程序来搜集信息。
(18)试说明引起线程阻塞或被唤醒的主要事件是什么? 1.向系统请求共享资源失败。 2.等待某种操作的完成。 3.新数据尚未到达。 4.等待新任务的到达。
(19)为什么要在OS中引入线程? 为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。
(20)试说明线程具有哪些属性? 1.轻权实体 2独立运行,调度单位 3可以并发执行 4可共享所属进程的资源
(21)试从调度性、并发性、拥有资源及系统开销方面对进程和线程进行比较。 1.调度性:线程作为调度和分派的基本单位,线程是独立运行的基本单位。 2.并发性:在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,甚至还允许一个进程中的所有线程都能并发执行。不同进程的线程也能并发执行。使得OS具有更好的并发性,从而更能有效地提高系统资源的利用率和系统的吞吐量。 3.拥有资源:进程可以拥有资源,并作为系统中拥有资源的一个基本单位。线程本身并不拥有系统资源,而是仅有一点必不可少的,能保证独立运行的资源。 4.系统开销:在创建或撤销进程时,系统都要为之分配和回收进程控制块、分配或回收其它资源。在进程切换时,涉及到进程上下文切换,而线程的切换代价也远低于进程的。一个进程中的多个线程具有相同的地址空间,线程之间的同步和通信也比进程简单。
(22)线程控制块TCB中包含哪些内容? 1.线程标识符 2.一组寄存器 3.线程运行状态 4.优先级 5.线程专有存储区 6.信号屏蔽 7.堆栈指针
(23)何谓用户级线程和内核支持线程? 用户级线程:在内核的支持下运行的,它们的创建、阻塞、撤销和切换也都是在内核空间实现的。 内核支持线程:在用户空间中实现的。对线程的创建、撤销、同步和通信等功能,都无需内核的支持,即用户级线程与内核无关。
(24)试说明用户级线程的实现方法? 用户线程是在用户空间实现的,所有的用户级线程都具有相同的结构,它们都运行在一个中间系统上。当前有两种方式实现中间系统,即运行时系统和内核控制线程。
(25)试说明内核支持线程的实现方法? 在仅设置了内核支持线程的OS中,一种可能的线程控制方法是,系统在创建一个新线程时,便为它分配一个任务数据区PTD(Per Task Data Area),其中包括若干个线程控制块TCB空间,在每一个TCB中可保存线程标识符、优先级、线程运行的CPU状态等信息。
(26)多线程模型有哪几种类型?多对一模型有何优缺点? 多对一模型、一对一模型和多对多模型 优点:线程管理开销小,效率高