1. 程式人生 > 資訊 >亞馬遜實體零售副總裁宣佈離職,曾管理 Kindle、Fire Phone 專案

亞馬遜實體零售副總裁宣佈離職,曾管理 Kindle、Fire Phone 專案

作業系統

1作業系統引論

1.1作業系統的目標和作用

作業系統的非形式化定義:系統軟體,程式模組的集合,資源管理和使用者介面功能。

1.1.1作業系統的目標

OS的目標:方便性、有效性、可擴充性。開放性。

方便性:方便性是從使用者角度來看的,為使用者提供良好的、一致的使用者介面,彌補硬體作業系統型別和數量之間差別。其實現方法有:虛擬地址技術、檔案系統、圖形介面、統一使用者介面、虛擬儲存技術、緩衝區技術。

有效性:有效性是站在系統角度來說的,使CPU、I/O裝置和儲存空間得到充分有效的利用;管理和分配硬體、軟體資源,合理的組織計算機的工作流程。其實現方法有:多道程式設計、多程序併發、虛擬儲存器、按需調段(頁)、對換區技術、緩衝區技術、獨佔裝置—>共享裝置。

可擴充性:無結構->模組化->層次化->微核心。

開放性:遵循標準規範,方便地實現互連,實現應用的可以移植性和互操作性。

1.1.2作業系統的作用

  • 計算機系統資源的管理者

  • 實現了對計算機資源的抽象

1.1.3推動作業系統發展的主要動力

  • 不斷提高計算機資源利用率
  • 方便使用者
  • 器件的發展
  • 計算機體系結構的發展:從單處理機到多處理機,從單機到網路
  • 不斷提出新的應用需求

1.2作業系統的發展過程

1.2.1未配置作業系統的計算機系統

  1. 計算機的工作方式

    • 使用者:程式設計師操作員;計算機專業人員
    • 變成語言:機器語言
    • 輸入輸出:紙帶或卡片
  2. 工作特點:

    • 使用者獨佔全機,造成系統的浪費,嚴重降低了資源的利用率
    • CPU等待使用者,CPU利用率很低
  3. 主要矛盾:

    • 計算機處理能力的提高,手工操作的效率低
    • 使用者獨佔全機的所有資源
  4. 提高效率的途徑:

    • 專門的操作員
    • 批處理

1.2.2單道批處理系統

將系統作業分類為幾個作業至次年工序羅列,每個作業由一個專門的監督程式自動依次處理,可以使用匯編語言開發。

  1. 批處理中的作業的組成:
    • 使用者程式
    • 資料
    • 作業說明書(作業控制語言)
  2. 實現方式1:聯機批處理
    • 批作業生成:使用者提交作業改成了操作員合成批作業
    • 批作業處理過程:從磁帶讀入使用者作業和編譯連結程式,編譯連結使用者作業,生成可執行程式;執行啟動;執行結果輸出。、
    • 存在問題:慢速的輸入輸出處理仍直接由主機來完成。輸入輸出時,CPU處於等待狀態。
  3. 實現方式2:離線批處理
    • 衛星機:完成面向使用者的輸入輸出,中鍵結果暫存在磁碟或磁帶上。
    • 主機與衛星機並行工作。
    • 作業控制命令由監督程式來執行,完成如裝入程式、編譯、執行的操作。
    • 優點:同一批內個作業的自動一次更替,改善了主機CPU和I/O裝置的使用效率,提高了吞吐量。
    • 缺點:磁帶或磁碟需要人工裝卸,作業需要人工分類,監督程式易遭到使用者程式的破壞。
    • 特徵:
      • 自動性:磁碟上的一批作業自動地諸葛依次的執行。
      • 順序性:各個作業順序的進入記憶體,順序完成作業。
      • 單道性:記憶體中只有一道程式執行
      • CPU和I/O裝置使用忙先不均

1.2.3多道批處理系統

  1. 優點:

    • 提高CPU的利用率;
    • 可提高記憶體和I/O裝置利用率;
    • 增加系統吞吐率。
  2. 多道批處理系統的特性

    • 多道性

      多道程式駐留記憶體:提高了資源的利用率

      程式併發執行:提高了系統的吞吐率

    • 無序性

      作業進入記憶體先後順序和完成的先後順序無對應性

    • 排程性

      作業提交給形同需經歷兩次排程(作業排程、程序排程);

  3. 單道與多道批處理的比較

  1. 缺點

    使用者互動性差:整個作業完成後或中間出錯時,才與使用者互動,不利於除錯和修改

    作業平均週轉時間長:短作業的週轉時間顯著增長。

  2. 多道批處理系統需要解決的問題

    • 處理機爭用

    • 記憶體分配和保護

    • I/O裝置分配

    • 檔案的組織和管理

    • 作業管理

    • 使用者與系統的介面

1.2.4分時系統

由於使用者的需要:人——機互動、共享主機。

計算機的系統資源進行分割,每個時間段稱為一個時間偏,每個使用者一次輪流使用時間片。

  1. 特徵:
    • 多路性
    • 獨立性
    • 及時性
    • 互動性

1.2.5實時系統

及時響應外部事件的請求,在規定的時間內完成對該事件的處理,並控制所有實時任務協調一致地執行。

  1. 設計目標
    • 響應時間短
    • 實時時鐘管理
    • 連續人機對話
    • 過載防護
    • 高度可靠性和安全性
  2. 任務型別
    • 週期性實時任務
    • 非週期性實時任務
分時系統 實時系統
多路性 多終端服務 多路現場、多個物件、多個執行機構
獨立性 終端服務互相獨立、互不干擾 資訊採集和物件控制互不干擾
及時性 使用者可接受的 實時資訊系統同分時系統 實時控制系統要求高
互動性 僅對特定服務
可靠性 一般 強,通常採取容錯措施

1.2.6現代作業系統

  • 網路作業系統

  • 分散式作業系統

    網路作業系統的更高階的形式,網路作業系統之間又主從關係,而分散式作業系統則沒有

  • 嵌入式作業系統

1.3作業系統的基本特徵

1.3.1併發

多個事件在同一時間間隔內發生。

  • 實現機制:程序

  • 多道程式處理時,巨集觀上併發,微觀上交替執行。

  • 程序:

    程序是系統中能夠獨立執行並作為資源分配的基本單位,由一組機器指令、資料和堆疊等組成,是一個動態實體。

  • 執行緒:

    一個程序中包含多個執行緒,一般將程序作為分配資源的基本單位,而把執行緒作為獨立執行和獨立排程的基本單位。程序比執行緒的開銷小,排程的開銷小,能夠有效地提高系統內多個程式間併發執行的程度。

1.3.2 共享

資源可供記憶體中多個併發執行的程序/執行緒共同使用。

  1. 資源共享地方式
    • 互斥共享:資源分配後到釋放前,不能被其他程序所用。
    • 同時訪問:巨集觀上是同時的,微觀上程序可能是交替地對資源僅從訪問。
  2. 併發和共享是作業系統地兩個最基本地特徵:
    • 資源的共享以程式地並行執行為條件;
    • 對資源共享實施有效的管理,提高程式並行執行地程度。

1.3.3 虛擬

通過某種技術將物理實體變為若干個邏輯上的對應物,主要目的是提高資源的利用率

  • 時分複用技術

    亦即分時使用方式,提高資源地利用率。

  • 空分複用技術

    提高儲存空間地利用率

  • 虛擬機器

1.3.4 非同步

指程序地執行順序和執行時間地不確定性

1.4 作業系統地主要功能

1.4.1 處理機管理功能

  • 主要功能

    • 建立和撤銷程序(執行緒)——程序控制
    • 對諸程序地執行進行協調;——程序同步
    • 實現程序(執行緒)之間地資訊交換;——程序通訊
    • 完成處理機資源地分配、回收排程扽功能。處理機排程地單位可為程序或執行緒。——程序排程。
  • 程序控制

    主動地改變程序地狀態

  • 程序同步

    協調併發程序之間地推進步驟,以協調資源的共享。

    • 互斥方式:主程序訪問臨界資源時採用這種方式。
    • 同步方式:在專案合作完成任務地基礎南橫之間由同步機構對執行次序加以協調。

1.4.2 儲存器管理功能

  • 管理目標:提高利用率、方便使用者使用、提供足夠地儲存空間、方便程序併發執行
  • 記憶體分配:動態分配和靜態分配。提高利用率,允許執行中地車光緒申請附加空間
  • 記憶體保護:保護各個程式旨在自己的記憶體空間中執行,彼此互不干擾。
  • 地址對映:程式中的邏輯地址到記憶體單元中的實體地址地對映。
  • 記憶體擴充:虛擬儲存技術,從邏輯上擴充記憶體容量

1.4.3 裝置管理功能

  • 管理目標:方便黑色被使用,提高CPU/IO裝置利用率,提高I/O速率。
  • 緩衝區技術:匹配CPU和外設地速度
  • 裝置分配和回收
  • 裝置獨立性:使用者申請的裝置與實際操作地實體地址無關。

1.4.4檔案管理功能

  • 管理目標:對使用者和系統檔案進行管理,以方便使用者使用並保證檔案安全。
  • 檔案儲存空間管理
  • 目錄管理
  • 檔案地讀寫
  • 檔案保護

1.4.5 作業系統與使用者之間地介面

  • 目標:提供一個友好地使用者訪問作業系統的介面
  • 使用者介面:
    • 聯機使用者介面
    • 離線使用者介面:為批處理作業的使用者提供的。
  • 程式介面

1.4.6現代作業系統的新功能

1.5 OS結構設計

1.5.1 軟體工程的基本概念

  • 軟體: 計算機執行時,能提供所要求的功能和效能的 指令 程式 的集合,以及該程式能夠正確地處理資訊的 資料結構

  • 軟體工程:運用系統的、規範的和可定量的方法,來開發、執行和維護軟體;目的是為了解決在軟體開發中所出現的程式設計隨意、軟體質量不可保證以及維護困難等問題。

1.5.2 傳統作業系統結構

  1. 無結構作業系統

    OS時一組過程的集合,各個過程之間可以相互呼叫,內部不存在任何結構。

    • 缺點:即龐大由雜亂,缺乏清晰的程式結構,除錯困難。程式難以閱讀和理解,增加了維護人員的負擔。
  2. 模組化結構OS

    按照功能劃分為若干具有一定的獨立性和大小的模組,每一個模組由眾多服務過程盛,可以隨意呼叫其他模組中的服務過程。

    • 優點:
      • 提高OS設計的正確性、可理解性和可維護性
      • 增強OS的適應性
      • 加速OS的開發過程
    • 缺點:
      • 模組劃分和模組介面難保正確和合理
      • 模組之間的依賴關係複雜,降低了模組之間的相對獨立性。
  3. 分散式結構OS

    每一層都僅使用其底層所提供的功能和服務,這樣可使系統的除錯和驗證都變得容易。

    • 優點:保證系統的正確性,擴充性和易維護性。
    • 缺點:系統效率低。

1.5.3 客戶/伺服器模式

OS分為了兩部分,一組伺服器(程序),用於提供各種服務;核心,用來處理客戶和伺服器之間的通訊。

  • 優點:資料的分佈處理和儲存、便於集中管理、靈活性和可擴充新、已於改變應用軟體。

1.5.4 面向物件的程式設計

  • 優點:可修改性和可擴充性、繼承性、正確性和可靠性。

1.5.5 微核心OS結構

把作業系統分成若干分別完成一組特定功能的服務程序,等待客戶提出請求;而系統核心只是先作業系統的基本功能。

  • 優點:提高了系統的可擴充套件性、增強了系統的可靠性、提供了對分散式系統的支援、融入了面向物件技術
  • 存在問題:執行效率有所降低
  • 現代作業系統的特點
    • 微核心結構
    • 多執行緒
    • 對稱處理
    • 分散式作業系統
    • 面向物件設計