认识进程 -了解进程调度

news2024/9/23 21:23:02

前言

本篇通过介绍操作系统OS的重要功能,了解并发并行, 了解操作系统的一项重要功能 “进程管理” , 通过了解进程管理认识进程是操作系统资源分配的基本单位 ,如有错误,请在评论区指正,让我们一起交流,共同进步!


文章目录

  • 前言
  • 1. 进程管理
    • 1.1 进程的描述
    • 1.2 进程的管理
  • 2. 了解并发 与 并行
  • 3. 内存分配
  • 4. 进程通信
  • 总结

本文开始

1. 进程管理

进程管理是操作系统的一项重要功能, 用来管理多项进程;

说到进程, 哪什么是进程呢?
进程: 一项运行的程序 或者 一个运行的任务;
例如: 各种.exe文件, exe文件是一种可执行文件

在这里插入图片描述

了解了进程, 哪什么是进程管理呢?
进程管理就是当运行的进程个数增多, 就需要对它们进行管理;
进程管理包括:
①对进程的描述: 使用结构体(PCB - 进程控制模块)对进程进行描述, 表示出进程的各种信息;
②对这些进程的管理: 使用一些数据结构(双向链表),组织这些结构体;


1.1 进程的描述

进程的描述使用结构体, 结构体中有很多属性, 这里介绍一些重要的属性;
进程中的结构体称为: PCB

  1. pid : 结构体唯一的身份标识 (例如数据库的唯一主键用来表示身份)
  2. 内存指针 : 用来描述进程在内存中使用的资源位置;
    [注意] 进程运行起来需要占用内存资源
  3. 文件描述符表 : 进程运行起来使用的硬盘资源;
    [注意] 什么是文件表述符表 ? ? ?
    文件标识符: 用来记录(标识)文件被打开
    进程运行会打开文件, 每打开一次文件就会产生一个文件标识符, 一个进程可能打开多个文件, 这样会产生一组文件表示符, 将这些文件标识符放入顺序表中, 就称为文件标识符表;

   从2和3来看, 进程的运行都需要操作系统进行资源分配 => 所以说 进程是操作系统进行资源分配的基本单位

  1. 进程调度 - 有一组属性, 用来辅助进行进程调度
    [注意] 这些属性与CPU资源相关
    进程状态(两种) :
    就绪态: 进程已经准备, 随时可以在CPU上执行
    堵塞态: 进程暂时不能在CPU上执行

    例如: 一些小学生去学校上课, 正常的小学生去上课, 可以认为是就绪态, 但是有些小学生生病了, 就暂时不能去学校了, 这就可以认为是阻塞态
    进程的优先级
    进程的执行不是无序的, 进程之间的调度是有不公平的, 有的需要优先调度
    例如: 老人, 成年人, 小学生做公交车, 目前认为公交车座位的满了, 成年人看到小学生可能把座位让给他, 而小学生和成年人看到老人可能把座位让给老人;
    进程的上下文
    进行在执行过程中, 如果进程离开CPU, 需要把当前的结果存档, 当再次进入CPU, 会重新恢复存档(也就是读档), 接着进行下面操作;
    [注意] 寄存器: 保存进程执行的中间结果, 进程执行到那块的指令等等
    上下文: 进程在执行过程中, 在CPU内部一系列寄存器的值;
    当进程离开CPU就需要存档, 把当前的寄存器中的值 保存到PCB中的上下文中;
    当进程再次运行, 就需要读档, 把PCB中的值恢复到寄存器中;

    进程的记账信息
    记账信息就是记录 进程 在CPU中运行的时间, 为进程调度提供参考依据

1.2 进程的管理

可以把每个进程认为是一个节点, 操作系统就使用双向链表来管理进程
① 创建一个进程, 相当于创建一个节点, 连接在链表上
② 删除一个进程, 相当于删除一个节点在一个链表上
③ 遍历进程(任务管理器上运行的程序任务是排成的链表) , 就是遍历链表

2. 了解并发 与 并行

并行: 同一时刻, 两个核心执行两个进程, 认为 两个进程时同时进行的

并发: 一个核心, 先运行一个进程1, 运行一会, 马上切换另一个进程2, 在运行一会,切换进程 3…
当进程之间的切换时间足够短时 就认为 1,2,3…进程就是同时执行的 => 一个核心多次调度, 时间足够短, 认为多个进程是并发的
[注意] 每台电脑上的看自身的配置这里是(8核16线程); 逻辑处理器: 16个逻辑核心; 内核: 8个物理核心

在这里插入图片描述

但我们常说的 并发 = 并行 + 并发

3. 内存分配

操作系统给进程分配内存, 所使用是 “虚拟内存地址” , 也就是说 进程访问的内存地址都不是真实的地址, 而是虚拟的; 这样的优点是让进程执行期间互不干扰

例子如图:
这里只是粗糙的说明一下, 绿色为虚拟内存, 红色为校验操作;
页表: 用于校验, 方便知道当前地址是否是有效的; (如果没有页表进程之间会产生BUG(野指针等情况), 从而出现运行错误等)

在这里插入图片描述

内存分配执行流程:
进程根据虚拟内存地址, 访问虚拟内存, 再到页表校验查找对应的内存, 如果找到会映射到真实的内存上, 没找到无法进行下一步操作, 也不会影响的其他进程;

从上面的内存的分配流程里, 可以知道一个进程无法干预另一个进程, 进程之间有独立性;

4. 进程通信

一些必要的时候需要进程与进程之间进行通信, 互相配合; 这就用到了进程之间的通信;
进程间通信: 在隔离的情况下, 有一个公共的区域, 让进程之间进行数据交换;
这里只是了解一下进程通信;


总结

✨✨✨各位读友,本篇分享到内容如果对你有帮助给个👍赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

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

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

相关文章

< Linux > 多线程(线程概念 + 线程控制)

目录 1、Linux线程概念 什么是线程 简单使用线程 二级页表 线程的优点 线程的缺点 线程异常 线程用途 2、Linux进程 VS 线程 进程和线程 进程的多个线程共享 进程和线程的关系 3、Linux线程控制 POSIX线程库 线程创建pthread_create 获取线程ID pthread_self 线程等待pthrea…

31-java对象内存图

java对象内存图1.java内存分配介绍2.一个对象的内存图3.两个对象的内存图4. 两个引用指向同一个对象5. 基本数据类型和引用数据类型6. this关键字内存图6.1 就近原则的本质6.2 set/get赋值的本质6.3 小结1.java内存分配介绍 2.一个对象的内存图 3.两个对象的内存图 再创建第二个…

hive中时间函数 YYYY和yyyy,MM和mm,HH和hh 区别

yyyy-MM-dd HH:mm:ss 年-月-日 时:分:秒 YYYY 和 yyyy 区别 y/YMeaning解释yyear-of-era元年,我们平时理解的年;20221231认为是2022年Yweek-based-year基于周的年,只要日期那周跨年,都算下一年;2020-12-27周日&#x…

Canvas

canvas介绍 什么是 Canvas?Canvas 是为了解决 Web 页面中只能显示静态图片这个问题而提出的,一个可以使用 JavaScript 等脚本语言向其中绘制图像的 HTML 标签。 Canvas 解决了什么问题 我在 MSDN(《Microsoft Developer Network》是微软一…

金三银四面试热潮将至,靠这一份软件测试面经,offer拿到手软

不知不觉又到了新一年的金三银四, 去年的疫情紧张,造成的一系列影响我相信大家都还历历在目,尤其是工作这块更是如此,找工作的紧迫度,导致很大部分人群在工作发展可能并没有想象中的那样迅速。 作为一名在职的测试人员…

BI数据可视化分析|套用方案,第一时间摸清家底

奥威BI软件的通用标准方案是一套从17年经验中针对性整理而来的一套标准化的数据分析解决方案,无缝对接金蝶、用友全版本ERP,覆盖财务、库存、采购、销售多个主题,提供多个实用型数据分析模型和BI数据可视化报表,套用即生效&#x…

如何解决执行webgoat-2023.4遇到的错误java.lang.UnsupportedClassVersionError

问题执行java -jar webgoat-2023.4.jar报如下错误,Exception in thread “main“ java.lang.UnsupportedClassVersionError,报错截图:2. 原因jvm(java命令)和jdk(javac命令)版本不一致。如果是w…

前沿气候预测方法(精选)

气候预测方法ClimaxGraphcastCLCRNEarthformerPangu另一些值得关注的方法物理约束相关模型模式误差订正模型时空预测模型其他总结Climax 基于vit的backbone 不同尺度的lead time 输入的每个时间片都像往常一样经过变量标记化、变量聚合和注意层,输出形状为T ℎ …

CAN总线协议

阅读指引:术语过多,故各术语在第一次出现时解释,跳读时遇到不明的词可向上搜索看看;信息量过大,很多细节没有展开,正文只写多数人可以了解的基础知识,请按需点击文中链接阅读更多详情。1 综述CA…

9 自编码器(Auto encoder)及python实现

1 数据集介绍 1.1 Mnist 手写数字数据库 (LeCun 在1998年创造) (1)手写数字 0-9共10类 (2)训练样本60000个,测试样本10000个。 (3)图像大小 28*28 二值图像。 &#xf…

[深入理解SSD系列 闪存实战2.1.5] NAND FLASH基本读操作及原理_NAND FLASH Read Operation源码实现

前言 上面是我使用的NAND FLASH的硬件原理图,面对这些引脚,很难明白他们是什么含义, 下面先来个热身: 问1. 原理图上NAND FLASH只有数据线,怎么传输地址? 答1.在DATA0~DATA7上既传输数据,又传输地址 当ALE为高电平时传输的是地址, 问2. 从NAND FLASH芯片手册可知,要…

TryHackMe-Lockdown(boot2root)

Lockdown 停留在 127.0.0.1。穿255.255.255.0。 端口扫描 循例 nmap Web枚举 进入80 发现跳转到了contacttracer.thm,将其添加进/etc/hosts 这里试了一下注入 结果这就进去了 在后台逛了一圈,最后还是把目光放在了图片上传点 试了一会,貌似…

SVN 版本控制软件

SVN 版本控制软件 属于C/S结构软件(客户端与服务端) 服务端软件:VisualSVN 网址:Downloads | VisualSVN 下载好:VisualSVN-Server-5.1.3-x64.msi 客户端软件:TortoiseSVN 网址:http://tor…

AI技术的应用场景和要注意的问题

AI技术可以应用到许多不同的业务场景中,以下这些仅仅是AI技术的一些应用场景,实际上,AI技术可以应用于任何需要处理大量数据、自动化决策和复杂问题的领域。今天和大家分享一下AI技术的应用场景和要注意的问题,希望对大家有所帮助…

借助采购管理数字化解决方案 帮助企业解决传统采购痛点

当今各行业热烈竞争中,企业最终服务交付的效率和质量是这个时代最重要的要素。传统的采购流程工作涉及大量的文书工作,且耗时长,往往容易出现操作出错,造成企业在成本上的大量损失。 作为管理者,企业采购决定你的业务…

2018年MathorCup数学建模B题品牌手机目标用户的精准营销解题全过程文档及程序

2018年第八届MathorCup高校数学建模挑战赛 A题 品牌手机目标用户的精准营销 原题再现: 随着我国电子商务和移动支付的快速发展,手机已经成为人们必不可少的工具。除了常规的通讯功能外, 手机还可以进行购物、支付、娱乐、学习和交流等。因此, 选择一个什么样的手机…

比特币仍使投资者悲观!数字美元可能会使加密货币清零?

当谈到比特币时,投资者仍然感到悲观。政府严厉的监管打击,美联储加息提速以及FTX的牺牲品——Silvergate的倒闭等因素,都在催促投资者要么卖出,要么坐以待毙。 FTX崩塌后,余波未了。在这几个月里,监管机构纷…

易优cms SQL获取数据库内容的标签

SQL获取数据库内容的标签 【基础用法】 标签:sql 描述:用于获取MySQL数据库内容的标签。 用法: {eyou:sql sql cachetime3600 empty没有数据} {$field.数据表相应的字段名称} {/eyou:sql} 属性: sql 需要查询的SQL语句 …

mac系統iTerm2+oh-my-zsh+solarized配色方案

文章目录1 下载并安装iTerm22 安装solarized主题3 安装oh-my-zsh并配置agnoster主题4 设置powerline5 隐藏用户名信息6 设置语法高亮和代码自动补全7 (可选)如果出现plugin ‘zsh-autosuggestions’ not found1 下载并安装iTerm2 brew install iterm2安…

C++基础

C基础 C语言新特性 2.1 C的新特性 C比 C 语言新增的数据类型是布尔类型(bool)。但是在新的 C 语言标准里已经有布尔类 型了,但是在旧的 C 语言标准里是没有布尔类型的,编译器也无法解释布尔类型。 在传统的 C 语言里&#xff0…