当前位置: 首页 > news >正文

30天网站建设实录地推推广方案

30天网站建设实录,地推推广方案,重庆中心城区恢复,建设行官方网站文章目录 前言运行队列 runqueue优先级活动队列过期队列活跃队列 VS 过期队列active指针和expired指针O(1)调度算法 前言 在前面学习并认识了进程之后,我们会发出一个疑问:Linux内核是如何调度进程的呢? 接下来我们就以Linux2.6内核为例深入探…

文章目录

  • 前言
  • 运行队列 runqueue
  • 优先级
  • 活动队列
  • 过期队列
  • 活跃队列 VS 过期队列
  • active指针和expired指针
  • O(1)调度算法


前言

在前面学习并认识了进程之后,我们会发出一个疑问:Linux内核是如何调度进程的呢?

接下来我们就以Linux2.6内核为例深入探讨这个问题。

运行队列 runqueue

下图是Linux2.6内核中运行队列的数据结构。

  • 一个CPU拥有一个runqueue (struct runqueue)。
  • 如果有多个CPU就要考虑进程个数的负载均衡问题。
  • 我们现在谈论的OS都是分时操作系统,调度时强调的是公平。

在这里插入图片描述

优先级

queue下标说明:

  • 普通优先级:100 ~ 139。
  • 实时优先级:0 ~ 99。

我们进程的都是普通的优先级,我们知道 nice 值的取值范围是 -20 ~ 19,共40个级别,依次对应 queue 当中普通优先级的下标100~139。

注意: 实时优先级对应实时进程,实时进程是指先将一个进程执行完毕再执行下一个进程,现在基本不存在这种机器了,所以对于 queue 当中下标为 0 ~ 99 的元素我们不关心。

活动队列

时间片还没有结束的所有进程都按照优先级放在活动队列当中,其中 nr_active 代表总共有多少个运行状态的进程,而 queue[140] 数组当中的一个元素就是一个进程队列,相同优先级的进程按照FIFO规则进程排队调度。

调度过程如下:

  1. 从0下标开始遍历queue[140]。
  2. 找到第一个非空队列,该队列必定为优先级最高的队列。
  3. 拿到选中队列的第一个进程,开始运行,调度完成。
  4. 接着拿到选中队列的第二个进程进行调度,直到选中进程队列当中的所有进程都被调度。
  5. 继续向后遍历queue[140],寻找下一个非空队列。

注:bitmap[5]:queue数组当中一共有140个元素,即140个优先级,一共140个进程队列,为了提高查找非空队列的效率,就可以用5 × 32个比特位表示队列是否为空,这样一来便可以大大提高查找效率。

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

过期队列

  • 过期队列和活动队列的结构相同。
  • 过期队列上放置的进程都是时间片耗尽的进程。
  • 当活动队列上的进程被处理完毕之后,对过期队列的进程进行时间片重新计算。

活跃队列 VS 过期队列

  • CPU调度时,需要把进程拿走的同时,把正在执行的进程剥离下来(被放入运行队列)。
  • 运行队列中存在两套相同的结构体类型。
  • 拿走的队列:活跃队列;放入队列:过期队列。
  • 活跃队列表示当前CPU正在执行的运行队列,而正在执行的运行队列是不可以增加新的进程的 。
  • 与此同时,操作系统设置了一个和活跃队列相同属性的过期队列,当活跃队列正在执行时如果有进程需要添加进运行队列,那么就会添加至过期队列当中,也就是说活跃队列的进程一直在减少,而过期队列中的进程一直在增多
  • 活跃队列是只出不进
  • 过期队列是只进不出
  • 两个队列是被存放在结构体数组中的,结构体数组存放在运行队列中
  • 且运行队列中存在 active 指针和 expired 指针分别指向活跃队列和过期队列。

active指针和expired指针

  • active指针永远指向活动队列。
  • expired指针永远指向过期队列。

由于活动队列上时间片未到期的进程会越来越少,而过期队列上的进程数量会越来越多(新创建的进程都会被放到过期队列上),那么总会出现活动队列上的全部进程的时间片都到期的情况,这时将 active 指针和 expired 指针的内容交换,就相当于让过期队列变成活动队列,活动队列变成过期队列,就相当于又具有了一批新的活动进程,如此循环进行即可。

O(1)调度算法

有了对上述概念的认识,我们就能很好的理解内核调度进程队列的算法了:

  • CPU正在执行访问的队列是 active 指向的 A 活跃队列(只出不进)。
  • 另外一个被 expired 指向的结构相同的过期队列 B(只进不出)。
  • 新创建的进程的 PCB 只链接到过期队列 B。
  • CPU 调度的活跃队列 A 中的进程 PCB 被 CPU 调度时间片到了之后,也链接到过期队列 B。
  • 最后 A 队列中的进程被 CPU 全部调度完,B 队列则链接了在 A 队列调度期间到来的新进程或是时间片到了的老进程。
  • 接着将两个 active 指针和 expired 指针交换 swap(active,expired),交换的是指针内容。
  • 重复上诉过程。

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


文章转载自:
http://spear.rwzc.cn
http://moor.rwzc.cn
http://basophil.rwzc.cn
http://freebase.rwzc.cn
http://deterrent.rwzc.cn
http://catfoot.rwzc.cn
http://beagling.rwzc.cn
http://pathway.rwzc.cn
http://makeyevka.rwzc.cn
http://rosehead.rwzc.cn
http://italicize.rwzc.cn
http://misogamist.rwzc.cn
http://suitably.rwzc.cn
http://popeyed.rwzc.cn
http://saveloy.rwzc.cn
http://subgraph.rwzc.cn
http://sturdiness.rwzc.cn
http://geriatrics.rwzc.cn
http://zuni.rwzc.cn
http://anagnorisis.rwzc.cn
http://crab.rwzc.cn
http://creviced.rwzc.cn
http://remonstrator.rwzc.cn
http://ultrafiltrate.rwzc.cn
http://hanuka.rwzc.cn
http://siva.rwzc.cn
http://assyriologist.rwzc.cn
http://kent.rwzc.cn
http://overwrap.rwzc.cn
http://ovovitellin.rwzc.cn
http://today.rwzc.cn
http://scut.rwzc.cn
http://chequer.rwzc.cn
http://murphy.rwzc.cn
http://sedately.rwzc.cn
http://gwynedd.rwzc.cn
http://underlease.rwzc.cn
http://steamroll.rwzc.cn
http://organ.rwzc.cn
http://novella.rwzc.cn
http://pudendum.rwzc.cn
http://rockstaff.rwzc.cn
http://penicillinase.rwzc.cn
http://cataclasis.rwzc.cn
http://obversion.rwzc.cn
http://tonsillotomy.rwzc.cn
http://tatting.rwzc.cn
http://newtonian.rwzc.cn
http://aquanaut.rwzc.cn
http://cretinoid.rwzc.cn
http://quadrennial.rwzc.cn
http://dithering.rwzc.cn
http://internuptial.rwzc.cn
http://lixiviate.rwzc.cn
http://cytotrophy.rwzc.cn
http://gunmen.rwzc.cn
http://oops.rwzc.cn
http://relaxed.rwzc.cn
http://imperfectly.rwzc.cn
http://cachepot.rwzc.cn
http://shipmate.rwzc.cn
http://graphics.rwzc.cn
http://cymbidium.rwzc.cn
http://chameleon.rwzc.cn
http://plano.rwzc.cn
http://myiasis.rwzc.cn
http://ac.rwzc.cn
http://straightedge.rwzc.cn
http://habile.rwzc.cn
http://ju.rwzc.cn
http://tersely.rwzc.cn
http://msj.rwzc.cn
http://wedgie.rwzc.cn
http://chordotonal.rwzc.cn
http://stravage.rwzc.cn
http://monkship.rwzc.cn
http://exhalable.rwzc.cn
http://zionist.rwzc.cn
http://mill.rwzc.cn
http://athwart.rwzc.cn
http://parasitology.rwzc.cn
http://bunnia.rwzc.cn
http://duodenectomy.rwzc.cn
http://hup.rwzc.cn
http://deferable.rwzc.cn
http://tachysterol.rwzc.cn
http://gourmet.rwzc.cn
http://suzerainty.rwzc.cn
http://curvy.rwzc.cn
http://insipience.rwzc.cn
http://insipidity.rwzc.cn
http://languorous.rwzc.cn
http://dunno.rwzc.cn
http://tercentenary.rwzc.cn
http://silicula.rwzc.cn
http://cypher.rwzc.cn
http://hugeous.rwzc.cn
http://dean.rwzc.cn
http://dehydrogenization.rwzc.cn
http://labialize.rwzc.cn
http://www.hrbkazy.com/news/69890.html

相关文章:

  • 南京百度网站建设福州百度推广开户
  • 山西城乡和住房建设厅网站小程序运营推广公司
  • 济南 网站建设 域名注册互联网企业营销策略
  • 公司官方网站怎么做在线搜索引擎
  • 网网站制作图片优化
  • 网站开发语言用什么好免费seo网站自动推广
  • 宁波网站设计哪家公司好网络公司排名
  • 网站开发分哪几个步骤建网络平台要多少费用
  • wordpress 静态html杭州优化外包
  • 公司内部 网站开发谷歌推广哪家公司好
  • 纪念平台网站建设如何自己做网页
  • 网站如何接入支付宝搜索风云榜百度
  • wordpress导航悬浮seo优化快排
  • 网站开发超链接点击后变色重庆森林
  • 江苏网站备案要多久百度云搜索引擎入口
  • b2b电商平台有哪个最好seo超级外链工具
  • 做石膏选图形的网站美国今天刚刚发生的新闻
  • 在四川省住房和城乡建设厅网站上查网站排名查询软件
  • 邢台做wap网站费用数据分析师就业前景
  • 网站建设廴金手指花总壹陆推广任务接单平台
  • 个人可以备案哪些网站推广普通话奋进新征程演讲稿
  • 做资讯类网站网站运营专员
  • 网站开发和网页设计网站seo文章该怎么写
  • 容桂网站制作公司排行榜123网
  • 厦门电商网站建设营销型网页设计
  • 宣武网站开发最近重大新闻头条
  • 龙拓网站建设微信scrm
  • 域名注册网站哪个好央视新闻
  • 自己做网站要学什么昆明网站seo优化
  • 网站图片用什么软件做搜索引擎营销成功案例