軟考 | 軟件設(shè)計(jì)師 | PV操作 知識(shí)點(diǎn)及各年考題解析匯總

知識(shí)點(diǎn)匯總

信號(hào)量

  • 信號(hào)量是1965年由著名的荷蘭計(jì)算機(jī)科學(xué)家Dijkstra提出的,其基本思路是使用一種新的變量類型,即信號(hào)量來記錄當(dāng)前可用資源的數(shù)量。

  • 在信號(hào)量的具體實(shí)現(xiàn)上,有兩種不同的方式。

    • (1)方式一:要求信號(hào)量的取值必須大于或等于0。如果信號(hào)量的值等于0,表示當(dāng)前已沒有可用的空閑資源;如果信號(hào)量的值大于0,則該值就代表了當(dāng)前可用的空閑資源數(shù)量;
    • (2)方式二:信號(hào)量的取值可正可負(fù)。如果是正數(shù)或0,其含義與方式一是相同的;如果是負(fù)數(shù),則它的絕對(duì)值就代表正在等待進(jìn)入臨界區(qū)的任務(wù)個(gè)數(shù)。
      信號(hào)量是由操作系統(tǒng)來維護(hù)的,任務(wù)不能直接去修改它的值,只能通過初始化和兩個(gè)標(biāo)準(zhǔn)原語(即P、V原語)來對(duì)它進(jìn)行訪問。在初始化時(shí),可以指定一個(gè)非負(fù)整數(shù),即空閑資源的總數(shù)。所謂的原語,通常由若干條語句組成,用來實(shí)現(xiàn)某個(gè)特定的操作,并通過一段不可分割或不可中斷的程序來實(shí)現(xiàn)其功能。原語是操作系統(tǒng)內(nèi)核的一個(gè)組成部分,必須在內(nèi)核態(tài)下執(zhí)行。原語的不可中斷性是通過在其執(zhí)行過程中關(guān)閉中斷來實(shí)現(xiàn)的。
  • P、V原語作為操作系統(tǒng)內(nèi)核代碼的一部分,是一種不可分割的原子操作。它們?cè)谶\(yùn)行時(shí),不會(huì)被時(shí)鐘中斷所打斷。另外,在P、V原語中包含有任務(wù)的阻塞和喚醒機(jī)制,因此,當(dāng)任務(wù)在等待進(jìn)入臨界區(qū)的時(shí)候,會(huì)被阻塞起來,而不會(huì)去浪費(fèi)CPU時(shí)間。

  • P原語中的字母P,是荷蘭語單詞測(cè)試的首字母。它的主要功能是申請(qǐng)一個(gè)空閑的資源,把信號(hào)量的值減1。如果成功的話,就退出原語;如果失敗的話,這個(gè)任務(wù)就會(huì)被阻塞起來。V原語當(dāng)中的字母V,是荷蘭語單詞增加的首字母。它的主要功能是釋放一個(gè)被占用的資源,把信號(hào)量的值加1,如果發(fā)現(xiàn)有被阻塞的任務(wù),就從中選擇一個(gè)把它喚醒。

  • 采用信號(hào)量來實(shí)現(xiàn)任務(wù)之間的互斥,優(yōu)點(diǎn)有兩個(gè):一是可以設(shè)置信號(hào)量的計(jì)數(shù)值,從而允許多個(gè)任務(wù)同時(shí)進(jìn)入臨界區(qū);二是當(dāng)一個(gè)任務(wù)暫時(shí)無法進(jìn)入臨界區(qū)時(shí),它會(huì)被阻塞起來,從而讓出CPU給其他的任務(wù)。

  • 大多數(shù)嵌入式操作系統(tǒng)都提供了信號(hào)量的機(jī)制,用戶可以通過函數(shù)調(diào)用的方式去使用。

考題解析匯總

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容