?? 各位看官好,我是! ?? Linux == Linux is not Unix ! ?? 今天来学习Linux的进程优先级及进程调度,从底层剖析OS是如何进行进程调度的。
什么是优先级?
为什么要有优先级? 资源少,进程多,才需要竞争。
那Linux是如何保证优先级的呢?请阅下文。
PS工具不仅能获得一个进程的PID和PPID,还能获得一个进程的nice值、PRI等,接下来由小拜年带着一一介绍。
证明确实是分为40个级别: ?top命令更改已存在进程的nice: 进?top后按“r”?>输?进程PID?>输?nice值
简单而言,PRI越低代表进程优先级越高,而优先级调整是通过NICE值来调整,那PRI(old)呢?
PRI(old)是固定80,这是一种覆盖式设置,因此只需要调整NI来改变进程优先级。
这里抛出三个问题:
问题1:我们所接触到的操作系统叫做分时操作系统,这种系统的特性是需要尽可能地保证公平公正,即每个进程都要被调度到。那它又是如何做到每个进程都被调度的呢?放在下面讲
问题2:与具体调度算法有关。
CPU上下?切换:其实际含义是任务切换, 或者CPU寄存器切换。当多任务内核决定运?另外的任务时, 它保存正在运?任务的当前状态, 也就是CPU寄存器中的全部内容。这些内容被保存在任务??的堆栈中, ?栈?作完成后就把下?个将要运?的任务的当前状况从该任务的栈中重新装?CPU寄存器, 并开始下?个任务的运?, 这?过程就是context switch。
参考内核0.11代码:
时间片:当代计算机都是分时操作系统,每个进程都有它合适的时间?(其实就是?个计数 器)。 时间?到达,进程就被操作系统从CPU中剥离下来。
那么,OS是如何进行进程调度的?
状态+优先级!!!
下图是Linux2.6内核中进程队列的数据结构。
一个CPU,有一个运行队列(可能一个电脑不只一个CPU,但我们目前只探讨一个CPU的情况)
那[0,99]用来做什么呢? Linux 不仅仅在互联网中使用,在工业场景中也会被使用。 如:实时操作系统,Linux操作系统,支持实时操作系统的功能!![0,99]
OS调度进程,是如何选择进程的呢?从该结构中,选择?个最合适的进程,过程是怎么的呢?
bitmap[5]:?共140个优先级,?共140个进程队列。如果bitmap的空间为4,则有4*32=128个下标。为了提?查找?空队列的效率,就可以?5 * 32 = 160个?特位表?队列是否为空,这样,便可以大大提?查找效率!(替换遍历操作,提高了效率,O(1)时间复杂度)
如果调整某进程的nice值过大,此时它的PRI就会变大,导致进程优先级变低,就会插入到活跃队列靠后的位置。如果我再调整其他进程的nice值呢,让它们的优先级比该进程还高,此时操作系统一直都会执行优先级较高的进程,导致位置靠后的进程永远得不到调度。如果进程因为长时间不被调整,就会造成饥饿问题。我们的操作系统是一个分时操作系统,又该如何保证尽量公平公正地调度每一个进程呢?引入了过期队列。(设计者Ingo Molnar 和 Con Kolivas,不得不佩服是一个极为天才的设计)
工匠精神是什么 | 国师是什么生肖 | 省亲是什么意思 | 鸡项是什么鸡 | 散片是什么意思 |
四月初八是什么日子 | 民考民是什么意思 | 药娘吃的什么药 | 甲钴胺片治什么病 | 新奇的什么 |
蜻蜓喜欢吃什么 | 椰土是什么 | 烟酰胺是什么 | 隐翅虫咬了用什么药膏 | 夏天穿什么衣服比较凉爽 |
尿酸高挂什么科 | 为什么叫客家人 | 脸上过敏用什么药膏 | 尿泡沫多是什么原因 | 白细胞高吃什么降得快 |
ok镜是什么hcv9jop7ns0r.cn | 托人办事送什么礼物较好hcv8jop2ns7r.cn | 脚踝后面的筋疼因为什么520myf.com | 吃饺子是什么节日hcv9jop7ns4r.cn | 腱鞘炎吃什么药最好hcv7jop6ns6r.cn |
大便常规检查能查出什么hcv8jop0ns4r.cn | 阴道炎症用什么药hcv7jop6ns9r.cn | 姜字五行属什么hcv8jop1ns0r.cn | 社保缴费基数和工资有什么关系hcv8jop8ns3r.cn | bag是什么意思hcv9jop2ns0r.cn |
属牛的生什么属相的孩子好hcv7jop9ns0r.cn | 乳糖不耐受喝什么奶粉比较好hcv8jop6ns4r.cn | 为什么会厌学hcv9jop5ns4r.cn | 玄青色是什么颜色qingzhougame.com | ppd试验是什么意思bjhyzcsm.com |
胰腺炎不能吃什么食物hcv8jop7ns9r.cn | 无妄是什么意思aiwuzhiyu.com | 11月份什么星座hcv9jop2ns7r.cn | 什么是福报fenrenren.com | 阳瘘的最佳治疗方法是什么hcv8jop6ns4r.cn |