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

相关文章

Java进程CPU使用率过高排查步骤详细讲解

《Java进程CPU使用率过高排查步骤详细讲解》:本文主要介绍Java进程CPU使用率过高排查的相关资料,针对Java进程CPU使用率高的问题,我们可以遵循以下步骤进行排查和优化,文中通过代码介绍... 目录前言一、初步定位问题1.1 确认进程状态1.2 确定Java进程ID1.3 快速生成线程堆栈二、分析

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

Python多进程、多线程、协程典型示例解析(最新推荐)

《Python多进程、多线程、协程典型示例解析(最新推荐)》:本文主要介绍Python多进程、多线程、协程典型示例解析(最新推荐),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 目录一、multiprocessing(多进程)1. 模块简介2. 案例详解:并行计算平方和3. 实现逻

C#通过进程调用外部应用的实现示例

《C#通过进程调用外部应用的实现示例》本文主要介绍了C#通过进程调用外部应用的实现示例,以WINFORM应用程序为例,在C#应用程序中调用PYTHON程序,具有一定的参考价值,感兴趣的可以了解一下... 目录窗口程序类进程信息类 系统设置类 以WINFORM应用程序为例,在C#应用程序中调用python程序

MySQL精准控制Binlog日志数量的三种方案

《MySQL精准控制Binlog日志数量的三种方案》作为数据库管理员,你是否经常为服务器磁盘爆满而抓狂?Binlog就像数据库的“黑匣子”,默默记录着每一次数据变动,但若放任不管,几天内这些日志文件就... 目录 一招修改配置文件:永久生效的控制术1.定位my.cnf文件2.添加核心参数不重启热更新:高手应

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序