摘要:*堆棧溢出*競爭條件*死鎖讀者可在網(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)用樹。
通信工程師備考資料免費領(lǐng)取
去領(lǐng)取