1747-BSN/1747-BSN
1747-BSN/1747-BSN聯(lián)系人:李先生
手機(jī):18030229050
電話:0592-5709821
傳真:0592-5709828
QQ 1878187406
郵箱 1878187406@qq.com
1747-BSN/1747-BSN
本文將探討其中三個(gè)潛在的問題領(lǐng)域:
堆棧溢出
競(jìng)爭(zhēng)條件
死鎖
讀者可在網(wǎng)上閱讀本文的第二部分,它將探討下列問題:
時(shí)序問題
可重入條件
在采用多任務(wù)實(shí)時(shí)設(shè)計(jì)技術(shù)的系統(tǒng)中,以上所有問題都相當(dāng)普遍。
堆棧溢出
處理器使用堆棧來存儲(chǔ)臨時(shí)變量、向被調(diào)函數(shù)傳遞參數(shù)、保存線程“狀態(tài)”,等等。如果系統(tǒng)不使用虛擬內(nèi)存(換句話說,它不能將內(nèi)存頁面轉(zhuǎn)移到磁盤上以釋放內(nèi)存空間供其它用途),堆棧將固定為產(chǎn)品出廠時(shí)的大小。如果由于某種原因堆棧越出了編程人員所分配的數(shù)量范圍,程序?qū)⒆兊貌淮_定。這種不穩(wěn)定可能導(dǎo)致系統(tǒng)發(fā)生嚴(yán)重故障。因此,確保系統(tǒng)在最壞情況下能夠分配到足夠的堆棧至關(guān)重要。
確保永不發(fā)生堆棧溢出的唯一途徑就是分析代碼,確定程序在各種可能情況下的最大堆棧用量,然后檢查是否分配了足夠的堆棧。測(cè)試不大可能觸發(fā)特定的瞬時(shí)輸入組合進(jìn)而導(dǎo)致系統(tǒng)出現(xiàn)最壞情況。
Cutler-Hammer 10250T108