Komputery przemysłowe i systemy wbudowane
Transkrypt
Komputery przemysłowe i systemy wbudowane
Komputery przemysłowe i systemy wbudowane Systemy operacyjne w systemach wbudowanych 2 KSEM WETI PG October 7, 2015 System operacyjny System operacyjny (OS) - opcjonalny w systemach wbudowanych. I zbiór bibliotek realizujacych dwie podstawowe usługi: I I warstwa abstrakcji dla oprogramowania SW, by mogło być mniej zależne od sprzętu (programowanie SW staje się łatwiejsze) zarządzanie “globalne” zasobami (sprzętowymi i programowymi) systemu wbudowanego Model systemu operacyjnego Jądro systemu I Zarządzanie procesami (Process Management) I I I Zarządzanie pamięcią (Memory Management) I I I w jaki sposób OS widzi i zarządza innym oprogramowanie SW? system przerwań i detekcji błędów pamięć SW jest współdzielona przez różne procesy efektywne zarządzanie dostępem i alokacją pamięci Zarządzanie I/O I I I dostęp do urządzeń I/O jest współdzielony przez różne procesy efektywne zarządzanie dostępem i alokacją I/O system zarządzania I/O umożliwia zapis danych do plików w systemie plików Proces Proces tworzony jest przez system operacyjny w celu enkapsulacji informacji związanej z wykonywaniem programu (stos, kod źródłowy, dane wejściowe, etc.) System wielozadaniowy obsługuje jednocześnie wiele procesów Wątek I Niektóre wielozdaniowe systemy operacyjne obsługują wątki I Wątek dostarcza dodatkowej enkapsulacji instancji programu I Wątki podlegają zadaniom (procesom); jeden proces może posiadać wiele wątków I Proces posiada własną przestrzeń adresową - tylko jego własne wątki mają do niej dostęp I Wątek posiada własny stos I Wiele wątków to mniejszy koszt, niż wiele procesów (do realizacji tego samego zadania) Tworzenie procesów (zadań) I Model Fork/Exec (IEEE /ISO POSIX 1003.1 standard) - systemy Linux I I I Fork tworzy kopię przestrzeni pamięci procesu-rodzica (dziedziczenie kodu programu, zmiennych) Exec usuwa z pamięci procesu-dziecka wszelkie referencje do programu rodzica i ustawia nowy kod programu procesu-dziecka Model Spawn (inspirowany Fork/Exec) - systemy DOS i MS Windows I Proces-dziecko dostaje zupełnie nową przestrzeń pamięci (kod programu i zmienne definiowane w momencie tworzenia procesu-dziecka) POSIX Portable Operating System Interface (IEEE 1003) I Standard różnych odmian systemu UNIX I 1985 - początek prac nad standardem (IEEE). I Dalszy rozwój: The Open Group, IEEE, firmy: IBM, Sun Microsystems, Hewlett-Packard, NEC Corporation, Fujitsu, Hitachi. I Aktualna wersja (trzecia) - 2001 rok I Od roku 2003 jest to norma międzynarodowa ISO/IEC 9945:2003. I POSIX standaryzuje: I I I interfejs programistyczny (API) interfejs użytkownika (polecenia systemowe) właściwości powłoki systemowej (zarządzanie procesami, pamięcią i I/O) Formaty plików wykonywalnych I ELF (Executable and Linking Format): format UNIX-owy (systemy Linux) I I I I I Class (Java Byte Code): format języka Java I I I I I nagłówek programu lista segmentów programu lista nagłówków sekcji dane - segmenty i sekcje strumień bajtów (8-bitowych) items - elementy klasy powiązania z innymi klasami tablica symboli (stałe), deklaracja pól, implementacja metod, referencje symboliczne do innych klas COFF (Common Object File Format): format Unixowy, potem zastąpiony ELF, obecnie w Microsoft Windows i EFI I I pliki obrazu: nagłówek pliku, nagłówek COFF pliki obiektów: nagłówek COFF. Board Support Packages I Board Support Packages (BSPs) - warstwa abstrakcji między systemem operacyjnym a sterownikami urządzeń I Pozwalają na podział kodu oprogramowania na: “hardware dependent” i “hardware independent” I Odpowiedzialne za inicjalizację sterowników w systemie Literatura David J. Katz; Jean J. Labrosse; Jason Andrews; Colin Walls; Robert Oshana; Rick Gentile; Jack Ganssle; Keith E. Curtis; Bob Perrin; Embedded Software, Kamal Hyder Published by Newnes, 2007