操作系統(tǒng)原理:第三章 操作系統(tǒng)結(jié)構(gòu)_第1頁
操作系統(tǒng)原理:第三章 操作系統(tǒng)結(jié)構(gòu)_第2頁
操作系統(tǒng)原理:第三章 操作系統(tǒng)結(jié)構(gòu)_第3頁
操作系統(tǒng)原理:第三章 操作系統(tǒng)結(jié)構(gòu)_第4頁
操作系統(tǒng)原理:第三章 操作系統(tǒng)結(jié)構(gòu)_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

操作系統(tǒng)概念第三章:操作系統(tǒng)結(jié)構(gòu)2本章主要內(nèi)容本章將從用戶角度、程序員角度和操作系統(tǒng)設(shè)計人員角度來分別研究操作系統(tǒng)的三個方面。系統(tǒng)組成操作系統(tǒng)服務(wù)系統(tǒng)調(diào)用系統(tǒng)程序系統(tǒng)結(jié)構(gòu)虛擬機系統(tǒng)設(shè)計與實現(xiàn)系統(tǒng)生成33.1系統(tǒng)組成進程管理內(nèi)存管理文件管理輸入/輸出系統(tǒng)管理二級存儲管理聯(lián)網(wǎng)保護系統(tǒng)命令解釋系統(tǒng)43.1.1進程管理進程指的是運行著的程序進程需要一定的資源來完成任務(wù),包括CPU時間,內(nèi)存,文件和I/O設(shè)備OS負責(zé)以下與進程管理有關(guān)的活動創(chuàng)建和刪除用戶進程和系統(tǒng)進程懸掛(暫停)和繼續(xù)進程提供進程同步機制提供進程通信機制提供死鎖處理機制53.1.2內(nèi)存管理內(nèi)存是一字節(jié)或字的一個大的陣列,每個字或字節(jié)都有自己的地址。內(nèi)存是可以被CPU和I/O設(shè)備所共同快速訪問的數(shù)據(jù)的倉庫內(nèi)存是易失性的存儲設(shè)備。在系統(tǒng)失敗的情況下,內(nèi)存將會丟失其內(nèi)容。OS負責(zé)以下與內(nèi)存管理相關(guān)的活動記錄內(nèi)存的哪部分正在被使用及被誰使用當內(nèi)存空間可用時,決定哪些進程可以裝入內(nèi)存根據(jù)需要分配和釋放內(nèi)存空間63.1.3文件管理為了便于使用計算機系統(tǒng),操作系統(tǒng)提供了統(tǒng)一的邏輯信息存儲觀點。操作系統(tǒng)對存儲設(shè)備的物理屬性進行了抽象,定義了邏輯存儲單元即文件。操作系統(tǒng)將文件映射到物理媒介上,并通過對這些存儲設(shè)備訪問這些文件。文件是由其創(chuàng)建者定義的一組相關(guān)信息的集合。通常,文件表示程序(源程序和目標程序)和數(shù)據(jù)OS負責(zé)以下有關(guān)文件管理的活動:創(chuàng)建和刪除文件創(chuàng)建和刪除目錄提供操作文件和目錄的原語將文件映射到二級存儲器(輔存)上在穩(wěn)定(非易失的)存儲媒介上備份文件73.1.4I/O系統(tǒng)管理操作系統(tǒng)的目標之一是為用戶隱藏特定硬件設(shè)備的特質(zhì)。只有設(shè)備驅(qū)動程序才知道被指定的設(shè)備的特質(zhì)。I/O系統(tǒng)由如下部分組成:包括緩沖器、高速緩存和脫機打印的內(nèi)存管理部分一個通用設(shè)備驅(qū)動程序的接口用于特定硬件設(shè)備的驅(qū)動程序83.1.5二級存儲管理由于內(nèi)存太小而不能容納所有數(shù)據(jù)和程序,再加上掉電后它會失去所擁有的數(shù)據(jù),計算機系統(tǒng)必須提供二級存儲器,以備份內(nèi)存。許多現(xiàn)代計算機系統(tǒng)采用磁盤作為主要在線存儲媒介來存儲程序和數(shù)據(jù)。OS負責(zé)下列有關(guān)硬盤管理的活動空閑空間管理存儲空間分配硬盤調(diào)度93.1.6聯(lián)網(wǎng)(分布式系統(tǒng))分布式系統(tǒng)是一組不共享內(nèi)存、外設(shè)和時鐘的處理器的集合。這些處理器都有各自的內(nèi)存和時鐘系統(tǒng)中的處理器通過通信網(wǎng)絡(luò)相連通信雙方需采用相同的協(xié)議分布式系統(tǒng)使得用戶能夠訪問多個系統(tǒng)資源對共享資源的訪問可以使計算加速、功能加強、提供數(shù)據(jù)可用性以及增強可靠性操作系統(tǒng)將網(wǎng)絡(luò)訪問作為文件訪問的推廣103.1.7保護系統(tǒng)保護是控制程序、進程或用戶訪問由計算機系統(tǒng)定義的資源的機制。這種保護機制必須能夠:區(qū)分已授權(quán)的和未授權(quán)的使用提供一定的方法以規(guī)定所有要進行的控制提供加強控制的方法113.1.8命令解釋系統(tǒng)許多命令通過控制語句交給操作系統(tǒng)進程創(chuàng)建和管理I/O處理二級存儲管理內(nèi)存管理文件系統(tǒng)訪問保護聯(lián)網(wǎng)用來接收與解釋控制語句的程序有不同的名稱命令行解釋器外殼(Shell,inUNIX)用戶操作系統(tǒng)接口-CLICLIallowsdirectcommandentrySometimesimplementedinkernel,sometimesbysystemsprogramSometimesmultipleflavorsimplemented–

shellsPrimarilyfetchesacommandfromuserandexecutesitSometimescommandsbuilt-in,sometimesjustnamesofprogramsIfthelatter,addingnewfeaturesdoesn’trequireshellmodificationUserOperatingSystemInterface-GUIUser-friendlydesktopmetaphorinterfaceUsuallymouse,keyboard,andmonitorIconsrepresentfiles,programs,actions,etcVariousmousebuttonsoverobjectsintheinterfacecausevariousactions(provideinformation,options,executefunction,opendirectory(knownasafolder)InventedatXeroxPARCManysystemsnowincludebothCLIandGUIinterfacesMicrosoftWindowsisGUIwithCLI“command”shellAppleMacOSXas“Aqua”GUIinterfacewithUNIXkernelunderneathandshellsavailableSolarisisCLIwithoptionalGUIinterfaces(JavaDesktop,KDE)操作系統(tǒng)提供的服務(wù)操作系統(tǒng)管理資源提供服務(wù),這些服務(wù)一部分是便于用戶使用計算機(最終目的)UI、程序的執(zhí)行、I/O操作、文件系統(tǒng)操作、通信、錯誤檢測另一部分是便于OS自己通過資源共享確保系統(tǒng)有效地運行(確保高效)資源分配、記賬、保護和安全操作系統(tǒng)服務(wù)helpfultotheuser:用戶接口

–幾乎所有的操作系統(tǒng)都具有用戶界面userinterface(UI)多種不同的形式CLI、Batch、GUI程序執(zhí)行-系統(tǒng)必須能夠?qū)⒊绦蜓b入內(nèi)存能夠運行程序,能夠結(jié)束執(zhí)行eithernormallyorabnormally(indicatingerror)I/O操作

–運行中的程序需要I/O,而這些I/O可能與某個文件或某個I/O設(shè)備有關(guān)文件系統(tǒng)操作

-程序需要讀、寫、創(chuàng)建、刪除、搜索文件和目錄,列出文件信息并進行訪問權(quán)限管理操作系統(tǒng)服務(wù)(Cont.)helpfultotheuser(Cont):通信

進程之間需要交換信息同一計算機上的兩個進程之間或者通過網(wǎng)絡(luò)連接的不同計算機的進程之間通信可通過共享內(nèi)存或者消息交換方式來實現(xiàn)錯誤檢測–

操作系統(tǒng)需要時刻知道可能出現(xiàn)的錯誤可能發(fā)生在CPU和內(nèi)存硬件、發(fā)生在IO設(shè)備,發(fā)生在用戶程序中每種類型的錯誤,操作系統(tǒng)應(yīng)當采取合適的動作和行為以保證計算的正確性和一致性調(diào)試工具可以極大地加強用戶和程序員有效使用系統(tǒng)的能力通信模型17操作系統(tǒng)服務(wù)(Cont.)ensuringtheefficientoperationofthesystemitselfviaresourcesharing資源分配–當多個用戶或多個作業(yè)同時運行時,必須為每一個分配資源不同類型的資源管理方式不同,如CPUcycles,mainmemory,andfilestorage需要特殊的分配代碼,而其他,如I/Odevices,只需要通用的請求和釋放代碼統(tǒng)計–

跟蹤記錄那些用戶使用了多少資源和什么類型的資源操作系統(tǒng)服務(wù)(Cont.)ensuringtheefficientoperationofthesystemitselfviaresourcesharing安全和保護–多進程并發(fā)執(zhí)行時,一個進程不能干預(yù)另一個進程或操作系統(tǒng)本身保護確保所有對系統(tǒng)資源的訪問是受控的系統(tǒng)外部安全需要用戶認證或鑒權(quán),以防止外部IO受到非法的訪問如果一個系統(tǒng)需要保護和安全,則系統(tǒng)中所有部分都需要進行預(yù)防。

Achainisonlyasstrongasitsweakestlink.用戶如何使用OS提供的服務(wù)站在編程的角度,用戶程序里面進行調(diào)用Systemcalls系統(tǒng)調(diào)用API應(yīng)用程序接口站在用戶的角度,用戶通過UI進行操作SystemprogramsSystemCalls系統(tǒng)調(diào)用系統(tǒng)調(diào)用提供了進程與操作系統(tǒng)之間的接口這些調(diào)用通常以匯編語言指令的形式提供有些系統(tǒng)允許高級語言直接使用系統(tǒng)調(diào)用預(yù)定義函數(shù)或子程序有些語言(如C,C++和Perl)已經(jīng)取代了匯編語言而直接用于系統(tǒng)編程向操作系統(tǒng)傳遞參數(shù)通常用三種方法通過寄存器來傳遞參數(shù)參數(shù)數(shù)量可能會比寄存器多將參數(shù)存放在內(nèi)存的塊或表中,并將塊的地址作為參數(shù)傳遞給寄存器指針將參數(shù)放在堆棧中,并通過操作系統(tǒng)彈出堆棧不限制所傳遞參數(shù)的數(shù)量或長度參數(shù)作為表傳遞22ExampleofSystemCallsSystemcallsequencetocopythecontentsofonefiletoanotherfileExampleofSystemCallsSystemcallsequencetocopythecontentsofonefiletoanotherfileExampleofSystemCallsSystemcallsequencetocopythecontentsofonefiletoanotherfileExampleofSystemCallsSystemcallsequencetocopythecontentsofonefiletoanotherfileExampleofSystemCallsSystemcallsequencetocopythecontentsofonefiletoanotherfileExampleofSystemCallsSystemcallsequencetocopythecontentsofonefiletoanotherfileExampleofSystemCallsSystemcallsequencetocopythecontentsofonefiletoanotherfileExampleofSystemCallsSystemcallsequencetocopythecontentsofonefiletoanotherfileSystemCalls系統(tǒng)調(diào)用Mostlyaccessedbyprogramsviaahigh-levelApplicationProgramInterface(API)ratherthandirectsystemcalluseThreemostcommonAPIsareWin32APIforWindows,POSIXAPIforPOSIX-basedsystems(includingvirtuallyallversionsofUNIX,Linux,andMacOSX),andJavaAPIfortheJavavirtualmachine(JVM)WhyuseAPIsratherthansystemcalls?

容易移植便于使用

(Notethatthesystem-callnamesusedthroughoutthistextaregeneric)ExampleofStandardAPIConsidertheReadFile()functionintheWin32API—afunctionforreadingfromafile

AdescriptionoftheparameterspassedtoReadFile()HANDLEfile—thefiletobereadLPVOIDbuffer—abufferwherethedatawillbereadintoandwrittenfromDWORDbytesToRead—thenumberofbytestobereadintothebufferLPDWORDbytesRead—thenumberofbytesreadduringthelastreadLPOVERLAPPEDovl—indicatesifoverlappedI/OisbeingusedSystemCallImplementation通常,每個系統(tǒng)調(diào)用有一個與其相關(guān)的數(shù)字編號系統(tǒng)調(diào)用接口根據(jù)編號維護一個列表索引系統(tǒng)調(diào)用接口invokes援用操作系統(tǒng)內(nèi)核中的系統(tǒng)調(diào)用并反饋系統(tǒng)調(diào)用的狀態(tài)以及所有的返回值調(diào)用者不需要知道系統(tǒng)調(diào)用如何實現(xiàn)只需要遵循API并了解調(diào)用完成之后,OS將如何處理絕大部分OSinterface細節(jié)被通過API隱藏

Managedbyrun-timesupportlibrary(setoffunctionsbuiltintolibrariesincludedwithcompiler)API–SystemCall–OSRelationship具體的systemcallAPI–SystemCall–OSRelationship具體的systemcallAPI–SystemCall–OSRelationshipAPI–SystemCall–OSRelationshipAPI–SystemCall–OSRelationshipStandardCLibraryExampleCprograminvokingprintf()librarycall,whichcallswrite()systemcall系統(tǒng)調(diào)用的類型進程控制:結(jié)束,中止,裝入,執(zhí)行,創(chuàng)建、終止進程等文件管理:創(chuàng)建文件,刪除文件,打開,關(guān)閉文件等設(shè)備管理:請求設(shè)備,釋放設(shè)備,讀、寫、重定位設(shè)備等信息維護:讀取時間或日期、設(shè)置時間或日期等通信:創(chuàng)建、刪除通信連接,發(fā)送、接收消息,傳遞狀態(tài)信息等40MS-DOSexecution(a)Atsystemstartup(b)runningaprogramFreeBSDRunningMultipleProgramsSystemPrograms系統(tǒng)程序系統(tǒng)程序提供了開發(fā)程序和執(zhí)行程序的方便的環(huán)境。Theycanbedividedinto:Filemanipulation文件管理Statusinformation狀態(tài)信息Filemodification文件修改Programminglanguagesupport程序語言支持Programloadingandexecution程序裝載和執(zhí)行Communications通信Applicationprograms應(yīng)用程序?qū)^大多數(shù)用戶來說,操作系統(tǒng)是通過系統(tǒng)程序來界定的,而不是實際的系統(tǒng)調(diào)用SystemPrograms方便的程序開發(fā)和執(zhí)行環(huán)境Someofthemaresimplyuserinterfacestosystemcalls;othersareconsiderablymorecomplex文件管理Create,delete,copy,rename,print,dump,list,andgenerallymanipulatefilesanddirectories狀態(tài)信息Someaskthesystemforinfo-date,time,amountofavailablememory,diskspace,numberofusersOthersprovidedetailedperformance,logging,anddebugginginformationTypically,theseprogramsformatandprinttheoutputtotheterminalorotheroutputdevicesSomesystemsimplementaregistry-usedtostoreandretrieveconfigurationinformationSystemPrograms(cont’d)文件修改TexteditorstocreateandmodifyfilesSpecialcommandstosearchcontentsoffilesorperformtransformationsofthetext程序語言支持Compilers,assemblers,debuggersandinterpreterssometimesprovided程序裝載和執(zhí)行Absoluteloaders,relocatableloaders,linkageeditors,andoverlay-loaders,debuggingsystemsforhigher-levelandmachinelanguage通信Providethemechanismforcreatingvirtualconnectionsamongprocesses,users,andcomputersystemsAllowuserstosendmessagestooneanother’sscreens,browsewebpages,sendelectronic-mailmessages,loginremotely,transferfilesfromonemachinetoanotherSystemcall、API、systemprogram不太嚴謹?shù)慕嵌瓤矗篠ystemcall是OS內(nèi)核實現(xiàn),由OS提供接口訪問API是OS提供的訪問systemcall的一種接口,他們通常在一些運行時庫中作為用戶,利用systemcall的更多是一些希望利用OS底層、同時又對OS底層更熟悉的,如設(shè)備驅(qū)動程序的撰寫者;利用API的,是普通程序編寫者Systemprogram是提供程序開發(fā)和執(zhí)行的環(huán)境,普通操作用戶SimpleStructureMS-DOS–

編寫成利用最小的空間來提供最多的功能NotdividedintomodulesAlthoughMS-DOShassomestructure,itsinterfacesandlevelsoffunctionalityarenotwellseparatedMS-DOSLayerStructureUNIXUNIX–limitedbyhardwarefunctionality,theoriginalUNIXoperatingsystemhadlimitedstructuring.UNIX系統(tǒng)由兩個獨立部分組成SystemsprogramsThekernelConsistsofeverythingbelowthesystem-callinterfaceandabovethephysicalhardwareProvidesthefilesystem,CPUscheduling,memorymanagement,andotheroperating-systemfunctions;alargenumberoffunctionsforonelevelUNIXSystemStructure分層方法LayeredApproach操作系統(tǒng)被劃分為若干層級,每一層都建立在較低層之上Thebottomlayer(layer0),isthehardware;thehighest(layerN)istheuserinterface.模塊化layersareselectedsuchthateachusesfunctions(operations)andservicesofonlylower-levellayersLayeredOperatingSystemOS/2LayerStructure微內(nèi)核系統(tǒng)結(jié)構(gòu)這種方法將所有非基本部分從內(nèi)核中移走,并將它們當做系統(tǒng)級程序和用戶級程序來實現(xiàn),用這種方法來構(gòu)建操作系統(tǒng)用戶模塊之間采用消息傳遞的方式進行通信優(yōu)點微內(nèi)核易于擴展易于提升OS至一個新的體系結(jié)構(gòu)更可靠(內(nèi)核模式中運行的代碼更少)更安全缺點用戶空間與內(nèi)核空間的通信代價較高54MacOSXStructure模塊許多現(xiàn)代操作系統(tǒng)實現(xiàn)內(nèi)核模式用面向?qū)ο蟮姆椒▋?nèi)核的組成部分相互分離任務(wù)之間的交互通過已知的接口來實現(xiàn)每個模塊在內(nèi)核中是按照需要可裝載的總之,模塊類似與分層,但模塊更具靈活性56SolarisModularApproach3.6虛擬機虛擬機采用了分層的方法。它將物理硬件和OS內(nèi)核統(tǒng)一看作為硬件虛擬機提供了與基本硬件相同的接口通過利用CPU調(diào)度和虛擬內(nèi)存技術(shù),操作系統(tǒng)能創(chuàng)建一種“幻覺”,以至于進程認為有自己的處理器和自己的(虛擬)內(nèi)存。58

物理計算機共享資源以創(chuàng)建虛擬機CPU調(diào)度能共享出CPU造成一種每個用戶都有自己的處理器的感覺假脫機和文件系統(tǒng)能提供虛擬讀卡機和虛擬行式打印機一個普通的用戶分時終端提供虛擬機操作員終端的功能59VirtualMachines(Cont.)

(a)Nonvirtualmachine(b)virtualmachineNon-virtualMachineVirtualMachine虛擬機的優(yōu)缺點通過完全保護系統(tǒng)資源,虛擬機提供了一個堅實的安全層虛擬機允許進行系統(tǒng)開發(fā)而不必中斷正常的系統(tǒng)操作但虛擬機概念很難提供真實的硬件效果61VMwareArchitectureJava虛擬機編譯后的Java程序是可以被Java虛擬機(JVM)執(zhí)行的與平臺無關(guān)的字節(jié)碼。JVM包括類裝載器類校驗器運行時解釋器JIT(Just-In-Time)編譯器能夠提高Java運行的效率63JavaVirtualMachineTheJavaVirtualMachineJava平臺66OS設(shè)計與實現(xiàn)設(shè)計和實現(xiàn)操作系統(tǒng)沒有完整的解決方案,但有些方法被證明是卓有成效的不同的操作系統(tǒng)的內(nèi)部結(jié)構(gòu)千差萬別從定義系統(tǒng)的目標和規(guī)格開始系統(tǒng)設(shè)計受到硬件選擇和系統(tǒng)類型的影響UsergoalsandSystemgoalsUsergoals–operatingsystemshouldbeconvenienttouse,easytolearn,reliable,safe,andfastSystemgoals–operatingsystemshouldbeeasytodesign,implement,andmaintain,aswellasflexible,reliable,error-free,andefficientOS設(shè)計與實現(xiàn)(Cont.)區(qū)分的重要原理

策略Policy:Whatwillbedone?

機制Mechanism:Howtodoit?機制Mechanisms決定howtodosomething,策略決定whatwillbedoneThesepa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論