图71 单一汇流排架构装置管理.ppt
《图71 单一汇流排架构装置管理.ppt》由会员分享,可在线阅读,更多相关《图71 单一汇流排架构装置管理.ppt(81页珍藏版)》请在三一办公上搜索。
1、著作權所有 旗標出版股份有限公司,1,第7章 裝置管理,著作權所有 旗標出版股份有限公司,2,本章提要,I/O硬體 I/O軟體常見儲存裝置管理範例 網路裝置 實作歷險記-Linux滑鼠驅動程式實作,著作權所有 旗標出版股份有限公司,3,裝置管理概論,對作業系統的設計者而言,不同設備的管理是作業系統最頭大的工作之一 各種裝置的特性差異非常的大 一台電腦可能連接多種不同的裝置,必須要能同時處理不同行程的I/O需求,以盡量提高裝置的使用效率 對電腦的使用者與程式設計師而言:裝置管理方面最重要的貢獻是提供高階的邏輯操作界面,使得使用者與設計師不需要去自行瞭解每種裝置的特性與管理細節,著作權所有 旗標出
2、版股份有限公司,4,電腦週邊裝置的分類方法,依裝置的功能來分:儲存裝置I/O裝置依裝置的資訊儲存方式來分:字元裝置:例如鍵盤、印表機、通訊埠、滑鼠等區塊裝置:例如磁碟、磁帶等依裝置的共用性來分:獨佔裝置:例如印表機 共用裝置:例如磁碟 虛擬裝置:透過某些技術處理,將獨佔裝置轉變成看似共用的裝置,以便同時供多個行程存取其他分類方式:例如依照資料傳輸速率分為高速裝置與低速裝置,或是根據通訊對象分為人-機通訊裝置與機器-機器通訊裝置,著作權所有 旗標出版股份有限公司,5,7-1 I/O硬體,匯流排裝置控制器,著作權所有 旗標出版股份有限公司,6,匯流排,匯流排:電腦系統用來連接各種裝置的通訊管道最簡
3、單的電腦就是只用一條匯流排來連接所有裝置 協定:規範在特定時間裡,哪個裝置擁有進行通訊的權利匯流排控制器:負責仲裁下個時脈週期該由哪個裝置使用,著作權所有 旗標出版股份有限公司,7,圖7-1 單一匯流排架構,CPU,記憶體,圖形顯示控制器,磁碟控制器,鍵盤控制器,螢幕,磁碟,鍵盤,匯流排,著作權所有 旗標出版股份有限公司,8,新一代的匯流排架構PCI express,目前個人電腦內部最大的速度瓶頸是在傳輸頻寬上:PCI介面與所有的週邊資料傳輸,只能通過一條主要幹道來共同分享133MB/s的頻寬專為連接圖形顯示卡所設計的AGP匯流排,也逐漸不足PCI Express架構:使用交換式點對點傳輸技術
4、,每組PCI Express都有自己的獨立通道,以避免資料傳輸互相干擾的問題。單一通道的傳輸速度為250MB/s,稱為PCI Express x1,並規劃有x1、x2、x4、x8、x16、x32.等不同規格相對於PCI Express,目前已經在使用的另一種高速匯流排架構是PCI-X,著作權所有 旗標出版股份有限公司,9,為什麼電腦中要包含多個匯流排?,平行性:可以同時進行多項資料傳輸活動但事實上並沒有這麼容易效能:為了因應不同傳輸特性所設計的不同匯流排PCI匯流排:在目前典型的個人電腦架構中,用來連接週邊裝置的標準匯流排AGP匯流排:專為連接顯示卡與CPU所設計前端匯流排:用來最佳化CPU與
5、記憶體間的傳輸擴充匯流排:用來聯絡鍵盤、並列埠/序列埠等較慢速裝置,著作權所有 旗標出版股份有限公司,10,圖7-2 個人電腦常見的匯流排架構,CPU,記憶體,圖形顯示控制器,IDE磁碟控制器,螢幕,磁碟,鍵盤,PCI匯流排,AGP匯流排,系統晶片,記憶體匯流排,磁碟,磁碟,磁碟,網路控制器,網路,擴充匯流排介面,擴充匯流排,序列埠控制器,Com1,並列埠控制器,印表機,前端匯流排,著作權所有 旗標出版股份有限公司,11,裝置控制器,裝置控制器:接收CPU傳送的高階存取命令,並處理實際的存取動作每種裝置都有其專屬的I/O控制器,而一個控制器通常可以控制多個相同的裝置通常包含數個資料與位址的暫存
6、器CPU與控制器的溝通:對這些暫存器進行讀寫常用的暫存器存取方法:連接埠I/O記憶體映射I/O有些系統會同時使用這兩種方法,著作權所有 旗標出版股份有限公司,12,實作討論PC的I/O埠位址,個人電腦常用的一些I/O埠位址:,著作權所有 旗標出版股份有限公司,13,I/O控制器中的暫存器種類,狀態暫存器:用來表示裝置目前的狀態,例如命令是否已經執行完畢控制暫存器:控制裝置的運作模式,例如要以全雙工/半雙工運作,或是設定資料傳輸速率等資料輸入暫存器:用來存放要讀入系統的資料資料輸出暫存器:用來存放要輸出到裝置的資料,著作權所有 旗標出版股份有限公司,14,I/O與CPU間的溝通方式,忙碌等待讓C
7、PU在送出一個資料字組的I/O命令之後就持續檢查控制器上的狀態暫存器,直到I/O完成 中斷I/O控制器在完成一個資料字組的I/O運算之後,會從特定的中斷線路中送出中斷信號CPU偵測到中斷信號時,會先執行中斷處理常式必須賦予中斷不同的優先順序DMA:直接記憶體存取 系統會將包含傳輸來源位址、目的位址、與資料量的DMA指令交給DMA控制器,然後繼續進行其他的工作DMA控制器會在完成整批資料的傳輸之後,再送出中斷給CPU,著作權所有 旗標出版股份有限公司,15,圖7-3 資料輸入的3種技術,送出讀取命令,讀取I/O的狀態,檢查狀態,從I/O控制器讀取字組,將字組寫入記憶體,完成所有資料傳送?,讀取錯
8、誤,就緒,未就緒,是,否,下個指令,(a)忙碌等待,送出讀取命令,CPU去做其他事情,讀取I/O的狀態,檢查狀態,從I/O控制器讀取字組,將字組寫入記憶體,完成所有資料傳送?,讀取錯誤,就緒,是,否,下個指令,(b)中斷,I/O控制器送出中斷,送出讀取命令給DMA,CPU去做其他事情,讀取DMA的狀態,下個指令,(c)DMA,DMA控制器送出中斷,著作權所有 旗標出版股份有限公司,16,實作討論PC上的中斷,IRQ是Interrupt Request(中斷請求)的縮寫;對應到裝置控制器傳送信號給CPU時所使用的中斷線編號 IRQ衝突發生在兩種不同的週邊裝置選擇同一條 IRQ 線路的時候微軟在1
9、995 年開始在Windows作業系統中支援隨插即用(PnP)的功能,能夠讓周邊裝置自動找到尚未被使用的IRQ,以協助解決 IRQ 衝突的問題,著作權所有 旗標出版股份有限公司,17,圖7-4 IRQ範例畫面,著作權所有 旗標出版股份有限公司,18,ISA匯流排預設的IRQ值,IRQ 0到7中,編號越小者,代表其優先權越高,但IRQ8到15的優先權則相當於是IRQ 2,著作權所有 旗標出版股份有限公司,19,7-2 I/O軟體,I/O軟體的目標:裝置獨立性:除了直接與裝置溝通的最底層軟體之外,其他部份的軟體設計都與硬體特性無關 統一命名原則:對不同的裝置使用統一的邏輯命名原則,讓高階的應用程式
10、在使用不同裝置的時候,不需要使用不同的命名規則。Ex:在Unix下,將軟碟掛載在/usr/ast/backup,然後使用正常的檔案拷貝命令:cp file.txt/usr/ast/backup最好還能使用相同的一組基本原式來存取所有的裝置,著作權所有 旗標出版股份有限公司,20,實作討論Unix作業系統的I/O函式,Unix提供行程兩種進行輸入/輸出的方法:標準I/O程式庫:一組高階界面,例如printf()與scanf()I/O系統呼叫:直接與作業系統核心相連的較低階函式在某些情況下,應用程式仍需要針對特定硬體執行某些運算。因此,Unix還提供了ioctl系統呼叫 例如,下列命令可以將fd所
11、指向之終端機的視窗大小設為tty_winsize的值:ioctl(fd,TIOCSWINSZ,(char*),著作權所有 旗標出版股份有限公司,21,I/O系統呼叫中最常用到的幾個函式,open:以指定的模式來開啟檔案(或是裝置、網路界面)int open(char*pathname,int oflag,int mode);creat:以指定的模式來建立新的檔案 int creat(char*pathname,int mode);close:關閉指定的檔案int close(int filedes);read:將指定長度(以位元組為單位)的資料讀入指定的位置int read(int filed
12、es,char*buff,unsigned int nbytes);write:依照指定的長度,將指定位置的資料從檔案描述子寫出int write(int filedes,char*buff,unsigned int nbytes);,著作權所有 旗標出版股份有限公司,22,I/O軟體結構,為了達到裝置獨立的目標,大多數的I/O管理軟體會再細分為幾個層級常見的分法是由低而高細分為:中斷處理常式裝置驅動程式系統軟體使用者層級的應用軟體,著作權所有 旗標出版股份有限公司,23,圖7-5 I/O軟體的層級,硬體,中斷處理常式,使用者層級I/O軟體,核心 I/O子系統,裝置驅動程式,I/O 請求,傳回
13、 I/O 結果,著作權所有 旗標出版股份有限公司,24,中斷處理常式,中斷的處理必須完全由作業系統負責,因為:中斷會打斷使用者行程的正常執行中斷的發生並不在使用者行程的預期之中中斷的處理流程:作業系統會先將目前正在執行的指令完成,然後確認中斷是否發生如果確實有發生中斷,作業系統會將目前行程執行的相關資訊儲存在系統堆疊中,然後跳到中斷處理常式在中斷常式結束之後,作業系統會取出堆疊中的資訊,從被中斷的地方開始繼續執行原本的行程,著作權所有 旗標出版股份有限公司,25,圖7-6 I/O中斷的處理流程,裝置控制器或DMA控制器送出中斷,CPU完成目前的指令,CPU確認中斷,將行程控制資訊存入堆疊,執行
14、中斷處理常式,取出行程控制資訊,繼續執行原本行程,著作權所有 旗標出版股份有限公司,26,中斷處理常式設計的考量,一方面希望盡快完成這次硬體中斷的處理,以便讓CPU能夠盡快處理其他的任務 例如處理在這段時間中發生的其他中斷 另一方面,I/O的中斷又可能會需要處理大量的資料 可能的做法:將中斷處理的工作分成兩個階段,先在第一階段以高優先序做完必要的緊急處理,再將後續的處理工作放入較低優先序的中斷處理佇列,就不會耽誤到其他高優先序中斷的處理時機,著作權所有 旗標出版股份有限公司,27,實作討論Windows的中斷處理,裝置發生中斷時,Windows 2000/XP核心會在中斷向量表中搜尋對應的中斷
15、處理常式(ISR),並且將控制權轉交給該常式ISR具有高優先的中斷請求等級:所做的工作越簡短越好主要任務是去取得裝置的狀態,將負責後續處理的低請求等級任務(稱為延遲程序呼叫,DPC)放入佇列,並且清除裝置的中斷信號,然後結束 當輪到DPC執行時DPC會完成整個中斷的處理,並且視情況需要,啟動下一個在該裝置佇列中等待的I/O請求 好處在於優先順序介於ISR與DPC請求等級之間的中斷,就可以在DPC執行之前發生,著作權所有 旗標出版股份有限公司,28,實作討論Linux的中斷處理,Linux作業系統也是將中斷處理分為兩個階段硬體中斷處理常式:執行與硬體的溝通,通常是用來處理有時間急迫性的問題軟體中
16、斷:負責真正的資料處理Linux 2.4版開始提供了tasklet:在硬體中斷處理中會產生一個tasklet,然後在軟體中斷啟動時執行在多處理器系統中,許多處理器可能會同時叫用相同的中斷處理常式,由於每個中斷會產生自己的tasklet,就可以避免單一軟體處理常式在執行過程中發生重新進入(reentrant)的問題。,著作權所有 旗標出版股份有限公司,29,裝置驅動程式,目的:將裝置間的差異封裝起來,對外提供一組標準的溝通界面,而內部則是根據不同裝置的特性量身訂做可以簡化作業系統設計者的工作,不需要去瞭解各種裝置的控制細節可以讓硬體廠商更容易推出新的裝置只要提供新的驅動程式就可以使用不同作業系統
17、的裝置驅動程式介面各有不同,所以一個裝置需要多種版本的驅動程式 作業系統多半會為同一類裝置提供一個通用的裝置驅動程式如果要充分發揮特定裝置本身的效能,最好是選擇廠商所開發的驅動程式,著作權所有 旗標出版股份有限公司,30,裝置驅動程式的組成,初始化程式:在驅動程式載入時,進行驅動程式的初始化工作,建立對應的系統物件,供作業系統識別與呼叫驅動程式之用裝置操作程式:裝置一般運作所需的相關功能,例如開啟、關閉、讀取、寫入、控制等運算。中斷處理程式:處理裝置中斷的程式,通常包含比較立即的處理常式,與優先權較低的處理程式,例如Windows的ISR與DPC。離開程式:將裝置關閉並釋放系統資源。,著作權所
18、有 旗標出版股份有限公司,31,核心I/O子系統,核心I/O子系統的典型工作:提供應用程式統一的介面 排程 裝置的保護 緩衝 快取 錯誤處理,著作權所有 旗標出版股份有限公司,32,提供應用程式統一的介面,I/O軟體的重要目標 例如在Unix系統中,裝置名稱的表示方式與檔名相同(如/dev/tty01),而其對應的控制資訊中則包含了主要號碼與次要號碼主要號碼:代表裝置所連結的驅動程式例如主要號碼為1的/dev/null就是由驅動程式1負責管理 次要號碼:用來辨識屬於同一類型的裝置 有些驅動程式可以同時管理多個裝置,就必須利用次要號碼來加以辨識,著作權所有 旗標出版股份有限公司,33,排程,確保
19、行程間的公平性:至少不要發生飢餓現象設法對裝置做最有效的運用 例如適當的安排磁碟I/O的請求,以降低磁碟的搜尋時間 根據任務的特性,賦予I/O請求不同的優先順序 例如虛擬記憶體的分頁I/O請求,就應該比一般應用程式的I/O請求優先,著作權所有 旗標出版股份有限公司,34,裝置的保護,不讓沒有權限的使用者存取裝置例如在Unix作業系統中,就是使用跟檔案權限控管相同的方式,針對裝置檔案設定讀-寫-執行(rwx)的權限 避免使用者執行錯誤的I/O運算 例如對只能進行輸入的裝置(例如鍵盤)進行輸出運算 在Unix中,可以將/dev/kb(鍵盤)設為r-x。當使用者嘗試開啟裝置檔案時,作業系統會去比對使
20、用者所要求的運算與裝置的存取權限是否符合,並且在沒有這個權限(例如寫入權限)時,拒絕使用者的要求 注意獨佔裝置有互斥的要求在行程嘗試開啟獨佔裝置的時候,去檢查是否能接受該請求。當裝置已經被其他行程使用的時候,就必須拒絕這個請求,或是利用週邊並行之類的處理機制來解決,著作權所有 旗標出版股份有限公司,35,週邊並行技術,用緩衝區暫時存放週邊裝置的資料,以便讓不能同時共享的裝置,提高其並行處理的能力最典型範例:印表機雖然同時可能有多個使用者需要列印,但我們並不希望它將所有的文件混在一起印出來目前的做法是將所有列印運算都先以暫存檔的形式儲存在週邊並行專用的佇列中,當印表機完成一份資料的列印之後,週邊
21、並行系統會再從佇列中取出一個新的列印工作,傳送給印表機對於磁帶與印表機等無法應付同時來自多個行程之I/O請求的裝置非常有用。,著作權所有 旗標出版股份有限公司,36,緩衝,能夠避免置換問題當使用者行程想要從某個裝置讀入資料區塊時,通常會進入懸置狀態,等待完成之後再被喚醒。此時如果直接將讀入的資料放入行程的資料結構中,在資料輸入的過程中,行程必須保留在主記憶體中會干擾到作業系統的置換運算 資料輸入的緩衝:將資料先讀到系統預留的緩衝區中,等輪到該行程執行的時候,再透過記憶體搬移的功能,將資料複製到行程的記憶體位址資料輸出的緩衝:先將資料複製到系統的緩衝區中,然後再進行實際的資料傳輸工作 可以用來改
22、善行程執行效率 預先讀取:系統在將資料搬移給行程之後,馬上啟動下一個區塊的輸入運算,以減少行程等待下一個區塊的時間雙重緩衝:為每個I/O操作指定兩個系統緩衝區。當系統正在讀取或輸出一個緩衝區的資料時,使用者行程可以進行另一個緩衝區的資料搬移動作,著作權所有 旗標出版股份有限公司,37,圖7-7 輸入的緩衝範例,作業系統,周邊裝置,使用者行程,a.無緩衝區,b.單一緩衝,c.雙重緩衝,資料進入,資料進入,資料進入,資料搬移,資料搬移,著作權所有 旗標出版股份有限公司,38,快取,用較快速的儲存裝置,來存放較慢速裝置中的資料,以便節省資料存取的時間 Ex.記憶體就扮演磁碟的快取角色 當快取都已經填
23、滿,但又有新的資料區塊要儲存時,就必須取代掉一個原有的區塊同樣可以使用頁面替換演算法來解決 當磁碟放在快取中的資料發生修改時:直接寫回:在快取發生修改之後,立刻就寫回磁碟,並且在完成寫入之後,行程才會從寫入運算中返回可降低兩者不一致的機會 延遲寫回:在資料寫入快取後就讓行程繼續,然後等適當的時機,再由系統將資料寫回磁碟可降低對效能的衝擊 這是沒有經過關機就直接切斷電源,有時候會造成某些檔案毀損的原因之一,著作權所有 旗標出版股份有限公司,39,緩衝 vs.快取,緩衝與快取是兩個不同的功能,但是因為有時候可以用同一機制達成這兩個功能,所以很容易造成混淆 例如當作業系統劃出一塊區域做為磁碟資料的緩
24、衝區時,它們同樣也可以當作快取,用來保存一些常用或共用的檔案 當作業系統收到I/O請求時,它會先檢查這部份的資料是否已經在記憶體中,著作權所有 旗標出版股份有限公司,40,錯誤處理,一般而言,大多數的I/O錯誤都與裝置有關,因此,也只有驅動程式知道該如何處理作業系統只能解決一些暫時性的錯誤,例如因為網路不穩定造成暫時性地傳輸失敗如果是作業系統無法解決的問題,它會將錯誤回報給行程,再由行程顯示適當的訊息給使用者,著作權所有 旗標出版股份有限公司,41,圖7-8 Windows檔案總管的錯誤訊息範例,著作權所有 旗標出版股份有限公司,42,使用者層級I/O軟體,應用程式會使用到一些屬於使用者層級的
25、函式庫 例如C語言中的printf()這些輸入/輸出函式的工作,主要是把I/O相關的參數放到適合的位置,由其他的I/O軟體來完成真正的工作例如printf()會根據指定的格式與變數,組成一個ASCII的字串,然後交給write()這個系統呼叫來輸出,著作權所有 旗標出版股份有限公司,43,I/O請求的處理流程,行程透過I/O函式送出I/O請求。核心I/O子系統檢查參數的正確性。如果是輸入運算的話,系統會檢查在緩衝區中是否已經有資料了。如果還沒有資料,就送出請求給裝置驅動程式。裝置驅動程式會送出命令給裝置控制器。控制器會監督裝置,等到I/O完成就產生中斷。作業系統呼叫中斷處理常式,中斷常式儲存必
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图71 单一汇流排架构 装置管理 71 单一 汇流 架构 装置 管理

链接地址:https://www.31ppt.com/p-5440612.html