【操作系统】02.进程管理

news2024/11/25 18:31:00

多道程序系统

多道就是将多个程序同时装入内存,使之并发运行。操作系统也是基于多道产生的,提高了资源利用率和系统吞吐量。

进程

定义

进程是程序的一次执行
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位

在引入线程后,线程成为调度的基本单位,进程仍是资源分配的基本单位

进程实体的组成

程序:是一组指令的组合

进程:是程序的一次执行过程,是系统进行资源分配和调度的一个独立单位

进程实体:在程序的一次执行过程,会在内存中产生 程序块、数据块、程序控制块 这三部分,这三部分构成了进程实体,又叫进程影像。

image.png

程序块

一般也被称为代码段。
代码段是进程的程序指令在内存中的位置,包含需要执行的指令集合;

数据块

是进程的操作数据在内存中的位置,包含需要操作的数据集合

程序控制块 PCB

(Program Control Block,PCB)
包含进程的描述信息和控制信息,是进程存在的唯一标志。

image.png

PCB的组织方式

image.png

  • 链接方式
    image.png
  • 索引方式
    image.png

进程的特征

image.png

进程的状态

状态

image.png
除此之外,还有挂起态:就绪挂起和阻塞挂起

image.png

进程状态的转换

image.png

image.png

进程的控制

进程控制主要就是要实现进程状态之间的转换

image.png

image.png

原语

进程控制一般是由OS的内核中的原语来实现的

为了保证PCB的状态和所处队列等信息一致,需要将这些修改操作一气呵成

image.png
image.png

image.png

进程的创建与终止

image.png

image.png

进程的切换

image.png

进程的阻塞与唤醒

image.png

进程的挂起与激活

进程的通信

进程通信是指进程之间的信息交换

image.png

共享存储

image.png

管道通信

image.png

消息传递

image.png

CS系统

主要用户不同计算机之间进程的通信

  • 套接字

  • 远程过程调用和远程方法调用

进程同步

image.png

进程同步与互斥

进程互斥的实现,是在同一个进程中先P后V
进程同步的实现,是在两个进程中先V后P

image.png

image.png

临界资源的访问

image.png
image.png

硬件实现方法

image.png

中断屏蔽方法

image.png

TestAndSet指令

image.png

Swap指令

image.png

信号量机制

image.png

分类

  • 整型信号量
    image.png
    image.png

  • 记录型信号量
    image.png
    image.png
    image.png

信号量的应用

image.png

  • 实现进程互斥

image.png

  • 实现进程同步

image.png

  • 实现进程的前驱关系
    image.png

管程机制

image.png

image.png

image.png

eg. synchronized
image.png

常见问题

生产者与消费者问题

image.png

image.png

image.png

image.png

多生产者与多消费者问题

image.png

image.png

当盘子的容量为1的时候,可以不用写mutex;当盘子的容量大于1的时候,需要mutex

吸烟者问题

image.png

image.png

读者与写者问题

image.png

image.png

image.png

image.png

哲学家进餐问题

image.png

image.png

image.png

image.png

线程

image.png

  • 进程是资源分配的基本单位,线程是调度的基本单位
  • 一个进程可以有多个线程

线程的属性

image.png

线程的实现方式

image.png

Java语言采用的就是多对多模型

处理机调度

当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定处理 这些任务的顺序,这就是“调度”研究的问题。

image.png

处理机调度的层次

image.png

高级(作业)调度

image.png
高级调度主要用于多批到批处理系统中,而在分时和实时系统中不设置高级调度。

中级(内存)调度

image.png

低级(进程)调度

image.png

调度的准则

  • 周转时间短
  • 响应时间短
  • 系统吞吐量大
  • 资源利用率高
  • 公平
    image.png

进程调度

image.png

进程调度的时机

image.png

内核程序临界区
image.png

普通代码(普通临界区)访问普通临界资源(例如IO设备),可以进行处理机调度
内核程序(内核程序临界区)访问内核数据结构(例如就绪队列),不可以进行处理机调度

进程调度的方式

image.png

进程的切换与过程

image.png

广义进程调度:

  • 选择一个进程(狭义进程调度)
  • 进程切换:
    • 保存原来进程的数据
    • 恢复新进程的数据

调度算法

评价指标

image.png

  • CPU利用率
    image.png

  • 系统吞吐量

image.png

  • 周转时间
    image.png

  • 带权周转时间
    image.png

  • 等待时间

image.png

  • 响应时间

image.png

早期批处理算法

下面三种算法适用于早期批处理算法

image.png

先来先服务

FCFS是最简单的调度算法,该算法既可用于作业调度,也可以用于进程调度
image.png

eg
image.png

短作业优先

image.png

  • 非抢占
    image.png

  • 抢占
    image.png

image.png

注意事项
image.png

高响应比优先

image.png

eg

image.png

现代交互算法

image.png

时间片轮转

image.png
image.png

一般来说,设计时间片时要让切换进程的开销占比不超过1%

eg
image.png

优先级调度

image.png

  • 非抢占式
    image.png

  • 抢占式
    image.png
    注意事项
    image.png

多级反馈队列

image.png

eg
image.png

对于实时调度:

  1. 最早截止时间优先:任务截止时间越早,优先程度越高
  2. 最低松弛度优先:任务越紧急,优先程度越高

死锁

image.png

image.png

产生死锁的条件

image.png

image.png

处理策略

预防死锁

image.png

  • 破坏互斥条件

image.png

  • 破坏不剥夺条件

image.png

  • 破坏请求和保持条件

image.png

  • 破坏循环等待条件
    image.png

避免死锁

安全序列

image.png
image.png

银行家算法

image.png

死锁的检测与解除

image.png

死锁检测算法

image.png

解除死锁

image.png

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

会流程图却不会UML活动图?活动图深度剖析,就怕你学不会!

1. UML活动图是啥? 也许很多人都不怎么了解活动图,但是却对流程图很熟悉,你暂且可以简单的把活动图理解为UML里的流程图,用来描述系统的行为特征。不过UML活动图对比于流程图来说也存在不少差异,本文将在第三章节讲解活…

解决 MobaXterm X11 server 打开 wsl2 linux 子系统 rviz 可视化窗口卡顿问题

1、问题 环境: MobaXtermwsl2 Ubuntu-18.04ROS1Intel 核显 一直使用 MobaXterm 这个远程软件 ssh 链接 linux 服务器,因为它集成了 X11 server,即可以显示一些 linux 下有图形化界面的程序,如 ROS 的 rviz 等。 但是 MobaXterm…

宝塔面板一键部署Z-Blog博客 - 内网穿透实现公网访问

文章目录 1.前言2.网站搭建2.1. 网页下载和安装2.2.网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测试5.结语 转发自cpolar极点云的…

一步一步的实现使用 Tensorflow Hub 进行图像分割

在本文中,我们将学习如何使用 TensorFlow Hub中提供的预训练模型执行语义图像分割。TensorFlow Hub 是一个库和平台,旨在共享、发现和重用预训练的机器学习模型。TensorFlow Hub 的主要目标是简化重用现有模型的过程,从而促进协作、减少冗余工…

[比赛简介]ICR - Identifying Age-Related Conditions

比赛链接:https://www.kaggle.com/competitions/icr-identify-age-related-conditions 比赛简介 本次比赛的目标是预测一个人是否患有三种疾病中的任何一种。您被要求预测该人是否患有三种疾病中的任何一种或多种(1 类),或者三种…

第14届蓝桥杯Scratch选拔赛(STEMA) 真题集锦

一、选择题 第 1题单选题 运行以下程序 (小象仅有两个造型),小象的造型是哪个? () 答案 A 解析 本题正确答案是A,考察的知识点是角色造型,在Scratch中,切换造型有两个指令,分别是“换成xx造型“和“下一个造型”,其中前者将角色切换为指定造型,而后者则从当前造型切换…

面向小白的最全Python数据分析指南,超全的!

因工作需求经常会面试一些数据分析师,一些 coding 能力很强的小伙伴,当被问及数据分析方法论时一脸懵逼的,或者理所当然的认为就是写代码啊,在文章开头先来解释一下数据分析。 数据分析是通过明确分析目的,梳理并确定…

虎牙在全球 DNS 秒级生效上的实践

博主介绍:✌全网粉丝4W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战、定制、远程,博主也曾写过优秀论文,查重率极低,在这方面…

六级备考18天|CET-6|写作第一讲|现象解释|10:00~10:45

目录 1. 议论文类型 现象解释 what,why,importance 观点选择 whether,choice,option 问题解决 how to,measures 图片图表 image,cartoon,diagram,chart 2. 基本题型 议论文、图表、谚语 3. 模版构成/段落结构划分 三个段落:10-11句 背景主题句过渡句 …

电加热道岔融雪系统设备

设备构成 融雪设备由道岔融雪远程控制中心工作站(以下简称工作站)、道岔融雪车站控制终端(以下简称控制终端)、道岔融雪控制柜(以下简称控制柜)、钢轨温度传感器、电加热元件、道岔融雪隔离变压器(以下简称隔离变压器)等组成。 01集中供电方式 02分散供电方式 设备型号及含义…

本地新建项目,git 到gitlab中

目录 1、首先,gitlab中,创建一个空项目 2. 本地项目上 操作 1) git init 2) 关联远程仓库 3)git pull 4) 查看远程分支 5)指定git pull 远程哪个分支 6)关联远程分支 7) .gitignore …

批量处理同列的相同值,合并成一个单元格

效果 易错点 选中公司部门的时候,选择是数据的开始的第一行和最后一行居中和合并完后,选择的也是公司部门的数据开始第一行和最后一行; 操作方法 1、 鼠标悬浮到你要合并的任意一栏 2、 选择菜单-数据汇总 3. 这两个值,要选择要分组的列名,求和方式…

【Unity】基于GLTFUtility插件加载gltf格式数据

C#代码:JSON数据解析 一、环境配置1. GLTFUtility项目git地址2. 安装支持工具:搜索Newtonsoft.Json并安装 二、代码调用1. 单线程加载GLTF/GLB2. 多线程加载GLTF3. 多线程加载GLB 三、加载参考案例1. 创建基础UI2. 挂接脚本到ReaderGLTF对象3. 加载结果 …

Flink从入门到精通之-11Table API 和 SQL

Flink从入门到精通之-11Table API 和 SQL 如图 11-1 所示,在 Flink 提供的多层级 API 中,核心是 DataStream API,这是我们开发流处理应用的基本途径;底层则是所谓的处理函数(process function)&#xff0c…

【八】设计模式~~~结构型模式~~~装饰模式(Java)

【学习难度:★★★☆☆,使用频率:★★★☆☆】 3.1. 模式动机 一般有两种方式可以实现给一个类或对象增加行为: 继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类…

当APP进入推荐榜,我们需要做些什么

在苹果的应用商店内,“today标签页”和“热门推荐页”的曝光率会更高些,更新时间都是每周五的上午八点前后,热门推荐页的占比权重大,是获取流量的重大突破口,如果应用本身优秀,还可获得更好的下载转化率。 …

华为OD机试之模拟商场优惠打折(Java源码)

模拟商场优惠打折 题目描述 模拟商场优惠打折,有三种优惠券可以用,满减券、打折券和无门槛券。 满减券:满100减10,满200减20,满300减30,满400减40,以此类推不限制使用; 打折券&…

后端 API 接口文档 Swagger 使用指南

前言一:swagger是什么?二:为什么要使用swaager? 2.1:对于后端开发人员来说2.2:对于前端开发来说2.3:对于测试三:如何搭一个swagger 3.1:引入swagger的依赖3.2:springBoot整合swagger3.3:swagge…

Hive介绍

Hive定义 Hive是一个基于Hadoop的数据仓库工具,可以将结构化的数据文件映射成一张数据表,并可以使用类似SQL的方式来对数据文件进行读写以及管理。这套Hive SQL 简称HQL。Hive的执行引擎可以是MR、Spark、Tez。 Hive的本质是将HQL转换成MapReduce任务&…

阿里云服务器最新优惠价格及最新收费标准(2023更新)

阿里云服务器收费标准分为包年包月和按量付费两种模式,包年包月是一种先付费后使用的计费方式,按量付费是一种先使用后付费的计费方式。选择包年包月的收费模式,用户可以提前预留资源,同时享受更大的价格优惠,帮您更大…