版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
操作系統(tǒng)葉長青
本次課程主要內(nèi)容基本概念------關(guān)于操作系統(tǒng)的概要介紹進程管理------如何讓電腦同時運行多個程序內(nèi)存管理------如何把有限的內(nèi)存資源分給每一個程序來用
設(shè)備管理------如何組織其他設(shè)備一起工作文件管理------如何保存和管理你的數(shù)據(jù)第一章操作系統(tǒng)概論操作系統(tǒng)的主要角色:管理者:管理計算機各種資源服務(wù)者:為程序運行創(chuàng)造環(huán)境定義以及一些概念定義:操作系統(tǒng)是管理系統(tǒng)資源、控制程序執(zhí)行、改善人機界面、提供各種服務(wù),并合理組織計算機工作流程和為用戶方便而有效地使用計算機提供良好的最基本的系統(tǒng)軟件。目的:讓用戶更有效、更方便地使用計算機基本任務(wù):創(chuàng)建可供用戶使用的抽象資源,管理這些資源的并發(fā)使用,為應(yīng)用程序提供良好的運行環(huán)境現(xiàn)代計算機系統(tǒng)的結(jié)構(gòu)組成---硬件部分中央處理器(CPU)寄存器存儲器I/O設(shè)備現(xiàn)代計算機系統(tǒng)的結(jié)構(gòu)組成---軟件部分…用戶1用戶2用戶3用戶4用戶n財務(wù)系統(tǒng)航空訂票上網(wǎng)瀏覽電子商務(wù)科學(xué)計算(應(yīng)用程序)編譯程序匯編程序編輯程序數(shù)據(jù)庫(系統(tǒng)程序)操作系統(tǒng)計算機硬件……操作系統(tǒng)管理好硬件資源,屏蔽了最底層硬件接口使用上的復(fù)雜性,然后向上提供了更容易使用的接口作為一個程序來講,當(dāng)你運行的時候,你并不會直接用到硬件接口,你用到的是操作系統(tǒng)提供的接口感覺上,程序似乎是運行在操作系統(tǒng)這一臺“虛擬計算機”上計算機中的資源,存在兩個問題:數(shù)量不夠使用不方便要管理好資源,操作系統(tǒng)就要盡量解決好這兩個問題操作系統(tǒng)管理資源的方法之一:資源復(fù)用既然資源不夠,那就盡量實現(xiàn)共享空分復(fù)用共享:把資源細分成更小的單位,把這些單位分給各個進程使用典型例子:內(nèi)存,磁盤時分復(fù)用共享:資源本身不能再分,那么可以把使用它的時間細分,把時間片分給各個進程,大家輪流用典型:CPU之二:資源虛化這個技術(shù)源于以下的問題:如果大家同時都要使用一種獨占設(shè)備,怎么辦?比如多個用戶同時請求打印服務(wù)通俗地說,所謂虛化,就是創(chuàng)造出一種虛擬的資源,然后將若干個這種虛擬資源,對應(yīng)于一種實際的真實資源,進程需要使用真實資源時,只需要使用這種虛擬資源即可,由操作系統(tǒng)來負責(zé)協(xié)調(diào)各個虛擬資源同時對真實資源的訪問,進程無需關(guān)心競爭問題。典型例子:虛擬打印機SPOOLing技術(shù):將物理上的一臺獨占設(shè)備轉(zhuǎn)化成邏輯上的多臺虛擬打印機,每個進程都有自己的虛擬打印機。之三:資源抽象計算機的外圍設(shè)備,如磁盤,內(nèi)存等,都有對外的接口,但很難于直接使用,資源抽象就是為了解決這個問題思路:對內(nèi)封裝實現(xiàn)細節(jié),對外提供更方便的接口做法:創(chuàng)建軟件來屏蔽硬件資源的物理特性和接口細節(jié),簡化對硬件操作、控制和使用,使程序員在編程序時,不需要了解硬件知識,而專心于問題的解決。例如:CPU進程磁盤文件顯示器窗口物理計算機虛擬機操作系統(tǒng)中的三種基礎(chǔ)的抽象:進程抽象:對于運行的程序在CPU上的狀態(tài)的一種抽象,包括處理器狀態(tài)(程序計數(shù)器、通用寄存器、堆棧指針寄存器等)和內(nèi)存狀態(tài)虛存抽象:物理內(nèi)存被抽象成一種數(shù)組形式的虛擬主存,給進程造成獨占整個主存的假象,由操作系統(tǒng)負責(zé)管理虛擬主存到真實物理內(nèi)存的對應(yīng)。文件抽象:將磁盤、光盤的存儲介質(zhì)設(shè)備上存放的信息抽象為一個邏輯字節(jié)流,稱為“文件”,用戶通過創(chuàng)建、打開、讀寫、關(guān)閉等操作來控制文件,或者控制磁盤等的運行。抽象的好處屏蔽使用上的復(fù)雜性防止了程序員有意或無意的對資源的濫用操作系統(tǒng)的作用、功能、特性和發(fā)展歷史操作系統(tǒng)三個作用作為資源的管理者和控制者作為用戶接口和服務(wù)提供者作為擴展機或虛擬機操作系統(tǒng)的功能:處理器管理存儲器管理設(shè)備管理文件管理網(wǎng)絡(luò)與通信管理提供用戶接口處理器管理----解決如何同時運行多個程序進程控制和管理進程同步和互斥進程間通信進程死鎖的防止和解決進程調(diào)度存儲器管理---解決如何更有效地利用內(nèi)存內(nèi)存分配與回收地址變換與保護內(nèi)存共享存儲擴充設(shè)備管理---怎么使用外圍設(shè)備設(shè)備中斷管理緩沖區(qū)管理邏輯設(shè)備到真實設(shè)備的映射設(shè)備分配與回收實現(xiàn)虛擬設(shè)備文件管理---怎么保存和讀取數(shù)據(jù)提供文件的物理組織方法提供文件的邏輯組織方法文件存取和使用目錄管理文件共享和安全性控制網(wǎng)絡(luò)與通信管理---如何與另一臺計算機通信網(wǎng)絡(luò)資源管理數(shù)據(jù)通信管理網(wǎng)絡(luò)管理提供用戶接口---讓別人更容易使用自己程序接口:給程序員編程時用的接口操作接口:給使用操作系統(tǒng)的人用的接口操作系統(tǒng)特性:并發(fā)性共享性異步性并發(fā)性:指兩個或兩個以上的活動或事件在同一時間間隔內(nèi)發(fā)生好處:可以提高硬件設(shè)備的利用率,提高系統(tǒng)的效率提高并發(fā)性,目的是盡量不讓設(shè)備閑置,能夠最大限度的發(fā)揮效率共享性:指計算機系統(tǒng)中的資源可以被多個并發(fā)執(zhí)行程序共同使用目的也是盡量提高設(shè)備的利用率,提高整個系統(tǒng)的效率異步性:在操作系統(tǒng)運行期間,由于存在并行程序,會產(chǎn)生各種隨機事件,在任何可能的時間點上出現(xiàn)比如,操作系統(tǒng)隨時需要處理來自鍵盤的輸入,響應(yīng)各種設(shè)備產(chǎn)生的中斷操作系統(tǒng)的發(fā)展歷史事物的發(fā)展,總是經(jīng)歷從低到高,從簡單到復(fù)雜的發(fā)展歷程,操作系統(tǒng)的歷史并不悠久,但發(fā)展很快。大致可以分為三個階段:人工操作階段:這個階段計算機的特點:體積大,速度慢,只能用最原始的機器語言,手工操作。進行數(shù)據(jù)輸入的時候,把數(shù)據(jù)制作在卡片和紙帶上,然后手工輸入計算機程序的運行也要靠操作員開關(guān)每時刻只能運行一個程序管理程序階段:由一些程序來代替原來的手工操作,出現(xiàn)了裝入程序,匯編程序,編譯程序,鏈接程序等,并且出現(xiàn)了一些函數(shù)庫。但并未形成一套整體的操作系統(tǒng)多道程序設(shè)計與操作系統(tǒng)的形成:操作系統(tǒng)的功能,與硬件的水平息息相關(guān),早期的硬件還不具備支持多道程序設(shè)計。中斷和通道技術(shù)的出現(xiàn),使得多道程序設(shè)計成為可能,然后具有自動化,功能復(fù)雜的操作系統(tǒng)開始慢慢出現(xiàn)了總結(jié)起來,操作系統(tǒng)的發(fā)展,由以下幾個個方面的因素促進:硬件技術(shù)的發(fā)展,體系結(jié)構(gòu)的發(fā)展提高計算機系統(tǒng)的資源利用率的要求應(yīng)用需求的不斷發(fā)展針對應(yīng)用不同場合的要求,操作系統(tǒng)可以分為以下三種基本類型批處理操作系統(tǒng)分時操作系統(tǒng)實時操作系統(tǒng)批處理操作系統(tǒng):適合處理一些事先安排好步驟,無需人工干預(yù),而執(zhí)行時間長的工作,比如,計算大型的微分方程把程序,數(shù)據(jù),作業(yè)說明書組織成一個“批”,然后把批中的作業(yè)預(yù)先放入作業(yè)隊列中,由操作系統(tǒng)自動執(zhí)行。優(yōu)點:系統(tǒng)資源率高,作業(yè)吞吐量大,無需人工去過多干預(yù)缺點:作業(yè)周轉(zhuǎn)時間長,交互能力差,程序需事先調(diào)試好,運行期間若程序出錯,拿回去重調(diào)分時操作系統(tǒng):允許多個用戶同時連接到操作系統(tǒng)上,進行交互式訪問操作系統(tǒng)把時間片輪流分給每個用戶,使每個人都有機會享用操作系統(tǒng)服務(wù),確切地說,應(yīng)該是把時間片分給每個用戶的每個進程。實時操作系統(tǒng):有一些應(yīng)用場合,操作系統(tǒng)在運行時,需要及時快速地響應(yīng)來自外界的請求,對外部事件和數(shù)據(jù),需要進行快速處理并及時給予回應(yīng)典型:飛機自動駕駛系統(tǒng),導(dǎo)彈自動控制系統(tǒng),銀行業(yè)務(wù)處理系統(tǒng)等除了以上三種基本的類型外,還可以有下面一些類型:微機操作系統(tǒng):如DOS,Windows,Linux等網(wǎng)絡(luò)操作系統(tǒng):如Unix,NetWare,WindowsNT等分布式操作系統(tǒng):集中式系統(tǒng):處理和控制功能高度集中在一臺計算機上分布式系統(tǒng):由網(wǎng)絡(luò)連接多臺計算機,由各臺計算機協(xié)同工作,在整套系統(tǒng)間實現(xiàn)資源管理和任務(wù)分配,運行分布式程序操作系統(tǒng)的基本服務(wù)和接口前兩節(jié)介紹了操作系統(tǒng)的一些常規(guī)的概念,這一節(jié)要介紹操作系統(tǒng)具體應(yīng)該具有一些什么樣的服務(wù),并引出最重要的概念
----系統(tǒng)調(diào)用。操作系統(tǒng)提供的一些基本服務(wù):這里指為應(yīng)用程序的運行提供的運行環(huán)境與各種服務(wù)創(chuàng)建程序和執(zhí)行程序數(shù)據(jù)I/O和信息存取通信服務(wù)差錯檢測和處理接口:在操作系統(tǒng)中,提供有兩類接口:給編程用的接口給用戶使用操作系統(tǒng)的接口實際上,第二種接口,也是一些利用了第一種接口,編制的程序,工具等。給編程使用的接口----系統(tǒng)調(diào)用操作系統(tǒng)對外的唯一接口程序在運行時,想獲得操作系統(tǒng)的唯一方式想知道操作系統(tǒng)提供哪些功能,看它有哪些系統(tǒng)調(diào)用即可sc1sc2sc3sc4f1f2f3f4f5f6f7系統(tǒng)調(diào)用內(nèi)核函數(shù)內(nèi)核內(nèi)核提供一些列具備預(yù)定功能的內(nèi)核函數(shù),通過一組“系統(tǒng)調(diào)用”的接口對外提供服務(wù)系統(tǒng)調(diào)用把應(yīng)用程序的請求傳送至內(nèi)核,調(diào)用相應(yīng)的內(nèi)核函數(shù)完成所需的處理,將結(jié)果返回給應(yīng)用程序內(nèi)核函數(shù)可以進行修改,但系統(tǒng)調(diào)用一旦設(shè)計好了,不可以隨便更改,不然會造成上層的應(yīng)用程序運行不了,反過來,應(yīng)用程序編程,只要針對系統(tǒng)調(diào)用即可系統(tǒng)調(diào)用另一個作用:內(nèi)核服務(wù),不是想用就能用的,必須滿足一定條件,系統(tǒng)調(diào)用也負責(zé)檢查調(diào)用是否符合條件系統(tǒng)調(diào)用作用:內(nèi)核可以基于權(quán)限和規(guī)則對資源訪問進行裁決,保證系統(tǒng)的安全性系統(tǒng)調(diào)用對資源進行抽象,提供一致接口,避免用戶在使用資源時發(fā)生錯誤,且使編程效率提高32位計算機上的內(nèi)存空間分配用戶空間一用戶空間二用戶空間三用戶空間四內(nèi)核空間1G3G3G3G3G從上圖看到:程序運行時,程序空間分為用戶空間和內(nèi)核空間,用戶空間是彼此不同的,但內(nèi)核空間是相同的。應(yīng)用程序不可以直接調(diào)用內(nèi)核空間里的內(nèi)核函數(shù),想訪問的話,就必須“申請”操作系統(tǒng)服務(wù),即通過系統(tǒng)調(diào)用來使用操作系統(tǒng)服務(wù)。類比:可把銀行比作電腦系統(tǒng),玻璃后的工作區(qū)是內(nèi)核空間,大廳里是用戶空間。你要取錢,必須通過柜臺人員,審核你的賬戶,然后給你錢簡要過程:當(dāng)程序中進行系統(tǒng)調(diào)用時,會產(chǎn)生異常信號,通過中斷機制,處理器的狀態(tài)會由用戶態(tài)轉(zhuǎn)為核心態(tài),陷入內(nèi)核,執(zhí)行相應(yīng)的內(nèi)核函數(shù);當(dāng)系統(tǒng)調(diào)用實現(xiàn)完畢之后,處理器狀態(tài)重新返回用戶態(tài),控制權(quán)也交還給用戶程序。強調(diào):系統(tǒng)調(diào)用是應(yīng)用程序獲得操作系統(tǒng)服務(wù)的唯一途徑為了解決各種操作系統(tǒng)之間,可能存在不同的系統(tǒng)調(diào)用的不一致性,產(chǎn)生了一個行業(yè)標(biāo)準(zhǔn)POSIX:系統(tǒng)調(diào)用標(biāo)準(zhǔn)
PortableOperatingSystemInterfaceforComputerEnvironments
計算機環(huán)境可移植操作系統(tǒng)接口只要操作系統(tǒng)實現(xiàn)了POSIX標(biāo)準(zhǔn)規(guī)定的接口,那么,基于POSIX編寫的程序,就可以在不同的操作系統(tǒng)上實現(xiàn)可移植API、庫函數(shù)和系統(tǒng)調(diào)用系統(tǒng)調(diào)用盡管已經(jīng)對內(nèi)核服務(wù)進行了一定的抽象,但還是-----很難用因此,一般需要對系統(tǒng)調(diào)用在進行包裝,以提供更容易使用的接口,我們?nèi)粘>幊?,就是使用的這樣的接口API---ApplicationProgramInterface庫函數(shù)與API的概念差不多,都是提供經(jīng)過包裝的、更好用的接口,來為程序員編寫程序提供方便庫函數(shù)和API中,可以是對系統(tǒng)調(diào)用的包裝,也可以是對其他非系統(tǒng)調(diào)用的函數(shù)的包裝例如:Unix/Linux都會提供C語言函數(shù)庫,其中一部分函數(shù)與系統(tǒng)調(diào)用同名,他們對系統(tǒng)調(diào)用進行包裝。實際上,對POSIX的實現(xiàn),不一定是在系統(tǒng)調(diào)用這一層,也可以通過提供符合POSIX標(biāo)準(zhǔn)的函數(shù)庫或者API,而POSIX本身也沒有規(guī)定用何種方式來實現(xiàn)系統(tǒng)調(diào)用的分類:進程管理:創(chuàng)建和撤銷進程終止或異常終止進程阻塞和喚醒進程掛起和激活進程獲取和設(shè)置進程屬性文件操作:建立和刪除文件打開、關(guān)閉和讀寫文件控制文件顯示文件和目錄內(nèi)容顯示和設(shè)置文件屬性設(shè)備管理:申請和釋放設(shè)備設(shè)備I/O操作和重定向獲得和設(shè)置設(shè)備屬性控制和檢查設(shè)備狀態(tài)主存管理:申請和釋放主存增加或減少主存進程通信:建立和斷開通信連接發(fā)送和接受消息傳送狀態(tài)信息連接和斷開遠程設(shè)備信息維護獲取和設(shè)置日期及時間獲取和設(shè)置系統(tǒng)數(shù)據(jù)生成診斷和統(tǒng)計數(shù)據(jù)注意:這里的系統(tǒng)調(diào)用的功能與前面所講的操作系統(tǒng)的功能之間的小區(qū)別:系統(tǒng)調(diào)用功能是你在編程的時候可以直接拿來用的,而操作系統(tǒng)還有一些功能,是作為輔助的,程序員是不可以拿來用的,比如虛擬內(nèi)存管理,進程調(diào)度等,這些是操作系統(tǒng)用來管理資源的。Unix/Linux與Win32API部分系統(tǒng)調(diào)用的對應(yīng)關(guān)系Unix/LinuxWin32API說明forkCreateProcess創(chuàng)建進程waitpidWaitForSingleObject等待進程終止open/closeCreateFile/CloseHandle創(chuàng)建或打開文件/關(guān)閉文件read/writeReadFile/WriteFile讀寫文件lseekSetFilePointer移動文件指針mkdir/rmdirCreateDirectory/RemoveDirectory建立目錄/刪除目錄statGetFileAttributesEx獲取文件屬性系統(tǒng)調(diào)用實現(xiàn)要點:陷阱與異常處理機制:類似于硬件中斷的處理方式,當(dāng)出現(xiàn)系統(tǒng)調(diào)用時,產(chǎn)生異常,然后轉(zhuǎn)入固定的某個處理入口,實現(xiàn)控制權(quán)由用戶函數(shù)轉(zhuǎn)入內(nèi)核編寫系統(tǒng)調(diào)用服務(wù)函數(shù)設(shè)計系統(tǒng)調(diào)用入口地址表,每個入口地址都指向一個內(nèi)核函數(shù)開辟現(xiàn)場保護,保存發(fā)生系統(tǒng)調(diào)用前時的處理器現(xiàn)場系統(tǒng)調(diào)用與普通函數(shù)調(diào)用之間的區(qū)別:用起來差不多,背后的實現(xiàn)機制差別很大調(diào)用形式和實現(xiàn)方式不同被調(diào)用代碼的位置不同提供方式不同調(diào)用形式和實現(xiàn)方式不同:過程(函數(shù))使用一般調(diào)用指令,其轉(zhuǎn)向地址包含在跳轉(zhuǎn)語句中系統(tǒng)調(diào)用不包含處理程序入口,僅僅提供功能號,按功能號調(diào)用被調(diào)用代碼的位置不同:在過程(函數(shù))調(diào)用中,調(diào)用程序和被調(diào)用代碼在同一程序內(nèi),經(jīng)過連接編譯后作為目標(biāo)代碼的一部分。當(dāng)過程(函數(shù))升級或修改時,必須重新編譯連接系統(tǒng)調(diào)用的處理代碼在調(diào)用程序之外(在操作系統(tǒng)中),系統(tǒng)調(diào)用處理代碼升級或修改時,與調(diào)用程序無關(guān)提供方式不同:函數(shù)往往由編譯系統(tǒng)提供,不同編譯系統(tǒng)提供的過程(函數(shù))可以不同系統(tǒng)調(diào)用由操作系統(tǒng)提供,一旦操作系統(tǒng)設(shè)計好,系統(tǒng)調(diào)用的功能、種類與數(shù)量就固定不變了調(diào)用的實現(xiàn)不同:函數(shù)使用一般機器指令(跳轉(zhuǎn)指令)來調(diào)用過程(函數(shù)),是在用戶態(tài)運行的程序執(zhí)行系統(tǒng)調(diào)用,是通過中斷機構(gòu)來實現(xiàn)的,需要從用戶態(tài)轉(zhuǎn)變到核心態(tài),在核心態(tài)執(zhí)行給用戶使用操作系統(tǒng)的接口嚴格來說,這類接口是一些類程序和工具,在這些程序和工具的編寫,也是基于系統(tǒng)調(diào)用的,他們是為了讓用戶可以不用自己編寫程序,就可以很好的使用操作系統(tǒng)的功能有三類這樣的接口作業(yè)控制接口解釋程序?qū)嵱贸绦蛎罱忉尦绦蚪邮苡脩糨斎氲拿睿瑘?zhí)行相應(yīng)的操作,這里的命令有兩類,一類是該解釋程序自己定義的命令,另一類是一些實用程序的名字如Unix/Linux中的Shell,便是一個功能強大的命令解釋器,Shell(外殼)的得名是對應(yīng)與Kernel(內(nèi)核),是Unix/Linux上人機交互的主要方式實用程序:很多常用的功能,編制成程序,
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024裝修垃圾清運合同范本
- 2024年廢棄物處理爆破合同
- 2024家庭保姆用工合同版
- 2024年商場室內(nèi)LED廣告屏購銷合同
- 2024年工程項目質(zhì)量保證與驗收合同條款
- 二手房產(chǎn)買賣合同協(xié)議模板
- 2024年簡化版購房合同協(xié)議
- 各類維修合同范文集成
- 合同訴訟時效問題
- 2024版店鋪合租合同樣本
- 醫(yī)療設(shè)備維保服務(wù)售后服務(wù)方案
- 建筑垃圾清運服務(wù)投標(biāo)方案技術(shù)標(biāo)
- 學(xué)校食品安全課件(最終版)
- 人工橈骨頭置換手術(shù)
- 教育科學(xué)規(guī)劃開題報告《基于生活化的幼兒數(shù)學(xué)教學(xué)活動研究》
- 《網(wǎng)絡(luò)的運行和維護》課件
- 銀行消保宣傳培訓(xùn)課件
- 惡性心律失常識別與處理
- 消防安全記者采訪手冊
- 高效執(zhí)行力通用課件
- 《28.2.2 利用仰俯角解直角三角形》教案、導(dǎo)學(xué)案
評論
0/150
提交評論