999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux內核優先級倒轉分析

2017-12-28 02:09:34王亞軍中國人民武裝警察部隊學院
數碼世界 2017年11期
關鍵詞:進程嵌入式

王亞軍 中國人民武裝警察部隊學院

Linux內核優先級倒轉分析

王亞軍 中國人民武裝警察部隊學院

Linux對于訪問同一內核臨界區的多個進程進行同步的有效手段是內核信號量機制。解決Linux內核信號量操作中存在的優先級倒轉問題,是將Linux運用于實時系統的重要手段。文中在分析Linux內核信號量操作源代碼的基礎上,結合嵌入式應用深入分析其中存在的優先級倒轉問題。

信號量 優先級倒轉 嵌入式系統 等待隊列 實時性

1 引言

Linux內核允許多個進程并發執行,從而極大限度地利用了CPU資源。但是為了避免多個進程同時進入臨界區,Linux內核采取了嚴格的同步機制,信號量就是其中之一。如果一個進程試圖獲得一個已經被占用的信號量,該進程就會被推進一個等待隊列進入“睡眠”狀態,從而釋放處理器,使處理器可以執行其它進程的代碼。當持有信號量的進程釋放信號量以后,在等待隊列中睡眠的進程將被喚醒,并再次試圖獲得該信號量以進入臨界區。

2 Linux內核優先級倒轉分析

在Linux-2.6.10內核中,當有多個進程等待進入一個臨界區時,當前進程略有優勢,然后就是“先來先進”,即先鏈入等待隊列的進程先進入臨界區,而進程的優先級并沒有起作用。也就是說,在這個等待隊列中,如果優先級較低的進程排在前面,而優先級較高的進程排在后面,那么優先級較高的進程就只能等待。Linux內核實現了POSIX.4關于“實時進程”調度的要求,支持執行SCHED_FIFO、SCHED_RR和SCHED_OTHER三種不同的調度政策。適用于前兩種政策的進程稱為實時進程,而適用于SCHED_OTHER的則為面向分時應用的普通進程。由于實時進程有較高的實時性要求,所以要將Linux內核用于實時要求較高的嵌入式應用,就應該對等待進入臨界區的進程鏈表進行優化,減少實時進程的等待時間。

從Linux-2.6.10內核代碼中還可以看出,如果一個優先級很低的進程A已經進入某個臨界區,那么當另一個優先級很高的進程B也要進入該臨界區時,由于互斥信號量機制的阻攔而只能睡眠等待。由于互斥信號量所保護的臨界區內允許進程調度,已經進入某個臨界區的那個優先級很低的進程A一旦受阻進入睡眠,再被喚醒時就很難得到機會運行,因為系統中所有優先級比A高但比B低的進程都有可能擠在A的前面得到運行。而進程B盡管優先級很高,卻反而只能等待這些進程都交出運行權,然后才能讓正在占用臨界區的進程A完成其操作而退出臨界區。為了將Linux內核用于實時要求較高的嵌入式應用,也需要通過修改進程優先級的方法來解決優先級倒轉問題。

3 Linux內核優先級倒轉解決方法

Linux-2.6.10內核調度進程的主要依據是進程的優先級,但又不是單純地按優先級調度。普通進程擁有一個初始的優先級,即靜態優先級,它從一開始由用戶指定后,就不能改變。而調度程序要用到的動態優先級是通過一個關于靜態優先級和進程交互性的函數關系計算而來的。而對于實時進程,它們所采用的是實時優先級,內核不為它們計算動態優先級,這能保證給定優先級別的實時進程總能搶占優先級比它低的進程。SCHED_FIFO實現了一種簡單的、先入先出的調度算法,它不使用時間片。SCHED_FIFO級的進程會比任何SCHED_OTHER級的進程都先得到調度。一旦一個SCHED_FIFO級的進程處于可執行狀態,就會一直運行,直到它自己受阻或顯式釋放處理器為止。SCHED_RR則是帶有時間片SCHED_FIFO,當SCHED_RR級的進程耗盡事先分配給它的時間片以后就不能繼續運行了,這是一種實時輪流調度算法。

為了對等待進入臨界區的進程鏈表進行改進,減少實時進程的等待時間,需要修改內核中與此相關的源代碼,在將需要等待進入臨界區的進程鏈入到相應的等待鏈表時,按照進程的優先級將其插入到鏈表中的適當位置。由于內核中需要在臨界區內進行的操作一般都是很短促的,而普通進程又沒有較高的實時要求,所以這種改進只對實時進程來進行。當一個普通進程等待進入臨界區時,只是按照內核中原來的安排,將其簡單地鏈入等待隊列的尾部。而對于實時進程,則與進程調度的思想相一致,按照實時優先級從高到低的順序,將其插入到等待進入臨界區的進程鏈表之中。對于優先級相同的實時進程,仍然按照內核中原來的安排,即先鏈入等待隊列的實時進程先進入臨界區。為此,需要對內核中的相關源代碼進行修改,將等待隊列分成兩個小的等待隊列。

4 結語

綜上所述,在Linux內核中,信號量及其操作是內核對訪問共享資源的多個進程進行同步的關鍵,對系統的性能具有重要影響。當把linux內核應用于嵌入式系統時,由于嵌入式系統通常具有實時性要求,應該對信號量操作中存在的優先級倒轉情況進行改進,以提高內核的實時性,這對于將Linux內核應用于具有實時性要求的嵌入式系統時是有意義的。

[1]毛德操,胡希明.Linux內核源代碼情景分析[M].杭州:浙江大學出版社,2002.

[2]毛德操,胡希明.嵌入式系統[M].杭州:浙江大學出版社,2003.[3]彭曉明、王強編著,《Lniux核心源代碼分析》,北京,人民郵電出版社,2002

河北省科研基金項目支持(HBSZKT-2014143)。

王亞軍,1978年生,男,漢族,籍貫:黑龍江綏化市,單位:中國人民武裝警察部隊學院,副教授,碩士,研究方向:Linux操作系統。

猜你喜歡
進程嵌入式
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
主站蜘蛛池模板: 又黄又湿又爽的视频| 久久中文字幕不卡一二区| 国产亚洲精品自在久久不卡 | 亚洲精品无码AⅤ片青青在线观看| 91色在线视频| 东京热高清无码精品| 午夜少妇精品视频小电影| 一级爆乳无码av| 亚洲三级影院| 亚洲国产午夜精华无码福利| 日韩在线播放欧美字幕| 婷婷色婷婷| 亚洲乱强伦| 亚洲Va中文字幕久久一区| 国产视频你懂得| 欧美激情伊人| 亚洲第一区在线| 久久综合干| 国产精品网址你懂的| 亚洲一区二区三区国产精品 | 国产成人精品亚洲日本对白优播| 国产亚洲精品无码专| 日韩AV无码一区| 亚洲精品少妇熟女| 91青青草视频在线观看的| 国产日韩丝袜一二三区| 一边摸一边做爽的视频17国产| 国产办公室秘书无码精品| 天天做天天爱夜夜爽毛片毛片| 囯产av无码片毛片一级| 精品三级网站| 麻豆国产在线观看一区二区| 亚洲bt欧美bt精品| 国产精品免费露脸视频| 久久国产精品国产自线拍| 久久精品中文字幕少妇| 久草美女视频| 五月天天天色| 欧美一级黄片一区2区| 99久久精品免费看国产免费软件| 在线日韩一区二区| 国产综合精品一区二区| 色噜噜久久| 日韩一区二区三免费高清| 99久久精品无码专区免费| 亚洲va精品中文字幕| 国产成人三级在线观看视频| 999精品视频在线| 无码有码中文字幕| 亚洲色图狠狠干| 日韩欧美国产三级| 亚洲人成在线精品| 久久久久亚洲AV成人网站软件| 男女性色大片免费网站| 中文无码伦av中文字幕| 国产黑丝一区| 奇米精品一区二区三区在线观看| 毛片久久久| 青青草一区二区免费精品| 伊人网址在线| 亚洲—日韩aV在线| 国产精品永久免费嫩草研究院| 国产91久久久久久| 亚洲黄网在线| 国产精品自在自线免费观看| 日a本亚洲中文在线观看| 热99re99首页精品亚洲五月天| 亚洲成人免费在线| 亚洲视频影院| 日本91在线| 美女亚洲一区| 日韩欧美在线观看| 欧美视频二区| 黄色网页在线观看| 毛片免费在线| 国内精品一区二区在线观看| 国产精品成人啪精品视频| 91福利免费| 国产永久在线视频| h网站在线播放| 88国产经典欧美一区二区三区| 婷婷亚洲天堂|