一氣呵成型:
優點為對中斷而言,它的處理都會是即時的,也就是說,它不用考慮系統排程的因素,因此對於tick ISR這種處理時間中斷的制度,可以免去時間不準確的問題,而且因為不用經歷context switch,其代價與處理時間是較少的;不過,其缺點在於disable掉中斷的連續時間相對長,因此中間被忽略掉的中斷會較多,而且因為一tick就必須處理一次,就想法上而言是相當可惜的。
top half + bottom half型:
因為被拆成2部分,使得連續disable interrupt的時間相對短,因此系統效能得到部分提升為其優點,不過對於tick ISR這種處理時間的工作,會有時間計算失真的可能性,因為其計算時間的OSTimeTick是放在bottom half內,而bottom half的處理時間視系統的排程而定,即便設定較高優先權,依然有不即時的狀況,不過一般而言似乎視為可忽視的誤差,此外,由於context switch的數量較多,因此overhead大了些。
像linux就是採用top half + bottom half的方式來設計ISR,即便是在spin lock中,也有分成只disable掉bottom half,但繼續接受IRQ(top half的功能)的版本,以及2者都disable掉的版本。
沒有留言:
張貼留言