處理機調度的層次

来源:https://www.cnblogs.com/huskysir/archive/2019/10/17/11693554.html
-Advertisement-
Play Games

一個作業從提交開始直到完成,往往經歷以下三個調度: 一、作業調度 作業調度又稱高級調度,主要任務是按照一定的原則從外存上處於後備隊列的作業中挑選一個或者多個作業,為其分配記憶體、I/O設備等必要資源,並建立相應的進程,使它們獲得競爭處理機的權利。簡要地說就是記憶體與外存的調度,對於每個作業僅調入一次、調 ...


       一個作業從提交開始直到完成,往往經歷以下三個調度:

一、作業調度

       作業調度又稱高級調度,主要任務是按照一定的原則從外存上處於後備隊列的作業中挑選一個或者多個作業,為其分配記憶體、I/O設備等必要資源,並建立相應的進程,使它們獲得競爭處理機的權利。簡要地說就是記憶體與外存的調度,對於每個作業僅調入一次、調出一次。多道批處理系統中大多配有作業調度,而其他系統中通常不需要配置作業調度,作業調度的執行頻率較低且時間較長,通常為幾分鐘一次。

二、記憶體調度

       記憶體調度又稱中級調度,引入中級調度的目的是為了提高記憶體利用率和系統吞吐量。記憶體調度將那些暫時不能運行的進程調至外存等待,把此時的進程狀態稱為掛起狀態。當處於掛起狀態的進程能夠運行且記憶體有空閑時,將其重新調入記憶體並修改狀態為就緒狀態,掛在就緒隊列上等待。

三、進程調度

       進程調度又稱低級調度,主要任務是按照某種方法和策略從就緒隊列中選取一個進程,將處理機分配給它。進程調度是操作系統中最基本的一種調度,執行頻率很高且時間較短,一般幾十毫秒一次。

四、三級調度的聯繫

       1、作業調度為進程活動做準備,進程調度使進程正常活動起來,記憶體調度將暫時不能運行的進程掛起,記憶體調度處於作業調度和進程調度之間;

       2、作業調度次數最少,記憶體調度次數略多,進程調度頻率最高;

       3、進程調度是最基本的,不可或缺。

對以下2個例子進行分析:

1、有一個具有兩道作業的批處理系統,作業調度採用短作業優先調度演算法,進程調度採用搶占式優先順序調度演算法。作業的運行情況見下表,其中作業的優先數為進程的優先數,優先數越小,優先順序越高。

作業名

到達時間

運行時間

優先數

1

8:00

40min

5

2

8:20

30min

3

3

8:30

50min

4

4

8:50

20min

6

       8:00時,作業1到達,此時記憶體和處理機空閑,作業1進入記憶體並占用處理機;

       8:20時,作業2到達,此時記憶體仍有1個位置空閑,處理機被占用,作業2進入記憶體,由於進程調度採用搶占式優先順序調度,故作業2相應進程搶占處理機;

       8:30時,作業3到達,但此時記憶體已無空位,故等待;

       8:50時,作業2執行完成並空出一道記憶體空間並讓出處理機,作業3和作業4競爭該道記憶體空間,由於作業4的運行時間短,故先調入記憶體,此時作業1相應進程優先順序比作業4相應進程優先順序高,故先執行作業1的相應進程;

       9:10時,作業1執行完成並空出一道記憶體空間並讓出處理機,將作業3調入記憶體,由於作業3相應進程優先順序比作業4相應進程優先順序高,故先執行作業3的相應進程;

       10:00時,作業3執行完成並讓出處理機,執行作業4相應進程,10:20時作業4執行完畢。

作業

到達時間

運行時間

優先數

進入記憶體時間

結束時間

周轉時間

1

8:00

8:00-8:20,

8:50-9:10

5

8:00

9:10

70min

2

8:20

8:20-8:50

3

8:20

8:50

30min

3

8:30

9:10-10:00

4

9:10

10:00

90min

4

8:50

10:00-10:20

6

8:50

10:20

90min

       註意:周轉時間是指從作業提交到作業完成所經歷的時間,包括作業在外存後備隊列上等待,在記憶體就緒隊列中等待,在處理機上運行以及I/O操作等所花費的時間。

2、在一個有兩道作業的批處理系統中,有一作業序列,其到達時間及估計運行時間如下表,系統作業採用最高響應比優先調度演算法(響應比=(等待時間+估計運行時間)/估計運行時間)。進程的調度採用短進程優先調度的搶占式調度演算法。

作業

到達時間

估計運行時間/min

J1

10:00

35

J2

10:10

30

J3

10:15

45

J4

10:20

20

J5

10:30

30

       10:00時,作業J1到達,此時記憶體和處理機空閑,作業J1進入記憶體並占用處理機;

       10:10時,作業J2到達,此時記憶體還有一個位置空閑,處理機被占用,故作業J2調入記憶體等待;

       10:15、10:20、10:30時,作業J3、J4、J5分別到達,但三個作業到達時記憶體中已有J1、J2兩道作業,故這三個作業都不能調入記憶體;

       10:35時,作業J1執行完成並空出一道記憶體空間並讓出處理機,此時作業J3、J4、J5響應比分別為65/45、35/20、35/30,則將作業J4調入記憶體,將處理機分配給運行時間較短的J4;

       10:55時,作業J4執行完成並空出一道記憶體空間並讓出處理機,此時作業J3、J5的響應比分別為85/45、55/30,則將作業J3調入記憶體,將處理機分配給運行時間較短的J2;

       11:25時,作業J2執行完成並空出一道記憶體空間並讓出處理機,將作業J5調入記憶體,將處理機分配給運行時間較短的J5;

       11:55時,作業J5執行完成讓出處理機,將處理機分配給作業J3,12:40時作業J3執行完成。

作業

到達時間

運行時間

進入記憶體時間

結束時間

周轉時間

J1

10:00

10:00-10:35

10:00

10:35

35min

J2

10:10

10:55-11:25

10:10

11:25

75min

J3

10:15

11:55-12:40

10:55

12:40

145min

J4

10:20

10:35-10:55

10:35

10:55

35min

J5

10:30

11:25-11:55

11:25

11:55

85min

       個人總結:由以上兩個例子可以看出,作業調度與進程調度採用不同的調度演算法,具有相對的獨立性。作業調度執行的是從外存後備隊列調入至記憶體的這個過程,而進程調度執行的是從就緒隊列中選擇合適的進程進行處理機分配。作業調度在為進程調度做準備,所以之間又有相互聯繫。

資料來源:王道操作系統

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在日常開發過程中,難免有這樣一種需求:就是你所建的每一個類文件或者介面文件都需要標註下作者姓名以及類的用途。如果我們每次創建文件的時候都需要寫一遍這些信息是很煩神的。還好Visual Studio給我們提供了模板註釋的功能來自動幫我們生成類似的註釋代碼。今天趁著中午休息的時間就讓我們一起來操作下吧。 ...
  • 上節中,我們初步的介紹了一下NetCore的一些基礎知識,為了控制篇幅(其實也是因為偷懶),我將NetCore 基礎分為兩部分來寫。 0.WebAPI 項目的建立 1..NetCore 項目執行(載入)過程 2.中間件的執行過程 3.WebAPI 的路由 4.依賴註入 5.非同步編程 上一節中,我把0 ...
  • 這是我在面試過程中遇到的一個小測試,很可惜,當天未能圓滿完成,雖然第二天經過實際測試已經OK 了,但學無止境,繼續努力吧,特將此代碼貼在這裡,供以後學習使用; 窗體界面如下: ...
  • 該轉換器是印度開發團隊推出的,推出時間也挺長,僅支持C#和VB.net代碼轉換。代碼轉換地址: C# -> VB.NET http://www.dotnetspider.com/convert/Csharp-To-Vb.aspx VB.NET -> C# http://www.dotnetspide ...
  • 從篇 abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI前端頁面框架 (十八) 至abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理三 (二十一) 為止,我們已經通過EasyUI完成了貨物信息管理的前端與後臺功能。現在... ...
  • 當我的本地沒有安裝任何資料庫服務的時候,可以直接通過我本地的埠訪問遠程機器上的資料庫服務,實現這樣的效果就可以使用本地轉發功能 實際測試本地埠轉發,把本地的9006埠轉發給遠程伺服器的115.159.28.111的3306埠,當然需要輸入遠程機器的用戶名和密碼 執行完成後,可以在另一個終端中 ...
  • 互聯網上提供了各種網路服務,而防火牆可以設置各種規則來限制訪問,保護伺服器。 ...
  • VMware15.5版本通過掛載系統光碟搭建yum倉庫一、1.打開CentOS 7虛擬機。 2.登錄虛擬機,選擇未列出 用戶名:root 密碼:輸入自己設置的密碼 點擊登錄。 3.右鍵單擊打開終端。 4.輸入兩次 cd ..命令 回到根目錄下。 5.創建一個為chenzishuo的目錄,在終端輸入 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...