【計算機操作系統學習筆記】第一章:操作系統引論

前言:

感謝大佬們的不求回報的分享,
感謝好人們的百忙之中的幫助。

愛的傳遞,希望能幫到更多的人。
在這裏插入圖片描述

1.1 操作系統的目標和作用……P1

1.1.1 操作系統的目標:

方便性,有效性,可擴充性和開放性。

1.1.2 操作系統的作用:

  1. OS作爲用戶與計算機硬件系統之間的接口。
    在這裏插入圖片描述
  2. OS作爲計算機系統資源的管理者。
  3. OS實現了對計算機資源的抽象。
    在這裏插入圖片描述

備註:

  1. 計算機系統資源可分爲四類:處理機、存儲器、I/O設備、文件(數據和程序)。

處理機管理是用於分配和控制處理機。
存儲器管理主要負責內存的分配和回收。
I/O設備管理是負責I/O設備的分配(回收)與操縱。
文件管理是用於實現對文件的存取、共享和保護。

  1. I/O設備管理軟件實現了對計算機硬件操作的 第一個層次的抽象
    文件管理軟件實現了對資源操作的 第二個層次的抽象

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

  1. 不斷提高計算機資源利用率。
  2. 方便用戶。
  3. 器件的不斷更新換代。
  4. 計算機體系結構的不斷髮展。
  5. 不斷提出新的應用需求。

1.2 操作系統的發展過程……P5

1.2.1 未配置操作系統的計算機系統:

  1. 人工操作方式。

缺點:
1.用戶獨佔全機。
CPU等待人工操作。

  1. 脫機輸入輸出(Off-Line I/O)方式。

在這裏插入圖片描述

1.2.2 單道批處理系統:

  1. 單道批處理系統(Simple Batch Processing System)的處理過程。

在這裏插入圖片描述

  1. 單道批處理系統的缺點:最主要的缺點就是,系統中的資源得不到充分的利用。

在這裏插入圖片描述

1.2.3 多道批處理系統(Multiprogrammed Batch Processing System)

  1. 多道程序設計的基本概念。

在這裏插入圖片描述

  1. 多道批處理系統的優缺點

資源利用率高。
系統吞吐量大。
平均週轉時間長。
無交互能力。

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

處理機爭用問題。
內存分配和保護問題。
I/O設備分配問題。
文件的組織和管理問題。
作業管理問題。
用戶與系統的接口問題。

注:
操作系統的定義

  • 操作系統是一組能有效地組織和管理計算機硬件和軟件資源,合理地對各類作業進行調度,以及方便用戶使用的程序的集合。

1.2.4 分時系統(Time Sharing System)

  1. 分時系統的引入。
    如果說推動多道批處理系統形成和發展的主要動力是,提高資源的利用率和吞吐量;那麼,推動分時系統形成和發展的主要動力則是,爲了滿足用戶對人——機交互的需求。

人——機交互。
共享主機。

  1. 分時系統實現中的關鍵問題。

及時接收。
及時處理。

  • 作業直接進入內存。
  • 採用輪轉運行方式。
    注:爲避免一個作業長期獨佔處理機,引入了時間片的概念。一個時間片,就是一段很短的時間(例如:30ms)。
  1. 分時系統的特徵

多路性。
獨立性。
及時性。
交互性。

1.2.5 實時系統(Real Time System)

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

  1. 實時系統的類型。

工業(武器)控制系統。

  • 火炮的自動控制系統、飛船的自動駕駛系統。

信息查詢系統。

  • 飛機或火車票的訂票系統。

多媒體系統。
嵌入式系統。

  1. 實時任務的類型。

週期性實時任務和非週期性實時任務。

  • 都必須聯繫着一個截止時間(Deadline),或稱爲最後期限。 又可分爲:(1)開始截止時間(2)完成截止時間。

硬實時任務和軟實時任務。

  1. 實時系統與分時系統特徵的比較。

多路性。
獨立性。
及時性。
交互性。
可靠性。

1.2.6 微機操作系統的發展

  1. 單用戶單任務操作系統。

CP/M
MS-DOS

  1. 單用戶多任務操作系統。
  2. 多任務多用戶操作系統。

1.3 操作系統的基本特性……P13

批處理系統有着高的資源利用率和系統吞吐量;分時系統能獲得及時響應;實時系統具有實時特徵。除此之外,它們還共同具有併發、共享、虛擬、異步四個基本特徵。

1.3.1 併發(Concurrence)

  1. 並行和併發。
  2. 引入進程。

在一個未引入進程的系統中,在屬於同一個應用程序的計算程序和I/O程序之間只能是順序執行,即:只有計算程序執行告一段落後,才允許I/O程序執行。
注:
進程:是指在系統中能獨立運行並作爲資源分配的基本單位,它是由一組機器指令、數據、堆棧等組成的,是一個能獨立運行的活動實體。

1.3.2 共享(Sharing)

  1. 互斥共享方式。

把這種在一段時間內只允許一個進程訪問的資源,稱爲臨界資源(或獨佔資源)。

  1. 同時訪問方式。

併發和共享是多用戶(多任務)OS的兩個最基本的特徵。

1.3.3 虛擬(Virtual)

在OS中也是利用時分複用空分複用技術來實現“虛擬”的。

  1. 時分複用技術。

虛擬處理機技術。
虛擬設備技術。

  1. 空分複用技術。

1.3.4 異步(Asynchronism)

**1.4 操作系統的主要功能……P16

1.4.1 處理機管理功能

  1. 進程控制。

進程控制還應包括爲一個進程創建若干個線程

進程控制的主要功能
爲作業創建進程、撤消(終止)已結束的進程、控制進程在運行過程中的狀態轉換。

  1. 進程同步。

進程同步機制:主要任務是爲多個進程(含線程)的運行進行協調。
常用的協調方式:

  • (1)進程互斥方式。
  • (2)進程同步方式。

注:

  • 最簡單的用於實現進程互斥的機制是,爲每一個臨界資源配置一把鎖W,當鎖打開時,進程可以對該臨界資源進行訪問;而當鎖關上時,則禁止進程訪問該臨界資源。
  • 實現進程同步,最常用的機制是信號量機制。
  1. 進程通信。

進程通信的任務是:實現相互合作進程之間的信息交換

  1. 調度。
    在傳統的OS中,調度包括作業調度進程調度兩步。

作業調度。

  • 按照一定算法選擇出若干作業分配給所需的資源。

進程調度。

  • 按照一定算法選擇一個進程,將處理機分配給它。

1.4.2 存儲器管理功能

存儲器管理的主要任務,爲多道程序的運行提供良好的環境、提高存儲器的利用率、方便用戶使用、並能從邏輯上擴充內存。
爲此,存儲器管理應具有內存分配和回收內存保護地址映射內存擴充 、等功能。

  1. 內存分配。

內存分配的主要任務

  • 爲每道程序分配內存空間,使它們“各得其所”。
  • 提高存儲器的利用率,儘量減少不可利用的內存空間(碎片)。
  • 允許正在運行的程序申請附加的內存空間,以適應程序和數據動態增長的需要。

OS在實現內存分配時,可採取靜態分配動態分配兩種方式。

  1. 內存保護。

主要任務:

  • 確保每道用戶程序都僅在自己的空間內運行,彼此互不干擾。
  • 絕不允許用戶程序訪問操作系統的程序和數據,也不允許用戶程序轉移到非共享的其它用戶程序中去執行。

內存保護機制:一種比較簡單的就是設置兩個界限寄存器,分別用於存放正在執行程序的上界和下界。

  1. 地址映射。
    地址映射功能:即能夠將地址空間中的邏輯地址 轉換 爲內存空間中與之對應的物理地址
  2. 內存擴充。

藉助虛擬存儲技術,從邏輯上擴充內存容量。

爲了能在邏輯上擴充內存,系統必須設置內存擴充機制(包含少量的硬件)。

  • 請求調入功能。
  • 置換功能。

1.4.3 設備管理功能

主要任務:
(1)完成用戶進程提出的I/O請求,爲用戶進程分配所需的I/O設備。並完成指定的I/O操作。
(2)提高CPU和I/O設備的利用率,提高I/O速度,方便用戶使用I/O設備。
爲實現上述任務,設備管理應具有緩衝管理設備分配設備處理虛擬設備、等功能。

  1. 緩衝管理。

最常見的緩衝區機制:

  • 單緩衝機制、
  • 能實現雙向同時傳送數據的雙緩衝機制、
  • 能供多個設備同時使用的公用緩衝池機制。
  1. 設備分配。
    爲實現設備分配,系統中應設置設備控制表控制器控制表等數據結構,用於記錄設備及控制器等的標識符和狀態。
  2. 設備管理。
    (1)設備管理程序又稱爲設備驅動程序
    (2)其基本任務是用於實現CPU和設備控制器之間的通信,即:由CPU向設備控制器發出I/O命令,要求它完成指定的I/O操作。

1.4.4 文件管理功能

主要任務是:對用戶文件系統文件進行管理以方便用戶使用,並保證文件的安全性。
爲此,文件管理應具有對文件存儲空間的管理目錄管理文件的讀/寫管理文件的共享與保護、等功能。

  1. 文件存儲空間的管理。

主要任務是:

  • 爲每個文件分配必要的外存空間,提高外存的利用率,進而提高文件系統的存、取速度。
  • 爲此,系統中應設置相應的數據結構,用於記錄文件存儲空間的使用情況,以供分配存儲空間時參考。還應具有對存儲空間進行分配和回收的功能。
  1. 目錄管理。

主要任務是:

  • 爲每個文件建立一個目錄項,目錄項包括文件名、文件屬性、文件在磁盤上的物理位置等,並對衆多的目錄項加以有效的組織,以實現方便的按名存取。
  • 即:用戶只需提供文件名,即可對該文件進行存取。
  1. 文件的讀/寫管理和保護。

文件的讀/寫管理。

  • 該功能是根據用戶的請求,從外存中讀取數據,或將數據寫入外存。
  • 在進行文件讀/寫時,系統先根據用戶給出的文件名去檢索文件目錄,從中獲得文件在外存中的位置。然後,利用文件讀/寫指針,對文件進行讀/寫。一旦讀/寫完成,便修改讀/寫指針,爲下一-次讀/寫做好準備。
  • 由於讀和寫操作不會同時進行,故可合用一個讀/寫指針。

文件保護:

  • ①防止未經覈准的用戶存取文件。
  • ②防止冒名頂替存取文件。
  • ③防止以不正確的方式使用文件。

1.4.5 操作系統與用戶之間的接口

  1. 用戶接口。

爲了便於用戶直接或間接地控制自己的作業,操作系統向用戶提供了命令接口。
用戶可通過該接口向作業發出命令以控制作業的運行。
該接口又進步分爲聯機用戶接口脫機用戶接口圖形用戶接口三種。

  1. 程序接口。

1.4.6 現代操作系統的新功能

  1. 系統安全。

認證技術。
密碼技術。
訪問控制技術。
反病毒技術。

  1. 網絡的功能和服務。

網絡通信。
資源管理。
應用互操作。

  1. 支持多媒體。

接納控制功能。
實時調度。
多媒體文件的存儲。

1.5 OS結構設計……P22

軟件質量可用這樣幾個指標來評價:功能性有效性可靠性易使用性可維護性易移植性

1.5.1 傳統操作系統結構

我們把早期的無結構的OS(第一代)、模塊化結構的OS(第二代)、分層式結構的OS(第三代),都稱爲傳統結構的OS
而把微內核結構的OS稱爲現代結構的OS

  1. 無結構操作系統。
  2. 模塊化操作系統。

模塊化程序設計技術的基本概念。
在這裏插入圖片描述
模塊獨立性。

  • 衡量模塊獨立性的兩個標準:
    (1)內聚性。
    (2)耦合性。

模塊接口法的優缺點。

  • 優點:
  • 提高OS設計的正確性、可理解性、可維護性。
  • 增強OS的可適應性。
  • 加速OS的開發過程。
  • 缺點:
  • 很難滿足實際需求。
  • 各模塊齊頭並進,無法找到一個可靠的決定順序,造成各種決定的“無序性”。
  1. 分層式結構OS。

概念。

  • 自底向上的分層設計的基本原則:每一步設計都建立在可靠的基礎上。

優缺點。

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

1.5.2 客戶/服務器模式(Client/Server Model)簡介

客戶/服務器模式(Client/Server Model)簡稱C/S模式

  1. 客戶/服務器模式的由來、組成、類型。

客戶/服務器系統主要有3部分組成

  • 客戶機。
  • 服務器。
  • 網絡系統。
  1. 客戶/服務器之間的交互。

一次完整的交互過程可分爲以下四步

  • 客戶發送請求消息。
  • 服務器接收消息。
  • 服務器回送消息。
  • 客戶機接收消息。
  1. 客戶/服務器模式的優缺點。

數據的分佈處理和存儲。
便於集中管理。
靈活性和擴充性。
易於改編應用軟件。

1.5.3 面向對象的程序設計(Object-Orientated Programming)技術簡介

  1. 基本 概念。
    所謂對象,是指現實世界中具有相同的屬性服從相同的規則的一系列事務(事務可以是一個物理實體、一個概念或一個軟件模塊等)的抽象,而把其中的具體事務稱爲對象的實例。

對象

  • 面嚮對象的技術中,是利用被封裝的數據結構(變量)和一組對它進行 操作的過程(方法)來表示系統中的某個對象的,如圖1-8 所示。對象中的變量(數據)也稱爲屬性。它可以是單個標量或一張表。 面向對象中的方法是用於執行某種功能的過程,它可以改變對象的狀態,更新對象中的某些數據值或作用於對象所要訪問的外部資源。如果把一個文件作爲一個對象(見圖1.9), 該對象的變量便是文件類型。文件大小,文件的創建者等。對象中的方法包含對文件的操作,如創建文件、打開文件、讀文件、寫文件、關閉文件等。
  • 對象中的變量(數據)對外是隱蔽的,因而外界不能對它直接進行訪問,必須通過該對象中的一組方法(操作函數)對它進行訪問。例如要想對圖1-9所示的文件A執行打開操作,必須用該對象中的打開過程去打開它。同樣地,對象中的一組方法的實現細節也是隱蔽的。因此對象中的變量可以得到很好的保護,而不會允許未經受權者使用和對它進行不正確的操作。
    在這裏插入圖片描述

對象類

  • 在實踐中,有許多對象可能表示的是同一類事物, 每個對象具有自己的變量集合,而它們所具有的方法是相同的。如果爲每一個相似的對象都定義一組變量和方法, 顯然是低效的,由此產生了“對象類”的概念,利用“對象類”來定義一組大體相似的對象。一個類同樣定義了一組變量和針對該變量的一組方法,用它們來描述一組對象的共同屬性和行爲類是在對象上的抽象,對象則是類的實例。對象類中所定義的變量在實例中均有具體的值。
  • 例如,我們將文件設計成一個類,類的變量同樣是文件類型、文件大小和創建者等。類中的方法是文件的創建、打開、讀寫、關閉等。圖1-9 示出了一個文件類,在類的變量中沒有具體數值,一旦被賦予了具體數值就成了文件A對象。對象類的概念非常有用,因爲它極大地提高了創建多個相似對象的效率。

繼承

  • 在面嚮對象的技術中,可以根據已有類來定義一個新的類,新類被稱爲子類(B),原來的類被稱爲父類(A),見圖1-10所示。
  • 繼承是父類和子類之間共享變量和方法的機制,該機制規定子類自動繼承父類中定義的變量和方法,並允許子類再增加新的內容。繼承特性可使定義子類變得更容易。一個父類可以定義多個子類,它們分別是父類的某種特例,父類描述了這些子類的公共變量和方法。類似地,這些子類又可以定義自己的子類,通過此途經可以生成一個繼承的層次。另外,也允許一個子類有兩個父類或多個父類,它可以從多個父類獲得繼承,此時稱爲“多重繼承”。在這裏插入圖片描述
  1. 面向對象的優點

(1) 通過“重用”提高產品質量和生產率。

  • 在面向對象技術中可通過“重用”以前項目中經過精心測試的對象或“重用”由其他人編寫、測試和維護的對象類來構建新的系統,這不僅可大大降低開發成本,而且能獲得更好的系統質量。

(2)使系統具有更好的易修改性和易擴展性。

  • 通過封裝,可隱蔽對象中的變量和方法,因而當改變對象中的變量和方法時,不會影響到其它部分,從而可方便地修改老的對象類。另外,繼承是面向對象技術的重要特性,在創建一個新對象類時,通過利用繼承特性可顯著減少開發的時空開銷,使系統具有更好的易擴展性和靈活性。

(3)更易於保證系統的“正確性”和“可靠性”。

  • 對象是構成操作系統的基本單元,由於可以獨立地對它進行測試,易於保證每個對象的正確性和可靠性,因此也就比較容易保證整個系統的正確性和可靠性。此外,封裝對對象類中的信息進行了隱蔽,這樣又可有效地防止未經授權者的訪問和用戶不正確的使用,有助於構建更爲安全的系統。

1.5.4 微內核OS結構

  1. 基本概念。

足夠小的內核。

  • 微內核並非是一個完整的操作系統,而只是將操作系統中的最基本的部分放入微內核
  • 通常包含有:
    (1)與硬件處理緊密相關的部分。
    (2)一些較基本的功能。
    (3)客戶和服務器之間的同信。

基於客戶/服務器模式

  • 由於客戶/服務器模式具有非常多的優點,故在單機微內核操作系統中幾乎無一例外地都採用客戶/服務器模式,將操作系統中最基本的部分放入內核中,而把操作系統的絕大部分功能都放在微內核外面的一組服務器(進程)中實現,
  • 如用於提供對進程(線程)進行管理的進程(線程)服務器、提供虛擬存儲器管理功能的虛擬存儲器服務器、提供I/O設備管理的I/O設備管理服務器等,它們都是被作爲進程來實現的,運行在用戶態,客戶與服務器之間是藉助微內核提供的消息傳遞機制來實現信息交互的。圖1-11示出了在單機環境下的客戶/服務器模式。在這裏插入圖片描述

應用”機制和策略分離“原理。

  • 傳統的OS,將機制放在OS的內核的較低層,把策略放在內核的較高層次中。
  • 而在微內核OS中,通常將機制放在OS的微內核中。

採用面向對象技術。

  1. 微內核的基本功能。

進程(線程)管理。
低級存儲管理。
中斷和陷入處理。

  1. 微內核OS的優點。

提高了系統的可擴展性。
增強了系統的可靠性。
可移植性。
提供了對分佈式系統的支持。
融入了面向對象技術。

  1. 微內核OS存在的問題

效率降低

  • 最主要的原因是,在完成一次客戶對操作系統提出的服務請求時,需要利用消息實現多次交互和進行用戶/內核模式與上下文的多次切換。
  • 然而,在早期的OS中,用戶進程在請求取得OS服務時,一般只需進行兩次上下文的切換: 一次是在執行系統調用後由用戶態轉向系統態時;另一次是在系統完成用戶請求的服務後,由系統態返回用戶態時。
  • 微內核OS中,由於客戶和服務器、服務器和服務器之間的通信都需通過微內核,致使同樣的服務請求至少需要進行四次上下文切換。第一次是發生在客戶發送請求消息給內核,以請求取得某服務器特定的服務時;第二次是發生在由內核把客戶的請求消息發往服務器時:第三次是當服務器完成客戶請求後,把響應消息發送到內核時;第四次是在內核將響應消息發送給客戶時。
  • 實際情況是往往還會引起更多的上下文切換。例如,當某個服務器自身尚無能力完成客戶請求而需要其它服務器的幫助時,如圖1-12所示,其中的文件服務器還需要磁盤服務器的幫助,這時就需要進行8次上下文的切換。在這裏插入圖片描述

爲了改善運行效率,可以重新把一些常用的OS基本功能由服務器移入微內核中。

End :

如果覺得有收穫,就請我喝杯咖啡吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章