(UP才疏学浅,以下可能存在纰漏,非常欢迎各路大神指出错误和改进)
查看任务管理器的进程,我们可以看到又非常多的进程,每个进程有都需要执行,执行就需要占用cpu资源,但是cpu的资源又有限,例如我的电脑只有16个逻辑处理器,就意味着我的电脑只能同时处理16个进程,那其他进程怎么办呢?那么我们就需要了解一下进程调度了。
每个cpu就像一个工人,每个人都完成自己的任务,各个cpu之间互不影响;
进程调度的核心原则就是四个字:分时复用
一个cpu核心同个时刻只能执行一个进程执行,16核心同个时刻只能执行16个进程,就像不同的铁轨同一个时刻就可以跑不同的火车,这16进程同时执行就叫做并行执行;
但是一个核心不同时刻可以执行不同进程,就像铁轨一样,不同时刻可以有不同班次的车在跑,这种不同的进程在同个cpu上执行的情况就叫做并发执行;
CPU把总的执行时间,切换成若干个时间片段,每个片段执行一个进程,每个时间片段叫做“时间片”,又因为切换进程的时间非常短,人为是无法识别的,所以我们总感觉这非常多的进程是同时执行的;
并行执行,在微观上是同时执行的;
并发执行,在宏观上是同时执行的,在微观上是串行执行(就是轮流执行);
我们把“并行执行”和“并发执行”统称“并发执行”,所以当有人说到并发的时候要分清说的是并发还是并行,还把解决并发安全问题的编程叫做“并发编程”;
接下来进一步了解一下PCB中的四个属性,用来支持进程调度的
1.状态
状态分两种,“就绪状态”和“阻塞状态”;
在操作系统中,进程的就绪状态是指进程已经准备好运行,但由于某些原因(例如,正在等待CPU调度)尚未被调度执行。在多道程序设计环境下,有多个进程同时准备运行,但是操作系统一次只能将一个进程加载到CPU中执行。因此,就绪状态的进程处于一种等待执行的状态,一旦获得CPU时间片,就可以开始执行。
进程的阻塞状态是指进程在运行的过程,由于某种原因导致进程无法继续进行而处于一种等待状态,无法在CPU上继续进行,直到满足特定条件位置才能继续在CPU上继续执行,原因例如等待IO进程就会进入阻塞状态,就如进程中有Scanner.next(),此时进程就会进入阻塞转状态;
2.优先级
进程的执行是抢占式,进程的运行需要占有CPU资源,有的进程需要更多的CPU资源,有的进程相对就不需要那么多,就需要适当的分配好CPU资源,设置优先级高的分配更多的资源,设置优先级低的分配少的资源,优先级的高低就可以决定进程运行的次序,优先级高的可能反复在CPU上执行;
3.上下文
进程的上下文,每一个进程都有独立的上下文,会记录这个进程在退出CPU时执行到那里了,数据也会从CPU上的寄存器存到内存上;就比如你再算一道题,算一半突然有人向你请教另外一道题,你会先记住自己的题算到那里了,把数据存好,以便回头来算的可以接着算,等你帮同学算的过程中他说她明白了,想自己算,你可能也会记住他的这道题做到哪里,如果再问你你可以接着演示给他看;进程就像时每一道题一样,进程的上下文就相当于题目算到哪里了,并且每个进程的上下文就像题目算的数据一样是不同的,每一个进程都有独立的上下文;
4.记账信息
进程的记账信息可以说是进程的优先级的继续,在操作系统中,进程的记账信息通常是指系统对进程执行过程中产生的统计数据和日志信息的记录。这些信息对于监视系统性能、调优和故障排除非常有用。
=========================================================================
感谢你看到这里,接下来我就分享一下,老师讲的例子,以便更好地理解PCB中这四个支持进程调度的属性;
(故事背景)女神同时交往三个男朋友,A是个富哥,B是帅哥,C就是能够提供情绪价值的(tg);
1. A有家族生意,所以需要出差,不能被随时和女神约会啦,需要回来(特定条件)才能约会,进程才能运行,由于出差(这就是阻塞状态),但是tg就不一样了,属于是女神随叫随到的那种,就是一直处在就绪状态,只要女神有需要,就一定到(只要有CPU资源给他,他就一定能够执行);
2.一周有七天,女神打算一三五给A,二四六给B,为了不失去一个能够提供情绪价值就勉强把周日分给C吧;因为A有钱,会给女神更多有价值的东西,为了获得更多与价值的东西,女神就要分配更多的时间分给他(CPU资源),又比如B可以养眼,带出去给她闺蜜看有面子之类的,也分配更多的时间给B,但是女神也需要C来舔她,利用他,就分点时间给他,这就是进程的优先级影响CPU资源的分配;
3.A的妈妈要生日,女神准备了一些营养品;B约女神去海边玩,女神准备了一套性感的泳衣;这就对应了不同的事情有不同的安排,不同的进程有不同的上下文吧;不能女神把泳衣送给A的妈妈,而准备了两本书带去海边吧;(不过也不是不可以,但是后果就很难预料啦)
4.由于女神给AB分配了三天,只给C分配了一天,C不乐意了,说不要再舔你了,女神就说接下来一周都陪你,C就又屁颠屁颠地继续舔了,进程的记账信息就类似这样了,记录了CPU给它分配了多少资源,CPU会根据这个适当的分配资源;
(以上故事纯属虚构,好好学习,天天向上,建设好祖国和自己的家庭);