| 目錄一、導(dǎo)論1.操作系統(tǒng)的定義操作系統(tǒng)是計(jì)算機(jī)用戶與計(jì)算機(jī)硬件之間運(yùn)行的一個(gè)程序。通常狹義上被稱為內(nèi)核(Kernel)程序,其他程序則為系統(tǒng)程序和應(yīng)用程序。它是
 資源管理平臺,運(yùn)行程序的平臺,也是為用戶提供服務(wù)的平臺 資源管理服務(wù):資源包括硬件資源和軟件資源為用戶提供服務(wù):交互、提供應(yīng)用程序的運(yùn)行環(huán)境等
 操作系統(tǒng)的目標(biāo): 通過運(yùn)行計(jì)算機(jī)的應(yīng)用程序,方便用戶解決問題方便用戶操作使用計(jì)算機(jī)有效使用計(jì)算機(jī)硬件資源
 2.計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)是層次結(jié)構(gòu)
  硬件提供最基本的計(jì)算資源,如CPU, 內(nèi)存,I /O設(shè)備等
操作系統(tǒng)協(xié)調(diào)控制多個(gè)應(yīng)用或多個(gè)用戶對硬件的使用
應(yīng)用程序為解決用戶的問題,定義了解決方法的程序,比如文體編輯器,網(wǎng)頁瀏覽器, 數(shù)據(jù)庫, 游戲等
用戶人、設(shè)備、其他計(jì)算機(jī)系統(tǒng)
 3.計(jì)算機(jī)系統(tǒng)組織1.啟動(booting) 確認(rèn)每個(gè)設(shè)備是否工作正常。確認(rèn)無誤后,開
 啟引導(dǎo)程序- bootstrap(引導(dǎo)程序一般位于ROM 或EEROM 中稱為計(jì)算機(jī)硬件中的固件)。
 引導(dǎo)程序的工作內(nèi)容包括:
 初始化設(shè)備把操作系統(tǒng)載入到內(nèi)存中運(yùn)行第一個(gè)進(jìn)程init(), 等待事件發(fā)生
 2.中斷硬中斷即硬件通過向CPU發(fā)送信號來觸發(fā)中斷,一般對用戶不可見,但可觸發(fā)程序的運(yùn)行。如網(wǎng)卡接收數(shù)據(jù)包,可以屏蔽
軟中斷即通過軟件觸發(fā)中斷。系統(tǒng)調(diào)用(System Call) 會觸發(fā)軟件中斷。如異常,除零( divide by zero),不可以屏蔽
 系統(tǒng)一旦發(fā)生中斷,CPU會運(yùn)行中斷服務(wù)程序(InterruptService Routine),且每個(gè)中斷都有自己對應(yīng)的中斷服務(wù)程序ISR 系統(tǒng)通過中斷向量表(Interrupt Vector Table)來管理中斷請求與中斷服務(wù)程序之間的對應(yīng)關(guān)系 當(dāng)發(fā)生中斷時(shí), 一旦中斷服務(wù)程序運(yùn)行結(jié)束, 3.I/O結(jié)構(gòu)I/O設(shè)備與CPU可同時(shí)運(yùn)行
每個(gè)設(shè)備控制器負(fù)責(zé)相應(yīng)類型的設(shè)備,如磁盤控制器負(fù)責(zé)磁盤每個(gè)設(shè)備控制器擁有自己的本地緩沖器和寄存器
 
 CPU負(fù)責(zé)內(nèi)存與本地緩沖器之間的數(shù)據(jù)傳遞設(shè)備控制器負(fù)責(zé)在其所控制的外部設(shè)備與本地緩沖存儲之間進(jìn)行數(shù)據(jù)傳遞
I /O 操作結(jié)束后,設(shè)備控制器通過中斷通知CPU 表示I /O 結(jié)束
 I/O 操作分為 同步( Synchronous) 操作: 只有I/O 結(jié)束后,用戶程序才能獲得控制權(quán),即I/O 進(jìn)行期間,用戶程序無法繼續(xù)運(yùn)行。
異步( Asynchronous )操作: I/O 還沒有結(jié)束的情況下,用戶程序可以獲得控制權(quán),即I/O進(jìn)行期間,用戶程序可以繼續(xù)運(yùn)行。
 4.存儲結(jié)構(gòu)一級存儲設(shè)備指內(nèi)存(主存)。CPU可以直接隨機(jī)訪問的唯一大容量存儲設(shè)備,是易失存儲設(shè)備。易失存儲設(shè)備指的是斷電后,數(shù)據(jù)會丟失的設(shè)備。
 二級存儲設(shè)備: 一般不易失的存儲設(shè)備,一般是磁盤類
 4.計(jì)算機(jī)系統(tǒng)的體系結(jié)構(gòu)1.單處理系統(tǒng)系統(tǒng)中只有一個(gè)通用處理器(CPU),用來處理來自用戶進(jìn)程的指令除了通用處理器,系統(tǒng)一般還包括其他專用處理器,如磁盤控制器、圖形控制器等,專用處理器不接受用戶的指令,只接受系統(tǒng)的指令有的通用處理器集成了專用處理器,具有專用處理器功能
 2.多處理系統(tǒng)系統(tǒng)中有多個(gè)處理器,又稱為并聯(lián)系統(tǒng)(parallel systems),多個(gè)處理器共享一個(gè)內(nèi)存CPU之間通過共享內(nèi)存來進(jìn)行通訊操作系統(tǒng)可以運(yùn)行在某一個(gè)CPU上或多個(gè)CPU上
 多處理器系統(tǒng)的優(yōu)點(diǎn) 增加了吞吐量(throughput)方便擴(kuò)展增加了可靠性
 非對稱處理器,又稱異構(gòu)多處理器,Asymmetric Multiprocessor(AMP)(1)
 處理器在結(jié)構(gòu)上不同(2)一個(gè)處理器負(fù)責(zé)運(yùn)行操作系統(tǒng),其它處理器運(yùn)行其他程序,處理器之間
 有主從關(guān)系
對稱處理器,又稱同構(gòu)多處理器Symmetric Multiprocessor(SMP)(1)
 各處理器在結(jié)構(gòu)上完全相同(2)操作系統(tǒng)可以運(yùn)行在任何一個(gè)處理器上,處理器之間
 沒有主從關(guān)系。
Multi-Core - 多核處理器一個(gè)處理器上有多個(gè)CPU,也就是多個(gè)處理器集成到一個(gè)芯片上,可以是對稱多處理器,也可以是非對稱多處理器
 注意:多處理器環(huán)境下,不管多處理器還是多核處理器、每個(gè)處理器都需要有自己的寄存器和高速緩存,為什么?
 5.操作系統(tǒng)的結(jié)構(gòu)及操作1.操作系統(tǒng)結(jié)構(gòu)批處理系統(tǒng)為避免當(dāng)CPU發(fā)出I/O請求,設(shè)備進(jìn)行I/O操作時(shí),CPU就會空閑(idle)的情況。當(dāng)發(fā)生I/O 操作時(shí),由操作員調(diào)度另一個(gè)程序運(yùn)行,從而提高CPU的使用率。
多道程序系統(tǒng)把操作員的工作內(nèi)容寫到操作系統(tǒng)里,由操作系統(tǒng)進(jìn)行任務(wù)的調(diào)度。為保障CPU總有任務(wù)運(yùn)行(提高CPU的使用率),多道程序系統(tǒng)必須把需要運(yùn)行的多個(gè)任務(wù)載入到內(nèi)存以被選擇并運(yùn)行。
分時(shí)系統(tǒng)給每個(gè)任務(wù)賦予一個(gè)給定的時(shí)間片(time slot,time slice)。CPU 在多任務(wù)之間相互切換
 多道程序系統(tǒng) 和 分時(shí)系統(tǒng)兩者目的不同 多道程序系統(tǒng): 為提高CPU的使用率,讓CPU忙多任務(wù)系統(tǒng)(分時(shí)系統(tǒng)):讓每個(gè)任務(wù)能公平使用CPU,體現(xiàn)了公平性
 2.操作系統(tǒng)的操作為了確保操作系統(tǒng)的正常運(yùn)行,必須區(qū)分操作系統(tǒng)的代碼和用戶代碼的執(zhí)行 大部分采用的方法是提供硬件支持的雙重模式操作,即用戶模式和內(nèi)核模式 用戶模式時(shí),用戶掌握計(jì)算機(jī)的控制權(quán),運(yùn)行用戶代碼內(nèi)核模式時(shí),操作系統(tǒng)掌握計(jì)算機(jī)的控制權(quán),運(yùn)行系統(tǒng)代碼
 通過模式位(Mode bit)來區(qū)分即用戶模式和內(nèi)核模式 如系統(tǒng)調(diào)用(System Call),當(dāng)用戶程序調(diào)用系統(tǒng)調(diào)用函數(shù)的時(shí)候,操作系統(tǒng)的運(yùn)行模式從用戶模式轉(zhuǎn)變成內(nèi)核模式,如調(diào)用printf() 函數(shù)
  6.操作系統(tǒng)管理1.進(jìn)程管理程序是被動實(shí)體,而進(jìn)程是活動實(shí)體。進(jìn)程是運(yùn)行中的程序,是系統(tǒng)的運(yùn)行單元
 在一個(gè)系統(tǒng)中有無數(shù)個(gè)進(jìn)程在同時(shí)運(yùn)行,運(yùn)行在一個(gè)或多個(gè)CPU 上,進(jìn)程之間通過復(fù)用CPU并發(fā)運(yùn)行運(yùn)行進(jìn)程需要分配一定的資源,如CPU, 內(nèi)存, I/O設(shè)備,存儲設(shè)備等。當(dāng)進(jìn)程結(jié)束時(shí),也應(yīng)收回已分配的資源,從而讓進(jìn)程有效使用這些資源
 2.內(nèi)存管理內(nèi)存管理的主要目的就是提高內(nèi)存的使用率,從而有效使用內(nèi)存管理內(nèi)存中的數(shù)據(jù)的存儲、指令的運(yùn)行
 內(nèi)存管理活動包括以下內(nèi)容: 當(dāng)有內(nèi)存有空閑空間時(shí),決定哪些進(jìn)程可以載入內(nèi)存、載入到哪里等記錄內(nèi)存的哪些部分正在使用以及被誰使用根據(jù)需要分配和釋放內(nèi)存空間,即分配的方式
 3.存儲管理操作系統(tǒng)對存儲設(shè)備的物理屬性進(jìn)行了抽象的定義,即文件,它是存儲的邏輯單元。
計(jì)算機(jī)可以在多種類型的物理介質(zhì)上存儲信息· 每種介質(zhì)通過一個(gè)設(shè)備來控制,如磁盤驅(qū)動器、磁帶驅(qū)動器
 · 每個(gè)介質(zhì)有不同的訪問速度、容量、數(shù)據(jù)傳輸率和訪問方法
文件通常組成目錄以方便使用多用戶訪問文件時(shí),需要控制權(quán)限問題
 大容量存儲系統(tǒng)(Mass-Storage System)一般指的二級存儲設(shè)備,如硬盤,它的管理活動包括以下內(nèi)容:
 空閑空間的管理存儲空間的分配硬盤的調(diào)度
 7.其他計(jì)算機(jī)系統(tǒng)實(shí)時(shí)系統(tǒng)是指系統(tǒng)中的任務(wù)都有時(shí)間節(jié)點(diǎn)的系統(tǒng)。如軍事設(shè)備、醫(yī)療設(shè)備上使用的系統(tǒng) 二、操作系統(tǒng)結(jié)構(gòu)1.系統(tǒng)調(diào)用系統(tǒng)調(diào)用是是操作系統(tǒng)服務(wù)的編程接口
 程序通過應(yīng)用程序接口(API)訪問,而不是直接使用系統(tǒng)調(diào)用 API/系統(tǒng)調(diào)用/OS間的關(guān)系:
  每個(gè)系統(tǒng)調(diào)用都有一個(gè)固有番號(System Call Number)
 操作系統(tǒng)通過一張系統(tǒng)調(diào)用番號表來管理系統(tǒng)調(diào)用接口
 向系統(tǒng)調(diào)用函數(shù)傳遞參數(shù)的方式,有以下三種 寄存器塊(block):參數(shù)保存在內(nèi)存中的一個(gè)塊中,并把塊地址用寄存器傳遞給系統(tǒng)調(diào)用函數(shù)棧(stack):以棧的形式保存在內(nèi)存中,用戶程序向棧push參數(shù),操作系統(tǒng)從棧中pop 參數(shù)
 2.系統(tǒng)程序系統(tǒng)程序不屬于內(nèi)核,但屬于操作系統(tǒng)的一部分。為程序開發(fā)和執(zhí)行提供了一個(gè)方便的環(huán)境。 |