Casa > Exposició > Contingut

Programació del sistema operatiu en temps real

Mar 08, 2019

En dissenys típics, una tasca té tres estats:


Execució (execució a la CPU);

Llest (llest per ser executat);

Bloquejat (esperant un esdeveniment, I / O, per exemple).

La majoria de les tasques estan bloquejades o llestes la major part del temps, ja que en general només es pot executar una tasca a la vegada per CPU. El nombre d’elements de la cua preparada pot variar molt, depenent de la quantitat de tasques que el sistema ha de realitzar i del tipus de planificador que utilitza el sistema. En sistemes més senzills, no preferents, però encara multitarea, una tasca ha de renunciar al seu temps a la CPU a altres tasques, cosa que pot fer que la cua de preparació tingui un nombre més gran de tasques generals en estat a punt per ser executat (fam de recursos) .


Normalment, l’estructura de dades de la llista preparada al planificador ha estat dissenyada per minimitzar la durada del pitjor dels casos en la secció crítica del programador, durant la qual es preveu la prevenció i, en alguns casos, totes les interrupcions queden inhabilitades. Però l'elecció de l’estructura de dades depèn també del nombre màxim de tasques que es poden trobar a la llista preparada.


Si mai hi hagi més d'unes poques tasques a la llista preparada, és probable que siga òptima una llista d’una llista doblement de tasques preparades. Si la llista preparada sol contenir només unes poques tasques però de tant en tant conté més, la llista s'hauria de classificar per prioritat. D'aquesta manera, trobar la tasca de prioritat més alta a executar no requereix la iteració de tota la llista. La inserció d’una tasca requereix caminar per la llista preparada fins que arribi al final de la llista o bé a una tasca de prioritat inferior a la de la tasca que s’insereix.


Cal tenir cura de no inhibir la preempció durant aquesta cerca. Les seccions crítiques més llargues s'han de dividir en petits trossos. Si es produeix una interrupció que prepara una tasca d'alta prioritat durant la inserció d'una tasca de prioritat baixa, es pot inserir i executar aquesta tasca d'alta prioritat immediatament abans que s'insereixi la tasca de prioritat baixa.


El temps de resposta crític, que de vegades s'anomena temps de retorn, és el temps que triga a fer una cua d'una nova tasca preparada i que restableix l'estat de la tasca de prioritat més alta. En un RTOS ben dissenyat, la preparació d'una nova tasca durà de 3 a 20 instruccions per entrada a la cua llesta i la restauració de la tasca preparada amb prioritat màxima tindrà entre 5 i 30 instruccions.


En sistemes més avançats, les tasques en temps real comparteixen recursos informàtics amb moltes tasques no reals i la llista preparada pot ser arbitràriament llarga. En aquests sistemes, una llista preparada per al planificador implementada com a llista enllaçada seria insuficient.