国产午夜福利在线观看红一片,久久精品国产再热青青青,又硬又粗又大一区二区三区视频,中文字幕乱码免费,久久超碰97文字幕 ,中国精学生妹品射精久久

最新更新最新專題

您的位置:首頁 > ppt下載 > PPT課件 > 儀器設(shè)備PPT > 嵌入式操作系統(tǒng)論文PPT課件

嵌入式操作系統(tǒng)論文PPT課件下載

素材大。
1.20 MB
素材授權(quán):
免費下載
素材格式:
.ppt
素材上傳:
ppt
上傳時間:
2018-05-02
素材編號:
185386
素材類別:
儀器設(shè)備PPT

素材預(yù)覽

嵌入式操作系統(tǒng)論文PPT課件

這是一個關(guān)于嵌入式操作系統(tǒng)論文PPT課件,包括了操作系統(tǒng)范圍界定,操作系統(tǒng)的運行,程序的并發(fā)運行,內(nèi)存管理,外部設(shè)備管理,文件系統(tǒng)管理等內(nèi)容,嵌入式操作系統(tǒng) 補充:操作系統(tǒng)基礎(chǔ)主講教師:謝謙 xieqian@henu.edu.cn 計算機大樓501 嵌入式操作系統(tǒng)概述 A.1 操作系統(tǒng)范圍界定 A.2 操作系統(tǒng)的運行 A.3 程序的并發(fā)運行 A.4 內(nèi)存管理 A.5 外部設(shè)備管理 A.6 文件系統(tǒng)管理 A.1 操作系統(tǒng)范圍界定操作系統(tǒng)的層次認識內(nèi)核用戶態(tài)和核心態(tài)內(nèi)核對外服務(wù)接口 操作系統(tǒng)的層次用戶對操作系統(tǒng)的 印象來自對外層 軟件的操作經(jīng)驗操作系統(tǒng)課程 重點關(guān)注內(nèi)核中間層次主要 與應(yīng)用開發(fā)相關(guān)內(nèi)核是理解OS關(guān)鍵認識內(nèi)核直觀認識1:磁盤上對應(yīng)哪個(哪些)文件?Linux:vmlinuz(經(jīng)過壓縮,典型大小10MB以內(nèi))Windows:多個文件(Windows\System32目錄下)Ntoskrnl.exe、HAL.Dll、NTDll.Dll、Win32k.Sys,還有很多驅(qū)動程序模塊直觀認識2:在內(nèi)存中占據(jù)多大空間,歡迎點擊下載嵌入式操作系統(tǒng)論文PPT課件哦。

嵌入式操作系統(tǒng)論文PPT課件是由紅軟PPT免費下載網(wǎng)推薦的一款儀器設(shè)備PPT類型的PowerPoint.

嵌入式操作系統(tǒng) 補充:操作系統(tǒng)基礎(chǔ)主講教師:謝謙 xieqian@henu.edu.cn 計算機大樓501 嵌入式操作系統(tǒng)概述 A.1 操作系統(tǒng)范圍界定 A.2 操作系統(tǒng)的運行 A.3 程序的并發(fā)運行 A.4 內(nèi)存管理 A.5 外部設(shè)備管理 A.6 文件系統(tǒng)管理 A.1 操作系統(tǒng)范圍界定操作系統(tǒng)的層次認識內(nèi)核用戶態(tài)和核心態(tài)內(nèi)核對外服務(wù)接口 操作系統(tǒng)的層次用戶對操作系統(tǒng)的 印象來自對外層 軟件的操作經(jīng)驗操作系統(tǒng)課程 重點關(guān)注內(nèi)核中間層次主要 與應(yīng)用開發(fā)相關(guān)內(nèi)核是理解OS關(guān)鍵認識內(nèi)核直觀認識1:磁盤上對應(yīng)哪個(哪些)文件? Linux:vmlinuz(經(jīng)過壓縮,典型大小10MB以內(nèi)) Windows:多個文件(Windows\System32目錄下) Ntoskrnl.exe、HAL.Dll、NTDll.Dll、Win32k.Sys,還有很多驅(qū)動程序模塊直觀認識2:在內(nèi)存中占據(jù)多大空間?與硬件配置、軟件負載相關(guān)很難界定內(nèi)核占用內(nèi)存空間的具體數(shù)值真正的區(qū)分方法:內(nèi)核運行于核心態(tài)用戶態(tài)和核心態(tài)(系統(tǒng)態(tài))為什么要區(qū)分用戶態(tài)和核心態(tài)保護操作系統(tǒng)代碼免遭破壞避免應(yīng)用程序代碼相互之間干擾內(nèi)核代碼(且只有內(nèi)核代碼)運行于核心態(tài)不同的“態(tài)” 靠CPU硬件實現(xiàn) CPU寄存器中設(shè)定保護級狀態(tài)位,據(jù)此對當前指令的執(zhí)行權(quán)限進行控制系統(tǒng)啟動時一般處于非保護狀態(tài),當內(nèi)核代碼初始化時設(shè)置區(qū)分運行態(tài)并保護自身用戶態(tài)和核心態(tài)(系統(tǒng)態(tài))特權(quán)指令和非特權(quán)指令 CPU指令集中部分關(guān)系到系統(tǒng)全局的指令被歸入特權(quán)指令,只有在核心態(tài)下可執(zhí)行其他指令作為非特權(quán)指令,在核心態(tài)和用戶態(tài)均可執(zhí)行特權(quán)指令的例子:外部設(shè)備訪問、開關(guān)中斷、修改存儲器管理寄存器、停機、轉(zhuǎn)換執(zhí)行狀態(tài)等核心態(tài)的另一特權(quán):內(nèi)存訪問能力越權(quán)執(zhí)行時:產(chǎn)生異常(中斷)內(nèi)核對外服務(wù)接口:系統(tǒng)調(diào)用通過CPU和OS內(nèi)核軟硬件結(jié)合的保護機制,系統(tǒng)資源的管理權(quán)始終在內(nèi)核代碼控制下,應(yīng)用程序無法直接訪問另一方面,應(yīng)用程序又必須訪問這些資源否則應(yīng)用程序幾乎無法作任何有價值的事情,甚至無法運行因此,內(nèi)核需要在不破壞自身保護機制前提下,把應(yīng)用程序需要用到的資源服務(wù)功能以某種形式提供出來內(nèi)核對外服務(wù)接口:系統(tǒng)調(diào)用 OS內(nèi)核會選取應(yīng)用程序需要訪問的系統(tǒng)功能,以子程序(過程)方式實現(xiàn),供應(yīng)用程序調(diào)用但是不允許應(yīng)用程序采用一般的過程調(diào)用方式來直接調(diào)用這些過程,而是采用系統(tǒng)調(diào)用這種特殊的調(diào)用方式內(nèi)核對外服務(wù)接口:系統(tǒng)調(diào)用系統(tǒng)調(diào)用區(qū)別于一般的過程調(diào)用調(diào)用者和被調(diào)用者運行在不同狀態(tài),調(diào)用者在用戶態(tài)、被調(diào)用者在核心態(tài)運行調(diào)用通過特殊的指令實現(xiàn):陷入指令或軟中斷指令進入 intel芯片:int指令(Linux使用int 0x80,Windows使用int 0x2e) arm芯片:swi指令(swi 0,或swi 調(diào)用號)內(nèi)核之外,通過C函數(shù)庫對系統(tǒng)調(diào)用進行封裝,從而屏蔽這些細節(jié)內(nèi)核對外服務(wù)接口:系統(tǒng)調(diào)用系統(tǒng)調(diào)用的處理步驟 A.2 操作系統(tǒng)的運行系統(tǒng)初啟內(nèi)核正常運行:中斷驅(qū)動應(yīng)用程序的運行系統(tǒng)安裝 系統(tǒng)初啟 CPU怎樣工作? CPU正常加電時,會在時鐘信號激勵下不斷地進行取指、執(zhí)行的循環(huán)(取指令、解碼、取操作數(shù)、執(zhí)行指令、存結(jié)果等)指令要從存儲器中讀取,對應(yīng)地址由CPU內(nèi)部特定寄存器決定(PC,程序計數(shù)器) PC的改變:自動增加(順序執(zhí)行)、跳轉(zhuǎn)指令、外部中斷和內(nèi)部異常初始加電時,CPU會進入特定狀態(tài),PC也會被初始化為一個固定的值 intel芯片:實模式,F(xiàn)FFF:0000=0xFFFF0 ARM芯片:0x0 系統(tǒng)初啟基于BIOS模式計算機的啟動過程(EFI有所區(qū)別)加電,CPU初始化,到固定地址取指開始執(zhí)行,激活BIOS程序; BIOS程序檢測系統(tǒng)配置;加載MBR程序 MBR程序加載OS Loader;OS Loader加載OS 進行OS初始化:根據(jù)系統(tǒng)配置等準備系統(tǒng)表格;加載Driver,標識設(shè)備等創(chuàng)建系統(tǒng)初始進程,進而建立其它進程控制權(quán)交給調(diào)度程序,進入OS正?刂苾(nèi)核正常運行:中斷驅(qū)動當系統(tǒng)啟動完成后,根據(jù)內(nèi)核調(diào)度程序的調(diào)度結(jié)果,CPU會轉(zhuǎn)入用戶態(tài)執(zhí)行某個應(yīng)用程序的代碼,其后內(nèi)核代碼僅在需要時才會運行這種“需要”可以是:外部設(shè)備有事件發(fā)生,需要內(nèi)核代碼處理用戶態(tài)程序執(zhí)行錯誤,需要內(nèi)核代碼處理用戶態(tài)程序需要使用內(nèi)核提供的功能對內(nèi)核的“需求”通過中斷來體現(xiàn),即內(nèi)核代碼通過各種中斷入口反復(fù)執(zhí)行內(nèi)核正常運行:中斷驅(qū)動中斷機制的作用使CPU能夠轉(zhuǎn)入執(zhí)行預(yù)設(shè)的例程,以響應(yīng)突發(fā)事件或處理異常情況中斷響應(yīng) CPU中止當前指令或下一條指令;保存當前運行狀態(tài);轉(zhuǎn)入相應(yīng)處理程序(通過硬件機制自動實現(xiàn));執(zhí)行完畢后返回斷點繼續(xù)執(zhí)行中斷是實現(xiàn)OS功能的基礎(chǔ)中斷使得立即處理緊急事件成為可能中斷是實現(xiàn)處理機與外設(shè)并行的基礎(chǔ)中斷是實現(xiàn)多道程序之間調(diào)度切換的基礎(chǔ)中斷是實現(xiàn)系統(tǒng)調(diào)用的基礎(chǔ)內(nèi)核正常運行:中斷驅(qū)動 CPU的中斷源內(nèi)部:執(zhí)行指令過程中由CPU自身產(chǎn)生,包括指令異常和陷阱(軟中斷)指令外部:硬件中斷(可屏蔽中斷和不可屏蔽中斷),通過中斷控制器接到CPU的引腳內(nèi)部中斷內(nèi)存訪問相關(guān)異常是現(xiàn)代OS內(nèi)存管理的基礎(chǔ)軟中斷,是系統(tǒng)調(diào)用的唯一入口硬件中斷 I/O設(shè)備通過可屏蔽中斷通知CPU有事件發(fā)生,是設(shè)備驅(qū)動程序工作基礎(chǔ)時鐘中斷,是分時調(diào)度的觸發(fā)來源應(yīng)用程序的運行一些基本概念程序一般以二進制可執(zhí)行文件形式存在于磁盤上 CPU執(zhí)行的指令和訪問的數(shù)據(jù)須預(yù)先被裝入內(nèi)存 OS內(nèi)核要負責讀取可執(zhí)行文件裝入內(nèi)存執(zhí)行文件的格式由OS內(nèi)核裝入內(nèi)存,規(guī)定了執(zhí)行文件中必須提供的信息(如內(nèi)存區(qū)域劃分、外部模塊入口等)由編譯、鏈接程序生成,需符合OS規(guī)定的格式常見的執(zhí)行文件格式:Windows的PE,Linux的ELF,一般上述關(guān)鍵信息都存在于“文件頭部” 應(yīng)用程序的運行應(yīng)用程序運行過程中與內(nèi)核的關(guān)系最初的創(chuàng)建和裝入由另一個程序發(fā)起,OS內(nèi)核實施程序執(zhí)行過程中要時常轉(zhuǎn)入執(zhí)行內(nèi)核代碼因為需要OS內(nèi)核的服務(wù)而產(chǎn)生系統(tǒng)調(diào)用外部設(shè)備發(fā)出中斷信號程序執(zhí)行完成后,要求OS內(nèi)核結(jié)束自身 OS內(nèi)核與應(yīng)用程序的交替執(zhí)行應(yīng)用程序的運行一個簡化實例場景 Windows下通過開始菜單打開記事本程序輸入一些內(nèi)容然后保存到文件應(yīng)用程序的運行一個簡化實例分析顯示開始菜單的程序——explorer.exe explorer程序發(fā)現(xiàn)快捷方式對應(yīng)notepad.exe explorer程序發(fā)出系統(tǒng)調(diào)用,要求內(nèi)核執(zhí)行notepad.exe 內(nèi)核讀入notepad.exe文件,初始化內(nèi)存中數(shù)據(jù)結(jié)構(gòu),讀入代碼和數(shù)據(jù)內(nèi)核調(diào)度程序選定notepad程序執(zhí)行,返回用戶態(tài),從其執(zhí)行入口處開始執(zhí)行應(yīng)用程序的運行一個簡化實例分析(續(xù)) notepad程序需要OS內(nèi)核顯示其用戶界面,進行一系列的系統(tǒng)調(diào)用,完成界面顯示 notepad程序需要調(diào)用OS內(nèi)核功能來獲取輸入事件(鼠標和鍵盤),調(diào)用相應(yīng)系統(tǒng)調(diào)用如果沒有輸入事件發(fā)生(notepad程序邏輯無法繼續(xù)),OS內(nèi)核會調(diào)度CPU執(zhí)行其他程序有輸入事件發(fā)生(例如按鍵),系統(tǒng)調(diào)用返回,notepad程序獲得輸入,進行相應(yīng)處理(放入緩沖區(qū)),如有必要進一步調(diào)用系統(tǒng)調(diào)用(例如字符回顯)應(yīng)用程序的運行一個簡化實例分析(續(xù))上述獲取輸入事件、處理輸入過程反復(fù)進行如果輸入事件對應(yīng)保存文件,調(diào)用相應(yīng)系統(tǒng)調(diào)用創(chuàng)建文件,并將緩沖區(qū)內(nèi)容寫入如果輸入事件對應(yīng)退出程序,調(diào)用相應(yīng)系統(tǒng)調(diào)用,結(jié)束用戶態(tài)程序邏輯的執(zhí)行 OS內(nèi)核代碼釋放notepad程序所占據(jù)的資源,該程序運行結(jié)束 簡化:如果實際跟蹤系統(tǒng)調(diào)用會看到數(shù)目及其龐大操作系統(tǒng)安裝操作系統(tǒng)安裝的目標安裝完成后,使OS可以自行啟動 OS安裝的位置與系統(tǒng)類型、引導(dǎo)方式相關(guān)安裝的一般過程與系統(tǒng)類型相關(guān)對于通用計算機,一般安裝過程將OS部署在硬盤上,過程相對簡單、通用對于嵌入式系統(tǒng),安裝過程有較大區(qū)別,引導(dǎo)程序、操作系統(tǒng)、文件系統(tǒng)需分別安裝,一般安裝到flash存儲,要通過特殊操作方法進行部署,經(jīng)常被稱為“刷機”、“燒寫” 操作系統(tǒng)安裝通用計算機OS一般安裝過程從安裝介質(zhì)加載并啟動OS,檢測系統(tǒng)配置,運行安裝程序運行分區(qū)工具對硬盤進行分區(qū),將啟動代碼復(fù)制到硬盤特定區(qū)域(MBR,...)格式化硬盤分區(qū)(制作文件系統(tǒng)),將OS內(nèi)核及所選軟件包復(fù)制到硬盤分區(qū)對OS部件進行設(shè)置,指定啟動使用的OS內(nèi)核及相關(guān)參數(shù)重新啟動,用新安裝內(nèi)核啟動OS 進一步配置系統(tǒng)(如網(wǎng)絡(luò)設(shè)置等) A.3 程序的并發(fā)運行程序的順序執(zhí)行與并發(fā)執(zhí)行進程的引入進程的創(chuàng)建與撤銷進程的調(diào)度和切換線程的引入同步、互斥和進程間通信程序的順序執(zhí)行與并發(fā)執(zhí)行程序的順序執(zhí)行前一程序執(zhí)行完成,后一程序才能開始問題:CPU利用率低,程序在執(zhí)行過程中的I/O操作,會導(dǎo)致CPU空轉(zhuǎn)等待程序的并發(fā)執(zhí)行多個程序都裝入內(nèi)存等待執(zhí)行,當一個程序因I/O不能繼續(xù)執(zhí)行時,CPU可以轉(zhuǎn)而執(zhí)行其他程序,從而提高了CPU利用率并發(fā)概念(區(qū)別于并行):微觀看任一時刻只有一個程序在運行,宏觀看一段時間內(nèi)多個程序都在運行程序的順序執(zhí)行與并發(fā)執(zhí)行并發(fā)執(zhí)行增加了操作系統(tǒng)設(shè)計難度多個程序都裝入內(nèi)存,互相不能干擾 (屬于內(nèi)存管理功能)需要記錄內(nèi)存中程序的不同狀態(tài):有一個正在運行,有一些隨時可以運行,有一些等待I/O事件而不能執(zhí)行當運行中的程序因為I/O等原因不能繼續(xù)運行時,需要在可以運行的程序中選一個,轉(zhuǎn)去執(zhí)行新選中程序。在此過程中需要保存前一程序的執(zhí)行現(xiàn)場,保證以后能再次正確運行進程的引入當OS需要把程序的運行作為一個管理對象時,需要引入相應(yīng)的數(shù)據(jù)結(jié)構(gòu)程序在內(nèi)存中的指令和數(shù)據(jù)不能修改,否則會影響程序執(zhí)行邏輯 OS需要為每一個在內(nèi)存中的程序附加一個數(shù)據(jù)結(jié)構(gòu),由OS代碼進行修改和訪問,在其中記錄程序狀態(tài)、保存執(zhí)行現(xiàn)場等這種引入管理數(shù)據(jù)結(jié)構(gòu)后可以被OS管理的程序被稱為進程(process)進程的引入進程控制塊PCB 為管理進程所引入的數(shù)據(jù)結(jié)構(gòu),記錄了系統(tǒng)管理所需的全部信息 OS根據(jù)PCB而感知進程的存在,PCB是進程存在的唯一標志 PCB會先于程序的 載入而創(chuàng)建進程的引入 PCB的內(nèi)容進程標志符:包括唯一的進程號,以及所屬用戶號、創(chuàng)建此進程的父進程號等處理機狀態(tài)(斷點信息):進程切換時保存的處理機中各種寄存器的內(nèi)容進程調(diào)度信息:記錄了進程調(diào)度相關(guān)的信息(狀態(tài)、調(diào)度優(yōu)先級、等待事件等)其他信息:如內(nèi)存中程序區(qū)和數(shù)據(jù)區(qū)的地址,打開的資源清單,同步和通信機制等進程的引入進程的基本狀態(tài)運行就緒阻塞進程的創(chuàng)建與撤銷進程的創(chuàng)建除了個別進程在系統(tǒng)啟動時由OS內(nèi)核直接創(chuàng)建以外,其他進程都是另外進程通過系統(tǒng)調(diào)用要求內(nèi)核創(chuàng)建這種進程之間的創(chuàng)建關(guān)系形成一個樹形結(jié)構(gòu)進程的創(chuàng)建與撤銷進程的創(chuàng)建 OS內(nèi)核創(chuàng)建新進程的過程申請一個空閑的PCB 為新進程分配資源對PCB初始化將PCB插入就緒隊列返回進程號進程的創(chuàng)建與撤銷進程的撤銷進程在完成其任務(wù)后,應(yīng)該撤銷,以便釋放所占據(jù)資源正常結(jié)束的進程會主動調(diào)用進程終止系統(tǒng)調(diào)用,從而觸發(fā)進程撤銷一些程序執(zhí)行過程中發(fā)生的異常情況可能導(dǎo)致OS內(nèi)核直接撤銷進程 進程的創(chuàng)建與撤銷進程的撤銷 OS內(nèi)核撤銷進程的過程找到指定進程的PCB 回收該進程所占用的全部資源處理子孫進程(終止所有子孫進程并回收它們所占用的資源,或者“過繼”以免成為孤兒)將被終止進程的PCB從原來隊列中摘走進程的調(diào)度和切換進程調(diào)度算法調(diào)度算法的目的是在多個候選者中選出一個進程作為下面要執(zhí)行的進程不同的調(diào)度算法會影響系統(tǒng)的總體性能,是OS設(shè)計中的關(guān)鍵問題從理解OS工作機制角度出發(fā),不必關(guān)心調(diào)度算法的細節(jié)進程的調(diào)度和切換進程切換(上下文切換)當調(diào)度算法選中新進程后執(zhí)行首先保存當前進程的執(zhí)行現(xiàn)場:保存將要執(zhí)行的指令地址,把各類CPU寄存器存到PCB中特定區(qū)域然后找到新選中進程的PCB,讀取上次保存的執(zhí)行現(xiàn)場信息裝入對應(yīng)CPU寄存器,轉(zhuǎn)到上次斷點處指令開始執(zhí)行通用的進程切換程序能保證進程多次被調(diào)度執(zhí)行時除了時間間斷之外,與連續(xù)執(zhí)行的狀態(tài)完全一致進程的調(diào)度和切換進程調(diào)度的時機:調(diào)度算法何時執(zhí)行?以Unix/Linux為例,主要有兩類時機一是當前進程主動放棄CPU 進程終止,或因為請求I/O進入阻塞狀態(tài)二是OS內(nèi)核決定終止當前進程執(zhí)行中斷處理程序中發(fā)現(xiàn)需要重新調(diào)度,如當前進程時間片用完,或高優(yōu)先級進程進入就緒狀態(tài)中斷處理程序中一般不會直接調(diào)用調(diào)度算法,而是設(shè)置一個全局標志當OS內(nèi)核從核心態(tài)返回用戶態(tài)之前,會檢查該標志,如置位則調(diào)用調(diào)度程序進而切換進程進程的調(diào)度和切換進程調(diào)度方式非搶占方式處理機分配給某進程后便一直執(zhí)行,直到該進程主動放棄,OS不搶占進程的執(zhí)行搶占方式 OS內(nèi)核可根據(jù)某種原則停止當前進程的執(zhí)行,轉(zhuǎn)而執(zhí)行另一進程一般的操作系統(tǒng)內(nèi)核不可搶占,即:只有從核心態(tài)返回用戶態(tài)時才會發(fā)生進程切換一些實時OS要求內(nèi)核可搶占,以最大限度保證實時進程優(yōu)先運行。內(nèi)核搶占將大大增加OS的實現(xiàn)難度線程的引入 OS加入進程管理后,可以讓不同應(yīng)用程序并發(fā)執(zhí)行如果一個應(yīng)用程序內(nèi)部希望并發(fā)執(zhí)行時,進程模型很不方便應(yīng)用程序需要并發(fā)的例子:用word進行耗時的打印操作時還希望進行輸入處理;用瀏覽器查看同時包含動畫和音頻的網(wǎng)頁如果打印和輸入處理在不同進程,其數(shù)據(jù)區(qū)相互隔離,難以協(xié)調(diào)如果打印和輸入處理在同一進程,沒有程序在兩者之間進行通用的切換,只能在程序主循環(huán)中反復(fù)查詢,增加編程難度線程的引入 進程的角色傳統(tǒng)進程是兩種角色的混合資源分配的單位:主要表現(xiàn)為進程間的內(nèi)存隔離 CPU調(diào)度的單位:以進程為單位進行調(diào)度切換線程(Thread)的引入保留進程作為資源分配單位,以更輕量級的線程作為CPU調(diào)度單位多個線程存在于同一進程中,共享資源,獨立調(diào)度執(zhí)行多線程提高了應(yīng)用的并發(fā)能力,也加大了編程難度同步、互斥和進程間通信同步和互斥:解決并發(fā)中的問題同步:解決并發(fā)進程的協(xié)作關(guān)系例:多線程流媒體播放——下載→解碼互斥:解決并發(fā)進程的資源爭用關(guān)系例:多窗口聯(lián)機售票——查詢和售出不可交疊廣義的同步機制:包括同步和互斥同步機制早期主要針對OS內(nèi)核編程,因為并發(fā)的應(yīng)用進程之間默認內(nèi)存隔離,沒有共用資源多線程應(yīng)用編程必須考慮同步互斥同步、互斥和進程間通信進程間通信(IPC)由于不同進程間的內(nèi)存隔離,如果不同進程間需要交換信息,需要OS內(nèi)核中轉(zhuǎn)主要的高級進程間通信機制包括:共享存儲區(qū)、管道機制、消息機制同一進程的線程間因為共享內(nèi)存空間,沒有通信需求,但是有普遍的同步互斥需求對于采用進程間通信機制的不同進程,采用共享存儲區(qū)機制需要考慮同步問題,管道和消息機制自帶同步機制 A.4 內(nèi)存管理內(nèi)存管理目標和功能基本概念內(nèi)存管理方式演變基本分頁管理基于分頁的虛擬存儲管理進程地址空間的布局內(nèi)存管理目標和功能內(nèi)存管理的目標將多道程序同時裝入內(nèi)存,并使其互不干擾;盡可能提高內(nèi)存利用率和訪問效率內(nèi)存管理的功能實現(xiàn)內(nèi)存的分配和回收提供實現(xiàn)地址變換所需的信息利用外存“擴充”內(nèi)存容量實現(xiàn)存儲保護,避免越權(quán)訪問基本概念名字空間(符號地址)源程序中通過變量名和標號標識地址邏輯地址(相對地址)源程序經(jīng)匯編/編譯后形成目標代碼,通常約定模塊首地址為0,其余地址都相對于首地址而編址物理地址(絕對地址)內(nèi)存中存儲單元的地址,通過總線尋址地址轉(zhuǎn)換(地址映射) CPU執(zhí)行指令時內(nèi)部使用邏輯地址,為了正確訪問存儲單元,需將其轉(zhuǎn)換為可由總線直接尋址的物理地址,這一過程稱為地址映射內(nèi)存管理方式演變邏輯地址連續(xù)是內(nèi)存管理的基本前提 CPU執(zhí)行程序時,大多數(shù)情況下執(zhí)行一條指令后程序計數(shù)器PC自動增加若程序邏輯地址不連續(xù),則不能順序執(zhí)行早期OS采用連續(xù)分區(qū)管理方式早期CPU的內(nèi)存管理部件簡單,只能進行簡單地址映射連續(xù)的邏輯地址要求連續(xù)的物理地址現(xiàn)代OS一般采用離散分區(qū)管理可以把連續(xù)邏輯地址映射到離散物理地址離散映射可以基于定長的分頁或變長的分段基本分頁管理分頁基本思想空間劃分頁面:將用戶進程的地址空間劃分成大小相等的區(qū)域,稱為頁面(page), 從0開始編號頁框:將內(nèi)存空間也劃分成與頁面大小相等的區(qū)域,稱為頁框(frame),從0開始編號內(nèi)存分配為進程分配內(nèi)存時以頁框為單位,將進程中的編號連續(xù)的頁面裝入到多個頁框中(不需要相鄰)基本分頁管理頁面和頁框?qū)?yīng)示意基本分頁管理頁表頁表是實現(xiàn)分頁管理的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)頁表由OS設(shè)置,供CPU存儲管理部件使用作用:從頁面號到頁框號的映射頁表一般存放在內(nèi)存中頁表的基址(物理地址)及長度由頁表寄存器給出基本分頁管理分頁地址變換機構(gòu)(硬件實現(xiàn))基本分頁管理分頁地址變換機構(gòu)(硬件實現(xiàn))將邏輯地址分成頁面號和頁內(nèi)地址根據(jù)頁表寄存器中頁表起始地址和頁號查找頁表,找到對應(yīng)于該頁式地址的頁表目頁表目地址=頁表起始地址+頁面號*頁表目長度取出頁面號對應(yīng)的頁框號,和邏輯地址的頁內(nèi)地址相加形成物理地址物理地址=頁框號×頁框長度+頁內(nèi)位移量按物理地址訪問內(nèi)存基于分頁的虛擬存儲管理基本分頁管理的優(yōu)點和問題實現(xiàn)了頁框的離散分配,相對于連續(xù)分區(qū)管理,提高了物理內(nèi)存的利用率仍然要求在程序運行前把所有的指令和數(shù)據(jù)裝入內(nèi)存,這實際上并非必要局部性原理程序運行過程中,CPU訪問的邏輯地址從時間和空間兩方面都是局部化的局部性原理源自人們編程時的自然習慣基于分頁的虛擬存儲管理虛擬存儲器管理基于局部性原理,程序運行前沒有必要全部裝入內(nèi)存,僅須把將要運行的頁面裝入即可運行中如訪問的頁面未在內(nèi)存中(缺頁),再動態(tài)將該頁面調(diào)入內(nèi)存 如物理內(nèi)存已用完,則按某種置換算法將內(nèi)存中的一些頁面交換到外存虛擬存儲器是指具有請求頁調(diào)入功能和頁置換功能,能從邏輯上對內(nèi)存容量進行擴充的一種存儲器系統(tǒng)基于分頁的虛擬存儲管理請求分頁系統(tǒng)在基本分頁系統(tǒng)基礎(chǔ)上,增加了請求調(diào)頁功能、頁面置換功能所形成的頁式虛擬存儲器系統(tǒng)允許只裝入少量程序和數(shù)據(jù)頁面,便啟動運行;以后在硬件支持下通過調(diào)頁功能和置換功能,陸續(xù)將要訪問的頁面調(diào)入內(nèi)存,同時把暫不訪問的頁面換到外存 請求分頁系統(tǒng)需要硬件支持和管理軟件硬件支持:擴展頁表機制、缺頁中斷機構(gòu)和地址變換機構(gòu)管理軟件:請求調(diào)頁功能和頁置換功能的軟件基于分頁的虛擬存儲管理硬件支持:擴展頁表表目 狀態(tài)位:指示該頁是否已調(diào)入內(nèi)存(OS置/CPU用,觸發(fā)缺頁中斷)訪問位:記錄該頁在一段時間內(nèi)是否被訪問過(CPU置/OS用,選擇換出頁)修改位:表示該頁調(diào)入內(nèi)存后是否被修改過(CPU置/OS用,決定是否需寫到外存)外存地址:指出該頁在外存上的地址(OS置/OS用,調(diào)入頁面時使用)基于分頁的虛擬存儲管理硬件支持:缺頁中斷在請求分頁系統(tǒng)中,當CPU訪問的頁不在內(nèi)存時,CPU產(chǎn)生一缺頁中斷,觸發(fā)OS內(nèi)核的請求調(diào)頁代碼缺頁中斷與一般中斷的區(qū)別:在指令執(zhí)行期間產(chǎn)生和處理中斷中斷處理完后會重啟指令執(zhí)行一條指令在執(zhí)行期間,可能產(chǎn)生多次缺頁中斷 基于分頁的虛擬存儲管理管理軟件請求調(diào)頁:由缺頁中斷觸發(fā),通過讀取CPU相關(guān)寄存器,可以獲得引發(fā)缺頁的頁面號,從對應(yīng)頁表表目可獲得該頁面對應(yīng)的外存地址(來自交換區(qū)或執(zhí)行文件),分配空閑頁框后讀入,最后更新頁表表目頁面置換:頁面置換一般是當OS發(fā)現(xiàn)空閑頁框數(shù)不多時自動執(zhí)行,把最近長期不用的頁框內(nèi)容換出,標記為空閑。為了提高效率,頁面置換和請求調(diào)頁各自獨立運行,保證在調(diào)頁時總是有空閑頁框進程地址空間的布局進程的地址空間針對其邏輯地址地址空間大小與CPU架構(gòu)相關(guān),例如:32位CPU最大4GB(232)不同OS的進程地址空間分配可以不同進程地址空間的布局 Linux下不同進程地址空間映射內(nèi)核地址空間部分固定且連續(xù)映射,所有進程中此區(qū)域共享(即頁表中這一部分內(nèi)容相同)不同進程用戶地址空間部分映射各不相同 A.5 外部設(shè)備管理對設(shè)備硬件的訪問設(shè)備分類設(shè)備獨立性設(shè)備驅(qū)動程序簡化示例:Unix設(shè)備訪問過程對設(shè)備硬件的訪問 CPU對外部設(shè)備的訪問外部設(shè)備一般通過設(shè)備控制器進行管理設(shè)備控制器的管理寄存器使CPU可以控制設(shè)備動作、交換數(shù)據(jù)、查詢狀態(tài)控制寄存器:CPU寫,用于控制器接收命令數(shù)據(jù)寄存器:雙向/單向訪問,進行數(shù)據(jù)交換狀態(tài)寄存器:CPU讀,用于查詢設(shè)備當前狀態(tài)設(shè)備控制器的管理寄存器編址獨立的I/O空間編址:CPU有專用IN、OUT指令與內(nèi)存一起編址對設(shè)備硬件的訪問 I/O控制方式問題由來:高速CPU如何適應(yīng)低速設(shè)備輪詢方式 CPU循環(huán)讀取狀態(tài)寄存器,確定外部設(shè)備處于特定狀態(tài)時才寫控制寄存器或讀寫數(shù)據(jù)寄存器 CPU在輪詢期間,不能執(zhí)行其他程序中斷方式外部設(shè)備發(fā)生的事件通過CPU中斷線通知 CPU在向控制寄存器寫入,啟動設(shè)備動作后即可轉(zhuǎn)入其他程序執(zhí)行,CPU和I/O設(shè)備并行中斷處理程序一般在設(shè)備驅(qū)動程序中提供對設(shè)備硬件的訪問 I/O控制方式 DMA方式對于傳輸大量數(shù)據(jù)的磁盤、網(wǎng)卡而言,雖然中斷機制使CPU和設(shè)備可以并行工作,但是從設(shè)備控制器上的緩沖區(qū)到內(nèi)存之間的數(shù)據(jù)交換如果還是需要CPU介入,會降低CPU利用率引入DMA機制用于提高大量數(shù)據(jù)從設(shè)備控制器到內(nèi)存的交換,DMA控制器利用CPU訪問內(nèi)存的間隙進行數(shù)據(jù)交換 DMA控制器在設(shè)備控制器上提供,需要CPU啟動DMA控制器的動作,相應(yīng)代碼在設(shè)備驅(qū)動程序中提供設(shè)備分類與設(shè)備驅(qū)動類型相關(guān)分類字符設(shè)備以字符為單位傳輸數(shù)據(jù),數(shù)據(jù)量小,速度慢設(shè)備不可尋址,數(shù)據(jù)不可重用塊設(shè)備以定長塊為單位傳輸數(shù)據(jù),數(shù)據(jù)量大,速度快設(shè)備可尋址,數(shù)據(jù)可重復(fù)訪問網(wǎng)絡(luò)設(shè)備以不定長幀為單位傳輸數(shù)據(jù),數(shù)據(jù)量大,速度快設(shè)備不可尋址,數(shù)據(jù)不可重用 設(shè)備獨立性設(shè)備獨立性(設(shè)備無關(guān)性)概念指OS設(shè)備管理為上層提供一致的訪問入口并屏蔽訪問細節(jié),使上層獨立于物理設(shè)備設(shè)備獨立性軟件在OS內(nèi)核設(shè)備管理中設(shè)計的一個軟件層次提供設(shè)備訪問的一致入口和驅(qū)動框架設(shè)備開關(guān)表(與設(shè)備類型相關(guān))邏輯設(shè)備名實現(xiàn)獨立于設(shè)備的通用功能設(shè)備保護,緩沖區(qū)管理,差錯控制設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序特點與設(shè)備硬件、設(shè)備控制器寄存器、I/O控制方式密切相關(guān)在核心態(tài)運行,作為內(nèi)核一部分一般由硬件廠商編寫,OS規(guī)定編寫框架設(shè)備驅(qū)動程序功能接收設(shè)備獨立性軟件發(fā)來抽象命令,轉(zhuǎn)換為設(shè)備相關(guān)的底層操作序列檢查設(shè)備狀態(tài),發(fā)出I/O命令或?qū)⒉僮髋抨犿憫?yīng)中斷請求,調(diào)用中斷處理程序設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序處理過程現(xiàn)代OS設(shè)備訪問一般是中斷驅(qū)動的,處理過程分兩部分:啟動過程和中斷處理過程啟動過程檢查I/O請求合法性檢查設(shè)備狀態(tài),確定是否可以啟動請求的操作如果需要,傳送參數(shù)/設(shè)置工作模式向控制寄存器發(fā)出命令,啟動設(shè)備中斷處理過程檢查設(shè)備狀態(tài),確定中斷原因,進行相應(yīng)處理如果前一I/O請求完成,啟動排隊的下一請求簡化示例:Unix設(shè)備訪問過程 Unix的設(shè)備獨立性軟件層設(shè)備開關(guān)表實際是一個按照設(shè)備類型定義的函數(shù)指針結(jié)構(gòu)體具體設(shè)備驅(qū)動程序在初始化時用自己提供的函數(shù)填入該結(jié)構(gòu)體所有同類設(shè)備的結(jié)構(gòu)體合起來構(gòu)成設(shè)備開關(guān)表例:Unix塊設(shè)備開關(guān)表示意簡化示例:Unix設(shè)備訪問過程 Unix的設(shè)備獨立性軟件層設(shè)備文件是應(yīng)用程序訪問設(shè)備的通用入口記錄了設(shè)備文件名到設(shè)備驅(qū)動程序入口的對應(yīng)例:設(shè)備文件信息 brw-rw----. 1 root disk 7, 0 Nov 1 19:00 /dev/loop0 crw--w----. 1 root tty 4, 1 Nov 1 19:00 /dev/tty1 簡化示例:Unix設(shè)備訪問過程簡化示例假想場景一個應(yīng)用程序要讀取/dev/hd0上的某一塊內(nèi)容設(shè)備獨立性軟件工作過程根據(jù)設(shè)備文件, /dev/hd0的主設(shè)備號是0,對應(yīng)程序開關(guān)表項是gd開頭的一行基于/dev/hd0的從設(shè)備號和要讀取的塊號,設(shè)備獨立性軟件構(gòu)造請求數(shù)據(jù)結(jié)構(gòu)bp 調(diào)用gdstrategy(bp),把I/O請求塊掛到I/O請求隊列尾部簡化示例:Unix設(shè)備訪問過程簡化示例設(shè)備驅(qū)動程序工作過程在gdstrategy(bp)函數(shù)內(nèi),調(diào)用gdaddr(bp),把I/O請求塊中的邏輯塊號轉(zhuǎn)換為物理塊號如果當前設(shè)備空閑,調(diào)用gdstart(),從I/O請求隊列頭部取出一個I/O請求塊進行處理,發(fā)出相應(yīng)I/O命令,啟動磁盤設(shè)備磁盤中斷處理過程檢查設(shè)備狀態(tài)如果出錯,嘗試重做以便排除錯誤若上次操作成功完成,繼續(xù)查找I/O請求隊列是否為空,若非空調(diào)用gdstart() A.6 文件系統(tǒng)管理文件系統(tǒng)的任務(wù)文件系統(tǒng)的核心功能實例:FAT文件系統(tǒng)格式從應(yīng)用角度看文件系統(tǒng)文件系統(tǒng)的任務(wù)文件系統(tǒng)的核心任務(wù)按文件名存取文件文件系統(tǒng)的主要功能實施對文件空間的管理實施對文件目錄的管理實施對存儲器空間的分配和回收提供文件訪問保護為應(yīng)用程序提供文件訪問接口 文件系統(tǒng)的核心功能文件空間的管理記錄哪些磁盤塊的內(nèi)容屬于同一個文件常用文件空間管理方法連續(xù)方式文件占據(jù)連續(xù)的若干磁盤塊,只需要記起始塊號和長度適用于只讀或順序訪問設(shè)備上的文件系統(tǒng)(光盤或磁帶),主要用作備份介質(zhì)連續(xù)方式不能用于管理經(jīng)常改變的文件系統(tǒng)典型例子:ISO9660 文件系統(tǒng)的核心功能常用文件空間管理方法(續(xù))鏈接方式文件占據(jù)的離散磁盤塊通過鏈表查找為了提高鏈表訪問效率,一般通過獨立于文件數(shù)據(jù)的文件分配表FAT顯式保存鏈接信息典型例子:FAT文件系統(tǒng)索引方式文件占據(jù)的離散磁盤塊通過索引表查找為了使索引表能夠適應(yīng)文件動態(tài)增長并管理大小差異巨大的文件,一般采用混合索引方式典型例子:EXT2文件系統(tǒng) 文件系統(tǒng)的核心功能文件目錄的管理實現(xiàn)從文件名到文件內(nèi)容訪問入口的映射文件目錄的組織方式一般作為順序存儲的記錄文件文件目錄記錄項:保存文件屬性信息主要信息:文件名、文件類型、文件長度、文件盤塊位置其他信息:存取控制相關(guān)、文件訪問相關(guān)文件目錄記錄項的兩種處理方式文件名與其他屬性一起存放:FAT 文件名與其他屬性分來存放:EXT2 文件系統(tǒng)的核心功能存儲器空間的分配和回收記錄磁盤塊的分配/空閑狀態(tài)常用方法空閑盤塊表:將空閑盤塊號記入數(shù)組中位示圖:用1bit代表一個盤塊的空閑狀況一種在FAT中變化:一個表目對應(yīng)一個盤塊成組管理:把相關(guān)數(shù)據(jù)結(jié)構(gòu)以組為單位分散到磁盤空閑塊中成組鏈接法:分組+空閑表成組位示圖:分組+位示圖實例:FAT文件系統(tǒng)格式磁盤布局 引導(dǎo)記錄中關(guān)鍵數(shù)據(jù)結(jié)構(gòu):BPB 主要內(nèi)容:磁盤總空間、每簇扇區(qū)數(shù)、FAT占用扇區(qū)數(shù)、根目錄長度等目錄項內(nèi)容實例:FAT文件系統(tǒng)格式 FAT實例分析(FAT16) 00000200 f8 ff ff ff 00 00 ff ff 05 00 06 00 ff ff 08 00 00000210 09 00 0a 00 0b 00 0c 00 0d 00 0e 00 0f 00 10 00 00000220 11 00 12 00 13 00 14 00 15 00 16 00 17 00 18 00 ... ... 00000300 81 00 82 00 83 00 84 00 85 00 86 00 87 00 88 00 00000310 89 00 8a 00 8b 00 8c 00 8d 00 ff ff ff ff 90 00 00000320 91 00 92 00 93 00 94 00 95 00 96 00 97 00 ff ff 從FAT中可以看出有如下6個文件:0x03簇、0x04~0x06簇、0x07~0x8d簇、0x8e簇、0x8f~0x97簇實例:FAT文件系統(tǒng)格式根目錄分析目錄文件DIR-1、普通文件TESTFI~1的首簇號分別是0x03、0x04,對應(yīng)前述FAT中的頭兩個文件 0000f200 41 64 00 69 00 72 00 2d 00 31 00 0f 00 65 00 00 |Ad.i.r.-.1...e..| 0000f210 ff ff ff ff ff ff ff ff ff ff 00 00 ff ff ff ff |................| 0000f220 44 49 52 2d 31 20 20 20 20 20 20 10 00 00 12 10 |DIR-1 .....| 0000f230 8e 3b 8e 3b 00 00 12 10 8e 3b 03 00 00 00 00 00 |.;.;.....;......| 0000f240 41 74 00 65 00 73 00 74 00 66 00 0f 00 3c 69 00 |At.e.s.t.f...nwU紅軟基地

PPT分類Classification

Copyright:2009-2024 紅軟網(wǎng) rsdown.cn 聯(lián)系郵箱:rsdown@163.com

湘ICP備2024053236號-1