資料介紹
單片機(jī)在系統(tǒng)中充當(dāng)CPU的角色,需要同時處理多個事務(wù)。如與PC機(jī)通信,將收到的信息轉(zhuǎn)發(fā)給從機(jī),監(jiān)視數(shù)據(jù)處理情況等一些繁雜而又重要的事情。如何協(xié)調(diào)好各個事務(wù)之間的關(guān)系,并有條不紊的執(zhí)行各個事務(wù),這就需要在編寫程序時采用合適的算法進(jìn)行處理。一般的方法就是在單片機(jī)中移植操作系統(tǒng),由操作系統(tǒng)來管理各個事務(wù)。但由于系統(tǒng)要占用一定的內(nèi)部資源,這對本身資源非常有限的單片機(jī)來說是不現(xiàn)實的。所以,很少在單片機(jī)中采用操作系統(tǒng),而是采用時間片輪詢調(diào)度的方法進(jìn)行各任務(wù)的管理。
時間片輪詢調(diào)度是一種古老而又簡單的算法,廣泛運(yùn)用于無操作系統(tǒng)的微處理器中。在系統(tǒng)中,每個進(jìn)程被分配一個時間段,稱作時間片,即該進(jìn)程允許運(yùn)行的時間。如果在時間片結(jié)束時進(jìn)程還在運(yùn)行,則CPU將被剝奪并分配給另一個進(jìn)程。如果進(jìn)程在時間片結(jié)束前阻塞或結(jié)束,則CPU當(dāng)即進(jìn)行切換。調(diào)度程序所要做的就是維護(hù)一張就緒進(jìn)程列表,當(dāng)進(jìn)程用完它的時間片后,它被移到隊列的末尾。
時間片輪詢調(diào)度中有趣的一點是如何確定時間片的長度。從一個進(jìn)程切換到另一個進(jìn)程是需要一定時間的,因為要保存和裝入寄存器值及內(nèi)存映像等保護(hù)現(xiàn)場的工作,更新各種表格和隊列等。假如進(jìn)程切換,有時稱為上下文切換,需要的時間為5毫秒,再假設(shè)時間片長度設(shè)定為20毫秒,則在做完20毫秒有用的工作之后,CPU將花費5毫秒來進(jìn)行進(jìn)程切換。CPU時間的 20%被浪費在了管理開銷上。進(jìn)程切換時間一定的情況下,如果時間片長度設(shè)定的越小時,這種浪費更明顯。所以,時間片長度與CPU利用率是一對不可調(diào)和的矛盾,必須處理好它們之間的關(guān)系。
為了提高CPU效率,我們可以將時間片長度設(shè)得大一些,這時浪費的時間只有就會相對減小。但在一個分時系統(tǒng)中,各個任務(wù)對時間片長度的要求是不一致的。例如在一個系統(tǒng)中,可能要求每秒鐘更新一下顯示內(nèi)容,每幾十毫秒要掃描一下按鍵,每幾毫秒要檢測一下串口緩沖區(qū)等……可見,各個任務(wù)對時間的依賴程度是不一樣的。如果時間片設(shè)得太長,某些對實時性要求高的任務(wù)可能得不到執(zhí)行,使得系統(tǒng)的實時性變差??傊?,時間片的設(shè)定應(yīng)滿足對實時性要求最高的那個任務(wù),這樣才能確保每個任務(wù)都可以及時得到執(zhí)行而不被錯過。

要在一個單片機(jī)系統(tǒng)中實現(xiàn)時間片輪詢調(diào)度,需要依照以下的步驟:
確定任務(wù)總數(shù)及各個任務(wù)實對時間實時性的要求
根據(jù)任務(wù)對時間的要求,確定時間片的長度
估算執(zhí)行每個任務(wù)所花費的時間,確保任務(wù)能夠在時間片的長度內(nèi)執(zhí)行完畢
如果任務(wù)較大,時間片不足于讓任務(wù)執(zhí)行完,此時可細(xì)化該任務(wù)
- 單片機(jī)面向?qū)ο笏季S的架構(gòu):時間輪片法
- 淺析PIC單片機(jī)的數(shù)碼管運(yùn)用程序 2次下載
- 使用單片機(jī)實現(xiàn)門鈴設(shè)計的程序和資料說明 10次下載
- 什么是單片機(jī)?單片機(jī)的歷史和應(yīng)用等詳細(xì)資料說明 7次下載
- 單片機(jī)的結(jié)構(gòu)體和指針等資料說明 17次下載
- 時間片調(diào)度在單片機(jī)有什么樣的作用?運(yùn)用資料詳細(xì)說明
- 使用51單片機(jī)控制小燈閃爍的程序和資料說明
- 時間片輪轉(zhuǎn)算法在單片機(jī)程序設(shè)計中要什么樣的作用應(yīng)用說明
- 單片機(jī)程序架構(gòu)的時間片輪詢法詳細(xì)資料說明
- 51單片機(jī)等串口緩存隊列的C語言程序說明
- 使用51單片機(jī)進(jìn)行流水燈的設(shè)計資料和程序資料說明
- 使用STM32單片機(jī)的I2C主從機(jī)之間的通信的程序和資料說明 62次下載
- 單片機(jī)基礎(chǔ)教程之匯編語言程序設(shè)計知識的詳細(xì)資料說明 10次下載
- 使用51單片機(jī)和電機(jī)驅(qū)動模塊控制步進(jìn)電機(jī)轉(zhuǎn)動的程序和仿真等資料說明 88次下載
- 時間片輪轉(zhuǎn)算法在單片機(jī)程序設(shè)計中的應(yīng)用 17次下載
- 單片機(jī)怎么寫入程序 829次閱讀
- 軟件架構(gòu)之時間輪片法 598次閱讀
- 單片機(jī)里的程序是如何運(yùn)行? 4548次閱讀
- 結(jié)構(gòu)體在單片機(jī)中的應(yīng)用 2959次閱讀
- PIC系列單片機(jī)的詳細(xì)資料說明 5549次閱讀
- 單片機(jī)實現(xiàn)按鍵的電路和程序設(shè)計資料說明 9819次閱讀
- 使用單片機(jī)實現(xiàn)復(fù)位電路的資料詳細(xì)說明 4768次閱讀
- 單片機(jī)實現(xiàn)多機(jī)通信的資料和程序 7856次閱讀
- 新手教程:單片機(jī)的學(xué)習(xí)實踐步驟 3958次閱讀
- 單片機(jī)中的時間片輪詢法解析 8631次閱讀
- 如何采用51單片機(jī)開發(fā)操作體系 760次閱讀
- 單片機(jī)的片選和地址分配 2.1w次閱讀
- STC單片機(jī)燒寫程序步驟說明 7.2w次閱讀
- 燒錄單片機(jī)的步驟 6044次閱讀
- 單片機(jī)與程序設(shè)計(上) 3889次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關(guān)電源基礎(chǔ)知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實現(xiàn)
- 0.61 MB | 2次下載 | 免費
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
電子發(fā)燒友App






創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論