进程管理和进程调度的基本过程(详细版)

server/2024/10/18 8:23:39/

“无论你走得多慢,总比停下来要好。”

对于操作系统内核来说,里面包含的功能是非常多的,其中有一个功能和日常开发,息息相关。

进程管理:

进程(process/task):进程就是正在执行的应用程序。

说到一个应用程序,有两种状态:

  1. 没有运行的时候,是一个exe文件,存储在硬盘上的
  2. 运行的时候,exe就会被加载到内存中,并且CUP执行里面的指令  --> 进程

打开我们的任务管理器就可以看到我们正在运行的应用程序(进程)

这些进程,操作系统都要去执行的,执行进程里面的指令,是需要硬件资源的!

我们可以看见图中消耗了CPU,内存,硬盘,网络等资源的 .

进程是操作系统,进行资源分配的基本单位

进程管理:

  1. 描述  通过结构体/类,把进程中的各种属性,表示出来(主流系统差不多都是 c/c++实现的,广泛用到结构体 struct)  (对于 linux 操作系统来说,使用 "PCB" 这样的结构体来描述进程信息的).
  2. 组织  通过数据结构,把多个上面的结构体,串起来,并进一步的进行各种增删查改.(简单的认为,是通过链表的方式,把上述的多个 PCB 串到一起 )

创建新的进程,就相当于创建了一个 PCB 结构体,并且插入到链表中.销毁进程,就是把 PCB 从链表上删除掉,并且释放掉这个 PCB 结构体,查看进程链表,就是在便利这个链表,依次显示出对应信息.

PCB 其实是一个非常复杂的结构体,里面包含的属性是非常多的,这里就只讨论一些关键的信息:
1.PID 进程的标识符

同一时刻,一个机器上的多个进程之间, PID 是唯一的,不会重复.系统中的很多操作,都是通过 PID 找到相应的进程的.

 2.内存指针 (一组)

描述进程依赖的指令和数据都在内存的哪个区域,操作系统运行 exe,就会读取 exe 中的指令和数据,加载到内存中(内存地址).  (侧面表示出,进程的执行是需要一定的内存资源的).

3.文件描述符表 (顺序表/数组)

描述了进程打开了哪些文件,对应到硬盘上的数据.(侧面表示出,进程的执行是需要一定硬盘资源的!!!)

下面的几个属性,相互配合,组成了进程调度的核心逻辑!

进程调度:

计算机上同时存在百八十个进程,这么多进程,都是要执行的.

CPU负责执行,CPU每个核心都可以执行一个进程,假设一个计算机只能同时执行 12 个进程,那么其他进程该怎么办呢?

操作系统,采用"分时复用"的方法来进行操作.

"分时复用":这个时刻,cpu 运行 进程1,运行一会儿后,cpu 运行 进程2,过一会儿运行 进程3.......

由于 cpu 的运算速度非常快,使上述的切换速度,也是非常快的,肉眼察觉不到!站在宏观角度,同时执行,"并发执行".

当前的操作系统,都是"多任务系统",同时可以运行多个进程.现在有了多核心 cpu,此时每个核心和核心之间,微观上也能同时执行不同的进程.

接下来的这几个属性,就是用来支持 并发执行调度过程的.

在此之前,我先假设出一种情况,来便于大家来了解下面的几个属性:

假设我是一个好看的女生,我想找一个有钱,帅气,会哄人的男朋友。这种是很难找的,所以我一下耍了三个男朋友,A:有钱的富哥  B:帅气的小哥  C:没钱而且不帅,但是会哄人会提供情绪价值

那么我就需要进行“时间管理(分时复用)”了,进行巧妙地安排,不能让他们感知到对方的存在!

比如我安排一个时间表:

周一周二周三,和A进行约会                  周四和周五,和B进行约会                    周六,和C约会

周日的话,就寻找新的目标!

4.进程的状态:

比如,正常情况下,ABC都是“随叫随到”的。此时,ABC所处的状态就称为“就绪状态”。

就绪状态的进程,是可以随时被调度到 CPU 上进行执行的。

比如,有一天,B 外出出差了,B此时无法“随叫随到”了。此时,B处于的状态,称为“阻塞状态”。

阻塞状态的进程,无法调度到 CPU 上执行,之所以阻塞,是因为要做一些其他的工作,比如 进行Io 操作(读写硬盘/读写网卡……)。

除了上述的之外,进程还有其他的状态。

5.进程的优先级:

根据上面的时间安排中,可以看出A的优先级是最高的,C的优先级是最低的。这个就不用多说了把,A他有钱呀,可以给我提供更高的价值!如果我的心情比较好的话,就不需要C来哄了。假设心情糟糕的时候,此时C来哄一哄那确实是比较香的哈!

进程的优先级是一个操作系统中用于调度进程执行的关键参数。每个进程都会被分配一个优先级,系统通过这些优先级来决定哪个进程应该获得CPU时间。

6.进程的上下文:

分时复用,一个进程执行一会儿之后,就要从 CPU 上调度走,过一段时间,还会调度会 CPU,就要沿着上次的执行结果,继续往后执行。

有一天,和A约会的时候,A给我说,下个月他的妈妈过生日,想让我帮他买个礼物,让我提前物色物色。我约会结束之后,就需要把今天约会的核心结论,记录到本子上“下个月,给A的妈妈买礼物”。

第二天,和B约会的时候,B给我说,下个月他的爸爸过生日,想让我帮他买个礼物,让我提前物色物色。我约会结束之后,就需要把今天约会的核心结论,记录到本子上“下个月,给B的爸爸买礼物”。

如果我不去记录这些东西,就可能会出现问题:

比如过几天之后,A问我准备的咋样了。    我说我给咱爸精心挑选了个五匹狼。  A:???

B问我准备的咋样了。 我说我给咱妈精心挑选了个老花镜。   B:???

此时就会出现问题,搞不好会发现对方的存在。

7.进程的记账信息:

进程优先级的加持下,使不同的进程,吃到的资源,差异越来越大!

像上面的,我给C安排的时间比较少。随着时间的推移,C感觉到我对他逐渐冷淡,他在攒了一次次失望过程中,逐渐的灰心意冷,不想在继续舔我了。

我为了不失去 C,就需要适当的给 C 多来点甜头。某段时间,专门给 C 多安排点时间,并且准备点小礼物或者小惊喜。把他安抚好之后,再继续安排少一些的时间(毕竟,AB给我提供的价值更大)。

操作系统统计每个进程在 CPU 上执行的时间,根据这个来进一步调整调度的策略!

这几个属性相互配合,共同构成了进程调度的核心逻辑!

"这只是我们讨论的开始,未来还有更多的内容等着与您分享。请继续关注,我将分享更多的有趣的知识,让我们一起进行深入探讨……"

以上便是本期内容了,欢迎收看!


http://www.ppmy.cn/server/128068.html

相关文章

计算机毕业设计 基于Python的新闻采集与订阅平台的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

封装el-upload组件,用于上传图片和视频

使用环境 vue3element-ui plus 需要根据后端返回结构修改的函数&#xff1a;onPreview onRemove onSuccess 组件使用 基本使用 源代码&#xff1a; <script setup> import AutoUploadFile from /components/auto-upload-file/index.vue function change(urls){console.…

什么是大语言模型的输入和输出限制

大语言模型&#xff08;Large Language Model, LLM&#xff09;的输入和输出限制直接决定了该模型在处理文本时的性能与适用场景。大语言模型的最大输入指的是模型可以一次性处理的最大字符数或标记数&#xff0c;最大输出则是模型在生成结果时能够输出的最大字符或标记数量。这…

C++——模板进阶、继承

文章目录 一、模板1. 非类型模板参数2. 模板的特化函数模板特化类模板特化1. 全特化2. 偏特化部分特化参数更进一步的限制 二、继承1. 概念2. 定义定义格式 3. 继承基类成员访问⽅式的变化4. 继承类模板5.基类和派⽣类间的转换6. 继承中的作⽤域隐藏规则&#xff1a; 7. 派⽣类…

Word办公自动化的一些方法

1.Word部分内容介绍 word本身是带有格式的一种文档&#xff0c;有人说它本质是XML&#xff0c;所以一定要充分利用标记了【样式】的特性来迅速调整【格式】&#xff0c;从而专心编辑文档内容本身。 样式&#xff08;集&#xff09; 编号&#xff08;多级关联样式编号&#xff…

4款专业电脑数据恢复软件,帮你保障数据安全。

电脑里面会出现的数据丢失场景有很多&#xff0c;像硬盘故障、回收站清空、电脑格式化、系统崩溃、病毒入侵等等&#xff1b;如果发现数据丢失后&#xff0c;建议应停止使用电脑&#xff0c;避免新的数据写入覆盖丢失的数据。然后再尝试进行数据找回&#xff0c;如果想自己进行…

Pikachu- Over Permission-垂直越权

以admin 账号登陆&#xff0c;添加一个用户&#xff1b; 把添加用户的这个请求发送到 repeater&#xff1b; 退出admin&#xff0c;使用普通用户pikachu登陆&#xff1b; 只有查看权限&#xff1b; 使用pikachu 用户的认证信息&#xff0c;替换repeater处管理员创建用户请求的…

现代身份和访问管理 IAM 如何降低风险

您的公司是否仍在使用 1998 年时的身份管理系统&#xff1f;仅凭用户名和密码就能登录本地网络并访问几乎所有资源吗&#xff1f; 虽然大多数企业已经转向现代身份和访问管理(IAM) 平台&#xff0c;但成千上万的企业和其他组织仍然依赖过时的用户名/密码系统。 如果你看一下传…