进程的描述

1.进程的描述

1.1进程的定义和特征

1.1.1 进程的定义

较典型的进程定义有:
(1) 进程是程序的一次执行。
(2) 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
(3) 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
(4) 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
(5) 进程是一个具有一定独立功能的程序关于某个集合的一次运行活动。(我国78年庐山研讨会)

1.1.2 进程同程序的比较:

  • 进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制。
  • 进程是暂时的,程序是永久的:进程是一个状态变化的过程,是有一定生命期的;而程序可以作为一种软件资料长久保存。
    进程与程序的组成不同:进程是由程序和数据、进程控制块三部分组成的。
  • 进程与程序的对应关系:同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程。也就是说同一程序可以对应多个进程;一个进程的执行也可以涉及到一个或几个程序(调用)。

1.1.3 进程的特征:

  • 结构特征:由程序段、数据段、进程控制块三部分组成(进程实体);
  • 动态性:进程的实质是程序的一次执行过程;
  • 并发性:多个进程可同存于内存中,能在一段时间内同时运行;
  • 独立性:独立运行的基本单位,独立获得资源和调度的基本单位;
  • 异步性:各进程按各自独立的不可预知的速度向前推进。

1.2 进程的基本状态及转换

1.2.1 进程的三种基本状态

  1. 就绪状态:进程已获得除 CPU 以外的所有必要资源,只要得到 CPU,便可立即执行。
  2. 执行状态:进程已得到 CPU,其程序正在 CPU 上执行。
  3. 阻塞状态:正在执行的进程因某种事件(如 I/O 请求)的发生而暂时无法继续执行,只有等相应事件完成后,才能去竞争 CPU。

1.2.2 三种基本状态的转换

Snipaste_2020-09-26_11-02-15

1.2.3 进程的五种状态转换模型

Snipaste_2020-09-26_11-03-20

1.3 引入挂起的进程七种状态转换模型

Snipaste_2020-09-26_11-04-45

1.4进程管理中的数据结构

1.4.1 进程的组成

Snipaste_2020-09-26_11-23-51

Process Control Block 是灵魂,进程存在的唯一标志。

程序:描述了进程要完成的功能,是进程执行时不可修改的部分。
数据:进程执行时用到的数据(用户输入的数据、常量、静态变量)

工作区:参数传递、系统调用时使用的动态区域(堆栈区)。

1.4.2 进程控制块(Process Control Block, PCB )

​ 进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。

  • 进程与PCB是一一对应的。
  • PCB应常驻内存。

1.4.3 进程控制块中的信息

Snipaste_2020-09-26_11-12-58

1.4.4 进程控制块的组织方式

在一个系统中通常有许多的PCB,称为PCB集合。

Snipaste_2020-09-26_11-14-11

1)单一队列方式

所有进程的PCB通过链表组成一个单一队列,适用于进程数目不多的系统。

Snipaste_2020-09-26_11-14-55

2) 链接方式

Snipaste_2020-09-26_11-16-37

相同状态的进程PCB组成一个链表,不同状态对应多个不同的链表。

3)索引方式

Snipaste_2020-09-26_11-17-26

对具有相同状态的进程,分别设置各自的PCB索引表,表明PCB在PCB表中的地址。

原文地址:https://www.cnblogs.com/coderD/p/13734372.html