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

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

留言
avatar-img
留言分享你的想法!
avatar-img
越南放大鏡 X 下班資工系
30會員
84內容數
雙重身份:越南放大鏡 X 下班資工系 政大東南亞語言學系是我接觸越南語的起點,畢業後找越南外派工作的生活跟資訊時,發現幾乎都是清單式的分享,很難身歷其境。所以我希望「越南放大鏡」可以帶讀者看到更多細節和深入的觀察。 - 下班資工系則是自學資工系的課程內容,記錄實際操作的過程,學習理論的過程。希望可以跟讀者一起成長。
2025/04/24
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
2025/04/24
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
2025/04/21
本文介紹行動通訊網路的演進歷史,從1G到5G,並說明ITU與3GPP在制定通訊規格上的重要角色,以及5G的三大關鍵應用場景:URLLC、eMBB和mMTC。
Thumbnail
2025/04/21
本文介紹行動通訊網路的演進歷史,從1G到5G,並說明ITU與3GPP在制定通訊規格上的重要角色,以及5G的三大關鍵應用場景:URLLC、eMBB和mMTC。
Thumbnail
2025/04/11
這篇文章說明網路的七層模型、IP 位址、通訊埠、TCP/UDP 協定、HTTP 協定、HTTP 狀態碼以及 WebSocket,並解釋它們之間的關係與互動方式。文中包含許多圖表和範例,幫助讀者理解這些網路概念。
Thumbnail
2025/04/11
這篇文章說明網路的七層模型、IP 位址、通訊埠、TCP/UDP 協定、HTTP 協定、HTTP 狀態碼以及 WebSocket,並解釋它們之間的關係與互動方式。文中包含許多圖表和範例,幫助讀者理解這些網路概念。
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
本文分享優秀PM的核心能力:Prioritization(排定優先級)。作者從自身經驗出發,說明如何區分 Issue 和 Task,並運用緊急/重要矩陣,有效排定優先級,避免手忙腳亂。此外,作者強調與主管同步確認優先級的重要性,以確保產出價值最大化。
Thumbnail
本文分享優秀PM的核心能力:Prioritization(排定優先級)。作者從自身經驗出發,說明如何區分 Issue 和 Task,並運用緊急/重要矩陣,有效排定優先級,避免手忙腳亂。此外,作者強調與主管同步確認優先級的重要性,以確保產出價值最大化。
Thumbnail
目標:理解程式的排程策略,如何讓多個應用程式同時執行 CPU Scheduling Criteria(CPU 調度準則) CPU Scheduling(Preemptive & Non-Preemptive)
Thumbnail
目標:理解程式的排程策略,如何讓多個應用程式同時執行 CPU Scheduling Criteria(CPU 調度準則) CPU Scheduling(Preemptive & Non-Preemptive)
Thumbnail
在繁忙的工作與生活中,懂得設定優先級是高效完成目標的關鍵。以下介紹適合個人和團隊的幾種優先級管理方法,幫助你和團隊更輕鬆地達成目標。 個人使用最佳方法 ▌艾森豪矩陣(Eisenhower Matrix) • 概述:透過「緊急性」與「重要性」來劃分任務。 • 用法:將任務分為四象限
Thumbnail
在繁忙的工作與生活中,懂得設定優先級是高效完成目標的關鍵。以下介紹適合個人和團隊的幾種優先級管理方法,幫助你和團隊更輕鬆地達成目標。 個人使用最佳方法 ▌艾森豪矩陣(Eisenhower Matrix) • 概述:透過「緊急性」與「重要性」來劃分任務。 • 用法:將任務分為四象限
Thumbnail
在現代的工作環境中,多工作業變得愈發普遍。本文探討瞭如何有效管理多項目,包括使用Eisenhower優先矩陣進行項目分類,關鍵路徑法(CPM)識別任務依賴性,及番茄工作法提高時間管理與專注力。瞭解這些管理工具將幫助人們更好地排序任務,提高工作效率,減少壓力。
Thumbnail
在現代的工作環境中,多工作業變得愈發普遍。本文探討瞭如何有效管理多項目,包括使用Eisenhower優先矩陣進行項目分類,關鍵路徑法(CPM)識別任務依賴性,及番茄工作法提高時間管理與專注力。瞭解這些管理工具將幫助人們更好地排序任務,提高工作效率,減少壓力。
Thumbnail
利用樹狀圖不但可以看清楚工作的輕重緩急,更可以看得出來整體工作的先後順序。唯有依照樹狀圖分配資源排定流程,才可能全面掌控好自己的管理工作。
Thumbnail
利用樹狀圖不但可以看清楚工作的輕重緩急,更可以看得出來整體工作的先後順序。唯有依照樹狀圖分配資源排定流程,才可能全面掌控好自己的管理工作。
Thumbnail
步驟二:組織層級設定 [組織結構&職級] 為什麼要設定組織層級呢[組織結構&職級]? 因為我們知道某些公文類別的流程是固定的,比如請購單,一定要職員 -> 科級主管 -> 部級主管,在公文內,一定會走的流程,我們把它稱之為[串簽]流程,所以這時候就用運用到組織層級的設定資訊。至於後續的流程是否.
Thumbnail
步驟二:組織層級設定 [組織結構&職級] 為什麼要設定組織層級呢[組織結構&職級]? 因為我們知道某些公文類別的流程是固定的,比如請購單,一定要職員 -> 科級主管 -> 部級主管,在公文內,一定會走的流程,我們把它稱之為[串簽]流程,所以這時候就用運用到組織層級的設定資訊。至於後續的流程是否.
Thumbnail
1. 掌握優先順序 提示:提供有關業務環境中任務優先順序的綜合指南。包括艾森豪矩陣和 ABCDE 方法以獲得最佳方法。 2. 有效的授權 提示:描述有效委派任務以最大限度地提高工作場所生產力的步驟。 3.時間管理 提示:解釋番茄工作法以及如何使用它來提高生產力。
Thumbnail
1. 掌握優先順序 提示:提供有關業務環境中任務優先順序的綜合指南。包括艾森豪矩陣和 ABCDE 方法以獲得最佳方法。 2. 有效的授權 提示:描述有效委派任務以最大限度地提高工作場所生產力的步驟。 3.時間管理 提示:解釋番茄工作法以及如何使用它來提高生產力。
Thumbnail
1. 時間管理 “提供8小時工作日的詳細時間表,優化能量水準和任務多樣性,以確保最大的生產力。”  2. 任務優先順序  “列出確定任務優先順序時要考慮的關鍵因素,並創建一個決策矩陣,根據緊急性和重要性對任務進行排名。”
Thumbnail
1. 時間管理 “提供8小時工作日的詳細時間表,優化能量水準和任務多樣性,以確保最大的生產力。”  2. 任務優先順序  “列出確定任務優先順序時要考慮的關鍵因素,並創建一個決策矩陣,根據緊急性和重要性對任務進行排名。”
Thumbnail
個體層次的工作者,我覺得在掌握那些個人工作「效率」的秘訣之外,「效能」的提升可能才是最後一哩路,這時候客戶/老闆真正想要什麼才是「效能」的關鍵,而如果要搞清楚老闆要什麼,上面講如何洞悉工作流程,並且據此重新設計自己每天的工作流程,可能才是最重要的技能。
Thumbnail
個體層次的工作者,我覺得在掌握那些個人工作「效率」的秘訣之外,「效能」的提升可能才是最後一哩路,這時候客戶/老闆真正想要什麼才是「效能」的關鍵,而如果要搞清楚老闆要什麼,上面講如何洞悉工作流程,並且據此重新設計自己每天的工作流程,可能才是最重要的技能。
Thumbnail
為什麼要對任務進行排班呢?這篇文章將會告訴你,在作業系統當中,是如何利用排班演算法來處理交互式與非交互式任務,以及如何提升CPU使用率!
Thumbnail
為什麼要對任務進行排班呢?這篇文章將會告訴你,在作業系統當中,是如何利用排班演算法來處理交互式與非交互式任務,以及如何提升CPU使用率!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News