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

相关文章

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

使用DrissionPage控制360浏览器的完美解决方案

《使用DrissionPage控制360浏览器的完美解决方案》在网页自动化领域,经常遇到需要保持登录状态、保留Cookie等场景,今天要分享的方案可以完美解决这个问题:使用DrissionPage直接... 目录完整代码引言为什么要使用已有用户数据?核心代码实现1. 导入必要模块2. 关键配置(重点!)3.

Linux中的进程间通信之匿名管道解读

《Linux中的进程间通信之匿名管道解读》:本文主要介绍Linux中的进程间通信之匿名管道解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基本概念二、管道1、温故知新2、实现方式3、匿名管道(一)管道中的四种情况(二)管道的特性总结一、基本概念我们知道多

Linux进程终止的N种方式详解

《Linux进程终止的N种方式详解》进程终止是操作系统中,进程的一个重要阶段,他标志着进程生命周期的结束,下面小编为大家整理了一些常见的Linux进程终止方式,大家可以根据需求选择... 目录前言一、进程终止的概念二、进程终止的场景三、进程终止的实现3.1 程序退出码3.2 运行完毕结果正常3.3 运行完毕

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

Spring Security注解方式权限控制过程

《SpringSecurity注解方式权限控制过程》:本文主要介绍SpringSecurity注解方式权限控制过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、摘要二、实现步骤2.1 在配置类中添加权限注解的支持2.2 创建Controller类2.3 Us

Python中如何控制小数点精度与对齐方式

《Python中如何控制小数点精度与对齐方式》在Python编程中,数据输出格式化是一个常见的需求,尤其是在涉及到小数点精度和对齐方式时,下面小编就来为大家介绍一下如何在Python中实现这些功能吧... 目录一、控制小数点精度1. 使用 round() 函数2. 使用字符串格式化二、控制对齐方式1. 使用