操作系統(tǒng)與用戶(hù)接口課件_第1頁(yè)
操作系統(tǒng)與用戶(hù)接口課件_第2頁(yè)
操作系統(tǒng)與用戶(hù)接口課件_第3頁(yè)
操作系統(tǒng)與用戶(hù)接口課件_第4頁(yè)
操作系統(tǒng)與用戶(hù)接口課件_第5頁(yè)
已閱讀5頁(yè),還剩65頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

操作系統(tǒng)結(jié)構(gòu)操作系統(tǒng)結(jié)構(gòu)內(nèi)容操作系統(tǒng)服務(wù)用戶(hù)與操作系統(tǒng)接口系統(tǒng)調(diào)用操作系統(tǒng)結(jié)構(gòu)內(nèi)容操作系統(tǒng)服務(wù)操作系統(tǒng)服務(wù)用戶(hù)接口UserInterface命令行接口Command-LineInterface(CLI),圖形用戶(hù)接口GraphicsUserInterface(GUI)批處理Batch程序執(zhí)行

-調(diào)入一個(gè)程序進(jìn)入內(nèi)存并運(yùn)行之的系統(tǒng)能力I/O操作

-由于用戶(hù)程序不能直接執(zhí)行I/O操作,操作系統(tǒng)必須提供完成I/O操作的手段文件系統(tǒng)操縱

–程序能夠讀、寫(xiě)、創(chuàng)建和刪除文件操作系統(tǒng)服務(wù)用戶(hù)接口UserInterface操作系統(tǒng)服務(wù)通信-運(yùn)行的進(jìn)程間在同一計(jì)算機(jī)或由網(wǎng)絡(luò)連接的不同系統(tǒng)中交換信息。通過(guò)共享存儲(chǔ)器或消息傳遞實(shí)現(xiàn)出錯(cuò)檢測(cè)

–通過(guò)探測(cè)在CPU與內(nèi)存硬件中,在I/O設(shè)備中,或在用戶(hù)程序中的錯(cuò)誤,確保正確運(yùn)算資源分配-把資源分配給多個(gè)用戶(hù)或多個(gè)同時(shí)運(yùn)行的作業(yè)計(jì)帳-跟蹤和記錄用戶(hù)對(duì)資源的使用,用于帳單和統(tǒng)計(jì)保護(hù)-確保對(duì)資源的所有訪(fǎng)問(wèn)均在控制中操作系統(tǒng)服務(wù)通信-運(yùn)行的進(jìn)程間在同一計(jì)算機(jī)或由網(wǎng)絡(luò)連接操作系統(tǒng)的用戶(hù)界面(接口)操作系統(tǒng)與用戶(hù)接口命令接口CommandInterface程序接口ProgramInterface(系統(tǒng)調(diào)用)命令接口命令行用戶(hù)接口,文本界面圖形用戶(hù)接口操作系統(tǒng)的用戶(hù)界面(接口)操作系統(tǒng)與用戶(hù)接口操作系統(tǒng)的用戶(hù)界面(接口)命令行用戶(hù)界面(CommandlineUserInterfaceCUI)鍵盤(pán)輸入DOS、Linux、UNIX圖形用戶(hù)界面(GraphicUserInterfaceGUI)鼠標(biāo)輸入MacOS、OS/2、WINDOWS、Linux等程序接口系統(tǒng)調(diào)用(SystemCalls)、API系統(tǒng)調(diào)用和API的區(qū)別?操作系統(tǒng)的用戶(hù)界面(接口)命令行用戶(hù)界面(Commandl系統(tǒng)調(diào)用系統(tǒng)調(diào)用提供了進(jìn)程與操作系統(tǒng)之間的接口這些調(diào)用通常以匯編語(yǔ)言指令的形式提供有些語(yǔ)言(如C,C++和Perl)已經(jīng)取代了匯編語(yǔ)言而直接用于系統(tǒng)編程向操作系統(tǒng)傳遞參數(shù)通常用三種方法通過(guò)寄存器來(lái)傳遞參數(shù)參數(shù)數(shù)量可能會(huì)比寄存器多將參數(shù)存放在內(nèi)存的塊或表中,并將塊的地址作為參數(shù)傳遞給寄存器指針將參數(shù)放在堆棧中,并通過(guò)操作系統(tǒng)彈出堆棧不限制所傳遞參數(shù)的數(shù)量或長(zhǎng)度系統(tǒng)調(diào)用系統(tǒng)調(diào)用提供了進(jìn)程與操作系統(tǒng)之間的接口參數(shù)作為表傳遞參數(shù)作為表傳遞ExampleofStandardAPIConsidertheReadFile()functionintheWin32API—afunctionforreadingfromafile

AdescriptionoftheparameterspassedtoReadFile()HANDLEfile—thefiletobereadLPVOIDbuffer—abufferwherethedatawillbereadintoandwrittenfromDWORDbytesToRead—thenumberofbytestobereadintothebufferLPDWORDbytesRead—thenumberofbytesreadduringthelastreadLPOVERLAPPEDovl—indicatesifoverlappedI/OisbeingusedExampleofStandardAPIConside為什么需要系統(tǒng)調(diào)用系統(tǒng)調(diào)用是內(nèi)核向用戶(hù)進(jìn)程提供服務(wù)的唯一方法,應(yīng)用程序調(diào)用操作系統(tǒng)提供的功能模塊(函數(shù))。用戶(hù)程序通過(guò)系統(tǒng)調(diào)用從用戶(hù)態(tài)(usermode)切換到核心態(tài)(kernelmode),從而可以訪(fǎng)問(wèn)相應(yīng)的資源。這樣做的好處是:為用戶(hù)空間提供了一種硬件的抽象接口,使編程更加容易。有利于系統(tǒng)安全。有利于每個(gè)進(jìn)程度運(yùn)行在虛擬系統(tǒng)中,接口統(tǒng)一有利于移植。為什么需要系統(tǒng)調(diào)用系統(tǒng)調(diào)用是內(nèi)核向用戶(hù)進(jìn)程提供服務(wù)的唯一方法系統(tǒng)調(diào)用的類(lèi)型進(jìn)程控制:結(jié)束,中止,裝入,執(zhí)行,創(chuàng)建、終止進(jìn)程等文件管理:創(chuàng)建文件,刪除文件,打開(kāi),關(guān)閉文件等設(shè)備管理:請(qǐng)求設(shè)備,釋放設(shè)備,讀、寫(xiě)、重定位設(shè)備等信息維護(hù):讀取時(shí)間或日期、設(shè)置時(shí)間或日期等通信:創(chuàng)建、刪除通信連接,發(fā)送、接收消息,傳遞狀態(tài)信息等系統(tǒng)調(diào)用的類(lèi)型進(jìn)程控制:結(jié)束,中止,裝入,執(zhí)行,創(chuàng)建、終止進(jìn)系統(tǒng)調(diào)用、API和C庫(kù)應(yīng)用編程接口(API)其實(shí)是一組函數(shù)定義,這些函數(shù)說(shuō)明了如何獲得一個(gè)給定的服務(wù);而系統(tǒng)調(diào)用是通過(guò)軟中斷向內(nèi)核發(fā)出一個(gè)明確的請(qǐng)求,每個(gè)系統(tǒng)調(diào)用對(duì)應(yīng)一個(gè)封裝例程(wrapperroutine,唯一目的就是發(fā)布系統(tǒng)調(diào)用)。一些API應(yīng)用了封裝例程。API還包含各種編程接口,如:C庫(kù)函數(shù)、OpenGL編程接口等系統(tǒng)調(diào)用的實(shí)現(xiàn)是在內(nèi)核完成的,而用戶(hù)態(tài)的函數(shù)是在函數(shù)庫(kù)中實(shí)現(xiàn)的調(diào)用printf()c庫(kù)中的printf()c庫(kù)中的write()sys_write()系統(tǒng)調(diào)用應(yīng)用程序

C庫(kù)

內(nèi)核系統(tǒng)調(diào)用、API和C庫(kù)應(yīng)用編程接口(API)其實(shí)是一組函數(shù)定操作系統(tǒng)的設(shè)計(jì)操作系統(tǒng)設(shè)計(jì)有著不同于一般應(yīng)用系統(tǒng)設(shè)計(jì)的特征:復(fù)雜程度高研制周期長(zhǎng)正確性難以保證最早Uinx是1400行代碼;Windowsxp有4000萬(wàn)行代碼;fedroacore有2億多行代碼,Linuxkernel3.10有1700萬(wàn)行代碼。解決途徑:良好的操作系統(tǒng)結(jié)構(gòu)先進(jìn)的開(kāi)發(fā)方法和工程化的管理方法(軟件工程)高效的開(kāi)發(fā)工具操作系統(tǒng)的設(shè)計(jì)操作系統(tǒng)設(shè)計(jì)有著不同于一般應(yīng)用系統(tǒng)設(shè)計(jì)的特征:操作系統(tǒng)的設(shè)計(jì)考慮功能設(shè)計(jì):操作系統(tǒng)應(yīng)具備哪些功能算法設(shè)計(jì):選擇和設(shè)計(jì)滿(mǎn)足系統(tǒng)功能的算法和策略,并分析和估算其效能結(jié)構(gòu)設(shè)計(jì):選擇合適的操作系統(tǒng)結(jié)構(gòu)按照系統(tǒng)的功能和特性要求,選擇合適的結(jié)構(gòu),使用相應(yīng)的結(jié)構(gòu)設(shè)計(jì)方法將系統(tǒng)逐步地分解、抽象和綜合,使操作系統(tǒng)結(jié)構(gòu)清晰、簡(jiǎn)單、可靠、易讀、易修改,而且使用方便,適應(yīng)性強(qiáng)操作系統(tǒng)的設(shè)計(jì)考慮功能設(shè)計(jì):操作系統(tǒng)應(yīng)具備哪些功能幾種常見(jiàn)的操作系統(tǒng)結(jié)構(gòu)簡(jiǎn)單結(jié)構(gòu)層次化結(jié)構(gòu)單(宏)內(nèi)核結(jié)構(gòu)微內(nèi)核模塊(Modules)虛擬機(jī)幾種常見(jiàn)的操作系統(tǒng)結(jié)構(gòu)簡(jiǎn)單結(jié)構(gòu)簡(jiǎn)單結(jié)構(gòu)SimpleStructureMS-DOS-利用最小的空間提供最多的功能沒(méi)有被劃分成模塊盡管MS-DOS擁有一些結(jié)構(gòu),但它的接口和功能層次并沒(méi)有很好的分離開(kāi)來(lái)。簡(jiǎn)單結(jié)構(gòu)SimpleStructureMS-DOS-MS-DOSStructureMS-DOSStructureTraditionalUNIXSystemStructureTraditionalUNIXSystemStructUNIX系統(tǒng)結(jié)構(gòu)UNIX-最初受到硬件功能的限制,它由兩個(gè)獨(dú)立的部分組成內(nèi)核包括系統(tǒng)調(diào)用接口之下和物理硬件之上的所有部分內(nèi)核通過(guò)系統(tǒng)調(diào)用提供文件系統(tǒng)、CPU調(diào)度、內(nèi)存管理和其他操作系統(tǒng)功能。系統(tǒng)程序UNIX、Linux從另一個(gè)角度看也是單內(nèi)核結(jié)構(gòu)UNIX系統(tǒng)結(jié)構(gòu)UNIX-最初受到硬件功能的限制,它由兩層次結(jié)構(gòu)LayeredApproach操作系統(tǒng)分成若干層,每層建立在較低層之上。最底層(層0)是硬件,最高層(層N)是用戶(hù)接口分層法的主要優(yōu)點(diǎn)是模塊化。選擇了分層,這樣每層只能利用較低層的功能(或操作)和服務(wù)。分層法與其他方法相比其效率稍差。層次結(jié)構(gòu)LayeredApproach操作系統(tǒng)分成若干層LayeredOperatingSystemLayeredOperatingSystem單/宏內(nèi)核結(jié)構(gòu)MonolithicKernelsStructureMonolithicKernels:theentirecodeofthekernel—includingallitssubsystemssuchasmemorymanagement,filesystems,ordevicedrivers—ispackedintoasinglefile.Eachfunctionhasaccesstoallotherpartsofthekernel;EarliestandmostcommonOSarchitecture(UNIX,MS-DOS)EverycomponentoftheOSiscontainedintheKernelExamples:OS/360,VMSandLinux單/宏內(nèi)核結(jié)構(gòu)MonolithicKernelsStr微內(nèi)核結(jié)構(gòu)MicrokernelSystemStructure

這種方法將所有非基本部分從內(nèi)核中移走,并將它們當(dāng)做系統(tǒng)級(jí)程序和用戶(hù)級(jí)程序來(lái)實(shí)現(xiàn),用這種方法來(lái)構(gòu)建操作系統(tǒng)用戶(hù)模塊之間采用消息傳遞的方式進(jìn)行通信微內(nèi)核結(jié)構(gòu)MicrokernelSystemStrucMicrokernelSystemStructure

(微內(nèi)核結(jié)構(gòu))優(yōu)點(diǎn)微內(nèi)核易于擴(kuò)展易于提升OS至一個(gè)新的體系結(jié)構(gòu)更可靠(內(nèi)核模式中運(yùn)行的代碼更少)更安全缺點(diǎn)用戶(hù)空間與內(nèi)核空間的通信代價(jià)較高WindowsNT...Windows8、MacOS、Mach、L4MicrokernelSystemStructure(WindowsKernelAPUserModeKernelModeHeapServiceNetworkServiceFileServiceDisplayServiceSENDREPLYCLIENTSERVER...MicroKernelHardwareWindowsNT4.0起,采用

microkernel的架構(gòu)WindowsKernelAPUserModeKern模塊Modules許多現(xiàn)代操作系統(tǒng)實(shí)現(xiàn)內(nèi)核模塊(kernelmodules)用面向?qū)ο蟮姆椒▋?nèi)核的組成部分相互分離任務(wù)之間的交互通過(guò)已知的接口來(lái)實(shí)現(xiàn)每個(gè)模塊在內(nèi)核中是按照需要可裝載的總之,模塊類(lèi)似與分層,但模塊更具靈活性L(fǎng)inux、Solaris、MacOS模塊Modules許多現(xiàn)代操作系統(tǒng)實(shí)現(xiàn)內(nèi)核模塊(kerneSolarisModularApproachSolarisModularApproachMacOSXStructureMacOSXStructure

虛擬機(jī)virtualmachine虛擬機(jī)采用了分層的方法。它將物理硬件和OS內(nèi)核統(tǒng)一看作為硬件虛擬機(jī)提供了與基本硬件相同的接口通過(guò)利用CPU調(diào)度和虛擬內(nèi)存技術(shù),操作系統(tǒng)能創(chuàng)建一種幻覺(jué),以至于進(jìn)程認(rèn)為有自己的處理器和自己的(虛擬)內(nèi)存。物理計(jì)算機(jī)共享資源以創(chuàng)建虛擬機(jī)CPU調(diào)度能共享出CPU造成一種每個(gè)用戶(hù)都有自己的處理器的感覺(jué)假脫機(jī)和文件系統(tǒng)能提供虛擬讀卡機(jī)和虛擬行式打印機(jī)一個(gè)普通的用戶(hù)分時(shí)終端提供虛擬機(jī)操作員終端的功能virtualmachinesoftware:VMWARE、VirtualBox、VirtualPC

虛擬機(jī)virtualmachine虛擬機(jī)采用了分層的VirtualMachines(a)Non-virtualMachine(b)VirtualMachineVirtualMachines(a)Non-virtua虛擬機(jī)的優(yōu)缺點(diǎn)通過(guò)完全保護(hù)系統(tǒng)資源,虛擬機(jī)提供了一個(gè)堅(jiān)實(shí)的安全層虛擬機(jī)允許進(jìn)行系統(tǒng)開(kāi)發(fā)而不必中斷正常的系統(tǒng)操作但虛擬機(jī)概念很難提供真實(shí)的硬件效果虛擬機(jī)的優(yōu)缺點(diǎn)通過(guò)完全保護(hù)系統(tǒng)資源,虛擬機(jī)提供了一個(gè)堅(jiān)實(shí)的安習(xí)題分析1、相對(duì)于單一內(nèi)核結(jié)構(gòu),采用微內(nèi)核結(jié)構(gòu)設(shè)計(jì)和實(shí)現(xiàn)操作系統(tǒng)具有諸多好處,但是,

并不是微內(nèi)核的優(yōu)勢(shì)。 A.使系統(tǒng)更高效B.想添加系統(tǒng)服務(wù)時(shí),不必修改內(nèi)核 C.使系統(tǒng)更安全D.使系統(tǒng)更可靠2、操作系統(tǒng)中提供了一種進(jìn)程間的通信機(jī)制,把一個(gè)進(jìn)程的標(biāo)準(zhǔn)輸出與另一個(gè)進(jìn)程的標(biāo)準(zhǔn)輸入連接起來(lái),這種機(jī)制稱(chēng)為

A.重定向 B.管道 C.socket D.共享內(nèi)存習(xí)題分析1、相對(duì)于單一內(nèi)核結(jié)構(gòu),采用微內(nèi)核結(jié)構(gòu)設(shè)計(jì)和實(shí)現(xiàn)操作習(xí)題分析3、為了在通用操作系統(tǒng)管理下的計(jì)算機(jī)上運(yùn)行一個(gè)程序,需要經(jīng)歷幾個(gè)步驟。但是,

不一定需要。A.向操作系統(tǒng)預(yù)定運(yùn)行時(shí)間B.將程序裝入內(nèi)存C.確定起始地址,并從這個(gè)地址開(kāi)始執(zhí)行 D.用控制臺(tái)監(jiān)控程序執(zhí)行過(guò)程

習(xí)題分析3、為了在通用操作系統(tǒng)管理下的計(jì)算機(jī)上運(yùn)行一個(gè)程序,習(xí)題分析4、下列選擇中,

不是操作系統(tǒng)關(guān)心的主要問(wèn)題。 A.提供保護(hù)和安全機(jī)制 B.管理目錄和文件 C.提供應(yīng)用程序接口 D.提供JAVA語(yǔ)言編譯器習(xí)題分析4、下列選擇中,不是操作系EndEnd操作系統(tǒng)結(jié)構(gòu)操作系統(tǒng)結(jié)構(gòu)內(nèi)容操作系統(tǒng)服務(wù)用戶(hù)與操作系統(tǒng)接口系統(tǒng)調(diào)用操作系統(tǒng)結(jié)構(gòu)內(nèi)容操作系統(tǒng)服務(wù)操作系統(tǒng)服務(wù)用戶(hù)接口UserInterface命令行接口Command-LineInterface(CLI),圖形用戶(hù)接口GraphicsUserInterface(GUI)批處理Batch程序執(zhí)行

-調(diào)入一個(gè)程序進(jìn)入內(nèi)存并運(yùn)行之的系統(tǒng)能力I/O操作

-由于用戶(hù)程序不能直接執(zhí)行I/O操作,操作系統(tǒng)必須提供完成I/O操作的手段文件系統(tǒng)操縱

–程序能夠讀、寫(xiě)、創(chuàng)建和刪除文件操作系統(tǒng)服務(wù)用戶(hù)接口UserInterface操作系統(tǒng)服務(wù)通信-運(yùn)行的進(jìn)程間在同一計(jì)算機(jī)或由網(wǎng)絡(luò)連接的不同系統(tǒng)中交換信息。通過(guò)共享存儲(chǔ)器或消息傳遞實(shí)現(xiàn)出錯(cuò)檢測(cè)

–通過(guò)探測(cè)在CPU與內(nèi)存硬件中,在I/O設(shè)備中,或在用戶(hù)程序中的錯(cuò)誤,確保正確運(yùn)算資源分配-把資源分配給多個(gè)用戶(hù)或多個(gè)同時(shí)運(yùn)行的作業(yè)計(jì)帳-跟蹤和記錄用戶(hù)對(duì)資源的使用,用于帳單和統(tǒng)計(jì)保護(hù)-確保對(duì)資源的所有訪(fǎng)問(wèn)均在控制中操作系統(tǒng)服務(wù)通信-運(yùn)行的進(jìn)程間在同一計(jì)算機(jī)或由網(wǎng)絡(luò)連接操作系統(tǒng)的用戶(hù)界面(接口)操作系統(tǒng)與用戶(hù)接口命令接口CommandInterface程序接口ProgramInterface(系統(tǒng)調(diào)用)命令接口命令行用戶(hù)接口,文本界面圖形用戶(hù)接口操作系統(tǒng)的用戶(hù)界面(接口)操作系統(tǒng)與用戶(hù)接口操作系統(tǒng)的用戶(hù)界面(接口)命令行用戶(hù)界面(CommandlineUserInterfaceCUI)鍵盤(pán)輸入DOS、Linux、UNIX圖形用戶(hù)界面(GraphicUserInterfaceGUI)鼠標(biāo)輸入MacOS、OS/2、WINDOWS、Linux等程序接口系統(tǒng)調(diào)用(SystemCalls)、API系統(tǒng)調(diào)用和API的區(qū)別?操作系統(tǒng)的用戶(hù)界面(接口)命令行用戶(hù)界面(Commandl系統(tǒng)調(diào)用系統(tǒng)調(diào)用提供了進(jìn)程與操作系統(tǒng)之間的接口這些調(diào)用通常以匯編語(yǔ)言指令的形式提供有些語(yǔ)言(如C,C++和Perl)已經(jīng)取代了匯編語(yǔ)言而直接用于系統(tǒng)編程向操作系統(tǒng)傳遞參數(shù)通常用三種方法通過(guò)寄存器來(lái)傳遞參數(shù)參數(shù)數(shù)量可能會(huì)比寄存器多將參數(shù)存放在內(nèi)存的塊或表中,并將塊的地址作為參數(shù)傳遞給寄存器指針將參數(shù)放在堆棧中,并通過(guò)操作系統(tǒng)彈出堆棧不限制所傳遞參數(shù)的數(shù)量或長(zhǎng)度系統(tǒng)調(diào)用系統(tǒng)調(diào)用提供了進(jìn)程與操作系統(tǒng)之間的接口參數(shù)作為表傳遞參數(shù)作為表傳遞ExampleofStandardAPIConsidertheReadFile()functionintheWin32API—afunctionforreadingfromafile

AdescriptionoftheparameterspassedtoReadFile()HANDLEfile—thefiletobereadLPVOIDbuffer—abufferwherethedatawillbereadintoandwrittenfromDWORDbytesToRead—thenumberofbytestobereadintothebufferLPDWORDbytesRead—thenumberofbytesreadduringthelastreadLPOVERLAPPEDovl—indicatesifoverlappedI/OisbeingusedExampleofStandardAPIConside為什么需要系統(tǒng)調(diào)用系統(tǒng)調(diào)用是內(nèi)核向用戶(hù)進(jìn)程提供服務(wù)的唯一方法,應(yīng)用程序調(diào)用操作系統(tǒng)提供的功能模塊(函數(shù))。用戶(hù)程序通過(guò)系統(tǒng)調(diào)用從用戶(hù)態(tài)(usermode)切換到核心態(tài)(kernelmode),從而可以訪(fǎng)問(wèn)相應(yīng)的資源。這樣做的好處是:為用戶(hù)空間提供了一種硬件的抽象接口,使編程更加容易。有利于系統(tǒng)安全。有利于每個(gè)進(jìn)程度運(yùn)行在虛擬系統(tǒng)中,接口統(tǒng)一有利于移植。為什么需要系統(tǒng)調(diào)用系統(tǒng)調(diào)用是內(nèi)核向用戶(hù)進(jìn)程提供服務(wù)的唯一方法系統(tǒng)調(diào)用的類(lèi)型進(jìn)程控制:結(jié)束,中止,裝入,執(zhí)行,創(chuàng)建、終止進(jìn)程等文件管理:創(chuàng)建文件,刪除文件,打開(kāi),關(guān)閉文件等設(shè)備管理:請(qǐng)求設(shè)備,釋放設(shè)備,讀、寫(xiě)、重定位設(shè)備等信息維護(hù):讀取時(shí)間或日期、設(shè)置時(shí)間或日期等通信:創(chuàng)建、刪除通信連接,發(fā)送、接收消息,傳遞狀態(tài)信息等系統(tǒng)調(diào)用的類(lèi)型進(jìn)程控制:結(jié)束,中止,裝入,執(zhí)行,創(chuàng)建、終止進(jìn)系統(tǒng)調(diào)用、API和C庫(kù)應(yīng)用編程接口(API)其實(shí)是一組函數(shù)定義,這些函數(shù)說(shuō)明了如何獲得一個(gè)給定的服務(wù);而系統(tǒng)調(diào)用是通過(guò)軟中斷向內(nèi)核發(fā)出一個(gè)明確的請(qǐng)求,每個(gè)系統(tǒng)調(diào)用對(duì)應(yīng)一個(gè)封裝例程(wrapperroutine,唯一目的就是發(fā)布系統(tǒng)調(diào)用)。一些API應(yīng)用了封裝例程。API還包含各種編程接口,如:C庫(kù)函數(shù)、OpenGL編程接口等系統(tǒng)調(diào)用的實(shí)現(xiàn)是在內(nèi)核完成的,而用戶(hù)態(tài)的函數(shù)是在函數(shù)庫(kù)中實(shí)現(xiàn)的調(diào)用printf()c庫(kù)中的printf()c庫(kù)中的write()sys_write()系統(tǒng)調(diào)用應(yīng)用程序

C庫(kù)

內(nèi)核系統(tǒng)調(diào)用、API和C庫(kù)應(yīng)用編程接口(API)其實(shí)是一組函數(shù)定操作系統(tǒng)的設(shè)計(jì)操作系統(tǒng)設(shè)計(jì)有著不同于一般應(yīng)用系統(tǒng)設(shè)計(jì)的特征:復(fù)雜程度高研制周期長(zhǎng)正確性難以保證最早Uinx是1400行代碼;Windowsxp有4000萬(wàn)行代碼;fedroacore有2億多行代碼,Linuxkernel3.10有1700萬(wàn)行代碼。解決途徑:良好的操作系統(tǒng)結(jié)構(gòu)先進(jìn)的開(kāi)發(fā)方法和工程化的管理方法(軟件工程)高效的開(kāi)發(fā)工具操作系統(tǒng)的設(shè)計(jì)操作系統(tǒng)設(shè)計(jì)有著不同于一般應(yīng)用系統(tǒng)設(shè)計(jì)的特征:操作系統(tǒng)的設(shè)計(jì)考慮功能設(shè)計(jì):操作系統(tǒng)應(yīng)具備哪些功能算法設(shè)計(jì):選擇和設(shè)計(jì)滿(mǎn)足系統(tǒng)功能的算法和策略,并分析和估算其效能結(jié)構(gòu)設(shè)計(jì):選擇合適的操作系統(tǒng)結(jié)構(gòu)按照系統(tǒng)的功能和特性要求,選擇合適的結(jié)構(gòu),使用相應(yīng)的結(jié)構(gòu)設(shè)計(jì)方法將系統(tǒng)逐步地分解、抽象和綜合,使操作系統(tǒng)結(jié)構(gòu)清晰、簡(jiǎn)單、可靠、易讀、易修改,而且使用方便,適應(yīng)性強(qiáng)操作系統(tǒng)的設(shè)計(jì)考慮功能設(shè)計(jì):操作系統(tǒng)應(yīng)具備哪些功能幾種常見(jiàn)的操作系統(tǒng)結(jié)構(gòu)簡(jiǎn)單結(jié)構(gòu)層次化結(jié)構(gòu)單(宏)內(nèi)核結(jié)構(gòu)微內(nèi)核模塊(Modules)虛擬機(jī)幾種常見(jiàn)的操作系統(tǒng)結(jié)構(gòu)簡(jiǎn)單結(jié)構(gòu)簡(jiǎn)單結(jié)構(gòu)SimpleStructureMS-DOS-利用最小的空間提供最多的功能沒(méi)有被劃分成模塊盡管MS-DOS擁有一些結(jié)構(gòu),但它的接口和功能層次并沒(méi)有很好的分離開(kāi)來(lái)。簡(jiǎn)單結(jié)構(gòu)SimpleStructureMS-DOS-MS-DOSStructureMS-DOSStructureTraditionalUNIXSystemStructureTraditionalUNIXSystemStructUNIX系統(tǒng)結(jié)構(gòu)UNIX-最初受到硬件功能的限制,它由兩個(gè)獨(dú)立的部分組成內(nèi)核包括系統(tǒng)調(diào)用接口之下和物理硬件之上的所有部分內(nèi)核通過(guò)系統(tǒng)調(diào)用提供文件系統(tǒng)、CPU調(diào)度、內(nèi)存管理和其他操作系統(tǒng)功能。系統(tǒng)程序UNIX、Linux從另一個(gè)角度看也是單內(nèi)核結(jié)構(gòu)UNIX系統(tǒng)結(jié)構(gòu)UNIX-最初受到硬件功能的限制,它由兩層次結(jié)構(gòu)LayeredApproach操作系統(tǒng)分成若干層,每層建立在較低層之上。最底層(層0)是硬件,最高層(層N)是用戶(hù)接口分層法的主要優(yōu)點(diǎn)是模塊化。選擇了分層,這樣每層只能利用較低層的功能(或操作)和服務(wù)。分層法與其他方法相比其效率稍差。層次結(jié)構(gòu)LayeredApproach操作系統(tǒng)分成若干層LayeredOperatingSystemLayeredOperatingSystem單/宏內(nèi)核結(jié)構(gòu)MonolithicKernelsStructureMonolithicKernels:theentirecodeofthekernel—includingallitssubsystemssuchasmemorymanagement,filesystems,ordevicedrivers—ispackedintoasinglefile.Eachfunctionhasaccesstoallotherpartsofthekernel;EarliestandmostcommonOSarchitecture(UNIX,MS-DOS)EverycomponentoftheOSiscontainedintheKernelExamples:OS/360,VMSandLinux單/宏內(nèi)核結(jié)構(gòu)MonolithicKernelsStr微內(nèi)核結(jié)構(gòu)MicrokernelSystemStructure

這種方法將所有非基本部分從內(nèi)核中移走,并將它們當(dāng)做系統(tǒng)級(jí)程序和用戶(hù)級(jí)程序來(lái)實(shí)現(xiàn),用這種方法來(lái)構(gòu)建操作系統(tǒng)用戶(hù)模塊之間采用消息傳遞的方式進(jìn)行通信微內(nèi)核結(jié)構(gòu)MicrokernelSystemStrucMicrokernelSystemStructure

(微內(nèi)核結(jié)構(gòu))優(yōu)點(diǎn)微內(nèi)核易于擴(kuò)展易于提升OS至一個(gè)新的體系結(jié)構(gòu)更可靠(內(nèi)核模式中運(yùn)行的代碼更少)更安全缺點(diǎn)用戶(hù)空間與內(nèi)核空間的通信代價(jià)較高WindowsNT...Windows8、MacOS、Mach、L4MicrokernelSystemStructure(WindowsKernelAPUserModeKernelModeHeapServiceNetworkServiceFileServiceDisplayServiceSENDREPLYCLIENTSERVER...MicroKernelHardwareWindowsNT4.0起,采用

microkernel的架構(gòu)WindowsKernelAPUserModeKern模塊Modules許多現(xiàn)代操作系統(tǒng)實(shí)現(xiàn)內(nèi)核模塊(kernelmodules)用面向?qū)ο蟮姆椒▋?nèi)核的組成部分相互分離任務(wù)之間的交互通過(guò)已知的接口來(lái)實(shí)現(xiàn)每個(gè)模塊在內(nèi)核中是按照需要可裝載的總之,模塊類(lèi)似與分層,但模塊更具靈活性L(fǎng)inux、Solaris、MacOS模塊Modules許多現(xiàn)代操作系統(tǒng)實(shí)現(xiàn)內(nèi)核模塊(kerneSolarisModularApproachSolarisModularAppr

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論