操作系統(3) 處理機調度

目錄

一、處理機調度概述

1.基本準則

(1)CPU利用率

(2)系統吞吐量?

(3)周轉時間

(4)等待時間

(5)響應時間

2.進程調度方式

(1)非剝奪調度方式(非搶占方式)

(2)剝奪調度方式(搶占方式)

二、調度算法

1.FCFS算法(先來先服務)

(1)算法規則:

?(2)適用情況:

(3)優缺點

2.SJF算法(短作業優先)

(1)算法規則:

(2)適用情況:

(3)優缺點:

3.優先級算法

(1)算法規則:

(2)使用情況:

(3)類型:

(4)優先級的類型:

(5)優缺點:

4.RR算法(時間片輪轉)

(1)算法思想:

(2)算法規則:

(3)適用情況:

(4)類型:

(5)優缺點:

5.HRRN算法(高響應比優先)

(1)算法思想:

(2)算法規則:

(3)適用情況:

(4)優缺點:

6.多級反饋隊列調度算法

(1)算法思想:

(2)算法規則:

(3)適用情況:

(4)類型:

(5)優缺點:

總結


一、處理機調度概述

1.基本準則

不同的調度算法具有不同的特性,在選擇調度算法時,必須考慮算法的特性。為了比較處理機調度算法的性能,人們提出了很多評價準則,下面介紹其中主要的幾種。

(1)CPU利用率

CPU是計算機系統中最重要和昂貴的資源之一,所以應盡可能使保持“忙”的狀態, 使這一資源利用率最高。

(2)系統吞吐量?

  • 表示單位時間內CPU完成作業的數量。?
  • 長作業需要消耗較長的處理機時間,因此會降低系統的吞吐量。?
  • 短作業需要消耗的處理機時間較短,因此能提高系統的吞吐量。?
  • 調度算法和方式的不同,也會對系統的吞量產生較大的影響。?

(3)周轉時間

周轉時間是指從作業提交到作業完成所經歷的時間,是作業等待、在就緒隊列中排隊、在處理機上運行及進行輸入/輸出操作所花費時間的總和。?

  • 作業的周轉時間:

周轉時間 = 作業完成時間 - 作業提交時間

  • 平均周轉時間:?

平均周轉時間 = (作業1的周轉時間 + ...... + 作業n的周轉時間)/n

  • 帶權周轉時間(作業周轉時間與作業實際運行時間的比值):

帶權周轉時間 = 作業周轉時間 / 作業實際運行時間

  • 平均帶權周轉時間(多個作業帶權周轉時間的平均值):

平均帶權周轉時間 = (作業1的帶權周轉時間 + ...... + 作業n的帶權周轉時間) / n?

(4)等待時間

等待時間指進程處于等待處理機狀態的時間之和,等待時間越長,用戶滿意度越低。

(5)響應時間

響應時間指從用戶提交請求到系統首次產生響應所用的時間。

2.進程調度方式

是指當某個進程正在處理機上執行時,若有某個更為重要或緊迫的進程需要處理,即優先權更高的進程進入就緒隊列,此時應如何分配處理機的方式。?通常有以下兩種進程調度方式:?

(1)非剝奪調度方式(非搶占方式)

非剝奪調度方式是指當一個進程正在處理機上執行時,即使有某個更為重要或緊迫的進程進入就緒隊列,仍然讓正在執行的進程繼續執行,直到該進程完成或發生某種事件而進入阻塞態時,才把處理機分配給更為重要或緊迫的進程。

(2)剝奪調度方式(搶占方式)

采用剝奪式的調度,對提高系統吞吐率和響應效率都有明顯的好處。但“剝奪”?不是一種任意性行為,必須遵循一定的原則,主要有優先權、短進程優先和時間片原則等。


二、調度算法

1.FCFS算法(先來先服務)

(1)算法規則:

先來先服務算法(first come first server,FCFS)按照作業/進程到達的先后順序來進行調度。

?(2)適用情況:

可用于作業調度也可用于進程調度。?

(3)優缺點

  • 優點:算法實現簡單。?
  • 缺點:對長作業有利,對短作業不利。

2.SJF算法(短作業優先)

(1)算法規則:

短作業優先調度算法(short job first,SJF)以作業的長短來計算優先級,作業越短,其優先級越高。?

(2)適用情況:

可用于作業調度及進程調度。?

(3)優缺點:

  • 優點:“最短的”平均等待時間及平均周轉時間。?
  • 缺點:①必須先知道作業的運行時間。?
  • ②對長作業不利,會出現饑餓現象。
  • ③沒有考慮作業的緊迫程度。

3.優先級算法

(1)算法規則:

基于進程(作業)的緊迫程度,由外部賦予進程相應的優先級,根據優先級進行調度。?

(2)使用情況:

可用于作業調度也可用于進程調度甚至I/O調度。

(3)類型:

搶占式優先級調度算法:只需出現另一個優先級更高的進程,調度就會發生變化非搶占式優先級調度算法:主動放棄。

(4)優先級的類型:

①靜態優先級:在創建進程時確定,其在進程的整個運行期間不變。?

②動態優先級:在創建進程之初,先賦予進程一個優先級,然后動態的調整優先級。

(5)優缺點:

  • 優點:用優先級區分緊急程度,運用于實時os。
  • 缺點:可能導致饑餓(低優先級進程的饑餓)。

4.RR算法(時間片輪轉)

(1)算法思想:

時間片輪轉算法(Round-Robin)公平地、輪流地為各個進程服務, 讓每個進程在一定時間間隔內都可以得到響應。

(2)算法規則:

按照各進程到達就緒隊列的順序, 輪流讓各個進程執行一個時間片。 若進程未到一個時間片內執行完,則剝奪處理機,將進程重新放到就緒隊列隊尾重新排隊。

(3)適用情況:

可用于進程調度。

(4)類型:

屬于搶占式算法。 由時鐘裝置發出時鐘中斷來通知CPU時間片已到。?

(5)優缺點:

  • 優點:公平,響應快,適用于分時操作系統。
  • 缺點:不能區分任務的緊急程度,需要進程切換,消耗較大。

5.HRRN算法(高響應比優先)

(1)算法思想:

高響應比優先調度算法(Highest Respomse Ratio Nex,HRRN )綜合考慮作業或進程的等待時間和要求服務的時間。?

(2)算法規則:

每次調度前先計算各個作業或進程的響應比(優先級),選擇響應比最高的作業或進程為其服務。

?響應比(R)=(等待時間+要求服務時間)/要求服務時間=響應時間/要求服務時間

(3)適用情況:

可用于作業調度及進程調度。

(4)優缺點:

  • 優點:綜合考慮了等待時間和運行時間,較好的實現了折中。?
  • 缺點:每次調度前都要算響應比,會增加系統的開銷。?
  • 注意:不會導致饑餓現象。高響應比優先算法

6.多級反饋隊列調度算法

(1)算法思想:

對其他調度算法的折中權衡。?

(2)算法規則:

  • 設置多個就緒隊列.各級隊列優先級從高到低,時間片從小到大。
  • 每個隊列都采用FCFS調度算法。?
  • 按隊列優先級調度。只有當第1~i一1隊列均空時,才會調度第i隊列中的進程。

(3)適用情況:

可用于進程調度

(4)類型:

屬于搶占式的算法。

(5)優缺點:

  • 優點:用優先級區分緊急程度,運用于實時OS 。?
  • 缺點:可能導致饑餓(低優先級進程的饑餓)。

(6)圖示


總結

本篇對操作系統處理機調度的內容進行了概括梳理,便于理解和復習。部分內容源自網絡,如有侵權請聯系作者刪除處理,謝謝!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/21708.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21708.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/21708.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

現代密碼學-數字簽名

從消息認證碼到數字簽名 前面講到,消息認證碼無法防止否認,A,B之間共享密鑰計算出MAC,A,B都能計算出MAC,對于第三方C來說,他無法證明這個MAC是A計算的還是B計算的。 通過數字簽名解決問題。 A,B各自使用不同的密鑰-公鑰密碼,A用…

LeetCode刷題之HOT100之組合總和

2024/6/3 周一,工作日的第一天。昨晚夢到被導師說去實驗室不積極哈哈哈,風扇開到二級,早上被吹醒。買的書馬上快要到了。上午剛來準備刷題,結果去搞了一下數據庫sql,做的差不多了,還差點格式轉換就差不多出…

springboot打包筆記

文章目錄 多配置文件application.yml本地啟動參數替換profiles,還是要復制文件 項目有各種環境,例如:local,uat,prd等。 各種打包方式一定要熟練掌握。 做此筆記是因為做了那么多項目,也打了很多包&#xf…

QT中如何對引入的第三方庫進行翻譯

1、背景 在我們的程序中,可能會加載其他人寫的模塊,,該模塊是以庫的形式提供的,那么我們程序翻譯時,如何來對引入的第三方庫進行翻譯??? 2、方案 首先,第三方庫會有自己的翻譯文件,并且一般要給我們提供設置翻譯的接口, 例如下:第三方庫給我們暴露一個接口,我們…

軍用電源性能測試有哪些測試項目?需要遵循什么標準?

為了確保軍用電源在極端條件下能夠正常工作,必須對其進行一系列嚴格的性能測試。這些測試不僅包括效率、電壓調整率和負載調整率等基本參數的測試,還包括動態響應能力、絕緣電阻、耐壓測試、溫度系數以及高低溫循環等綜合性能的評估。 測試項目 效率 電壓…

spring 優雅替換bean

方案一:使用 Primary/Qualifier 注解(優選) 如果有多個相同類型的 Bean 存在,可以將想要優先使用的 Bean 加上 Primary 注解。 Qualifier和Primary注解的區別:Primary注解用于標記具有相同類型的多個實例中的主要實例…

MySQL -- 連接查詢

MySQL使用連接查詢(JOIN)是為了從多個相關表中獲取數據。連接查詢是一種強大且常用的操作,可以根據某些條件將兩張或多張表中的數據組合在一起,返回一個聯合結果集。 1.為什么使用連接查詢 數據規范化: 數據庫設計時通…

站點被篡改快照被劫持解決服務方法教程_一招制敵

站點被篡改快照被劫持解決服務方法教程_一招制敵 被篡改表現形式: 站點打不開或跳轉到別的網站。 攻擊者目的: 報復、勒索、賣防御產品(如DDOS防御產品)。 攻擊成本: 工具(如VPN購買)成本、人…

智能工廠生產設備實時監控技術的UI設計

智能工廠生產設備實時監控技術的UI設計

Flutter的Dart語法入門

文章目錄 前言1. 類型聲明2. 數據類型2.1 基本數據類型常量 2.2 String2.3 集合2.4 unicode 3. Dart函數特征3.1 可變參數列表和默認入參3.2 匿名函數3.3 typedef 4. Dart面向對象4.1 構造函數4.2 訪問權限4.3 類的繼承 參考資料附錄 前言 每個語言都有控制流語句就不寫測試代…

Go 語言的控制結構:條件與循環

Go 語言提供了豐富的控制結構,使得開發者可以編寫出具有復雜邏輯的程序。這些控制結構包括用于條件分支的 if-else 和 switch 語句,循環控制的 for 語句,以及用于控制循環執行流的 break 和 continue 關鍵字。此外,Go 語言還支持 …

約瑟夫游戲(編號+密碼)

編號為1、2、3、...、N的N個人按順時針方向圍坐一圈,每人持有一個密碼(正整數)。從指定編號為1的人開始,他的密碼為M的初始值,按順時針方向從1號自己開始順序報數,報到指定數M時停止報數,報M的人…

i18n-demo

一、demo 1、資源文件準備 resources下放各個語言文件,直接放resources下都行。我新建一個文件夾,

房地產vr全景展示交互視頻讓購房者更有參與感

在當今房地產市場中,購房者的需求日益多樣化和個性化。為滿足這一趨勢,我們創新性地將VR虛擬現實技術應用于樓盤宣傳,為購房者帶來前所未有的沉浸式購房體驗。 一、地理位置全景展示 通過實景拍攝與VR技術的結合,我們為購房者呈現…

day26-單元測試

1. 單元測試Junit 1.1 什么是單元測試?(掌握) 1.2 Junit的特點?(掌握) 1.3 基本用法:(掌握) 實際開發中單元測試的使用方式(掌握) public class …

C語言,排序

前言 排序,可以說是數據結構中必不可缺的一環。我們創造數據存儲它,要想知道數據之間的聯系,比較是必不可少的。不然,費勁心思得來的數據若是不能有更多的意義,那么拿到了又有什么用? 排序是計算機內經常進…

風險投資公司正在幫助小投資者購買Anthropic、OpenAI等熱門公司的股票

近年來,風險投資公司對于人工智能(AI)領域的公司,如Anthropic、Groq、OpenAI等,表現出了極高的投資熱情。這些公司因為它們在AI技術方面的創新而備受矚目。但是,對于很多小投資者來說,由于資金有…

[C#]使用C#部署yolov8的目標檢測tensorrt模型

【測試通過環境】 win10 x64 vs2019 cuda11.7cudnn8.8.0 TensorRT-8.6.1.6 opencvsharp4.9.0 .NET Framework4.7.2 NVIDIA GeForce RTX 2070 Super 版本和上述環境版本不一樣的需要重新編譯TensorRtExtern.dll,TensorRtExtern源碼地址:TensorRT-CShar…

期權的權利金怎么算的

期權權利金的計算涉及多個因素,包括敲定價格、到期時間以及整個期權合約的具體情況。期權的權利金具體的計算公式和因素可能因不同的期權合約和市場條件而有所不同,下文為大家介紹期權的權利金怎么算的 ?本文來自:期權醬 一、期權…

【LeetCode】二叉樹oj專題

如有不懂的地方,可查閱往期相關文章! 個人主頁:小八哥向前沖~ 所屬專欄:數據結構【c語言】 目錄 單值二叉樹 對稱二叉樹 計算二叉樹的深度 二叉樹的前序遍歷 相同二叉樹 另一棵樹的子樹 二叉樹的構建和遍歷 翻轉二叉樹 判…