370 likes | 497 Views
第2章 进程描述与控制. 本章知识点: 2.1 进程状态 2.2 进程描述 2.3 进程控制 2.4 线程和 SMP 2.5 系统举例 (略). 2.1 进程状态. 进程是程序在并发环境中的执行过程。其基本特征是 动态性、并发性、独立性、异步性和结构性 。进程是一个主动的实体,而程序是被动的实体。进程的执行必须按一种顺序的方式进行,即在任何时刻至多只有一条指令被执行。 处理器的主要功能就是执行驻留在内存中的指令。为了提高效率,处理器可以 “ 同时 ” 执行多个进程。. 2.1.1 进程产生和终止.
E N D
第2章 进程描述与控制 本章知识点: • 2.1 进程状态 • 2.2 进程描述 • 2.3 进程控制 • 2.4 线程和SMP • 2.5 系统举例(略)
2.1 进程状态 进程是程序在并发环境中的执行过程。其基本特征是动态性、并发性、独立性、异步性和结构性。进程是一个主动的实体,而程序是被动的实体。进程的执行必须按一种顺序的方式进行,即在任何时刻至多只有一条指令被执行。处理器的主要功能就是执行驻留在内存中的指令。为了提高效率,处理器可以“同时”执行多个进程。
2.1.1 进程产生和终止 最简单的模型(a)基于这样一个事实:进程要么正在执行,要么没有执行。这样,一个进程就有两种状态:运行和非运行。还有一种模型(b)是设计一种进程队列,队列中的每项都是一个指向进程的指针。无论采用哪种模型,进程的生命周期都同产生和终止联系在一起。
2.1.1 进程产生和终止 1.进程产生 通常有4种事件会导致新进程产生: • ①在一个交互式环境中,当一个新用户在终端键入登录命令后,若是合法用户,系统将为该用户建立一个进程。 • ②在一个批处理环境中,为了响应一个任务的要求而产生进程。 • ③当运行中获取用户程序提出的某种请求后,OS可以代用户程序产生进程以实现某种功能,使用户不必等待。 • ④基于应用进程的需要,由已存在的进程产生另一个进程,以便使新程序以并发运行方式完成特定任务。
2.1.1 进程产生和终止 2.进程终止 导致进程终止的事件约有14种(表2.1) :正常结束 、超时限制 、内存不足 、超界 、保护错误 、算术错误 、超越时限 、I/O失败 、非法指令 、特权指令 、错误使用数据 、操作员或OS干预 、父进程终止 、父进程需要 。
2.1.2 进程状态模型 进程的动态性质是由其状态变化决定的。通常操作系统中进程都具有三种状态:运行态、就绪态和阻塞态。进程的生命周期中通常还有创建和消失两种状态。创建和终止状态对进程管理非常有用。
2.1.2 进程状态模型 运行:进程已占有 CPU,当前处于运行状态。 就绪;进程已准备好运行,等待获得 CPU。 阻塞;进程等待某些事件发生(如I/O操作)后才能运行。 创建:进程刚产生,但还未被操作系统提交到可运行进程队列(就绪队列)中。 • 终止:进程已正常或异常结束,被操作系统从 CPU 中释放。 • 示例:P30,图2-1、2-2、2-3,表2-3说明
2.1.2 进程状态模型 进程状态转换 (转下表)
2.1.3 进程挂起 1. 进程挂起的状态 由于I/O操作比CPU计算慢得多,故常会出现内存中所有进程都等待I/O的现象。即使运行多个程序,处理器在大多数时间仍处于空闲状态。为此可采用交换方法,将内存中的一部分进程转移到磁盘中。在进程行为模式中需增加一个新的挂起状态,当内存所有进程阻塞时,操作系统可将一进程置为挂起状态并交换到磁盘,再调入另一进程执行。挂起状态与原有的阻塞和就绪状态结合为阻塞挂起状态和就绪挂起状态。
2.1.3 进程挂起 有挂起状态的进程转换图 (a) 带有一个挂起状态 参见表2.4 有挂起状态的进程状态转换 P40-41 (b) 带有两个挂起状态
原 因 说 明 交换 OS需要释放足够的内存空间以调入就绪进程执行 其他OS原因 OS可能会挂起一个后台进程或怀疑引起问题的进程 交互用户要求 用户可能为了调试或与资源连接而要求挂起进程 间断 一个进程可能是周期性地执行的,那么它在等待下一次执行时就被挂起 父进程请求 父进程有时希望挂起某个后代进程以检查或修正挂起进程,或协调多个后代进程的运行 2.1.3 进程挂起 进程挂起的原因
2.2 进程描述 在计算机系统中,操作系统负责调度进程、分配资源、响应用户程序服务的请求,可以认为操作系统管理整个系统资源的使用和控制整个系统的事件。
2.2.1 操作系统控制结构 为了管理进程和资源,操作系统必须掌握每一个进程和资源的当前状态信息,如图2.8。几乎所有操作系统都会用以下4类表来保存信息:内存表、I/O表、文件表和进程表,如图2.9所示。 ①内存表用来跟踪主(实)存和辅(虚拟)存。 ②I/O表用来管理I/O设备和通道。 ③文件表提供当前存在文件中的信息:文件在辅存中的位置、当前状态及其他性质。 ④进程表用来管理进程。 说明:1、进程表与其他3个表存在某种形式的联系 2、OS根据基本环境(配置数据)来建立这些表。
2.2.2 进程控制结构 操作系统通过称为进程映象的进程属性集合来控制进程。进程映象中通常包括: 用户数据、用户程序、系统栈、进程控制块。进程映像的存储(可能在内存中或在外存上)依赖于所使用的存储器管理调度方式。
2.2.3 进程属性 进程控制块( PCB见表2.7 )是进程映象中最关键的部分,它含有进程的描述信息和控制信息,是进程动态特性的集中反映,是系统对进程施行识别和控制的依据。(查看任务管理器:PID、页面错误、虚拟内存大小、基本优先级、线程数等)操作系统管理进程所需的信息类型都收集在进程控制块中。
2.2.3 进程属性 进程控制块的主要内容有: ①进程标识。 ②处理器状态信息。 ③进程控制信息。具体内容为 • 调度和状态信息 • 数据结构,如图2.11的队列 进程间通信 进程特权 存储器管理 资源的拥有和使用
2.3 进程控制 操作系统内核负责控制和管理进程的产生、执行和消亡的整个过程,这主要通过对它们的控制操作实现。操作系统的进程控制操作主要有:创建进程、撤消进程、挂起进程、恢复进程、改变进程优先级、封锁进程、唤醒进程、调度进程等。 例如,Linux内核提供了运行进程必需的所有功能,还提供判断和保护访问硬件资源的系统服务。 Windows2000/XP的内核驻留内存,它的执行不会被抢占。它有4项主要工作:线程调度、中断和异常处理、低级处理器同步(异步或延迟过程调用)、掉电后恢复(掉电中断)。
2.3.1 执行模式 大多数处理器都至少支持两种执行模式,一种是同操作系统有关的模式,另一种则是同用户程序有关的模式。较低特权模式称为用户模式。较高特权模式指系统模式、控制模式或内核模式。内核是操作系统中最核心功能的集合,如表2.8所示(注意:该内核不参与文件管理)。 PSW寄存器中的某一位决定处理器在何种模式下。
2.3.2 进程创建 一旦OS决定创建一个进程时,便调用进程创建原语Creat( ),进行如下操作: ① 给新进程一个编号并申请空白PCB。 ② 为进程分配空间。 ③ 初始化PCB。 ④ 设置合适的链接。 ⑤ 生成其他一些数据结构。
2.3.3 进程切换 在某时刻,一个正在运行的进程被中断运行,操作系统就将另一个就绪进程置为运行状态,并对其进行控制。当操作系统掌握控制权时,切换随时会发生。可能将控制权交给操作系统的事件有:中断 、陷阱以及监管调用 ,见表2.9。
2.3.4 上下文切换 中断的发生并不一定导致进程切换,因此、如果没有进程切换,则只要保存CPU的状态信息。上下文切换发生时,可能并不改变当前处于运行态的进程状态。 当前运行进程的状态要改变时,操作系统将进行以下步骤完成进程切换: ① 保存处理器内容。 ② 对当前运行进程的PCB进行更新。 ③ 将这个进程的PCB移入适当的队列。 ④ 挑选其他进程执行。 ⑤ 对挑选进程的PCB进行更新。。 ⑥ 对存储器管理数据结构进行更新。 ⑦ 将被选中进程上次移出时的处理器状态进行恢复。 由此可见进程切换比上下文切换保存的内容要多
2.3.5 操作系统的运行 操作系统的运行方式同普通软件一样,也是一个由处理器执行的程序。 (a) 在进程以外运行 (b) 在用户进程中运行 (c) 作为独立进程运行
2.3.6 微核 微核是一个操作系统的核心,它为组件扩展提供了基础。微核所应遵循的原理是:只有那些绝对必要的操作系统核心功能才能放在内核中。次重要的服务和应用功能则建立在微核之外。
2.4 线程和SMP 线程(Thread)是近年来操作系统中出现的一个非常重要的技术。线程的引入,进一步提高了程序并发执行的程度,从而进一步提高了系统的吞吐量。
2.4.1 线程及其管理 1.线程的引入 为了既能提高程序的并发程度,又能减少OS的开销,操作系统设计者引入了线程,把进程的两个基本属性(进程是一个拥有资源的独立单元;进程是一个被处理机独立调度和分配的单元)分离开来。(参见W6L第2-5页)引入线程还有一个好处,就是能较好地支持对称多处理器系统(Symmetric Multiprocessor,简称SMP)。
2.4.1 线程及其管理 2.线程的定义及特征 线程是进程内的一个相对独立的、可独立调度和指派的执行单元。 线程具有以下性质: • 线程是进程内的一个相对独立的可执行单元。 • 线程是操作系统中的基本调度单元 。 • 一个进程中至少应有一个线程 。 • 线程并不拥有资源,而是共享和使用包含它的进程所拥有的所有资源。 • 线程在需要时也可创建其他线程。
2.4.1 线程及其管理 进程和线程的区别与联系: • 调度:线程是调度和指派的基本单位,而进程是资源拥有的基本单位。 • 拥有资源:进程拥有资源,而线程不拥有系统资源,但可以访问其隶属进程的系统资源。 • 并发性:进程与线程都可以并发执行。 • 系统开销:进程切换开销大,线程切换开销小;多线程间的同步与通信易实现(共享进程相同的地址空间)。(参见W6L第7页)
2.4.1 线程及其管理 3.线程的状态和管理 线程也有一个从创建到消亡的生命过程,虽然在不同的操作系统,线程的状态设计不完全相同,但就绪、运行、阻塞3个关键的状态是共有的。线程中不具有进程中的挂起状态(原因见P53)。对具有多线程的进程状态,若一个线程被阻塞,整个进程不被阻塞(见W6L第6页)。线程使用线程控制块(TCB)来描述其数据结构。线程的状态转换是通过相关的控制原语来实现的。
2.4.2 多线程的实现 多线程机制是指OS支持在一个进程内执行多个线程的能力。线程虽在许多系统中实现,但实现的方式并不完全相同。
2.4.2 多线程的实现 1.用户级线程 用户级线程(ULT)由用户应用程序建立,由用户应用程序负责对这些线程进行调度和管理,操作系统内核并不知道有用户级线程的存在。因而这种线程与内核无关。 优缺点见 P54
2.4.2 多线程的实现 2.内核级线程 内核级线程(KLT)中的所有线程的创建、调度和管理全部由操作系统内核负责。一个应用进程可按多线程方式编制程序,当它被提交给多线程操作系统运行时,内核为它创建一个进程和一个线程,线程在运行中还会创建新的线程。这就是通常所说的“纯KLT方法”。 优缺点见 P54
2.4.2 多线程的实现 3.KLT和ULT结合 由于纯KLT和纯ULT各有自己的优点和缺点,因此,如果将两种方法结合起来,则可得到两者的全部优点,将两种方法结合起来的系统称之为多线程的操作系统。
线程∶进程 描 述 1∶1 每个线程的执行就是一个进程 n∶1 每个进程定义一个地址空间并动态拥有资源;同一进程可产生多个线程并运行 1∶n 一个线程可以在多个进程间转移 n∶n 包含n∶1和1∶n的性质 2.4.3 进程与线程的关系
2.4.4 SMP 按照多处理器之间的通信方式可将多处理器系统划分为两种类型: 第一种为共享存储器多处理系统(Shared Memory Multiprocessor)。特点是多个处理器共享一个共享存储器,每个处理器都能存取共享存储器中的程序和数据,并且处理器间借助于共享存储器进行通信。 第二种为分布式存储器系统(Distributed Memory)。特点是每个处理器都有自己的专用主存储器,计算机之间的通信通过专用线路或网络。
2.4.4 SMP 1.SMP的特点 ① 系统中有多个处理器,且每个处理器的地位是相同的。 ② 所有处理器共享主存储器。
2.4.4 SMP 2.SMP系统设计问题 SMP操作系统设计的关键是: ① 同时并发执行多进程和多线程。 ② 调度。 ③ 同步。 ④ 存储器管理。 ⑤ 可靠性和容错能力。