赞
踩
本篇文章对应的是上篇文章单独拎出来详细介绍的操作系统的进程调度内容,介绍了一些属性,这些属性都是用来描述cpu资源相关的属性,这些属性是用来辅助进行进程调度的
目录
众所周知:一个程序要执行必须依靠CPU来运行,而我们介绍的进程调度主要相关联的就是我们计算机的CPU,毕竟程序执行得让CPU来执行程序的二进制指令集合。
进程调度的本质就是调度哪个进程来进入CPU进行执行,并且如何高效又稳定的调度这些进程就是我们操作系统的进程调度的作用
打开任务管理器(Ctrl+Art+Del),单击性能,即可看到自己计算机的CPU的相关信息
此处我们着重关注的内核和逻辑处理器
可以看到 这里的图中显示,内核为8,逻辑处理器为16,这是什么意思呢?
这里指的是CPU的核心数为8,这8个核心可以同一时间执行16个进程(这里的同一时间是并行的,是真正意义上的同一时间)
举个例子:
我们把内核看着干活的人,此处就是有8个干活的人,而逻辑处理器的意思就可以干的活,意思就是,这8个干活的人可以同时干16个人的活.
可是8个内核,只能同时执行16个进程,那为什么上面图中“同时”执行了258个进程呢?
带着这个问题我们来认识一下下面需要详细介绍的核心理论知识并行和并发
计算机几百个进程得“同时”执行,内核数和逻辑处理器就那么多,那么势必就面临“狼多肉少”的情况。
面对这种情况,我们有了并行和并发两种不同的执行进程的方法
并行:同一时刻,两个核心同时执行两个进程(一个核心执行一个进程),那么这个两个进程分别由不同的核心来执行,那么我们就称这个两个进程是并行的
并发:假设有多个进程需要被同一核心执行,这个核心先执行进程1,再执行进程2,再执行进程3,然后再执行进程1,像这样的一个内核来回转换执行多个进程,那么我们称这些进程之间是并发的
理论上内核只要转换这个并发的进程转换的够快,那么这些个并发的进程在我人的感知上就是“同时”进行的(此处的同时不是真正意义上的同时,而是由于进程转换的速度太快导致我们感觉这些在同一内核的并发进程是同时执行的)(进而我们感觉一个内核在同时执行很多个进程)
根据上面的介绍,我们就解决了为什么计算机和核心数和逻辑处理器那么少的情况下,计算机反而同时执行了两百多个进程的原因
而计算机是使用(并行+并发)的方式来执行那些进程的。也就是每一个核心并发的执行多个进程,来使得我们计算机的执行效率变块
而我们一般在介绍计算机的时候把(并行+并发)统称为并发,但是这一过程是由操作心态来操作的,人感知不到
所以我们知道进程调度实际上就是来稳定且又高效的来调度这数量庞大的进程进入CPU执行
上文我们知道了进程调度是什么,那么操作系统是如何进行进程调度的呢?
带着这个问题我们来介绍进程调度的几个重要的属性,进而使得我们对进程调度的执行有更好的理解
进程的状态简单来说就分为两个状态
1.就绪态:进程已经准备好了,随时可以上CPU执行进程,等待操作系统的调度进入CPU执行
2.堵塞态:进程由于其他原因不能上CPU那么,该进程就为堵塞态,这种状态下的进程不会被操作系统调入CPU执行
顾名思义也很容易理解,就是在进行进程调度的时候,我们优先调度优先级高的进程进入CPU执行,但并不是就绪态且优先级低的进程不会被调度(在还有优先级高的进程的情况下)这里还得结合进度的记账信息作为参考,下面会介绍
上下文:就是描述进程在CPU上运行的中间过,我们可以把它理解为进程的程存档记录
细讲:进程在离开CPU时要把执行的结果进行存档,以便该进程再次回到CPU则从当前存档处开始执行(理解为进程的存档和独档)
再细讲:所谓的上下文具体是指进程运行过程中CPU中的一系列关于该进程运行在寄存器中的值
而寄存器的典型作用就是:记录进程在执行过程中的中间结果,包含进程执行到哪套指令等
过程:当进程离开CPU的时候会把CPU寄存器中的值存储到PCB的(该进程)上下文字段中,当该进程再次回到CPU时,再把PCB中的存档恢复到寄存器中然后再从当前位置继续执行
记账信息:统计该进程在CPU上的执行时长,用于来作为CPU进行进程调度的一个参考,确保就绪态且优先级不同的进程不被遗漏
介绍到这里相信读者读进程的调度已经有一定的理解了,那么我们本文就介绍到这里了
如果喜欢的小伙伴可以给点支持吗,谢谢各位友友!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。