瀏覽單個文章
冬之炎陽
Advance Member
 

加入日期: Apr 2005
文章: 431
引用:
作者iamdavidga
弟不才
請問所謂可中斷核心是

講到可中斷核心就要談到不可中斷核心
簡單的說
若作業系統的核心程式可以在很多不同的時間點重複進入(多工使然)
A工作做到一半而B工作開始做,可能會導致A工作的結果錯誤
所以作業系統會在核心程式執行時把 "中斷" 給遮罩掉
等到核心服務程式執行完畢才又恢復中斷
但是因為遮罩中斷太久會讓系統變得反應不佳
而微軟的系統一直以來都是會去遮罩中斷(因為很好設計...... )
甚至導致SMP系統效率變得不好,CPU多效能卻不見提升
如果可以在核心程式執行的時候不遮罩中斷,就不會有這種問題
但是還是要防範因為程式重複進入而導致結果錯誤
所以就必須在核心程式中設計檢查點,運用同步化設計的觀念
將重要的程式區(臨界區間)包起來,在A工作做完之前B工作絕對進不去
以達成不遮罩中斷而運算結果也正確,而這部分的設計很困難
但是其它的作業系統,例如 Unix 或 solaris 都滿早就有這種功能
Linux 2.6.x 版的核心也開始有支援這個功能,而且效果很明顯
我自己用 Linux 2.6 搭配 X-Window當desktop系統
我還開了不少特效(模擬 Mac OS),用起來的速度卻還小贏XP
(接下來想要把視窗顯示針對AMD CPU最佳化,使效能追上win 2000 )

所以大家說 Windows Vista 慢..... 我想會不會是因為核心程式的關係.....
因為特效太多,很多特效又需要核心程式支援來渲染
核心也不是可中斷的設計,導致效率不彰.....
舊 2006-06-11, 10:09 PM #43
回應時引用此文章
冬之炎陽離線中