MITĚV, M. Analýza latence Raspberry Pi OS s PREEMPT_RT záplatou [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2022.
Student Mitko Mitěv se v průběhu dvou semestrů zabýval tématikou měření latence Linuxového jádra opatřeného PREEMPT_RT záplatou. Během této doby pravidelně využíval konzultací, na které ale nezřídka přicházel s relativně triviálním problémem bránícím uskutečnění na ten týden vytyčených cílů. Často se tak stávalo, že místo řešení jiného dílčího úkolu se práce zastavily až do termínu další konzultace. Naopak musím vyzdvihnout, že se pan Miťev dokázal v krátkém čase seznámit s velmi komplexní problematikou OS Linux a jeho RT modifikace. Činnosti provedené v rámci BP zahrnovaly vytvoření kompilačního prostředí pro moduly jádra, seznámení se různými plánovacími politikami jádra, vytvoření vlastního modulu jádra pro ovládání GPIO pinů (dle poskytnutých příkladů) a vytvoření „RT“ aplikace v uživatelském prostoru. Text odevzdané práce je bohužel na nízké úrovni, a ani po opakovaném upozornění na časté chyby a nesrozumitelné části textu se nepodařilo vyladit finální verzi tak, aby kvalita odpovídala dosaženým výsledkům. Celkově bakalářskou práci hodnotím C 75 bodů.
Pan Mitko Mitěv se ve své bakalářské práci zabýval měřením a analýzou latencí v operačním systému (OS) Linux s PREEMT_RT záplatou na jednodeskovém počítači Raspberry Pi. Zadání zahrnovalo oblast operačních systémů reálného času, programování aplikací i modulů jádra pro OS Linux. Náročnost zadání považuji za nadprůměrnou po odborné i časové stránce. Práce obsahuje cca 33 stran textu a je členěna do 10 kapitol včetně kapitoly úvod. První kapitola zabírá necelou jednu stranu a obsahuje velmi kusé informace o jednodeskovém počítači Raspberry Pi. Dle mého názoru zde měl autor uvést mnohem více podstatných informací o Raspberry Pi jako je kmitočet, na kterém pracují jádra mikrokontroléru, počet jader nebo s jakou rychlostí lze měnit hodnoty na vývodech GPIO. Druhá kapitola je věnována způsobům, jak upravit OS Linux, aby se choval jako OS rálného času. Autor uvedl možnost použití dvou jader (realtime a klasického Linuxového jádra) nebo úpravu klasického Linuxového jádra. Následně se věnoval úpravě klasického Linuxového jádra pomocí PREEMPT_RT záplaty a popsal principy, kterými tato záplata odstraňuje nedeterministické chování klasického Linuxového jádra. Za zbytečné považuji obrázky Obrázek 2.2.1 a Obrázek 2.2.2, které autor překreslil z citované literatury, ale v textu se na ně neodkazuje. Ve třetí kapitole a v příloze A je uveden postup kompilace jádra OS Linux. Čtvrtá kapitola obsahuje popis plánovacích strategií pro plánování procesů nebo vláken. Popis jednotlivých strategií a jejich vlastností však považuji za naprosto nedostatečný. Pátá kapitola obsahuje pouze jednu stranu textu a měla obsahovat popis testovacích aplikací. Vzhledem k tomu, že se jedná o podstatnou část práce autora, popis testovacích aplikací by si zasloužil podstatně více stránek textu. Šestou kapitolu nazval pan Mitěv „PROBOUZENÍ A USPÁNÍ PROCESU“. Tento název kapitoly považuji za nevhodný, protože ve skutečnosti obsahuje popis synchronizační prostředků (mutex, semafor, spin-lock). Za naprosto nedostatečný považuji popis softwarové implementace znakového zařízení v podkapitole 6.3. Výhrady mám k obrázkům Obrázek 6.1.1 a Obrázek 6.1.2, které byly nedbale překresleny z citované literatury, ale podstatné části původních obrázků chybí. Autor se na obrázky v textu ani neodkazuje. V 7. kapitole autor popisuje měření latence probuzení vláken při cyklickém spouštění a uspávání vláken. V podkapitole 7.1 postrádám podrobnější popis konfigurace testu a zejména přiřazení vláken jednotlivým jádrům mikrokontroléru. V podkapitole 7.2 postrádám podrobnější zhodnocení výsledků testů, zejména číselnou kvantifikaci. Prosté konstatování „Z grafů vyplývá, že největší časová odchylka je u plánovací politiky typu FIFO a RR. Zatímco plánovací politika deadline dává nejlepší výsledek“ mě neuspokojil. Dále u všech testů postrádám informace o době provádění testu. V 8. kapitole pan Mitěv testoval latenci mezi probuzení vlákna signálem na GPIO pinu a odezvou na jiném GPIO pinu. Výsledky testů opět nejsou dostatečně vyhodnoceny, u grafů na str. 40 a 41 není ani uvedeno, co představuje červený průběh signálu. Dle mého názoru pan Mitěv splnil všechny body zadání své práce. V práci však postrádám popis způsobu izolace jednotlivých jader procesoru, jak požadují body 2 a 5 zadání. Pan Mitěv se dokázal v problematice OS reálného času dobře zorientovat. Prokázal schopnosti vytvářet testovací aplikace s více vlákny pro OS Linux, naprogramovat modul do jádra OS Linux i využívat testovací nástroje jako cyclictest a mklatencyplot. Prokázal schopnost pracovat s literaturou ve formě tištěných knih i internetových zdrojů. Prezentační úroveň práce však považuji za podprůměrnou, neodpovídající odvedené práci. Pan Mitěv bohužel nedokázal dostatečně prezentovat ani dosažené výsledky měření latencí. K formální stránce textu práce mám značné výhrady. V textu se vyskytují různé formáty pro odstavce např. na str. 22 je použito rozdílné formátování v podkapitolách 2.2.3 a 2.2.4. Za naprosto nevhodné považuji formátování podkapitoly 2.1.3 na str. 17. Práce obsahuje značné množství překlepů a zkomolených vět. Mezi mnohými obrázky a jejich popisem je značné nevyužité místo, obrázky jako např. Obrázek 2.2.1 na str. 21, jsou umístěny zbytečně na samostatné stránce. Na závěr konstatuji, že dle mého názoru, pan Mitko Mitěv i přes uvedené výhrady prokázal bakalářské schopnosti. Vzhledem k výše uvedeným skutečnostem navrhuji hodnotit jeho práci známkou C/70 bodů.
eVSKP id 142699