2.1 进程及其实现
- 进程的定义
- 进程的类型和特型
- 进程的状态和转换
- 进程控制块
- 进程要素
一. 进程定义:
进程是为了描述程序在并发执行时对系统资源的共享,所需的一个描述程序执行时动态特征的概念;
进程是具有独立功能的程序关于某个数据集合上的一次运行活动, 是系统进行资源分配、调度和保护的独立单位;
二. 进程的类型和特性
(1) 进程的分类:
系统进程: 操作系统的模块在系统执行的时候,所演化出的进程。常是操作系统的服务进程;
用户进程: 用户的应用程序在运行的时候,系统为应用程序所创建的进程;
(2) 进程的属性:
-
结构性:进程由进程控制块(PCB)、程序、数据和栈空间组成;
-
共享性:在一个系统中, 多个进程可以共享系统中的种种资源(这种共享又分为分时共享和空间共享);
-
动态性:进程的创建、运行、直到结束是一个动态的过程;
-
独立性:多个进程在系统中并发运行, 各进程之间互相独立;
-
制约性:有些进程之间是由制约关系的;(竞争资源制约,协同合作制约等)
-
并发性
(3)程序和进程之间的区别:
进程能真实的描述并发,而程序不行;
进程是由程序和数据和控制块构成;
程序是静态的,进程是动态的;
进程是有生命周期的,程序是相对长久的;
一个程序可以对应多个进程,反之亦然;
进程具有创建其他进程的功能,程序没有;
三. 进程的状态和转换
(1)三状态模型:
1.1 状态描述
1. 运行态:进程占有CPU,并在CPU上运行的状态;
2. 就绪态:进程已经具备运行条件,但没分配CPU,暂时不能运行;
3. 等待态(阻塞态,睡眠态):进程因等待某事件的发生而暂时不能运行的状态,即使CPU空闲,该进程也不可执行;
1.2 状态之间的转换:
就绪 -> 运行:调度程序选择进程运行;
运行 -> 就绪:运行进程用完了时间片;
运行 -> 等待:进程要求的资源并未分配;
等待 -> 就绪:进程等待的事件发生;
未分配资源的原因有很多例如:
-
进程要求某项服务,但操作系统尚未完成该服务
-
对资源的访问尚不能进行
-
初始化IO且需等待结果
-
等待某一进程提供输入
(2) 五进程状态模型:
新添加的状态转换:
无 - > 新建态: 创建子进程;
新建态 -> 就绪态: 系统完成进程创建操作,且当前系统的资源都满足运行条件;
运行态 -> 终止态:进程到达自然结束点,或者出现了无法克服的错误,或者被操作系统终结,或者被其他有终止权的进程终止;
终止态 -> NULL:完成善后操作
就绪态 -> 终止态:父进程终结子进程
等待态 -> 终止态:父进程终止子进程
(3)七进程状态模型:
新添加的状态:挂起状态; (就绪挂起态、等待挂起态)
在并发的环境中, 进程不断的创建,系统资源已经不能满足所有进程运行时对内存资源的需求。
此时系统会将内存中的一部分进程临时保存到磁盘的镜像区中(挂起),暂时不参与进程的调度,以减少系统操作的负荷;
四. 进程控制块(PCB):
(1)定义:
PCB时系统为了管理进程设置的专门数据结构,用来记录进程的外部特征,描述进程的变化过程;
PCB也是系统感知进程存在的唯一标志,进程与PCB一一对应;
(2)PCB的构成:
1 . 进程的描述信息 :
包括:
进程的标识符(process ID),唯一, 通常为一个整数;
进程名,通常基于可执行文件名(不唯一);
用户标识符(user ID);
进程组关系;
2 . 进程控制信息:
当前状态, 优先级, 代码执行入口地址, 代码的外存地址…
3 . 所拥有的资源和使用情况:
虚拟地址空间的现状, 打开文件列表
4 . CPU现场保护信息
寄存器值,指向赋予该进程的段/页表的指针
(3)PCB的组织:
系统把PCB组织在一起,放入内存, 构成PCB表;
PCB表的大小决定了系统中最多可同时存在的进程的个数,称为系统的并发度;
一般来说,PCB表是以队列的形式组织的,分为两种队列:1. 就绪队列 2.等待队列(有多个队列,按等待的事件划分)
五. 进程的要素:
(1)进程的构成: PCB, 程序段, 数据段, 栈空间;
PCB处于进程的核心段, 用户进程不能直接访问,修改自身的PCB;
(2)进程上下文: 进程本身 + 运行环境, 对进程执行活动全过程的静态描述
进程上下文可以分为三个部分:
- 寄存器上下文: 进程和CPU相关的内容
- 系统级上下文:主要包括操作系统内核直接管理的内存区的内容
- 用户级上下文:进程的用户地址空间
系统中进程的调度和切换,其实就是进程上下文的切换:
-
保存被中断进程的处理器现场信息
-
把被中断进程的进程控制块加入有关队列
-
选择下一个处理器运行的进程
-
修改被选中进程的PCB的有关信息
-
根据被选中进程的PCB恢复处理器现场
由此完成了一个进程切换出CPU,一个进程切换进CPU的转换过程。
收藏了收藏了!!!!
(♡˙︶˙♡)等以后我写个目录,就不用一篇一篇收藏了哈哈
巨巨要更新一个系列,是吗?
是的,坚持到底吧
那加油~~~
谢谢~