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