處理機排程的基本概念
排程的實質是一種資源分配,處理機排程是對處理機資源進行分配。
處理機排程層次:
高階排程(長程排程,作業排程)在需要從外存調入乙個作業到記憶體時發生。
中級排程(記憶體排程) :記憶體緊張時需要調出乙個程序或者空閒時調出的程序調回記憶體。
低階排程(程序排程,短程排程) :執行的程序放棄cpu或者被其他更高優先順序程序搶占。
作業執行的三個階段:收容階段,執行階段,完成階段
作業執行的三個狀態:後備狀態,執行狀態,完成狀態
排程的時機、切換與過程
程序排程和切換程式是作業系統核心程式。當請求排程的事件發生後,才可能會執行程序排程程式,當排程了新的就緒程序後,才會去進行程序間的切換。理論上這三件事情應該順序執行,但在實際設計中,在作業系統核心程式執行時,如果某時發生了引起程序排程的因素,並不一定能夠馬上進行排程與切換。
現代作業系統中,不能進行程序的排程與切換的情況有以下幾種情況。
在處理中斷的過程中:中斷處理過程複雜,在實現上很難做到程序切換,而且中斷處理是系統工作的一部分,邏輯上不屬於某一程序,不應被剝奪處理機資源。
程序在作業系統核心程式臨界區中:進入臨界區後,需要獨佔式地訪問共享資料,理論上必須加鎖,以防止其他並行程式進入,在解鎖前不應切換到其他程序執行,以加快該共享資料的釋放。
其他需要完全遮蔽中斷的原子操作過程中:如加鎖、解鎖、中斷現場保護、恢復等原子操作。在原子過程中,連中斷都要遮蔽,更不應該進行程序排程與切換。
如果在上述過程中發生了引起排程的條件,並不能馬上進行排程和切換,應置系統的請求排程標誌,直到上述過程結束後才進行相應的排程與切換。
應該進行程序排程與切換的情況有:當發生引起排程條件,且當前程序無法繼續執行下去時,可以馬上進行排程與切換。如果作業系統只在這種情況下進行程序排程,就是非剝奪排程。
當中斷處理結束或自陷處理結束後,返回被中斷程序的使用者態程式執行現場前,若置上請求排程標誌,即可馬上進行程序排程與切換。如果作業系統支援這種情況下的執行排程程式,就實現了剝奪方式的排程。
程序切換往往在排程完成後立刻發生,它要求儲存原程序當前切換點的現場資訊,恢復被排程程序的現場資訊。現場切換時,作業系統核心將原程序的現場資訊推入到當前程序的核心堆疊來儲存它們,並更新堆疊指標。核心完成從新程序的核心棧中裝入新程序的現場資訊、更新當前執行程序空間指標、重設pc暫存器等相關工作之後,開始執行新的程序。
排程的基本準則
cpu 利用率、系統吞吐量、周轉時間、等待時間、響應時間
面向使用者的準則
周轉時間短(批處理系統)
響應時間快(分時系統)
截止時間的保證(實時系統)
截止時間,是指某任務必須開始執行的最遲時間,或必須完成的最遲時間。
優先權準則(批處理、分時、實時)
讓某些緊急的作業得到及時的處理。在要求較嚴格的場合可採用搶占排程方式。
程序排程方式:所謂程序排程方式是指當某乙個程序正在處理機上執行時,若有某個更為重要或緊迫的程序需要處理,即有優先權更髙的程序進入就緒佇列,此時應如何分配處理機。
通常有以下兩種程序排程方式:
1)非剝奪排程方式,又稱非搶占方式。
靜態優先順序(權):在整個執行期間保持不變
動態優先順序(權):根據情況改變,隨著程序時間的增加,其優先權降低
多級反饋佇列排程演算法:能使長短作業和互動作業使用者都滿意
工作方式:設定多個就緒佇列,每個佇列採用 fcfs 演算法,按佇列優先順序排程。
效能:終端型使用者,段批處理作業使用者,長批處理作業使用者。
程序排程的任務:儲存處理機的現場資訊,按照某種演算法選取程序,把處理器分配給程序。
程序排程機制的三個基本部分:排隊器,分派器,上下文切換器。
臨界區:用於訪問臨界資源的那段**。
中斷:指cpu 對突發的外部事件的反應過程或機制,cpu接收到外部訊號(中斷訊號)後停止工作轉去處理外部事件,處理完畢後回到原來工作的中斷處(斷點)繼續原來的工作。
引入中斷的目的:實現併發活動,實現實時處理,故障自動處理
中斷源:引起中斷的事件
斷點:程式中斷的地方,將要執行的下一指令位址
現場:程式正確執行所依賴的資訊集合
程序同步
程序同步:是對多個相關程序在執行次序上進行協調,使併發執行諸程序之間能按照一定的 規則(或時序)共享系統資源,並能很好的相互合作,從而使程式的執行具有可再現性。
同步機制應遵循的規則:空閒讓進,忙則等待,有限等待,讓權等待(cpu 的使用權)
1.空閒讓進:資源空閒,允許乙個程序立即進入
2.忙則等待:資源被訪問,其他程序必須等待
3.有限等待:保證等待訪問的程序能在有限時間內進入
4.讓權等待:程序不能進入臨界區使應立即釋放 cpu
程序之間存在著直接制約(同步)與間接制約(互斥)關係,其中直接制約是又程序間的相 互合作引起的,間接制約是由程序間共享臨界資源而引起的。
第二章 程序管理
報考的是三系老師 不是搞硬體的 但由於自己考研時選的科目有作業系統,所以 大致看一下了解即可 1 程序通訊 第一 共享儲存 第二 訊息傳遞 分為直接通訊方式 和 信箱通訊方式 第三 管道通訊 1 排程的層次 第一 作業排程 高階排程 按一定原則從外村上處於後備狀態的作業中挑選乙個 或多個 作業,給它...
第二章 程序管理(4) 程序通訊
2.5 管程機制 一種新的程序同步工具 利用共享資料結構抽象地表示系統中的共享資源 把共享的資源抽象的用共享資料結構來表示 而把對該共享資料結構實施的操作定義為一組過程,如資源的請求和釋放過程request 和release。程序對共享資源的申請 釋放和其它操作,都是通過這組過程對共享資料結構的操作...
第二章 CentOS初始管理 2
二.桌面 與 命令列 4.ssh x11 功能 三.檢視 版本資訊 2 檢視 發行版本 四.設定 主機名 注意 env lang en cat help 臨時改變 某乙個命令 的 語言環境 當 命令 執行完畢之後,就恢復到 當前的語言環境 localectl set locale lang en u...