2021-08-17

操作系統(tǒng)的發(fā)展

1. 手工操作系統(tǒng)

  • 缺點

    • 用戶獨占全機(jī),資源利用率低

    • cpu等待手工操作,cpu利用不充分

2. 批處理操作系統(tǒng)

  1. 單道批處理操作系統(tǒng)

    • 特征

      • 自動性

      • 順序性

      • 單道性

    • 缺點

      • 每次主機(jī)僅能放一次作業(yè),運(yùn)行期間高速的cpu等待低速的I/O完成的狀態(tài)
  2. 多道批處理操作系統(tǒng)

    • 特點

      • 多道

      • 宏觀上運(yùn)行

      • 微觀上運(yùn)行

    • 面臨的問題

      • 如何分配處理器

      • 多道程序內(nèi)存分配

      • I/O設(shè)備如何分配

      • 如何組織和存放大量程序和數(shù)據(jù),以方便用戶使用保證其安全性和一致性

    • 優(yōu)點

      • 資源利用率高

      • 多道程序共享計算機(jī)資源,使各資源充分利用

      • 系統(tǒng)吞吐量大

    • 缺點

      • 用戶響應(yīng)時間長

      • 不提供人機(jī)交互能力

      • 用戶不了解計算機(jī)情況,不能控制計算機(jī)

3. 分時操作系統(tǒng)

  • 特點

    • 交互性

    • 同時性

    • 獨立性

    • 及時性

  • 問題

    • 解決了人機(jī)交互問題,對一些事件不能及時做出處理

4. 實時操作系統(tǒng)

  1. 硬實時操作系統(tǒng)

  2. 軟實時操作系統(tǒng)

5. 網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)

  • 網(wǎng)絡(luò)中各種資源共享以及個計算機(jī)之間的通信

6. 個人操作系統(tǒng)

  • 如Windows,Linux等

操作系統(tǒng)運(yùn)行機(jī)制

  • 兩種指令

    • 特權(quán)指令 指計算機(jī)不允許用戶直接使用的指令。只能在和心態(tài)下執(zhí)行

    • 非特權(quán)指令 既可以在核心態(tài)游客一再用戶態(tài)下執(zhí)行

  • 兩種處理狀態(tài)

    • 核心態(tài) 此時cpu可以執(zhí)行特輕輕按指令

    • 用戶態(tài)

  • 兩種程序

    • 內(nèi)核程序 管理者,管理應(yīng)用程序,可以執(zhí)行一些特權(quán)指令

    • 應(yīng)用程序

操作系統(tǒng)

  • 內(nèi)核功能(最核心基礎(chǔ)的功能,是計算機(jī)配置上的底層軟件,實現(xiàn)操作系統(tǒng)內(nèi)核功能的程序就是內(nèi)核程序)

    • 時鐘管理

    • 中斷處理

    • 原語(設(shè)備驅(qū)動、CPU切換)

    注意:以上三個功能是最接近硬件的層次,若僅僅包含以上三個就是內(nèi)核,若還包括以下的就稱之為大內(nèi)核

    • 系統(tǒng)控制的數(shù)據(jù)處理結(jié)構(gòu)

      • 進(jìn)程管理

      • 存儲器管理

      • 設(shè)備管理

  • 非內(nèi)核功能

系統(tǒng)調(diào)用

指系統(tǒng)中各種資源都有操作系統(tǒng)統(tǒng)一掌管,因此在用戶程序中,凡是與資源有關(guān)的操作(如存儲分配,I/O操作、文件管理等),都必須通過系統(tǒng)調(diào)用的方式像操作系統(tǒng)提出服務(wù)請求,由操作系統(tǒng)代為完成。這樣可以保證系統(tǒng)的穩(wěn)定性和安全性,防止用戶非法操作。 會使處理器從用戶態(tài)進(jìn)入核心態(tài)

1. 設(shè)備管理

完成設(shè)備的請求/釋放/啟動等功能

2. 文件管理

完成文件的 讀/寫/創(chuàng)建/刪除等功能

3. 進(jìn)程管理

完成進(jìn)程的創(chuàng)建/撤銷/阻塞/喚醒等功能

4. 進(jìn)程通信

完成進(jìn)程之間的消息傳遞/信號傳遞等功能

5. 內(nèi)存管理

完成內(nèi)存分配/回收等功能

系統(tǒng)調(diào)用的過程

(系統(tǒng)調(diào)用發(fā)生在用戶態(tài),對系統(tǒng)調(diào)用的處理發(fā)生在核心態(tài))

  • 傳遞系統(tǒng)調(diào)用參數(shù)

  • 執(zhí)行陷入指令[用戶態(tài)]

    (產(chǎn)生內(nèi)中斷,使處理器從用戶態(tài)進(jìn)入核心態(tài))

    (操作系統(tǒng)獲得CPU控制權(quán) )

  • 執(zhí)行系統(tǒng)調(diào)用相應(yīng)服務(wù)程序[核心態(tài)]

  • 返回用戶程序

    注意:

    1. 陷入指令在用戶態(tài)執(zhí)行,執(zhí)行陷入指令之后立即引發(fā)一個內(nèi)中斷,從而CPU進(jìn)入核心態(tài)

    2. 發(fā)出系統(tǒng)請求旨在用戶態(tài),而對系統(tǒng)調(diào)用的相應(yīng)處理在核心態(tài)下進(jìn)行

    3. 陷入指令是唯一一個只能在用戶態(tài)執(zhí)行,而不可以在核心態(tài)執(zhí)行的指令

    4. 陷入指令又稱為訪管指令

進(jìn)程

程序:一個指令序列

進(jìn)程實體:
  • PCB

  • 程序段:程序本身

  • 數(shù)據(jù)段:運(yùn)行程序要處理的數(shù)據(jù)

1. 定義

理解:

  • 為了方便操作系統(tǒng)管理,完成各種程序并發(fā)執(zhí)行,引入了進(jìn)程,進(jìn)程實體的概念。

  • 系統(tǒng)為每個運(yùn)行的程序配置一個數(shù)據(jù)結(jié)構(gòu),稱為進(jìn)程控制塊(PCB),用來描述進(jìn)程的各種信息(如程序代碼存放位置)

  • 一般把進(jìn)程實體簡稱為進(jìn)程所謂創(chuàng)建進(jìn)程,實質(zhì)上是為了創(chuàng)建進(jìn)程實體中的PCB;而撤銷進(jìn)程,實質(zhì)上是撤銷進(jìn)程實體中的PCB

    三種定義

    1. 進(jìn)程是程序的一次執(zhí)行過程

    2. 進(jìn)程是一個程序及其數(shù)據(jù)在處理及上順序執(zhí)行所發(fā)生的活動。

    3. 進(jìn)程是具有獨立功能的程序在數(shù)據(jù)集合上運(yùn)行的過程,他是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨立單位

    總:進(jìn)程是進(jìn)程實體的運(yùn)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個單位。

    對比進(jìn)程實體和進(jìn)程

    進(jìn)程實體:主要強(qiáng)調(diào)創(chuàng)建的PCB(靜態(tài))

    進(jìn)程:強(qiáng)調(diào)運(yùn)行過程(動態(tài))

    注意:在沒有特別要求的時候,可以當(dāng)進(jìn)程實體就是進(jìn)程

2. 組成

PCB
  1. 進(jìn)程描述信息

    • 進(jìn)程標(biāo)識符PID

      進(jìn)程被創(chuàng)建時,操作系統(tǒng)會為該進(jìn)程分配一個唯一的,不重復(fù)的ID,用于區(qū)分不同的進(jìn)程(類似一身份證號)

    • 用戶標(biāo)識符UID

  2. 進(jìn)程控制和管理信息

    • 進(jìn)程當(dāng)前狀態(tài)

    • 進(jìn)程優(yōu)先級

  3. 資源分配清單

    • 程序段指針

    • 數(shù)據(jù)段指針

    • 鍵盤

    • 鼠標(biāo)

  4. 處理機(jī)相關(guān)信息

    • 各種寄存器值

      進(jìn)程切換時需要把進(jìn)程當(dāng)前運(yùn)行的情況記錄下來保存在PCB中,如程序計數(shù)器的值表示了當(dāng)前程序執(zhí)行到哪一句

  5. 其他

    • 進(jìn)程標(biāo)識碼

    • 處理機(jī)狀態(tài)

    • 進(jìn)程調(diào)度信息

    • 進(jìn)程控制信息

3.組織方式

一個操作系統(tǒng)中,通常由數(shù)十、數(shù)百乃至數(shù)千個PCB。為了能對其有效管理,應(yīng)當(dāng)用適當(dāng)?shù)姆绞桨堰@些PCB組織起來

  • 鏈接方式

    • 按照進(jìn)程狀態(tài)將PCB分為多個隊列

    • 操作系統(tǒng)持有執(zhí)行各個隊列的指針

      1. 執(zhí)行指針

      2. 就緒隊列執(zhí)指針

      3. 阻塞隊列指針

        [圖片上傳失敗...(image-39b9cf-1629181963277)]

  • 索引方式

    • 根據(jù)進(jìn)程狀態(tài)不同,建立幾張索引表

    • 操作系統(tǒng)有指向哥哥索引表的指針

      1. 執(zhí)行指針

      2. 就緒隊列執(zhí)指針

      3. 阻塞隊列指針

        [圖片上傳失敗...(image-bedf32-1629181963277)]

4. 特征

  • 動態(tài)性:進(jìn)程時程序一次執(zhí)行過程,動態(tài)產(chǎn)生、變化、消亡

  • 并發(fā)性 :內(nèi)存中有多個進(jìn)程實體,個進(jìn)程可并發(fā)執(zhí)行

  • 獨立性:進(jìn)程是能獨立運(yùn)行、獨立獲得資源、獨立接受調(diào)度的基本單位

  • 異步性:各進(jìn)程按各自獨立的,不可預(yù)知的速度向前推進(jìn),操作系統(tǒng)要提供“進(jìn)程同步機(jī)制”來解決異步問題

  • 結(jié)構(gòu)性:每個進(jìn)程都會配置一個PCB,從結(jié)構(gòu)上看,進(jìn)程有程序段、數(shù)據(jù)段、PCB組成

進(jìn)程的狀態(tài)和轉(zhuǎn)換

進(jìn)程是程序的一次執(zhí)行,執(zhí)行過程中,有時需要被CPU處理,有時又需要等待CPU服務(wù),可見進(jìn)程的狀態(tài)會有各種變化,為了方便對各個進(jìn)程的管理,操作系統(tǒng)需要將進(jìn)程合理劃分為幾種狀態(tài)。

1. 狀態(tài)

  • 運(yùn)行狀態(tài):占有CPU,并在CPU上運(yùn)行cpu √ 其他資源 √

    注意:單核處理機(jī)環(huán)境下,每一時刻最多只有一個 進(jìn)程處于運(yùn)行態(tài)(雙核有兩個)

  • 就緒狀態(tài):已經(jīng)具備運(yùn)行條件,但由于沒有空閑CPU,而暫時不能運(yùn)行cpu √ 其他資源 ×

    注意:此時進(jìn)程已經(jīng)擁有除了處理及之外所有的資源,一旦獲得處理機(jī),即立刻進(jìn)入運(yùn)行態(tài)

  • 阻塞狀態(tài):因等待某一件事而暫停不能運(yùn)行cpu × 其他資源 ×

    注意:如等待操作系統(tǒng)分配打印機(jī),等待讀磁盤操作的結(jié)果


以上三種為三種基本狀態(tài)

  • 創(chuàng)建狀態(tài):進(jìn)程正在被創(chuàng)建,操作系統(tǒng)為系統(tǒng)分配資源、初始化PCB

    操作系統(tǒng)需要完成創(chuàng)建進(jìn)程,為該進(jìn)程分配所需要的內(nèi)存空間等系統(tǒng)資源,為其創(chuàng)建初始化PCB

  • 終止?fàn)顟B(tài):進(jìn)程正在從系統(tǒng)中撤銷,操作系統(tǒng)會回收進(jìn)程擁有的資源、撤銷PCB

2. 進(jìn)程狀態(tài)間的轉(zhuǎn)換

image-20210715232453584

進(jìn)程控制

1. 什么是進(jìn)程控制

進(jìn)程控制主要功能是對系統(tǒng)中的所有晉城市是有效的管理,它具有創(chuàng)建新進(jìn)程、撤銷已有進(jìn)程、實現(xiàn)進(jìn)程狀態(tài)轉(zhuǎn)換等功能。(實現(xiàn)進(jìn)程狀態(tài)轉(zhuǎn)換)

2. 如何實現(xiàn)進(jìn)程及控制

image-20210715235648897
  • 用原語實現(xiàn)進(jìn)程控制。原語的特點是執(zhí)行期間不允許中斷,只能一起呵成

  • 這種不可以中斷的操作即原子操作

  • 原語采用“關(guān)中斷指令”和“開中斷指令”實現(xiàn)

3. 進(jìn)程控制相關(guān)的原語(三類)

  • 更新PCB中的信息

  • 將PCB插入合適的隊列

  • 分配/回收資源

進(jìn)程的創(chuàng)建
  1. 創(chuàng)建原語

    • 申請空白PCB

    • 為新進(jìn)程分配所需資源

    • 初始化PCB

    • 將PCB插入就緒隊列

  2. 引起進(jìn)程創(chuàng)建的事件

    • 用戶登錄

      分時系統(tǒng)中,用戶登陸成功,系統(tǒng)為用戶建立一個新的進(jìn)程

    • 作業(yè)調(diào)度

      多道批處理系統(tǒng)中,有新的作業(yè)放入內(nèi)存時,會建立一個新的進(jìn)程

    • 提供服務(wù)

      用戶向操作系統(tǒng)提出某些請求時,會新建一個進(jìn)程處理該請求

    • 應(yīng)用請求

      由用戶進(jìn)程主動請求創(chuàng)建一個進(jìn)程

進(jìn)程的終止
  1. 撤銷原語

    • 從PCB集合中找到種植進(jìn)程的PCB

    • 若進(jìn)程正在運(yùn)行,立即剝奪進(jìn)程,將CPU分配給其它進(jìn)程

    • 終止其所有子進(jìn)程

    • 將該進(jìn)程擁有的所有資源歸還父進(jìn)程或操作系統(tǒng)

    • 刪除PCB

  2. 引起進(jìn)程終止的事件

    • 正常結(jié)束

    • 異常結(jié)束

    • 外界干預(yù)

進(jìn)程的阻塞
  1. 阻塞原語

    • 找到要阻塞的進(jìn)程對應(yīng)的PCB

    • 保護(hù)進(jìn)程運(yùn)行現(xiàn)場,將PCB狀態(tài)信息設(shè)置為“阻塞態(tài)”,暫時停止進(jìn)程運(yùn)行

    • 將PCB插入響應(yīng)時間的等待隊列

  2. 引起進(jìn)程阻塞的事件

    • 需要等待系統(tǒng)分配某種資源

    • 需要等待相互合作的其他進(jìn)程完成工作

進(jìn)程的喚醒
  1. 喚醒原語

    • 在時間等待隊列中到PCB

    • 將PCB從等待隊列溢出,設(shè)置進(jìn)程為就緒

    • 將PCB插入就緒隊列,等待被調(diào)度

  2. 引起進(jìn)程喚醒的事件

    • 等待事件的發(fā)生

系統(tǒng)阻塞原語和喚醒原語要成對出現(xiàn),因何事阻塞就因何事被喚醒

進(jìn)程的切換
  1. 切換原語

    • 將運(yùn)行環(huán)境信息存入PCB

    • PCB移入相應(yīng)隊列

    • 選擇另一個進(jìn)程執(zhí)行,并更新其PCB

    • 根據(jù)PCB回復(fù)進(jìn)程所需運(yùn)行環(huán)境

  2. 引起進(jìn)程切換的事件

*   當(dāng)前進(jìn)程事件片到

*   有更高優(yōu)先級的進(jìn)程到達(dá)

*   當(dāng)前進(jìn)程主動阻塞

*   當(dāng)前進(jìn)程終止

進(jìn)程通信

定義:進(jìn)程通信指進(jìn)程之間的信息交換

(進(jìn)程是分配系統(tǒng)資源的單位<u style="box-sizing: border-box;">包括內(nèi)存地址空間</u>,因此各進(jìn)程擁有內(nèi)存地址空間相互獨立)

進(jìn)程是不能直接訪問另一個進(jìn)程空間的

1. 共享儲存

  • 基于數(shù)據(jù)結(jié)構(gòu)的共享

  • 基于存儲空間的共享

兩個進(jìn)程對共享空間是互斥的

image-20210719153838332

2. 管道通信

image-20210719154155707

3. 消息傳遞

消息: 消息頭 消息體

image-20210719154338867

總結(jié)

image-20210720081410911

線程概念與多線程模型

什么是線程?為什么引入線程?

引入線程概念之后,cpu調(diào)用對象由進(jìn)程變?yōu)榱司€程

線程相當(dāng)于輕量級進(jìn)程,是一個最基本的CPU單元,也是程序執(zhí)行流的小單位

線程是進(jìn)程的一個實體,是被系統(tǒng)獨立調(diào)度和分配的基本單位

統(tǒng)一進(jìn)程內(nèi)的存在許多線程,線程共享此進(jìn)程內(nèi)的資源

image-20210720091902377
線程的組成
  • 線程ID

  • 程序計數(shù)器

  • 寄存器集合

  • 推棧

引入線程帶來的變化

  • 資源分配、調(diào)度

    • 傳統(tǒng)進(jìn)程機(jī)制中,進(jìn)程是資源分配、調(diào)度的基本單位

    • 引入線程后,進(jìn)程是資源分配的基本單位,線程是調(diào)度的基本單位

  • 并發(fā)性

    • 傳統(tǒng)進(jìn)程機(jī)制中,只能進(jìn)程間并發(fā)

    • 引入線程后,個線程之間也能并發(fā)

  • 系統(tǒng)開銷

    • 傳統(tǒng)進(jìn)程間并發(fā),需要切換進(jìn)程的運(yùn)行環(huán)境,系統(tǒng)開銷很大

    • 線程間并發(fā),如果是同一進(jìn)程內(nèi)的線程切換,則不需要切換線程

    • 引入線程后,并發(fā)所帶來的系統(tǒng)開銷減少

線程的屬性
  • 線程是處理機(jī)調(diào)度單位

  • 多CPU計算機(jī)中。各個進(jìn)程可占用不同的CPU

  • 每個線程都有一個線程ID(唯一的線程標(biāo)識符),線程控制塊(TCB)【數(shù)據(jù)結(jié)構(gòu)】

  • 線程也有就緒、堵塞、運(yùn)行三種基本狀態(tài)

  • 線程幾乎不擁有系統(tǒng)資源

  • 同一進(jìn)程的不同線程間共享進(jìn)程的資源

  • 由于共享內(nèi)存地址空間,同一進(jìn)程中的線程間甚至無需系統(tǒng)干預(yù)

  • 同一進(jìn)程中的線程切換,不會引起進(jìn)程切換

  • 不同進(jìn)程中的線程切換,會引起線程切換

  • 切換同進(jìn)程內(nèi)的線程,系統(tǒng)開銷很小

  • 切換進(jìn)程,系統(tǒng)開銷很大

線程的實現(xiàn)方式
  1. 用戶級線程

    用戶級線程用戶可以看到,操作系統(tǒng)看不到

image-20210720095804387
  1. 內(nèi)核級線程

    相當(dāng)于從操作系統(tǒng)內(nèi)核視角能看到的線程,必須在核心態(tài)下才能完成。

image-20210720100034169
總結(jié)
image-20210720102452108

處理機(jī)的調(diào)度

1. 基本概念

如有大量任務(wù),但是資源有限,沒辦法同時處理,需要某些規(guī)則決定任務(wù)順序,即調(diào)度??!

進(jìn)程數(shù)量遠(yuǎn)大于處理機(jī)個數(shù),需要從就緒序列中按照一定算法選擇一個進(jìn)程并將處理機(jī)分配給它運(yùn)行,實現(xiàn)進(jìn)程的并發(fā)運(yùn)行

2. 三個層次

  • 高級調(diào)度(作業(yè)調(diào)度)

是輔存(外存)與內(nèi)存之間的調(diào)度

image-20210720121319608
  • 中級調(diào)度(內(nèi)存調(diào)度)

將暫時不能運(yùn)行的進(jìn)程調(diào)制外存等待,當(dāng)具備空閑條件時在沖洗調(diào)入內(nèi)存。

暫時調(diào)到外存等待的進(jìn)程狀態(tài)為掛起狀態(tài),PCB不會調(diào)到外存,會常駐內(nèi)存,內(nèi)部會記錄進(jìn)程數(shù)據(jù)在外存中的存放位置,進(jìn)程狀態(tài)等信息,被掛起進(jìn)程PCB會被放到掛起的隊列中。

image-20210720121801904
補(bǔ)充:掛起狀態(tài)與七狀態(tài)模型
image-20210720124002167
  • 低級調(diào)度(進(jìn)程調(diào)度)
image-20210720124132145

3. 三層調(diào)度的聯(lián)系、對比、

要做什么 調(diào)度發(fā)生位置 發(fā)生頻率 對進(jìn)程狀態(tài)的影響
高級調(diào)度 按照某種規(guī)則從后備隊列中選擇合適的作業(yè)將其調(diào)入內(nèi)存,并為其創(chuàng)建進(jìn)程 外存->內(nèi)存(面向作業(yè)) 最低 無->創(chuàng)建態(tài)->就緒態(tài)
中極調(diào)度 按照某種規(guī)則從掛起隊列中選擇合適的作業(yè)將其數(shù)據(jù)調(diào)回內(nèi)存 外存->內(nèi)存(面向進(jìn)程) 中等 掛起態(tài)->就緒態(tài)(阻塞掛起->阻塞態(tài))
低級調(diào)度 按照某種規(guī)則從就緒隊列中選擇一個進(jìn)程為其分配處理機(jī) 內(nèi)存->CPU 最高 就緒態(tài)->運(yùn)行態(tài)

總結(jié)

image-20210720125225267

進(jìn)程調(diào)度的問題

1. 調(diào)度的時機(jī)

進(jìn)程調(diào)度(低級調(diào)度)

需要進(jìn)行進(jìn)程調(diào)度的情況

  • 當(dāng)前運(yùn)行進(jìn)程主動放棄處理機(jī)

    • 進(jìn)程正常終止

    • 運(yùn)行過程中發(fā)生異常而阻止

    • 進(jìn)程主動請求阻塞(如 等待I/O)

  • 當(dāng)前運(yùn)行的進(jìn)程被動放棄處理機(jī)

    • 分給進(jìn)程的時間片用完

    • 有更緊急的事情需要處理(如 I/O中斷)

    • 有更高優(yōu)先級的進(jìn)程進(jìn)入就緒隊列

不能進(jìn)行進(jìn)程調(diào)度與切換的情況

  1. 在處理及中斷過程中。中斷處理過程復(fù)雜,與硬件密切相關(guān),很難做到在中斷處理過程中進(jìn)行進(jìn)程切換進(jìn)程在操作系統(tǒng)內(nèi)核程序臨界區(qū)中。

  2. 在原子操作過程中(原語)。原子操作不可中斷,要一氣呵成

2. 調(diào)度的切換與過程


  • 廣義的進(jìn)程調(diào)度:包含選一個進(jìn)程+進(jìn)程切換兩個步驟

1. 進(jìn)程切換過程主要完成了各種數(shù)據(jù)的保存

2. 對新的進(jìn)程各種數(shù)據(jù)的恢復(fù)(如:程序計數(shù)器、程序狀態(tài)字、各種數(shù)據(jù)寄存器等處理機(jī)現(xiàn)場信息,一般保存在進(jìn)程控制塊)

頻繁的進(jìn)程調(diào)動、切換會是否大部分時間花在進(jìn)程切換上,真正用于執(zhí)行的時間減少

3. 調(diào)度的方式

  • 非剝奪調(diào)度方式(非搶占方式)

    只允許進(jìn)程主動放棄處理機(jī),在運(yùn)行過程中有更緊迫的任務(wù)到達(dá),當(dāng)前進(jìn)程依然會繼續(xù)使用處理機(jī),知道進(jìn)程終止或主動要求進(jìn)入阻塞態(tài)

    實現(xiàn)簡單,系統(tǒng)開銷小但是無法及時處理緊急任務(wù),適合于早期的批處理系統(tǒng)

  • 剝奪調(diào)度方式(搶占方式)

    搶占方式。當(dāng)一個進(jìn)程在處理機(jī)上執(zhí)行時,如果一個更重要或更緊迫的進(jìn)程要使用處理及。即立即暫停正在執(zhí)行的進(jìn)程,將處理及分配給更重要更緊迫的那個進(jìn)程。

    可以有限處理更緊急的進(jìn)程,也可以實現(xiàn)讓各進(jìn)程按時間片輪流執(zhí)行的功能(通過時鐘中斷) 更適合于分時操作系統(tǒng)、實時操作系統(tǒng)

總結(jié)

image-20210721044910214

調(diào)度算法的評價指標(biāo)

  1. cpu利用率:CPU“忙碌”的時間占總

    利用率=忙碌的時間\總時間

  2. 系統(tǒng)吞吐量:單位時間完成作業(yè)的數(shù)量

系統(tǒng)吞吐量=總共完成的作業(yè)/總共花的時間

  1. 周轉(zhuǎn)時間:作業(yè)從提交給系統(tǒng),到作業(yè)完成的這段時間間隔

    (作業(yè))周轉(zhuǎn)時間=作業(yè)完成時間-作業(yè)提交時間

    平均周轉(zhuǎn)時間=各作業(yè)周轉(zhuǎn)時間之和/作業(yè)數(shù)量

    帶權(quán)周轉(zhuǎn)時間=作業(yè)周轉(zhuǎn)時間/作業(yè)實際運(yùn)行的時間=(作業(yè)完成時間-作業(yè)提交時間)/作業(yè)實際運(yùn)行的時間

    哦平均帶權(quán)周轉(zhuǎn)時間=個作業(yè)帶權(quán)周轉(zhuǎn)時間之和/作業(yè)數(shù)量

    1. 等待時間:指進(jìn)程(作業(yè))處于等待處理及狀態(tài)時間之和,等待時間越長,用戶滿意度越低

      • 對進(jìn)程來說:等待時間指進(jìn)程建立后等待被服務(wù)的時間之和,在等待I/O完成期間其實進(jìn)程也是在被服務(wù)的,所以不計入等待時間

      • 對于作業(yè)來說:不僅要考慮建立進(jìn)程之后的而等待時間,還要加上作業(yè)在外村后被隊列中的等待時間。

    2. 響應(yīng)時間:用戶從提出請求到響應(yīng)鎖花費的時間

    總結(jié)

    image-20210721051705806

調(diào)度算法

學(xué)習(xí)思路

1. 算法思想

2. 算法規(guī)則

3. 調(diào)度算法用于作業(yè)調(diào)度 or 進(jìn)程調(diào)度

4. 搶占式 or 非搶占式

5. 優(yōu)點 and 缺點

6. 是否會饑餓

1. 先來先服務(wù)(FCFS)

2. 短作業(yè)優(yōu)先(SJF)

3. 高響度比優(yōu)先(HRRN)

生產(chǎn)者消費者問題

  1. 問題描述

系統(tǒng)中有一組生產(chǎn)者進(jìn)程和一組消費者進(jìn)程,生產(chǎn)者進(jìn)程每次生產(chǎn)一個產(chǎn)品放入緩沖區(qū),消費者進(jìn)程每次從緩沖區(qū)中取出一個產(chǎn)品并使用。(注:這里的“產(chǎn)品”理解為某種數(shù)據(jù))

  • 共享一個緩沖區(qū)

  • 只有緩沖區(qū)沒滿時,生產(chǎn)者才能把產(chǎn)品放入緩沖區(qū),否則必須等待。

  • 只有緩沖區(qū)不空時,消費者才能從中取出產(chǎn)品,否則必須等待。

  • 緩沖區(qū)是臨界資源,各進(jìn)程必須互斥地訪問。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 整理筆記死鎖習(xí)題PV操作調(diào)度算法 操作系統(tǒng)試題一 (1)、CLOCK算法的關(guān)鍵是:每一次進(jìn)行替換指針的位置就從替換...
    古夜鵬紅閱讀 1,742評論 0 2
  • 進(jìn)程 進(jìn)程定義(程序段,相關(guān)數(shù)據(jù)段和PCB構(gòu)成進(jìn)程實體,又稱為進(jìn)程映像): 進(jìn)程是程序的一次執(zhí)行 進(jìn)程是一個程序機(jī)...
    歲杪二十七閱讀 733評論 0 1
  • 1.1 課程概述 基本概念及原理 操作系統(tǒng)介紹 中斷及系統(tǒng)調(diào)用 內(nèi)存管理 進(jìn)程及線程 調(diào)度 同步 文件系統(tǒng) I/O...
    liuzhangjie閱讀 1,485評論 0 0
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂有人憂愁,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,843評論 28 54
  • 人工智能是什么?什么是人工智能?人工智能是未來發(fā)展的必然趨勢嗎?以后人工智能技術(shù)真的能達(dá)到電影里機(jī)器人的智能水平嗎...
    ZLLZ閱讀 4,100評論 0 5

友情鏈接更多精彩內(nèi)容