0201-2-进程的描述与控制

2024-02-01 21:52
文章标签 进程 控制 描述 0201

本文主要是介绍0201-2-进程的描述与控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第二章进程的描述与控制

在这里插入图片描述

前驱图和程序执行

程序并发执行

程序的并发执行

程序并发执行时的特征

  • 间断性
  • 失去封闭性
  • 不可再现性

进程的描述

进程的定义

  • 进程是程序的一次执行
  • 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
  • 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位

进程的特征

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

从操作系统角度分类

  • 系统进程
  • 用户进程

进程和程序的区别

  • 进程是动态概念,而程序则是静态概念
  • 程序是指令的有序集合,永远存在;进程强调是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;
  • 进程具有并发性,而程序没有
  • 进程可创建其他进程,而程序并不能形成新的程序
  • 进程是竞争计算机资源的基本单位,程序不是

进程和程序的联系

  • 进程是程序在数据集上的一次执行
  • 程序是构成进程的组成部分,一个程序可对应多个进程,一个进程可包括多个程序
  • 进程的运行目标是执行所对应的程序
  • 从静态看,进程由程序、数据和进程控制块(PCB)组成

进程的基本状态及转换

  • 进程的三种基本状态
    • 就绪状态ready
    • 执行状态running
    • 阻塞状态block
  • 三种基本状态的转换
  • 创建状态和终止状态
    • 五状态进程模型
  • 注意
    • 阻塞态->运行态和就绪态->阻塞态这二种状态转换不可能发生

挂起操作和进程状态的转换

  • 挂起和阻塞的区别
  • 挂起操作的目的
    • 终端用户的需要: 修改、检查进程
    • 父进程的需要:修改、协调子进程
    • 对换的需要:缓和内存
    • 负荷调节的需要:保证实时任务的执行
  • 关键图

进程管理中的数据结构

  • 进程控制块PCB的作用
    • 作为独立运行基本单位的标志
    • 能实现间断性运行方式
    • 提供进程管理所需要的信息
    • 提供进程调度所需要的信息
    • 实现与其他进程的同步与通信
  • 进程控制块的信息
    • 进程标识符
      • 外部标识符PID
      • 内部标识符(端口)
    • 处理机状态
      • 通用寄存器
      • 指令计数器
      • 程序状态字PSW
      • 用户栈指针
    • 进程调度信息
      • 进程状态
      • 进程优先级
      • 进程调度所需的其他信息
      • 事件
    • 进程控制信息
      • 程序和数据的地址
      • 进程同步和通信机制
      • 资源清单
      • 链接指针
    • 进程控制块的组织方式
      • 线性方式
      • 链接方式
      • 索引方式

进程控制

操作系统内核

  • 两大功能
    • 支撑功能
      • 中断管理
      • 时钟管理
      • 原语操作
        • 进程的管理,由若干原语(primitive)来执行
    • 资源管理功能
      • 进程管理
      • 存储器管理
      • 设备管理
  • 状态
    • 系统态,管态,内核态
    • 用户态,目态

进程的创建

  • 进程的层次结构
    • 父进程
    • 子进程
  • 引起创建进程的事件
    • 用户登录
    • 作业调度
    • 提供服务
    • 应用请求
  • 进程的创建过程
    • 1.申请空白PCB
    • 2.为新进程分配其运行所需的资源
    • 3.初始化进程块PCB
    • 4.如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列
  • 进程的终止
    • 引起进程终止的事件
      • 1.正常结束
      • 2.异常结束
      • 3.外界干预
    • 进程的终止过程
      • 1.根据被终止进程的标识符
  • 进程的阻塞与唤醒
    • 引起进程阻塞和唤醒的事件
      • 请求系统服务而未满足
      • 启动某种操作而阻塞当前进程
      • 新数据尚未到达
      • 无新工作可做:系统进程
    • 进程阻塞过程(自己阻塞自己)
    • 进程唤醒过程(系统或其他进程唤醒自己)
  • 进程的挂起与激活
    • suspend
    • active

进程同步

  • 基本概念
    • 两种形式的制约关系
      • 间接相互制约关系
        • 互斥——竞争
      • 直接相互制约关系
        • 同步——协作
    • 临界资源
    • 分区
      • 进入区enter section
      • 临界区critical section
      • 退出区exit section
      • 剩余区remainder section
    • 同步机制应遵循的规则
      • 1.空闲让进
      • 2.忙则等待
      • 3.有限等待
      • 4.让权等待
  • 进程同步机制
    • 软件同步机制:都没有解决让权等待,而且部分方法还会产生死锁的情况
    • 硬件同步机制
      • 关中断
      • 利用Test-and-Set指令实现互斥
      • 利用swap指令实现进程互斥
    • 信号量机制
      • 整型信号量
      • 记录型信号量
        • 由于整型信号量没有遵循让权等待原则,记录型允许负数,即阻塞链表
      • AND型信号量
      • 信号量集
        • 理解:AND型号量的wait和signal仅能对信号施以加1或减1操作,意味着每次只能对某类临界资源进行一个单位的申请或释放。当一次需要N个单位时,便要进行N次wait操作,这显然是低效的,甚至会增加死锁的概率。此外,在有些情况下,为确保系统的安全性,当所申请的资源数量低于某一下限值时,还必须进行管制,不予以分配。因此,当进程申请某类临界资源时,在每次分配前,都必须测试资源数量,判断是否大于可分配的下限值,决定是否予以分配
        • 操作
          • Swait(S1,t1,d1…Sn,tn,dn)
          • Ssignal(S1,d1…Sn,dn)
        • 特殊情况
  • 经典进程的同步问题
    • 生产者–消费者问题
    • 哲学家进餐问题
    • 读者–写者问题

进程通信

进程通信是指进程之间的信息交换,又称低级进程通信

进程通信的类型

  • 共享存储器系统
    • 基于共享数据结构的通信方式
      • 生产者和消费者
    • 基于共享存储区的通信方式
      • 高级通信
  • 管道通信系统(pipe)
    • 高级通信
  • 消息传递系统
    • 高级通信
    • 方式分类
      • 直接通信
      • 间接通信
  • 客服机–服务器系统

消息传递通信的实现方式

  • 直接消息传递系统
  • 信箱通信

线程的基本概念

线程的引入

  • 线程的引入正是为了简化线程间的通信,以小的开销来提高进程内的并发程度
  • 多线程并发的不足
    • 进程的两个基本属性
      • 一个拥有资源的独立单位,可独立分配系统资源
      • 一个可独立调度和分派的基本单位,PCB
    • 程序并发执行所需付出的时空开销
      • 创建进程
      • 撤销进程
      • 进程切换
    • 进程间通信效率低
    • 将分配资源和调度两个属性分开
  • 线程——作为调度和分派的基本单位
    • 进程是系统资源分配的单位,线程是处理器调度的单位
    • 线程表示进程的一个控制点,可以执行一系列的指令。通常,和应用程序的一个函数相对应
    • 进程分解为线程还可以有效利用多处理器和多核计算机

线程与进程的比较

  • 不同点
    • 调度的基本单位
    • 并发性
  • 相似点
    • 状态:运行、阻塞、就绪
    • 线程具有一定的生命期
    • 进程可创建线程,一个线程可创建另一个子线程
    • 多个线程并发执行时仍然存在互斥与同步

线程的实现

  • 线程的实现方式
    • 内核支持线程KST
    • 用户级线程ULT
    • 组合方式
  • 多线程OS中的进程属性
    • 进程是一个可拥有资源的基本单位
    • 多个线程可并发执行
    • 进程已不是可执行的实体
  • 线程的状态和线程控制块
    • 线程运行的三个状态
      • 执行状态
      • 就绪状态
      • 阻塞状态
    • 线程控制块TCB

XMind: ZEN - Trial Version

这篇关于0201-2-进程的描述与控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668597

相关文章

python多进程实现数据共享的示例代码

《python多进程实现数据共享的示例代码》本文介绍了Python中多进程实现数据共享的方法,包括使用multiprocessing模块和manager模块这两种方法,具有一定的参考价值,感兴趣的可以... 目录背景进程、进程创建进程间通信 进程间共享数据共享list实践背景 安卓ui自动化框架,使用的是

C#如何优雅地取消进程的执行之Cancellation详解

《C#如何优雅地取消进程的执行之Cancellation详解》本文介绍了.NET框架中的取消协作模型,包括CancellationToken的使用、取消请求的发送和接收、以及如何处理取消事件... 目录概述与取消线程相关的类型代码举例操作取消vs对象取消监听并响应取消请求轮询监听通过回调注册进行监听使用Wa

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

[Linux]:进程(下)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 进程终止 1.1 进程退出的场景 进程退出只有以下三种情况: 代码运行完毕,结果正确。代码运行完毕,结果不正确。代码异常终止(进程崩溃)。 1.2 进程退出码 在编程中,我们通常认为main函数是代码的入口,但实际上它只是用户级

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

java 进程 返回值

实现 Callable 接口 与 Runnable 相比,Callable 可以有返回值,返回值通过 FutureTask 进行封装。 public class MyCallable implements Callable<Integer> {public Integer call() {return 123;}} public static void main(String[] args

C#关闭指定时间段的Excel进程的方法

private DateTime beforeTime;            //Excel启动之前时间          private DateTime afterTime;               //Excel启动之后时间          //举例          beforeTime = DateTime.Now;          Excel.Applicat

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理 秒杀系统是应对高并发、高压力下的典型业务场景,涉及到并发控制、库存管理、事务管理等多个关键技术点。本文将深入剖析秒杀商品业务中常见的几个核心问题,包括 AOP 事务管理、同步锁机制、乐观锁、CAS 操作,以及用户限购策略。通过这些技术的结合,确保秒杀系统在高并发场景下的稳定性和一致性。 1. AOP 代理对象与事务管理 在秒杀商品