SchedulerImplv01.docx
- 文档编号:16720431
- 上传时间:2023-07-16
- 格式:DOCX
- 页数:10
- 大小:331.25KB
SchedulerImplv01.docx
《SchedulerImplv01.docx》由会员分享,可在线阅读,更多相关《SchedulerImplv01.docx(10页珍藏版)》请在冰点文库上搜索。
SchedulerImplv01
CONFIDENTIAL
TJU—IFXAutomotiveElectronicJointLaboratory
StateKeyLaboratoryofEngines
TianJinUniversity,China
GEMS–K1
SchedulerImplementation
Revisionhistory
Version
By
Modifications
V1.0,03rdMarch2008
Firstdraft
Summary
Revisionhistory2
Summary3
1Introduction4
1.1Purposeofthedocument4
1.2Definitionsandabbreviations4
1.3References4
2Schedulerarchitecture5
2.1Overview5
2.2Schedulermainloop5
2.3SchedulertickISR6
2.4Metricscalculation8
3Schedulerconfiguration10
4Taskcreation11
4.1Taskbehavior11
4.2Taskscheduling11
5Furtherdevelopments13
1Introduction
‘Schedularisasimpleschedulertoperformperiodictaskmanagement.Thisisapredictable,timetriggered,andnon-preemptivescheduler.Itguaranteesthateveryindividualtaskhasaprocessingslot,detectsoverrunningtasks,andcalculatessystemloadingmetrics.
1.1Purposeofthedocument
Thisdocumentpresentsthefunctionalitiesofthescheduler.
1.2Definitionsandabbreviations
Abbreviation
Description
CPU
CentralProcessingUnit(TriCore)
ISR
Interruptsubroutine
STM
SystemTimer
Table1-Abbreviations
Definition
Description
Task
Ataskisaprocessdefinedbyitspriority,itsdatastack,anditsbehavior.
Predictable
Thetimingbehaviorofthesystemisinanacceptablerange.
Non-preemptive
ATaskisnotinterruptiblebyothertaskswithhigherpriority.
Tickperiod
Periodoftheschedulermaininterrupt.
Readytasks
Taskswaitingtobeexecuted.
Overrunningtask
Notexecutedbeforeanewschedulingofthesametask.
Bitmappedregister
Eachbitoftheregisterrepresentsatask.Bit0istask0,bit1istask1,etc.
Table2-definitions
1.3References
[1]MemOS_user_manual_v1
NOTE:
MostofthecontentisfromtheInfineon’sdocument“MemOS_user_manual_v1”
2Schedulerarchitecture
2.1Overview
Theschedulerisbuiltaroundastaticscheduletabledefiningthetasksschedule.Thistableisanarrayof32-bitsdatatypebit-mappedtothetasks.Eachelementofthetablerepresentthestateofeverytaskforagivenscheduletick.
Figure1-Scheduletable
Eachbitrepresentatask(0to31)andissetto1ifthetaskmustbeexecutedduringagiventimeslot.
Atimeslotisthetimebetweentwoschedulerticks.ThedefaultvalueintheMemOSis1ms.Thismeansthateverymillisecond,theschedulerreadsthevalueatthecurrentindexofthescheduletable,executesthetasksreadytorun,incrementthetable’sindex,andwaitforthenextticktobegin.
TheMemOSalsomonitorsoverrunningtasksandcalculatesmetricssuchasCPUload.
2.2Schedulermainloop
Thescheduler’smainloopisanendlessloop.First,itgoesthroughallthereadytaskstofindthenexttobeexecuted.Taskshaveadecreasingpriority(Task0hasthehigherpriorityandtask31hasthelowerone)sotheschedulerchecksfirstthetask0andexecuteitifready.Afterhavingexecutedatask,thebitcorrespondingtothetaskisresetandtheloopalwaysrestartsfromthebeginning,checkingtasksfromtask0.
Ifnoreadytaskwhenexecutingtheloop,acounterisincrementedandthelooprestartsfromthebeginning.ThiscounterisusedtocomputetheCPUloadofthesystem.
Figure2-Schedulermainloop
2.3SchedulertickISR
Thescheduler’stickISRisexecutedperiodically(e.g.every1ms).Whenthisinterruptoccursthefollowingactionsaredone:
▪Checkoverrunningtasks
▪Loadreadytasksfornextslot
▪Calculatemetrics
ThetickinterruptisgeneratedbytheSTM.
Figure3-tickISR
Theoverrunningtasksaretaskswhichwasreadytobeexecutedduringthepreviousslotbuthadnotimetodoitandwhicharealsoscheduledinthescheduletableforthecurrentslot.Suchataskwillmissoneexecution.Thismissedexecutionmustbedetected,recordedinabitmapped32-bitsregister,andaglobaloverrunningcountermustbeincremented,sotheapplicationcandealwiththisissue.
Example:
Figure4-overrunningtasks
Readytaskiisthereadytasksregisterswhenthetickinterruptisgenerated,Schedule_table[i+1]istheregisterdefiningwhichtasksmustbescheduledthistick,andreadytaksi+1isthereadytaskregisterattheendoftheinterrupt.
Wenoticethatthetask18isschedulerbutnotexecutedbeforethisinterrupt,butshouldbescheduledagainthistick.Task18isoverrunning,oneexecutionwillbemissed.Theoverrunningcounterisincrementedandthebit18oftheoverrunningregisterissetto1.
Toloadthereadytasksforthenewslot,thetickinterruptsimplymakea‘or’operationbetweenthetaskstillreadyfromthepreviousslotandthetaskstobescheduledforthisslot.
Metricscalculationconsistsoverallinsavingthevalueofthemainloopcounter.TheactualcalculationofCPUloadcanbedoneoutsideofthescheduler.Thisoperationmustbeenabledonlyiftheuserwantstomonitortickbytickthevalueofthecounter.Otherwise,asCPUloadcalculationonlyneedsanaveragevalueoveratimeperioditcanbedoneoutsidethetickinterrupt.
3
Schedulerconfiguration
Thissectiondescribesseveralparametersthatcanbechangedbyusertoconfigurethescheduler.
Name
SCHEDULE_SPEED
File
Tasks.h
Defaultvalue
1024
Name
SCHEDULE_TABLE_LENGTH
Description
Lengthofthescheduletable
File
Tasks.h
Defaultvalue
20
Name
TASK_TABLE_LENGTH
Description
Numberoftasks
File
Tasks.h
Defaultvalue
32
Note
ThisvaluemustbethesamethanNUM_TASKandshouldnotbechangedbytheuser.
4
Taskcreation
Thissectiondescribeshowtosetupasystembycreatingtasksandcreatingthestaticscheduletable.
4.1Taskbehavior
MemOSprovidestheallthearchitectureforthe32taskssotocreateatasktheusershouldonlywritesthetaskbehaviorintherightplace.Everytaskisdefinedinitsown.cand.hfiles.Forataskofpriorityn,thefollowingfunctionsareimplemented:
▪StartTaskn
▪LongjmpTaskn
▪Taskn
Thetask’sbehaviorisdefinedintheTasknfunction.Tocreateatask,itsbehaviormustbeimplementedinthisfunction.Itisimportantthatthefunctionmustreturn;endlessloopsshouldnotbeprogrammedinthisfunction.
4.2Taskscheduling
Afterimplementingthetasks,thesecondstepistofillthescheduletable.TheTagsTASK0toTASK31havebeendefinedtoallowacleardefinitionofthescheduletable.
TASK0
0x00000001
TASK1
0x00000002
TASK2
0x00000040
…
…
TASK31
0x80000000
Table4-taskstags
Forexample,inthelistingcodebellow,fortheslice0task0andtask1arescheduledbywritinginthefirstelementofthescheduletable.Forthenexttick(slice1)onlytask0isscheduled,etc.
Thistableisstaticallydefinedinthescheduler.cfile.Definedasaconstant,thevaluesofthistablecannotbeoverwrittenduringexecution.
Codelisting1-Scheduletabledefinition
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SchedulerImplv01
![提示](https://static.bingdoc.com/images/bang_tan.gif)