进程管理

目录

 

进程管理

进程与PCB

程序顺序执行时的特征

并发程序错误执行

进程

进程的特征

进程和程序的区别

进程三种基本状态

挂起

PCB的重要性

PCB的组织方式

进程控制与同步

进程控制基本过程

进程创建的过程

进程终止的过程​

进程阻塞与唤醒过程

进程同步的基本概念

同步控制的关键

信号量机制

整型信号量

记录型信号量

AND型信号量

信号量集

管程

信号量机制不足

管程的组成​

管程特点

管程实现同步

条件变量​

管程的优点

管程的缺点

进程通信、线程

进程通信

进程通信类型

消息传递通信的实现方法

消息传递系统的实现

线程的属性

线程的创建和终止​​​​​​​​

进程管理

进程与PCB

程序顺序执行时的特征

  1. 顺序性:处理机的操作严格按照程序规定的顺序执行
  2. 封闭性:程序一旦开始执行,其计算结果不受外界因素影响
  3. 可再现性:程序执行只要初始条件一样,不论如何停顿,重复执行多少次结果都一样

并发程序错误执行

  • 间断性(运行表现)                                                                                                                                                                                              多道 -> 程序并发执行-> 共享系统的资源 -> 形成相互制约的关系
  • 失去封闭性                                                                                                                                                                                                              共享资源,资源状态由多道程序改变,程序运行失去封闭性。即程序运行受其他程序的影响。
  • 不可再现性进程管理_第1张图片

进程

进程管理_第2张图片

定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位

进程的特征

  1. 结构性特征,进程的根本——PCB
  2. 动态性
  3. 并发性
  4. 独立性
  5. 异步性

进程和程序的区别

进程管理_第3张图片

进程三种基本状态

  1. 就绪状态(Ready)
  2. 运行状态(Running)
  3. 阻塞状态(Blocked)

进程管理_第4张图片

注:

  1. 单处理机系统,执行态的进程只有一个
  2. 阻塞队列有的会根据不同原因再排成多个队列

挂起

进程管理_第5张图片

进程实体:代码段+数据段+PCB。

PCB的重要性

进程管理_第6张图片

PCB内部结构

进程管理_第7张图片

主要由处理机的各种寄存器中的内容组成,被中断时这些信息要存放到PCB

进程管理_第8张图片

PCB的组织方式

  1. 链接方式进程管理_第9张图片
  2. 索引方式进程管理_第10张图片

进程控制与同步

进程控制基本过程

  • 进程的创建
  • 进程的终止
  • 进程的终止进程的阻塞和唤醒
  • 进程的挂起和激活

进程创建的过程

  1. 申请空白PCB
  2. 为新进程分配资源
  3. 初始化进程控制块(PCB)
  4. 将新进程插入就绪队列

进程终止的过程进程管理_第11张图片

 

进程阻塞与唤醒过程

阻塞:

  1. 将PCB状态改为阻塞
  2. 将PCB加入到对应的阻塞队列中
  3. 转进程调度,将处理机分配给另一进程
  4. 进行进程切换,根据两个切换进程的PCB保护与重新设置处理机状态

唤醒:

  1. 把进程从阻塞队列里移出
  2. 把PCB中现行状态改为就绪态
  3. 将PCB插入就绪队列中

进程同步的基本概念

(1)进程同步的主要任务:

使并发执行的各个进程之间能够有效的共享资源和相互合作,从而使程序的执行具有可再现性。

(2)临界资源:

一次只允许一个进程使用的资源

理解同步:

互斥:在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须等待,直到占用临界资源的进程退出临界区,我们称进程之间的这种相互制约关系为“互斥”。

同步:多个相互合作的进程,在一些关键点上可能需要互相等待或互相交换信息,这种相互制约关系称为进程同步关系。可理解为“有序”。

(3)临界区:

每个进程中访问临界区资源的代码称为临界区代码。

进程管理_第12张图片

(4)同步机制应遵循的规则:

  • 空闲让进:资源使用最基本的规则
  • 忙则等待:保证互斥
  • 有限等待:合适时被唤醒,防止死等
  • 让权等待:能主动释放CPU防止忙等

同步控制的关键

进程管理_第13张图片

信号量机制

整型信号量

进程管理_第14张图片

  1. 信号量定义为一个整型量
  2. 根据初始情况赋相应的值
  3. 仅能通过两个原子操作来访问

记录型信号量

进程管理_第15张图片

当信号量>=0时,代表可供并发进程所使用的资源实体数

当信号量<0时,表示正在等待使用该资源的进程数

实现有序:

进程管理_第16张图片

AND型信号量

进程管理_第17张图片

信号量集

进程管理_第18张图片

进程管理_第19张图片

管程

信号量机制不足

  • 正确性分析困难
  • 分散的P、V操作:易出错,使用不当可能导致死锁
  • 修改、维护困难:易读性差,任一修改都可能影响全局;测试期间发现错误困难,即使发现错误也不容易定位出错位置

管程的组成进程管理_第20张图片

管程特点

  • 任何进程只能通过调用管程提供的过程入口才能进入管程访问共享数据
  • 任何时刻,仅允许一个进程在管程中执行某个内部过程

管程实现同步

进程管理_第21张图片

条件变量进程管理_第22张图片

管程的优点

  • 保证进程互斥地访问共享变量,并方便地阻塞和唤醒进程。管程可以以函数库的形式实现。相比之下,管程比信号量好控制
  • 管程可增强模块的独立性:系统按资源管理的观点分解成若干模块,用数据表示抽象系统资源,使同步操作相对集中,从而增加了模块的相对独立性
  • 引入管程可提高代码的可读性,便于修改和维护,正确性易于保证:采用集中式同步机制。一个操作系统或并发程序由若干个这样的模块所构成,一个模块通常较短,模块之间关系清晰

管程的缺点

  • 大多数常用的编程语言中没有实现管程,如果某种语言本身不支持管程,那么加入管程是很困难的
  • 虽然大多数编程语言也没有实现信号量,但可将PV操作作为一个独立的子例程或操作系统的管理程序调用加入

进程通信、线程

进程通信

进程管理_第23张图片

进程通信类型

  1. 共享存储器系统(操作存储区方式)进程管理_第24张图片进程管理_第25张图片
  2. 消息传递系统(发--收方式)进程管理_第26张图片
  3. 管道通信(中间文件方式)进程管理_第27张图片
  4. Client Server System

消息传递通信的实现方法

  1. 直接通信方式
  2. 间接通信方式

消息传递系统的实现

  1. 通信链路的建立进程管理_第28张图片
  2. 消息格式进程管理_第29张图片
  3. 同步方式进程管理_第30张图片

线程的属性

进程管理_第31张图片

线程的创建和终止进程管理_第32张图片​​​​​​​

 

你可能感兴趣的:(操作系统)