840 likes | 971 Views
RTMON HC 11. Prof. Ing. Vladimír Vašek, CSc. Charakteristika RTMON. Preemptivní systém Samostatný soubor, který se přilinkuje k uživatelským procesům Je užíván pomocí služeb Služby pro práci s procesy Služby pro práci se schránkami a zprávami Musí být inicializován.
E N D
RTMON HC 11 Prof. Ing. Vladimír Vašek, CSc.
Charakteristika RTMON • Preemptivní systém • Samostatný soubor, který se přilinkuje k uživatelským procesům • Je užíván pomocí služeb • Služby pro práci s procesy • Služby pro práci se schránkami a zprávami • Musí být inicializován
Stav procesu (1) • STDEF – pouze definován pomocí CRTP • STREDY – připraven na spuštění • STRUN – běžící • STSTOP – pozastavený • STABOR – abortovaný • STWTIM – čeká na uplynutí času do spuštění
Stav procesu (2) • STWCON – čeká na uplynutí času do pokračování • STWQF – čeká na zprávu ve schránce, jejíž adresa je v HDSOW • STWQE – čeká na uvolnění schránky, jejíž adresa je v HDSOW • STOCRT – proces přetekl přes časovou periodu spouštění
Volání služeb (1) • Před voláním služby je nutno naplnit příslušné vstupní registry podle požadavků volané služby. • Akumulátor A obsahuje číslo volané služby (pevně dáno) • Akumulátor B většinou obsahuje číslo procesu, což je identifikátor vrácený službou CRTP (založení procesu - registrace pro jádro RTMON).
Volání služeb (2) • Každá služba vrací nejméně akumulátor A, kde je uložen návratový kód procesu (chyba). • Vlastní volání jádra RTMON se provede pomocí instrukce JSR SERV, čímž se předá řízení manažeru služeb.
POPIS SLUŽEB (1) Služby pro práci s procesy
CRTP - založení procesu • Vyplní hlavičku procesu do tabulky hlaviček a regulérně zaregistruje proces pro jádro systému. • Nastavuje zásobník procesu a hodnotu jeho aktuálního ukazatele na dno zásobníku. • Stav procesu nastaví na „pouze definován“ a vyplní proměnnou HDSTAR ve vektoru procesu startovací adresou procesu. • Vrátí identifikátor procesu, kterým se odkazují ostatní služby na daný proces. • Je možno založit až 20 procesů (bez úpravy).
STRP – spuštění procesu • Spustí založený proces buďto jednorázově nebo s periodickým spouštěním. • Při periodickém spouštění musí uživatel zaručit, že proces bude dokončen do doby dalšího možného spuštění. Pokud tato situace přece jen nastane, bude proces vyloučen z dalších rozhodování jádra a obdrží status STOVRT. • Při definovaném pozastavení do prvního spuštění nejsou odpočítávány tiky procesu v periodě spouštění. Proces počká až uplyne doba do spuštění, spustí proces a začne odpočítávat tiky do dalšího spuštění.
DLYP – pozastavení procesu • Pozastaví další zpracování procesu buďto na neurčito nebo na zadanou dobu. • Je-li pozastavení časově omezeno, proces pokračuje po uplynutí časového intervalu. • Není-li časově omezeno, nemůže proces již dále pokračovat dokud jiný proces nespustí službu CONP
CONP – pokračování procesu • Povolení dalšího zpracování procesu pozastaveného službou DLYP. • Má-li pokračovat proces s vyšší prioritou, dostane ihned přidělen procesor, v jiném případě musí počkat, až budou uspokojeny ostatní procesy s vyššími prioritami.
CHPP – změna periody spouštění • Změní periodu spouštění u periodicky spouštěných procesů. • Lze s výhodou využít pro zastavení dalšího periodického spouštění nebo pro zahájení spouštění s novou periodou. • Je nutno mít na paměti, že programátor aplikace musí zaručit ukončení procesu do příchodu dalšího požadavku na spuštění
STOP – zakončení procesu • Slouží k zakončení práce procesu. • Musí být na konci každého procesu! • Provádí regulérní korekci dat vektoru procesu. • Pokud nebude proces před předáním procesoru jádru systému ukončen touto službou, bude systém zablokován bez šance k regulérnímu obnovení práce bez resetu mikropočítače.
ABRP – abort procesu • Provede symbolické vyřazení procesu z tabulek systému. • Je-li periodicky spouštěn musí být perioda spouštění před službou ABRP vynulována pomocí služby CHPP! • Programátor by po použití služby ABRP neměl provádět s daným procesem žádné další operace. • Tato služba nemá v RTMON HC11 tak výrazně nutné uplatnění jako v jiných systémech reálného času, jelikož se programy nemohou do mikropočítače zavádět dynamicky a není tedy třeba uvolňovat paměť jiným aplikacím.
POPIS SLUŽEB (2) Služby pro práci se schránkami a zprávami
CRTQ – založení schránky • Založí schránku pro výměnu dat mezi procesy a vrátí identifikátor schránky, kterým se odkazují ostatní procesy na tuto datovou strukturu. • Schránka má velikost 2 byty a je možno založit až 20 schránek
WRTQ – zápis do schránky bez čekání • Zapíše informace z registru IY do schránky určené identifikátorem bez čekání na volnou schránku. • Je -li ve schránce stará zpráva, bude přepsána a vrácen kód chyby EQFU
WRWQ – zápis s čekáním na volnou schránku • Zapíše informace z registru IY do schránky určené identifikátorem s čekáním, dokud je ve schránce stará zpráva. • Po dobu čekání není procesu přidělován procesor
REDQ – čtení ze schránky bez čekání • Čte zprávu ze schránky. • Je-li schránka prázdná, vrací zprávu 0000H a kód chyby EQEM
RDWQ - čtení s čekání na zprávu • Čte zprávu ze schránky. • Pokud je schránka prázdná, čeká až bude naplněna některým z procesů.
DELQ – zrušení schránky • Symbolicky zruší schránku. • Musí být zajištěno, že v okamžiku rušení již schránka není používána žádným procesem.
Demonstrační příklad programu v reálném čase Hlavní program
Blok identifikátorů použitých procesů • IDE1 FCB 0 číslo procesu 1 • IDE2 FCB 0 číslo procesu 2