



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、設備驅動程序 與設備密切相關的代碼放在設備驅動程序中,每個設備驅動程序處理一種設備類型,例如,即使系統(tǒng)支持若干不同商標的終端,只要其差別不大,就可以設計一個終端驅動程序。但是,若系統(tǒng)支持的終端性能差別很大,如不靈活的硬拷貝終端與帶有小鼠標的智能位映象圖形終端,則必須設計不同的終端驅動程序。 上一節(jié)我們介紹了設備控制器做的工作,知道每一個控制器都設有一個或多個設備寄存器,用來存放向設備發(fā)送的命令和參數(shù)。設備驅動程序負責泄放這些命令,并監(jiān)督它們正確執(zhí)行。因此,磁盤驅動程序是操作系統(tǒng)中唯一知道磁盤控制器設置有多少寄存器以及這些寄存器作用的。只有它才了解磁盤擁有的扇區(qū)數(shù)、磁道數(shù)、柱面數(shù)、磁頭數(shù)、臂的移
2、動、磁盤交叉訪問系數(shù)、馬達驅動器,磁頭穩(wěn)定時間和其它所有保證磁盤正常工作的機制。 一般,設備驅動程序的任務是接收來自與設備無關的上層軟件的抽象請求,并執(zhí)行這個請求。一個典型的請求是“讀第幾塊”。如果請求到來時,驅動程序的進程空閑,它立即開始執(zhí)行這個請求;若驅動程序的進程正在執(zhí)行一個請求,這時它將新到來的請求排到一個等待處理的IO請求隊列中,待正執(zhí)行的請求完成后,再依次從IO請求隊列中取出一個個IO請求,逐個處理。 以磁盤為例,實際實現(xiàn)一個IO請求的第一步是將這個抽象請求(READ(文件名,記錄號) 轉換成磁盤的具體參數(shù)。對于磁盤驅動程序來說,就是計算請求塊實際在磁盤的位置,檢查驅動器的馬達是否
3、正在運轉,確定磁頭是否定位在正確的柱面上等等??傊?,它必面決定需要控制器的哪些操作,以及按照什么樣的次序實現(xiàn)。一旦明確應向控制器發(fā)送哪些命令,它就向控制器一次只能接收一條命令(如DMA方式下),有一些控制器則接收一個命令鏈表(通道方式下),然后自行控制執(zhí)行,不再求助于操作系統(tǒng)。 在設備驅動程序的進程泄放一條或多條命令后,系統(tǒng)有兩種處理方式,多數(shù)情況下,執(zhí)行設備驅動程序的進程必須等待命令完成。這樣,在命令開始執(zhí)行后,它阻塞自已,直到中斷處理時將它解除阻塞為止。而在其它情況下,命令執(zhí)行不必延遲就很快完成。例如,某些終端(包括IBMPC)的滾屏操作,只要求把幾個字節(jié)寫到控制器的寄存器中即可,整個操作
4、只在幾微秒就能完成。因此,執(zhí)行設備驅動程序的進程不必等待。 上述兩種處理方式,在操作完成后,都必須檢查數(shù)據(jù)傳輸是否有錯。若有錯,則它返回一些錯誤狀態(tài)信息給調用者。若無錯,設備驅動程序還負責將數(shù)據(jù)傳送到設備無關的軟件層。若還有未完成的請求在排隊,則再選擇一個啟動執(zhí)行。若沒有未完成的請求時,則該驅動程序進程等待下一個請求的到來。1.4.1 整體式系統(tǒng)整體式系統(tǒng)是最常用的組織的方式,但常被人們形容為“一鍋粥”,其結構實際就是“無結構”。整個操作系統(tǒng)是一堆過程的集合,每個過程都可以調用任意其他過程。使用這種技術時系統(tǒng)中的每一個過程都有一個定義完好的接口,即它的人口參數(shù)和返回值,而且相互間的調用不受約束
5、。在整體式系統(tǒng)中,為了構造最終的目標操作系統(tǒng)程序,開發(fā)人員首先將一些獨立的過程進行編譯,然后用鏈接程序將其他鏈接在一起成為一個單獨的目標程序。從信息隱藏的觀點看,它沒有任何程度的隱藏每一個過程都對其他過程可見。(與此相對的是將系統(tǒng)分成若干個模塊,信息被隱藏在這些模塊內部,在外部只允許從預定好的調用,這如圖1-16所示。(多數(shù)CPU有兩種狀態(tài):核心態(tài):供操作系統(tǒng)使用,該狀態(tài)下可以執(zhí)行機器的所有指令;用戶態(tài):借用戶程序用,該狀態(tài)下I/O操作和某些其他操作不能執(zhí)行。)操作系統(tǒng)隨后檢查一張系統(tǒng)調用的參數(shù)以確定應執(zhí)行哪條系統(tǒng)調用,這如圖1-16所示,它確定了將調用的服務過程。當系統(tǒng)調用結束后,控制又返回
6、給用戶程序(第4步),于是繼續(xù)執(zhí)行系統(tǒng)調用后面的語句。這種組織方式提出了操作系統(tǒng)的一種基本結構:(1) 一個用來調用被請求服務例程的主要程序。(2) 一套執(zhí)行系統(tǒng)調用的服務例程。(3) 一套支持服務例程的實用過程。在這種模型中,每一條系統(tǒng)調用都由一個服務例程完成;一組實用過程用來完成若干服務例程都需要用到的功能,如從用戶程序獲取數(shù)據(jù)等,這種將各種過程分為三層的模型如圖1-17所示。層次式系統(tǒng)圖1-17所示的系統(tǒng)進一步通用化就成為層次式系統(tǒng),即上層軟件基于下層軟件之該系統(tǒng)分為六層,如圖1-18所示。第零層進行處理分配,當發(fā)生中斷或時鐘到達期限時由該層軟件進行切換。在第零層之上有若干個順序進程運行
7、,編寫這些進程時就不再考慮多個進程在單一處理器上運行的細節(jié)。換句話說,第零層提供了CPU基本的多道程序功能。層次功能5操作員4用戶程序3輸入/輸出管理2操作員-進程通信1內存和磁盤管理0處理器分配和多道程序 圖1-18 THE操作系統(tǒng)的結構 第一層進行內存管理,它為進程分配內存空間,當內存用完時則會在用作對換的512K字的磁盤上分配空間。在第一層之上,進程不用再考慮它是在內存還是在磁盤上,因為第一層軟件保證在需要訪問某一頁面時,它必定在內存中。第二層軟件處理進程與操作員控制臺之間的通信。在第二層之上,則可認為每個進程都有它自己的操作員控制臺。第三層軟件管理I/O設備和相關的信息流緩沖。在第三層
8、之上,每個進程都與適當抽象了的設備打交道而不必考慮物理設備的細節(jié)。第四層是用戶程序層,用戶程序在此不考慮進程、內存、控制臺和I/O設備等環(huán)節(jié)。系統(tǒng)操作員進程位于第五層。MULTICS對層次化概念進行了更一步的通用化,它不采用層而是由許多同心環(huán)構成,內層的環(huán)比外層的環(huán)有更高的特權級,當外層環(huán)的過程調用內層環(huán)的過程時,它必須執(zhí)行一條類似系統(tǒng)調用的TRAP指令,TRAP指令執(zhí)行前要進行嚴格的參數(shù)合法性檢查。盡管在MULTICS中操作系統(tǒng)是各個用戶進程地址空間的一部分,硬件仍然能夠對單個進程(實際是內存中的一個段)的讀、寫和執(zhí)行權限進行保護。實際上THE分層方案只是在設計提供了一些方便,因為系統(tǒng)的各個
9、部分最終仍然被鏈接成一個完整的單個目標程序,而在MULTICS中,上述環(huán)形方案在運行中是實際存在的且由硬件實現(xiàn)。環(huán)形方案的一個優(yōu)點是它很容易被 擴展,以構造用戶系統(tǒng)。例如在一介系統(tǒng)中,教授可以寫一個程序來檢查學生編寫的程序并打分,將教授的程序放在第 個環(huán)中運行,而將學生的程序放在第 +1個環(huán)中運行,則學生無法 改教授給出的成績。143虛擬機系統(tǒng)OS360的最早版本是純粹的批處理系統(tǒng),然而許多360的用戶希望使用分時系統(tǒng),于是IBM公司和另外的一些研究小組決定開發(fā)一個分時系統(tǒng)。隨IBM后提供了一套分時系統(tǒng)TSS360,但它非常龐大,運行緩慢,幾乎沒有什么人用。該系統(tǒng)在花費了約五千萬美元的研制費用
10、后最終被棄之不用(Graham,1970)。但IBM設在麻省劍橋的一個研究中心開發(fā)了一個完全不同的系統(tǒng),最終被IBM用作為產(chǎn)品。該系統(tǒng)目前仍然在IBM的大型主機上廣泛使用。該系統(tǒng)最初命名為CPCMS,后來改為VM370(Seawright and Mackinnon,1979 )。它基于如下的思想:一個分時系統(tǒng)應該提供以下特性:(1)多道程序,(2)一個具有比裸機更方便,界面擴展的計算機。VM370的主旨在于將此二者徹底地隔離開來。該系統(tǒng)的核心稱作虛擬機監(jiān)控程序,它在裸機上運行并具備多道程序功能。它向上層提供了若干臺虛擬機,如圖119所示。與其他操作系統(tǒng)不同的是:這些虛擬機不是那種具有文件等良
11、好特征的擴展計算機,而僅僅是裸機硬件的精確復制。它包含有:核心態(tài)用戶態(tài),IO功能,中斷,以及真實硬件具有的全部內容。因為每臺虛擬機都與裸機完全一樣,所以每臺虛擬機可以運行裸機能夠運行的任何操作系統(tǒng)。不同的虛擬機可以運行不同的操作系統(tǒng)而且往往如此。某些虛擬機運行OS360的后續(xù)版本作批處理或事務處理,而同時另一些運行一個單用戶交互系統(tǒng)供分時用戶使用,該系統(tǒng)稱作CMS(Conversational Monitor System,會話監(jiān)控系統(tǒng))。當CMS上的程序執(zhí)行一條系統(tǒng)調用時,該系統(tǒng)調用陷入其自己的虛擬機的操作系統(tǒng),而不是VM370,這就像在真正的計算機上一樣。CMS然后發(fā)出正常的硬件IO指令來
12、執(zhí)行該系統(tǒng)調用。這些IO指令被VM370捕獲,隨后VM370執(zhí)行這些指令,作為對真實硬件模擬的一部分。通過將多道程序功能和提供虛擬機分開,它們各自都更簡單更靈活和易于維護。144客戶服務器系統(tǒng)VM370將傳統(tǒng)操作系統(tǒng)的大部分代碼(實現(xiàn)擴展的計算機)分離出來放在更高的層次上,即CMS,由此使系統(tǒng)得以簡化。但VM370本身仍然非常復雜,因為模擬許多虛擬的370硬件不是一件簡單的事情(尤其是還想作得高效時)?,F(xiàn)代操作系統(tǒng)的一個趨勢是將這種把代碼移到更高層次的思想進一步發(fā)展,從操作系統(tǒng)中去掉盡可能多的東西,而只留一個最小的核心。通常的方法是將大多數(shù)操作系統(tǒng)功能由用戶進程來實現(xiàn)。為了獲取某項服務,比如讀
13、文件中的一塊,用戶進程(現(xiàn)稱客戶進程,client process)將此請求發(fā)送給一個服務器進程(server process),服務器進程隨后完成此操作并將回答信息送回。該模型示于圖120,核心的全部工作是處理客戶與服務器間的通信。操作系統(tǒng)被分割成許多部分,每一部分只處理一方面的功能,如文件服務進程服務終端服務或存儲器服務。這樣每一部分變得更小,更易于管理。而且,由于所有服務器以用戶進程的形式運行,而不是運行在核心態(tài),所以它們不直接訪問硬件。這樣處理的結果是:假如在文件服務器中發(fā)生錯誤,文件服務器可能崩潰,但不會導致整個系統(tǒng)的崩潰。客戶一服務器模型的另一個優(yōu)點是它適用于分布式系統(tǒng)(參閱圖121),如果一個客戶通過消息傳遞與服務器通信,客戶無需知道這條消息是在本機就地處理還是通過網(wǎng)絡送給遠地機器上的服務器。在這兩種情況下,客戶機的處理都是一樣的:發(fā)送一個請求,收回合。某些操作系統(tǒng)功能(如向物理IO設備寄存器寫入命令字)靠用戶空間的程序是很難完成的。解決這個問題的方法有兩種:一種是設立一個運行于核心態(tài)的專用服務器進程,它具有訪問硬件的絕對權力,但仍舊通過平常的消息機制與其他進程通信。另一種方
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022酒店主管半年度工作總結簡短
- 景觀照明提升工程可行性研究報告
- 家居科技產(chǎn)業(yè)園項目實施方案(范文參考)
- 環(huán)保型植保產(chǎn)品建設項目初步設計(范文)
- 管理學組織設計的原則
- 數(shù)控裝調與維修實訓安全教育
- 心理護理倫理課件
- 河南省開封市五縣聯(lián)考2023-2024學年高二上學期期中考數(shù)學含解析
- 2025年開展安全生產(chǎn)月活動實施方案
- 德宏師范高等專科學?!冬F(xiàn)當代文學作品》2023-2024學年第二學期期末試卷
- 經(jīng)紀公司聘用協(xié)議書
- 2024年山西杏花村汾酒集團有限責任公司招聘筆試真題
- 天津師范大學與韓國世翰大學入學綜合素質題目
- MOOC 學術英語寫作-東南大學 中國大學慕課答案
- MOOC 家具·設計·生活-北京林業(yè)大學 中國大學慕課答案
- 愚公移山英文 -中國故事英文版課件
- 基于UC3842的反激式開關電源的設計
- 生態(tài)防護林建設項目建議書范文
- 大學生對美團滿意調查問卷
- 原輔材料留樣觀察記錄
- 手語教學(課堂PPT)
評論
0/150
提交評論