当前位置: 首页> 汽车> 维修 > 宁波seo快速优化技术_安卓手机建站_阳西网站seo_线上购买链接

宁波seo快速优化技术_安卓手机建站_阳西网站seo_线上购买链接

时间:2025/7/13 6:45:17来源:https://blog.csdn.net/m0_74358683/article/details/144160781 浏览次数: 1次
宁波seo快速优化技术_安卓手机建站_阳西网站seo_线上购买链接

Linux 进程概念补充【Linux】 进程是什么(不熟悉的兄弟可以看看)。


 1. runqueue介绍

我们知道当进程处于运行(R)状态时会被链入运行队列中,那么运行队列长什么样子呢?

上图有两个一摸一样的结构array[0]和array[1]分别叫活跃队列,和过期队列 。先来介绍其字段的作用。

nr_activeb:表示总共有多少个运行状态的进程。

queue[140]:其中0-99用于实时操作系统 100到139表示我们分时操作系统的优先级(刚好对应我们的nice值)。如图:

最后一个字段bitmap[5](位图)是int类型的数组。有32*5(160)个比特位 我们用前140个来表示queue对应位置是否有task_struct。相当于每次遍历步长为32(一个4字节整形的比特数)以提高遍历效率。

2. O(1)调度算法

那么runqueue为啥要设计两份相同的字段呢?这就涉及其进程调度的逻辑了。

在操作系统学科中有非常多的进程调度算法,其中Linux(O)1调度算法算得上最优雅的调度算法之一了。

其中被cpu执行的queue叫活跃队列,在这期间过期队列接收从其他状态变为运行状态的进程或是活跃队列中时间片用完的进程。(保证公平性,减少进程饥饿)。

runqueue中有两个指针active指针expired指针,分别指向活跃队列过期队列

当活跃队列占用一定时间的cpu后。Linux会交换active指针expired指针。相当于过期队列变成了活跃队列,活跃队列变成了过期队列(无缝丝滑交换效率之高)。

所以无论从进程调度的效率方面来考虑还是进程调度的公平性Linux进程调度算法都相当优秀。

总结:

在系统当中查找一个最合适调度的进程的时间复杂度是一个常数,不随着进程增多而导致时间成本增加,我们称之为进程调度O(1)算法!

关键字:宁波seo快速优化技术_安卓手机建站_阳西网站seo_线上购买链接

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: