Dom > Izložba > Sadržaj

Planiranje operativnog sistema u realnom vremenu

Mar 08, 2019

U tipičnom dizajnu, zadatak ima tri stanja:


Trčanje (izvršavanje na CPU-u);

Spreman (spreman za izvršenje);

Blokirano (čekanje na događaj, na primjer, I / O).

Većina zadataka je blokirana ili spremna većinu vremena, jer se općenito može pokrenuti samo jedan zadatak po CPU-u. Broj stavki u redu spremnosti može se uvelike razlikovati, ovisno o broju zadataka koje sustav treba izvesti i tipu planera koji sustav koristi. Na jednostavnijim nepreceptivnim, ali još uvijek multitasking sistemima, zadatak mora odustati od svog vremena na CPU-u za druge zadatke, što može dovesti do toga da spreman red ima veći broj ukupnih zadataka u stanju spremnosti za izvršenje (resursno gladovanje) .


Obično je struktura podataka liste spremnosti u rasporedu dizajnirana tako da minimizira najduže vrijeme provedeno u kritičnom dijelu planera, tijekom kojeg je sprječavanje onemogućeno i, u nekim slučajevima, svi prekidi su onemogućeni. Ali izbor strukture podataka zavisi i od maksimalnog broja zadataka koji mogu biti na listi spremnosti.


Ako nikada nema više od nekoliko zadataka na listi spremnih, onda je dvostruko povezana lista spremnih zadataka verovatno optimalna. Ako lista spremnosti obično sadrži samo nekoliko zadataka, ali povremeno sadrži više, onda bi listu trebalo sortirati po prioritetu. Na taj način, pronalaženje zadatka s najvišim prioritetom za pokretanje ne zahtijeva iteraciju kroz cijeli popis. Umetanje zadatka onda zahtijeva hodanje spremne liste dok ne dođe do kraja popisa ili zadatka nižeg prioriteta od zadatka koji se ubacuje.


Mora se paziti da se ne spreči preterivanje tokom ove pretrage. Dulje kritične sekcije treba podijeliti na male dijelove. Ako dođe do prekida koji čini zadatak visokog prioriteta spremnim za vrijeme umetanja zadatka niskog prioriteta, taj zadatak visokog prioriteta može se umetnuti i pokrenuti neposredno prije umetanja zadatka niskog prioriteta.


Kritično vrijeme odziva, ponekad nazvano povratnim vremenom, je vrijeme koje je potrebno za stavljanje u red čekanja novog spremnog zadatka i vraćanje stanja zadatka s najvišim prioritetom na pokretanje. U dobro osmišljenom RTOS-u, priprema novog zadatka će uzeti 3 do 20 instrukcija po unosu spremnog reda, a vraćanje zadatka sa najvećim prioritetom će trajati 5 do 30 instrukcija.


U naprednijim sistemima, zadaci u realnom vremenu dijele računalne resurse s mnogim zadacima koji nisu u stvarnom vremenu, a lista spremnih može biti proizvoljno duga. U takvim sistemima, lista spremnih za planiranje implementirana kao povezana lista bila bi neadekvatna.