(14)信號(hào)
所謂信號(hào),是系統(tǒng)給任務(wù)的一個(gè)指示,表明某個(gè)異步事件已經(jīng)發(fā)生了。
該事件可能來(lái)自外部,也可能來(lái)自?xún)?nèi)部。
信號(hào)機(jī)制也可以稱(chēng)為軟中斷機(jī)制。
信號(hào)機(jī)制與中斷處理機(jī)制非常相似,相同點(diǎn):
A、都具有中斷性。
B、都有相應(yīng)的服務(wù)程序。
C、都可以屏蔽響應(yīng)。
不同點(diǎn):
A、中斷由硬件或特定指令產(chǎn)生,而信號(hào)由系統(tǒng)調(diào)用產(chǎn)生。
B、中斷觸發(fā)后,硬件會(huì)根據(jù)中斷向量找到相應(yīng)的處理程序執(zhí)行;而信號(hào)則通過(guò)發(fā)送
信號(hào)的系統(tǒng)調(diào)用來(lái)觸發(fā),系統(tǒng)不一定馬上對(duì)它進(jìn)行處理。
C、中斷處理程序在系統(tǒng)內(nèi)核的上下文中運(yùn)行,是全局的;而信號(hào)處理程序在相關(guān)任
務(wù)的上下文中運(yùn)行,是任務(wù)的一個(gè)組成部分。
(15)任務(wù)間通信
任務(wù)之間的通信可以分為兩種類(lèi)型:
A、低級(jí)通信:只能傳遞狀態(tài)和整數(shù)值等控制信息,例如信號(hào)量機(jī)制。
B、高級(jí)通信:能夠傳輸任意數(shù)量的數(shù)據(jù),只要有三類(lèi):共享內(nèi)存、消息傳遞和管道。
任務(wù)之間的通信方式有兩種:
A、直接通信:通信雙方必須明確知道與之通信的對(duì)象。例如PV 原語(yǔ)。
B、間接通信:通信雙方不需指出消息的來(lái)源和去向,通過(guò)共享郵箱發(fā)送和接收消息。
郵箱只能存放單條消息,它提供一種低開(kāi)銷(xiāo)的消息傳遞機(jī)制,只有空和滿(mǎn)兩種狀態(tài)。消
息隊(duì)列與郵箱類(lèi)似,但是可以同時(shí)存放若干條消息,提供了一種任務(wù)間緩沖通信的方法。
管道由UNIX 首創(chuàng),以文件系統(tǒng)為基礎(chǔ),連接兩個(gè)任務(wù)之間的一個(gè)打開(kāi)的共享文件,專(zhuān)
用于任務(wù)直接的數(shù)據(jù)通信。
相關(guān)推薦:軟考嵌入式系統(tǒng)設(shè)計(jì)歷年真題匯總(2007-2010)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |