999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關于完全公平調度算法的研究與分析

2012-04-12 00:00:00武瑛
消費電子 2012年7期

摘要:GFS調度法是Linux最新研制的調度算法,表現出很強的有異性。GFS涉及能夠有效促進處理器資源的公平與共享。本文主要分析了GFS調度算法的特性與工作流程,從算法分析與Hackbench測試兩方面對CFS與O(1)性能進行對比分析與研究

關鍵詞:完全公平調度法;計算機技術;公平

中圖分類號:TP316.81 文獻標識碼:A 文章編號:1674-7712 (2012) 06-0159-01

一、引言

操作系統的一項核心功能表現在進程調度方面,進程調度主要是對處理器資源進行合理公平的分配。調度算法應該以實現效率與公平作為其目標,并促進周轉時間、吞吐量、響應時間等目標之間的平衡[1]。Linux從使用調度算法以來,不斷經歷了O(1)、RSDL、SD、CFS調度算法,CFS相對O(1)有了很大的進步,簡化了代碼,突出了公平的核心思想。

二、CFS概述

GPS采用virtual runtime來描述CPU上的執行時間,在調度的過程中,CFS為保證每個進程有基本相似的執行時間,會選擇執行時間最小的進程來運行,從而達到任務執行時間的相對平衡。CFS調度法相對于O(1)來講有了很大的進步,比如能夠區分交互式進程,不跟蹤睡眠時間,所以代碼思路相對簡單。另外還增加了組調度的功能,以保證組與用戶的公平。同時不再采用優先級數組,將就緒態進程插入紅黑樹,并以此來選擇下一個調度進程。一般每一個調度模塊都需要執行調度類以為其制定一組函數,以簡化需要修改進程杜奧杜算法時的程序。

三、CFS算法

(一)周期性調度函數

系統時鐘中斷調用周期性調度函數,即Scheduler-tick(),對運行隊列信息進行更新并執行相關調度操作,其主要流程表現如下:

(1)對本地CPU的運行隊列負載、時間戳等信息進行更新,之后轉入CFS調度類task_tick函數——task_tick_fair()

(2)對GFS運行隊列和執行進程相關信息進行更新,更新在update-curr()中進行。這種操作構成函數中斷處理的重要內容和核心步驟。

(3)對是否需要搶占當前進程進行有效判斷,這一過程在check_preempt_tick()中進行。

首先,需要對CFS隊列中每一進程被調度以此的時間周期period進行計算;

其次,對目前進程所允許占用的時間,即ideal_runtime進行計算,表現為:ideal_runtime=period*curr->load.weight/cfs_rq->load[2]

cfs_rq->load為cfs_rq的負載,這一數值的增加在進程出列時則會減小,curr->load.weight為nice對應的weight數值。通過上述公式能夠發現,系統負載與ideal_runtime之間呈現負相關;nice與se->load.weight、ideal_runtime呈現負相關。

再次,計算進程已經占用的CPU時間。

delta_exec=curr->sum_exec_runtime-curr->prev_sum_exec_runtime[3]。

式中prev_sum_exec_runtime代表進程被切換到CPU時sum_exec_runtime。

最后,比較進程占用CPU時間delta_exec是否比ideal_runtime要大。如果執行時間超過ideal_runtime則會用resched_task()設置此進程的搶占標志位,同時在tick中斷返回過程中調用schedule()完成調度。

(二)主調度函數

schedule()即主調度函數,包括主動與被動兩種方式,schedule()功能表現為在運行隊列中選擇被調度的進程,同時對調度信息進行有效更新。主調度函數如下:

(1)禁止初始化局部變量、清除調度標志位、內核搶占、執行相關鎖操作等;

(2)在put_prev_task_fair()中將目前執行的程序放到運行隊列。

首先,對當前運行進程up-data_curr()和cfs-rq進行有效更新;其次,在進程插入紅黑樹后,排序鍵值key在_enqueue_entity中變為:se_>vruntime-cfs_rq->min_vruntime。

(3)在pick_next_task_fair()中將CPU分配到下一個被調度的進程中。

首先,選擇結點se(紅黑樹最左側),之后進行兩次條件判斷,分別為是否被cfs_rq->next搶占、是否被cfs_rq->last搶占。之后決定下一個被調度進程。

其次,在選出下一個被調度進程之后,需要采用set_next_entity()設置所選擇的進程的信息,在_dequeue_entity()中實現。

四、CFS總結

從上述分析中可以發現CFS與之前的調度器有很大不同,發生了很大的改進。CFS突出完全公平的思想,以對進程執行時間的追逐來調度任務,通過以紅黑樹代替之前采用的優先級數組來決定被調度的進程,將調度類引入以有效增強代碼的可維護性與內核調度程序的擴展性。同時代碼中也將之前較難理解的公式進行去除,使得整個思路相對清楚,也提高了算法的實用性。但CFS同時也有一些負面的報告,需要在以后的研究中不斷完善。

參考文獻:

[1]朱旭,楊斌,劉海濤.完全公平調度算法分析[J].成都信息工程學院學報,2010,25(1):18-21

[2]王輝,李津生,洪佩琳.802.11WLAN中一種基于循環隊列的分布式公平隊列調度算法[J].電子與信息學報,2004,26(10):1540-1547

[3]趙旭,夏靖波.基于RTAI的Linux系統實時性研究與改進[J].計算機工程,2010,36(14):288-290

主站蜘蛛池模板: 情侣午夜国产在线一区无码| 另类综合视频| 欧美第九页| 国产麻豆永久视频| 精品国产Av电影无码久久久| 久久国产精品嫖妓| 高清欧美性猛交XXXX黑人猛交 | 无码AV高清毛片中国一级毛片 | 一区二区午夜| 91探花在线观看国产最新| 高清国产va日韩亚洲免费午夜电影| 国产手机在线观看| 成人一级黄色毛片| 国产噜噜噜视频在线观看 | 性69交片免费看| 免费又黄又爽又猛大片午夜| 国产成人综合亚洲网址| 亚洲中文在线看视频一区| 国产美女无遮挡免费视频网站| 免费一级α片在线观看| 色悠久久久久久久综合网伊人| 伊人天堂网| 国产日韩欧美在线视频免费观看| 尤物特级无码毛片免费| 最近最新中文字幕在线第一页| 欧洲高清无码在线| 国产成人免费视频精品一区二区| 伦精品一区二区三区视频| 国产aaaaa一级毛片| 国产H片无码不卡在线视频| 亚洲成网777777国产精品| 67194亚洲无码| 日韩高清欧美| 国产精品第一区在线观看| 强乱中文字幕在线播放不卡| 永久免费av网站可以直接看的| 爱爱影院18禁免费| 国产专区综合另类日韩一区| 欧美一区二区自偷自拍视频| 国产精品对白刺激| 欧美一区二区丝袜高跟鞋| 精品一区二区无码av| 亚洲日韩日本中文在线| 精品国产网站| 亚洲欧美不卡| 99久久精彩视频| 丝袜亚洲综合| 国产一区免费在线观看| 美女无遮挡免费视频网站| 2020极品精品国产| 91在线中文| 亚洲天堂首页| 国产嫖妓91东北老熟女久久一| 97se综合| 91区国产福利在线观看午夜| 国产一区二区三区在线无码| 国产高潮流白浆视频| 午夜性刺激在线观看免费| 亚洲精品手机在线| 欧美精品aⅴ在线视频| 久久久久久午夜精品| 免费国产无遮挡又黄又爽| 国产香蕉一区二区在线网站| 国产精品吹潮在线观看中文| 毛片基地视频| 无码丝袜人妻| 福利在线不卡| 欧美一级视频免费| 97亚洲色综久久精品| 99国产在线视频| 91蜜芽尤物福利在线观看| 国产综合另类小说色区色噜噜| 亚卅精品无码久久毛片乌克兰| 中文字幕免费视频| 日本在线欧美在线| 亚洲中字无码AV电影在线观看| 97人人做人人爽香蕉精品| 国产成人夜色91| 久青草免费视频| 国产打屁股免费区网站| 亚洲热线99精品视频| 成人国产精品网站在线看|