天天看點

作業系統原理第一周:作業系統概述

1. 作業系統做了什麼

C程式:Helloworld

#include <stdio.h>
int main(int argc, char *argv[])
{
    puts("hello world");
    return ;
}
           
  • 使用者告訴作業系統執行helloworld程式
  • 作業系統:找到helloworld程式的相關資訊,檢查其類型是否是可執行檔案,并通過程式首部資訊,确定代碼和資料在可執行檔案中的位置,并計算出對應的磁盤塊位址
  • 作業系統:建立一個新的程序,并将helloworld可執行檔案映射到該程序結構,表示由該程序執行helloworld程式
  • 為helloworld程式設定CPU上下文環境,并跳到程式開始處(假設排程程式選中它)
  • 執行helloworld程式的第一條指令,發生缺頁異常
  • 作業系統:配置設定一頁實體記憶體,并将代碼從磁盤讀入記憶體,然後繼續執行helloworld程式
  • helloworld程式執行puts函數(系統調用),在顯示器上寫一字元串
  • 作業系統:找到要将字元串送往的顯示裝置,通常裝置是由一個程序控制的,是以作業系統将要寫的字元串送給該程序
  • 作業系統:控制裝置的程序告訴裝置的視窗系統它要顯示字元串,視窗系統确認這是一個合法的操作,然後将字元串轉換成像素,将像素寫入裝置的存儲映像區
  • 視訊硬體将像素轉換成顯示器可接收的一組控制/資料信号
  • 顯示器解釋信号,激發液晶屏
  • 我們在螢幕上看到了“hello world”

2. 作業系統的定義及作用

作業系統是計算機系統中的一個系統軟體,是一些程式子產品的集合:

- 它們能以盡量有效、合理的方式組織和管理計算機的軟硬體資源

- 合理地組織計算機的工作流程,控制程式的執行,并向使用者提供各種服務功能

- 使使用者能夠靈活、友善地使用計算機,使整個計算機系統高效率運作

作業系統的三個作用:

- 資源的管理者 → 有效

- 向使用者提供各種服務 → 友善使用

- 對硬體機器的擴充 → 擴充能力

(1) 資源的管理者

  • 跟蹤記錄資源的使用狀況
  • 确定資源配置設定政策——算法

    靜态配置設定政策

    動态配置設定政策

  • 實施資源的配置設定和回收
  • 提高資源使用率
  • 保護資源的使用
  • 協調多個程序對資源請求的沖突

五大基本功能:

  • 程序/線程管理(CPU管理)

    程序線程狀态、控制、同步互斥、通信、排程、…

  • 存儲管理

    配置設定/回收、位址轉換、存儲保護、記憶體擴充、…

  • 檔案管理

    檔案目錄、檔案操作、磁盤空間、檔案存取控制、…

  • 裝置管理

    裝置驅動、配置設定回收、緩沖技術、…

  • 使用者接口

    系統指令、程式設計接口

(2) 向使用者提供各種服務

作業系統為使用者提供了一組功能強大、友善易用的指令或系統調用

包括:程序的建立、執行,檔案和目錄的操作,I/O裝置的使用,各類統計資訊,…

(3) 對硬體機器的擴充

作業系統在應用程式與硬體之間建立了一個等價的擴充機器(虛拟機)

對硬體抽象,提高可移植性,比底層硬體更容易程式設計

3. 作業系統的特征

(1) 并發

并發是指處理多個同時性活動的能力,對于單CPU

宏觀上:這些程式同時在執行

微觀上:任何時刻隻有一個程式真正在執行,即這些程式在CPU上是輪流執行的

并行(parallel):與并發相似,但多指不同程式同時在多個硬體部件上執行

(2) 共享

共享是指作業系統與多個使用者的程式共同使用計算機系統中的資源(共享有限的系統資源)

作業系統要對系統資源進行合理配置設定和使用

資源在一個時間段内交替被多個程序所用

  • 互斥共享(如列印機)
  • 同時共享(如可重入代碼、磁盤檔案)

(3) 虛拟

虛拟是指一個實體實體映射為若幹個對應的邏輯實體——分時或分空間

虛拟是作業系統管理系統資源的重要手段,可提高資源使用率

(4) 随機

随機是指作業系統必須随時對以不可預測的次序發生的事件進行響應并處理

程序的運作速度不可預知:多個程序并發執行,走走停停,無法預知每個程序的運作推進的快慢

難以重制系統在某個時刻的狀态(包括重制運作中的錯誤)

4. 典型作業系統的架構

(1) Windows

作業系統原理第一周:作業系統概述

使用者态:系統程序,服務程序,使用者程序,環境子系統,動态連結庫

核心态:系統服務分發器,核心态可調用接口,執行體,核心,裝置驅動程式,硬體抽象層,圖形與視窗

實體硬體:硬體

(2) Unix

作業系統原理第一周:作業系統概述

(3) Linux

作業系統原理第一周:作業系統概述

(4) Android

作業系統原理第一周:作業系統概述

5. 作業系統分類

目标:充分利用硬體,提供更好的服務

大型機 → 個人計算機 → 網絡 → 移動計算 → 雲計算 → 泛在計算(物聯網) → 機器人

作業系統類型 目标 特點
批處理作業系統 提高資源使用率,增加作業處理吞吐量 通常由若幹個作業組成,使用者送出作業後隻能等待處理結果,不能幹預自己作業的執行,通常采用SPOOLING技術(Simultaneous Peripheral Operation On-Line)實作
分時作業系統 及時響應 作業系統将CPU的時間劃分成若幹個片段,稱為時間片,作業系統以時間片為機關,輪流為每個終端使用者服務,每次服務一個時間片,與批處理系統結合組成通用作業系統,分時優先,批處理在後
實時作業系統 對外部請求在嚴格時間範圍内作出響應,高可靠性 關鍵參數是時間,例如工業過程控制系統——汽車裝配線,還包括銀行交易、飛機訂票等
個人計算機作業系統 界面友好,使用友善,豐富的應用軟體 計算機在某一時間内為單使用者服務
網絡作業系統 互相通信,資源共享 基于計算機網絡,在各種計算機作業系統上,按網絡體系結構協定标準開發的軟體,具備網絡管理、通信、安全、資源共享和各種網絡應用功能
分布式作業系統 處理能力強,速度快,可靠性強,具有透明性 允許若幹個計算機可互相協作共同完成一項任務,自動實作全系統範圍内的任務配置設定、自動排程、均衡各處理機的工作負載
嵌入式作業系統 對處理時間有較嚴格要求 運作在嵌入式系統環境中,對整個嵌入式系統以及它所操作、控制的各種部件裝置等等資源進行統一協調、排程、指揮和控制的系統軟體

繼續閱讀