操作系统进程的描述与控制知识点

前趋图和程序执行
  1. 前趋图

    1. 定义:
      前趋图是指一个有向无循环图,可记为 DAG,它用于描述进程之间执行的先后顺序
    2. 图形表示:
      ![[Pasted image 20241104074746.png]]
  2. 程序的执行
    程序顺序执行时,系统资源的利用率很低

    1. 程序顺序执行时的特征
      1. 顺序性
      2. 封闭性
      3. 可再现性

    只有在不存在前趋关系的程序之间才有可能并发执行

    1. 程序并发执行时的特征
      1. 间断性
      2. 失去封闭性
      3. 不可再现性
进程的描述

为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,引入了进程概念

  1. 进程的定义和特征

    1. 进程的定义
      对于进程的定义,从不同的角度可以有不同的定义,其中较典型的定义有:
      1. 进程是程序的一次执行
      2. 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
      3. 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
    2. 进程的特征
      1. 动态性:动态性是进程的最基本的特征
      2. 并发性
      3. 独立性
      4. 异步性:进程是按异步方式运行的,即按各自独立的,不可预知的速度向前推进
    3. 进程实体
      通常,进程实体由程序控制块(PCB)、程序段、数据段三部分组成
  2. 进程的状态及转换

    1. 进程有三种基本状态:

      1. 就绪状态:进程已处于准备好运行的状态,已分配到除CPU以外的所有必要资源
      2. 执行状态:进程已获得CPU,其程序正在执行的状态
      3. 阻塞(等待)状态:正在执行的进程由于某事件暂时无法继续执行的状态
        ![[Pasted image 20241104075452.png]]
    2. 引入进程的创建状态和终止状态

      1. 创建状态:
        1. 由进程申请一个空白PCB
        2. 向PCB中填写用于控制和管理进程的信息
        3. 为该进程分配运行时所必须的资源
      2. 终止状态:当一个进程到达了自然结束点,或出现了无法克服的错误
        1. 删除该进程,将其PCB清零
        2. 将空白PCB返回系统
          ![[Pasted image 20241104075614.png]]
  3. 挂起操作和进程状态的转换
    当挂起操作作用于某个进程时,该进程将被挂起,意味着此时该进程处于静止状态。如果进程正在执行,它将暂停执行。若原本处于就绪状态,则该进程此时暂不接受调度与挂起搡作对应的操作是激活操作

    1. 引入挂起原语操作后三个进程状态的转换
      1. 活动就绪→静止就绪
      2. 活动阻塞→静止阻塞
      3. 静止就绪一活动就绪
      4. 静止阻塞一活动阻塞
    2. 引入挂起操作的原因
      1. 终端用户的需要:暂停自己程序的运行
      2. 父进程请求:挂起自己的某个子进程
      3. 负荷调节的需要
      4. 操作系统的需要
    3. 引入挂起操作后五个进程状态的转换
      ![[Pasted image 20241104080739.png]]
  4. 进程控制块(PCB)

    1. 概念:
      PCB 是一记录型数据结构,它作为进程实体的一部分,记录了操作系统所需的、用于描述进程 的当前情况以及管理进程运行的全部信息
    2. PCB的作用
      1. 作为独立运行基本单位的标志
      2. 能实现间断性运行方式
      3. 提供进程管理所需要的信息
      4. 提供进程调度所需要的信息
      5. 实现与其他进程的同步与通信
    3. 进程控制块中的信息
处理机状态进程调度信息进程控制信息
通用寄存器进程状态程序和数据的地址
指令计数器进程优先级进程同步和通信机制
程序状态字进程调度所需的其他信息资源清单
用户栈指针事件链接指针
  1. 进程控制块的组织方式
    1. 线性方式:系统中所有的PCB都组织在一张线性表中,首址存放在内存的专用区域中
    2. 链接方式:把具有相同状态进程的PCB通过PCB中的链接字链接成一个队列
    3. 索引方式:
      根据所有进程状态的不同,建立几张索引表,各索引表的首址存放在内存的一些专用单元中
进程控制

进程控制是进程管理中最基本的功能,主要包括

  1. 创建新进程
  2. 终止已完成的进程
  3. 将因发生异常情况而无法继续运行的进程置于阻塞状态
  4. 负责进程运行中的状态转换

等功能

进程的创建
  1. 引起创建进程的事件
    1. 用户登录
    2. 作业调度
    3. 提供服务
    4. 应用请求
  2. 进程的创建
    1. 申请空白PCB,从PCB集合中索取一个空白PCB
    2. 为新进程分配其运行所需的资源,包括物理和逻辑资源
    3. 初始化进程控制块PCB
      1. 初始化标识信息
      2. 初始化处理机状态信息
      3. 初始化处理机控制信息
    4. 如果进程就绪队列能够接纳新进程,将新进程插入就绪队列
进程的终止
  1. 引起进程终止的事件
    1. 正常结束
    2. 异常结束
    3. 外界干预
  2. 进程的终止过程
    1. 根据被终止进程的标识符PID,检索出该进程的PCB,读出该进程的状态
    2. 立即终止该进程的执行
    3. 将其所有子孙进程终止
    4. 将该进程所拥有的全部资源归还给其父进程或系统
    5. 将PCB从所在队列中移出
进程的阻塞与唤醒
  1. 引起进程阻塞和唤醒的事件
    1. 向系统请求共享资源失败
    2. 等待某种操作完成
    3. 新数据尚未到达
    4. 等待新任务到达
进程同步
  1. 进程同步的基本概念
    1. 进程同步机制的主要任务
      对多个相关进程在执行次序上进行协调,使并发执行的诸进程之间能按照一定的规则(或时 序)共享系统资源,并能很好地相互合作,从而使程序的执行具有可再现性
    2. 两种形式的制约关系
      1. 间接相互制约关系:由于临界资源,必须保证多个进程对之只能互斥地访问
      2. 直接相互制约关系:源于进程之间的相互合作
    3. 临界资源
      一次仅允许一个进程使用的资源称为临界资源
    4. 临界区
      将在每个进程中访问临界资源的那段代码称为临界区
    5. 同步机制应遵循的规则
      1. 空闲让进:临界资源处于空闲状态,允许一个进程立即进入临界区
      2. 忙则等待:临界资源正在被访问,其他试图进入的进程必须等待
      3. 有限等待:保证访问临界资源的进程在有限时间内能进入自己的临界区
      4. 让权等待:进程不能进入临界区时,立即释放处理机
  2. 硬件同步机制
    1. 关中断
    2. 利用 Test-and-Set 指令实现互斥
    3. 利用 Swap 指令实现进程互斥
  3. 管程机制
    1. 定义
      一个管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据
    2. 组成
      1. 管程的名称
      2. 局部于管程的共享数据结构说明
      3. 对该数据结构进行操作的一组过程
      4. 对局部于管程的共享数据设置初始值的语句
进程通信
  1. 进程通信的概念
    1. 进程通信的定义
      进程通信是指进程之间的信息交换
    2. 进程通信的分类
      进程通信可分为高级进程通信和低级进程通信两种
  2. 高级进程通信的类型
    1. 共享存储器系统
      1. 基于共享数据结构的通信方式
      2. 基于共享存储区的通信方式
    2. 管道通信系统
    3. 消息传递系统
      1. 直接通信方式
      2. 问接通信方式
    4. 客户机-服务器系统
线程的基本概念

线程——比进程更小的基本单位,用来提高程序并发执行的程度,进一步改善系统的服务质量

  1. 线程的引入

    1. 进程的两个基本属性
      1. 进程是一个可拥有资源的独立单位
      2. 进程同时又是一个可独立调度和分派的基本单位
    2. 线程引入原因
      1. 减少程序并发执行所需付出的时空开销,使操作系统具有更好的并发性
  2. 线程与进程的比较

    1. 调度的基本单位
      1. 在传统的OS中,进程是作为独立调度和分派的基本单位,因而进程是能独立运行的基本单位
      2. 而在引入线程的OS中,已把线程作为调度和分派的基本单位,因而线程是能独立运行的基本单位
    2. 并发性
      不同进程之间、在一个进程中的多个线程之间或者不同进程中的线程之间都能并发执行
    3. 拥有资源
      1. 进程是系统中拥有资源的一个基本单位
      2. 线程本身并不拥有系统资源,而是仅有一点必不可少的、能保证独立运行的资源
      3. 多个线程共享该进程所拥有的资源,还可以访问进程所拥有的资源
    4. 独立性
      在同一进程中的不同线程之间的独立性要比不同进程之间的独立性低得多
    5. 系统开销
      1. 创建或撤消进程时所付出的开销明显大于线程创建或撤消时所付出的开销
      2. 线程的切换代价也远低于进程的切换代价
  3. 线程的状态和线程控制块

    1. 线程运行的三个状态
      1. 执行状态
      2. 就绪状态
      3. 阻塞状态
    2. 线程控制块TCB

    线程控制块通常有这样几项信息

    1. 线程标识符
    2. 一组寄存器
    3. 线程运行状态
    4. 优先级
    5. 线程专有存储区
    6. 信号屏蔽
    7. 堆栈指针

    在多线程OS中,线程作为独立运行(或称调度)的基本单位;而进程仍是资源分配的基本单位

线程的实现方式
  1. 内核支持线程KST
  2. 用户级线程ULT
  3. 组合方式

组合方式下包括三种不同的模型
![[Pasted image 20241104082536.png]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/908267.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【观成科技】APT组织常用开源和商业工具加密流量特征分析

概述 在当前的网络安全环境中,APT组织的活动愈发频繁,利用其高级技术和社会工程手段,针对全球范围内的政府、军事和企业目标发起了一系列复杂的网络攻击。在不断升级的攻击中,开源和商业工具凭借其灵活性、易用性和全球化攻击能力…

自杀一句话木马(访问后自动删除)

在做安全测试时&#xff0c;例如文件上传时就要上传可以解析的脚本文件解析证明存在漏洞&#xff0c;这个时候就需要(访问后自动删除文件的一句话木马) PHP <?php echo md5(1);unlink(__FILE__); ?> 访问后自动删除

在Microsoft Outlook日历中添加多个时区

在Microsoft Outlook日历中添加多个时区 1.单击Outlook中的文件选项卡&#xff0c;单击选项 2.左侧菜单中选择日历 3.向下滚动到时区部分&#xff0c;并标记当前时区&#xff0c;比如China 4.选中“显示第二个时区”框 5.选择第二个时区并给它一个标签&#xff0c;比如Germa…

python常用的第三方库下载方法

方法一&#xff1a;打开pycharm-打开项目-点击左侧图标查看已下载的第三方库-没有下载搜索后点击install即可直接安装--安装成功后会显示在installed列表 方法二&#xff1a;打开dos窗口输入命令“pip install requests“后按回车键&#xff0c;看到successfully既安装成功&…

Rust 力扣 - 238. 除自身以外数组的乘积

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 这题主要有个关键点&#xff0c;就是元素能取0&#xff0c;然后我们分类讨论元素为0的数量 如果数组中存在至少两个元素为0&#xff0c;则每个元素的除自身以外的乘积为0如果数组中仅存在一个0&#xff0c;则为…

二、应用层,《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》

文章目录 零、前言一、应用层协议原理1.1 网络应用的体系结构1.1.1 客户-服务器(C/S)体系结构1.1.2 对等体&#xff08;P2P&#xff09;体系结构1.1.3 C/S 和 P2P体系结构的混合体 1.2 进程通信1.2.1 问题1&#xff1a;对进程进行编址&#xff08;addressing&#xff09;&#…

【计算机网络篇】数据链路层(14)虚拟局域网VLAN(概述,实现机制)

文章目录 &#x1f6f8;虚拟局域网VLAN&#x1f354;虚拟局域网VLAN的实现机制&#x1f95a;IEEE 802.1Q帧&#x1f95a;以太网交换机的接口类型&#x1f5d2;️例一&#xff1a;在一个交换机上不进行人为的VLAN划分&#xff0c;交换机各接口默认属于VLAN1且类型为Access的情况…

【无人机设计与控制】红嘴蓝鹊优化器RBMO求解无人机路径规划MATLAB

摘要 无人机在复杂环境中的路径规划是一个非线性、非凸优化问题&#xff0c;具有高维度和多约束性。本文提出了基于红嘴蓝鹊优化器&#xff08;RBMO&#xff09;的方法&#xff0c;用于求解无人机路径规划问题。RBMO算法借鉴了红嘴蓝鹊的觅食和群体行为&#xff0c;以全局搜索…

跨平台OFD、PDF文档预览UTS插件

〇、介绍 Seal-OfdReader是跨平台OFD文档预览原生插件&#xff0c;具有以下特点&#xff1a; 支持UniApp项目集成&#xff0c;也支持原生Android项目集成 非腾讯X5&#xff0c;无内核加载&#xff0c;高效率、稳定高可用 支持在线文档&#xff0c;也支持离线设备本地文档 支…

电机学习-SPWM原理及其MATLAB模型

SPWM原理及其MATLAB模型 一、SPWM原理二、基于零序分量注入的SPWM三、MATLAB模型 一、SPWM原理 SPWM其实是相电压的控制方式&#xff0c;定义三相正弦相电压的表达式&#xff1a; { V a m V m sin ⁡ ω t V b m V m sin ⁡ ( ω t − 2 3 π ) V c m V m sin ⁡ ( ω t 2…

CasaOS香橙派安装HomeAssistant智能家居系统并实现远程管理家中智能设备

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

哈希表,哈希桶及配套习题

我们今天带大家简单了解哈希表是怎样的&#xff0c;和简单模拟哈希桶&#xff0c;还有几道练习题 一&#xff0c;哈希表 什么是哈希表&#xff0c;哈希表是一种非常非常高效的数据结构&#xff0c;它用来搜索我们想要的数据&#xff0c;我们之前学过很多查找方法&#xff0c;最…

R语言贝叶斯分层、层次(Hierarchical Bayesian)模型房价数据空间分析

原文链接&#xff1a;https://tecdat.cn/?p38077 本文主要探讨了贝叶斯分层模型在分析区域数据方面的应用&#xff0c;以房价数据为例&#xff0c;详细阐述了如何帮助客户利用R进行模型拟合、分析及结果解读&#xff0c;展示了该方法在处理空间相关数据时的灵活性和有效性。&a…

拉取git代码不适用ssh,使用用户名及密码

最近换了新电脑&#xff0c;拉取git代码&#xff0c;提示我需要配置ssh&#xff0c;但是着实是有点麻烦了&#xff0c;所以使用用户名和密码的方式可以直接拉取 首先登陆git后找到对应项目地址&#xff0c;有ssh 和http。但是这两种都不是我们要用的地址&#xff0c;使用用户名…

第三十一章 Vue之路由(VueRouter)

目录 一、引言 1.1. 路由介绍 二、VueRouter 三、VueRouter的使用 3.1. 使用步骤&#xff08;52&#xff09; 3.2. 完整代码 3.2.1. main.js 3.2.2. App.vue 3.2.3. Friend.vue 3.2.4. My.vue 3.2.5. Find.vue 一、引言 1.1. 路由介绍 Vue中路由就是路径和组件的映…

Windows转Mac过渡指南

最近由于工作原因开始使用mac电脑&#xff0c;说实话刚拿到手的时候&#xff0c;window党表示真的用不惯。坚持用一下午之后&#xff0c;发现真的yyds&#xff0c;这篇文章说说mac电脑的基本入门指南。 1. 不会使用mac的触摸板&#xff0c;接上鼠标发现滚轮和windows是反的。 …

408——计算机网络(持续更新)

文章目录 一、计算机网络概述1.1 计算机网络的概念1.2 计算机网络体系结构1.3 总结 二、物理层2.1 物理层的基本概念2.2 物理层的基本通信技术2.3 总结 一、计算机网络概述 1.1 计算机网络的概念 计算机网络的定义&#xff1a;将地理位置不同的具有独立功能的计算机通过网络线路…

Linux下安装MongoDB

1.版本选择 偶数版本为稳定版&#xff0c;个人为了学习&#xff0c;选择较低版本5.0.30 2.下载 1. 个人使用下载社区版本 2.进入community version中 3.推荐直接使用&#xff1a;推荐用直接下载tgz方式&#xff0c;但是主要为了方便&#xff0c;后续会说一下 个人下载了sev…

无人机避障——路径规划篇(一) JPS跳点搜索算法A*算法对比

JSP 跳点搜索算法与改进 A*算法对比 一、算法概述: 跳点搜索(Jump Point Search,JPS)算法:一种用于路径规划的启发式搜索算法。它主要用于在网格地图(如游戏地图、机器人运动规划地图等)中快速找到从起点到终点的最短路径。该算法在改进 A*算法的基础上进行了优化,通过跳过一…

【热门主题】000027 React:前端框架的强大力量

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【热…