



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