資料介紹
單片機(jī)在系統(tǒng)中充當(dāng)CPU的角色,需要同時(shí)處理多個(gè)事務(wù)。如與PC機(jī)通信,將收到的信息轉(zhuǎn)發(fā)給從機(jī),監(jiān)視數(shù)據(jù)處理情況等一些繁雜而又重要的事情。如何協(xié)調(diào)好各個(gè)事務(wù)之間的關(guān)系,并有條不紊的執(zhí)行各個(gè)事務(wù),這就需要在編寫程序時(shí)采用合適的算法進(jìn)行處理。一般的方法就是在單片機(jī)中移植操作系統(tǒng),由操作系統(tǒng)來管理各個(gè)事務(wù)。但由于系統(tǒng)要占用一定的內(nèi)部資源,這對(duì)本身資源非常有限的單片機(jī)來說是不現(xiàn)實(shí)的。所以,很少在單片機(jī)中采用操作系統(tǒng),而是采用時(shí)間片輪詢調(diào)度的方法進(jìn)行各任務(wù)的管理。
時(shí)間片輪詢調(diào)度是一種古老而又簡單的算法,廣泛運(yùn)用于無操作系統(tǒng)的微處理器中。在系統(tǒng)中,每個(gè)進(jìn)程被分配一個(gè)時(shí)間段,稱作時(shí)間片,即該進(jìn)程允許運(yùn)行的時(shí)間。如果在時(shí)間片結(jié)束時(shí)進(jìn)程還在運(yùn)行,則CPU將被剝奪并分配給另一個(gè)進(jìn)程。如果進(jìn)程在時(shí)間片結(jié)束前阻塞或結(jié)束,則CPU當(dāng)即進(jìn)行切換。調(diào)度程序所要做的就是維護(hù)一張就緒進(jìn)程列表,當(dāng)進(jìn)程用完它的時(shí)間片后,它被移到隊(duì)列的末尾。
時(shí)間片輪詢調(diào)度中有趣的一點(diǎn)是如何確定時(shí)間片的長度。從一個(gè)進(jìn)程切換到另一個(gè)進(jìn)程是需要一定時(shí)間的,因?yàn)橐4婧脱b入寄存器值及內(nèi)存映像等保護(hù)現(xiàn)場的工作,更新各種表格和隊(duì)列等。假如進(jìn)程切換,有時(shí)稱為上下文切換,需要的時(shí)間為5毫秒,再假設(shè)時(shí)間片長度設(shè)定為20毫秒,則在做完20毫秒有用的工作之后,CPU將花費(fèi)5毫秒來進(jìn)行進(jìn)程切換。CPU時(shí)間的 20%被浪費(fèi)在了管理開銷上。進(jìn)程切換時(shí)間一定的情況下,如果時(shí)間片長度設(shè)定的越小時(shí),這種浪費(fèi)更明顯。所以,時(shí)間片長度與CPU利用率是一對(duì)不可調(diào)和的矛盾,必須處理好它們之間的關(guān)系。
為了提高CPU效率,我們可以將時(shí)間片長度設(shè)得大一些,這時(shí)浪費(fèi)的時(shí)間只有就會(huì)相對(duì)減小。但在一個(gè)分時(shí)系統(tǒng)中,各個(gè)任務(wù)對(duì)時(shí)間片長度的要求是不一致的。例如在一個(gè)系統(tǒng)中,可能要求每秒鐘更新一下顯示內(nèi)容,每幾十毫秒要掃描一下按鍵,每幾毫秒要檢測一下串口緩沖區(qū)等……可見,各個(gè)任務(wù)對(duì)時(shí)間的依賴程度是不一樣的。如果時(shí)間片設(shè)得太長,某些對(duì)實(shí)時(shí)性要求高的任務(wù)可能得不到執(zhí)行,使得系統(tǒng)的實(shí)時(shí)性變差??傊瑫r(shí)間片的設(shè)定應(yīng)滿足對(duì)實(shí)時(shí)性要求最高的那個(gè)任務(wù),這樣才能確保每個(gè)任務(wù)都可以及時(shí)得到執(zhí)行而不被錯(cuò)過。
要在一個(gè)單片機(jī)系統(tǒng)中實(shí)現(xiàn)時(shí)間片輪詢調(diào)度,需要依照以下的步驟:
確定任務(wù)總數(shù)及各個(gè)任務(wù)實(shí)對(duì)時(shí)間實(shí)時(shí)性的要求
根據(jù)任務(wù)對(duì)時(shí)間的要求,確定時(shí)間片的長度
估算執(zhí)行每個(gè)任務(wù)所花費(fèi)的時(shí)間,確保任務(wù)能夠在時(shí)間片的長度內(nèi)執(zhí)行完畢
如果任務(wù)較大,時(shí)間片不足于讓任務(wù)執(zhí)行完,此時(shí)可細(xì)化該任務(wù)
- 單片機(jī)面向?qū)ο笏季S的架構(gòu):時(shí)間輪片法
- 淺析PIC單片機(jī)的數(shù)碼管運(yùn)用程序 2次下載
- 使用單片機(jī)實(shí)現(xiàn)門鈴設(shè)計(jì)的程序和資料說明 10次下載
- 什么是單片機(jī)?單片機(jī)的歷史和應(yīng)用等詳細(xì)資料說明 7次下載
- 單片機(jī)的結(jié)構(gòu)體和指針等資料說明 17次下載
- 時(shí)間片調(diào)度在單片機(jī)有什么樣的作用?運(yùn)用資料詳細(xì)說明
- 使用51單片機(jī)控制小燈閃爍的程序和資料說明
- 時(shí)間片輪轉(zhuǎn)算法在單片機(jī)程序設(shè)計(jì)中要什么樣的作用應(yīng)用說明
- 單片機(jī)程序架構(gòu)的時(shí)間片輪詢法詳細(xì)資料說明
- 51單片機(jī)等串口緩存隊(duì)列的C語言程序說明
- 使用51單片機(jī)進(jìn)行流水燈的設(shè)計(jì)資料和程序資料說明
- 使用STM32單片機(jī)的I2C主從機(jī)之間的通信的程序和資料說明 62次下載
- 單片機(jī)基礎(chǔ)教程之匯編語言程序設(shè)計(jì)知識(shí)的詳細(xì)資料說明 10次下載
- 使用51單片機(jī)和電機(jī)驅(qū)動(dòng)模塊控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的程序和仿真等資料說明 88次下載
- 時(shí)間片輪轉(zhuǎn)算法在單片機(jī)程序設(shè)計(jì)中的應(yīng)用 17次下載
- 單片機(jī)怎么寫入程序 829次閱讀
- 軟件架構(gòu)之時(shí)間輪片法 598次閱讀
- 單片機(jī)里的程序是如何運(yùn)行? 4548次閱讀
- 結(jié)構(gòu)體在單片機(jī)中的應(yīng)用 2959次閱讀
- PIC系列單片機(jī)的詳細(xì)資料說明 5549次閱讀
- 單片機(jī)實(shí)現(xiàn)按鍵的電路和程序設(shè)計(jì)資料說明 9819次閱讀
- 使用單片機(jī)實(shí)現(xiàn)復(fù)位電路的資料詳細(xì)說明 4768次閱讀
- 單片機(jī)實(shí)現(xiàn)多機(jī)通信的資料和程序 7856次閱讀
- 新手教程:單片機(jī)的學(xué)習(xí)實(shí)踐步驟 3958次閱讀
- 單片機(jī)中的時(shí)間片輪詢法解析 8631次閱讀
- 如何采用51單片機(jī)開發(fā)操作體系 760次閱讀
- 單片機(jī)的片選和地址分配 2.1w次閱讀
- STC單片機(jī)燒寫程序步驟說明 7.2w次閱讀
- 燒錄單片機(jī)的步驟 6044次閱讀
- 單片機(jī)與程序設(shè)計(jì)(上) 3889次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論