操作系统之进程的描述:进程状态转换、进程控制块 PCB

程序执行

程序的执行方式有顺序执行和并发执行两种方式。

程序顺序执行

程序顺序执行时特征:

  1. 顺序性:处理机严格按照程序所规定的顺序执行。
  2. 封闭性:程序在封闭环境下运行,即程序运行时独占全机资源,资源的状态只有本程序才能改变它。程序一旦开始执行,其执行结果不受外界因素影响。
  3. 可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,不论从头到尾是否有停顿,都可获得相同的结果。
    操作系统之进程的描述:进程状态转换、进程控制块 PCB_第1张图片
    缺点:虽然实现方便,但系统资源的利用率很低。

程序并发执行

前提:只有不存在前趋关系的程序之间才有可能并发执行。

程序并发执行的特征:

  1. 间断性:程序并发执行后,程序间共享系统资源。为了完成同一项任务相互合作,致使这些并发执行的程序之间形成了相互制约的关系。例如在执行程序B的程序段2之前,必须先执行程序A的程序段2,此时若程序A的程序段2还未执行,要暂停等待。因此并发程序具有“执行——暂停——执行”的间断性的活动规律。
    操作系统之进程的描述:进程状态转换、进程控制块 PCB_第2张图片
  2. 失去封闭性:因为多个程序并发执行,因此系统资源并不是独享的,致使其中任一程序在执行时,其环境都必然会受到其它程序的影响。
  3. 不可再现性:无法确定程序的执行顺序,失去了封闭性,因此会导致失去可再现性。即使多次执行时的环境和初始条件相同,得到的结果也可能不一致。

进程的定义

为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入“进程”的概念。

  1. 进程是程序的一次执行。
  2. 进程是一个程序及其数据在处理机上顺序执行时所发生的的活动。
  3. 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。

进程的特征

  1. 动态性:进程的实质是进程实体的执行过程。进程实体有一定的生命周期,它由创建而产生,由调度而执行,由撤销而消亡。程序只是一组有序的集合,不具有活动的含义,是静态的。
  2. 并发性:多个进程实体同存于内存中,且能在一段时间内同时运行。
  3. 独立性:传统OS中,独立性是指进程实体是一个能独立运行、独立获得资源和独立接收调度的基本单位。凡未建立PCB的程序都不能作为一个独立的单位参与运行。
  4. 异步性:进程按异步方式运行,按各自独立的、不可预知的速度向前推进(具体取决于CPU调度)。

进程基本状态及状态转换

进程三状态

  • 就绪状态:进程其他所需资源都准备好了,只要获取CPU就可以立即运行。等待CPU调度的状态。
  • 运行状态:进程已获得CPU,处于正在执行的状态。
  • 阻塞状态:当进程运行中遇到I/O请求、申请缓冲区失败等无法继续运行,会转为阻塞态。此时会发生进程调度,将当前CPU资源让出给另一个进程。
    操作系统之进程的描述:进程状态转换、进程控制块 PCB_第3张图片

进程五状态

  • 新建状态:进程创建的时候涉及很多复杂的过程,如首先进程申请一个空白PCB,然后向PCB中填写用于控制和管理进程的信息,然后为该进程分配运行时除CPU外的资源。只有完成后才会将进程转为就绪状态(将进程插入就绪队列中)。
  • 终止状态:进程终止也涉及一系列处理过程。进入终止态的进程以后不能再执行,但在操作系统中依然保留一个记录(状态码、计时统计数据等),供其他进程收集。一旦其他进程完成了对其信息的提取之后,操作系统将删除该进程,即将PCB清零,然后将PCB空间返回系统。操作系统之进程的描述:进程状态转换、进程控制块 PCB_第4张图片

进程七状态

处于挂起状态的进程:都位于外存,且暂不接受调度。

  • 就绪挂起状态:考虑到系统当前资源状况和性能的要求,不分配给新建进程所需资源,主要是主存,相应的系统将进程状态转为就绪挂起状态,安置在外存,不参与进程调度,此时进程的创建工作尚未完成。当阻塞挂起状态的进程,期待的事情发生后就会变为就绪挂起状态。
  • 阻塞挂起状态: 为了缓和内存紧张的情况,将内存中处于阻塞状态的进程换至外存上。
    操作系统之进程的描述:进程状态转换、进程控制块 PCB_第5张图片

进程控制块 PCB

概述

  • 出现的原因:为了使参与并发执行的每个程序(含数据)都能独立地运行,在操作系统中必须为之配置一个专门的数据结构,称之为进程控制块(PCB)。
  • 作用:PCB是描述进程基本情况和运行状态,控制和管理进程。
  • PCB是进程存在的唯一标志。
  • 创建进程 => 创建进程映像中的PCB
    撤销进程 => 撤销进程映像中的PCB

作用

  1. 作为独立运行基本单位的标志:系统是通过PCB感知进程的存在,PCB是进程存在的唯一标志。
  2. 能实现间断性运行方式:有了PCB,系统就可以将CPU现场信息保存在被中断进程的PCB中,供该进程再次被调度执行时恢复CPU现场时使用。
  3. 提供进程管理所需要的信息:在PCB中记录程序和数据在内存或外存中的起始指针,能够找到相应的程序和数据。通过PCB的资源清单能够了解到该进程所需的全部资源,例如文件等。由此可见,OS总是根据PCB实施对进程的控制和管理。
  4. 提高进程调度所需要的信息:在PCB中记录可进程处于何种状态,在进行调度的时候,需要查询处于就绪状态的进程才能被调度。此外进程的调度可能还需要知道进程的优先级等信息。
  5. 实现与其它进程的同步与通信:在采用信号量机制实现进程同步时,要求在每个进程中都设置有相应的用于同步的信号量。在PCB中还具有用于实现进程通信的区域或通信队列指针等。

进程控制块中的信息

  1. 进程标识符:用于唯一地表示一个进程。通常有两种标识符:
    ① 外部标识符:由创建者提供,由数字、字母组成。
    ② 内部标识符:OS为进程设置的唯一的数字标识符,通常是进程的序号。
  2. 处理机状态:即处理机的上下文信息,主要由处理机的各种寄存器的内容组成。
    处理机处于执行状态时,正在处理的很多信息都是存放在寄存器中。
    当进程被切换时,处理机状态信息都必须保存在相应的PCB中,以便在该进程重新执行时能再从断点继续执行。
    ① 通用寄存器(用户可视寄存器):用户程序可以访问,用于暂存信息。
    ② 指令计数器:存放了要访问的下一条指令地址。
    ③ 程序状态字PSW:含有状态信息,如条件码、执行方式、中断屏蔽标志等。
    ④用户栈指针:每个用户进程都有一个或多个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。栈指针指向栈顶。
  3. 进程调度信息:如进程状态、进程优先级、事件(阻塞原因…)、其他信息(已执行时间、已执行时间总和)
  4. 进程控制信息:程序和数据的地址(首地址);进程同步和通信机制(如消息指针、信号量等);资源清单(列出运行期间进程除CPU外所需全部资源);链接指针(下一进程PCB首地址)。

进程控制块的组织方式

  1. 线性方式:将系统中所有PCB都组织在一张线性表中,将该表的首地址存放在内存的一个专用区域。实现简单,开销小,但每次查找都要扫描整张表。使用进程数目不多的系统。
  2. 链接方式:把具有相同状态的进程的PCB分别通过PCB的链接字段连接成一个队列。可以形成如就绪队列、阻塞队列、空白队列等。就绪队列按优先级排序,阻塞队列也可以根据不同的阻塞原因分成多个队列。
  3. 索引方式:将前两种结合。系统根据所有进程状态的不同,建立几张索引表,如就绪索引表、阻塞索引表。把索引表的首地址记录在内存的专用单元,在每个索引表的表目中,记录具有相应状态的某个PCB在PCB表中的地址。

本文为《计算机操作系统》第四版 学习笔记+个人总结。

你可能感兴趣的:(操作系统)