CPU 調度與排程策略(CPU Scheduling)

更新於 2024/12/09閱讀時間約 5 分鐘

目標:理解程式的排程策略,如何讓多個應用程式同時執行

CPU 調度是作業系統分配 CPU 資源的關鍵任務,確保多個應用程式能有效率地共享處理能力。當多個程式同時運行時,CPU 需要一種策略來決定誰先使用資源,誰後執行,避免資源浪費與系統過載。

CPU Scheduling Criteria(CPU 調度準則)

CPU Scheduling in Operating Systems


CPU Scheduling Criteria(CPU 調度準則)

排程的好壞取決於一些重要的指標,類似於排隊系統中的等待與服務時間:

  1. 到達時間(Arrival Time)
    • 程式進入等待執行隊列的時間點,越早到達的程式通常越早被考慮執行。
  2. 完成時間 (Completion Time)
    • 程式完全執行結束的時間點,反映了程式在系統中的生命週期。
  3. 執行時間(Burst Time):程式運作開始的時間點。
  4. 等待時間 (Waiting Time)
    • 程式在等待隊列中等待執行的時間,公式: Waiting Time = Turn Around Time  –  Burst Time
  5. 周轉時間 (Turnaround Time)
    • 程式從到達到完成所經歷的總時間,公式: Turn Around Time = Completion Time  –  Arrival Time
raw-image

CPU Scheduling(Preemptive & Non-Preemptive)

1. Non-Preemptive (非搶占式排程)

  • 一旦 CPU 分配給某個程式,該程式必須執行完成後才能釋放資源。
  • 比喻: 像舉辦單場比賽,選手一上場就要比賽到結束,中間不會有人插隊。

2. Preemptive (搶占式排程)

  • 當有更高優先級的程式到達時,CPU 可以中斷當前執行的程式,將資源重新分配。
  • 比喻: 像音樂椅遊戲,當新的玩家到場時,原本坐在椅子上的人可能會被擠下去。

八種常見的 CPU 排程策略

  1. 先來先服務 (First-Come, First-Served, FCFS)
    • 到得早的程式先執行。
    • 比喻: 排隊買票,先排到的人先買到。
  2. 短作業優先 (Shortest Job Next, SJN)
    • 執行時間最短的程式先執行。
    • 比喻: 點菜時先做簡單的菜,節省等待時間。
  3. 最短剩餘時間優先 (Shortest Remaining Time, SRT)
    • 執行時間最短、剩餘時間少的程式優先,中途可能搶占。
    • 比喻: 快做好的菜優先端給顧客。
  4. 優先權排程 (Priority Scheduling)
    • 優先級最高的程式先執行。
    • 比喻: 急診室中的危重病人先治療。
  5. 輪轉法 (Round Robin, RR)
    • 每個程式輪流執行固定時間片。
    • 比喻: 籃球比賽輪流上場,每隊有固定的上場時間。
  6. 多層隊列排程 (Multilevel Queue Scheduling)
    • 根據不同類型的程式分配到不同的隊列,先處理高優先級的隊列。
    • 比喻: 機場安檢,頭等艙旅客有專屬快速通道。
  7. 多層回饋隊列排程 (Multilevel Feedback Queue Scheduling)
    • 類似多層隊列,但允許程式在不同隊列間移動,根據其執行情況調整優先級。
    • 比喻: 根據學生的學習進度調整補習班的課程安排。
  8. 最短期限優先 (Earliest Deadline First, EDF)
    • 最接近截止時間的程式優先執行,常用於即時系統。
    • 比喻: 考試日期越近的功課優先完成。

結論:選擇適合的排程策略

不同的 CPU 調度策略適用於不同的情境。對於即時系統,需要快速響應的排程方式;而對於批次處理系統,則可以選擇非搶占式策略來最大化資源使用率。理解這些策略有助於設計更高效的作業系統和應用程式。

留言0
查看全部
avatar-img
發表第一個留言支持創作者!
本篇文章探討作業系統如何管理程式,介紹了 Process、Thread 及 Process Control Block(PCB)的基本概念。本文以實際例子解釋這些概念,並詳細說明 Context Switch 的運作方式以及程式的五大狀態。
本文探討記憶體(Memory)和儲存裝置(Storage)之間的主要差異,並解釋它們各自的功能與特性。此外,文章還深入介紹 Process、Thread 及其對 CPU 運作的影響,並結合可視化圖表幫助讀者理解這些複雜概念,特別適合對計算機科學有興趣的讀者。
本文用書櫃、書、書桌的比喻,深入探討電腦中資料儲存結構及作業系統如何協調資料處理。外部儲存裝置如同書櫃,主記憶體則比作書桌,處理器被比喻為讀書的人,並詳細介紹資料存取過程、Common Bus的角色以及作業系統的核心任務。透過此篇,讀者能更好地瞭解電腦在資料處理上的運作邏輯及作業系統的重要性。
本文深入探討 NoSQL 資料庫的特性及優勢,並將其與傳統 SQL 資料庫進行比較。NoSQL 資料庫因其結構靈活、擴展性強而適合儲存變化多端的數據,特別是在社交媒體和電商平臺等高需求場景。CAP 理論也被提出,解釋了分散式系統的能力取捨問題,幫助讀者瞭解在不同需求下如何選擇合適的資料庫技術。
本文探討 SQL 注入(SQL Injection)的攻擊原理及其防護措施。透過具體範例,解釋駭客如何利用應用程式漏洞進行資料庫攻擊,並提供有效的防範方法,包括使用參數化查詢、ORM 框架和輸入驗證等技術,確保應用程式的安全性。最後還簡介資料庫分區與分片的概念,讓讀者更全面理解如何管理和保護資料庫。
本文介紹了資料庫索引的基本原理、類型以及其在資料查詢中的重要性。索引類似於書的目錄,不僅可以提高查詢效率,還有助於組織資料。文章詳細說明瞭主索引、密集索引、稀疏索引、叢索引和非叢索引的定義與特點,並提供了實際的比喻和例子。透過深入瞭解索引的運作,讀者可以更好地設計和優化資料庫,並提升查詢效能。
本篇文章探討作業系統如何管理程式,介紹了 Process、Thread 及 Process Control Block(PCB)的基本概念。本文以實際例子解釋這些概念,並詳細說明 Context Switch 的運作方式以及程式的五大狀態。
本文探討記憶體(Memory)和儲存裝置(Storage)之間的主要差異,並解釋它們各自的功能與特性。此外,文章還深入介紹 Process、Thread 及其對 CPU 運作的影響,並結合可視化圖表幫助讀者理解這些複雜概念,特別適合對計算機科學有興趣的讀者。
本文用書櫃、書、書桌的比喻,深入探討電腦中資料儲存結構及作業系統如何協調資料處理。外部儲存裝置如同書櫃,主記憶體則比作書桌,處理器被比喻為讀書的人,並詳細介紹資料存取過程、Common Bus的角色以及作業系統的核心任務。透過此篇,讀者能更好地瞭解電腦在資料處理上的運作邏輯及作業系統的重要性。
本文深入探討 NoSQL 資料庫的特性及優勢,並將其與傳統 SQL 資料庫進行比較。NoSQL 資料庫因其結構靈活、擴展性強而適合儲存變化多端的數據,特別是在社交媒體和電商平臺等高需求場景。CAP 理論也被提出,解釋了分散式系統的能力取捨問題,幫助讀者瞭解在不同需求下如何選擇合適的資料庫技術。
本文探討 SQL 注入(SQL Injection)的攻擊原理及其防護措施。透過具體範例,解釋駭客如何利用應用程式漏洞進行資料庫攻擊,並提供有效的防範方法,包括使用參數化查詢、ORM 框架和輸入驗證等技術,確保應用程式的安全性。最後還簡介資料庫分區與分片的概念,讓讀者更全面理解如何管理和保護資料庫。
本文介紹了資料庫索引的基本原理、類型以及其在資料查詢中的重要性。索引類似於書的目錄,不僅可以提高查詢效率,還有助於組織資料。文章詳細說明瞭主索引、密集索引、稀疏索引、叢索引和非叢索引的定義與特點,並提供了實際的比喻和例子。透過深入瞭解索引的運作,讀者可以更好地設計和優化資料庫,並提升查詢效能。
你可能也想看
Google News 追蹤
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
在現代企業管理中,如何有效地處理各類工作任務與客戶需求,是提高整體運營效率的核心。工單系統,作為一種集成管理工具,已成為許多企業提升效率與服務質量的重要手段。
Thumbnail
我們可能會有一種迷思,不管開發什麼系統,開發團隊都袛會有一種方式來工作。反正不管怎麼樣,系統最終也一定是能開發出來的。那麼選擇開發生命週期又跟我何干?本篇將會介紹專案經理應該如何為不同特性的專案選擇最合適的管理策略,即生命週期。
Thumbnail
藉由本篇分享在推動工作、專案、計畫時的思維理則,並分成了七個步驟、21個要項。內容包含了蒐集、分析、比較、計畫、實施、查驗和行動等階段,涵蓋了從開始到結束的整個執行流程,希望對於企業管理者以及執行計畫的夥伴都有相當的幫助。
Thumbnail
這篇文章著重於解釋軟體專案管理中的戰略意義和專案特性評估,並提出了四個不同像限的專案特性。
Thumbnail
敏捷開發方法已成為現代軟體開發領域的一個關鍵趨勢。其主要目的是通過快速和增量的開發過程,提高開發效率和應對變化的能力。本文將深入探討Scrum和Kanban這兩種流行的敏捷方法的基本原理,實際應用案例,以及實施過程中可能遇到的挑戰和解決策略。
Thumbnail
這篇文章描述了作者從兼職開發轉為全職開發的過程,並分享了從混進學界指日可待的積極態度。作者也提及自己在專案製作與個人生活上的矛盾與感想,最後分享了專案管理和敏捷開發相關的文章與影片。
策略規劃怎麼做?專案管理怎麼規劃流程?做好前期策略流程準備,專案團隊才能一直朝著共同目標前進!跟著我們一起 5 步學會規劃專案策略,從確立目標開始,照著範例一步步進行環境分析,掌握關鍵策略選項和計劃制定高效工具,隨時監控KPIs完成情況!還有免費工具推薦,讓你可以一鍵生成策略流程圖!
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
在現代企業管理中,如何有效地處理各類工作任務與客戶需求,是提高整體運營效率的核心。工單系統,作為一種集成管理工具,已成為許多企業提升效率與服務質量的重要手段。
Thumbnail
我們可能會有一種迷思,不管開發什麼系統,開發團隊都袛會有一種方式來工作。反正不管怎麼樣,系統最終也一定是能開發出來的。那麼選擇開發生命週期又跟我何干?本篇將會介紹專案經理應該如何為不同特性的專案選擇最合適的管理策略,即生命週期。
Thumbnail
藉由本篇分享在推動工作、專案、計畫時的思維理則,並分成了七個步驟、21個要項。內容包含了蒐集、分析、比較、計畫、實施、查驗和行動等階段,涵蓋了從開始到結束的整個執行流程,希望對於企業管理者以及執行計畫的夥伴都有相當的幫助。
Thumbnail
這篇文章著重於解釋軟體專案管理中的戰略意義和專案特性評估,並提出了四個不同像限的專案特性。
Thumbnail
敏捷開發方法已成為現代軟體開發領域的一個關鍵趨勢。其主要目的是通過快速和增量的開發過程,提高開發效率和應對變化的能力。本文將深入探討Scrum和Kanban這兩種流行的敏捷方法的基本原理,實際應用案例,以及實施過程中可能遇到的挑戰和解決策略。
Thumbnail
這篇文章描述了作者從兼職開發轉為全職開發的過程,並分享了從混進學界指日可待的積極態度。作者也提及自己在專案製作與個人生活上的矛盾與感想,最後分享了專案管理和敏捷開發相關的文章與影片。
策略規劃怎麼做?專案管理怎麼規劃流程?做好前期策略流程準備,專案團隊才能一直朝著共同目標前進!跟著我們一起 5 步學會規劃專案策略,從確立目標開始,照著範例一步步進行環境分析,掌握關鍵策略選項和計劃制定高效工具,隨時監控KPIs完成情況!還有免費工具推薦,讓你可以一鍵生成策略流程圖!