[计组03]进程详解2
目录
应用程序
系统调用
驱动
软件
再看进程
进程管理
如何管理 ?
创建一个进程
注意
PCB
文件描述表
进程相关重点
为什么有进程调度
虚拟空间地址
这次我们从更加详细全面的角度看一下进程在计算机中体系中的展现
应用程序
应用程序 调动
系统调用 后
再 操作系统内核
响应 驱动
硬件 产生反应
系统调用
系统调用
实现操作系统最核心的功能比如
内存管理
硬盘管理
进程管理
设备管理
文件管理
……一般是
操作系统提供的原生API
通常是C语言编写的
应用程序需要调用这里的api才能完成一些具体工作
驱动
由于生产硬件厂商很多,为了让系统能适配每一个系统,就需要靠驱动程序,让操作系统内核认识并管理硬件。
软件
软件
软件是不能直接操作硬件的
操作系统给应用程序提供了
1.write系统调用,可以用于写入一些数据
2.提供stdout特殊文件,对应显示器硬件设备
Java为了能够跨平台,在jvm中就已经对各种常见的系统调用进行了封装。
不必要直接使用系统调用,直接调用jvm封装好的一些Java方法就行。
应用通过系统调用和操作系统内核产生联系
操作系统内核通过驱动和硬件产生交互
再看进程
进程
进程也就做 “任务”
运行起来的程序就是进程
.exe就是可执行文件/可执行程序
是存储在硬盘上的文件—静态的
运行这个文件 操作系统就会把这个程序的核心文件数据加载到内存当中,并在操作系统中生成一个进程,并且在任务管理器中可以检测到此进程。
硬盘基本不会影响系统的流畅度,但是如果硬盘空间快满的时候,是极有可能卡顿的
1.因为很多操作系统都在内存空间不够的时候,使用一部分(C盘)硬盘空间作为交换分区,所以硬盘空间快满的时候,是可能会卡的
2.执行应用程序的时候需要向硬盘CURD的时候,会影响效率。
3.有些应用程序会默认被设置为开机启动,默认消耗很多内存资源,疯狂的占用你的内存。
在移动端,app 有个权限 ——读取应用程序列表,很可能使得应用程序之间相互启动,导致内存消耗。
进程管理
管理的重要凭证是进程表, 详细的表示进程的属性和信息
主要是结构体,结构体中包含进程的各种信息(PCB进程控制块)
如何管理 ?
通过一定的数据结构,把若干个进程管理到一起。
系统一般使用双向链表这样的数据结构,把PCB链接到一起。
创建一个进程
本质上是创建一个PCB,并且加入到链表上
销毁一个进程
本质上就是从链表上删除这个PCB
查看任务管理器
遍历和打印该链表
注意
一个进程可能对应多个PCB
系统中管理的链表也可能是多个
PCB
1.pid 进程身份标识码,一个主机中,pid是唯一的,通过pid区分进程
2.内存指针
一个可执行文件运行后,操作系统把文件中的核心数据加载到内存中
进程的创立必然伴随内存空间的分配,内存空间中的区域,有存放指令的,有存放数据的,有来维护运行状态的……
来表述哪块内存的具体功能 。
进程持有的内存资源。
文件描述表
文件描述表
每个进程都可以打开一些硬盘文件,
文件描述表记录了当前进程打开了哪些文件,可以对这些文件进行CURD。
也就是进程持有的文件资源。
进程也就可以说操作系统分配资源的基本单位。
进程相关重点
进程调度
进程属性
进程上下文
进程优先级
进程的记账信息
进程属性
进程属性是指每个进程的特征和信息,包括进程的唯一标识符(进程ID)、状态(运行、就绪、阻塞)、优先级、程序计数器(PC)的值、寄存器状态、打开的文件描述符列表等。这些属性决定了进程的行为和状态
进程上下文
进程在CPU上执行一段时间后,需要切换到别的进程,需要保存前者的结果,下次再轮到前者执行的时候,会恢复上次执行的结果。
对于进程来说,上下文就是CPU中寄存器的值。寄存中包含了运行的中间结果,会把这些信息保存到PCB的上下文信息中。
进程的优先级
进程优先级是一个数值,用于表示进程相对于其他进程的重要性。操作系统可以使用进程优先级来调度进程,高优先级的进程可能会在低优先级的进程之前执行
进程记账信息
每个进程在CPU上执行了多久,统计信息
具有辅助调度的效果
防止一些进程完全无法执行
为什么有进程调度
CPU资源有限,需要合理安排,进程有很多,一般CPU处理器都是6/8核,需要通过进程调度同时处理这些进程。
多核CPU
CPU的运算能力,和集成程度是密切相关的
(密度)也就是制程。
单核计算能力有限,于是增加核心提升进程运行效率。
并行执行
多个CPU核心运行多个进程
并发执行
一个核心运行多个进程
运行一下进程1,运行进程2,再运行进程3,只要微观上切换的足够快,宏观上就是3个进程同时运行。
**现在基本上都是并行和并发同时执行。**
虚拟空间地址
给每一个进程分配内存资源
为了防止进程之间的相互影响
给每个进程划分的内存空间,都叫做
“虚拟的内存空间”
通过专门的设备MMU来完成,虚拟地址到物理地址之间的映射
mmu可以避免进程超出划分的虚拟内存,避免在真是物理地址中影响进程
有点类似于审核员
使用虚拟地址空间,就认为进程之间存在“隔离性”,一个进程无法干扰另一个进程的内存数据。提高了进程和系统的稳定性。
有些需求场景,需要多个进程互相配合
进程隔离了,进程间很难交互了
这时候 进程间通信就起作用了
进程间通信
核心原则是找一个 公共资源,多个进程都能访问到的,然后基于公共资源交换数据。
公共资源可以基于文件,可以基于socket,可以基于内存……具体方式在篇幅1有说明
哈,谢谢各位同志的阅读,然后呢如果觉得本文对您有所帮助的话,还给个免费的赞捏
Thanks♪(・ω・)ノ
相关文章:
[计组03]进程详解2
目录 应用程序 系统调用 驱动 软件 再看进程 进程管理 如何管理 ? 创建一个进程 注意 PCB 文件描述表 进程相关重点 为什么有进程调度 虚拟空间地址 这次我们从更加详细全面的角度看一下进程在计算机中体系中的展现 应用程序 应用程序 调动 系…...
使用redis+lua通过原子减解决超卖问题【示例】
系列文章目录 一、SpringBoot连接MySQL数据库实例【tk.mybatis连接mysql数据库】 二、SpringBoot连接Redis与Redisson【代码】 三、SpringBoot整合WebSocket【代码】 四、使用redislua通过原子减解决超卖问题【示例】 五、SpringBoot整合Elasticsearch【代码示例】 文章目录 系…...
WebFlux异常处理:onErrorReturn和onErrorResume
1 缘起 最近在学习WebFlux, 处理异常时遇到些问题,比如,Java直接抛出的异常无法直接被onErrorReturn和onErrorResume捕获, 但是,在map或者flatMap等方法之后的异常又可以直接被捕获, 于是,进行…...
《动手学深度学习 Pytorch版》 4.5 权重衰减
4.5.1 范数与权重衰减 整节理论,详见书本。 4.5.2 高维线性回归 %matplotlib inline import torch from torch import nn from d2l import torch as d2l# 生成一些数据,为了使过拟合效果更明显,将维数增加到 200 并使用一个只包含 20 个样…...
数据脱敏的风险量化评估介绍
1、背景介绍 当前社会信息化高速发展,网络信息共享加速互通,数据呈现出规模大、流传快、类型多以及价值密度低的特点。人们可以很容易地对各类数据实现采集、发布、存储与分析,然而一旦带有敏感信息的数据被攻击者获取将会造成个人隐私的严重…...
SpringCloudGateway网关实战(三)
SpringCloudGateway网关实战(三) 上一章节我们讲了gateway的内置过滤器Filter,本章节我们来讲讲全局过滤器。 自带全局过滤器 在实现自定义全局过滤器前, spring-cloud-starter-gateway依赖本身就自带一些全局过滤器࿰…...
08在MyBatis-Plus中配置多数据源
配置多数据源 模拟多库场景 适用于多种场景: 多库(操作的表分布在不同数据库当中),读写分离(有的数据库负责查询的功能,有的数据库负责增删该的功能),一主多从,混合模式等 第一步: 模拟多库,在mybatis_plus数据库中创建user表,在mybatis_plus_1数据库中创建product表 --创建…...
Centos8安装docker并配置Kali Linux图形化界面
鉴于目前网上没有完整的好用的docker安装kali桌面连接的教程,所以我想做一个。 准备工作 麻了,这服务器供应商提供的镜像是真的纯净,纯净到啥都没有。 问题一:Centos8源有问题 Error: Failed to download metadata for repo ap…...
游戏开发初等数学基础
凑数图() 立体图形面积体积 1. 立方体(Cube): 表面积公式: 6 a 2 6a^2 6a2 (其中 a a a 是边长)。体积公式: a 3 a^3 a3 (其中 a a a 是边长)。 2. 球体(Sphere): 表面积公…...
svg图片代码data:image/svg+xml转png图片方法
把代码保存为html格式的文件中,用浏览器访问,即可右键保存 从AI软件或其它网站得到svg图片代码后,把他复制到下面源码上 注意:src""图片地址中,一些参数的含义 d‘这里是图片代码数据’ viewBox是图片显示区域,宽,高等 fill%23000000’这里表示颜色 ,后面6位0表示黑色…...
解决问题:Replace `‘vue‘;⏎` with `“vue“;`
使用vscode写vue文件的问题: Replace vue;⏎ with "vue"; error Replace v-model:value"xxx"placeholder"inputsearch prettier/prettier 7:38 error Insert ⏎ potentially fixable with the --fix option 原因:格式问题&a…...
ThinkPHP 5.0通过composer升级到5.1,超级简单
事情是这样的,我实现一个验证码登录的功能,但是这个验证码的包提示tp5的版本可以是5.1.1、5.1.2、5.1.3。但我使用的是5.0,既然这样,那就升个级呗,百度了一下,结果发现大部分都是讲先备份application和修改…...
计算机竞赛 多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉
文章目录 0 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习多目标跟踪 …...
一文了解大模型工作原理——以ChatGPT为例
文章目录 写在前面1.Tansformer架构模型2.ChatGPT原理3.提示学习与大模型能力的涌现3.1 提示学习3.2 上下文学习3.3 思维链 4.行业参考建议4.1 拥抱变化4.2 定位清晰4.3 合规可控4.4 经验沉淀 写在前面 2022年11月30日,ChatGPT模型问世后,立刻在全球范围…...
CPP-Templates-2nd--第十九章 萃取的实现 19.7---
目录 19.7 其它的萃取技术 19.7.1 If-Then-Else 19.7.2 探测不抛出异常的操作 19.7.3 萃取的便捷性(Traits Convenience) 别名模板和萃取(Alias Templates And Traits) 变量模板和萃取(Variable Templates and Traits&…...
python 采用selenium+cookies 获取登录后的网页
百度网页由于需要登陆手机短信验证。比较麻烦 这里我采用先人工登录百度账号,然后将百度账号的相关cookies保存下来 然后采用selenium动态登录网页 整体代码如下 from selenium import webdriverimport timeoptions webdriver.ChromeOptions()options.add_argu…...
【测试开发】答疑篇 · 什么是软件测试
【测试开发】答疑篇 文章目录 【测试开发】答疑篇1. 生活中的测试2. 什么是软件测试3. 为什么要有测试/没有测试行不行4. 软件测试和软件开发的区别5. 软件测试和软件调试之间的区别6. 软件测试的岗位7. 优秀测试人员具备的素质 【测试开发】答疑篇 软件不一定是桌面应用&#…...
深入解析顺序表:揭开数据结构的奥秘,掌握顺序表的精髓
💓 博客主页:江池俊的博客⏩ 收录专栏:数据结构探索👉专栏推荐:✅C语言初阶之路 ✅C语言进阶之路💻代码仓库:江池俊的代码仓库🔥编译环境:Visual Studio 2022Ἰ…...
数据风险量化评估方案
一、企业面临数据安全的痛点 1、企业缺少清晰的数据安全意识 各部门重视度不够,缺少主动数据安全管控意识。数据安全管控架构不清晰,职责划分不明确。对数据安全管控认识不全面、不深刻。工作人员对于所持有的数据缺乏概念,导致数据的价值无…...
EasyAVFilter代码示例之将视频点播文件转码成HLS(m3u8+ts)视频点播格式
以下是一套完整的视频点播功能开发源码,就简简单单几行代码,就可以完成原来ffmpeg很复杂的视频点播转码调用流程,而且还可以集成在自己的应用程序中调用,例如java、php、cgo、c、nodejs,不需要再单独一个ffmpeg的进程来…...
day-50 代码随想录算法训练营(19)动态规划 part 11
123.买卖股票的最佳时机||| 分析:只能买卖两次,就是说有五个状态: 没有买过第一次买入第一次卖出第二次买入第二次卖出 思路:二维数组,记录五个状态 1.dp存储:dp[i][1] 第一次买入 dp[i][2] 第一次卖…...
自定义权限指令与防止连点指令
1.权限指令 // 注册一个全局自定义权限指令 v-permission Vue.directive(permission, {inserted: function(el, binding, vnode) {const {value} binding; // 指令传的值// user:edit:phone,sysData:sampleconst permissions [user:edit:address, sysData:entrust, sysData:…...
UE5、CesiumForUnreal实现瓦片坐标信息图层效果
文章目录 1.实现目标2.实现过程2.1 原理简介2.2 cesium-native改造2.3 CesiumForUnreal改造2.4 运行测试3.参考资料1.实现目标 参考CesiumJs的TileCoordinatesImageryProvider,在CesiumForUnreal中也实现瓦片坐标信息图层的效果,便于后面在调试地形和影像瓦片的加载调度等过…...
PostgreSQL执行计划
1. EXPLAIN命令 1)PostgreSQL中EXPLAIN命令的语法格式: postgres# \h explain Command: EXPLAIN Description: show the execution plan of a statement Syntax: EXPLAIN [ ( option [, ...] ) ] statement EXPLAIN [ ANALYZE ] [ VERBOSE ] statementwhere option can be…...
【2023 睿思芯科 笔试题】~ 题目及参考答案
文章目录 1. 题目 & 答案单选题编程题问题1:解析1:问题2:解析2: 声明 名称如标题所示,希望大家正确食用(点赞转发评论) 本次笔试题以两种形式考察的,分别是:选择题&a…...
Java手写AVL树
Java手写AVL树 1. AVL树实现思路原理 为了解释AVL树的实现思路原理,下面使用Mermanid代码表示该算法的思维导图: #mermaid-svg-ycH8kKpzVk2HWEby {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid…...
运维自动化:提高效率的秘诀
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...
C++设计模式_05_Observer 观察者模式
接上篇,本篇将会介绍C设计模式中的Observer 观察者模式,和前2篇模板方法Template Method及Strategy 策略模式一样,仍属于“组件协作”模式。Observer 在某些领域也叫做 Event 。 文章目录 1. 动机( Motivation)2. 代码…...
github网站打不开,hosts文件配置
首先获取github官网的ip地址, 打开cmd,输入ping github.com 配置: #github 140.82.114.4 github.com 199.232.69.194 github.global.ssl.fastly.net 185.199.108.153 assets-cdn.github.com 185.199.110.153 assets-cdn.github.com 185.199…...
总结PCB设计的经验
一般PCB基本设计流程如下:前期准备->PCB结构设计->PCB布局->布线->布线优化和丝印->网络和DRC检查和结构检查->制版。: : 第一:前期准备。这包括准备元件库和原理图。“工欲善其事,必先利其器”,要做出一…...
网站域名登录/百度网首页官网
Form.errors 访问errors属性以获取错误消息的字典: >>> f.errors >{sender:[输入有效的电子邮件地址。],subject:[此字段为必填项.]。 在这个字典中,键是字段名称,值是表示错误消息的Unicod…...
网站注意事项/建立自己的网站平台
PostgreSQL常用指令前言一、操作数据库命令1、创建数据库命令2、查看已经存在数据库3、进入数据库4、删除数据库二、操作表命令1、查看表是否创建成功2、查看表格信息3、列举表三、其他命令1、登录2、退出psql总结前言 操作PostgreSQL的命令主要包含操作命令,转换命…...
阿里云网站怎么做阿里妈妈/企业培训体系搭建
一、App启动优化1.App的启动可以分为2种冷启动(Cold Launch):从零开始启动APP热启动(Warm Launch):APP已经在内存中,在后台存活着,再次点击图标启动APPAPP启动时间的优化,主要是针对冷启动进行优化通过添加环境变量可以打印出APP的启动时间分…...
做暧暧网站免费/官网首页入口百度
褚时健“烟王”到“橙王”;顾雏军“十大经济人物”到“帝国崩塌”;郑俊怀“乳业教父”到“争议不断”;还有冯鑫由“暴风主宰”变成“身陷风暴”。 从“红塔山”到“暴风”,1999到2019,相似的一幕跨越20年依旧在上演。…...
滨州建设厅网站/深圳网络优化seo
2019独角兽企业重金招聘Python工程师标准>>> 在home目录下有wwwroot目录,wwwroot下有sinozzz目录,即/home/wwwroot/sinozzz 一、目录创建 在/home/wwwroot目录下新建一个sinozzz123的文件夹 mkdir /home/wwwroot/sinozzz123 二、目录复制 1.把…...
wordpress获取tags/百度推广客户端app下载
在很多的嵌入式的软件中,我们拿到代码,如果有文档先看看文档,没有文档也只能从Makefile的角度去看看软件的基本架构了。有一些大型的嵌入式软件项目的Makefile写的很复杂,这样在看学习Makefile的时候,需要一些技巧去分…...