进程的定义、组成、组织方式、特征

进程的定义1

程序:就是一个指令序列
早期的计算机(只支持单道程序):程序的代码放在程序段内,程序运行过程处理的数据放在数据段内(如变量)。

引入多道程序技术之后:内存中同时放入多道程序,各个程序的代码、运算数据存放的位置不同。操作系统要怎么才能找到各程序的位置呢?

为了方便操作系统管理,完成各程序并发执行,引入了进程、进程实体的概念
系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代码存放位置)

进程实体(进程映像):由PCB、程序段、数据段三部分构成。一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实际上是创建进程实体中的PCB;而撤销进程,实际上是撤销进程实体中的PCB。
注意PCB是进程存在的唯一标志!!!

从不同的角度,进程可以有不同的定义,比较传统典型的定义2有:

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

引入进程实体的概念后,可把进程定义为:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位

注:严格来说,进程实体和进程并不一样,进程实体是静态的,进程则是动态的。不过,除非题目专门考察二者区别,否则可以认为进程实体就是进程。因此我们也可以说“进程是由程序段、数据段、PCB三部分组成”

进程的组成

  • PCB:PCB是进程存在的唯一标志

    • 进程描述信息
      • 进程标识符PID:当进程被创建时,操作系统会为该进程分配一个唯一的、不重复的ID,用于区分不同的进程(类似于身份证号)
      • 用户标识符UID
    • 进程控制和管理信息
      • 进程当前状态
      • 进程优先级
    • 资源分配清单
      • 程序段指针
      • 数据段指针
      • 键盘
      • 鼠标
    • 处理机相关信息
      • 各种寄存器值:当进程切换时需要把进程当前的运行情况记录下来保存在PCB中,如程序计数器的值表示了当前程序执行到哪一句。
  • 程序段:存放要执行的程序代码

  • 数据段:存放程序运行过程中处理的各种资源

本质特点:进程的管理者(操作系统)所需的数据都在PCB中
程序本身的运行所需的数据在程序段、数据段中

进程的组织方式

在一个系统中,通常有数十、数百乃至数千个PCB。为了能对他们加以有效的管理,应当用适当的方式把这些PCB组织起来。
注:进程的组成讨论的是一个进程内部由哪些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题

  • 链接方式
    • 按照进程状态将PCB分为多个队列
    • 操作系统持有指向各个队列的指针

执行指针:指向当前处于运行态(执行态)的进程,单CPU计算机中,同一时刻只会有一个进程处于运行态
.
就绪队列指针:指向当前处于就绪态的进程,通常会把优先级高的进程放在队头
.
阻塞队列指针:指向当前处于阻塞态的进程,很多操作系统还会根据阻塞原因不同,再分为多个阻塞队列

  • 索引方式
    • 根据进程状态的不同,建立几张索引表,各表项指向一个PCB
    • 操作系统持有指向各个索引表的指针

执行指针:指向当前处于运行态(执行态)的进程,单CPU计算机中,同一时刻只会有一个进程处于运行态
.
就绪表指针:指向的是一个索引表,而不是一个队列的对头,而这个索引表的表项指向处于这个状态的PCB
.
阻塞表指针:同上

进程的特征

进程和程序是两个截然不同的概念,相比于程序,进程有以下特征:

  • 动态性3:进程是程序的一次执行过程,是动态地产生、变化和消亡的。
  • 并发性:内存中有多个进程实体,各进程可并发执行
  • 独立性4:进程是能独立运行、独立获得资源、独立接受调度的基本单位
  • 异步性:各进程以不可预知的速度向前推进,可能导致运行结果的不确定性。操作系统要提供“进程同步机制“来解决异步问题。
  • 结构性 :每个进程都会配置一个PCB。从结构上看,进程是由程序段、数据段、PCB组成。

  1. 以上笔记均来自王道考研 ↩︎

  2. 所有的定义都在强调进程的“动态性” ↩︎

  3. 动态性是进程最基本特征 ↩︎

  4. 进程是系统进行资源分配、调度的独立单位 ↩︎

发布了50 篇原创文章 · 获赞 5 · 访问量 1518

猜你喜欢

转载自blog.csdn.net/qq_42483691/article/details/104835790
今日推荐