Multitasking funguje!
Zveřejněno: 21. 08. 2023
Kategorie: ICT technologie, Programování
Kdysi dávno, kdy počítače ještě nebyly běžnou součástí našich životů, objevili psychologové výzkumný článek z dílny IBM. Ten pochází z roku 1965 a popisuje souběžné zpracování více úloh v počítačových systémech.
Od té doby se psychologický a inženýrský pohled na multitasking rozcházejí.
A tak zatímco lidé od měkkých dovedností říkají, že multitasking neexistuje, mnozí programátoři s ním denně pracují.
Jak vypadá počítačový multitasking
Pro nás je multitasking, kdykoli systém vede v patrnosti několik nedokončených úloh zaráz. Úloha se může přerušit dobrovolně, aby čekala na další vstupy nebo umožnila práci ostatním úlohám. Kooperativní úlohy vystačí s dobrovolným střídáním.
Moderní systémy používají preemtivní úlohy, které jsou připravené nechat se přerušit kdykoli. Často navíc běží skutečně zaráz na různých procesorových jádrech. Tvořit aplikace z takových úloh je snadné, pokud nám stačí, když si mezi sebou jen posílají zprávy.
Architektura založená na úlohách komunikujících pomocí zpráv je výhodná v mnoha ohledech. Takto postavená aplikace může fungovat jak v rámci jednoho stroje, tak i na distribuovaném systému, který využívá celou řadu spolupracujících počítačů
Když je posílání zpráv moc pomalé
Někdy může předávání celých datových zpráv aplikaci zdržovat. Často vyžaduje několikanásobné kopírování dat v paměti počítače a interakci s operačním systémem. Místo toho můžou úlohy sdílet paměťový prostor a pracovat se společnými daty.
Udržet pořádek ve společných datech je těžké. Naštěstí v posledních letech vznikají programovací jazyky a nástroje, které dokážou ohlídat správnost programu a jeho přístupu ke sdíleným datům. Tyto nástroje nás chrání před nepříjemnými následky skrytých chyb. Programátor musí upravit své postupy tak, aby program bylo možné úspěšně zkontrolovat.
Pokud chcete vědět více, podívejte se, co umí například programovací jazyk Rust. Správné sdílení dat se kontroluje už při sestavení. Spouští se tedy jen zkontrolované programy.