1.什么是前驱图?为什么要引入前驱图
-
前驱图
前驱图是一个有向,不循环图。用于描述进程之间执行的先后关系。
图中每个点可以表示一个程序段、进程,乃至一条语句;结点间的有向边则用来表示两个结点之间存在的偏序或前趋关系。 -
原因
引入前趋图可以形象地表示进程之间的前后关系和顺序,可以更好的描述进程的顺序和并发执行。
3.为什么程序并发执行会产生间断性特征?
相互制约
程序在并发执行时,由于他们共享系统资源,以及为完成某一项任务相互合作,致使这些并发执行的程序之间,形成了相互制约的关系,从而产生间断性特征。
相互制约导致并发程序有“执行-暂停-执行”这种间断性的活动规律。
4.程序并发执行为什么会失去封闭性和可再现性?
程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性。这样,在某个程序执行时,必然会受到其他程序的影响,而这也导致其失去可再现性。
即程序经过多次执行后,虽然他们执行时的环境和初始条件相同,得到的结果却不相同。
5.操作系统为什么要引入进程的概念?会产生什么影响。
-
原因
在多道程序环境下,程序的执行属于并发执行,此时他们将失去封闭性,并具有间断性和结果不可再现性的特征,这也决定了通常的程序是不能参加并发执行的,因为程序的执行结果是不可再现的,这样,程序的运行也就失去了意义。这样,为了对并发的程序加以控制和描述,引入了“进程”的概念。 -
影响
进程是进程实体的运行过程,进程是系统进行资源分配和处理机调度的独立单位,进程的引入使得程序的并发执行得以实现。
6.试从动态性,并发性,独立性上比较进程和程序
进程 | 程序 |
---|---|
动态性 | 静态 |
能并发执行 | 不能并发执行 |
高度独立性 | 没有独立性 |
-
动态性
进程是进程实体的一个执行过程,动态性是进程最基本的特征。动态性表现在“由创建而产生,由调度而执行,由撤销而消亡”。可见,进程实体具有一定的生命周期。
程序知识一组有序指令的集合,存放于某种介质上,其本身并不具有动态的含义,因而是静态的。 -
并发性
并发性是指多个进程实体同时存在于内存中,在一段时间内同时运行,并发性是进程最重要的特征,同时也成为OS最重要的特征,引入进程的目的就在于为了使进程实体和其他进程实体能并发执行。
而程序并发执行会失去封闭性,而且具有间断性和结果不可再现性的特征,这使得程序不能参加并发执行,因为程序的执行结果是不可再现的,这样,程序的运行也就失去了意义。 -
独立性
进程实体是一个能独立运行、独立分配资源和处理机调度的基本单位。具有高度的独立性。
但凡未建立PCB的程序都不能作为一个独立的单位参与运行。
7.试说明PCB的作用具体表现在那几个方面,为什么说PCB是进程存在的唯一标志
-
作用
- 进程控制块是进程实体中的一部分,是操作系统中最重要的记录型数据结构。
- PCB记录了操作系统所需要的进程控制和进程调度的全部信息。
- 进程控制块(PCB)使得在一个多道程序环境下不能独立运行的程序(含数据)成为一个独立运行的基本单位,并且能和其他进程并发执行。
-
PCB是进程存在的唯一标志
- 在进程的整个生命周期,操作系统是通过PCB控制进程。
- 系统是通过PCB而感知到进程的存在的。
8.PCB提供了进程管理和调度的哪些信息?
- 进程标识符
- 外部标识符
- 内部标识符
- 进程标识符唯一地标识一个进程,一个进程通常有外部标识符和内部标识符两种,分别用来方便用户对进程的访问和系统对进程的访问。
- 进程控制信息
进程控制所必须的信息- 资源清单
- 程序地址
- 进程同步通信机制
- 链接指针
- 进程调度信息
- 进程状态
- 优先级
- 进程调度所需其他信息
- 事件
- 处理机状态
- 处理机状态信息也称处理机的上下文,用来处理处理机各种寄存器的状态。
9.进程控制块的组织方式
- 线性
- 索引
- 链式
10.什么是操作系统内核?内核的主要功能
-
定义
操作系统内核是指大多数操作系统的核心部分,由操作系统用于存储器管理、文件、外设、和系统资源的那些部分组成。操作系统内核通常运行进程,并提供进程间的通信。 -
功能
支撑功能
1. 中断处理
2. 时钟管理
3. 原语操作
资源管理功能
1. 进程管理
2. 设备管理
3. 存储器管理
12.为什么要引入挂起状态
- 用户需要
- 父进程需要
- 调节负荷需要
- 操作系统需要
13.在进程切换时,要保存CPU那些信息
处理机的状态主要由处理机的各种寄存器中的内容组成,处理机在运行时许多信息都存放在寄存器中,当处理机被中断时,这些信息都必须保存在PCB中,进程重新执行时,能从断点继续执行。
- 通用寄存器,用户进程可以访问,用于暂存信息
- 指令寄存器,存放要访问的下一条指令的地址
- 进程状态字PSW,含有状态信息,状态码…
- 用户栈指针
14.进程创建的主要事件
- 用户登录
- 作业调度
- 提供服务
- 应用请求
15.进程被撤销的主要事件
- 正常结束
- 异常结束
- 外界干预
16.创建一个进程所要完成的工作
- 申请空白PCB
- 为新进程分配资源
- 初始化进程控制块
- 将新进程插入就绪队列
17.撤销一个进程所要完成的工作
如果系统中发生了要求终止进程的某事件,OS便调用进程终止原语:
- 根据被终止的进程标识符,从PCB检索出进程状态
- 如果处于执行状态,立即终止该进程的执行,并且置调度标志为真,指示该进程被终止后可以被重新调度
- 若进程还有子进程,应该将所有的子孙进程全部终止,防止他们成为不可控进程
- 将被终止进程所拥有的全部资源,或者归还给父进程或者归还给系统
- 将被终止进程PCB从所在队列或者链表移除,等待其他程序搜集信息
18.试说明引起进程阻塞或者被唤醒的主要事件
- 阻塞
- 请求服务
正在执行的进程请求操作系统提供服务时,由于某种原因,操作系统并不能立即满足该进程的要求时,进程就会变为阻塞状态来等待。 - 启动某种操作
进程启动某种操作以后,若进程必须在该操作完成后才能继续执行,则必须先使该进程阻塞,等待该操作的完成。 - 新数据尚未到达
对于相互合作的进程,如果其中的一个进程需要先获得另一(合作)进程提供的数据才能对数据进行处理,只要新数据尚未到达,进程只能阻塞(等待)。 - 无新工作可以做
系统往往会设置一些具有某种特定功能的系统进程,每当这种进程完成任务后,便把自己阻塞起来等待新任务的到达。
- 请求服务
-唤醒
相应的请求得到了满足,便会被唤醒。
19.为什么要引入线程
引入进程 | 引入线程 |
---|---|
使多个程序能并发执行,提高资源利用率和系统吞吐量 | 减少程序在并发执行时的时空开销,使OS具有更好的并发性 |
20.线程属性
- 轻型实体
- 独立调度和分派的基本单位
- 可并发执行
- 共享进程资源
同一进程中的线程可以共享进程所拥有的资源,表现在所有线程都拥有相同的地址空间。
21.试从调度性、并发性、拥有资源、时空开销比较进程和线程
进程 | 线程 |
---|---|
资源拥有的基本单位 | OS调度和分派的基本单位 |
进程的切换会引起线程的切换 | 同一进程线程的切换不会引起进程的切换 |
进行间并发执行 | 同一进程的线程也可以并发执行,具有更好的并发性 |
系统中拥有资源的基本单位 | 线程自己不拥有资源,只拥有一点必不可少的资源,可以共享其隶属进程的资源,即进程的数据段、代码段、和所拥有的系统资源 |
大 | 小 |
22.线程控制块包含那些内容
- 线程标识符
- 一组寄存器,包括程序计数器、状态计数器、通用寄存器
- 线程运行状态
- 优先级
- 线程专有存储区
- 信号屏蔽
- 堆栈指针
23.何谓用户级线程和内核支持线程
-
用户级线程
线程的创建、撤销、线程之间的同步通信功能,都无需利用系统调用来实现。对于用户级线程的切换,通常发生在一个应用程序的诸多线程之间,不需要内核的支持,由于切换的规则比线程切换简单,线程的切换速度特别快。这种线程与内核无关 -
内核支持线程
在内核的支持下运行,无论是用户进程中的 线程,还是系统中的线程,他们的创建、撤销、切换都是依靠内核,在内核空间实现。内核空间为每一个内核线程设置一个线程控制块,内核根据线程控制块来感知某线程的存在,并对其加以控制。
24.试说明用户线程的实现方法
用户线程是在用户空间实现的,他们都运行在一个中间系统的运行时系统上面,有两种方式实现中间系统,即运行时系统和内核控制线程。
-
运行时系统
运行时系统实质上是用于管理和控制线程的函数(过程)的集合,其中包括用于创建和撤销线程的函数,线程同步和通信的函数,以及实现线程调度的函数。正因为有这些函数才能使用户级线程和内核无关,运行时系统的所有函数都驻留在用户空间。 -
内核控制线程
内核控制线程可以通过系统调用来获得内核的服务,当一个用户级线程运行时,只要连接到一个内核控制线程(LWP),它便具有了内核支持线程的全部属性。