1 / 99

2.3 进程及其实现

2.3 进程及其实现. 2.3.1 进程的定义和 属 性 2.3.2 进程的状态和转换 2.3.3 进程的描述 2.3.4 进程切换与模式切换 2.3.5 进程的控制 2.3.6 实例研究: UNIX SVR4 进程管理 2.3.7 实例研究: Linux 进程管理. 2.3.1 进程的定义和性质 (1). 进程 是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位 。. 进程的定义和性质 (2). 操作系统引入进程的概念 从理论角度看,是对正在运行的程序过程的抽象;

michel
Download Presentation

2.3 进程及其实现

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2.3 进程及其实现 2.3.1 进程的定义和属性 2.3.2 进程的状态和转换 2.3.3 进程的描述 2.3.4 进程切换与模式切换 2.3.5 进程的控制 2.3.6 实例研究:UNIX SVR4进程管理 2.3.7 实例研究:Linux进程管理

  2. 2.3.1 进程的定义和性质(1) 进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位 。

  3. 进程的定义和性质(2) 操作系统引入进程的概念 • 从理论角度看,是对正在运行的程序过程的抽象; • 从实现角度看,是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。

  4. 进程的属性 •结构性: •共享性: •动态性: •独立性: •制约性: •并发性:

  5. 操作系统为什么要引入进程概念? • 原因1-刻画系统的动态性,发挥系统的并发性,提高资源利用率。 • 原因2-它能解决系统的“共享性”,正确描述程序的执行状态。 • “可再用” 程序 • “可再入” 程序 • “可再入”程序具有的性质

  6. “可再入” 程序举例(1) • 编译程序P编译源程序甲,从A点开始工作,执行到B点时需将信息记到磁盘上,且程序P在B点等待磁盘传输。 • 为提高系统效率,利用编译程序的“可再入”性,让编译程序P再为源程序乙进行编译,仍从A点开始工作。

  7. 编译程序P A (P的入口,处理源程序乙) 源程序甲 源程序乙 (P把源程序甲的信息记盘等磁盘完成) B “可再入” 程序举例(2) • 现在怎样来描述编译程序P的状态呢?

  8. “可再入” 程序举例(3) • 两个进程虽共享程序P,但它们可同时执行且彼此按各自的速度独立执行。可见程序与计算(程序的执行)不再一一对应, • 进程是一个既能用来共享资源,又能描述程序并发执行过程的一个基本单位。

  9. 2.3.2 进程的状态和转换三态模型(1) • 一个进程从创建而产生至撤销而消亡的整个生命周期,可用一组状态加以刻划,按进程在执行过程中的状况至少定义三种不同的进程状态: • 运行态(running) • 就绪态(ready) • 等待态(blocked):

  10. 运行态 选中 出现等待事件 落选 就绪态 等待态 等待事件结束 三态模型(2)进程三态模型及其状态转换

  11. 五态模型(1)新建态 • 新建态对应进程刚被创建的状态。为一个新进程创建必要的管理信息,它并没有被提交执行,而是在等待操作系统完成创建进程的必要操作。

  12. 五态模型(2)终止态 • 进程的终止,首先,等待操作系统进行善后,然后,退出主存。 • 进入终止态的进程不再执行,但依然临时保留在系统中等待善后。一旦其他进程完成了对终止态进程的信息抽取之后,系统将删除该进程。

  13. 新建态 终止态 运行态 选中 出现等待事件 落选 就绪态 等待态 等待事件结束 五态模型(3) 进程五态模型及其转换

  14. 进程的挂起(1) 为什么要有“挂起”状态? 由于进程的不断创建,系统资源已不能满足进程运行的要求,就必须把某些进程挂起(suspend),对换到磁盘镜像区中,暂时不参与进程调度,起到平滑系统操作负荷的目的。

  15. 进程的挂起(2) (1)系统中的进程均处于等待状态,需要把一些阻塞进程对换出去,腾出足够内存装入就绪进程运行。 (2)进程竞争资源,导致系统资源不足,负荷过重,需要挂起部分进程以调整系统负荷,保证系统的实时性或让系统正常运行。 (3)定期执行的进程(如审计、监控、记账程序)对换出去,以减轻系统负荷。

  16. 进程的挂起(3) (4)用户要求挂起自己的进程,以便进行某些调试、检查和改正。 (5)父进程要求挂起后代进程,以进行某些检查和改正。 (6)操作系统需要挂起某些进程,检查运行中资源使用情况,以改善系统性能;或当系统出现故障或某些功能受到破坏时,需要挂起某些进程以排除故障。

  17. 等待事件结束 挂起 提交 解除挂起 解除挂起 挂起 挂起 选中 出现等待事件 落选 提交 新建态 终止态 运行态 等待事件结束 挂起就 绪态 挂起等 待态 就绪态 等待态 具有挂起功能的进程状态及其转换

  18. 具有挂起进程功能的进程状态 进程增加了两个新状态: • 挂起就绪态(ready suspend)表明进程具备运行条件但目前在二级存储器中,当它被对换到主存才能被调度执行。 • 挂起等待态(blocked suspend) 表明进程正在等待某一个事件且在二级存储器中。

  19. 具有挂起进程状态转换的具体原因(1) •等待态→挂起等待态:当前不存在就绪进程,至少一个等待态进程将被对换出去成为挂起等待态; •挂起等待态→挂起就绪态:引起进程等待的事件发生之后,相应的挂起等待态进程将转换为挂起就绪态。

  20. 具有挂起进程状态转换的具体原因(2) •挂起就绪态→就绪态:内存中没有就绪态进程,或挂起就绪态进程具有比就绪态进程更高的优先级,将把挂起就绪态进程转换成就绪态。 •就绪态→挂起就绪态:系统根据当前资源状况和性能要求,决定把就绪态进程对换出去成为挂起就绪态。

  21. 挂起进程具有如下特征 • 该进程不能立即被执行。 • 挂起进程可能会等待事件,但所等待事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件。 • 进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行。 • 结束进程挂起状态的命令只能通过操作系统或父进程发出。

  22. 2.3.3 进程的描述操作系统的控制结构(1) • 操作系统核心控制结构是进程结构,资源管理的数据结构将围绕进程结构展开。 • 操作系统的控制表分为四类: 进程控制表,存储控制表,I/O控制表和文件控制表。

  23. 操作系统的控制结构(2) • 进程控制表管理进程及其相关信息。 • 存储控制表管理一级(主)存储器和二级(虚拟)存储器。 • I/O控制表管理系统的I/O设备和通道。 • 文件控制表管理文件。

  24. Memory Tables Process Image Memory Process 1 Image Devices I/O Tables Files Processes File Tables …… Primary Process Table Process 1 Process N Image Process 2 …… Process N 操作系统控制表的通用结构

  25. 进程映像 • 操作系统中把进程物理实体和支持进程运行的环境合称为进程上下文(context)。 • 当系统调度新进程占有处理器时,新老进程随之发生上下文切换。进程的运行被认为是在上下文中执行。

  26. 进程上下文组成 •用户级上下文:由用户程序块、用户数据块和用户堆栈组成的进程地址空间。 •系统级上下文:包括进程的标识信息、现场信息和控制信息,进程环境块,及系统堆栈等组成的进程地址空间。 •寄存器上下文:由PSW寄存器和各类控制寄存器、地址寄存器、通用寄存器组成。

  27. 进程有四个要素组成 •进程程序块 •进程数据块 •系统堆栈 •用户堆栈

  28. 进程标识信息 进程现场信息 进程控制块 进程控制信息 用户堆栈 用户私有地址空间 (代码、数据) 共享地址空间 用户进程在虚拟内存中的组织

  29. 进程控制块(1) • 进程控制块PCB,是操作系统用于记录和刻划进程状态及有关信息的数据结构。也是操作系统掌握进程的唯一资料结构,它包括了进程执行时的情况,以及进程让出处理器后所处的状态、断点等信息。 • 进程控制块包含三类信息 • 标识信息 • 现场信息 • 控制信息

  30. 进程控制块(2)标识信息 •用于唯一地标识一个进程,分由用户使用的外部标识符和被系统使用的内部标识号。 •常用的标识信息有进程标识符、父进程的标识符、用户进程名、用户组名等。

  31. 进程控制块(3)现场信息 •保留进程运行时存放在处理器现场中的各种信息,进程让出处理器时必须把处理器现场信息保存到PCB中,当该进程重新恢复运行时也应恢复处理器现场。 •现场信息包括通用寄存器内容、控制寄存器内容、用户堆栈指针、系统堆栈指针等。

  32. 进程控制块(4)控制信息 • 进程调度相关信息; • 进程组成信息; • 进程间通信相关信息; • 进程在二级存储器内的地址信息; • CPU资源的占用和使用信息; • 进程特权信息; • 资源清单,包括进程所需全部资源、已经分得资源等。

  33. 进程管理(1) • 处于同一状态的所有PCB链接在一起的数据结构称为进程队列(Process Queues)。 • 同一状态进程的PCB既可按先来先到的原则排成队列;也可按优先数或其它原则排成队列。 • 链接进程控制块的方法 • 单向链接 • 双向链接

  34. 进程管理(2)队列标志 系统为每个队列设置一个队列标志: • 单向链接时, 队列标志指引元指向队列中第一个进程的队列指引元的位置; • 双向链接时, 队列标志的后向指引元指向队列中第一个进程的后向队列指引元的位置; 队列标志的前向指引元指向队列中最后一个进程的前向队列指引元的位置

  35. 队列标志 后向 0 队列标志 0 前向 0 (a) 单向连接 (b) 双向连接 是队列指引元 进程管理(3)进程控制块的链接

  36. 进程管理(4)队列管理 •入队 •出队 •队列管理模块

  37. 就绪队列 指派 提交 完成 超时 等待事件1 等待事件2 等待事件n 处理器 事件1等待队列 事件1 出现 事件2等待队列 事件2 出现 …… 事件n等待队列 事件n 出现 队列管理和状态转换示意图

  38. 前(后)向指引元的内容规定 •情况1:它是队列之首。此时,前向指引元为0,后向指引元指出它的下一个进程的后向指引元位置。 •情况2:它是队列之尾。此时,后向指引元为0,它的前向指引元指出它的上一个进程的前向指引元位置。 •情况3:它的前后均有进程。此时,前(后)向指引元指出它的上(下)一个进程的前(后)向指引元位置。

  39. 进程的出队举例 • 假设进程Q在某个队列中,它的前面是进程P,后面是进程R。 • 进程Q出队过程:把Q的前向指引元的内容送到R的前向指引元中,把Q的后向指引元的内容送到P的后向指引元中。于是P的后向指引元指向R,而R的前向指引元指向P,Q就从队列中退出。

  40. 表格法组织PCB • 表格法组织PCB。所有进程的PCB都组织在一个线性表中,进程调度时需要查找整个PCB表; • 也可以把相同状态进程的PCB组织在一个线性表中,系统有多个线性表,这样可缩短查表时间。

  41. 2.3.4 进程切换与CPU模式切换 进程上下文切换(1) • 进程切换是让处于运行态的进程中断运行,让出处理器,这时要做一次进程上下文切换、即保存老进程状态而装入被保护了的新进程的状态,以便新进程运行。

  42. 进程上下文切换(2)进程切换的步骤 •保存被中断进程的处理器现场信息。 •修改被中断进程的进程控制块的有关信息,如进程状态等。 •把被中断进程的进程控制块加入有关队列。 •选择下一个占有处理器运行的进程。 修改被选中进程的进程控制块的有关信息。 •根据被选中进程设置操作系统用到的地址转换和存储保护信息。 •根据被选中进程恢复处理器现场。

  43. 进程上下文切换(4)调度和切换时机问题(1) •请求调度的事件发生后,就会运行低级调度程序,低级调度程序选中新的就绪进程后,就会进行上下文切换。实际上,由于种种原因,并不一定能一气呵成。

  44. 进程上下文切换(5)调度和切换时机问题(2) •例1,运行内核中断处理例程期间,发生了更高优先级的I/O中断的情况; •例2,若正在运行操作系统内核临界区程序,如果时钟中断导致请求低级调度的事件发生的情况; •在各种各样的原子操作,如原语操作、现场保护和恢复等过程中,发生了请求调度的事件的情况。

  45. CPU模式切换(1) •当中断发生时,暂时中断正在执行的用户进程,把进程从用户状态切换到内核状态,去执行操作系统例行程序以获得服务,这就是一次模式切换, •内核在被中断了的进程的上下文中对这个中断事件作处理,即使该中断可能不是此进程引起的。

  46. CPU模式切换(2)模式切换的步骤 •保存被中断进程的处理器现场信息。 •根据中断号置程序计数器。 •把用户状态切换到内核状态,以便执行中断处理程序。

  47. CPU模式切换与进程上下文切换 • 模式切换不同于进程切换,它并不引起进程状态变化,也不一定引起进程的切换,在完成了中断调用之后,完全可以再通过一次逆向的模式切换来继续执行用户进程。

  48. UNIX进程上下文切换和模式切换(1) • 两类进程:系统进程和用户进程,系统进程在核心态下执行操作系统代码,用户进程在用户态下执行用户程序。 • 用户进程因中断和系统调用进入内核态,系统进程开始执行,两个进程使用同一个PCB,实质上是一个进程。但所执行的程序不同,映射到不同物理地址空间、使用不同堆栈。

  49. 用户态 运行 系统调用或中断(隐含模式切换) 模式切换 核心态 运行 中断、 中断返回 发生事件 调度进程 等待 状态 就绪 状态 允许的上下文切换切换 唤醒 UNIX中进程上下文切换和模式切换(2)

  50. 2.3.5 进程的控制 原语(1) • 处理器管理的一个主要工作是对进程的控制,包括:创建进程、阻塞进程、唤醒进程、挂起进程、激活进程、终止进程和撤销进程等。 • 这些控制和管理功能是由操作系统中的原语来实现的。

More Related