Seminarium dyplomowe. Autor: Adam Grześko morel@pifpaf.pl Projekt i implementacja systemu obsługi kart chipowych Promotor: prof. dr hab in ż. T. Morzy 1
Plan prezentacji: Cel pracy, wykorzystane narzędzia, sprzęt i środowisko pracy, omówienie dotychczasowego rozwiązania, omówienie proponowanego rozwi ą zania mikroj ą dro, krótka wzmianka na temat drugiej części pracy. 2
Cel pracy Celem pracy jest ulepszenie oraz rozbudowa istniejącego oprogramowania czasu rzeczywistego do obsługi kart chipowych, pracującego na terminalu wyposażonym w mikroprocesor NECV25. Obecny system działa w opraciu o model odpytywania (polling-scheme). Modyfikacja polega na adaptacji, reimplementacji i rozbudowie dostarczonego mikrojądra systemu czasu rzeczywistego dla mikroprocesora INTEL 8085 na mikroporcesor NECV25. Adaptowane mikrojądro jest sterowane przerwaniami, co zapewni lepsz ą wydajność całego systemu. 3
Wykorzystane narzędzia MS Visual Studio (tylko edytor :> ), Borland Turbo C wersja 2.0 (kompatybilny z Intel 80186), Turbo link wersja 2.0, Turbo assembler wersja 1.01, Make 1.0, inne narz ę dzia ładuj ą ce kod wykonywalny do terminala. 4
Sprzęt i środowisko pracy 5
Omówienie dotychczasowego rozwiązania Model systemu oparty o odpytywanie, jedna wielka pętla while(1), w pętli każde urządzenie (klawiatura, porty szeregowe, czytnik kart... ) jest odpytywane czy s ą dane gotowe do przetworzenia, bądz sprawdzane jest czy bufor jest ju ż przetworzony (bufor drukarki, bufor LCD), rezultat: jedno wielkie spaghetti, globalna pętla musi być wywoływana co najmniej co 30ms nieefektywne przetwarzanie danych z urządze ń zewnętrznych, spowolnienie całości do najwolniejszego urządzenia I/O, problem z pisaniem oprogramowania: żadna funkcja nie może być blokująca (np. odczyt z klawiatury), trzeba wprowadzać dodatkowe argumenty, pamiętające w którym miejscu zostało przerwane przetwarzanie :\ - praktyczny skutek milion selectów, ifów sprawdzających stan wykonania funkcji... 6
Proponowane rozwiązanie - mikrojądro Struktura blokowa mikrojądra: Application interface Functional Modules interface interface interface interface Communication and synchronization primitives Time management Memory management Input/Output (BIOS) MINOR interface MINOR microkernel NEC V25 7
Zadania warstw MINOR mikrojądro udostępniające dwa typy zada ń zwykłe (przełączanie kontekstu bez wywłaszczania), uprzywilejowane, obsługujące przerwania (przełączanie z wywłaszczaniem oraz nadanie priorytetów przerwaniom), Podstawowy mechanizm komunikacji mię dzy zadaniami pamięć współdzielona zrealizowana na ogólnie dostępnym buforze (zmiennej), Zarzą dzanie czasem mechanizm zarządzania wbudowanymi w procesor timerami, Zarządzanie pamięcią mechanizm pozwalający dynamicznie alokować, dealokować obszary pamięci. Funkcje wejścia/wyjś cia (BIOS) Funkcje obsługujące sprzęt wbudowany w terminal. 8
Dwa rodzaje zada ń wyróżnianych w mikrojądrze Port przerwania 1 Port przerwania 2 Zadania obsługujące przerwania, mogą wywłaszczyć zwykłe zadania, bądź zostać wywłaszczone przez zadania obsługujące przerwania o wyższym priorytecie Port przerwania N Zadanie obsługujące przerwanie 2 Zadanie obsługujące przerwanie 1 Zwykłe zadania, mogące dobrowolnie oddać sterowanie - brak wywłaszczania Aktywne zadanie 9
Przerwanie o wyższym priorytecie Możliwe stany procesów IWAIT() INTERRUPTED RUNNING WAITING IWAIT() bądź IEXIT() Nadejście przerwania IEXIT() DETACH() IENTER() Utorzenie zadania, Setrdy=1 READY DETACH() lub IENTER() RUNNING IWAIT() lub IEXIT() INTERRUPTED Setrdy=1 lub START() Setrdy=0 START() STOP() Nadejście przerwania Utorzenie zadania, Setrdy=0 SUSPENDED TERMINATED 10
Podsumowanie: Projektowany system zapewni lepsz ą wydajność ze względu na sterowanie przerwaniami a także: wprowadzi modularność, wyeliminuje kod spaghetti i dodatkowe argumenty funkcji, pamiętające aktualny stan przetwarzania, ułatwi programowanie przez wyodrębnione interfejsy mikrojądra, we/wy, zarządzania pamięci ą i czasem, ułatwi dalsz ą rozbudow ę RTOS, zapewni mo ż liwo ś ć bezproblemowego przeniesienia całego systemu na inny sprzęt (terminal). 11
Materiały źródłowe: System opreracyjny czasu rzeczywistego TICS REALTIME http://www.concentric.net/~tics/ A. Silberschatz, J. L. Peterson, P. B. Galvin Podstawy systemów operacyjnych, WNT wydanie 2, W-wa 1993 V25/V 35 Family V-Series 16-bit Microcomputers Users's Manual (NEC) i inne manuale firmy NEC. Dokumentacja mikrojądra MINOR dla Intel 8085 i jego kod źródłowy w asemblerze 8085 Obecny kod źródłowy obsługujący urządzenia I/O. 12
Dziękuj ę za uwag ę. Pytania? 13