7-进程

2022-10-27 13:07:26 浏览数 (2)

进程

程序的定义: 就是一个指令序列

早期的计算机,只支持单道程序。同一时间内只能有一道程序执行,此时计算机的CPU,内存以及I/O设备都由该程序单独使用,所以此时程序的代码放在程序段内,程序运行的数据放在数据段内,二者可分别置于内存的首尾两侧。

在引入多道程序技术后,同一时间可能有多道程序执行,此时内存中存放了各个程序的程序段和数据段,如果不引入其他数据结构便无法找到对应程序的存放位置。所以系统为每个运行的程序都配置一个数据结构,称为进程控制块PCB(Progress Control Block),用来描述进程的各种信息(如程序代码的存放位置)

进程实体

由PCB,程序段,数据段三部分构成,也称为进程映像

一般情况下,我们可以把进程实体简称为进程。我们平常所说的创建进程,指的就是创建进程实体中的PCB,而撤销进程,是指就是撤销进程实体中的PCB

PCB是进程存在的唯一标志

进程定义

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

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

严格来说,进程实体和进程是有区别的,进程实体是静态的,而进程是动态的。不过除非题目专门考察二者区别,否则可认为进程实体就是进程,所以可以说进程由程序段,数据段,PCB三部分组成

程序段组成

程序段负责存储程序代码等相关信息

数据段组成

由程序运行时使用,产生的运算数据组成,如全局变量,局部变量,宏定义常量就存放在数据段内

PCB组成

简要概况:进程的管理者(操作系统)所需的数据都存放在PCB中,程序运行本身需要的数据则存放在数据段和程序段中

进程描述信息

  • 进程标识符PID:进程创建时分配的唯一的永不重复的ID,用于区分进程
  • 用户标识符UID:标识用户身份

进程控制和管理信息

  • 进程当前状态
  • 进程优先级

资源分配清单

  • 程序段指针
  • 数据段指针
  • 键盘
  • 鼠标

处理机相关信息

  • 各种寄存器:当进程切换时需要把进程当前运行情况记录下来保存在PCB中,以备后续继续执行时调用。如程序计数器的值表示了当前程序执行到了哪一句

要区分PCB和程序段数据段中存储信息的区别,其实只需要认清PCB中存储的都是进程的管理者(操作系统)所需的数据,而程序段和数据段则负责存储程序本身运行所需要的数据

进程的组织方式

进程的组成讨论的是一个进程内部由哪些部分构成,而进程的组织讨论的是多个进程之间的组织问题

链接方式

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

索引方式

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

进程的特征

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

0 人点赞