91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

為什么說(shuō)內(nèi)核線程放入SCHED_FIFO的做法毫無(wú)意義?

lhl545545 ? 來(lái)源:Linuxer ? 作者:Linuxer ? 2020-06-09 15:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

背景Linux會(huì)把進(jìn)程分為普通進(jìn)程和實(shí)時(shí)進(jìn)程,普通進(jìn)程采用CFS之類調(diào)度算法,而實(shí)時(shí)進(jìn)程則是采用SCHED_FIFO或SCHED_RR。無(wú)論優(yōu)先級(jí)高低,實(shí)時(shí)進(jìn)程都會(huì)優(yōu)先于SCHED_NORMAL中的所有進(jìn)程先執(zhí)行,因?yàn)楹笳呃锩娑际瞧胀ǖ姆菍?shí)時(shí)進(jìn)程。

具體可以參看Linux閱碼場(chǎng)早期文章: 宋寶華:關(guān)于Linux進(jìn)程優(yōu)先級(jí)數(shù)字混亂的徹底澄清

內(nèi)核線程的優(yōu)先級(jí)Linux內(nèi)核會(huì)將大量(并且在不斷增加中)工作放置在內(nèi)核線程中,這些線程是在內(nèi)核地址空間中運(yùn)行的特殊進(jìn)程。大多數(shù)內(nèi)核線程運(yùn)行在SCHED_NORMAL類中,必須與普通用戶空間進(jìn)程爭(zhēng)奪CPU時(shí)間。但是有一些內(nèi)核線程它的開(kāi)發(fā)者們認(rèn)為它們非常特殊,應(yīng)該比用戶空間進(jìn)程要有更高優(yōu)先級(jí)。因此也會(huì)把這些內(nèi)核線程放到SCHED_FIFO中去。

那么問(wèn)題來(lái)了,某個(gè)內(nèi)核線程的實(shí)時(shí)優(yōu)先級(jí)到底該設(shè)為多少呢?

要回答這個(gè)問(wèn)題,不僅需要判斷這個(gè)線程相對(duì)于所有其他實(shí)時(shí)線程是否更加重要,還要跟用戶態(tài)的實(shí)時(shí)進(jìn)程比較誰(shuí)更重要。這是一個(gè)很難回答的問(wèn)題,更何況在不同的系統(tǒng)和工作模式下這個(gè)答案很有可能還會(huì)各不相同。所以一般來(lái)說(shuō),內(nèi)核開(kāi)發(fā)人員也就是看心情直接隨便選一個(gè)實(shí)時(shí)優(yōu)先級(jí)。

現(xiàn)在的一些內(nèi)核實(shí)時(shí)線程如下:

最近大神Peter Zijlstra又看到有內(nèi)核開(kāi)發(fā)者隨便給內(nèi)核線程設(shè)置優(yōu)先級(jí),終于看不下去了, 指責(zé)這種把內(nèi)核線程放入SCHED_FIFO的做法毫無(wú)意義:

“the kernel has no clue what actual priority it should use for various things, so it is useless (or worse, counter productive) to even try”

所以他發(fā)了一個(gè)系列[PATCH 00/23] sched: Remove FIFO priorities from modules 把設(shè)置內(nèi)核線程優(yōu)先級(jí)的接口干脆都給刪了,省得再有人瞎搞。

這個(gè)系列Patch(點(diǎn)擊閱讀原文可直達(dá))主要做了下面幾件事情:

刪除了原有的sched_setschedule() / sched_setattr() 接口

增加了

sched_set_fifo(p)

sched_set_fifo_low(p)

sched_set_normal(p, nice)

其中調(diào)用sched_set_fifo()會(huì)將指定進(jìn)程放到SCHED_FIFO類中,其優(yōu)先級(jí)為50——這只是min和max之間的一半位置。

對(duì)于需求不那么迫切的線程,sched_set_fifo_low()將優(yōu)先級(jí)設(shè)置為最低值(1)。

而調(diào)用sched_set_normal()會(huì)將線程返回給定好的值SCHED_NORMAL類。

通過(guò)只留下這三個(gè)接口可以避免開(kāi)發(fā)者們?cè)俨煌5厝ルS機(jī)選取內(nèi)核線程優(yōu)先級(jí),因?yàn)檫@樣本來(lái)毫無(wú)意義,當(dāng)然如果需要的話系統(tǒng)管理員還是可以按需調(diào)整不同進(jìn)/線程的優(yōu)先級(jí)。

到目前為止,這個(gè)系列Patch已經(jīng)有不少得到Reviewed-by,相信如果合入后,內(nèi)核線程混亂的優(yōu)先級(jí)狀況會(huì)得到持續(xù)改善。
責(zé)任編輯:pj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎ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

    文章

    1468

    瀏覽量

    42874
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11760

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    內(nèi)核配置項(xiàng)引發(fā)網(wǎng)絡(luò)性能下降的深度剖析

    在嵌入式系統(tǒng)開(kāi)發(fā)中,內(nèi)核配置對(duì)系統(tǒng)性能起著關(guān)鍵作用。近期在對(duì)基于 Rockchip 平臺(tái)的 Linux 內(nèi)核配置調(diào)試時(shí),發(fā)現(xiàn)三個(gè)內(nèi)核跟蹤器配置項(xiàng)(CONFIG_IRQSOFF_TRACER
    的頭像 發(fā)表于 02-01 16:48 ?1667次閱讀
    <b class='flag-5'>內(nèi)核</b>配置項(xiàng)引發(fā)網(wǎng)絡(luò)性能下降的深度剖析

    【瑞薩FPB-RA6E2試用】【瑞薩FPB-RA6E2】RTOS(Real-Time Operating System,實(shí)時(shí)操作系統(tǒng))《線程》個(gè)人理解及項(xiàng)目實(shí)現(xiàn)

    獨(dú)立的執(zhí)行流,擁有自己的棧、優(yōu)先級(jí)、入口函數(shù),由內(nèi)核調(diào)度器管理 調(diào)度器(Scheduler) 決定哪個(gè)線程在何時(shí)運(yùn)行,通?;趦?yōu)先級(jí)或時(shí)間片輪轉(zhuǎn) 上下文切換(Context Switch) 從一個(gè)線程
    發(fā)表于 01-14 11:50

    DR1M90 開(kāi)源 IgH EtherCAT 主站案例:伺服電機(jī)正反轉(zhuǎn)實(shí)時(shí)控制方案

    轉(zhuǎn))、0-(-10000)(反轉(zhuǎn))的加減速循環(huán)運(yùn)行,同步打印通訊周期極值。文檔包含 CPU 核心隔離、驅(qū)動(dòng)安裝、空載 / 滿負(fù)荷測(cè)試等關(guān)鍵步驟,程序采用 SCHED_FIFO 調(diào)度策略保障實(shí)時(shí)性。通過(guò)
    的頭像 發(fā)表于 01-04 15:40 ?1795次閱讀
    DR1M90 開(kāi)源 IgH EtherCAT 主站案例:伺服電機(jī)正反轉(zhuǎn)實(shí)時(shí)控制方案

    三防漆哪種好?別再問(wèn)了!記住這個(gè)選型邏輯,比品牌更重要

    “三防漆哪種好?”——這是電子工程師、采購(gòu)和制造從業(yè)者最高頻的問(wèn)題之一。但坦白說(shuō),這是一個(gè)“偽命題”。就像問(wèn)“車哪種好?”一樣,沒(méi)有前提條件,答案毫無(wú)意義。沒(méi)有最好的三防漆,只有最適合您產(chǎn)品應(yīng)用
    的頭像 發(fā)表于 12-23 17:41 ?594次閱讀
    三防漆哪種好?別再問(wèn)了!記住這個(gè)選型邏輯,比品牌更重要

    UPS電源價(jià)格/報(bào)價(jià)全解析:告別迷茫,一文讀懂預(yù)算該怎么花

    讓人陷入選擇迷茫。事實(shí)上,專業(yè)UPS電源的價(jià)格并非一個(gè)孤立的數(shù)字,而是一套由技術(shù)等級(jí)、功率大小、后備時(shí)間、品牌服務(wù)共同構(gòu)成的精密體系。簡(jiǎn)單比價(jià)毫無(wú)意義,關(guān)鍵在于搞
    的頭像 發(fā)表于 12-15 08:29 ?581次閱讀
    UPS電源價(jià)格/報(bào)價(jià)全解析:告別迷茫,一文讀懂預(yù)算該怎么花

    Linux-RT特點(diǎn)及簡(jiǎn)單應(yīng)用

    屬性 pthread_attr_t attr; pthread_attr_init( attr); // 設(shè)置線程調(diào)度策略為SCHED_FIFO,并設(shè)置優(yōu)先級(jí)
    發(fā)表于 12-05 07:37

    【飛凌OK153-S開(kāi)發(fā)板評(píng)測(cè)】系統(tǒng)實(shí)時(shí)性及codesys測(cè)試

    , -t:創(chuàng)建4個(gè)SCHED_FIFO實(shí)時(shí)線程 -p:線程的優(yōu)先級(jí)80 -a:綁定線程到指定的cpu,0,1...n stress-ng命令可以用于給CPU、DDR、Flash加壓。
    發(fā)表于 11-28 14:00

    【飛凌OK-T153 開(kāi)發(fā)板試用】實(shí)時(shí)性測(cè)試

    對(duì)吞吐考慮,實(shí)測(cè)時(shí)我們可以采用實(shí)時(shí)內(nèi)核以獲取更準(zhǔn)確性能指標(biāo),測(cè)試方法一樣 隔離核 專事專辦 為了更準(zhǔn)確獲得實(shí)際應(yīng)用場(chǎng)景的中斷時(shí)延,必需充分評(píng)估實(shí)際應(yīng)用的負(fù)載程度,失去這個(gè)前提測(cè)出來(lái)的數(shù)據(jù)將毫無(wú)意義
    發(fā)表于 11-22 05:29

    創(chuàng)龍 瑞芯微 RK3588 國(guó)產(chǎn)2.4GHz八核 工業(yè)開(kāi)發(fā)板—IgH?EtherCAT主站開(kāi)發(fā)案例(下)

    本文圍繞創(chuàng)龍科技研發(fā)的 TL3588-EVM 評(píng)估板,介紹 IgH EtherCAT 主站開(kāi)發(fā)案例,含 IgH EtherCAT 簡(jiǎn)介、案例測(cè)試(電機(jī)正反轉(zhuǎn),SCHED_FIFO
    的頭像 發(fā)表于 10-15 15:06 ?620次閱讀
    創(chuàng)龍 瑞芯微 RK3588 國(guó)產(chǎn)2.4GHz八核 工業(yè)開(kāi)發(fā)板—IgH?EtherCAT主站開(kāi)發(fā)案例(下)

    創(chuàng)龍 瑞芯微 RK3588 國(guó)產(chǎn)2.4GHz八核 工業(yè)開(kāi)發(fā)板—IgH?EtherCAT主站開(kāi)發(fā)案例(上)

    本文圍繞創(chuàng)龍科技研發(fā)的 TL3588-EVM 評(píng)估板,介紹 IgH EtherCAT 主站開(kāi)發(fā)案例,含 IgH EtherCAT 簡(jiǎn)介、案例測(cè)試(電機(jī)正反轉(zhuǎn),SCHED_FIFO
    的頭像 發(fā)表于 10-14 11:55 ?634次閱讀
    創(chuàng)龍 瑞芯微 RK3588 國(guó)產(chǎn)2.4GHz八核 工業(yè)開(kāi)發(fā)板—IgH?EtherCAT主站開(kāi)發(fā)案例(上)

    線程超時(shí)函數(shù)中 assert 失敗是什么原因?qū)е碌?

    最近調(diào)試 gd32h759 遇到了一個(gè)十分奇怪的問(wèn)題,在初步調(diào)通所有的邏輯功能后,發(fā)現(xiàn)系統(tǒng)經(jīng)常會(huì)在運(yùn)行一段時(shí)間后死在一個(gè)奇怪的線程超時(shí)函數(shù)中 assert 失敗導(dǎo)致卡死。用 cmbacktrace
    發(fā)表于 09-09 06:56

    分辨率 vs 噪聲 —— ADC的挑戰(zhàn)

    信號(hào)上的噪聲幅度 > LSB,則 LSB 分辨的不是“信號(hào)”,而是“噪聲”! 如果系統(tǒng)本底噪聲是 100 μV,那么這個(gè) 76 μV LSB 就毫無(wú)意義;此時(shí)所謂“高分辨率”變成了“偽分辨率”或“無(wú)效
    的頭像 發(fā)表于 06-23 07:38 ?1906次閱讀
    分辨率 vs 噪聲 —— ADC的挑戰(zhàn)

    大牛多年研發(fā)電源問(wèn)題匯總(受益匪淺)

    鉆牛角尖,做技術(shù)切記鉆牛角尖,那你能談?wù)劄槭裁雌毡殡娫床还ぷ髟?.5HZ,說(shuō)這個(gè)才有意義,你做出1.5HZ的電源純屬毫無(wú)意義的事情) 提醒:做技術(shù)人員切記鉆牛角尖,咱們不是校園研究派,是需要將理論
    發(fā)表于 06-04 17:54

    求助,關(guān)于CAN接收問(wèn)題求解

    。 有些消息總是發(fā)送,有些則不發(fā)送。我不知道是什么導(dǎo)致了這個(gè)問(wèn)題,但看起來(lái)有些塊沒(méi)有在應(yīng)該執(zhí)行的時(shí)候執(zhí)行。 我對(duì) Simulink 設(shè)置不是很熟悉。我嘗試將 RX 子系統(tǒng)設(shè)置為原子(可能毫無(wú)意義),但
    發(fā)表于 04-01 06:27

    AXI接口FIFO簡(jiǎn)介

    AXI接口FIFO是從Native接口FIFO派生而來(lái)的。AXI內(nèi)存映射接口提供了三種樣式:AXI4、AXI3和AXI4-Lite。除了Native接口FIFO支持的應(yīng)用外,AXI FIFO
    的頭像 發(fā)表于 03-17 10:31 ?2127次閱讀
    AXI接口<b class='flag-5'>FIFO</b>簡(jiǎn)介