计算机操作系统-第二章 进程的描述与控制

190 阅读6分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

第二章 进程的描述与控制

现代OS中进程和线程的概念

进程:是资源分配的和独立运行的基本单位。 线程:是系统调度的基本单位。

前驱图和程序执行

  1. 前驱图 有向无循环图(DAG )。描述一个程序的各部分(程序段或语句)间的依赖关系,或者是一个大的计算的各个子任务间的因果(前后) 关系。前趋图中的每个结点可以表示一条语句、一个程序段或一个进程,结点间的有向边表示两个结点之间存在的偏序关系或前趋关系“→ ”。没有前趋的结点称为初始结点,没有后继的结点称为终止结点。此外,每个结点还具有一个权值,用于表示该结点所含有的程序量或结点的执行时间。
  2. 程序顺序执行
  • 顺序性
  • 封闭性
  • 可再现性
  1. 程序并发执行
  • 异步性
  • 失去封闭性
  • 不可再现性 在这里插入图片描述

进程的描述

进程的定义

进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。 扩:进程实体:程序段+数据段+PCB

进程的特征

  • 动态性
  • 并发性
  • 独立性
  • 异步性

进程和程序的区别

程序是指令的有序集合,是静态的,其存在是无生命周期的,而进程由程序段、数据段、PCB组成,是动态的,有生命周期的。

进程的状态模型

  1. 二状态模型 Running Not-Running
  2. 三状态模型 Running Ready Block
  3. 五状态模型 Running Ready Block New Exit
  4. 七状态模型 Running Ready Block Ready,Suspend Block,Suspend New Exit

挂起需要用到Swapping技术;

如何区分阻塞Or挂起?

  • 进程是否等待事件,阻塞与否
  • 进程是否被换出内存,挂起与否

进程控制块PCB

  1. 定义: 是操作系统为了管理和控制进程的运行,而为每一个进程定义的一个数据结构,它记录了系统管理进程所需的全部信息。
  2. 位置: 常驻内存,存放在操作系统中专门开辟的PCB区内。
  3. 作用: a. 作为独立运行基本单位的标志,进程存在的唯一标志,系统根据PCB而感知相关进程的存在。 b. 能实现间断性运行方式。保护现场 c. 提供进程管理所需要的信息 d. 提供进程调度所需要的信息 e. 实现与其他进程的同步和通信
  4. 内容: a. 进程标识符 b. 处理机状态 c. 进程调度信息 d. 进程控制信息

进程控制

操作系统内核的功能

  1. 支撑功能
  • 中断处理
  • 时钟管理
  • 原语1操作
  1. 资源管理功能
  • 进程管理
  • 存储器管理
  • 设备管理

进程的层次结构

  • 子进程可继承父进程的所有资源
  • 子进程撤销时要把资源归还给父进程
  • 父进程撤销时也必须撤销所有子进程

引起进程创建的事件

用户登录、作业调度、提供服务、应用请求

进程创建流程

  • 为进程分配一个唯一标识号
  • 为进程分配空间
  • 初始化PCB
  • 建立链接
  • 建立或扩展其他数据结构

引起进程结束的事件

正常、异常、外界干预

进程的终止过程

  • 根据PID找到PCB,读出该进程的状态
  • 若该进程为执行状态,则终止其执行,调度新进程执行
  • 若该进程有子孙进程,则立即终止其所有子孙进程
  • 将该进程的全部资源,或归还其父进程,或归还系统
  • 将被终止进程的PCB从所在队列中移出,等待其他程序来搜集信息

进程的阻塞与唤醒

阻塞是主动的,唤醒是被动的

进程的挂起与激活

挂起是由进程自己或其父进程调 Suspend 原语完成。激活是由父进程或用户进程请求激活指定进程,系统利用 Active 原语将指定进程激活。

线程相关

  1. 当引入线程后,线程是系统调度的基本单位,进程是资源分配的基本单位,而不再是一个可执行的实体。
  2. 进程与线程的存在方式 在这里插入图片描述
  3. 进程与线程的比较 在这里插入图片描述

进程同步

定义

是指对多个相关进程在执行次序上进行协调,他的目的是使系统中诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。

机制

硬件机制、信号量机制、管程机制

制约关系

  • 直接制约关系(进程同步)
  • 间接制约关系(进程互斥) 在这里插入图片描述

临界资源

临界资源是一次只允许一个进程使用的资源,需要进程采用互斥方式访问;访问临界资源的那一段代码叫做临界区(CS区)。

同步机制规则

  • 空闲让进
  • 忙则等待
  • 有限等待
  • 让权等待

硬件机制

  • 关中断
  • TS指令
  • Swap指令 不符让权等待(造成了忙等)

信号量机制

操作:P、V操作 原语:wait、signal(必须成对存在) 类别:资源信号量、互斥信号量 资源信号量:申请/归还资源,可以初始化为一个正整数(>=0 表示可用资源数 <0表示被阻塞的进程数) 互斥信号量:申请/释放使用权,常初始化为1 注意事项:两个wait操作相邻的话,顺序很重要!同步wait必须在互斥wait前面!wait,signal成对出现,当为互斥操作时,处于同一进程,否则不在同一进程;使用PV不当,会产生死锁;

管程机制

定义:一个数据结构和在该数据结构上能被并发进程所执行的一组操作,这组操作能使进程同步和改变管程中的数据。 管程规定每次只准许一个进程执行,从而实现了进程互斥,保证了管程共享变量的数据完整性。

经典进程同步的同步问题

生产者消费者问题

资源信号量:full=0、empty=n(分别表示满缓冲区的数目、空缓冲区的数目) 互斥资源量:mutex=1 核心算法表示: 在这里插入图片描述

哲学家进餐问题

互斥资源量:五个 在这里插入图片描述 可能会出现死锁,改进如下: 在这里插入图片描述

读者写者问题

  1. 读者优先: 共享变量:readcount,当前读者个数,初值为0 互斥信号量:Rmutex=1(读互斥)、Wmutex=1(写互斥)在这里插入图片描述 在这里插入图片描述
  2. 写者优先 共享变量:readcount,当前读者个数,初值为0 互斥信号量:Rmutex=1(读互斥)、Wmutex=1(写互斥)、S=1(读写互斥) 在这里插入图片描述

进程通信

  1. 共享存储器系统
  2. 消息传递系统
  • 直接通信方式:消息缓冲通信
  • 间接通信方式:信箱通信方式
  1. 管道通信(共享文件通信)
  2. 客户机-服务器系统

Footnotes

  1. 由若干条指令组成的,用于完成一定功能的一个过程。是一个不可分割的基本单位,执行过程中不许中断。