1. 程式人生 > >計算機作業系統知識點總結(前3章)

計算機作業系統知識點總結(前3章)

第一章 作業系統引論

1、作業系統是什麼?

作業系統為使用者完成所有“硬體相關,應用無關“的工作,以給使用者方便、高效、安全的使用環境

1.1、定義:

   作業系統是一個大型的程式系統,它負責計算機的全部軟、硬體資源的分配、排程工作,控制並協調多個任務的活動,實現資訊的存取和保護。它提供使用者介面,使使用者獲得良好的工作環境。

1.2、目標

(1)、方便性:配置OS後計算機系統更容易使用

(2)、有效性:改善資源利用率;提高系統 吞吐量

(3)、可擴充性:OSde結構(如層次化的結構:無結構發展->模快化結構->層次化結構->微核心結構)

(4)、開放性:OS遵循世界標準範圍。

1.3、作用:

(1)、OS作為使用者與計算機硬體系統之間的介面(API/CUI/GUI)

即:OS處於使用者與計算機硬體系統之間,使用者通過OS來使用計算機系統。

(2)、OS是計算機系統資源的管理者(處理機、儲存器、I/O裝置、檔案)

   處理機管理是用於分配和控制處理機

   儲存器管理是負責記憶體的分配與回收

   I/O裝置管理是負責I/O裝置的分配(回收)與操縱

   檔案管理是用於實現檔案的存取、共享和保護

(3)、OS實現了對計算機資源的抽象(OS是擴充機/虛擬機器)

2、作業系統的發展過程

2.1、未配置作業系統的計算機系統(40年代 手工操作階段)

(1)、人工操作方式:使用者獨佔全機,資源空閒浪費。

缺點:

  • 手工裝卸、人工判斷、手工修改與除錯記憶體指令等造成CPU空閒;
  • 提前完成造成剩餘預約時間內的CPU完全空閒;
  • I/O裝置的慢速與CPU的速度不匹配造成的CPU空閒等待時間

(2)、離線輸入輸出(Off-Line I/O)方式。

優點:

  • 減少了CPU的空閒時間
  •  提高了I/O速度

2.2、單道批處理系統(50年代)

(1)、解決問題:

     單道批處理系統是在解決人機矛盾和CPU與I/O裝置速度不匹配矛盾的過程中形成的。批處理系統旨在提高系統資源的利用率和系統的吞吐量。(但單道批處理系統仍不能充分利用資源,故現在已很少用)

單道批處理分為:聯機批處理、離線批處理
     聯機批處理:CPU直接控制作業輸入輸出
     離線批處理:由外圍機控制作業輸入輸出

(2)、缺點:

  • 系統資源利用率低(因為記憶體中只存在一道程式,I/O請求成功前CPU都處於空閒狀態)

(3)、特徵

  • 自動性。正常情況下,一批作業能自動依次執行,無需人工干預。
  • 順序性。各道作業是順序進入記憶體,FCFS
  • 單道性。記憶體中任何時候只能有一道作業。

2.3、多道批處理系統(60年代初)

目的:為了進一步提高資源利用率和系統吞吐量

   該系統中,使用者提交的作業都先存在外存中,在作業A在執行I/O請求時,CPU空閒,此時呼叫作業B,防止CPU空閒。同理按一定的演算法呼叫作業,防止CPU空閒

PS:推動多道批處理系統形成和發展的動力是提高資源利用率和系統吞吐量。

優點:

  • 資源利用率高(資源指CPU、儲存器、裝置、資料)
  • 系統吞吐量大(系統吞吐量指系統在單位時間完成的總工作量(作業數量))

缺點:

  • 平均週轉時間長(作業的週轉時間是指從作業進入系統開始,直至其完成並退出系統為止所經歷的時間。)
  • 無互動能力

特點:

  • 多道:記憶體同時存在多個作業
  • 巨集觀上並行:同時有多道程式在記憶體執行,某一時間段上,各道程式不同程度地向前推進。
  • 微觀上序列:任一時刻最多隻有一道作業佔用CPU,多道程式交替使用CPU 

還需解決的問題:

  • 處理機管理問題
  • 記憶體管理問題(記憶體分配和保護)
  • I/O裝置管理問題
  • 檔案管理問題(檔案的組織和管理)
  • 作業管理問題
  • 使用者與系統的介面(OS還應提供使用者與OS的介面,方便使用者操作)

2.4、分時系統(60年代中)

分時系統是指在一臺主機上連線多個帶有顯示器和鍵盤的終端,同時允許多個使用者通過自己的鍵盤,以互動的方式使用計算機,共享主機中的資源。

PS:推動分時系統形成和發展的主要動力是使用者的需要:互動、共享主機、方便上機

關鍵問題:

  • 及時接收(多路卡和緩衝區):作業直接進入記憶體、不允許一個作業長期佔用處理機
  • 即時處理(劃分時間片):多個使用者分時使用主機,每一使用者分得一個時間片,用完這個時間片後作業系統將處理機分給另一使用者,如此迴圈,每一使用者可以週期性地獲得CPU使用權,這樣每一使用者都有一種獨佔CPU的感覺。

特徵:

  • 多路性:允許同一主機聯接多臺終端。
  • 獨立性:每一使用者獨佔一個終端;每個使用者感覺不到其他使用者的存在。
  • 及時性:使用者請求能及時響應。
  • 互動性:  可進行廣泛的人機對話。

2.5、實時作業系統(60年代中)

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

特徵:

  • 多路性
        對實時處理系統,系統按分時原則為多個終端服務;
        對實時控制系統,系統經常對多路現場資訊進行採集;以及對多個物件或多個執行機構進行控制。
  • 獨立性
         實時處理系統,每個終端使用者向實時系統提出服務請求時,彼此獨立;
        實時控制系統,對資訊的採集和對物件的控制彼此不干擾。
  • 及時性(開始截止時間/完成截止時間)
  • 互動性(僅限於訪問專用服務程式)
  • 可靠性(多級容錯措施保障系統和資料安全)

2.6、微機作業系統

  • 單使用者單任務作業系統:CP/M(75年)、MS-DOS(81年)。
  • 單使用者多工作業系統:OS/2(87年)、MS WINDOWS(90年windows 3.0)。
  • 多使用者多工作業系統:UNIX(70年)

2.7、多處理機作業系統

2.8、網路作業系統

2.9、分散式作業系統

2.10、嵌入式作業系統

3、作業系統的基本特性

3.1、併發

併發是指在記憶體中放多道作業, 在一個時間段上來看,每一道作業都能不同程度地向前推進。但在任何一個時間點上只能有一道佔用CPU。

兩個概念:

  • 序列:在記憶體中每次只能放一道作業,只有它完全執行完後別的作業才能進入記憶體執行。
  • 並行: 存在於有多個CPU的環境中, 在記憶體中放多道作業,在任一時間點上都可能有多道作業在不同的CPU同時執行。 

3.2、共享

系統中的資源可供多個併發的程序共同使用。

根據資源屬性的不同,有兩種資源共享方式:

  •  互斥共享方式(臨界/獨佔資源)
  •  同時訪問方式
PS:併發和共享是OS的兩個最基本的特性,二者互為條件!

3.3、虛擬

   通過某種技術將一個物理實體對映為若干個邏輯上對應物(如CPU;一個螢幕可看成多個螢幕-視窗)。或將多個物理實體對映為一個邏輯實體(如虛擬儲存是記憶體和外存的虛擬)。

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

  • CPU——多道程式設計技術/每個使用者(程序)的“虛擬處理機"
  • 儲存器——每個程序都佔有的地址空間(指令+資料+堆疊)
  • I/O裝置——印表機、多視窗或虛擬終端

3.4、非同步

不確定性:什麼時候開始,執行多久時間,終止時間

4、作業系統的主要功能

4.1、處理機管理功能:程序控制、程序同步、程序通訊、排程(作業排程、程序排程)

4.2、儲存器管理功能:記憶體分配、記憶體保護、儲存擴充、地址對映

4.3、裝置管理功能:緩衝管理、裝置分配、裝置處理

4.4、檔案管理功能:檔案儲存空間的管理、目錄管理、檔案的讀 /寫管理和保護

4.5、作業系統與使用者之間的介面:命令介面、程式介面、圖形介面

4.6、現代OS的新功能:

  • 系統安全:為保障資料的保密性、完整性和可用性,常使用的技術:認證技術、密碼技術、訪問控制技術、反病毒技術
  • 網路功能和服務:網路通訊、資源管理、應用互操作
  • 支援多媒體

5、作業系統的結構設計

傳統的作業系統結構

  • 無結構OS
  • 模組化OS結構
  • 分層式OS結構

現代OS結構——微核心結構

第二章:程序的描述與控制

1、程序的定義和特徵

程序有很多各式各樣的定義,如: 

  •  行為的一個規則叫做程式,程式在處理機上執行時所發生的活動稱為程序。
  • 具有一定功能的程式在某個資料集合上的一次活動。
  • 程序是一個程式與其資料一道通過處理機的執行所發生的活動。
  • 程序是指程序實體的執行過程,是系統進行資源分配和排程的獨立單位。
  • 程式的執行過程,從開始到 結束

程序實體(簡稱程序):程式塊、相關的資料、程序控制塊PCB

程序的特徵:

  • 結構性:由程式(段)、資料(段)、程序控制塊(PCB)三部分組成;
  • 動態性:程序是程式的執行過程;
  • 併發性:多個程序可同存於記憶體中,能在一段時間內同時執行;
  • 獨立性:獨立執行的基本單位,獨立獲得資源和排程的基本單位;
  • 非同步性:各程序按各自獨立的不可預知的速度向前推進。

2、程序與程式的區別:

  • 程式是指令的有序集合,其本身沒有任何執行的含義,是一個靜態的概念。而程序是程式在處理機上的一次執行過程,它是一個動態的概念。程式是靜態的,程序是動態的;
  • 程式可以作為一種軟體資料長期存在,而程序是有一定生命期的。程式是永久的,程序是暫時的
  • 程序更能真實地描述併發,而程式不能;
  • 程序是由程式和資料、程序控制塊PCB三部分組成的;
  • 程序具有建立其他程序的功能,而程式沒有
  • 同一程式同時運行於若干個資料集合上,它將屬於若干個不同的程序。也就是說同一程式可以對應多個程序 

3、程序的3種狀態及轉換

  • 就緒狀態(Ready  R態):存在於處理機排程佇列中的所有程序,它們已經準備就緒,一旦得到CPU,就立即可以執行。這些程序所處的狀態為就緒狀態。

   就緒佇列:處於就緒狀態的程序按一定的策略排隊,同一時刻可有多個就緒佇列。

  • 執行狀態(Running  E態):正在執行的程序所處的狀態為執行狀態。
  • 等待/阻塞/睡眠狀態(Wait/Blocked   B態):若一程序正在等待某一事件發生(如等待輸入輸出工作完成),這時,即使給它CPU,它也無法執行,稱該程序處於等待狀態(阻塞、 睡眠、封鎖狀態)。
    阻塞佇列:根據阻塞原因可以設定多個佇列。

程序的狀態變遷圖:


狀態程序模型:


思考題:

1、如果系統中有N個程序,執行的程序最多幾個,最少幾個;就緒程序最多幾個最少幾個;等待程序最多幾個,最少幾個?

執行:1    0

就緒:N-1 0

等待:N   0

4、程序控制塊PCB

PCB是OS中最重要的記錄型資料結構

  • PCB是OS感知程序存在的唯一標誌
  • 程序與PCB是一一對應的。
  • PCB隨程序建立而建立,隨程序結束而回收
  • PCB應常駐記憶體

作用:

將一個不能獨立執行的程式變成一個可以獨立執行的基本單位,一個能與其他程序併發執行的程序。

程序描述資訊:

  • 程序識別符號(process ID):唯一,通常是一個整數
  • 程序名:通常基於可執行檔名(不唯一)
  • 使用者識別符號(user ID):程序組關係

5、程序同步

5.1、兩種制約關係

間接相互制約關係:系統資源競爭,程序間彼此無關

直接相互制約關係:程序間合作,彼此相關

5.2、臨界資源(Critical Resource/CR):一次僅允許一個程序訪問的資源。

5.3、臨界區(Critical Section/CS):臨界段,在每個程式中,訪問臨界資源的那段程式。 

如程式段A、B有關於變數X的臨界區,而C、D有關於變數Y的臨界區,那麼,A、B之間需要互斥執行,C、D之間也要互斥執行,而A與C、B與D之間不用互斥執行。

5.4、同步機制應遵循的規則

  • 空閒讓進
  • 忙則等待
  • 有限等待(有限時間等待,以免“死等”)
  • 讓權等待(不能進入自己的臨界區時,應及時釋放處理機,以免程序陷入“忙等”)

5.6、訊號量機制

  • 整型訊號量:定義為一個整型量,由兩個標準原子操作wait(S)(P操作)和signal(S)(V操作)來訪問。
P(S) 或 wait(S):        while S≤0 do no-op;
                               S:=S-1;

V(S) 或 signal(S):      S:=S+1;

兩種操作皆為原語操作。

程序同步練習題:

思考題:

   1、桌上有一空盤,最多允許存放一隻水果。爸爸可向盤中放一個蘋果或放一個桔子,兒子專等吃盤中的桔子,女兒專等吃蘋果。
試用P、V操作實現爸爸、兒子、女兒三個併發程序的同步。

提示:設定一個訊號量表示可否向盤中放水果,一個訊號量表示可否取桔子,一個訊號量表示可否取蘋果。

解:

設定三個訊號量S,So,Sa 。
S:表示可否向盤中放水果,初值為1。
So:表示可否取桔子,初值為0。

Sa:表示可否取蘋果,初值為0。


2、有一個倉庫,可以存放A和B兩種產品。儲存空間充分大,但要求:
(1) 每次只能存入一種產品(A或B)
(2) -N<A產品數量-B產品數量<M。
其中,N和M是正整數。試用P、V操作描述產品A與B的入庫過程。
提示:設兩個訊號量Sa、Sb
      Sa:表示允許A產品比B產品多入庫的數量

      Sb:表示允許B產品比A產品多入庫的數量

解:

設:
  互斥訊號量mutex,初值為1。
  Sa:表示允許A產品比B產品多入庫的數量,初值為M-1; 即B的數量為0,A最多為M-1

  Sb:表示允許B產品比A產品多入庫的數量,初值為N-1;即A的數量為0,B最多為N-1


3、問題描述:假定閱覽室最多容納100人閱讀,讀者進入時,必須在門口的登記表上登記,內容包括:姓名、座號等;離開時要撤銷登記內容。用P、V操作描述讀者程序的同步演算法。

4、問題描述:理髮店由一個有幾張凳子的等待室和一個放有一張理髮椅的理髮室組成。若沒有理髮的人員,理髮師睡覺;若顧客到來,且所有的椅子佔滿,則該顧客離開理髮店;若理髮師正在理髮,則該顧客就找一張椅子坐下等待;若理髮師在睡覺,則該顧客喚醒理髮師。設計一個理髮師和顧客的協調程式。


5、問題描述:設公共汽車上,司機和售票員的活動分別為:

司機:啟動汽車;              售票員:上下乘客;
          正常行車;                            關車門; 

         到站停車;                             售票;

                                                       開車門;

                                                        上下乘客;

用P、V原語描述:在汽車不斷到站,停車,行駛的過程中。兩個人的同步活動


6、程序通訊

所謂程序通訊是指程序之間資訊交換。

高階通訊:使用者可直接利用OS提供的一組通訊命令高效傳送大量資料。分為:

  • 共享儲存器系統(Shared-Memory System) :程序間通過共享某些資料結構或共享儲存區進行通訊。
  • 訊息傳遞系統 (Message Passing System)

         直接通訊:傳送程序直接把訊息傳送給接收者,並將它掛在接收程序的訊息緩衝佇列上。接收程序從訊息緩衝佇列中取得訊息。也稱為訊息緩衝通訊

         間接通訊:傳送程序將訊息傳送到某種中間實體中(信箱),接收程序從(信箱)中取得訊息。也稱信箱通訊。在網路中稱為電子郵件系統。

       思考:直接通訊與間接通訊方式的主要區別?

              前者需要兩程序都存在,後者不需要。
  • 管道(Pipe)通訊 (共享檔案方式)

   習題: 程序A1、A2,…An1通過m個緩衝區向程序B1、B2、…Bn2不斷髮送訊息。傳送和接收工作遵循下列規則:
(1)每個傳送程序一次傳送一個訊息,寫入一個緩衝區,緩衝區大小等於訊息長度
(2)對每個訊息,B1,B2,…,Bn2都須各接收一次,讀 入各自的資料區內
(3)m個緩衝區都滿時,傳送程序等待,沒有可讀訊息時,接收程序等待。
試用P、V操作組織正確的傳送和接收工作。 

提示:每個緩衝區只需寫一次但要讀n2次,因此,可以看成n2組緩衝區,每個傳送者要同時寫n2組緩衝區中相應的n2個緩衝區,而每個接收者只要讀它自己對應的那組緩衝區的對應單元。
Sin[n2]=m,表示每組緩衝區中可放的(空的)緩衝區的數目,初值為m;
Sout[n2]=0,表示每組緩衝區中可取的(已用的)緩衝區的數目,初值為0;

先將問題簡化:
設緩衝區的大小為1
有一個傳送程序A1
有二個接收程序B1、B2
設有訊號量Sin[1] 、Sin[2]  初值為1

設有訊號量Sout[1] 、Sout[2]  初值為0


向目標前進一步

解:

設緩衝區的大小為m
有一個傳送程序A1
有二個接收程序B1、B2
設有訊號量Sin[1] 、Sin[2]  初值為m

設有訊號量Sout[1] 、Sout[2]  初值為0


到達目標:

解:

設緩衝區的大小為m
有n1個傳送程序A1….An1
有n2個接收程序B1…Bn2
設有n2個訊號量Sin[n2] 初值均為m

設有n2個訊號量Sout[n2] 初值均為0


7、執行緒:是程序中的一個實體,是被系統獨立排程的基本單位。

7.1、執行緒的引入

  • 引入程序的目的是為了使多個程式更好的併發執行,改善資源利用率、提高系統效率
  • 引入執行緒則是為了減少併發執行時所付出的時空開銷,使併發粒度更細、併發性更好

7.2、程序的兩個基本屬性

  • 程序是一個資源分配的基本單位。
  • 程序是一個可獨立排程和分派的基本單位

7.3、引入執行緒的好處

  • 建立一個新執行緒花費時間少
  • 執行緒的終止時間比程序短;
  • 同進程內的執行緒切換時間比程序短;
  • 因為同一程序內的執行緒共享記憶體和檔案,因此它們之間相互通訊無須呼叫核心
  • 適合多處理機系統

7.4、執行緒的屬性

  • 輕型實體:基本不擁有資源
  • 獨立排程的基本單位
  • 可以併發執行
  • 共享程序資源


這就先總結到第二章,後面的內容在下一篇博文中。

總結重點:

第一章  作業系統引論
1.作業系統的作用
2.作業系統的發展過程
(包括解決的問題和優缺點)
3.作業系統的基本特徵
第二章 程序的描述與控制
1.程序的定義和特徵
2.程序和程式的比較
3.程序的三種基本狀態及轉換
4.PCB是什麼及其作用
5.程序間的兩種制約關係
6.臨界資源  臨界區的概念
7.同步機制應遵循的規則
8.訊號量機制-整型訊號量
(Ps:書上的經典同步問題不會考你)
9.程序通訊的型別
10.執行緒