1. 程式人生 > >操作系統-處理機調度

操作系統-處理機調度

調用 類型 反饋 控制 方式 分享圖片 src 處理機 images

操作系統-處理機調度

調度的實質是資源的分配,而處理機的調度是對處理機資源的調度

調度的層次

  • 高級調度

    高級調度的調度對象是作業,只要用於多道批處理程序,在分時和實時系統中不設置高級調度

    • 作業

    作業是一個比程序更為廣泛的概念,不僅包含了通常的程序和數據,還配有一份作業說明書,它和進程,線程一樣有控制塊,作業的叫做作業控制塊JCB

    • 任務

      根據JCB中的信息檢查系統中的資源能否滿足作業對資源的需求,以及按照一定的調度算法,從外存的後備隊列中選取作業調入內存,並未它們創建進程,分配資源,然後將新進程排在隊列中

    • 調度算法

      • 先來先服務調度算法

        顧名思義就是先來到的先被調用,每次調度都是從隊列中選擇最先進入該隊列的進程

      • 短作業優秀調度算法

        根據作業的長短進程調度,短的優秀被調用

      • 優先級調度

        選取一個標準作為優先級的比較

      • 高響應比優秀調度算法

        為了避免有的作業一直處於饑餓狀態,設置一個動態優秀級,讓它優秀級可以改變。

        優先權=(等待時間+要求服務時間)/要求服務時間

  • 低級調度

    低級調度的調度對象是進程,是最基本的一種調度,在多道批處理,分時,實時系統中都會配置這個調度

    • 任務

      • 保存處理機的現場信息
      • 按算法從隊列中選取進程
      • 分配處理機給進程
    • 機制

      技術分享圖片

      • 排隊器

      • 為了提高進程的調度效率,系統都是事先將所有的就緒進程按照一定的策略排成一個或者多個隊列,以後每有一個進程轉變為就緒狀態時,排隊器就將它插入相應的就緒隊列

      • 分派器

        分派器依據進程調度程序選定進程,將其從就緒隊列中取出,然後進行從分派器到新選出的進程間的上下文切換,將處理機分給新進程

      • 上下文切換器

      進行切換時,OS會保存當前進程的上下文,而後把新進程的CPU裝入到處理機各個相應的寄存器

    • 方式

      • 非搶占式

      • 搶占式

        搶占不是一種任意的行為,必須遵循一定的原則

        • 優先權原則
        • 短進程優秀原則
        • 時間片原則
    • 調度算法

      • 輪轉調度算法

      系統設置一個時間片,每隔一個時間片產生一次中斷,去激活進程調度程序進行調度,把CPU分配給對首進程,並令其執行一個時間片,運行完成後,把處理機分配給就緒隊列中的隊首進程。

      • 優秀級調度算法

        優先級分為靜態優先級和動態優秀級,動態優秀級是為防止某些低優先級的進程長期處於饑餓狀態

        • 非搶占式優先級算法

          一旦分配了處理機,那麽知道進程運行完成或者因為某種事件而放棄處理機,然後才把處理機分配優秀級最高的進程

        • 搶占式優先級算法

        只要優秀級比當前運行的進程的優秀級高,那麽就處理機就會分配給更高優秀級的進程

      • 多隊列調度算法

      將進程的就緒隊列分為若幹,將不同類型或者性質的進程分配在不同的就緒對列中,不同的就緒隊列采用不同的調度算法

      • 多級反饋隊列調度算法

      這個結合了上面的優點,設置多個就緒隊列,每個隊列采用先來先服務FCFS算法,按隊列優秀級調度

  • 中級調度、

    低級調度是內存調度,將暫時不能運行的進程,調至外存等待

操作系統-處理機調度