哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何解決Linux進(jìn)程調(diào)度優(yōu)先級(jí)數(shù)字混亂的問(wèn)題?詳細(xì)實(shí)例分析

Linux閱碼場(chǎng) ? 來(lái)源:未知 ? 作者:易水寒 ? 2018-10-03 10:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux進(jìn)程的調(diào)度優(yōu)先級(jí)數(shù)字會(huì)在好幾個(gè)地方出現(xiàn):內(nèi)核,用戶(hù),top命令。他們各自都有自己的表示法。我們用一個(gè)實(shí)際的例子來(lái)說(shuō)明,下面在Linux寫(xiě)一個(gè)最簡(jiǎn)單的程序:

編譯它運(yùn)行,把調(diào)度策略設(shè)置為SCHED_FIFO,優(yōu)先級(jí)設(shè)置為50:$ sudo chrt -f50./a.out這個(gè)時(shí)候我們?cè)趖op命令里面觀(guān)察a.out:

我們看到a.out的PR(優(yōu)先級(jí)是)-51,CPU利用率100%。但是從內(nèi)核的視角上面來(lái)看,又會(huì)用99減去用戶(hù)在chrt里面設(shè)置的優(yōu)先級(jí):

上面的MAX_RT_PRIO的值為:

所以上述進(jìn)程的優(yōu)先級(jí),在三個(gè)不同視角的值分別為:

用戶(hù) 內(nèi)核 Top
50 49 -51

咋回事

Linux的RT調(diào)度策略和普通進(jìn)程在調(diào)度算法上面有差異,RT的SCHED_FIFO和SCHED_RR采用的是一個(gè)bitmap:

每次從第0bit開(kāi)始往后面搜索第一個(gè)有進(jìn)程ready的bit,然后調(diào)度這個(gè)優(yōu)先級(jí)上面的進(jìn)程執(zhí)行,所以在內(nèi)核里面,prio數(shù)值越小,優(yōu)先級(jí)越高。但是從用戶(hù)態(tài)的API里面,則是數(shù)值越大,優(yōu)先級(jí)越高。下面的代碼,一個(gè)線(xiàn)程通過(guò)調(diào)用API把自己設(shè)置為SCHED_FIFO,優(yōu)先級(jí)50

這個(gè)上面的50,對(duì)應(yīng)內(nèi)核的49。如果我們把優(yōu)先級(jí)設(shè)置為51:

這個(gè)51,對(duì)應(yīng)內(nèi)核bitmap上面的48。所以,你會(huì)發(fā)現(xiàn),從用戶(hù)的視角來(lái)看,數(shù)值變大,優(yōu)先級(jí)變高。上面這2個(gè)視角,都不是top命令的視角。對(duì)于RT的進(jìn)程而言,TOP的視角里面的PR= -1 -用戶(hù)視角譬如,下面用戶(hù)視角的88,

$ sudo chrt -f 88 ./a.out

對(duì)應(yīng)內(nèi)核視角的11,對(duì)應(yīng)top視角的-89:

這實(shí)在讓人有一點(diǎn)暈!!這里還有一個(gè)特例,就是用戶(hù)視角的99(內(nèi)核bitmap視角的0),顯示為top命令的RT:

這說(shuō)明一點(diǎn),只有最高優(yōu)先級(jí)的RT進(jìn)程,才在top里面顯示為rt。

普通的呢?

普通的講nice的人相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,我們更關(guān)注它的nice值,-20~19之間,nice越低,優(yōu)先級(jí)越高,權(quán)重越大,在CFS的紅黑樹(shù)左邊的機(jī)會(huì)大。

你發(fā)現(xiàn).nice為5的進(jìn)程,在top命令顯示PR是25。下面我們看nice是-5的:

它顯示的是PR=15。由此大家可以發(fā)現(xiàn)規(guī)律,對(duì)于普通的采用CFS策略的NORMAL進(jìn)程,top里面的PR=20+NICE

在一起

總結(jié)一下,4個(gè)例子

用戶(hù) 內(nèi)核 Top
RT 50 49 (99-50) -51 (-1-50)
RT 99 0 rt
NICE 5 25
NICE -5 15

由此發(fā)現(xiàn),在top里面,RT策略的PR都顯示為負(fù)數(shù);最高優(yōu)先級(jí)的RT,顯示為rt。top命令里面也是,數(shù)字越小,優(yōu)先級(jí)越高。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    4

    文章

    1474

    瀏覽量

    43087
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11806

    瀏覽量

    219486
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    696

    瀏覽量

    35265

原文標(biāo)題:宋寶華: 關(guān)于Linux進(jìn)程優(yōu)先級(jí)數(shù)字混亂的徹底澄清

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式技術(shù)中如何定義進(jìn)程優(yōu)先級(jí)

    靜態(tài)優(yōu)先級(jí)是所有相關(guān)優(yōu)先級(jí)的計(jì)算的起點(diǎn),要么繼承自父進(jìn)程,要么用戶(hù)空間自行設(shè)定。一旦修改了靜態(tài)優(yōu)先級(jí),那么normal priority和動(dòng)態(tài)優(yōu)先級(jí)
    發(fā)表于 09-18 16:08 ?2082次閱讀
    嵌入式技術(shù)中如何定義<b class='flag-5'>進(jìn)程</b><b class='flag-5'>優(yōu)先級(jí)</b>

    基于優(yōu)先級(jí)搶占系統(tǒng)的QNX調(diào)度算法

    調(diào)度算法,是基于優(yōu)先級(jí)的。QNX的線(xiàn)程優(yōu)先級(jí),是一個(gè)0-255的數(shù)字數(shù)字越大優(yōu)先級(jí)越高。所以,
    發(fā)表于 10-31 09:17 ?1535次閱讀

    Linux進(jìn)程優(yōu)先級(jí)和環(huán)境變量詳解

    cpu 資源分配的先后順序,就是指進(jìn)程優(yōu)先權(quán)(priority) .優(yōu)先權(quán)高的進(jìn)程優(yōu)先執(zhí)行權(quán)利。配置
    發(fā)表于 03-28 10:54 ?1244次閱讀

    Linux內(nèi)核進(jìn)程管理與調(diào)度:策略?xún)?yōu)化與實(shí)踐分析

    今天給大家上點(diǎn)硬貨,關(guān)于Linux進(jìn)程管理和調(diào)度是學(xué)習(xí)和理解Linux的必學(xué)知識(shí)。為協(xié)調(diào)多個(gè)進(jìn)程 "同時(shí)" 運(yùn)行,現(xiàn)代操作系統(tǒng)通常使用
    發(fā)表于 05-08 09:42 ?1638次閱讀
    <b class='flag-5'>Linux</b>內(nèi)核<b class='flag-5'>進(jìn)程</b>管理與<b class='flag-5'>調(diào)度</b>:策略?xún)?yōu)化與實(shí)踐<b class='flag-5'>分析</b>

    深入Linux內(nèi)核:進(jìn)程調(diào)度的核心邏輯與實(shí)現(xiàn)細(xì)節(jié)

    ,背后都離不開(kāi)內(nèi)核調(diào)度算法的精準(zhǔn)操控。今天,我們就從優(yōu)先級(jí)、調(diào)度算法、時(shí)間片分配到底層實(shí)現(xiàn),全方位拆解Linux內(nèi)核進(jìn)程
    的頭像 發(fā)表于 12-24 07:05 ?4538次閱讀
    深入<b class='flag-5'>Linux</b>內(nèi)核:<b class='flag-5'>進(jìn)程</b><b class='flag-5'>調(diào)度</b>的核心邏輯與實(shí)現(xiàn)細(xì)節(jié)

    干貨分享:基于嵌入式Linux進(jìn)程調(diào)度實(shí)現(xiàn)方法

    可運(yùn)行隊(duì)列中。Linux進(jìn)程調(diào)度采用了動(dòng)態(tài)優(yōu)先級(jí) 和權(quán)值調(diào)控的方法,既可實(shí)現(xiàn)上述三種調(diào)度策略,又能保證實(shí)時(shí)
    發(fā)表于 12-10 14:17

    鴻蒙內(nèi)核源碼分析(調(diào)度隊(duì)列篇):進(jìn)程和Task的就緒隊(duì)列對(duì)調(diào)度的作用

    OsTaskPriQueueTop查最高優(yōu)先級(jí)任務(wù)OsDequeEmptySchedMap進(jìn)程出列[td]OsGetTopTask獲取被調(diào)度選擇的task鴻蒙內(nèi)核進(jìn)程和線(xiàn)程各有32個(gè)就
    發(fā)表于 11-23 11:09

    Linux 2.6進(jìn)程調(diào)度

    分析了與Linux 2.6 進(jìn)程調(diào)度密切相關(guān)的一些重要數(shù)據(jù)結(jié)構(gòu),詳細(xì)描述了進(jìn)程
    發(fā)表于 06-13 10:13 ?11次下載

    嵌入式系統(tǒng)優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題的分析

    摘要: 本文介紹了嵌入式系統(tǒng)任務(wù)調(diào)度優(yōu)先級(jí)反轉(zhuǎn)的一個(gè)實(shí)例。通過(guò)實(shí)例的討論對(duì)嵌入式系統(tǒng)優(yōu)先級(jí)反轉(zhuǎn)有一個(gè)更深入的了解,有助于在編程
    發(fā)表于 03-11 12:18 ?1213次閱讀
    嵌入式系統(tǒng)<b class='flag-5'>優(yōu)先級(jí)</b>反轉(zhuǎn)問(wèn)題的<b class='flag-5'>分析</b>

    Linux進(jìn)程調(diào)度的原理解析

    、counter、rt_priority。這四項(xiàng)是選擇進(jìn)程的依據(jù)。 其中,policy是進(jìn)程調(diào)度策略,用來(lái)區(qū)分實(shí)時(shí)進(jìn)程和普通進(jìn)程,實(shí)時(shí)
    發(fā)表于 11-02 11:01 ?1次下載

    Linux 進(jìn)程調(diào)度淺析

    優(yōu)先級(jí),如果有多個(gè)進(jìn)程同時(shí)處于可執(zhí)行狀態(tài),那么誰(shuí)優(yōu)先級(jí)高誰(shuí)就去執(zhí)行,沒(méi)有什么好糾結(jié)的了。那么,進(jìn)程優(yōu)先級(jí)該如何確定呢?有兩種方式:由用戶(hù)
    發(fā)表于 04-02 14:40 ?571次閱讀

    嵌入式Linux實(shí)時(shí)進(jìn)程調(diào)度算法改進(jìn)

    系統(tǒng)調(diào)度算法應(yīng)綜合考慮進(jìn)程的價(jià)值和截止兩個(gè)概念,以保證實(shí)時(shí)進(jìn)程在截止期內(nèi)盡可能多地完成,在這里提出新的調(diào)度算法,改進(jìn)Linux的實(shí)時(shí)性。即:
    發(fā)表于 04-02 14:43 ?805次閱讀

    linux進(jìn)程調(diào)度淺析

    。(下面會(huì)說(shuō)到)linux內(nèi)核將進(jìn)程分成兩個(gè)級(jí)別:普通進(jìn)程和實(shí)時(shí)進(jìn)程。實(shí)時(shí)進(jìn)程優(yōu)先級(jí)都高于普通
    發(fā)表于 04-02 14:45 ?557次閱讀

    鴻蒙內(nèi)核源碼:32級(jí)優(yōu)先級(jí)進(jìn)程和線(xiàn)程調(diào)度

    先看四個(gè)宏定義,進(jìn)程和線(xiàn)程(線(xiàn)程就是任務(wù))最高和最低優(yōu)先級(jí)定義,[0,31]區(qū)間,即32級(jí),優(yōu)先級(jí)用于調(diào)度,CPU根據(jù)這個(gè)來(lái)決定先運(yùn)行哪個(gè)進(jìn)程
    的頭像 發(fā)表于 04-24 11:18 ?3123次閱讀

    uC/OS-II學(xué)習(xí)筆記——優(yōu)先級(jí)反轉(zhuǎn)與優(yōu)先級(jí)繼承機(jī)制

    優(yōu)先級(jí)反轉(zhuǎn),是指某同步資源被較低優(yōu)先級(jí)進(jìn)程/線(xiàn)程所擁有,較高優(yōu)先級(jí)進(jìn)程/線(xiàn)程競(jìng)爭(zhēng)該同步資源未獲得該資源,而使得較高
    發(fā)表于 02-09 10:33 ?3次下載
    uC/OS-II學(xué)習(xí)筆記——<b class='flag-5'>優(yōu)先級(jí)</b>反轉(zhuǎn)與<b class='flag-5'>優(yōu)先級(jí)</b>繼承機(jī)制
    阳原县| 华亭县| 祥云县| 云梦县| 句容市| 三原县| 龙口市| 阿图什市| 洪雅县| 吕梁市| 钟山县| 河北省| 罗定市| 汽车| 微山县| 棋牌| 永定县| 万山特区| 安泽县| 涡阳县| 江安县| 西青区| 滁州市| 南漳县| 洪雅县| 卓尼县| 赞皇县| 吴江市| 鹰潭市| 商水县| 封开县| 凤冈县| 科技| 河间市| 临江市| 临泉县| 顺昌县| 云霄县| 郯城县| 开封市| 九江市|