實(shí)時(shí)操作系統(tǒng)VxWorks
VxWorks 操作系統(tǒng)包括了進(jìn)程管理、存儲管理、設(shè)備管理、文件系統(tǒng)管理、網(wǎng)絡(luò)協(xié)議及系統(tǒng)應(yīng)用等幾個(gè)部分。VxWorks只占用了很小的存儲空間,并可高度裁減,保證了系統(tǒng)能以較高的效率運(yùn)行。 VxWorks由以下幾個(gè)主要部分組成:
1.高性能的實(shí)時(shí)操作系統(tǒng)核心 wind
VxWorks 的核心,被稱作 wind,包括多任務(wù)調(diào)度(采用優(yōu)先級搶占方式),任務(wù)間的同步和進(jìn)程間通信機(jī)制以及中斷處理,看門狗和內(nèi)存管理機(jī)制。一個(gè)多任務(wù)環(huán) 境允許實(shí)時(shí)應(yīng)用程序以一套獨(dú)立任務(wù)的方式構(gòu)筑,每個(gè)任務(wù)擁有獨(dú)立的執(zhí)行線程和 它自己的一套系統(tǒng)資源。進(jìn)程間通信機(jī)制使得這些任務(wù)的行為同步、協(xié)調(diào)。
wind使用中斷驅(qū)動和優(yōu)先級的方式。它縮短了上下文轉(zhuǎn)換的時(shí)間開銷和中斷的時(shí)延。在 VxWorks 中,任何例程都可以被啟動為一個(gè)單獨(dú)的任務(wù),擁有它自己的上下文和 堆棧。還有一些其它的任務(wù)機(jī)制可以使任務(wù)掛起、繼續(xù)、刪除、延時(shí)或改變優(yōu)先級。 wind 核提供信號量作為任務(wù)間同步和互斥的機(jī)制。在 wind 核中有幾種類型的信號
量,它們分別針對不同的應(yīng)用需求:二進(jìn)制信號量、計(jì)數(shù)信號量、互斥信號量和 POSIX 信號量。所有的這些信號量是快速和高效的,它們除了被應(yīng)用在開發(fā)設(shè)計(jì)過 程中外,還被廣泛地應(yīng)用在 VxWorks 高層應(yīng)用系統(tǒng)中。對于進(jìn)程間通信,wind 核 也提供了諸如消息隊(duì)列、管道、套接字和信號等機(jī)制。
2.I/O 系統(tǒng)
VxWorks 提供了一個(gè)快速靈活的與 ANSI C 兼容的 I/O 系統(tǒng),包括 UNIX 標(biāo)準(zhǔn)的緩 沖 I/O 和POSIX 標(biāo)準(zhǔn)的異步 I/O。VxWorks 包括以下驅(qū)動程序:網(wǎng)絡(luò)驅(qū)動、管道驅(qū) 動、RAM盤驅(qū)動、SCSI驅(qū)動、鍵盤驅(qū)動、顯示驅(qū)動、磁盤驅(qū)動、并口驅(qū)動等。
3.文件系統(tǒng)
VxWorks 提供的快速文件系統(tǒng)適合于實(shí)時(shí)系統(tǒng)應(yīng)用。它包括幾種支持使用塊設(shè)備(如磁盤)的本地文件系統(tǒng)。這些設(shè)備都使用一個(gè)標(biāo)準(zhǔn)的接口從而使得文件系統(tǒng)能夠被靈 活地在設(shè)備驅(qū)動程序上移植。另外,VxWorks 也支持 SCSI 磁帶設(shè)備的本地文件系統(tǒng)。 VxWorks I/O 體系結(jié)構(gòu)甚至還支持在一個(gè)單獨(dú)的 VxWorks 系統(tǒng)上同時(shí)并存幾個(gè)不同的 文件系統(tǒng)。
VxWorks 支持四種文件系統(tǒng): dosFs,rt11Fs,rawFs 和 tapeFs。
另一方面,普通數(shù)據(jù)文件,外部設(shè)備都統(tǒng)一作為文件處理。它們在用戶面前有相同的 語法定義,使用相同的保護(hù)機(jī)制。這樣既簡化了系統(tǒng)設(shè)計(jì)又便于用戶使用。
4.板級支持包 BSP(Board Support Package)
板級支持包對各種板子的硬件功能提供了統(tǒng)一的軟件接口,它包括硬件初始化、中斷 的產(chǎn)生和處理、硬件時(shí)鐘和計(jì)時(shí)器管理、局域和總線內(nèi)存地址映射、內(nèi)存分配等等。 每個(gè)板級支持包括一個(gè) ROM 啟動(Boot ROM)或其它啟動機(jī)制。
5.網(wǎng)絡(luò)設(shè)施
VxWorks的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,它提供了對其它網(wǎng)絡(luò)和 TCP/IP 網(wǎng)絡(luò)系統(tǒng)的"透明"訪問,包括與BSD套接字兼容的編程接口,遠(yuǎn)程過程調(diào)用(RPC),SNMP(可選項(xiàng)),遠(yuǎn)程文件 訪問(包括客戶端和服務(wù)端的NFS機(jī)制以及使用RSH,F(xiàn)TP 或 TFTP的非NFS機(jī)制)以及 BOOTP 和 ARP 代理。無論是松耦合的串行線路、標(biāo)準(zhǔn)的以太網(wǎng)連接還是緊耦合的利用 共享內(nèi)存的背板總線,所有的 VxWorks 網(wǎng)絡(luò)機(jī)制都遵循標(biāo)準(zhǔn)的 Internet 協(xié)議。
6.先進(jìn)的系列網(wǎng)絡(luò)產(chǎn)品
VxWorks內(nèi)的WindNet 是先進(jìn)的、系列的網(wǎng)絡(luò)產(chǎn)品,這些產(chǎn)品擴(kuò)展了VxWorks的網(wǎng)絡(luò)特性 并增強(qiáng)了嵌入式處理器的網(wǎng)絡(luò)特性。 WindNet SNMP
WindNet STREAMS
WindNet 第三方產(chǎn)品,包括 OSI、SS7、ATM、Frame Relay、CORBA、ISDN、X.25、
CMIP/GDMO、分布式網(wǎng)絡(luò)管理等。
7.虛擬內(nèi)存(即 VxVMI 選項(xiàng))與共享內(nèi)存(即 VxMP 選項(xiàng))
VxVMI 為帶有 MMU 的目標(biāo)板提供了虛擬內(nèi)存機(jī)制。VxMP 提供了共享信號量,消息隊(duì)列 和在不同處理器之間的共享內(nèi)存區(qū)域。
8.目標(biāo)代理(Target Agent)
目標(biāo)代理遵循 WBD(Wind Debug)協(xié)議,允許目標(biāo)機(jī)與主機(jī)上的 Tornado 開發(fā)工具相 連。在目標(biāo)代理的缺省設(shè)置中,如圖3所示,目標(biāo)代理是以 VxWorks 的一個(gè)任務(wù)-- tWdbTask 的形式運(yùn)行的。
Tornado 目標(biāo)服務(wù)器(Target Server)向目標(biāo)代理發(fā)送調(diào)試請求。調(diào)試請求通常決定 目標(biāo)代理對系統(tǒng)中其它任務(wù)的控制和處理。缺省狀態(tài)下,目標(biāo)服務(wù)器與目標(biāo)代理通過網(wǎng) 絡(luò)進(jìn)行通信,但是用戶也可以改變通信方式。
9.實(shí)用庫
VxWorks 提供了一個(gè)實(shí)用例程的擴(kuò)展集,包括中斷處理、看門狗計(jì)時(shí)器、消息登錄、內(nèi)存分配、字符掃描、線緩沖和環(huán)緩沖管理、鏈表管理和 ANSI C 標(biāo)準(zhǔn)。
10.基于目標(biāo)機(jī)的工具
在 Tornado 開發(fā)系統(tǒng)中,開發(fā)工具是駐留在主機(jī)上的。但是也可以根據(jù)需要將基于目標(biāo)機(jī)的Shell 和裝載卸載模塊加入 VxWorks。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論