多线程初阶:进程调度基本过程

目录

一. 什么是进程?

二. 操作系统是如何是管理进程的?

1.先描述一个进程

2.将若干个进程组织起来

三. 进程调度的基本过程

状态

优先级

记账信息

上下文

经典案例


一. 什么是进程?

要知道进程的调度过程,首先我们要了解什么是进程,我们打开任务管理器(快捷键CTRL+alt+delete),就会发现它的第一栏就是进程,如下图所示:

 当我们多打开一个.exe文件,就会发现任务管理器的进程会多一行,这是对应软件的进程,当关闭它,对应的线程也随之结束;如果不运行它,它只会默默地在硬盘空间里,不会对系统产生任何影响,这里面的进程,有些是电脑开机就启动的,有些是需要我们手动打开的

二. 操作系统是如何是管理进程的?

1.先描述一个进程

我们需要明确指出进程中的相关属性。

例如:要形容一个游戏,我们需要游戏的名字,简介,购买渠道等

给大家介绍一下“PCB”(进程控制块),注意并不是那个参见的PCB板(这个是硬件中的),在操作系统里面主要是通过c/c++来实现相关属性,和Java中的类差不多,描述这个进程中的属性。操作系统中描述进程的这个结构体,称为“PCB”,

2.将若干个进程组织起来

就是使用双向链表来把每个进程的PCB给串起来~~,注意这里指的是在Linux这个系统为例,每个操作系统的类型不同,内部的实现也是各有不同的

再给大家简单分析一下所谓的一些进程操作

“创建进程”: 就是先创建出PCB,然后把PCB插入到双向链表中。
“销毁进程”: 就是找到链表上的PCB,然后从链表上删除它。
“查看任务管理器”: 就是遍历链表并把链表数据显示出来

三. 进程调度的基本过程

进程的调度,其实就是,操作系统在考虑CPU资源如何给各个进程分配


状态

这个状态就描述了当前这个进程接下来应该怎么调度

运行状态:顾名思义,此时进程在cpu上正在运行
就绪状态:随时可以去CPU上执行
阻塞状态/睡眠状态:暂时不可以去CPU上执行

优先级

先给谁分配时间,后给谁分配时间,以及谁分的多,给谁分的少

记账信息

统计了每个进程,都分别被执行了多久,分别都执行了哪些指令。分别都排队等了多久,目的是给进程调度提供指导依据的。

上下文

表示上次进程被调度出CPU的时候,当时程序的执行状态~~,下次进程上CPU的时候,就可以恢复之前的状态,然后继续往下执行。

进程被调度出CPU之前,要把CPU中的所有的寄存器中的数据都给保存到内存中(PCB的上下文字段中)


经典案例


假设你是一个妹子,长的巨好看,身材一流,还会讲话~~
所以你有很多的追求者,但是原则上讲,你在同一时刻只能谈一个男朋友
但是在现实中,基本不可能有这种人    :)
于是你为了满足自己的这些要求,同时谈了三个男朋友~
A:有钱的
B:长得帅的
C:会舔的
因此,一个时间管理大师就横空出世了,你需要合理安排自己的时间,避免同一时刻,这三人碰面
这时候你首先要做的事情就是给自己排一个时间表~
宏观上看起来,你是同时谈了三个男朋友。
微观上看起来,同一时刻,你只是和一个男朋友在一起
显然这就是并发,规划时间表的过程,也就是“调度”的过程
 

好了,本期就讲到这里,下期给大家带来更多精彩内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马可波罗.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值