課程地址
南京大學(xué)的駱斌老師主講的,考研可能會用得上
計(jì)算機(jī)系統(tǒng)的組成
- 計(jì)算機(jī)系統(tǒng):包括硬件子系統(tǒng)和軟件子系統(tǒng)
- 硬件:借助電、磁、光、機(jī)械等原理構(gòu)成的各 種物理部件的有機(jī)組合,是系統(tǒng)工作的實(shí)體
- CPU,主存儲器,I/O控制系統(tǒng),外圍設(shè)備
- 軟件:各種程序和文件,用于指揮計(jì)算機(jī)系統(tǒng) 按指定的要求進(jìn)行協(xié)同工作
包括系統(tǒng)軟件、支撐軟件和應(yīng)用軟件
關(guān)鍵系統(tǒng)軟件是:操作系統(tǒng)與語言處理程序
計(jì)算機(jī)系統(tǒng)的用戶視圖
計(jì)算機(jī)硬件系統(tǒng)組成
- 中央處理器
運(yùn)算單元 控制單元 :解譯機(jī)器指令
- 主存儲器
- 外圍設(shè)備
輸入設(shè)備 輸出設(shè)備 存儲設(shè)備 網(wǎng)絡(luò)通信設(shè)備
- 總線
存儲程序計(jì)算機(jī)體系結(jié)構(gòu)
存儲器是這個(gè)模型的核心
- 以運(yùn)算單元為中心,控制流由指令流產(chǎn)生
- 采用存儲程序原理,面向主存組織數(shù)據(jù)流
- 主存是按地址訪問、線性編址的空間
- 指令由操作碼和地址碼組成
- 數(shù)據(jù)以二進(jìn)制編碼
總線
- 總線(Bus)是計(jì)算機(jī)各種功能部件之間傳 送信息的公共通信干線,它是CPU、內(nèi)存、 輸入輸出設(shè)備傳遞信息的公用通道
- 計(jì)算機(jī)的各個(gè)部件通過總線相連接,外圍設(shè)備通過相應(yīng)的接口電路再與總線相連接,從而形成了計(jì)算機(jī)硬件系統(tǒng)
- 按照所傳輸?shù)男畔⒎N類,總線包括一組控制線、一組數(shù)據(jù)線和一組地址線
- 內(nèi)部總線:用于CPU芯片內(nèi)部連接各元件
- 系統(tǒng)總線:用于連接CPU、存儲器和各種 I/O模塊等主要部件
- 通信總線:用于計(jì)算機(jī)系統(tǒng)之間通信(網(wǎng)絡(luò))
為了加快通信效率,系統(tǒng)總線也是分級的,PCI連接塊設(shè)備(較快),E(ISA)總線連接字符設(shè)備(較慢)。
中央處理器(CPU)
中央處理器是計(jì)算機(jī)的運(yùn)算核心(Core)和 控制單元( Control Unit),主要包括:
- 運(yùn)算邏輯部件:一個(gè)或多個(gè)協(xié)運(yùn)算器
- 寄存器部件:包括通用寄 存器、控制與狀態(tài)寄存器,以及高速緩沖存儲器(Cache)
- 控制部件:實(shí)現(xiàn)各部件間聯(lián)系的數(shù)據(jù)、控制及狀態(tài)的內(nèi)部總線;負(fù)責(zé)對指令譯碼、 發(fā)出為完成每條指令所要執(zhí)行操作的控制信號、實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)裙δ艿牟考?br>
存儲器
L0 L1 L2 L3 L4都是揮發(fā)性存儲,加電存儲,斷電失效
外圍設(shè)備
- 設(shè)備類型
輸入設(shè)備 輸出設(shè)備 存儲設(shè)備 機(jī)機(jī)通信設(shè)備(本質(zhì)上屬于輸入輸出設(shè)備,但是不同網(wǎng)絡(luò)設(shè)備塊大小不一致(包,塊,字))
- 設(shè)備控制方式
輪詢方式:CPU忙式控制+數(shù)據(jù)交換
中斷方式:CPU啟動外圍設(shè)備/中斷+數(shù)據(jù)交換
DMA方式:CPU啟動/中斷,DMA獨(dú)立進(jìn)行數(shù)據(jù)交換
軟件系統(tǒng)組成
- 系統(tǒng)軟件:操作系統(tǒng)、實(shí)用程序、語言處理程 序、數(shù)據(jù)庫管理系統(tǒng)
操作系統(tǒng)實(shí)施對各種軟硬件資源的管理控制
實(shí)用程序?yàn)榉奖阌脩羲O(shè),如文本編輯等
語言處理程序把用匯編語言/高級語言編寫 的程序,翻譯成可執(zhí)行的機(jī)器語言程序
- 支撐軟件有接口軟件、工具軟件、環(huán)境數(shù)據(jù)庫, 支持用戶使用計(jì)算機(jī)的環(huán)境,提供開發(fā)工具
- 應(yīng)用軟件是用戶按其需要自行編寫的專用程序
軟件開發(fā)的不同層次
- 計(jì)算機(jī)硬件系統(tǒng):機(jī)器語言
- 操作系統(tǒng)之資源管理:機(jī)器語言+廣義指令(擴(kuò)充了硬件資源管理)
- 操作系統(tǒng)之文件系統(tǒng):機(jī)器語言+系統(tǒng)調(diào)用(擴(kuò)充了信息資源管理)
- 數(shù)據(jù)庫管理系統(tǒng):+數(shù)據(jù)庫語言(擴(kuò)充了功能更強(qiáng)的信息資源管理)
- 語言處理程序:面向問題的語言
計(jì)算機(jī)程序的執(zhí)行過程
操作系統(tǒng)的概念
OS是計(jì)算機(jī)系統(tǒng)最基礎(chǔ)的系統(tǒng)軟件,管理軟硬件 資源、控制程序執(zhí)行,改善人機(jī)界面,合理組織計(jì) 算機(jī)工作流程,為用戶使用計(jì)算機(jī)提供良好運(yùn)行環(huán) 境
- 從用戶角度看,OS管理計(jì)算機(jī)系統(tǒng)的各種 資源,擴(kuò)充硬件的功能,控制程序的執(zhí)行
- 從人機(jī)交互看,OS是用戶與機(jī)器的接口, 提供良好的人機(jī)界面,方便用戶使用計(jì)算機(jī), 在整個(gè)計(jì)算機(jī)系統(tǒng)中具有承上啟下的地位
- 從系統(tǒng)結(jié)構(gòu)看,OS是一個(gè)大型軟件系統(tǒng), 其功能復(fù)雜,體系龐大,采用層次式、模塊 化的程序結(jié)構(gòu)
- 操作系統(tǒng)組成
進(jìn)程調(diào)度子系統(tǒng)
進(jìn)程通信子系統(tǒng)
內(nèi)存管理子系統(tǒng)
設(shè)備管理子系統(tǒng)
文件管理子系統(tǒng)
網(wǎng)絡(luò)通信子系統(tǒng)
作業(yè)控制子系統(tǒng)
- 從操作控制方式分類
多道批處理操作系統(tǒng),脫機(jī)控制方式
分時(shí)操作系統(tǒng),交互式控制方式
實(shí)時(shí)操作系統(tǒng)
- 從應(yīng)用領(lǐng)域分類
服務(wù)器操作系統(tǒng)、并行操作系統(tǒng)
網(wǎng)絡(luò)操作系統(tǒng)、分布式操作系統(tǒng)
個(gè)人機(jī)操作系統(tǒng)、手機(jī)操作系統(tǒng)
嵌入式操作系統(tǒng)、傳感器操作系統(tǒng)
計(jì)算機(jī)的資源
- 硬件資源 處理器、內(nèi)存、外設(shè)
- 信息資源 數(shù)據(jù)、程序
資源的共享與分配方式
- 資源共享方式
獨(dú)占使用方式
并發(fā)使用方式
- 資源分配策略
靜態(tài)分配方式
動態(tài)分配方式
資源搶占方式
多道程序同時(shí)計(jì)算
- CPU速度與I/O速度不匹配的矛盾,非常突出
- 只有讓多道程序同時(shí)進(jìn)入內(nèi)存爭搶CPU運(yùn)行,才 可以夠使得CPU和外圍設(shè)備充分并行,從而提高 計(jì)算機(jī)系統(tǒng)的使用效率
- 多道程序設(shè)計(jì)的特點(diǎn)
CPU與外部設(shè)備充分并行
外部設(shè)備之間充分并行
發(fā)揮CPU的使用效率
提高單位時(shí)間的算題量
- 多道程序的實(shí)現(xiàn)
為進(jìn)入內(nèi)存執(zhí)行的程序建立管理實(shí)體:進(jìn)程
如何使用資源:調(diào)用操作系統(tǒng)提供的服務(wù)例程(如何陷入操作系統(tǒng))
如何復(fù)用CPU:調(diào)度程序(在CPU空閑時(shí)讓其他程序運(yùn)行)
如何使CPU與I/O設(shè)備充分并行:設(shè)備控制器與通 道(專用的I/O處理器)
如何讓正在運(yùn)行的程序讓出CPU:中斷(中斷正在 執(zhí)行的程序,引入OS處理)
計(jì)算機(jī)的操作方式
OS規(guī)定了合理操作計(jì)算機(jī)的工作流程
OS的操作接口——系統(tǒng)程序 OS提供給用戶的功能級接口,為用戶提供的解決操作計(jì)算機(jī)和計(jì)算共性問題的所有服務(wù)的集合
OS的兩類作業(yè)級接口
- 脫機(jī)作業(yè)控制方式:作業(yè)控制語言
- 聯(lián)機(jī)作業(yè)控制方式:操作控制命令
脫機(jī)作業(yè)的控制方式
- OS:提供作業(yè)說明語言
- 用戶:編寫作業(yè)說明書,確定作業(yè)加工控制步驟, 并與程序數(shù)據(jù)一并提交
- 操作員:通過控制臺輸入作業(yè)
- OS:通過作業(yè)控制程序自動控制作業(yè)的執(zhí)行
- 例:批處理OS的作業(yè)控制方式,UNIX的shell程序, DOS的bat文件
聯(lián)機(jī)作業(yè)控制方式
- 計(jì)算機(jī):提供終端(鍵盤/顯示器)
- 用戶:登錄系統(tǒng)
- OS:提供命令解釋程序
- 用戶:聯(lián)機(jī)輸入命令,直接控制作業(yè)步的執(zhí)行
- 例:分時(shí)OS的交互控制方式
命令解釋程序
- 命令解釋程序:接受和執(zhí)行一條用戶提 出的對作業(yè)的加工處理命令
- 當(dāng)一個(gè)新的批作業(yè)被啟動,或新的交互 型用戶登錄進(jìn)系統(tǒng)時(shí),系統(tǒng)就自動地執(zhí)行命令解釋程序,負(fù)責(zé)讀入控制卡或命令行,作出相應(yīng)解釋,并予以執(zhí)行
- 會話語言:可編程的命令解釋程序 (shell)
- 圖形化的命令控制方式
- 多通道交互的命令控制方式
命令解釋程序的處理過程
- OS啟動命令解釋程序,輸出命令提示符,等待鍵盤中斷/鼠標(biāo)點(diǎn)擊/多通道識別
- 每當(dāng)用戶輸入一條命令(暫存在命令緩沖區(qū))并 按回車換行時(shí),申請中斷
- CPU響應(yīng)后,將控制權(quán)交給命令解釋程序, 接著讀入命令緩沖區(qū)內(nèi)容,分析命令、接受 參數(shù),執(zhí)行處理代碼
- 前臺命令執(zhí)行結(jié)束后,再次輸出命令提示符, 等待下一條命令
- 后臺命令處理啟動后,即可接收下條命令
操作系統(tǒng)的程序接口
操作系統(tǒng)的程序接口——系統(tǒng)調(diào)用
操作系統(tǒng)實(shí)現(xiàn)的完成某種特定功能的過程;為所有 運(yùn)行程序提供訪問操作系統(tǒng)的接口
系統(tǒng)調(diào)用的實(shí)現(xiàn)機(jī)制
- 陷入處理機(jī)制:計(jì)算機(jī)系統(tǒng)中控制和實(shí)現(xiàn)系統(tǒng)調(diào)用 的機(jī)制
- 陷入指令:也稱訪管指令,或異常中斷指令,計(jì)算機(jī)系統(tǒng)為實(shí)現(xiàn)系統(tǒng)調(diào)用而引起處理器中斷的指令
- 每個(gè)系統(tǒng)調(diào)用都事先規(guī)定了編號,并在約定寄存器 中規(guī)定了傳遞給內(nèi)部處理程序的參數(shù)
系統(tǒng)調(diào)用實(shí)現(xiàn):
- 編寫系統(tǒng)調(diào)用處理程序
- 設(shè)計(jì)一張系統(tǒng)調(diào)用入口地址表,每個(gè)入口地址指向 一個(gè)系統(tǒng)調(diào)用的處理程序,并包含系統(tǒng)調(diào)用自帶參 數(shù)的個(gè)數(shù)
-
陷入處理機(jī)制需開辟現(xiàn)場保護(hù)區(qū),以保存發(fā)生系統(tǒng)調(diào)用時(shí)的處理器現(xiàn)場
操作系統(tǒng)的系統(tǒng)結(jié)構(gòu)
-OS構(gòu)件 內(nèi)核、進(jìn)程、線程、管程等
- 設(shè)計(jì)概念 模塊化、層次式、虛擬化
- 內(nèi)核設(shè)計(jì)是OS設(shè)計(jì)中最為復(fù)雜的部分
操作系統(tǒng)內(nèi)核
- 單內(nèi)核:內(nèi)核中各部件雜然混居的形態(tài),始 于1960年代,廣泛使用;如Unix/Linux,及 Windows(自稱采用混合內(nèi)核的CS結(jié)構(gòu))
- 微內(nèi)核:1980年代始,強(qiáng)調(diào)結(jié)構(gòu)性部件與功 能性部件的分離,大部分OS研究都集中在此
- 混合內(nèi)核:微內(nèi)核和單內(nèi)核的折中,較多組 件在核心態(tài)中運(yùn)行,以獲得更快的執(zhí)行速度
-
外內(nèi)核:盡可能減少內(nèi)核的軟件抽象化和傳 統(tǒng)微內(nèi)核的消息傳遞機(jī)制,使得開發(fā)者專注 于硬件的抽象化;部分嵌入式系統(tǒng)使用
層次結(jié)構(gòu)
操作系統(tǒng)的規(guī)模
- 在計(jì)算機(jī)軟件發(fā)展史上,OS是第一個(gè)大規(guī)模的軟件系統(tǒng)
- 1960年代,由OS開發(fā)所衍生的體系結(jié)構(gòu)、模塊化 開發(fā)、測試與驗(yàn)證、演化與維護(hù)等研究,直接催生 了軟件工程這一新興研究領(lǐng)域(另一個(gè)催生來源是 DB應(yīng)用引發(fā)的需求與規(guī)格)