亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么讓linux變為實時操作系統

發布時間:2022-01-14 17:58:06 來源:億速云 閱讀:160 作者:iii 欄目:互聯網科技

本篇內容主要講解“怎么讓linux變為實時操作系統”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么讓linux變為實時操作系統”吧!

1.什么是實時性操作系統?

實時性是指調度的時候,任務響應時間。windows一般是15ms,最大的問題是不能保證。比如平均值是1ms,但是隨著系統負載的變化,有時甚至達到100ms,在這工業上是無法使用的。工業上一些應用要求必須有更高的時間精度,比如,一個電力監測系統必須在10ms內運行一次任務對電力運行狀況進行監測,一旦時間不準,調度不到該程序運行,則無法保證對電力故障的及時響應。

2.怎么實現實時性系統?

3.PREEMPT_RT

PREEMPT_RT是Linux內核的一個實時補丁。得到Linus的高度評價:

Controlling a laser with Linux is crazy, but everyone in this room is crazy in his own way. So if you want to use Linux to control an industrial welding laser, I have no problem with your using PREEMPT_RT." -- Linus Torvalds

4.使用方法

4.1 下載linux內核源碼

這兩個國內的可以看一下,速度比較快。


4.2下載RT patch

patch在https://rt.wiki.kernel.org/index.php/Main_Page 下載,與linux內核的版本號一定要一樣。


4.3 使用方法

1.解壓內核源碼

2.打patch

3.編譯linux內核并安裝

    tar xzvf  linux-4.4.138.tar.gz
    cd linux-4.4.138
    patch -p1 < ../patch-4.4.138-rt65.patch

make menuconfig需要安裝這個libncurses-dev模塊

編譯內核需要libssl-dev模塊

    sudo apt-get install libncurses-dev
    sudo apt-get install libssl-dev

 配置linux內核

make menuconfig

選擇Processor type and feature   —>   Fully Preemptible Kernel (RT)這個選項,具體路徑如下圖。保存。

編譯內核,再安裝,更新grub.

編譯時加上 INSTALL_MOD_STRIP=1 可以生成沒有調試信息的模塊,大大減小內核的大小。

make -j2

<span class="hljs-comment">#sudo make modules_install -j2</span>
<span class="hljs-comment">#這一條命令生成的內核含有調試信息非常大,因此要使用INSTALL_MOD_STRIP選項</span>


sudo make INSTALL_MOD_STRIP=1 modules_install  
sudo make install -j2

sudo update-grub2

重啟后會多一個  linux-4.4.138-rt  的啟動選項。

5.測試
sudo apt-get install rt-tests

安裝這個工具,運行cyclictest程序進行實時性測試:

    sudo cyclictest -t 5 -p 80 -n
    注釋: 運行五個線程,線程優先級為80,無限循環

cyclictest運行結果詳解:

    T: 0 序號為0的線程
    P: 0 線程優先級為0
    C: 9397 計數器。線程的時間間隔每達到一次,計數器加1
    I: 1000 時間間隔為1000微秒(us)
    Min: 最小延時(us)
    Act: 最近一次的延時(us)
    Avg:平均延時(us)
    Max: 最大延時(us)

測試結果示例:

1.實體機測試結果

    # /dev/cpu_dma_latency set to 0us
    policy: fifo: loadavg: 0.13 0.06 0.02 1/244 19255
     
    T: 0 (18989) P:80 I:1000 C: 155947 Min:      1 Act:    1 Avg:    1 Max:      17
    T: 1 (18990) P:80 I:1500 C: 103964 Min:      1 Act:    1 Avg:    1 Max:      15
    T: 2 (18991) P:80 I:2000 C:  77973 Min:      1 Act:    1 Avg:    1 Max:       7
    T: 3 (18992) P:80 I:2500 C:  62378 Min:      1 Act:    1 Avg:    1 Max:      10
    T: 4 (18993) P:80 I:3000 C:  51982 Min:      1 Act:    1 Avg:    1 Max:       7

2.虛擬機測試結果

在虛擬機中效果一般,受主機的限制太大。

my@ubuntu:~/rt/linux-4.4.138$ sudo cyclictest -p 80 -t5 -n
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 0.69 0.19 0.07 1/726 5825          

T: 0 ( 5821) P:80 I:1000 C:   8168 Min:      7 Act:  445 Avg:  327 Max:    7005
T: 1 ( 5822) P:80 I:1500 C:   5455 Min:      7 Act:  411 Avg:  319 Max:    7516
T: 2 ( 5823) P:80 I:2000 C:   4098 Min:     14 Act:  174 Avg:  320 Max:    2362
T: 3 ( 5824) P:80 I:2500 C:   3275 Min:      5 Act:   52 Avg:  319 Max:    6940
T: 4 ( 5825) P:80 I:3000 C:   2732 Min:      8 Act:  214 Avg:  299 Max:    5198

3.也可以進行多次運行并統計結果

sudo  cyclictest -l10000000 -m -n -t1 -p99 -i2 -h200

-l10000000 :指定1千萬循環,

-m :鎖定當前和將來的內存分配,

-n :指定使用 clock_nanosleep,

-t1 :指定開一個線程進行測試,

-p99 :指定最高優先級,

-i2 :指定基本線程間隔,單位是us,此處是2us,

-h200 :指定統計結果的分布情況。

程序20秒執行結束,輸出顯示平均延時1 us,最大延時15 us,通過直方分布圖察看,大多集中在1-7 us以內。

    # /dev/cpu_dma_latency set to 0us
    policy: fifo: loadavg: 0.36 0.33 0.28 1/246 32690
     
    T: 0 (32688) P:99 I:2 C:10000000 Min:      0 Act:    2 Avg:    1 Max:       15
    # Histogram
    000000 000051
    000001 6635143
    000002 3352561
    000003 008966
    000004 002414
    000005 000648
    000006 000180
    000007 000025
    000008 000002
    000009 000001
    000010 000000
    000011 000000
    000012 000001
    000013 000001
    000014 000006
    000015 000001
    …………(中間都是0,省略)
    000097 000000
    000098 000000
    000099 000000
    # Total: 010000000
    # Min Latencies: 00000
    # Avg Latencies: 00001
    # Max Latencies: 00009
    # Histogram Overflows: 00000
    # Histogram Overflow at cycle number:
    # Thread 0:

6.總結

實時性補丁能夠較好地滿足我們的需求(1ms),實現較強的實時性。

到此,相信大家對“怎么讓linux變為實時操作系統”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新蔡县| 武乡县| 台湾省| 西藏| 渑池县| 称多县| 城市| 商河县| 普陀区| 上杭县| 甘南县| 阿巴嘎旗| 内丘县| 西城区| 涞源县| 定兴县| 千阳县| 蓬溪县| 信宜市| 满洲里市| 达日县| 永定县| 神木县| 溧水县| 印江| 黄梅县| 龙胜| 福鼎市| 洞口县| 黄大仙区| 北辰区| 伊川县| 平远县| 裕民县| 兰坪| 伊吾县| 深水埗区| 突泉县| 建阳市| 孟津县| 洪泽县|