当前位置: 首页 > news >正文

【剧前爆米花--爪哇岛寻宝】进程的调度以及并发和并行,以及PCB中属性的详解。

作者:困了电视剧

专栏:《JavaEE初阶》

文章分布:这是关于进程调度、并发并行以及相关属性详解的文章,我会在之后文章中更新有关线程的相关知识,并将其与进程进行对比,希望对你有所帮助。

 

目录

什么是进程/任务(Process/Task)

进程的并发执行和并行执行

进程的属性和管理

进程控制块抽象

进程状态

进程的优先级

进程的上下文

进程的记账信息

双向链表组织PCB


什么是进程/任务Process/Task

每个应用程序运行于现代操作系统之上时,操作系统会提供一种抽象,好像系统上只有这个程序在运行,所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的,进程可以说是计算机科学中最重要和最成功的概念之一。
进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。

只看定义可能有点抽象,我们用实际的例子来进行说明。

一个运行起来的程序就是进程。

 

.exe是一个可执行文件(程序),当双击这个exe,这个程序就会跑起来,于是就在系统中形成了一个进程,我们可以打开我们电脑上的任务管理器观看现在运行的进程有哪些。

 

通过任务管理器我们可以看到,我们的计算机在同一时刻进行着多个进程,进程一多我们就需要对其进行管理,我们可以通过任务管理器直观地看到这些运行的进程,那么在计算机内部,这些进程是如何被管理的呢?

进程的并发执行和并行执行

我们打开我们的任务管理器可以看到我们电脑此时的核心数,这里小编的电脑是八核16线程,什么意思呢?就是我的电脑有8个核心,但每个核心都能顶俩,即8个物理核心,16个逻辑核心,这16个逻辑核心可以将他们看成16个“干活的人”。

由上上图我们可以看出,此时我的电脑应用有9个,后台进程有122个,也就是说此时我们需要干的活有131个,但我们只有16个干活的人,那这咋整。

这里就需要并发和并行了。

并行就是指这16个核心可以同时干活,也就是说假设每一个核心现在只干一个活,那么一次性就可以干16份活,不过这和我的131份活还差的远呢,此时就需要并发。

并发就是指每个核心——干活的人虽然在同一时刻只能干一份活,但只要我活切换的够快,我就能造成同时干很多活的感觉,就比如,我现在先执行一会进程1,执行一会后再执行进程2,然后进程3,进程4...

如果这个“一会”是很短很短的时间,那我看起来就像是在同时执行进程1,2,3,4...

CPU就通过这两种并发和并行的方式来完成这131个任务。

进程的属性和管理

所谓的管理其实就是分两步:

1.描述一个进程:使用结构体/类,把一个进程有哪些信息表示出来。

2.组织这些进程:使用一定的数据结构,把这些结构体/对象放到一起。

进程控制块抽象

计算机内部要管理任何现实事物,都需要将其抽象成一组有关联的、互为一体的数据。在 Java 语言中, 我们可以通过类/对象来描述这一特征。
这个类我们可以将他命名为PCB,这样,每一个PCB对象,就代表着一个实实在在运行着的程序,也就是进程。
这个PCB包含的属性非常多,但以下几个属性最为重要,这些都是CPU为了进程跑起来所分配的硬件资源。进程的运行,需要从操作系统申请资源,进程是操作系统进行资源分配的基本单位。
1.pid,每个进程都需要有一个唯一的身份标识
2.内存指针,当前这个进程使用的内存是哪一部分
3.文件描述符表,文件:比如硬盘上存储的数据,往往就是以文件的形式进行处理的。
进程每次打开一个文件,就会产生一个文件描述符用来标识这个文件,这个文件描述符会     被存储在顺序表这样的结构里,这个顺序表就是文件描述符表。
一个进程在运行的过程中会打开很多个文件,每当打开一个文件的时候都会产生一个文件     描述符,当一个文件关闭时,它对应的相应的文件描述符也会从文件描述表中被移除。
4.CPU分配——进程调度所需要的相关属性,具体如下

进程状态

可以简单认为,进程的主要状态是就绪态和阻塞态这两个。

就绪态:该进程已经准备好,随时可以上CPU执行。

阻塞态:该进程暂时无法上CPU执行。

CPU在执行进程的时候,只会考虑什么时候执行处于就绪态的进程,对于阻塞态的进程,CPU并不会执行。

进程的优先级

进程之间的调度不一定是“公平”的,有的进程比较重要或是什么其他因素,就需要对该进程进行优先调度。

举个栗子:假设我有ABC三种临时工作需要做,A的工资待遇最好,B其次,C最差,现在情况是这三种工作都不需要天天 进行,我又想让我一周不闲下来,所以这是我就需要安排相应的工作时间,A由于工资待遇最好所以我优先安排,B其次,C最差就看哪天有空下来的时间哪天再去。

进程的上下文

上下文,就是描述了当前进程执行到哪里这样的“存档记录”,进程在离开CPU的时候就要把当前运行的中间结果进行“存档”,等到下次进程回来CPU上,再恢复之前的“存档”,从上次的结果继续往后执行。

CPU往往需要执行多个进程,这些进程在任意时刻都有可能离开,如果不对这些中间结果进行存档,那当离开的进程又回来时就有可能造成“驴头不对马嘴”的情况,具体到进程,所谓的上下文具体指就是进程运行过程中,CPU内部的一系列寄存器的值。

存档:进程离开CPU,就需要把这些寄存器的值保存到PCB的上下文字段中。

读档:进程下次回来CPU,再把PCB中的值给恢复到寄存器中。

进程的记账信息

统计每个进程在CPU上执行了多久,可以作为调度的参考依据,就比如进度A调度的次数很少,计算机就可能知道我并不是太常用进度A,所以在进行调度的时候就减少调度的次数,节约资源。

双向链表组织PCB

操作系统往往使用双向链表这样的结构来组织PCB,所以,

1.创建一个进程,就是创建一个链表的节点

2.销毁一个进程,就是把链表的节点给删除了

3.遍历进程列表,就是在遍历链表

以上就是本篇博客的全部内容,如有疏漏欢迎指正!

相关文章:

【剧前爆米花--爪哇岛寻宝】进程的调度以及并发和并行,以及PCB中属性的详解。

作者:困了电视剧 专栏:《JavaEE初阶》 文章分布:这是关于进程调度、并发并行以及相关属性详解的文章,我会在之后文章中更新有关线程的相关知识,并将其与进程进行对比,希望对你有所帮助。 目录 什么是进程/…...

网络的瓶颈效应

python从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129328397?spm1001.2014.3001.5501 ❤ 网络的瓶颈效应 网络瓶颈,指的是影响网络传输性能及稳定性的一些相关因素,如网络拓扑结构,网线&#xff0…...

【C++进阶】四、红黑树(三)

目录 一、红黑树的概念 二、红黑树的性质 三、红黑树节点的定义 四、红黑树的插入 五、红黑树的验证 六、红黑树与AVL树的比较 七、完整代码 一、红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可…...

Spring——AOP切入点表达式和AOP通知类型

切入点:要进行增强的方法 切入点表达式:要进行增强的方法的描述式 第一种方法的本质是基于接口实现的动态代理(jdk) 第二种是基于cglib实现的动态代理 AOP切入点表达式 而需要加载多个切入点时,不可能每个切入点都写一个切入点表达式 例子 下面的代理描述的是匹配…...

Hadoop学习:Yarn

1.YARN介绍 一个通用的资源管理系统和调度平台 YARN不分配磁盘,由HDFS分配 相当于一个分布式的操作系统平台,为上层MR等计算程序提供运算所需要的资源(内存、CPU等) 2.YARN三大组件 不要忘记AppMaster,他是程序内部…...

Spring Data JPA

文章目录一、Spring Data基础概念二、JPA与JDBC的相同与不同之处三、Hibernate & JPA快速搭建1.添加依赖2.实体类3.hibernate的配置文件 ——hibernate.cfg.xml四、测试——基于hibernate的持久化(单独使用)五、测试——基于JPA的持久化(…...

java List报错Method threw ‘java.lang.UnsupportedOperationException‘ exception. 解决

问题描述&#xff1a;List使用Arrays.asList()初始化后&#xff0c;再add对象时报错&#xff1a;Method threw java.lang.UnsupportedOperationException exception.错误示例如下&#xff1a; List<ExportListVO.ExportSheet> sheetVOList Arrays.asList(new ExportList…...

数据结构-用栈实现队列

前言&#xff1a; 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int…...

第十四章 从 Windows 客户端控制 IRIS

文章目录第十四章 从 Windows 客户端控制 IRISIRISctlGetDirsSyntaxReturn ValuesIRISctlConfigStatusSyntaxReturn ValuesIRISctlControlSyntaxReturn Values第十四章 从 Windows 客户端控制 IRIS IRIS 为 Windows 客户端程序提供了一种机制来控制 IRIS 配置并启动 IRIS 进程…...

数据结构---双链表

专栏&#xff1a;数据结构 个人主页&#xff1a;HaiFan. 专栏简介&#xff1a;从零开始&#xff0c;数据结构&#xff01;&#xff01; 双链表前言双链表各接口的实现为要插入的值开辟一块空间BuyLN初始化LNInit和销毁LNDestory打印链表中的值LNPrint尾插LNPushBack和尾删LNPop…...

Windows 环境安装Scala详情

为了进一步学习Spark&#xff0c;必须先学习Scala 编程语言。首先开始Scala 环境搭建。温馨提示&#xff1a;本文是基于Windows 11 安装Scala 2.13.1 版本第一步&#xff1a;确保本机已经正确安装JDK1.8 环境第二步&#xff1a;Scala 官网下载我们所属scala版本文件。Scala 官网…...

C++ Qt自建网页浏览器

C Qt自建网页浏览器如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01;前言这篇博客针对<<C Qt自建网页浏览器>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与应用推荐首选。文…...

Flink从入门到精通系列(四)

5、DataStream API&#xff08;基础篇&#xff09; Flink 有非常灵活的分层 API 设计&#xff0c;其中的核心层就是 DataStream/DataSet API。由于新版本已经实现了流批一体&#xff0c;DataSet API 将被弃用&#xff0c;官方推荐统一使用 DataStream API 处理流数据和批数据。…...

Nginx 配置实例-反向代理案例一

实现效果&#xff1a;使用nginx反向代理&#xff0c;访问 www.suke.com 直接跳转到本机地址127.0.0.1:8080 一、准备工作 Centos7 安装 Nginxhttps://liush.blog.csdn.net/article/details/125027693 1. 启动一个 tomcat Centos7安装JDK1.8https://liush.blog.csdn.net/arti…...

为什么北欧的顶级程序员数量远超中国?

说起北欧&#xff0c;很多人会想到寒冷的冬天&#xff0c;漫长的极夜&#xff0c;童话王国和圣诞老人&#xff0c;但是如果我罗列下诞生于北欧的计算机技术&#xff0c;恐怕你会惊掉下巴。Linux&#xff1a;世界上最流行的开源操作系统&#xff0c;最早的内核由Linus Torvalds开…...

vuex getters的作用和使用(求平均年龄),以及辅助函数mapGetters

getters作用&#xff1a;派生状态数据mapGetters作用&#xff1a;映射getters中的数据使用&#xff1a;方法名自定义&#xff0c;系统自动注入参数&#xff1a;state&#xff0c;每一个方法中必须有return&#xff0c;其return的结果被该方法名所接收。在state中声明数据listst…...

20230311给Ubuntu18.04下的GTX1080M安装驱动

20230311给Ubuntu18.04下的GTX1080M安装驱动 2023/3/11 12:50 2. 安装GTX1080驱动 安装 Nvidia 驱动 367.27 sudo add-apt-repository ppa:graphics-drivers/ppa 第一次运行出现如下的警告&#xff1a; Fresh drivers from upstream, currently shipping Nvidia. ## Curren…...

2023腾讯面试真题:

​【腾讯】面试真题&#xff1a; 1、Kafka 是什么&#xff1f;主要应用场景有哪些&#xff1f; Kafka 是一个分布式流式处理平台。这到底是什么意思呢&#xff1f; 流平台具有三个关键功能&#xff1a; 消息队列&#xff1a;发布和订阅消息流&#xff0c;这个功能类似于消息…...

23种设计模式-建造者模式(Android应用场景介绍)

什么是建造者模式 建造者模式是一种创建型设计模式&#xff0c;它允许您使用相同的创建过程来生成不同类型和表示的对象。在本文中&#xff0c;我们将深入探讨建造者模式的Java实现&#xff0c;并通过一个例子来解释其工作原理。我们还将探讨如何在Android应用程序中使用建造者…...

English Learning - L2 语音作业打卡 双元音 [ʊə] [eə] Day17 2023.3.9 周四

English Learning - L2 语音作业打卡 双元音 [ʊə] [eə] Day17 2023.3.9 周四&#x1f48c;发音小贴士&#xff1a;&#x1f48c;当日目标音发音规则/技巧:&#x1f36d; Part 1【热身练习】&#x1f36d; Part2【练习内容】&#x1f36d;【练习感受】&#x1f353;元音 [ʊə…...

AI教材生成大揭秘!工具选择与低查重教材编写的实用干货

在教材编写的过程中&#xff0c;许多编辑者常常会感到遗憾&#xff1a;尽管正文章节已经经过了反复打磨&#xff0c;但因为缺乏必要的配套资源&#xff0c;整体教学效果却受到影响。课后练习的设计需要具有层次感&#xff0c;但缺乏灵活的想法&#xff1b;教学课件希望能做到形…...

别再一条条Update了!MyBatis批量更新数据,用这个Case When写法性能翻倍

MyBatis批量更新性能优化实战&#xff1a;告别低效循环&#xff0c;拥抱CASE WHEN 每次看到代码里用循环一条条执行update语句&#xff0c;我的数据库性能监控图表就会剧烈波动——这简直是DBA的噩梦。上周排查一个后台任务卡死问题&#xff0c;发现同事在处理5万条数据更新时&…...

vLLM生产-解码分离架构:从概念到部署的吞吐优化实践

1. 为什么需要生产-解码分离架构 第一次部署大模型在线服务时&#xff0c;我盯着监控面板上的GPU利用率曲线直挠头——为什么计算单元总是间歇性满载又突然空闲&#xff1f;后来发现这是典型的Prefill-Decode耦合架构的弊端。就像餐厅里同一个厨师既要负责备菜&#xff08;切配…...

Unity卡牌UI框架实战:构建高性能游戏界面的深度策略

Unity卡牌UI框架实战&#xff1a;构建高性能游戏界面的深度策略 【免费下载链接】UiCard Generic UI for card games like Hearthstone, Magic Arena and Slay the Spire... 项目地址: https://gitcode.com/gh_mirrors/ui/UiCard 在卡牌游戏开发领域&#xff0c;UI交互的…...

AI 模型推理框架性能分析与对比

AI模型推理框架性能分析与对比 随着人工智能技术的快速发展&#xff0c;AI模型推理框架成为支撑各类应用落地的核心工具。无论是计算机视觉、自然语言处理还是推荐系统&#xff0c;高效的推理框架直接影响模型的响应速度、资源占用和部署成本。本文将从多个维度对比主流AI推理…...

一本计算机专业,准大一,有什么忠告?

你现在大概处于一种很特别的状态。高考刚结束不久&#xff0c;录取通知书拿到了&#xff0c;专业是计算机。可能是你自己选的&#xff0c;也可能是家里建议的&#xff0c;也可能是分数刚好够就填了。不管哪种&#xff0c;你现在对”计算机专业到底学什么”的理解大概率是模糊的…...

蓄电池与超级电容混合储能微电网的未讲解部分总结

蓄电池 超级电容混合储能微电网 没有讲解搞离网微电网的都懂&#xff0c;储能这块一直是卡脖子的事儿——单独堆蓄电池吧&#xff0c;遇到村里突然开个打米机、抽水泵这种大负载&#xff0c;瞬间电流顶上去&#xff0c;电瓶寿命唰唰掉&#xff1b;全上超级电容呢&#xff0c;确…...

OpenClaw怎么集成?OpenClaw移动云小白6分钟搭建及使用指南【最新!】

OpenClaw怎么集成&#xff1f;OpenClaw移动云小白6分钟搭建及使用指南【最新&#xff01;】。OpenClaw怎么部署&#xff1f;本文面向零基础用户&#xff0c;完整说明在轻量服务器与本地Windows11、macOS、Linux系统中部署OpenClaw&#xff08;Clawdbot&#xff09;的流程&#…...

PUMA560轨迹规划踩坑记:DH参数选错,你的仿真结果还准吗?

PUMA560轨迹规划实战&#xff1a;从DH参数陷阱到精准运动控制 第一次在MATLAB中看到PUMA560机械臂的末端执行器画出诡异的"8"字轨迹时&#xff0c;我盯着屏幕足足愣了三分钟。按照教科书上的标准DH参数编写的代码&#xff0c;理论上应该生成完美的直线运动&#xff0…...

实测才敢推 AI论文工具推荐:2026最新测评与使用体验

2026年真正好用的AI论文工具&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…...