(王道408考研操作系统)第二章进程管理-第一节1:进程PCB及其特征

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(王道408考研操作系统)第二章进程管理-第一节1:进程PCB及其特征相关的知识,希望对你有一定的参考价值。

注意:


一:进程和进程实体

(1)进程的引入

前面说过,在多道程序环境下,多个程序是并发执行的,因此它们可能存在争夺系统资源的问题,并且各自运行时程序的封闭性也无从谈起

为此我们引入进程这个概念,大家一定要从抽象的角度理解,这里的进程是为了更好管理、描述程序

  • 就像大学生一样,在校学生彼此之间都一样,都是学生。但是学校为了更好的管理我们,采用一些抽象的东西去描述我们(例如学号、学习成绩),把与我们相关的东西全部整合在一起,这样一个学生就更具体,更方便的描述和管理。和进程一样,它本质就是程序,但是如果没有进程这样的概念进行描述,那么它的有些东西是无法被很好的管理的,例如优先级,通信等等

如下是一段C语言程序,将其运行在Linux下

#include <stdio.h>
#include <unistd.h>

int main()
{
	while(1)
	{
		printf("Hello\\n");
		sleep(1);
	}
}

  • 当按下回车键后,该程序将会被加载进内存,与其相关的指令和数据会构成进程

(2)进程如何管理——先描述、再组织

先描述、再组织:这是学习操作系统的一个核心理解。正如描述学生一样,有其年龄、学号等诸多信息,这些信息由很多指针指向,所有与你有关的指针均保存在一个结点内,然后你这个节点后面连接了下一个节点,下一个节点保存的又是另外一个同学的属性。老师管理时,只需要手握这张链表,增删查改,管理非常方便

那么对于操作系统也是一样,操作系统想要管理这诸多进程,也必须为其配备专门的数据结构,这样的数据结构我们称之为——进程控制块(Process Control Block,PCB)

  • 需要注意的是PCB只是进程控制块的控制,每个操作系有其独特的PCB,比如在Linux中它的进程控制块叫做task_struct

PCB是进程存在的唯一标识,所谓创建进程,实则是创建描述进程的PCB,然后把PCB这样的数据结构连接到统一的进程队列中交由CPU进行调度;撤销进程实则就是在释放PCB

(3)进程实体

进程实体PCB+程序段(存放程序代码)+数据段(存放程序运行时产生的数据)组成这三部分组成了进程实体

这里一定要区分进程实体和进程这组概念的区别,引入进程实体后,进程可以被定义为 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。对于初学者这句话可能理解的不是那么透彻,但是请放心,在学习完线程之后,大家对于这句话会有一个全新的体会的

  • 进程是动态概念,进程实体是静态概念
  • 就像班级班上的同学一样,这个班的同学就是这个班的“进程实体”,班级的运行反映的就是同学们的运行过程,班级是一个独立的单位(比如说打扫卫生,分配工具等都是一个班级为单位的)

二:进程的组成

一个进程包含三部分,每部分大致信息如下

  • 进程标识符:用于标识各个进程,每个进程都有唯一一个标识号
  • 进程控制和管理信息:例如当前进程的状态、进程的优先级等
  • 资源分配清单:用于说明有关内存地址空间或虚拟地址空间的状况、所打开文件的列表和所使用的输入/输入设备信息
  • 处理机处理机相关信息:主要指处理机中各寄存器的值

我们看看具体的,Linux中的task_struct核心信息包含如下

种类包含
标识符描述本进程的唯一标识符,类似于身份证
状态任务状态,退出代码,退出信号
优先级相对于其他进程的优先级
程序计数器程序中即将被执行的下一条指令地址
内存指针包括程序代码和进程相关数据的指针等
上下文数据进程执行时处理器的寄存器中的数据
I/O状态信息包括显示的输入输出请求等

三:进程的组织

前面就说过单个进程可以用PCB描述,但如果有成百上千个PCB该如何管理呢,这就涉及到多个进程如何组织的问题了

进程的组织方式主要有:

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

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

四:进程的特征

进程具有如下特征

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

以上是关于(王道408考研操作系统)第二章进程管理-第一节1:进程PCB及其特征的主要内容,如果未能解决你的问题,请参考以下文章

(王道408考研操作系统)第二章进程管理-第一节1:进程PCB及其特征

(王道408考研操作系统)第二章进程管理-第一节5:线程概念和多线程模型

(王道408考研操作系统)第二章进程管理-第一节3:进程控制(配合Linux讲解)

专栏必读王道考研408操作系统万字笔记(有了它不需要你再做笔记了):各章节内容概述导航和思维导图

(王道408考研操作系统)第三章内存管理-第一节7:非连续分配管理方式之基本分段管理方式

(王道408考研操作系统)第三章内存管理-第一节7:非连续分配管理方式之基本分段管理方式