亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 嵌入式操作系統的內核研究.txt

?? 嵌入式操作系統是嵌入式系統應用的核心
?? TXT
字號:
嵌入式操作系統的內核研究
 
引言:

嵌入式系統被定義為:以應用為中心,以計算機技術為基礎,軟件硬件可裁減,適應應
用系統對功能,可靠性,成本,體積,功耗等嚴格要求的專用計算機系統。隨著現代計算機
技術的飛速發展和互聯網技術的廣泛應用,嵌入式系統扮演了越來越重要的角色,被廣泛應
用于信息電器、移動計算機設備、網絡設備和工控仿真等領域。從八十年代起,國際上就有
一些IT 組織、公司,開始進行商用嵌入式系統的研發。這其中涌現了一些著名的嵌入式系
統,如windriversystem 公司的VxWorks 就是實時嵌入式操作系統的代表。但是商用產品的
造價十分昂貴,而uc/os-II 操作系統,是當前得到廣泛應用免費且公開源碼的嵌入式操作系
統。而包括這兩個系統在內的絕大多數的嵌入式操作系統都采取了高性能的微內核設計。

第一章內核概述

1.1. 內核定義
在傳統的操作系統結構中,通常把操作系統的全部或者大部分功能都作為操作系統的內
核,它們的層次主要表示為調用關系,但是現代操作系統的一個突出特點是把把更多的代碼
放到更高的層次:用戶層中去。盡最大努力把大部份操作系統成分和功能放到用戶模式去運
行,希望留下一個盡量小的內核,他們完成操作系統最基本的核心功能,這稱之為內核技術。

1.2. 內核的優點
很多系統都采用內核,一個顯著的特點就是安全性和可靠性。在安全性中有最小特權原
注:) 本文得到國家“863”項目高性能的以太網交換機核心芯片開發的資助,項目主題
為超大規模集成電路重大專項。項目編號是2002BA906A21-08。

深層次的技術競爭體現在核心芯片和操作系統上。為此,863 專家組提出了開發高性能
以太網交換機核心芯片的課題,其目標是研究和開發一款高性能的以太網交換機核心單元,
其水平處于國際前沿,為IT 高技術領域的民族品牌提供支持,對保障我國信息領域的安全


具有重要意義。
則,而操作系統內核具有很大的特權,它可以訪問所以主存;它使用固定頁面不可被換出;
它的執行不可被中斷,不可被搶占。如果使用大內核就會使得許多操作系統功能不必要的擁
有這些特點,使得安全性降低,也使得整個系統的性能下降。

1.3 內核的結構和實現
內核結構技術是把那些最本質,最基本的功能留在內核中,但這個說法本身就很模糊。
也許換個角度就更好理解了:內核與客戶/服務器模式是緊密相連的技術。每一個操作系統
功能均以單獨的服務器進程形式存在。他與客戶的應用進程都存在于內核之外。他們以發消
息的方式通過內核向服務器進程提出服務請求。服務器進程在處理服務請求后,也以發消息
的形式通過內核把結果返回客戶進程。所以內核所作的事情就是處理客戶與服務器之間的通
訊,檢查消息的合法性,并傳送他們。實現內核的關鍵是實現機制和策略分離。他就是把必
須訪問硬件和內核數據結構的實現機制放在內核之中,而把實現該功能的算法和策略留給用
戶態的服務進程。

第二章:VxWorks 內核

VxWorks 的內核被稱作 wind ,包括多任務調度(采用優先級搶占方式),任務間的
同步和進程間通信機制以及中斷處理,看門狗和內存管理機制。一個多任務環境允許實時應
用程序以一套獨立任務的方式構筑,每個任務擁有獨立的執行線程和它自己的一套系統資
源。進程間通信機制使得這些任務的行為同步、協調。

2.1 任務調度
Wind 的多任務的數目并沒有明顯的限制,總共有256 個優先級。wind 使用中斷驅動和
優先級的方式。它縮短了上下文轉換的時間開銷和中斷的時延。在 VxWorks 中,任何例程
都可以被啟動為一個單獨的任務,擁有它自己的上下文和堆棧。還有一些其它的任務機制可
以使任務掛起、繼續、刪除、延時或改變優先級。任務調度的系統調用有:建立任務
taskSpawn() ;刪除任務taskDelete() ;掛起任務taskSuspend() ;恢復任務taskResume() 等等。

2.2 信號量管理
wind 核提供信號量作為任務間同步和互斥的機制。在 wind 核中有幾種類型的信號
量,它們分別針對不同的應用需求:

● 二進制信號量:使用最快捷,最廣泛,主要用于同步或互斥。
● 互斥信號量:主要用于優先級繼承,安全刪除和回溯。
● 計數信號量:用于資源的數目較多的情況。
所有的這些信號量是快速和高效的,它們除了被應用在開發設計過程中外,還被廣泛地應用
在 VxWorks 高層應用系統中。信號量的系統調用有:建立二進制信號量:semBCreate(); 
建立互斥信號量:semMcreat() 等等。
2.3 任務間通信
除了信號量機制可用于任務間同步與通信,wind 核還提供了諸如消息隊列、管道、等
機制。消息隊列是較為復雜的一種通訊機制,它可以使一個任務或者中斷服務子程序向另一
個任務發送以指針方式定義的變量。本文將主要討論消息隊列機制,消息隊列的系統調用有:
創建消息隊列:msgQCreate();刪除消息隊列:msgQDelete();向消息隊列發消息:msgQSend(); 
向消息隊列接收消息:msgQReceive() 等等。


2.4 內存管理
在Vxworks 中是使用ANSI C 的函數malloc() 和free()動態的分配和釋放內存。但是在嵌
入實時操作系統中調用這兩個函數卻是危險的,當多次調用它們時,會把原來很大的一塊連
續內存區域逐漸分割成許多非常小而彼此不相鄰的內存塊,即內存碎片。使得程序后來連一
塊非常小的連續內存也分配不到。在下文的uc/os-II 操作系統中,我們將看到一種改進的做
法。內存管理的系統調用有:分配一個內存塊:malloc() ;釋放一個內存塊:free()等等。

第三章:uc/os-II 內核

VxWorks 是一個商用的操作系統,他的源碼并不公開,為了加深對內核的理解,我選
取了當前得到廣泛應用的免費且公開源碼的嵌入式操作系統uc/os-II 作為對照。在這兩種操
作系統的內核比較過程中學習。

uc/os-II 操作系統本身實際上就是一個內核,其提供任務調度、時間管理、任務間同步
與通信、內存管理和中斷服務等功能。他適合小型控制系統,具有執行效率高、占用空間小、
實時性能優良和可擴展性強等特點,最小內核可編譯至2k。

3.1 任務調度
uc/os-II 中最多可以支持64 個任務,分別對應優先級0~63 ,其中0 為最高優先級。調
度工作的內容可以分為兩部分:最高優先級任務的尋找和任務切換。其最高優先級任務的尋
找是通過建立就緒任務表來實現的。uc/os-II 中的每一個任務都有獨立的堆棧空間,并有一
個稱為任務控制塊TCB(task control block) 的數據結構,其中第一個成員變量就是保存的任務
堆棧指針。在進行任務調度時首先用變量 ostcbhighrdy 記錄當前最高級就緒任務的地址,然
后調用os_task_sw() 函數來進行任務切換,這個函數是硬件相關的,它的大部分代碼要用匯
編語言完成,其主要功能就是保存現場到TCB 塊中,以便以后再次運行。任務調度的系統
調用有:建立任務OSTaskCreat() ;刪除任務OSTaskDel() ;掛起任務OSTaskSuspend() ;恢
復任務OSTaskResume() ;等等。

3.2 信號量管理
在uc/os-II 中,建立信號量的函數OSSemCreate() 需要輸入一個參數cnt,如果賦值1, 
就相當于二進制信號量,如果賦值n,就可作為計數信號量使用。
很多人對二進制信號量,計數信號量和互斥信號量的區別不太清楚,其實通過看uc/os-II 
的源碼,就能很好的理解這種差別。在uc/os-II 中,信號量以及下文中的消息隊列的實現都
是通過一個基本的數據結構:事件控制塊(ECB)實現的。其成員OSEventType 是一個標志,
記錄了這個控制塊是用于信號量還是互斥信號量,或其它事件。另一個重要成員是
OSEventCnt ,這三種信號量的區別就主要體現在它的身上,二進制信號量和計數信號量在
實現上并沒有什么不同,他們都是通過函數OSSemCreate() 建立的,就是把參數cnt 直接付
給OSEventCnt ,在等待信號量函數中就會遞減OSEventCnt ,為0 則把當前任務打標為睡眠
狀態,隨后執行任務調度函數。

相對而言,互斥信號量就要復雜一些,因為它需要解決處理互斥時出現的優先級反轉的
問題。于是就要把沒有被占有的,略高于最高優先級任務的優先級,保留給所謂“優先級繼
承優先級”(PIP),而這個PIP 就是保存在OSEventCnt 的高8 位的,其低8 位在資源無任務
占用時為0xFF, 有資源占用時為占用它的任務的優先級。在函數等待一個互斥型信號量時,
就會提取PIP 和占用資源的任務的優先級,如果占用資源的任務的優先級比當前任務的優先
級要低(數值大),就需要提升占用資源的任務的優先級為PIP ,從而讓占用資源的任務從速
釋放資源。建立信號量:OSSemCreate() ;建立互斥信號量:OSSemMCreat() 等等。


3.3 任務間同步與通信
消息隊列是uc/os-II中的一種任務間同步與通信機制。因具體的應用有所不同,每個指
針指向的數據結構變量也有所不同。為了使用uc/os-II 的消息隊列功能,需要在OS_CFG.H 
文件中,將OS_Q_EN 常數設置為1,并且通過常數OS_MAX_QS 來決定μC/OS-II支持的
最多消息隊列數。 

消息隊列最根本的部分是一個環形緩沖區,在調用創建消息隊列的函數時需要賦給他兩
個參數:指向消息數組的指針和數組的大小。例如:void *MymessageQ[SIZE]. 在創建消息
隊列完畢時,這個指針數組就被初始化為一個環形的緩沖區,并且返回相應的消息隊列的句
柄。任務間同步與通信的系統調用有:創建消息隊列:OSMboxCreate() ;刪除消息隊列:
OSMboxDel() ;向消息隊列發消息:OSMboxPost() ;向消息隊列接收消息:OSMboxAccept() 
等等。

3.4 內存管理
為了避免內存碎片的問題,uc/os-II 對malloc() 和free()函數做了改進,其基本思想是:
把連續的大塊內存按分區來管理。每個分區包含整數個大小相同的內存塊,這樣,每次分配
和釋放的內存塊就是固定大小的了。

首先,在OS_CFG.H 文件中有一個開關OS_MEM_QUERY_EN, 決定使用內存管理與否。
然后,使用所謂內存控制塊(MCB )的數據結構跟蹤每一個內存分區,在MCB 中的成員
OSMemFreeList 把本內存分區中所有可用的內存塊鏈接成一個單向鏈表。成員
OSMemBlkSize 和OSMemNBlks ,記錄內存分區的內存塊的大小和數量(他們的乘積當然就
是分配的內存區的大小。) MCB 的初始化工作由建立內存分區的函數OSMemCreate() 來完
成,它的返回值就是一個指向這個MCB 的指針。這樣當調用函數OSMemGet() 和OSMemPut() 
分配和釋放內存時實際上就是更新由OSMemFreeList 鏈接的鏈表。分配內存就是從鏈表中
取出內存塊,釋放內存就是把內存塊還回鏈表中。內存管理的系統調用有:建立內存分區:
OSMemCreate() ;分配一個內存塊:OSMemGet() ;釋放一個內存塊:OSMemPut() 等等。

結束語:

與一般的計算機應用相比,嵌入式應用系統往往是要求具有高速處理,配置專一,結構
緊湊和堅固可靠等特點的實時系統,一個正確但遲到的結果同一個錯誤的結果沒有什么本質
不同。更重要的是:嵌入式系統是成本敏感的,能否充分利用現有資源,降低成本對項目本
身常常是決定性的。只有對嵌入式操作系統的內核有深刻的了解,對系統調用函數有充分的
研究,才能開發出穩定,高效的嵌入式系統軟件。

參考文獻:

【1.】Jean J.Labrosse(邵貝貝譯) 《嵌入式實時操作系統uc/os-II(第2 版)》
【2.】王學龍《嵌入式VxWorks 系統開發與應用》
【3.】屠祁,屠立德《操作系統基礎》
【4.】李垣陵《UC/OS 和UCLinux 比較》
作者簡介:
沈勝慶(1977-),男(漢族),湖北武漢人,武漢郵電科學研究院,碩士研究生,主要研究
方向:IP 技術和嵌入式系統軟件。導師:余少華教授,博士生導師。
注:不要稿費。通訊地址:武漢市郵科院路88 號烽火網絡有限責任公司。研發部,沈勝慶。
評價:雜志社的審稿非常快,比起其他地方動則3 個月好多了。如果收到投稿郵件就可以自


動回復發稿者就更好了。



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本va在线观看| 欧美日韩在线免费视频| 精品黑人一区二区三区久久| 三级在线观看一区二区| 欧美色老头old∨ideo| 一区二区三区 在线观看视频| 99re热视频精品| 一区二区三区四区在线免费观看 | 精品一区二区三区在线播放视频| 日韩一区二区三区四区| 麻豆国产精品777777在线| 欧美精品三级日韩久久| 美女精品自拍一二三四| 国产亚洲欧美激情| 成人高清在线视频| 亚洲已满18点击进入久久| 欧美日韩黄色一区二区| 九九国产精品视频| 国产精品美女一区二区在线观看| 91福利区一区二区三区| 日韩国产在线观看一区| 久久久久久久精| 色悠悠久久综合| 亚洲成人激情av| 久久久亚洲国产美女国产盗摄 | 亚洲免费看黄网站| 538在线一区二区精品国产| 国内精品免费**视频| 国产精品伦理一区二区| 欧美日韩精品福利| 国产乱色国产精品免费视频| 亚洲天堂久久久久久久| 日韩一区二区三区视频在线观看| 成人手机在线视频| 五月婷婷综合网| 亚洲国产高清在线观看视频| 欧美日韩一区二区三区不卡| 国产成人亚洲综合色影视| 一区二区三区资源| 久久久高清一区二区三区| 在线视频国产一区| 国产精品一区一区三区| 五月婷婷欧美视频| 国产精品九色蝌蚪自拍| 日韩精品一区二区三区在线观看 | 亚洲国产岛国毛片在线| 欧美亚洲动漫精品| 成人免费看的视频| 蜜臀av性久久久久av蜜臀妖精| 亚洲欧美一区二区视频| 精品国内片67194| 欧美日韩卡一卡二| 99久久久久久| 国产大陆a不卡| 日av在线不卡| 亚洲综合一区在线| 中文字幕亚洲在| 久久综合久久综合久久综合| 欧美丰满嫩嫩电影| 色视频成人在线观看免| 成人国产电影网| 国产不卡免费视频| 精品一区二区三区在线播放视频| 午夜成人在线视频| 亚洲黄色在线视频| 中文字幕在线一区二区三区| 久久久99精品久久| 日韩美女在线视频| 日韩午夜在线播放| 欧美疯狂性受xxxxx喷水图片| 日韩美女在线视频| 欧美日韩国产美女| 日本道精品一区二区三区| 99精品久久只有精品| 岛国精品一区二区| 国产精品夜夜嗨| 国产精品综合二区| 国产一区二区三区最好精华液| 免费成人在线网站| 免费欧美高清视频| 亚洲成人激情自拍| 视频在线观看91| 日韩国产精品久久| 视频一区中文字幕| 亚洲自拍都市欧美小说| 亚洲精品国产视频| 亚洲综合色噜噜狠狠| 亚洲一区二区av电影| 亚洲一区二区欧美| 午夜精品福利在线| 日本成人中文字幕在线视频| 麻豆国产精品视频| 国产一区二区三区| 成人丝袜高跟foot| 日本高清不卡aⅴ免费网站| 在线观看日韩精品| 欧美二区三区91| 日韩一区二区麻豆国产| 久久亚洲精品国产精品紫薇| 国产人伦精品一区二区| 中文字幕一区视频| 亚洲一区二区三区四区不卡 | 亚洲电影一级黄| 日韩国产一二三区| 国产一区二区精品久久| 成人激情av网| 在线亚洲一区观看| 日韩欧美一二三四区| 欧美精品一区二区三区在线播放 | 国产亚洲精品bt天堂精选| 国产精品久久久久久久久图文区| 亚洲欧美乱综合| 日本成人在线电影网| 国产乱妇无码大片在线观看| www.av亚洲| 欧美视频在线观看一区二区| 欧美一级理论性理论a| 国产亚洲精品精华液| 亚洲影视资源网| 国产曰批免费观看久久久| 91猫先生在线| 日韩欧美在线网站| 国产精品国产成人国产三级| 天天做天天摸天天爽国产一区| 国精品**一区二区三区在线蜜桃| 99久久精品免费看国产| 91精品一区二区三区久久久久久 | 亚洲图片激情小说| 午夜精品福利久久久| 国产传媒一区在线| 欧美群妇大交群的观看方式| 国产日韩影视精品| 亚洲国产视频网站| 国产精品一区二区久久不卡| 欧美色精品在线视频| 欧美极品另类videosde| 午夜欧美2019年伦理| 成人免费高清视频在线观看| 在线电影一区二区三区| 亚洲欧洲另类国产综合| 激情综合色综合久久| 欧美视频中文字幕| 国产精品欧美经典| 极品尤物av久久免费看| 欧美日本国产视频| 亚洲免费观看高清| 成人免费av在线| 精品国产免费人成在线观看| 亚洲大片在线观看| 日本精品免费观看高清观看| 久久精品免视看| 裸体在线国模精品偷拍| 精品视频1区2区3区| 亚洲欧洲精品一区二区三区不卡| 国产在线精品不卡| 日韩精品最新网址| 首页国产丝袜综合| 欧美日韩亚洲不卡| 亚洲综合丝袜美腿| 一本色道**综合亚洲精品蜜桃冫| 国产婷婷精品av在线| 国产一区欧美日韩| 精品第一国产综合精品aⅴ| 午夜精品久久久久影视| 欧美日韩一区国产| 亚洲国产视频网站| 欧美亚洲一区三区| 亚洲精品日韩综合观看成人91| 99这里都是精品| 亚洲欧洲日本在线| 91亚洲国产成人精品一区二区三 | 国产一区二区三区不卡在线观看 | 亚洲一二三级电影| 欧亚一区二区三区| 一区二区三区电影在线播| 91黄色免费网站| 亚洲一区二区中文在线| 欧美性感一类影片在线播放| 亚洲最大成人网4388xx| 91久久精品一区二区二区| 亚洲蜜臀av乱码久久精品蜜桃| 91首页免费视频| 亚洲自拍偷拍综合| 91精品国产色综合久久不卡电影| 日韩av不卡在线观看| 精品88久久久久88久久久| 国产传媒久久文化传媒| 中文字幕+乱码+中文字幕一区| 成人精品免费视频| 亚洲男人的天堂网| 欧美精品久久一区| 精品在线观看免费| 亚洲国产精品高清| 色婷婷久久久亚洲一区二区三区| 一区二区欧美国产| 欧美一级在线视频| 国产精品91一区二区| 亚洲同性gay激情无套| 欧美日韩一区二区三区四区| 免费成人在线观看视频|