国产成人综合一区精品,久久精品爱国产免费久久,中文精品视频一区二区在线观看

廣州總校區切換校區
復制成功
微信號:togogoi
添加微信好友, 詳細了解課程
已復制成功,如果自動跳轉微信失敗,請前往微信添加好友
打開微信
圖片
news

新聞資訊

Red Hat Enterprise Linux 8的9種實時進程調度策略

發布時間: 2019-12-22

  Red Hat Enterprise Linux 8的9種實時進程調度策略

  Red Hat Enterprise Linux 8使用是Linux內核版本是Kernel 4.18,其系統進程的實時調度策略有9種。在RHEL 8中,查看ps的幫助手冊即可查到:
  # man ps |grep -A 10 policy
  -    not reported
  TS   SCHED_OTHER
  FF   SCHED_FIFO
  RR   SCHED_RR
  B    SCHED_BATCH
  ISO  SCHED_ISO
  IDL  SCHED_IDLE
  DLN  SCHED_DEADLINE
  ?    unknown value
  實際上只有7種,not reported、unknown value可能只是開放的策略,允許用戶自定義。查看進程時,可能專門指定查看進程的調度策略,如下:
  # ps axo pid,comm,nice,cls --sort=-nice
  Linux的進程調度意味著,它是CPU的重要助手,總是要為CPU挑選出下一個要執行的進程。在Linux中,進程(process)、線程(thread)和任務(task)都差不多。根據POSIX的定義,進程相當于執行一個程序,特指執行程序時需要的名字空間、內存等資源;而線程則是指執行一行代碼時需要的系統資源。即它們關注的對象不同。大家都應該知道,一個程序有很多行代碼,幾千行,幾萬行也不稀奇。
  RHEL 8挑選進程的標準有兩個(注2):
  一、調度策略(scheduling policy)
  二、靜態調度優先度(static scheduling priority)
  既然有靜態調度優先度,就有動態調度優先度,也就是NICE值,其取值 范圍為-20~19,共40個檔次。數值越大,越往后排。看來,調度政策挺重要。那么,各種調度策略是什么意思呢?
  TS - SCHED_OTHER
  優先度為0的進程中,按照NICE值排隊,等候被CPU執行。應用SCHED_OTHER或TS策略的進程在執行過一次之后,其NICE值就會增加一次。在這種策略下,進程們拼的不是靜態優先度,拼的是動態優先度,即NICE值。這是Linux的缺省調度策略。
  FF - SCHED_FIFO
  正如其名所示,FIFO,First In, First Out,先進先出。它比較霸道,執行完才肯走。在這種策略的指導下,靜態優先度為1-99之間的進程會插隊到執行SCHED_OTHER、SCHED_IDEL、SCHED_BATCH策略的進程前面,直到它執行完畢或者被更高優先組的進程插隊。這種策略沒有時間片的限制。執行這種策略的進程是進程中的土匪。
  RR - SCHED_RR
  輪巡,在分配到的、可以使用CPU的時間片里,相同優先度(1-99)的進程們,你一筷子,我一筷子,輪流吃肉。SCHED_RR,是SCHED_FIFO的改進形式。這種機制,可以視為進程土匪中的輪巡。畢竟,在這種策略下,大家還講點規矩,機會均等。你一筷子沒夾著肉,那就等下一輪吧。
  B - SCHED_BATCH
  跟SCHED_OTHER一樣,不使用靜態優先度,使用動態優先度。不同的是,它要批量執行進程。所以,只適合非交互式的進程。
  ISO - SCHED_ISO
  這種策略是想向進程提供類似于SCHED_OTHER的運行時間片分配機制。與后者不同的是,SCHED_ISO在較大限度地保證不會導致其它進程“餓死”的情況下,盡可能地延長進程的執行時間。適用于游戲、視頻和視頻捕獲場景下,較大限度地利用硬件資源。這個策略仍不完善(注8)。
  IDL - SCHED_IDLE
  跟SCHED_OTHER一樣,不使用靜態優先度,而且也不大使用動態優先度。進程的優先度為19或20。執行這種策略的進程,是進程中的謙謙君子。它們總是先人后己,與世無爭。
  DLN - SCHED_DEADLINE
  這是Linux Kernel 3.14之后新增加的調度機制。同時也被認為是最好的調度方案(注3)。誰的死期先到,誰就先上。這是一種急他人之所急的好作風。不過,這個“死期”是Deadline,是執行任務的“最后期限”。所以,這是進程中的現實主義者的約定。
  RHEL 8的產品文檔中,找不到關于SCHED_ISO的介紹,大概也是因為這種調度技術尚未成熟有關吧。
  參考資料:
  1、https://access.redhat.com/articles/3078
  2、http://man7.org/linux/man-pages/man7/sched.7.html
  3、https://stackoverflow.com/questions/9392415/linux-sched-other-sched-fifo-and-sched-rr-differences
  4、https://lwn.net/Articles/723248/
  5、https://www.kernel.org/doc/html/v5.4/scheduler/sched-rt-group.html
  6、https://www.cs.montana.edu/~chandrima.sarkar/AdvancedOS/CSCI560_Proj_main/
  7、https://linux.die.net/man/2/sched_getscheduler
  8、https://www.mankier.com/8/schedtool

上一篇: RHEL 8 YUM倉庫的應用序列AppStream

下一篇: AI培訓_AI測試題,你AI來挑戰么?

<
在線咨詢 ×

您好,請問有什么可以幫您?我們將竭誠提供最優質服務!

  • <strong id="6ngzx"><bdo id="6ngzx"><strong id="6ngzx"></strong></bdo></strong>

        <strong id="6ngzx"><bdo id="6ngzx"><strong id="6ngzx"></strong></bdo></strong>

        <menuitem id="6ngzx"><b id="6ngzx"></b></menuitem>
        <center id="6ngzx"><center id="6ngzx"></center></center><strong id="6ngzx"><bdo id="6ngzx"><strong id="6ngzx"></strong></bdo></strong>

        主站蜘蛛池模板: 宝丰县| 古田县| 额尔古纳市| 溧阳市| 丹江口市| 古蔺县| 南充市| 沅江市| 白朗县| 莲花县| 兴义市| 鹿邑县| 抚顺县| 湾仔区| 恭城| 临沭县| 徐水县| 贵州省| 武夷山市| 溧水县| 潼南县| 张北县| 株洲县| 图木舒克市| 黄平县| 宁武县| 巨野县| 衡阳市| 张家界市| 红原县| 瓮安县| 革吉县| 旺苍县| 广饶县| 镶黄旗| 三台县| 常熟市| 博爱县| 大厂| 响水县| 会理县|