改章節個人在青島喝咖啡的時候突然想到的...今天就有想寫幾篇關於程序演算法的文章,所以回家到後之就奮筆疾書的寫出來發表了
每日一道理
無知者為夢想中的虛幻而苦苦等待,換回的不是所求的,而是歲月在臉上留下的印痕,一事無成的人一生便是虛度。生活中,與其花間時去等待,不如加快步伐去追尋理想,試著與間時賽跑,也許身軀、心理會感到勞累,但這樣的生活畢竟是充實的。
一、程序(業作)排程演算法
l 先來先務服排程演算法(fcfs):每次排程是從就緒列隊中,選擇乙個先最進入就緒列隊的程序,把處理器配分給該程序,使之到得執行。該程序一旦有佔了處理器,它就直一執行下去,直到該程序實現或因生髮件事而阻塞,才出退處理器。特色:利於長程序,而不利於短程序。
l 短程序(業作)優先排程演算法(spf):它是從就緒列隊中選擇乙個估計執行間時最短的程序,將處理器配分給該程序,使之有佔處理器並執行,直到該程序實現或因生髮件事而阻塞,然後出退處理器,再從新排程。
l 間時片輪轉排程演算法 :系統將全部的就緒程序按進入就緒列隊的後先順序排列。每次排程時把cpu配分給隊首程序,讓其執行乙個間時片,當間時片用完,由計時器出發時鐘中斷,排程程式則暫停該程序的執行,使其出退處理器,並將它送到就緒列隊的尾末,等待下一輪排程執行。
l 優先數排程演算法 :它是從就緒列隊中選擇乙個優先權最高的程序,讓其得獲處理器並執行。
l 響應比高者優先排程演算法:它是從就緒列隊中選擇乙個響應比最高的程序,讓其得獲處理器執行,直到該程序實現或因等待件事而出退處理器為止。特色:既顧照了短程序,又慮考了程序達到的後先順序,也不會使長程序期長得不到務服,因此是乙個比擬全面慮考的演算法,但每次行進排程時,都需要對各個程序盤算響應比。所以系統開銷很大,比擬複雜。
l 多級列隊排程演算法
基本概念:
業作周轉間時(ti)=實現間時(tei)-交提間時(tsi)
業作均平周轉間時(t)=周轉間時/業作個數
業作帶權周轉間時(wi)=周轉間時/執行間時
響應比=(等待間時+執行間時)/執行間時
二、儲存器連續配分方法分中區配分演算法
n 次首順應配分演算法(ff):對閒暇區分表記載的要求是按址地遞增的順序排列的,每次配分時,老是從第1條記載開始順序查詢閒暇區分表,找到第乙個能足滿業作度長要求的閒暇區,割分這個閒暇區,一部份配分給業作,一另部份仍為閒暇區。
n 環循次首順應演算法:每次配分均從前次配分的位置後之開始查詢。
n 最好順應配分演算法(bf):是按業作要求從全部的閒暇區分中選挑乙個能足滿業作要求的最小閒暇區,這樣可證保不去割分乙個更大的區域,使入裝大業作時比擬輕易到得足滿。為實現種這演算法,把閒暇區按度長遞增順序登記在閒暇區表中,配分時,順序查詢。
三、頁面置換演算法
l 最好置換演算法(opt) :選擇當前永不應用或在最長間時內不再被拜訪的記憶體頁面予以淘汰。
l 先進先出置換演算法(fifo):選擇先最進入記憶體的頁面予以淘汰。
l 近最最久未應用演算法(lru):選擇在近最一段間時內最久沒有應用過的頁,把它淘汰。
l 起碼應用演算法(lfu):選擇到當前間時為止被拜訪數次起碼的頁轉換。
四、磁碟排程
n 先來先務服(fcfs):是按請求拜訪者的後先順序啟動磁碟驅動器,而不慮考它們要拜訪的物理位置
n 最短尋道間時優先(sstf):讓離當前磁軌近最的請求拜訪者啟動磁碟驅動器,等於讓查詢間時最短的那個業作先執行,而不慮考請求拜訪者到來的後先順序,這樣就克服了先來先務服排程演算法中磁臂動移過大的題問
n 描掃演算法(scan)或電梯排程演算法:老是從磁臂當前位置開始,沿磁臂的動移方向去選擇離當前磁臂近最的那個柱面的拜訪者。如果沿磁臂的方向無請求拜訪時,就轉變磁臂的動移方向。在種這排程方法下磁臂的動移類似於電梯的排程,所以它也稱為電梯排程演算法。
n 環循描掃演算法(cscan):環循描掃排程演算法是在描掃演算法的基礎上改良的。磁臂為改單項動移,由外向裡。當前位置開始沿磁臂的動移方向去選擇離當前磁臂近最的哪個柱面的拜訪者。如果沿磁臂的方向無請求拜訪時,再回到最外,拜訪柱面號最小的業作請求。
文章結束給大家分享下程式設計師的一些笑話語錄: 據說有一位軟體工程師,一位硬體工程師和一位專案經理同坐車參加研討會。不幸在從盤山公路下山時壞在半路上了。於是兩位工程師和一位經理就如何修車的問題展開了討論。
硬體工程師說:「我可以用隨身攜帶的瑞士軍刀把車壞的部分拆下來,找出原因,排除故障。」
專案經理說:「根據經營管理學,應該召開會議,根據問題現狀寫出需求報告,制訂計畫,編寫日程安排,逐步逼近,alpha測試,beta1測試和beta2測試解決問題。」
軟體工程說:「咱們還是應該把車推回山頂再開下來,看看問題是否重**生。」
常見的作業系統程序排程演算法
一 先來先服務和短作業 程序 優先排程演算法 1 先來先服務排程演算法 先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。當在作業排程中採用該演算法時,每次排程都是從後備作業佇列中選擇乙個或多個最先進入該佇列的作業,將它們調入記憶體,為它們分配資源...
常見的作業系統程序排程演算法
一 先來先服務和短作業 程序 優先排程演算法 1 先來先服務排程演算法 先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法可用於作業排程也可以程序排程。擋在作業排程該演算法時,每次排程都是從後備作業佇列中選擇乙個或多個最先進入該佇列的作業,將它們調入記憶體中為它們分配資源 建立程序,...
作業系統 程序排程演算法
cpu利用率 cpu忙碌的時間佔總時間的比例 利 用率 忙碌的 時間總時 間利用率 frac 利用率 總時 間忙碌的 時間 系統吞吐量 單位時間完成作業或程序的數量 吞 吐量 完成的 作業數量 總時 間吞吐量 frac 吞吐量 總時 間完成的 作業數量 周轉時間 完成作業需要花費的總時間 周 轉時 ...