2 试画出下面四条语句的前驱图:
S1:a=x+y;
S2:b=z+1;
S3:c=a-b;
S4:w=c+1;
答:
3 为什么程序并发执行会产生间断性特征?
答:因为程序在并发执行的时候,它们共享系统资源,并且为完成同一项任务相互合作,导致这些并发程序之间形成了相互制约的关系,从而使进程在执行期间出现间断性。比如A程序的执行需要B、C、D程序同时完成的前提条件,当其中人任何一个还未完成时,A程序就无法执行,必须暂停运行,由此可见,相互制约将导致并发程序具有“执行——暂停——执行”这种间断性活动规律。
5 在操作系统中为什么要引入进程概念?它会产生什么样的影响?
答:因为在多道程序环境下,程序的执行属于并发执行,此时它们将失去封闭性,具有间断性,以及运行结果不可再现的特性。所以,通常的程序无法参与到并发执行当中。为了使得程序在多道程序环境下可以并发执行,并且可以对并发执行的程序加以描述和控制,从而在操作系统中引入了进程的概念。
在操作系统中引入进程后,可以使得程序的并发执行得以实行。
10 何谓操作系统内核?内核的主要功能是什么?
答: 操作系统内核是被安排在紧靠硬件的软件层次中、常驻内存的一些与硬件紧密相关的模块、各种常用设备的驱动程序以及运行频率较高的模块。
内核的主要功能:支撑功能和资源管理功能。支撑功能提供OS众多模块所需要的基本功能,以支撑这些模块工作,其中包括中断处理,时钟管理和原语操作;资源管理功能包括进程管理、存储器管理和设备管理。
11 试说明进程在三个基本状态之间转换的典型原因。
答: a.就绪状态转为执行状态:进程调度,调度程序为其分配了处理机
b.执行状态转为就绪状态:分配的时间片已被用完而被剥夺处理机暂停执行时
c.执行状态转为阻塞状态:I/O请求等使当前进程无法执行
d.阻塞状态转为就绪状态:I/O完成。
12 为什么要引入挂起状态?该状态有哪些性质?
答: 引入挂起状态的原因:基于系统和用户的需要:内存资源紧张,无就绪进程,处理器空闲,终端用户的需要,父进程的请求,负荷调节的需要,操作系统的需要。
处于挂起状态的进程具有处于静止状态,主动放弃CPU调度,不能被处理机调度的性质。
13在进行进程切换时,所要保存的处理机状态信息有哪些?
答: 在进程切换的时候,所要保存的处理机状态信息有各种寄存器的内容,包括通用寄存器,指令寄存器,程序状态字,用户栈指针。
14 试说明引起进程创建的主要事件?
答: 引起进程创建的主要事件大致有四类:用户登录、作业调度、提供服务和应用请求。
用户登录:在分时系统中,用户在终端登录成功,系统则将建立一个进程并将其插入到就绪队列中;作业调度:在多道批处理系统中,当作业调度程序按一定算法调度某个作业到内存,并创建进程,插入到就绪队列中;提供服务:当运行中的用户程序提出某种请求,系统将专门创建一个进程来完成本次请求;应用请求:由用户进程自己创建新进程,以便使新进程同创建者进程并发运行的方式完成特定任务。
16 在创建一个进程时所要完成的主要工作是什么?
答: (1)申请空白PCB,为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB;
(2)为新进程分配其运行所需的资源,包括各种物理和逻辑资源,如内存、文件、I/O设备和CPU时间等;
(3)初始化PCB,包括初始化标识信息、处理机状态信息和处理机信息;
(4)如果进程就绪队列能够接纳新进程,便将其插入就绪队列。
17在撤销一个进程时所要完成的主要工作是什么?
答: (1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态;
(2)如被撤销的进程正处于执行状态,应立即终止该进程的执行,并设置调度标志为真,用于指示该进程被终止后重新进行调度;
(3)如该进程还有子孙进程,还应将其所有子孙进程都终止,防止其成为不可控进程;
(4)将被终止的进程拥有的全部资源或归还给父进程,或归还给系统;
(5)将被终止的进程从所在队列移出,等待其他程序来搜集信息。
19 为什么要在OS中引入线程?
答: 为了提高程序并发执行的程度,减少程序在并发执行时所付出的时空开销,以进一步改善系统的服务质量和使OS具有更好的并发性,因而比进程更小的基本单位——线程概念被提出
20 试说明线程具有哪些属性?
答: 线程具有轻型实体、独立调度和分配的基本单元、可并发执行、共享进程的内存地址空间和资源、系统开销少。
21 试从调度性、并发性、拥有资源性及系统开销方面对进程和线程进行比较。
答: 调度性:进程是一个可独立调度和分配的基本单位,每次调度时,都需要进行上下文切换,开销较大;线程是能独立运行的基本单位,在切换时只需要保存少量寄存器内容,切换代价远低于进程;
并发性:在引入了线程的OS中,进程之间可以并发执行,在一个进程中的多个甚至全部线程之间也可以并发执行,不同进程之间的线程也可以并发执行;
拥有资源性:进程是一个拥有资源的独立单位,线程本身并不拥有系统资源,仅有一点必不可少的、能保证独立运行的资源,同时允许多个进程共享该进程所拥有的资源;
系统开销:在创建和撤销进程时,系统都要为之分配和回收进程控制块、分配或回收其他资源,线程创建和撤销所使用的系统开销远小于进程。
22 线程控制块TCB中包含了哪些资源?
答: 线程控制块TCB中包含了线程标识符,为每个线程赋予一个唯一的线程标识符;一组寄存器,包括PC、状态寄存器、通用寄存器的内容;线程运行运行状态;优先级、线程专有存储区、信号屏蔽和堆栈指针。
23 何谓用户级线程和内核支持线程?
答: 用户级线程:是指对线程的创建、撤销、同步与通信等功能,都无需内核的支持,是在用户控件内实现的,不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程;
内核支持线程:进程由操作系统的内核支持运行,其创建、阻塞、撤销和切换等,都是在内核空间实现的,内核维护进程及线程的上下文信息以及线程切换,同时,一个内核线程由于I/O操作而阻塞,不会影响其它线程的运行。
24 试说明用户级线程的实现方法。
答:用户级线程是在用户空间中的实现的,所有的用户级线程都运行在一个中间系统上,运行时系统与内核控制线程可以实现中间系统。运行时系统用于管理和控制线程的函数的集合,运行时系统中的线程切换过程来执行切换任务,该过程将线程的CPU状态保存在堆栈中,然后按照一定的算法,选择一个处于就绪状态的新线程,将其对应的CPU状态装入到对应的寄存器中,一旦栈指针和PC切换后,便开始了新进程的运行;内核控制线程或轻型进程LWP可通过系统调用获得内核提供服务,利用LWP进程作为中间系统,当一个用户级线程运行时,只需将其连接到一个LWP上,它便拥有了内核支持线程的所有学术性,用户级线程可通过LWP访问内核。
25 试说明内核支持线程的实现方法。
答:系统在创建一个新进程时,为其分配一个任务数据区PTDA,其中包括若干个线程控制块TCB空间。每当进程要创建一个线程分配一个TCB,将有关信息填入该TCB,并为之分配必要的资源。当PTDA中所有的TCB空间用完,而进程又要创建新线程时,只要所创建的线程数目未超过系统允许值,系统可再为之分配新的TCB;在撤销一个线程时,也应回收该 线程的所有资源和TCB。