概述
本系列文章为西安电子科技大学出版社的《操作系统》所做笔记,可供复习,预习,408使用。
本章节所使用的课件截图来自于网课操作系统
本系列文章也会有配套题目的解析,请点一下关注或者点入本人空间查找,谢谢支持
本文页数对应:P35--------------->P52
第二章目的与要求:
2.1 前驱图和程序执行
为什么要引入进程:由于多道程序系统的应用,内存中可以同时装入多个程序,并发执行。考虑到程序并发时的特征,才需要引入进程作为资源分配和独立运行的基本单位。
2.1.1 前驱图
定义:是一个有向无环图(DAG)用于描述进程之间执行的先后顺序。
图中的每个结点可用来表示一个进程或程序段。结点之间的有向边表示两个结点之间存在的偏序或前驱关系
没有前驱的结点是初始结点,没有后继的结点是终止结点
结点也可以拥有权重
如下图:比较形象也比较容易理解
2.1.2 程序顺序执行
程序顺序执行的特征:
(1)顺序性
(2)封闭性
(3)可再现性
2.1.3 程序(进程)并发执行
只有不存在前驱关系的程序之间才能并发执行
程序(进程)并发执行时的特征
(1)间断性
(2)失去封闭性
(3)不可再现性
程序在并发执行是,由于失去了封闭性,其计算结果必将与并发程序的执行速度有关,从而使程序的执行失去了可再现性
2.2 进程的描述(重要!)
目的:让程序在并发执行的时候依然具有可再现性,封闭性,顺序性
2.2.1 进程的定义与特征(重要!!!)
进程的定义:
进程的特征:
程序:菜单上的菜, 进程:点菜后厨师做菜的过程
2.2.2 进程的基本状态及转换(重要!!!)
(1)进程的三种基本状态
进程收到阻塞后,引起进程调度
(2)三种基本状态的转换
注意:阻塞不能重新进行执行状态, 一定要回到就绪状态才能回到执行状态
(3)创建状态和终止状态
- 创建状态
进程是由创建而产生。首先进程申请一个空白的PCB。并将PCB中填写用于控制和管理进程的信息,然后为该进程分配运行时所需要的资源。
引入创建状态是为了保证程序的调度必须在创建工作完成后进行,以确保对进程控制块操作的完整性。 - 终止状态
首先,等待OS进行善后处理,最后将PCB清零,并将PCB空间返还系统。
2.2.3 挂起操作和进程状态的转换
挂起:把进程从内存移到外存的操作
与挂起相对应的操作是激活
活动的意思是进程还在内存中
2.2.4 进程管理中的数据结构
OS为便于维护和管理计算机中的各类资源(包括硬件和信息),建立了相应的数据结构从而实现管理
内存:内存表
设备:设备表
文件:文件表
进程:进程表(被称为进程控制块PCB)
1. 进程控制块PCB的作用(重要!!!)
2. 进程控制块中的信息
-
- 进程标示符
每个进程都必须有一个唯一的标识符
- 内部标示符
外部标示符
-
- 处理机状态
主要由处理机的各种寄存器中的内容组成。处理机运行时的信息存放在寄存器中,当被中断时这些信息要存放在PCB中。
-
- 进程调度信息
- 进程状态
- 进程优先级
- 进程调度所需的其他信息(与采用的进程调度算法有关)
- 事件
-
- 进程控制信息
- 程序和数据的地址
- 进程通信和同步机制
- 资源清单
- 链接指针
3. 进程控制块的组织方式
(1)链接方式
在就绪队列中按进程的优先级从高到低排列
(2)索引方式
(3)线性方式
PCB都组织在一张线性表中
2.3 进程控制(重要!)
进程控制是进程管理中最基本的功能
进程控制一般由OS的内核中的原语来实现的
2.3.1 操作系统内核
为防止OS本身及关键数据(PCB等)遭受无意或有意的破坏,通常将处理机的执行状态分为系统态和用户态。
OS内核两大功能:
- 支撑功能
- 中断管理
- 时钟管理
- 原语操作
原子操作在系统态下执行,常驻内存。整体执行
- 资源管理功能
- 进程管理
- 存储器管理
- 设备管理
2.3.2 进程的创建
1. 进程图
在PCB中设置了家族关系表项,以标明自己的父进程及所有的子进程。进程不能拒绝子进程的继承权。
2. 进程的创建
引起创建进程的事件:1.用户登录2.作业调度3.提供服务4.应用请求
原语:是由若干条指令组成,能够完成一定功能的程序段
2.3.3 进程的终止
父进程拥有对子进程处置的权利
OS调用进程终止原语,按下述步骤执行:
2.3.4 进程的阻塞与唤醒
2.3.5 进程的挂起与激活