計算機系統概論
計算機系統
電子數字計算機,是一種能夠自行按照已設定的程序進行數據處理的電子設備,是軟件與硬件相結合、面向系統、側重應用的自動化求解工具,計算機技術迅猛發展,從科學計算、數據處理等應用領域,迅速擴展到實時控制、輔助設計、智能模擬等諸多領域,今天計算機無所不在,深入社會生活的各個領域,深深改變了當今人類社會的組織行為
計算機系統的組成
計算機系統包括硬件子系統和軟件子系統;硬件是指借助電、磁、光、機械等原理構成的各種物理部件的有機組合,是系統工作的實體,硬件系統有 CPU,主存儲器,I/O 控制系統,外圍設備;軟件是指各種程序和文件,用於指揮計算機系統按指定的要求進行協同工作,包括系統軟件、支撐軟件和應用軟件,關鍵系統軟件是指操作系統與語言處理程序
計算機硬件系統
計算機硬件系統的組成:
- 中央處理器
- 運算單元
- 控制單元
- 主存儲器
- 外圍設備
- 輸入設備
- 輸出設備
- 存儲設備
- 網絡通信設備
- 總線
存儲程序計算機
馮·諾伊曼等人在1946年總結並明確提出,被稱為馮·諾伊曼計算機模型,存儲程序計算機在體系結構上主要特點有:以運算單元為中心,控制流由指令流產生,采用存儲程序原理,面向主存組織數據流,主存是按地址訪問、線性編址的空間,指令由操作碼和地址碼組成,數據以二進制編碼
當今計算機硬件的經典結構和主流組織方式
總線及其組成
總線(Bus)是計算機各種功能部件之間傳送信息的公共通信干線,它是CPU、內存、輸入輸出設備傳遞信息的公用通道,計算機的各個部件通過總線相連接,外圍設備通過相應的接口電路再與總線相連接,從而形成了計算機硬件系統,按照所傳輸的信息種類,總線包括一組控制線、一組數據線和一組地址線
總線的類型
- 內部總線:用於CPU芯片內部連接各元件
- 系統總線:用於連接CPU、存儲器和各種I/O模塊等主要部件
- 通信總線:用於計算機系統之間通信
中央處理器(CPU)
中央處理器是計算機的運算核心(Core)和控制單元(ControlUnit),主要包括:
- 運算邏輯部件:一個或多個運算器
- 寄存器部件:包括通用寄存器、控制與狀態寄存器,以及高速緩沖存儲器(Cache)
- 控制部件:實現各部件間聯系的數據、控制及狀態的內部總線;負責對指令譯碼、發出為完成每條指令所要執行操作的控制信號、實現數據傳輸等功能的部件
處理器與寄存器
存儲器的組織層次
外圍設備及其控制
設備類型包括有:輸入設備,輸出設備,存儲設備和機機通信設備
設備控制方式有:
- 輪詢方式:CPU忙式控制+數據交換
- 中斷方式:CPU啟動/中斷+數據交換
- MA方式:CPU啟動/中斷,DMA數據交換
計算機軟件系統
計算機軟件系統的組成
系統軟件包括:操作系統、實用程序、語言處理程序、數據庫管理系統,其中操作系統實施對各種軟硬件資源的管理控制,實用程序為方便用戶所設,如文本編輯等,語言處理程序把用匯編語言/高級語言編寫的程序,翻譯成可執行的機器語言程序
支撐軟件有接口軟件、工具軟件、環境數據庫,支持用戶使用計算機的環境,提供開發工具,支撐軟件也可認為是系統軟件的一部分
應用軟件是用戶按其需要自行編寫的專用程序
計算機系統視圖
軟件開發的不同層次
- 計算機硬件系統:機器語言
- 操作系統之資源管理:機器語言+廣義指令(擴充了硬件資源管理)
- 操作系統之文件系統:機器語言+系統調用(擴充了信息資源管理)
- 數據庫管理系統:+數據庫語言(擴充了功能更強的信息資源管理)
- 語言處理程序:面向問題的語言
計算機程序的執行過程
計算機操作技術的發展
計算機的手工操作
問題:手工操作速度與電子計算速度不匹配
裝入程序的引進
- 引入卡片和紙帶描述程序指令與數據
- 引入裝入程序(Loader)
- 自動化執行程序裝入,必要時進行地址轉換
- 通常存放在ROM中
引入高級語言后的計算機控制
簡單批處理系統的操作控制
引入作業控制語言,用戶編寫作業說明書,描述對一次計算機求解(作業)的控制,操作員控制計算機成批輸入作業,成批執行作業,這一方式明顯縮短了手工操作的時間,提高了計算機系統利用率,這一階段,磁帶的出現,使得卡片與紙帶等機械輸入方式得以進一步提高
操作系統與自動化操作控制
電子計算速度與機械I/O速度的矛盾:你在輸,我在等,在程序執行過程中能否同時輸入作業,重疊時間,需要多道程序同時執行,程序切換需要高速的外存儲設備,磁盤設備出現:計算機操作系統濃墨登場,實現了計算機系統的自動化控制
計算機操作系統
操作系統的概念
操作系統(OperatingSystem),簡稱OS,是計算機系統最基礎的系統軟件,管理軟硬件資源、控制程序執行,改善人機界面,合理組織計算機工作流程,為用戶使用計算機提供良好運行環境,簡而言之,操作系統是方便用戶、管理和控制計算機軟硬件資源的系統程序集合.
從用戶角度看,OS管理計算機系統的各種資源,擴充硬件的功能,控制程序的執行,從人機交互看,OS是用戶與機器的接口,提供良好的人機界面,方便用戶使用計算機,在整個計算機系統中具有承上啟下的地位,從系統結構看,OS是一個大型軟件系統,其功能復雜,體系龐大,采用層次式、模塊化的程序結構
操作系統的組成
- 進程調度子系統
- 進程通信子系統
- 內存管理子系統
- 設備管理子系統
- 文件管理子系統
- 網絡通信子系統
- 作業控制子系統
操作系統的類型
- 從操作控制方式看
- 多道批處理操作系統,脫機控制方式
- 分時操作系統,交互式控制方式
- 實時操作系統
- 從應用領域看
- 服務器操作系統、並行操作系統
- 網絡操作系統、分布式操作系統
- 個人機操作系統、手機操作系統
- 嵌入式操作系統、傳感器操作系統
資源管理
計算機系統的資源
硬件資源:處理器、內存、外設
信息資源:數據、程序
管理計算機系統的軟硬件資源:
- 處理器資源:那個程序占有處理器運行?
- 內存資源:程序/數據在內存中如何分布?
- 設備管理:如何分配、去配和使用設備?
- 信息資源管理:如何訪問文件信息?
- 信號量資源:如何管理進程之間的通信?
屏蔽資源使用的底層細節
驅動程序:最底層的、直接控制和監視各類硬件(或文件)資源的部分,職責是隱藏底層硬件的具體細節,並向其他部分提供一個抽象的、通用的接口,比如說:打印一段文字或一個文件,既不需知道文件信息存儲在硬盤上的細節,也不必知道具體打印機類型和控制細節
資源的共享與分配方式
- 資源共享方式
- 獨占使用方式
- 並發使用方式
- 資源分配策略
- 靜態分配方式
- 動態分配方式
- 資源搶占方式
程序控制
多道程序同時計算
CPU速度與I/O速度不匹配的矛盾,非常突出,只有讓多道程序同時進入內存爭搶CPU運行,才可以夠使得CPU和外圍設備充分並行,從而提高計算機系統的使用效率
多道程序同時計算的宏觀分析
甲、乙兩道程序,獨占計算機單道運行時均需1小時,占用CPU時間18分鍾,CPU利用率為30%,按多道程序設計方法同時運行,CPU利用率50%,由於要提供36分鍾的CPU時間,大約運行72分鍾。考慮到OS調度開銷,實際花費時間還要長些,如80分鍾,就處理兩道作業而言,提高效率33%,就單道作業而言,延長執行時間20分鍾,即延長了33%的時間
多道程序設計及優點
多道程序設計:指讓多個程序同時進入計算機的主存儲器進行計算
多道程序設計的特點:
- CPU與外部設備充分並行
- 外部設備之間充分並行
- 發揮CPU的使用效率
- 提高單位時間的算題量
多道程序系統的實現
- 為進入內存執行的程序建立管理實體:進程
- OS應能管理與控制進程程序的執行
- OS協調管理各類資源在進程間的使用
- 處理器的管理和調度
- 主存儲器的管理和調度
- 其他資源的管理和調度
多道程序系統的實現要點
- 如何使用資源:調用操作系統提供的服務例程(如何陷入操作系統)
- 如何復用CPU:調度程序(在CPU空閑時讓其他程序運行)
- 如何使CPU與I/O設備充分並行:設備控制器與通道(專用的I/O處理器)
- 如何讓正在運行的程序讓出CPU:中斷(中斷正在執行的程序,引入OS處理)