操作系統3_作業與處理機調度

操作系統3_作業與處理機調度

文章目錄

  • 操作系統3_作業與處理機調度
    • 1. 作業的概念與組成
    • 2. 作業的建立及狀態
    • 3. 處理機調度相關概念
      • 3.1 調度級別
      • 3.2 調度隊列模型
      • 3.3 選擇準則
    • 4. 作業調度與進程調度
    • 5. 典型處理機調度算法
      • 5.1 先來先服務算法FCFS
      • 5.2 短作業優先算法SJF
      • 5.3 優先級調度算法HPF
      • 5.4 最高響應比優先調度算法HRRN
      • 5.5 時間片輪轉調度算法RR
      • 5.6 多級反饋隊列輪轉法RRMF
    • 6. 實時系統調度算法
      • 6.1 實時調度基本條件
      • 6.2 調度算法分類
      • 6.3 常用實時調度算法
    • 7. 死鎖概念及產生原因
    • 8. 死鎖存在的條件
    • 9. 預防死鎖
    • 10. 避免死鎖(重點)
    • 11. 檢測死鎖
    • 12. 解除死鎖
    • 13. 本章重點

1. 作業的概念與組成

  • 作業的概念

    • 用戶角度:在一次應用業務處理過程中,從輸入開始到輸出結束,用戶要求計算機所做的有關該次業務處理的全部工作稱為一個作業
    • 系統角度:作業是一個比程序更廣的概念,它由程序、數據和作業說明書組成
    • 作業概念使用場合:
      • 早期批處理系統
      • 現在的大型機、巨型機系統
      • 對于微機和工作站系統一般不使用作業的概念
  • 作業的組成

    • 程序:可以包含多個程序和多個數據集,但必須至少包含一個程序

    • 數據:可有可無

    • 作業說明書

      • 基本信息:用戶名、作業名、使用語言名、允許的最大處理時間
      • 控制信息:作業控制、操作順序、出錯處理
      • 資源信息:處理時間、內存、外設類型和數量、處理機優先級、庫函數和實用程序

2. 作業的建立及狀態

  • 作業建立的步驟

    • 作業的輸入:指將作業的程序、數據和作業說明書從輸入設備輸入到外存,并形成有關初始信息
      • 聯機輸入
      • 脫機輸入
      • 直接耦合輸入
      • SPOOLING系統
    • 作業控制塊的建立:由作業注冊程序在系統中為該作業申請一個作業控制塊,并填寫響應的信息
      • 建立時機:作業進入外存輸入后
      • 建立步驟:
        • 申請作業控制塊
        • 填寫作業控制塊相關信息:作業名、作業估計執行時間;優先數、作業建立時間;作業說明書文件名、程序語言類型;內存要求、外設要求;作業狀態以及作業在外存中的存儲地址
  • 作業的狀態

    • 提交狀態:從作業輸入請求開始到JCB建立時的狀態
    • 后備狀態:從PCB建立到被作業調度程序選中并進入內存,作業在作業等待隊列中的狀態
    • 執行狀態:作業進入內存后到執行結束
    • 完成狀態:作業執行結束到撤銷之前作業所處的狀態
  • 作業與進程的關系

    • 作業是用戶向計算機系統提交任務的任務實體,而進程則是完成用戶任務的執行實體,是向系統申請分配資源的基本單位
    • 作業在沒有進入執行狀態時被存入外存的后備作業隊列中等待調度執行,進程一旦被創建,總有相應部分放入內存
    • 一個作業可由多個進程組成,且必須至少由一個進程組成,反之不成立
    • 作業的概念應用范圍主要局限于批處理系統中,而進程的概念則應用到幾乎所有的多道程序系統中

3. 處理機調度相關概念

3.1 調度級別

  • 有關作業調度

    • 具體功能
      1. 記錄系統中各作業的狀況
      2. 從后備作業隊列中挑選一部分作業投入運行
      3. 為被選中作業做好執行前的準備工作
      4. 在作業執行結束后做善后工作
    • 目標
      1. 具有公平性
      2. 具有較高的設備利用率
      3. 具有較高的吞吐率
      4. 具有較快的響應時間
    • 衡量標準
      1. 批處理系統:主要考察系統的平均響應時間
      2. 分時系統:主要考察系統的平均響應時間
      3. 實時系統:主要考察系統對特定事件的響應時間
  • 處理機調度級別

    image-20240522105218573

    • 低級調度/進程調度/短程調度/微觀調度

      • 功能:用來決定就緒列表中的哪個進程應獲得處理機
      • 分類:
        • 非搶占方式Non-Preemptive Mode:優點(實現簡單、系統開銷小,適用于大多數的批處理系統環境)和缺點(難以滿足緊急任務的要求立即執行,可能造成難以預料的后果,在要求比較嚴格的實時系統中不宜采用這種調度方式)
        • 搶占方式Preemptive Mode:原則(優先權原則、短作業/進程優先原則、時間片原則)
    • 中級調度/中程調度/交換調度

      • 功能:把暫時不能運行的進程調至外存上去等待,此時進程處于靜止阻塞狀態;當這些進程重新具備運行條件、且內存又稍有空閑時,由中級調度來決定將其重新調入內存,并修改其狀態為就緒狀態,掛在就緒隊列上等待進程調度
      • 引入目的:提高內存利用率和系統吞吐量
    • 高級調度/作業調度/長程調度/接納調度/宏觀調度

      • 功能:從外存中選擇作業進入內存
      • 考慮因素:接納多少個作業、接納哪些作業

3.2 調度隊列模型

  • 進程調度隊列模型

    image-20240522111103364

  • 高級和低級調度的隊列模型

    image-20240522111212740

  • 區別

    具有高級、低級兩種調度的調度隊列模型與單一進程調度隊列模型的主要區別在于如下兩方面:

    • 就緒隊列的形式
    • 設置多個阻塞隊列
  • 具有三級調度的調度隊列模型

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

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

相關文章

【力扣一輪】字符串異位 數組并集

先驗知識記錄: 遇到哈希問題,想到三種數據結構: ①數組:適用于哈希值比較小,范圍較小, ②set:適用于哈希值較大。 ③map:如果需要用到鍵值對,則用之。 242.有效的字母…

撥云見日,ATFX七場研討會揭秘投資先機

財經先機,一手掌握。近期,隨著國際金價持續走高,避險情緒高漲,由此激發新一輪投資熱潮。作為業界領先的金融創新品牌,ATFX深受投資者認可和信賴,為助力廣大投資者了解市場運行規律,捕捉財經脈絡…

C++通過讀取二進制流的方式來解析PE(靜態文件讀取法)

步驟解讀 先選擇文件讀取文件二進制流從二進制流讀取DOS頭(DOS_HEADER),長度64字節讀取DOS殼(DOS_STUB),DOS頭開始,長度至到dosHeader->e_lfanew偏移量讀取PE標識(Signature&…

520節日特別篇:構建浪漫互動網站實戰技巧

520節日特別篇:構建浪漫互動網站實戰技巧 一、非零分積分資源概覽二、基礎概念與作用說明HTML5 Canvas & SVGCSS3 動畫與過渡JavaScript 動態交互 三、實戰代碼示例:打造浪漫愛心雨HTML 結構CSS 樣式JavaScript 邏輯 四、實際開發應用思路1. 個性化祝…

怎么畫思維導圖?方法介紹

怎么畫思維導圖?在數字化時代,思維導圖已成為我們工作、學習和生活中的得力助手。它不僅能幫助我們更好地組織和表達思想,還能提升我們的思維能力和創造力。那么,哪些軟件可以畫思維導圖呢?本文將為你揭秘幾款功能強大…

Linux 應用入門(一)

1. 交叉編譯 概念:在當前編譯平臺下,編譯出來的程序能運行在體系結構不同的另一種目標平臺上,但是編譯平臺本身卻不能運行該程序。 為什么需要交叉編譯? 速度:目標平臺得運行速度比主機往往慢得多,因為許多…

Docker+nginx部署SpringBoot+vue前后端分離項目(保姆及入門指南)

前后分離項目部署 項目回顧工具上線準備1、win1.1、前端1.2、后端 2、linux環境2.1、安裝docker2.2、安裝docker compose2.3、編寫Dockerfile文件2.4、編寫docker-compose.yml文件2.5、修改application-pro.yml2.6、準備好nginx的掛載目錄和配置2.7、部署后端服務 項目回顧 書…

數據挖掘實戰-基于內容協同過濾算法的電影推薦系統

🤵?♂? 個人主頁:艾派森的個人主頁 ?🏻作者簡介:Python學習者 🐋 希望大家多多支持,我們一起進步!😄 如果文章對你有幫助的話, 歡迎評論 💬點贊&#x1f4…

【從C++到Java一周速成】章節9:構造器

章節9:構造器 對于一個類來說,一般有三種常見的成員:屬性、方法、構造器。 這三種成員都可以定義零個或多個。 構造方法也叫構造器,是一個創建對象時被自動調用的特殊方法,用于對象的初始化。 Java通過new關鍵字來調用…

OpenHarmony集成OCR三方庫實現文字提取

1. 簡介 Tesseract(Apache 2.0 License)是一個可以進行圖像OCR識別的C庫,可以跨平臺運行 。本樣例基于Tesseract庫進行適配,使其可以運行在OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)上,并新增N-API接口供上層應…

.Net Core學習筆記 框架特性(注入、配置)

注:直接學習的.Net Core 6,此版本有沒有startup.cs相關的內容 項目Program.cs文件中 是定義項目加載 啟動的地方 //通過builder對項目進行配置、服務的加載 var builder WebApplication.CreateBuilder(args); builder.Services.AddControllers();//將…

Ubuntu服務器運行Subspace節點和Farm

提供Subspace 節點部署&性能優化&機房托管&運維監控等服務。myto88 磁盤格式化 將插入的磁盤格式化。 sudo mkfs.ext4 -m 0 -T largefile4 /dev/sd*磁盤掛載 此處為語雀內容卡片,點擊鏈接查看:https://www.yuque.com/u25096009/lvoxa…

企商在線榮登甲子光年“2024中國AI算力層創新企業”榜單

5月15日,「AI創生時代——2024甲子引力X科技產業新風向」大會在北京順利舉辦,大會發布2024【星辰100】創新企業榜。企商在線憑借全棧式一體化AI算力能力,與超聚變、寒武紀等企業共同入選“2024中國AI算力層創新企業”榜單。 本次大會由中國科…

AJAX(JQuery版本)

目錄 前言 一.load方法 1.1load()簡介 1.2load()方法示例 1.3load()方法回調函數的參數 二.$.get()方法 2.1$.get()方法介紹 2.2詳細說明 2.3一些例子 2.3.1請求test.php網頁并傳送兩個參數 2.3.2顯示test返回值 三.$.post()方法 3.1$.post()方法介紹 3.2詳細說明 …

什么是云計算安全?如何保障云計算安全

云計算徹底改變了數據存儲的世界,它使企業可以遠程存儲數據并隨時隨地從任何位置訪問數據。存和取變得簡單,也使得云上數據極易造成泄露或者被篡改,所以云計算安全就顯得非常重要了。那么什么是云計算安全? 其實,云計…

WPS PPT學習筆記 1 排版4原則等基本技巧整理

排版原則 PPT的排版需要滿足4原則:密性、對齊、重復和對比4個基本原則。 親密性 彼此相關的元素應該靠近,成為一個視覺單位,減少混亂,形成清晰的結構。 兩端對齊,1.5倍行距 在本例中,19年放左邊&#x…

是誰的項目還在爛大街?一個基于 SpringBoot 的高性能短鏈系統

看了幾百份簡歷,真的超過 90% 的小伙伴的項目是商城、RPC、秒殺、論壇、外賣、點評等等爛大街的項目,人人都知道這些項目爛大街了,但大部分同學還是得硬著頭皮做,沒辦法,網絡上能找到的、教程比較完善的就這些項目了&a…

基于機器學習預測未來的二氧化碳排放量(隨機森林和XGBoost)

基于機器學習預測未來的二氧化碳排放量(隨機森林和XGBoost) 簡介: CO2排放是當今全球關注的環境問題之一。本文將使用Python對OWID提供的CO2排放數據集進行分析,并嘗試構建機器學習模型來預測未來的CO2排放趨勢。我們將探索數據…

kafka Kerberos集群環境部署驗證

背景 公司需要對kafka環境進行安全驗證,目前考慮到的方案有Kerberos和SSL和SASL_SSL,最終考慮到安全和功能的豐富度,我們最終選擇了SASL_SSL方案。處于知識積累的角度,記錄一下kafka keberos安裝部署的步驟。 機器規劃 目前測試環境公搭建了三臺kafka主機服務,現在將詳細…