版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第第2章章 操作系統(tǒng)用戶界面操作系統(tǒng)用戶界面討論討論OS向上提供的用戶接口,即命令向上提供的用戶接口,即命令控制接口和編程接口。命令控制接口可控制接口和編程接口。命令控制接口可完成用戶作業(yè)的組織和控制。完成用戶作業(yè)的組織和控制。 本章目錄本章目錄n2.1 簡(jiǎn)介簡(jiǎn)介n2.2 一般用戶的輸入輸出界面一般用戶的輸入輸出界面n2.3 命令控制界面命令控制界面n2.4 Linux與與Windows的命令控制界面的命令控制界面n2.5 系統(tǒng)調(diào)用系統(tǒng)調(diào)用n2.6 Linux與與Windows的系統(tǒng)調(diào)用的系統(tǒng)調(diào)用本章教學(xué)目標(biāo)本章教學(xué)目標(biāo)n掌握:操作系統(tǒng)為用戶提供的編程接口和命掌握:操作系統(tǒng)為用戶提供的編程接
2、口和命令控制接口的概念,作業(yè)的定義,作業(yè)的組令控制接口的概念,作業(yè)的定義,作業(yè)的組織,作業(yè)的輸入輸出方式,作業(yè)控制方式,織,作業(yè)的輸入輸出方式,作業(yè)控制方式,系統(tǒng)調(diào)用及其實(shí)現(xiàn)過程系統(tǒng)調(diào)用及其實(shí)現(xiàn)過程n了解:了解:Linux、Windows操作系統(tǒng)用戶界面操作系統(tǒng)用戶界面作作 業(yè)(業(yè)(P36)n2.4 試述試述SPOOLING系統(tǒng)的工作原理。系統(tǒng)的工作原理。n2.5 操作系統(tǒng)為用戶提供哪些接口?它們的區(qū)別操作系統(tǒng)為用戶提供哪些接口?它們的區(qū)別是什么?是什么?n2.7 2.8 什么是系統(tǒng)調(diào)用?簡(jiǎn)述系統(tǒng)調(diào)用的實(shí)現(xiàn)過什么是系統(tǒng)調(diào)用?簡(jiǎn)述系統(tǒng)調(diào)用的實(shí)現(xiàn)過程。程。2.1 簡(jiǎn)介簡(jiǎn)介n用戶界面的功能用戶界面的
3、功能:負(fù)責(zé)用戶與操作系統(tǒng)之間的交互:負(fù)責(zé)用戶與操作系統(tǒng)之間的交互.n計(jì)算機(jī)系統(tǒng)的用戶計(jì)算機(jī)系統(tǒng)的用戶:n使用和管理計(jì)算機(jī)的用戶使用和管理計(jì)算機(jī)的用戶:普通用戶,管理員:普通用戶,管理員n程序開發(fā)人員程序開發(fā)人員n操作系統(tǒng)為不同的用戶提供不同的用戶界面。操作系統(tǒng)為不同的用戶提供不同的用戶界面。n不同的操作系統(tǒng)提供的用戶界面也是不同的。不同的操作系統(tǒng)提供的用戶界面也是不同的。2.1 簡(jiǎn)介簡(jiǎn)介n操作系統(tǒng)操作系統(tǒng)為普通用戶、管理員提供為普通用戶、管理員提供的界面:的界面:由一組不同形式表示的操作命令組成,稱為由一組不同形式表示的操作命令組成,稱為命令控制界面命令控制界面;n操作系統(tǒng)操作系統(tǒng)為程序開發(fā)員
4、提供為程序開發(fā)員提供的界面:的界面:系統(tǒng)調(diào)系統(tǒng)調(diào)用。用。n命令控制界面是在系統(tǒng)調(diào)用的基礎(chǔ)上開發(fā)而命令控制界面是在系統(tǒng)調(diào)用的基礎(chǔ)上開發(fā)而成的。成的。2.2 一般用戶的輸入輸出界面一般用戶的輸入輸出界面n2.2.1 作業(yè)的定義作業(yè)的定義n2.2.2 作業(yè)組織作業(yè)組織n2.2.3 一般用戶的輸入輸出方式一般用戶的輸入輸出方式2.2.1 作業(yè)的定義作業(yè)的定義圖圖2.1 一般編程過程一般編程過程2.2.1 作業(yè)的定義作業(yè)的定義n作業(yè):作業(yè):在一次應(yīng)用業(yè)務(wù)處理過程中,從輸入開始到在一次應(yīng)用業(yè)務(wù)處理過程中,從輸入開始到輸出結(jié)束,用戶要求計(jì)算機(jī)所做的有關(guān)該次業(yè)務(wù)處輸出結(jié)束,用戶要求計(jì)算機(jī)所做的有關(guān)該次業(yè)務(wù)處理
5、的全部工作稱為一個(gè)作業(yè)。理的全部工作稱為一個(gè)作業(yè)。n用戶的觀點(diǎn):用戶的觀點(diǎn):在一次業(yè)務(wù)處理過程中,從輸入程序和數(shù)在一次業(yè)務(wù)處理過程中,從輸入程序和數(shù)據(jù)到輸出結(jié)果的全過程。據(jù)到輸出結(jié)果的全過程。作業(yè)步:作業(yè)步:形成中間結(jié)果文件。形成中間結(jié)果文件。n系統(tǒng)的觀點(diǎn)(針對(duì)作業(yè)進(jìn)行資源分配):系統(tǒng)的觀點(diǎn)(針對(duì)作業(yè)進(jìn)行資源分配):作業(yè)作業(yè)由程序及由程序及數(shù)據(jù)和作業(yè)說明書組成數(shù)據(jù)和作業(yè)說明書組成。系統(tǒng)通過作業(yè)說明書控制程序。系統(tǒng)通過作業(yè)說明書控制程序和數(shù)據(jù)的執(zhí)行和操作。和數(shù)據(jù)的執(zhí)行和操作。n作業(yè)由不同的順序相連的作業(yè)步組成。作業(yè)由不同的順序相連的作業(yè)步組成。n作業(yè)步:作業(yè)步:是在一個(gè)作業(yè)的處理過程中,計(jì)算機(jī)所
6、做是在一個(gè)作業(yè)的處理過程中,計(jì)算機(jī)所做的相對(duì)獨(dú)立的工作。的相對(duì)獨(dú)立的工作。2.2.1 作業(yè)的定義作業(yè)的定義n批處理系統(tǒng)中,常將若干作業(yè)依次放在輸入批處理系統(tǒng)中,常將若干作業(yè)依次放在輸入設(shè)備上,在操作系統(tǒng)的控制下將其送入輔存,設(shè)備上,在操作系統(tǒng)的控制下將其送入輔存,這就形成了一個(gè)這就形成了一個(gè)作業(yè)流作業(yè)流(輸入流)(輸入流)n批處理系統(tǒng):以作業(yè)為單位把程序和數(shù)據(jù)調(diào)批處理系統(tǒng):以作業(yè)為單位把程序和數(shù)據(jù)調(diào)入內(nèi)存執(zhí)行,作業(yè)是搶占內(nèi)存的基本單位。入內(nèi)存執(zhí)行,作業(yè)是搶占內(nèi)存的基本單位。2.2.2 作業(yè)組織作業(yè)組織n作業(yè)由三部分組成,即作業(yè)由三部分組成,即程序、數(shù)據(jù)和作業(yè)說程序、數(shù)據(jù)和作業(yè)說明書明書。n一個(gè)
7、作業(yè)可以包含多個(gè)程序和多個(gè)數(shù)據(jù)集,一個(gè)作業(yè)可以包含多個(gè)程序和多個(gè)數(shù)據(jù)集,但必須至少包含一個(gè)程序。但必須至少包含一個(gè)程序。n作業(yè)說明書包含:作業(yè)的基本描述、作業(yè)控作業(yè)說明書包含:作業(yè)的基本描述、作業(yè)控制描述和資源要求描述。體現(xiàn)用戶的控制意制描述和資源要求描述。體現(xiàn)用戶的控制意圖。圖。圖圖2.2 作業(yè)說明書的主要內(nèi)容作業(yè)說明書的主要內(nèi)容2.2.3 一般用戶的輸入輸出方式一般用戶的輸入輸出方式n聯(lián)機(jī)輸入輸出方式聯(lián)機(jī)輸入輸出方式n脫機(jī)輸入輸出方式脫機(jī)輸入輸出方式n直接耦合方式直接耦合方式nSPOOLING系統(tǒng)系統(tǒng)n網(wǎng)絡(luò)聯(lián)機(jī)方式網(wǎng)絡(luò)聯(lián)機(jī)方式聯(lián)機(jī)輸入輸出方式聯(lián)機(jī)輸入輸出方式n用戶和系統(tǒng)通過交互會(huì)話來輸入作
8、業(yè)。用戶和系統(tǒng)通過交互會(huì)話來輸入作業(yè)。n外圍設(shè)備直接和主機(jī)連接。外圍設(shè)備直接和主機(jī)連接。由主機(jī)直接控制輸入輸由主機(jī)直接控制輸入輸出;出;I/O與作業(yè)處理不能并行。降低了與作業(yè)處理不能并行。降低了CPU效率效率n一臺(tái)主機(jī)可以連接一臺(tái)或多臺(tái)外圍設(shè)備。一臺(tái)主機(jī)可以連接一臺(tái)或多臺(tái)外圍設(shè)備。在單臺(tái)設(shè)在單臺(tái)設(shè)備和主機(jī)相連接進(jìn)行作業(yè)輸入輸出時(shí),由于外圍設(shè)備和主機(jī)相連接進(jìn)行作業(yè)輸入輸出時(shí),由于外圍設(shè)備的輸入輸出速度遠(yuǎn)遠(yuǎn)低于備的輸入輸出速度遠(yuǎn)遠(yuǎn)低于CPU處理速度,有可能處理速度,有可能造成造成CPU資源的浪費(fèi)。資源的浪費(fèi)。 脫機(jī)輸入輸出方式脫機(jī)輸入輸出方式n利用低檔個(gè)人計(jì)算機(jī)作為外圍處理機(jī)進(jìn)行輸入輸出利用低檔個(gè)
9、人計(jì)算機(jī)作為外圍處理機(jī)進(jìn)行輸入輸出處理處理。用于主機(jī)不太快的情況。用于主機(jī)不太快的情況。n脫機(jī)輸入輸出脫機(jī)輸入輸出解決了快速輸入輸出問題,提高了主解決了快速輸入輸出問題,提高了主機(jī)的資源利用率機(jī)的資源利用率,但這是,但這是以犧牲低檔機(jī)為代價(jià)以犧牲低檔機(jī)為代價(jià)的;的;n脫機(jī)輸入輸出脫機(jī)輸入輸出需要用戶進(jìn)行干預(yù)或進(jìn)行一定的操作需要用戶進(jìn)行干預(yù)或進(jìn)行一定的操作,例如移動(dòng)存儲(chǔ)介質(zhì)和連接后援存儲(chǔ)器等;例如移動(dòng)存儲(chǔ)介質(zhì)和連接后援存儲(chǔ)器等;n脫機(jī)輸入輸出方式脫機(jī)輸入輸出方式存在靈活性差的缺點(diǎn)存在靈活性差的缺點(diǎn),即遇到緊,即遇到緊急任務(wù)需要處理時(shí),無法直接交給主機(jī)以便優(yōu)先處急任務(wù)需要處理時(shí),無法直接交給主機(jī)以
10、便優(yōu)先處理。理。直接耦合方式直接耦合方式n直接耦合方式直接耦合方式把主機(jī)和外圍低檔個(gè)人機(jī)通過把主機(jī)和外圍低檔個(gè)人機(jī)通過一個(gè)公用的大容量外存直接耦合起來一個(gè)公用的大容量外存直接耦合起來,從而,從而省去了在脫機(jī)輸入中依靠人工干預(yù)來傳遞后省去了在脫機(jī)輸入中依靠人工干預(yù)來傳遞后援存儲(chǔ)器的過程。援存儲(chǔ)器的過程。用于高速主機(jī)用于高速主機(jī)。n慢速的慢速的輸入輸出過程由外圍機(jī)自己管理輸入輸出過程由外圍機(jī)自己管理,而,而對(duì)公用存儲(chǔ)器中的大量數(shù)據(jù)的高速讀寫則由對(duì)公用存儲(chǔ)器中的大量數(shù)據(jù)的高速讀寫則由主機(jī)完成主機(jī)完成。圖圖2.3 直接耦合方式直接耦合方式特點(diǎn):特點(diǎn):需大容量公用存儲(chǔ)器,且主機(jī)、公用存儲(chǔ)器、需大容量公用
11、存儲(chǔ)器,且主機(jī)、公用存儲(chǔ)器、低檔低檔PC機(jī)固定連接;可聯(lián)機(jī)快速輸入,靈活性較強(qiáng)機(jī)固定連接;可聯(lián)機(jī)快速輸入,靈活性較強(qiáng) ;無脫機(jī)輸入輸出方式中的人工干預(yù)。無脫機(jī)輸入輸出方式中的人工干預(yù)。SPOOLING系統(tǒng)系統(tǒng)nSPOOLING:外圍設(shè)備同時(shí)聯(lián)機(jī)操作:外圍設(shè)備同時(shí)聯(lián)機(jī)操作n在在SPOOLING系統(tǒng)中,多臺(tái)外部設(shè)備通過通系統(tǒng)中,多臺(tái)外部設(shè)備通過通道或道或DMA器件和主機(jī)與外存連接起來。作業(yè)器件和主機(jī)與外存連接起來。作業(yè)的輸入輸出過程由主機(jī)中的操作系統(tǒng)控制。的輸入輸出過程由主機(jī)中的操作系統(tǒng)控制。SPOOLING系統(tǒng)系統(tǒng)DMA技術(shù)技術(shù)nDMA方式(方式(Direct Memory Access,直接存
12、取,直接存取方式):在外圍設(shè)備和內(nèi)存之間開辟直接的數(shù)據(jù)交方式):在外圍設(shè)備和內(nèi)存之間開辟直接的數(shù)據(jù)交換通路。換通路。每臺(tái)設(shè)備至少要一個(gè)每臺(tái)設(shè)備至少要一個(gè)DMA控制器控制器(通道:(通道:一個(gè)通道控制多臺(tái)設(shè)備與內(nèi)存進(jìn)行數(shù)據(jù)交換)一個(gè)通道控制多臺(tái)設(shè)備與內(nèi)存進(jìn)行數(shù)據(jù)交換)n數(shù)據(jù)的傳送是在數(shù)據(jù)的傳送是在DMA控制器的控制下不經(jīng)過控制器的控制下不經(jīng)過CPU控控制完成制完成;n但是,但是,對(duì)外圍設(shè)備的管理和某些操作仍由對(duì)外圍設(shè)備的管理和某些操作仍由CPU控制控制(與通道的區(qū)別)(與通道的區(qū)別),如信息的傳送方向、信息傳送,如信息的傳送方向、信息傳送的源地址和目的地址以及傳送長(zhǎng)度等都是由的源地址和目的地址以
13、及傳送長(zhǎng)度等都是由CPU控控制而不是由制而不是由DMA器件控制的。器件控制的。網(wǎng)絡(luò)聯(lián)機(jī)方式網(wǎng)絡(luò)聯(lián)機(jī)方式n在網(wǎng)絡(luò)上一臺(tái)機(jī)器進(jìn)行作業(yè)輸入在網(wǎng)絡(luò)上一臺(tái)機(jī)器進(jìn)行作業(yè)輸入/輸出,在另輸出,在另一臺(tái)主機(jī)上運(yùn)行一臺(tái)主機(jī)上運(yùn)行為什么說分時(shí)系統(tǒng)沒有作業(yè)的概念?為什么說分時(shí)系統(tǒng)沒有作業(yè)的概念?n分時(shí)系統(tǒng)中,每個(gè)用戶得到的時(shí)間片有限,分時(shí)系統(tǒng)中,每個(gè)用戶得到的時(shí)間片有限,用戶的程序和數(shù)據(jù)信息直接輸入到內(nèi)存工作用戶的程序和數(shù)據(jù)信息直接輸入到內(nèi)存工作區(qū)和其他程序一起搶占系統(tǒng)資源投入執(zhí)行,區(qū)和其他程序一起搶占系統(tǒng)資源投入執(zhí)行,而不必進(jìn)入內(nèi)存輸入井等待作業(yè)調(diào)度程序選而不必進(jìn)入內(nèi)存輸入井等待作業(yè)調(diào)度程序選擇。因此,分時(shí)系統(tǒng)沒
14、有作業(yè)控制表,也沒擇。因此,分時(shí)系統(tǒng)沒有作業(yè)控制表,也沒有作業(yè)調(diào)度程序。有作業(yè)調(diào)度程序。2.3 命令控制界面命令控制界面n命令控制界面命令控制界面:用來組織和控制作業(yè)運(yùn)行。:用來組織和控制作業(yè)運(yùn)行。n作業(yè)控制方式作業(yè)控制方式:n脫機(jī)作業(yè)控制脫機(jī)作業(yè)控制:用戶輸入作業(yè)說明書,整個(gè)作業(yè)的運(yùn)行:用戶輸入作業(yè)說明書,整個(gè)作業(yè)的運(yùn)行由系統(tǒng)控制。由系統(tǒng)控制。用作業(yè)控制語(yǔ)言編寫作業(yè)控制程序用作業(yè)控制語(yǔ)言編寫作業(yè)控制程序(作業(yè)(作業(yè)說明書),其語(yǔ)言的語(yǔ)句就是作業(yè)控制命令。說明書),其語(yǔ)言的語(yǔ)句就是作業(yè)控制命令。n聯(lián)機(jī)作業(yè)控制聯(lián)機(jī)作業(yè)控制:通過人:通過人-機(jī)會(huì)話方式控制作業(yè)運(yùn)行。如機(jī)會(huì)話方式控制作業(yè)運(yùn)行。如DO
15、S、Windows、Linux系統(tǒng)。系統(tǒng)。用戶登錄(控制臺(tái)登錄或遠(yuǎn)程登錄),由系統(tǒng)自動(dòng)執(zhí)行一用戶登錄(控制臺(tái)登錄或遠(yuǎn)程登錄),由系統(tǒng)自動(dòng)執(zhí)行一些命令腳本后,并進(jìn)入些命令腳本后,并進(jìn)入shellshell(字符或(字符或GUIGUI界面),接受界面),接受用戶的命令和操作,最后退出系統(tǒng)。用戶的命令和操作,最后退出系統(tǒng)。聯(lián)機(jī)作業(yè)控制的命令種類聯(lián)機(jī)作業(yè)控制的命令種類n環(huán)境設(shè)置環(huán)境設(shè)置n執(zhí)行權(quán)限管理執(zhí)行權(quán)限管理n系統(tǒng)管理系統(tǒng)管理n文件管理文件管理n編輯、編譯、鏈接裝配、執(zhí)行命令編輯、編譯、鏈接裝配、執(zhí)行命令n通信通信n資源要求資源要求2.3 命令控制界面命令控制界面n現(xiàn)代操作系統(tǒng),大都提供現(xiàn)代操作系統(tǒng)
16、,大都提供聯(lián)機(jī)控制方式聯(lián)機(jī)控制方式和和批批處理方式處理方式。n批處理方式:批處理方式:指?jìng)鹘y(tǒng)的作業(yè)控制語(yǔ)言編寫的指?jìng)鹘y(tǒng)的作業(yè)控制語(yǔ)言編寫的作業(yè)說明書方式,也指那些把不同的交互命作業(yè)說明書方式,也指那些把不同的交互命令按一定格式組合后的命令文件方式。令按一定格式組合后的命令文件方式。2.3 命令控制界面命令控制界面n操作系統(tǒng)的命令控制界面已從早期的脫機(jī)控操作系統(tǒng)的命令控制界面已從早期的脫機(jī)控制方式(批處理系統(tǒng))和聯(lián)機(jī)控制方式(分制方式(批處理系統(tǒng))和聯(lián)機(jī)控制方式(分時(shí)系統(tǒng))時(shí)系統(tǒng))向向多窗口、菜單、按鈕以及聲控等多窗口、菜單、按鈕以及聲控等圖形化多媒體方式圖形化多媒體方式變化變化。2.4 Lin
17、ux與與Windows的命令控制界面的命令控制界面n2.4.1 Linux的命令控制界面的命令控制界面n2.4.2 Windows的命令控制界面的命令控制界面2.4.1 Linux的命令控制界面的命令控制界面n圖形化窗口系統(tǒng):圖形化窗口系統(tǒng): X Windowsn交戶型命令解釋程序:交戶型命令解釋程序:Shell程序程序2.4.2 Windows的命令控制界面的命令控制界面n窗口交互部分:鼠標(biāo)、鍵盤窗口交互部分:鼠標(biāo)、鍵盤n命令解釋器:命令解釋器:cmd.exe2.5 系統(tǒng)調(diào)用系統(tǒng)調(diào)用n系統(tǒng)調(diào)用系統(tǒng)調(diào)用是操作系統(tǒng)提供給是操作系統(tǒng)提供給編程人員編程人員的唯一的唯一接口。接口。nOSOS核心中都有
18、一組實(shí)現(xiàn)系統(tǒng)功能的過程(子核心中都有一組實(shí)現(xiàn)系統(tǒng)功能的過程(子程序),程序),用戶在用戶在程序中程序中調(diào)用操作系統(tǒng)提供的調(diào)用操作系統(tǒng)提供的子功能稱為系統(tǒng)調(diào)用子功能稱為系統(tǒng)調(diào)用。n編程人員利用系統(tǒng)調(diào)用,編程人員利用系統(tǒng)調(diào)用,在源程序一級(jí)動(dòng)態(tài)在源程序一級(jí)動(dòng)態(tài)請(qǐng)求和釋放系統(tǒng)資源請(qǐng)求和釋放系統(tǒng)資源,調(diào)用系統(tǒng)中已有的系,調(diào)用系統(tǒng)中已有的系統(tǒng)功能來統(tǒng)功能來完成那些與機(jī)器硬件部分相關(guān)的工完成那些與機(jī)器硬件部分相關(guān)的工作作以及以及控制程序的執(zhí)行速度控制程序的執(zhí)行速度等。等。系統(tǒng)調(diào)用分類系統(tǒng)調(diào)用分類n設(shè)備管理設(shè)備管理n文件管理文件管理n進(jìn)程控制進(jìn)程控制n進(jìn)程通信進(jìn)程通信n存儲(chǔ)管理存儲(chǔ)管理n線程管理線程管理2.5
19、 系統(tǒng)調(diào)用系統(tǒng)調(diào)用n計(jì)算機(jī)系統(tǒng)中的程序可分為計(jì)算機(jī)系統(tǒng)中的程序可分為系統(tǒng)程序系統(tǒng)程序與與用戶用戶程序程序兩類。兩類。n為了保證為了保證OSOS不被用戶程序破壞不被用戶程序破壞, , 不允許不允許用戶用戶程序程序直接訪問直接訪問OSOS的系統(tǒng)程序和數(shù)據(jù)的系統(tǒng)程序和數(shù)據(jù), , 只能用只能用系統(tǒng)調(diào)用訪問系統(tǒng)調(diào)用訪問。2.5 系統(tǒng)調(diào)用系統(tǒng)調(diào)用n系統(tǒng)調(diào)用的實(shí)現(xiàn)過程系統(tǒng)調(diào)用的實(shí)現(xiàn)過程 需要有一個(gè)類似于硬件中斷處理的處理需要有一個(gè)類似于硬件中斷處理的處理機(jī)構(gòu)(機(jī)構(gòu)(陷入硬件機(jī)構(gòu)陷入硬件機(jī)構(gòu))。當(dāng)用戶使用操作系當(dāng)用戶使用操作系統(tǒng)調(diào)用時(shí),產(chǎn)生一條相應(yīng)的指令,處理機(jī)在統(tǒng)調(diào)用時(shí),產(chǎn)生一條相應(yīng)的指令,處理機(jī)在執(zhí)行到該
20、指令時(shí)發(fā)生相應(yīng)的中斷,并發(fā)出有執(zhí)行到該指令時(shí)發(fā)生相應(yīng)的中斷,并發(fā)出有關(guān)的信號(hào)給該處理機(jī)構(gòu),該處理機(jī)構(gòu)在收到關(guān)的信號(hào)給該處理機(jī)構(gòu),該處理機(jī)構(gòu)在收到了處理機(jī)發(fā)來的信號(hào)后,啟動(dòng)相關(guān)的處理程了處理機(jī)發(fā)來的信號(hào)后,啟動(dòng)相關(guān)的處理程序去完成該系統(tǒng)調(diào)用所要求的功能。序去完成該系統(tǒng)調(diào)用所要求的功能。陷阱處理機(jī)構(gòu)、陷阱指令陷阱處理機(jī)構(gòu)、陷阱指令n在系統(tǒng)中為控制系統(tǒng)調(diào)用服務(wù)的機(jī)構(gòu)稱為在系統(tǒng)中為控制系統(tǒng)調(diào)用服務(wù)的機(jī)構(gòu)稱為陷陷阱阱(trap)處理機(jī)構(gòu)處理機(jī)構(gòu)。n由于系統(tǒng)調(diào)用引起處理機(jī)中斷的指令稱為由于系統(tǒng)調(diào)用引起處理機(jī)中斷的指令稱為陷陷阱指令阱指令(或稱或稱訪管指令訪管指令)。n在操作系統(tǒng)中,每個(gè)系統(tǒng)調(diào)用都對(duì)應(yīng)一個(gè)事
21、先給在操作系統(tǒng)中,每個(gè)系統(tǒng)調(diào)用都對(duì)應(yīng)一個(gè)事先給定的功能號(hào),定的功能號(hào),在陷阱指令中必須包括對(duì)應(yīng)系統(tǒng)調(diào)在陷阱指令中必須包括對(duì)應(yīng)系統(tǒng)調(diào)用的功能號(hào)。用的功能號(hào)。n在有些陷阱指令中,還帶有傳遞給陷阱處理機(jī)構(gòu)在有些陷阱指令中,還帶有傳遞給陷阱處理機(jī)構(gòu)和內(nèi)部處理程序的有關(guān)參數(shù)。和內(nèi)部處理程序的有關(guān)參數(shù)。陷阱處理機(jī)構(gòu)、陷阱指令陷阱處理機(jī)構(gòu)、陷阱指令n必須必須為為實(shí)現(xiàn)各種系統(tǒng)調(diào)用功能的實(shí)現(xiàn)各種系統(tǒng)調(diào)用功能的子程序子程序編造編造入口地址表入口地址表,每個(gè),每個(gè)入口地址入口地址都都與與相應(yīng)的相應(yīng)的系統(tǒng)系統(tǒng)子程序名子程序名對(duì)應(yīng)對(duì)應(yīng)。n由由陷阱處理程序陷阱處理程序把把陷阱指令陷阱指令中所包含的中所包含的功能功能號(hào)號(hào)與
22、該與該入口地址表入口地址表中的中的有關(guān)項(xiàng)對(duì)應(yīng)有關(guān)項(xiàng)對(duì)應(yīng)起來,從起來,從而而由由系統(tǒng)調(diào)用系統(tǒng)調(diào)用功能號(hào)驅(qū)動(dòng)功能號(hào)驅(qū)動(dòng)有關(guān)有關(guān)系統(tǒng)子程序執(zhí)系統(tǒng)子程序執(zhí)行。行。陷阱處理機(jī)構(gòu)、陷阱指令陷阱處理機(jī)構(gòu)、陷阱指令n在進(jìn)入系統(tǒng)調(diào)用處理之前,陷阱處理機(jī)構(gòu)要在進(jìn)入系統(tǒng)調(diào)用處理之前,陷阱處理機(jī)構(gòu)要保存處理機(jī)現(xiàn)場(chǎng)保存處理機(jī)現(xiàn)場(chǎng)。在系統(tǒng)調(diào)用處理結(jié)束之后,。在系統(tǒng)調(diào)用處理結(jié)束之后,陷阱處理機(jī)構(gòu)還要陷阱處理機(jī)構(gòu)還要恢復(fù)處理機(jī)現(xiàn)場(chǎng)恢復(fù)處理機(jī)現(xiàn)場(chǎng)。n操作系統(tǒng)中,操作系統(tǒng)中,處理機(jī)的現(xiàn)場(chǎng)一般被保護(hù)在特處理機(jī)的現(xiàn)場(chǎng)一般被保護(hù)在特定的內(nèi)存區(qū)或寄存器中定的內(nèi)存區(qū)或寄存器中。圖圖2.5 系統(tǒng)調(diào)用的處理過程系統(tǒng)調(diào)用的處理過程系統(tǒng)調(diào)用的參數(shù)
23、傳遞系統(tǒng)調(diào)用的參數(shù)傳遞n不同的系統(tǒng)調(diào)用需要傳遞給系統(tǒng)子程序以不不同的系統(tǒng)調(diào)用需要傳遞給系統(tǒng)子程序以不同的參數(shù)。系統(tǒng)調(diào)用的執(zhí)行結(jié)果也要以參數(shù)同的參數(shù)。系統(tǒng)調(diào)用的執(zhí)行結(jié)果也要以參數(shù)形式返回給用戶程序。形式返回給用戶程序。n用戶程序和系統(tǒng)程序參數(shù)傳遞實(shí)現(xiàn)方法:用戶程序和系統(tǒng)程序參數(shù)傳遞實(shí)現(xiàn)方法:n由陷阱指令自帶參數(shù)由陷阱指令自帶參數(shù)。只能自帶極有限的幾個(gè)參。只能自帶極有限的幾個(gè)參數(shù)進(jìn)入系統(tǒng)內(nèi)部。數(shù)進(jìn)入系統(tǒng)內(nèi)部。n使用有關(guān)通用寄存器來傳遞參數(shù)使用有關(guān)通用寄存器來傳遞參數(shù)。寄存器長(zhǎng)度也。寄存器長(zhǎng)度也是較短的,無法傳遞較多的參數(shù)。因此,在系統(tǒng)是較短的,無法傳遞較多的參數(shù)。因此,在系統(tǒng)調(diào)用較多的系統(tǒng)中,大多
24、在內(nèi)存中開辟專用堆棧調(diào)用較多的系統(tǒng)中,大多在內(nèi)存中開辟專用堆棧區(qū)來傳遞參數(shù)。區(qū)來傳遞參數(shù)。系統(tǒng)態(tài)、用戶態(tài)系統(tǒng)態(tài)、用戶態(tài)n處理器運(yùn)行系統(tǒng)程序的狀態(tài)稱為處理器運(yùn)行系統(tǒng)程序的狀態(tài)稱為系統(tǒng)態(tài)系統(tǒng)態(tài)(核(核心態(tài)、管態(tài)、特權(quán)狀態(tài));心態(tài)、管態(tài)、特權(quán)狀態(tài));n處理器運(yùn)行用戶程序的狀態(tài)為處理器運(yùn)行用戶程序的狀態(tài)為用戶態(tài)用戶態(tài)(算態(tài)、(算態(tài)、目態(tài))。目態(tài))。n通常在程序的狀態(tài)字通常在程序的狀態(tài)字PSWPSW中設(shè)置。中設(shè)置。n系統(tǒng)調(diào)用指令將系統(tǒng)轉(zhuǎn)入系統(tǒng)態(tài)。系統(tǒng)調(diào)用指令將系統(tǒng)轉(zhuǎn)入系統(tǒng)態(tài)。系統(tǒng)調(diào)用與一般過程調(diào)用的比較系統(tǒng)調(diào)用與一般過程調(diào)用的比較n相同點(diǎn)相同點(diǎn): : 改變指令流程改變指令流程, ,轉(zhuǎn)去執(zhí)行公用程序段。轉(zhuǎn)
25、去執(zhí)行公用程序段。n不同點(diǎn):不同點(diǎn):n一般過程調(diào)用一般過程調(diào)用, ,調(diào)用程序和被調(diào)用程序都運(yùn)行在調(diào)用程序和被調(diào)用程序都運(yùn)行在相同狀態(tài)相同狀態(tài)( (用戶態(tài)或系統(tǒng)態(tài)用戶態(tài)或系統(tǒng)態(tài)) );而系統(tǒng)調(diào)用;而系統(tǒng)調(diào)用, , 調(diào)用調(diào)用程序在用戶態(tài)程序在用戶態(tài), ,被調(diào)用程序在系統(tǒng)態(tài)。被調(diào)用程序在系統(tǒng)態(tài)。n一般過程調(diào)用調(diào)用時(shí)不涉及系統(tǒng)狀態(tài)轉(zhuǎn)換一般過程調(diào)用調(diào)用時(shí)不涉及系統(tǒng)狀態(tài)轉(zhuǎn)換, ,直接直接轉(zhuǎn)向被調(diào)用過程;而系統(tǒng)調(diào)用調(diào)用時(shí)涉及系統(tǒng)狀轉(zhuǎn)向被調(diào)用過程;而系統(tǒng)調(diào)用調(diào)用時(shí)涉及系統(tǒng)狀態(tài)的轉(zhuǎn)換態(tài)的轉(zhuǎn)換, , 不允許由調(diào)用過程直接轉(zhuǎn)向被調(diào)用過不允許由調(diào)用過程直接轉(zhuǎn)向被調(diào)用過程程, , 要先通過類似于硬件中斷處理的要先通過類
26、似于硬件中斷處理的處理機(jī)制處理機(jī)制由由用戶態(tài)轉(zhuǎn)換為系統(tǒng)態(tài)用戶態(tài)轉(zhuǎn)換為系統(tǒng)態(tài), , 經(jīng)經(jīng) OS OS 核心分析后核心分析后, , 再轉(zhuǎn)再轉(zhuǎn)向相應(yīng)的系統(tǒng)調(diào)用處理子程序。向相應(yīng)的系統(tǒng)調(diào)用處理子程序。2.6 Linux與與Windows的系統(tǒng)調(diào)用的系統(tǒng)調(diào)用n2.6.1 Linux的系統(tǒng)調(diào)用的系統(tǒng)調(diào)用n2.6.2 Windows的系統(tǒng)調(diào)用的系統(tǒng)調(diào)用open()()nopen()() 打開文件打開文件 表頭文件表頭文件: #include #include #include int open( const char * pathname, int flags);int open( const char *
27、 pathname, int flags, mode_t mode);n參數(shù)說明參數(shù)說明: pathname:要打開的文件名:要打開的文件名(包含路徑名稱包含路徑名稱,缺省是缺省是認(rèn)為在當(dāng)前路徑下面認(rèn)為在當(dāng)前路徑下面). flagsflags 所能使用的標(biāo)志可以是以下的組合所能使用的標(biāo)志可以是以下的組合:O_RDONLY :以只讀方式打開文件以只讀方式打開文件O_WRONLY :以只寫方式打開文件以只寫方式打開文件O_RDWR :以可讀寫方式打開文件:以可讀寫方式打開文件上述三種標(biāo)志是互斥的,也就是不可同時(shí)使用,但可與下列的上述三種標(biāo)志是互斥的,也就是不可同時(shí)使用,但可與下列的標(biāo)志利用標(biāo)志利用
28、OR(|)運(yùn)算符組合。運(yùn)算符組合。O_CREAT:若欲打開的文件不存在則自動(dòng)建立該文件。若欲打開的文件不存在則自動(dòng)建立該文件。O_TRUNC:若文件存在并且以可寫的方式打開時(shí),此標(biāo)志會(huì)若文件存在并且以可寫的方式打開時(shí),此標(biāo)志會(huì)令文件長(zhǎng)度清為令文件長(zhǎng)度清為0,而原來存于該文件的資料也會(huì)消失。,而原來存于該文件的資料也會(huì)消失。 O_EXCL:如果:如果O_CREAT 也被設(shè)置,此指令會(huì)去檢查文件是也被設(shè)置,此指令會(huì)去檢查文件是否存在。文件若不否存在。文件若不 存在則建立該文件,否則將導(dǎo)致打開文存在則建立該文件,否則將導(dǎo)致打開文件錯(cuò)誤。此外,若件錯(cuò)誤。此外,若O_CREAT與與O_EXCL同時(shí)設(shè)置,
29、并且欲同時(shí)設(shè)置,并且欲打開的文件為符號(hào)連接,則會(huì)打開文件失敗。打開的文件為符號(hào)連接,則會(huì)打開文件失敗。flagsnO_NOCTTY:如果欲打開的文件為終端機(jī)設(shè)備時(shí),則不會(huì):如果欲打開的文件為終端機(jī)設(shè)備時(shí),則不會(huì)將該終端機(jī)當(dāng)成進(jìn)程控制終端機(jī)。將該終端機(jī)當(dāng)成進(jìn)程控制終端機(jī)。nO_APPEND :當(dāng)讀寫文件時(shí)會(huì)從文件尾開始移動(dòng),也就是:當(dāng)讀寫文件時(shí)會(huì)從文件尾開始移動(dòng),也就是所寫入的數(shù)據(jù)會(huì)以附所寫入的數(shù)據(jù)會(huì)以附 加的方式加入到文件后面。加的方式加入到文件后面。nO_NONBLOCK: 以不可阻斷的方式打開文件,也就是無以不可阻斷的方式打開文件,也就是無論有無數(shù)據(jù)讀取或等待,都會(huì)立即返回進(jìn)程之中。論有無
30、數(shù)據(jù)讀取或等待,都會(huì)立即返回進(jìn)程之中。nO_NDELAY :同:同O_NONBLOCK。nO_SYNC :以同步的方式打開文件。:以同步的方式打開文件。nO_NOFOLLOW: 如果參數(shù)如果參數(shù)pathname 所指的文件為一符所指的文件為一符號(hào)連接,則會(huì)令打開文件失敗。號(hào)連接,則會(huì)令打開文件失敗。nO_DIRECTORY :如果參數(shù):如果參數(shù)pathname 所指的文件并非為所指的文件并非為一目錄,則會(huì)令打開文一目錄,則會(huì)令打開文 件失敗。件失敗。moden如果如果flagflag使用了使用了O_CREATEO_CREATE標(biāo)志標(biāo)志, ,則要使用則要使用openopen的第二種形式的第二種形
31、式. .還要指定還要指定modemode標(biāo)志標(biāo)志, ,用來表示文件的訪問權(quán)限用來表示文件的訪問權(quán)限.mode.mode可以是以可以是以下情況的組合下情況的組合. - S_IRUSR 用戶可以讀用戶可以讀 S_IWUSR 用戶可以寫用戶可以寫 S_IXUSR 用戶可以執(zhí)行用戶可以執(zhí)行 S_IRWXU 用戶可以讀寫執(zhí)行用戶可以讀寫執(zhí)行 - S_IRGRP 組可以讀組可以讀 S_IWGRP 組可以寫組可以寫 S_IXGRP 組可以執(zhí)行組可以執(zhí)行 S_IRWXG 組可以讀寫執(zhí)行組可以讀寫執(zhí)行 - S_IROTH 其他人可以讀其他人可以讀 S_IWOTH 其他人可以寫其他人可以寫 S_IXOTH 其他人
32、可以執(zhí)行其他人可以執(zhí)行 S_IRWXO 其他人可以讀寫執(zhí)行其他人可以讀寫執(zhí)行 - S_ISUID 設(shè)置用戶執(zhí)行設(shè)置用戶執(zhí)行ID S_ISGID 設(shè)置組的執(zhí)行設(shè)置組的執(zhí)行ID - 返回值返回值n若所有欲核查的權(quán)限都通過了檢查則返回若所有欲核查的權(quán)限都通過了檢查則返回0 值,表示成功,只要有一個(gè)權(quán)限被禁止則返值,表示成功,只要有一個(gè)權(quán)限被禁止則返回回-1。read()()nread()由已打開的文件讀取數(shù)據(jù)()由已打開的文件讀取數(shù)據(jù)ssize_t read(int fd,void * buf ,size_t count);read()會(huì)把參數(shù)會(huì)把參數(shù)fd 所指的文件傳送所指的文件傳送count個(gè)字
33、節(jié)到個(gè)字節(jié)到buf指針?biāo)傅木彌_區(qū)中。指針?biāo)傅木彌_區(qū)中。n若參數(shù)若參數(shù) count為為0,則,則read()不會(huì)有作用并返回不會(huì)有作用并返回0。返回值為實(shí)際讀取到的字節(jié)數(shù),如果返回返回值為實(shí)際讀取到的字節(jié)數(shù),如果返回 0,表示,表示已到達(dá)文件尾或是無可讀取的數(shù)據(jù),此外文件讀寫已到達(dá)文件尾或是無可讀取的數(shù)據(jù),此外文件讀寫位置會(huì)隨讀取到的字節(jié)移動(dòng)。位置會(huì)隨讀取到的字節(jié)移動(dòng)。n 參數(shù)說明參數(shù)說明: 參數(shù)參數(shù)fd為先前由為先前由open()或或creat()所返所返回的值。回的值。write()()nwrite()將數(shù)據(jù)寫入已打開的文件()將數(shù)據(jù)寫入已打開的文件ssize_t write (int
34、fd,const void * buf,size_t count); write()會(huì)把參數(shù)會(huì)把參數(shù)buf所指的內(nèi)存寫入所指的內(nèi)存寫入count個(gè)字節(jié)到個(gè)字節(jié)到參數(shù)參數(shù)fd所指的文件內(nèi)。所指的文件內(nèi)。 返回值:如果順利返回值:如果順利write()會(huì)返回實(shí)際寫入的字節(jié)數(shù)。會(huì)返回實(shí)際寫入的字節(jié)數(shù)。當(dāng)有錯(cuò)誤發(fā)生時(shí)則返回當(dāng)有錯(cuò)誤發(fā)生時(shí)則返回-1,錯(cuò)誤代,錯(cuò)誤代 碼存入碼存入errno中。中。close()()nclose()關(guān)閉文件()關(guān)閉文件 定義函數(shù)定義函數(shù): int close(int fd); 參數(shù)說明參數(shù)說明: 參數(shù)參數(shù)fd為先前由為先前由open()或或creat()所返回的值。所返回的
35、值。 返回值:返回值: 若文件順利關(guān)閉則返回若文件順利關(guān)閉則返回0,發(fā)生,發(fā)生錯(cuò)誤時(shí)返回錯(cuò)誤時(shí)返回-1。WinMainnWinMain函數(shù)的原型聲明如下:函數(shù)的原型聲明如下:int WINAPI WinMain( HINSTANCE hInstance, / handle to current instance HINSTANCE hPrevInstance, / handle to previous instance LPSTR lpCmdLine, / command line int nCmdShow / show state);nWinMain函數(shù)接收函數(shù)接收4個(gè)參數(shù),這些參數(shù)都是在系
36、統(tǒng)調(diào)用個(gè)參數(shù),這些參數(shù)都是在系統(tǒng)調(diào)用WinMain函數(shù)函數(shù)時(shí),傳遞給應(yīng)用程序的。時(shí),傳遞給應(yīng)用程序的。n第一個(gè)參數(shù)第一個(gè)參數(shù)hInstance表示該程序當(dāng)前運(yùn)行的實(shí)例的句柄,這是一個(gè)數(shù)表示該程序當(dāng)前運(yùn)行的實(shí)例的句柄,這是一個(gè)數(shù)值。當(dāng)程序在值。當(dāng)程序在Windows下運(yùn)行時(shí),它唯一標(biāo)識(shí)運(yùn)行中的實(shí)例(注意,下運(yùn)行時(shí),它唯一標(biāo)識(shí)運(yùn)行中的實(shí)例(注意,只有運(yùn)行中的程序?qū)嵗?,才有?shí)例句柄)。一個(gè)應(yīng)用程序可以運(yùn)行多個(gè)只有運(yùn)行中的程序?qū)嵗?,才有?shí)例句柄)。一個(gè)應(yīng)用程序可以運(yùn)行多個(gè)實(shí)例,每運(yùn)行一個(gè)實(shí)例,系統(tǒng)都會(huì)給該實(shí)例分配一個(gè)句柄值,并通過實(shí)例,每運(yùn)行一個(gè)實(shí)例,系統(tǒng)都會(huì)給該實(shí)例分配一個(gè)句柄值,并通過hInstance參數(shù)傳遞給參數(shù)傳遞給WinMain函數(shù)。函數(shù)。n第二個(gè)參數(shù)第二個(gè)參數(shù)hPrevInstance表示當(dāng)前實(shí)例的前一個(gè)實(shí)例的句柄。通過查表示當(dāng)前實(shí)例的前一個(gè)實(shí)例的句柄。通過查看看MSDN我們可以知道,在我們可以知道,在Win32環(huán)境下,這個(gè)參數(shù)總是環(huán)境下,這個(gè)參數(shù)總是NULL,即在,即在Win32環(huán)境下,這個(gè)參數(shù)不再起作用。環(huán)境下,這個(gè)參數(shù)不再起作用。n第三個(gè)參數(shù)第三個(gè)參數(shù)lpCmdLine是一個(gè)字符串,里面包含有傳遞給是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度船舶安全監(jiān)控系統(tǒng)升級(jí)改造合同3篇
- 2025年度個(gè)人專利技術(shù)授權(quán)委托合同2篇
- 二零二五年度企業(yè)并購(gòu)股權(quán)質(zhì)押融資合同4篇
- 2025年度廠房線路改造與智能控制系統(tǒng)集成合同范本4篇
- 二零二五年度打井工程后期維護(hù)合同4篇
- 2025年度個(gè)人教育培訓(xùn)機(jī)構(gòu)投資合同4篇
- 二零二五年度苗木苗圃定向種植與生物質(zhì)能源合同范本3篇
- 2025年度智慧城市基礎(chǔ)設(shè)施農(nóng)民工勞務(wù)合同4篇
- 2025年度大數(shù)據(jù)分析服務(wù)公司并購(gòu)合同4篇
- 二零二五年度水利水電工程土方開挖與填筑承包合同4篇
- 中央2025年國(guó)務(wù)院發(fā)展研究中心有關(guān)直屬事業(yè)單位招聘19人筆試歷年參考題庫(kù)附帶答案詳解
- 2024年09月北京中信銀行北京分行社會(huì)招考(917)筆試歷年參考題庫(kù)附帶答案詳解
- 外呼合作協(xié)議
- 小學(xué)二年級(jí)100以內(nèi)進(jìn)退位加減法800道題
- 保險(xiǎn)公司2025年工作總結(jié)與2025年工作計(jì)劃
- 2024年公司領(lǐng)導(dǎo)在新年動(dòng)員會(huì)上的講話樣本(3篇)
- 眼科護(hù)理進(jìn)修專題匯報(bào)
- GB/T 33629-2024風(fēng)能發(fā)電系統(tǒng)雷電防護(hù)
- 深靜脈血栓(DVT)課件
- 2023年四川省廣元市中考數(shù)學(xué)試卷
- GB/T 19885-2005聲學(xué)隔聲間的隔聲性能測(cè)定實(shí)驗(yàn)室和現(xiàn)場(chǎng)測(cè)量
評(píng)論
0/150
提交評(píng)論