如何查找嵌入式軟件設(shè)計中缺陷分析[2]

終端與業(yè)務(wù) 責(zé)任編輯:dsp1997 2011-01-12

摘要:*堆棧溢出*競爭條件*死鎖讀者可在網(wǎng)上閱讀本文的第二部分,它將探討下列問題:*時序問題*可重入條件在采用多任務(wù)實時設(shè)計技術(shù)的系統(tǒng)中,以上所有問題都相當(dāng)普遍。堆棧溢出處理器使用堆棧來存儲臨時變量、向被調(diào)函數(shù)傳遞參數(shù)、保存線程“狀態(tài)”,等等。如果系統(tǒng)不使用虛擬內(nèi)存(換句話說,它不能將內(nèi)存頁面

  * 堆棧溢出

  * 競爭條件

  * 死鎖

  讀者可在網(wǎng)上閱讀本文的第二部分,它將探討下列問題:

  * 時序問題

  * 可重入條件

  在采用多任務(wù)實時設(shè)計技術(shù)的系統(tǒng)中,以上所有問題都相當(dāng)普遍。

  堆棧溢出

  處理器使用堆棧來存儲臨時變量、向被調(diào)函數(shù)傳遞參數(shù)、保存線程“狀態(tài)”,等等。如果系統(tǒng)不使用虛擬內(nèi)存(換句話說,它不能將內(nèi)存頁面轉(zhuǎn)移到磁盤上以釋放內(nèi)存空間供其它用途),堆棧將固定為產(chǎn)品出廠時的大小。如果由于某種原因堆棧越出了編程人員所分配的數(shù)量范圍,程序?qū)⒆兊貌淮_定。這種不穩(wěn)定可能導(dǎo)致系統(tǒng)發(fā)生嚴(yán)重故障。因此,確保系統(tǒng)在最壞情況下能夠分配到足夠的堆棧至關(guān)重要。

  確保永不發(fā)生堆棧溢出的途徑就是分析代碼,確定程序在各種可能情況下的最大堆棧用量,然后檢查是否分配了足夠的堆棧。測試不大可能觸發(fā)特定的瞬時輸入組合進而導(dǎo)致系統(tǒng)出現(xiàn)最壞情況。

  堆棧深度分析的概念比較簡單:

  1. 為每個獨立的線程建立一棵調(diào)用樹。

[1]  [2]  [3]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

通信工程師備考資料免費領(lǐng)取

去領(lǐng)取

距離2025 通信工程師考試

還有
  • 3
  • 1
  • 3
專注在線職業(yè)教育23年

項目管理

信息系統(tǒng)項目管理師

廠商認(rèn)證

信息系統(tǒng)項目管理師

信息系統(tǒng)項目管理師

學(xué)歷提升

!
咨詢在線老師!