2.1(1) 进程

进程的概念、组成和特征

进程的概念

引例】打开任务管理器,其中就可以看见系统中正在运行的进程

在这里插入图片描述

此时想要使用QQ的话,就打开QQ程序,QQ程序开始运行,那么在进程中也会出现对应的QQ相关的一条信息

在这里插入图片描述

如果想要同时登陆多个QQ号,那么可以多次打开QQ程序,那么在进程中也会出现对应的QQ相关的多条信息

在这里插入图片描述

上图中,进程中QQ相关的条目出现了3条,也就是说在系统中,此时有3个QQ进程正在运行,虽然三次打开的都是 QQ.exe 程序,但是同一程序的3次执行会对应3个不同的进程

【程序和进程】

程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列指令的集合

进程:是动态的,是程序的一次执行过程

进程的组成

一个进程实体(进程映像)PCB、程序段、数据段组成

进程动态的进程实体(进程映像)静态的

进程是进程实体的运行过程,是系统进行资源分配调度的一个独立单位(一个进程被调度就是指操作系统决定让这个进程上CPU运行)

在这里插入图片描述

PCB

操作系统需要对各个并发运行的进程进行管理,但凡管理时所需要的信息,都会被放在PCB中
在这里插入图片描述

操作系统对进程进行管理工作所需的信息都存在PCB中

PCB是进程存在的唯一标志

程序段 & 数据段

PCB 是给操作系统用的,程序段、数据段是给进程自己用的

下图解释了程序是如何运行的:

在这里插入图片描述

【解释】程序经过编译等步骤之后形成可执行文件存放在硬盘中,可执行文件中保存的就是一系列的指令序列,在程序运行之前需要将可执行文件从硬盘读入到内存中,并且操作系统会建立一个与之相对应的进程,也就是建立相对应的PCB,除此之外可执行文件中的一系列指令序列也需要读到内存中,称之为程序段,进程执行的过程也就是CPU从内存中读入指令并执行,内存中还会有一个数据段区域,用于存放程序运行过程中需要使用的各种数据

进程的特征

程序是静态的,进程是动态的。相比于程序,进程拥有以下特征:

  • 动态性:进程是程序的一次执行过程,是动态地产生、变化和消亡的

    动态性是进程最基本的特性

  • 并发性:内存中有多个进程实体,各进程可并发执行

  • 独立性:进程是能独立运行、独立获得资源、独立接受调度的基本单位

  • 异步性:各进程按各自独立的、不可预知的速度向前推进,操作系统要提供“进程同步机制”来解决异步问题

    (异步性会导致并发程序执行结果的不确定性)

  • 结构性:每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成

进程的状态与转换

进程的状态

进程正在被创建时,它的状态是“创建态”,在这个阶段操作系统会为进程分配资源、初始化PCB

当进程创建完成之后,便进入“就绪态”,处于就绪态的进程已经具备运行条件,但由于没有空闲CPU,就暂时不能运行(系统中可能会有多个进程处于就绪态)

当CPU空闲时,操作系统就会选择一个就绪进程,让它上处理机运行
如果一个进程此时正在CPU上运行,那么这个进程处于“运行态”(CPU会执行该进程对应的程序,即执行指令序列)

在进程运行的过程中,可能会请求等待某个事件的发生(如等待某种系统资源的分配,或者等待其他进程的响应)
在这个事件发生之前,进程无法继续往下执行,此操作系统会让这个进程下CPU,并让它进入“阻塞态
当CPU空闲时,又会选择另一个“就绪态”进程上CPU运行

一个进程可以执行exit系统调用,请求操作系统终止该进程,此时该进程会进入“终止态”,操作系统会让该进程下CPU,并回收内存空间等资源,最后还要回收进程的PCB

在这里插入图片描述

进程PCB中,会有一个变量 state 来表示进程的当前状态。如:1表示创建态、2表示就绪态、3表示运行态…
为了对同一个状态下的各个进程进行统一的管理,操作系统会将各个进程的PCB组织起来

进程状态的转换

在这里插入图片描述

注意不能由阻塞态直接转换为运行态,也不能由就绪态直接转换为阻塞态(因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这种请求)


计算机操作系统】 专栏的文章 均有参考 《王道计算机考研 操作系统》 课程视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值