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