操作系统学习-进程的描述与控制


前言

本博客仅做学习笔记,如有侵权,联系后即刻更改

科普:


前趋图和程序执行

  1. 前趋图

是有向无循环图

  • 前趋关系
    表示一个执行完成之前,另一个不能开始
  1. 程序顺序执行

特征

  1. 顺序性
  2. 封闭性
    程序独占全机资源
  3. 可再现性
    程序重复执行,获得的结果相同
  1. 程序并发执行

前提

  • 并发执行的操作不存在前趋关系

特征

  1. 间断性
  2. 失去封闭性
  3. 不可再现性

进程的描述

定义和特征

  1. 定义

进程控制块(Process Control Block)

  • 程序的一次执行
  • 程序及其数据在数据机上顺序执行的活动
  • 具有独立功能的程序在一个数据集合运行的过程,是系统进行资源分配和调度的一个独立单位
  1. 特征
  1. 多态性
  2. 并发性
  3. 独立性
  4. 异步性

进程的基本状态及转换

三种基本状态(内存中)

  1. 就绪状态
  2. 执行状态
  3. 阻塞状态

三种基本状态的相互转换

在这里插入图片描述

创建和终止状态(外存)

创建步骤:

  1. 申请一个空白PCB,并向PCB中填写用于控制和管理进程的信息
  2. 然后为该进程分配运行时所必须的资源
  3. 把该进程转入就绪状态并插入就绪队列之中

终止步骤:

  1. 等待操作系统进行善后处理
  2. 将其PCB清零,并将PCB空间返还系统

五种基本状态的相互转换

在这里插入图片描述

挂起操作

  1. 引起挂起操作的原因

基于系统和用户的需求

  1. 终端用户的需要
  2. 父进程请求
  3. 负荷调节的需要
  4. 操作系统的需要
  1. 引入挂起原语操作

引入挂起原语Suspend和激活原语Active后,进程的转换类型

  1. 活动就绪→静止就绪
  2. 活动阻塞→静止阻塞
  3. 静止就绪→活动就绪
  4. 静止阻塞→活动阻塞
    在这里插入图片描述

进程管理中的数据结构

  1. 操作系统中用于管理控制的数据结构
  • 内存表
  • 设备表
  • 文件表
  • 用于进程管理的进程表(进程控制块PCB)
  1. 进程控制块PCB的作用

(1) 作为独立运行基本单位的标志
(2) 能实现间断性运行方式
(3) 提供进程管理所需要的信息
(4) 提供进程调度所需要的信息
(5) 实现与其它进程的同步与通信

  1. 进程控制块中的信息

进程标识符

  • 唯一地标识一个进程
  • 外部标识符
    为了方便用户(进程)对进程的访问
  • 内部标识符
    为了系统对进程的访问

处理机状态

  • 也称为处理机的上下文,主要是由处理机的各种寄存器中的内容组成的
  • 包括
    ①通用寄存器
    ②指令计数器
    ③程序状态字PSW
    ④用户栈指针

进程调度信息

  • 在OS进行调度时,必须了解进程的状态及有关进程调度的信息
  • 包括
    ① 进程状态
    ② 进程优先级
    ③ 进程调度所需的其它信息
    ④ 事件

进程控制信息

  • 用于进程控制所必须的信息
  • 包括
    ① 程序和数据的地址
    ② 进程同步和通信机制
    ③ 资源清单
    ④ 链接指针
  1. 进程控制块的组织方式
  1. 线性方式
    每次查找时都需要扫描整张表,因此适合进程数目不多的系统
  2. 链接方式
    把具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列
  3. 索引方式
    统根据所有进程状态的不同,建立几张索引表,并把各索引表在内存的首地址记录在内存的一些专用单元中、

进程控制

操作系统内核

  1. 支撑功能
  1. 中断处理
  2. 时钟管理
  3. 原语操作
    原子操作是一个不可分割的基本单位
  1. 资源管理功能
  1. 进程管理
  2. 存储器管理
  3. 设备管理

进程的创建

  1. 进程的层次结构

在OS中,允许一个进程创建另一个进程

  • UNIX中,进程与其子孙进程共同组成一个进程家族(组)
  • 在Windows中不存在任何进程层次结构的概念,所有的进程都具有相同的地位
  1. 引起创建进程的事件

为使程序之间能并发运行,应先为它们分别创建进程

  • 用户登录
  • 作业调度
  • 提供服务
  • 应用请求
  1. 进程创建
  1. 申请空白PCB
    为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB
  2. 为新进程分配其运行所需的资源
    包括各种物理和逻辑资源,如内存、文件、I/O设备和CPU时间等
  3. 初始化进程控制块(PCB)
  4. 如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列

进程的终止

  1. 引起进程终止的事件
  1. 正常结束
  2. 异常结束
  3. 外界干预
  1. 进程的终止过程

如果系统中发生了要求终止进程的某事件,OS便调用进程终止原语,终止指定的进程

  1. 根据被终止进程的标识符
    从PCB集合中检索出该进程的PCB,从中读出该进程的状态
  2. 若被终止进程正处于执行状态
    应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度
  3. 若该进程还有子孙进程
    还应将其所有子孙进程也都予以终止,以防它们成为不可控的进程
  4. 将被终止进程所拥有的全部资源或者归还给其父进程,或者归还给系统
  5. 将被终止进程(PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息

进程的阻塞与唤醒

  1. 引起的事件
  1. 向系统请求共享资源失败
  2. 等待某种操作的完成
  3. 新数据尚未到达
  4. 等待新任务的到达
  1. 进程阻塞过程

阻塞是进程自身的一种主动行为:进程通过调用阻塞原语block将自己阻塞

  • 先立即停止执行
    把进程控制块中的现行状态由“执行”改为阻塞
  • 并将PCB插入阻塞队列
  1. 进程唤醒过程
  • 首先把被阻塞的进程从等待该事件的阻塞队列中移出
    将其PCB中的现行状态由阻塞改为就绪
  • 然后再将该PCB插入到就绪队列中

进程的挂起与激活

  1. 进程的挂起
  2. 进程的激活过程

总结

小小励志

有些事你现在不做,一辈子都不会做了。
如果你想做一件事,全世界都会为你让路。
《搭车去柏林》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值