POSIX ang. Portable Operating System Interface for Unix

Podobne dokumenty
Komputery przemysłowe i systemy wbudowane

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Czujniki obiektowe Sterowniki przemysłowe

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Systemy Czasu Rzeczywistego (SCR)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Podstawowe zagadnienia

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Wstęp do Informatyki. Klasyfikacja oprogramowania

Jądro systemu operacyjnego

Dystrybucje Linuksa c.d.

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Działanie systemu operacyjnego

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Opis efektów kształcenia dla modułu zajęć

4. Procesy pojęcia podstawowe

Struktury systemów operacyjnych

Wprowadzenie do systemów operacyjnych

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Systemy operacyjne. Informatyka Stosowana, I rok. Krzysztof Wilk. Katedra Informatyki Stosowanej i Modelowania

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA

Budowa karty sieciowej; Sterowniki kart sieciowych; Specyfikacja interfejsu sterownika sieciowego; Open data link interface (ODI); Packet driver

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Systemy operacyjne. Paweł Pełczyński

Sieciowe Systemy Operacyjne

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Przegląd współczesnych systemów operacyjnych

1. Etapy rozwoju systemów komputerowych

System operacyjny System operacyjny

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Działanie systemu operacyjnego

Mechanizmy pracy równoległej. Jarosław Kuchta

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Procesy, wątki i zasoby

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

4. Procesy pojęcia podstawowe

Systemy operacyjne III

LEKCJA TEMAT: Zasada działania komputera.

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

"Klasyczna" struktura systemu operacyjnego:

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Urządzenia wejścia-wyjścia

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

System komputerowy. System komputerowy

Programowanie współbieżne Wykład 2. Iwona Kochańska

Podstawy Informatyki Systemy operacyjne

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

4. Procesy pojęcia podstawowe

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Podstawy Informatyki Systemy sterowane przepływem argumentów

Systemy czasu rzeczywistego wstęp

Prezentacja systemu RTLinux

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Projekt i implementacja filtra dzeń Pocket PC

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

SYSTEMY OPERACYJNE WYKŁAD 2 PRZEGLĄD SYSTEMÓW WINDOWS I UNIX

Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Pojęcie bazy danych. Funkcje i możliwości.

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Systemy operacyjne III

1. Co to jest system operacyjny?

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

System plików. Warstwowy model systemu plików

Systemy wbudowane. Paweł Pełczyński

Wprowadzenie. Dariusz Wawrzyniak 1

Jadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008

Komputer i urządzenia z nim współpracujące.

PRZEWODNIK PO PRZEDMIOCIE

1. Co to jest system operacyjny

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

Informatyka. informatyka i nauki komputerowe (computer science)

Monitor maszyn wirtualnych

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Mikroprocesor Operacje wejścia / wyjścia

Systemy operacyjne III

Architektura komputerów. Układy wejścia-wyjścia komputera

Paweł Skrobanek. C-3, pok pawel.skrobanek.staff.iiar.pwr.wroc.pl

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Architektura komputerów

Transkrypt:

POSIX ang. Portable Operating System Interface for Unix POSIX: próba standaryzacji różnych dystrybucji systemu operacyjnego UNIX, Początek prac 1985 r. pod auspicjami IEEE. POSIX IEEE 1003, Obecnie rozwojem standardu POSIX zajmuje się The Open Group we współpracy z IEEE oraz firmami komputerowymi tj.: IBM, Sun Microsystems, HP, NEC Corp., Single UNIX Specification, Version x; Single UNIX Specification, Version 4, 2013 Edition technicznie identyczna z IEEE Std 1003.1, 2013 Edition and ISO/IEC 9945:2009 including ISO/IEC 9945:2009/Cor 1:2013(E) Programowanie Systemów Wbudowanych 1/6

POSIX ang. Portable Operating System Interface for Unix POSIX standaryzuje: interfejs programistyczny API; interfejs użytkownika, między innymi polecenia systemowe; właściwości powłoki systemowej. Systemy w pełni zgodne z POSIX: Mac OS X 10.5, QNX, BeOS, AtheOS/Syllable. Systemy zgodne w znacznym stopniu GNU/Linux i FreeBSD. Świadectwo zgodności uzyskały niektóre dystrybucje Linuksa: Linux-FT czy też Unifix Linux. Microsoft Windows środowiska Cygwin i Interix pozwalają na korzystanie z POSIX-owego interfejsu programistycznego. Programowanie Systemów Wbudowanych 2/6

POSIX ang. Portable Operating System Interface for Unix Rodzina standardów POSIX: P1003.1: Definiuje interfejs aplikacji w taki sposób aby była ona w pełni przenośna pomiędzy różnymi systemami operacyjnymi; Wykorzystanie w interfejsie modeli z systemu UNIX; Zawiera funkcje często implementowane jako wywołania systemowe. P1003.1a: Interpretacji, wyjaśnień i rozszerzeń (linki symboliczne). P1003.1b: Rozszerzenia powiązane z systemami czasu rzeczywistego: Programowanie Systemów Wbudowanych 3/6

POSIX ang. Portable Operating System Interface for Unix semafory (binarne); proces blokowania pamięci; pliki mapowane w pamięci i współdzielona pamięć; kolejkowanie priorytetowe; sygnały w czasie rzeczywistym; liczniki czasu (timers); komunikacja międzyprocesowa; synchroniczne operacje wejścia/wyjścia (I/O); asynchroniczne operacje wejścia/wyjścia (I/O); P1003.1c: Obsługa wątków (lekkie procesy); Programowanie Systemów Wbudowanych 4/6

POSIX ang. Portable Operating System Interface for Unix P1003.1d: Kolejne funkcje wspierające systemy czasu rzeczywistego; P1003.1e: Bezpieczeństwo systemu wg kryteriów bezpieczeństwa Departamentu Obrony USA TCSEC Trusted Computer System Evaluation Criteria; P1003.1f - h, P1003.2b d, P1003.3, P1003.5, P1387, P1003.9, P1003.10, P1003.11, P1003.13, P1003.14, P1003.16, P1224.2 Programowanie Systemów Wbudowanych 5/6

POSIX ang. Portable Operating System Interface for Unix Koszty: IEEE wysokie koszty dokumentacji POSIX; Alternatywa standard Single UNIX Specification jest otwarty, dostępny nieodpłatnie i uwzględnia uwagi każdego. Procedury standaryzacyjne wraz z testami PCTS POSIX Conformance Test Suite, są obecnie kosztowne; Implementacja, która pozytywnie przejdzie testy otrzymuje świadectwo zgodności ze standardem POSIX. Programowanie Systemów Wbudowanych 6/6

5LP LX0_[9..0] 4SP ID_4 M19 L0 256MB SDRAM ID_1 ID_2 M18 M20 L0 L0 ID_3 M17 L0 ID_3 M23 256MB SDRAM ID_2 ID_1 M22 M21 L0 L0 L0 L0 ID_4 M24 LY0_[9..0] 5LP 4SP X Y LX2_[9..0] LY1_[9..0] LX1_[9..0] LY2_[9..0] LX3_[9..0] LX4_[9..0] L0 L4 ID_4 M3 L2 L3 L5 L3 L2 L5 L0 ID_1 M4 L4 512Kx64 SBSRAM L0 L5 L2 L3 ID_2 M10 L4 ID_3 M11 L5 L3 L2 L0 L4 LY3_[9..0] LY4_[9..0] J1- J4 J5- J8 X M2 L3 L0 L2 L5 L4 L4 L2 L0 160 V_M9 L5 L3 L0 L2 L5 L4 L3 Y M12 VME, VME 6LP, 5SP L0 L2 L3 L4 L5 Schemat połączeń linkportowych pakietu FLY-5G6. Programowanie Systemów Wbudowanych 7/6

ReMix-2116x Możliwość określenia czasów najgorszego przypadku: parametry czasowe systemu operacyjnego: Czas realizacji usług systemowych; Czas reakcji na zdarzenia zewnętrzne; minimalizowane są w uwzględnieniem najgorszego przypadku. Przewidywalność: możliwość udowodnienia na etapie projektowania systemu, że przy określonych założeniach spełni on wszystkie stawiane mu wymagania czasowe. W systemie ReMix: Określenie gwarantowanego czasu reakcji; Zapewnienie wyłączności w przydziale procesora zadaniu pierwszoplanowemu. Programowanie Systemów Wbudowanych 8/6

ReMix-2116x Wieloprocesorowość: wykorzystanie przetwarzania równoległego pozwala uzyskać w niewielkich gabarytach sprzętu, urządzenie o mocy obliczeniowej wystarczającej do wykonania stawianych mu zadań w ramach założonych limitów czasowych. Na poziomie oprogramowania aplikacyjnego system zapewnia przezroczystość tj. określa jednolite mechanizmy przekazywania informacji nie wymagające znajomości lokalizacji odbiorcy informacji. Z punktu widzenia użytkownika cały wieloprocesorowy system zachowuje się jak pojedynczy wirtualny procesor o dużych możliwościach. Rozdział zadań pomiędzy poszczególne procesory sygnałowe i komputery PC odbywa się za pomocą funkcji konfiguracyjnych. W systemie ReMix określone zostały jednolite i efektywne metody wymiany informacji pomiędzy procesorami, a oprogramowanie komunikacyjne jest elementem systemu operacyjnego. Programowanie Systemów Wbudowanych 9/6

ReMix-2116x Wielozadaniowość: jest najbardziej pożądaną cechą systemu operacyjnego czasu rzeczywistego. ReMix pozwala na podział całego oprogramowania na niewielkie moduły, które mogą być wszechstronnie przetestowane zarówno w środowisku rzeczywistym jak i symulowanym. Dekompozycja problemu na zadania. Ujednoliceniu mechanizmów synchronizacji i wymiany informacji. Pojedyncze zadanie jest zwykle związane z obsługą pewnego zasobu sprzętowego lub z określoną funkcją, jaką ma spełniać system. W przypadku rozbudowy konfiguracji sprzętu lub algorytmu pracy, wystarczy modyfikacja niektórych tylko zadań lub opisanie nowych, bez jakichkolwiek zmian w pozostałej części oprogramowania. Programowanie Systemów Wbudowanych 10/6

ReMix-2116x Kooperatywność - wielozadaniowość w systemach UNIX-owych ma na celu lepsze wykorzystanie mocy obliczeniowej mikrokomputera przez równoległe wykonywanie kilku programów aplikacyjnych w systemie podziału czasu procesora podstawowe wymaganie zapewnienie dobrej izolacji pomiędzy procesami. Ewentualny błąd w zadaniu nie może wpłynąć na wykonywanie pozostałych zadań. Komunikacja międzyzadaniowa ma drugorzędne znaczenie. W systemie ReMix koncepcję wielozadaniowości zrealizowano na innym poziomie: Zadania nie są przełączane w trybie podziału czasu, tylko jawnie zwalniają procesor wywołując tzw. Funkcje blokujące. Podejście takie zmniejsza liczbę przełączeń kontekstu, które dla procesorów sygnałowych jest dość kosztowne. Programowanie Systemów Wbudowanych 11/6

ReMix-2116x Wieloplatformowość - system operacyjny ReMix przeznaczony jest do wykorzystania w systemach wieloprocesorowych zawierających: komputery ogólnego przeznaczenia klasy PC; specjalizowane procesory sygnałowe SHARC: rodziny ADSP-2106x i rodziny ADSP-2116x. Wersje systemu ReMix dla poszczególnych platform sprzętowych są ze sobą programowo zgodne, tzn. zawierają ten sam zestaw funkcji systemowych i tworzą jednolite w całym urządzeniu środowisko dla oprogramowania aplikacyjnego. Jednolitość systemu operacyjnego na różnych platformach sprzętowych bardzo ułatwia programowanie i zmniejsza koszty jego tworzenia. Programowanie Systemów Wbudowanych 12/6

Elementy OS ReMix-2116x Zadania systemowe Zadania użytkownika System aplikacyjny Jądro systemu Zadania użytkownika Programowanie Systemów Wbudowanych 13/6

Elementy OS ReMix-2116x Jądro systemu - główną funkcją jądra jest synchronizacja zadań i pośredniczenie w komunikacji między nimi. Jądro zarządza także podstawowymi zasobami systemu, jakimi są: pamięć operacyjna, układ przerwań procesora; zegar czasu systemowego. Jądro systemu widziane jest przez zadania jako biblioteka funkcji systemowych. Programowanie Systemów Wbudowanych 14/6

Elementy OS ReMix-2116x Funkcje jądra można podzielić na następujące grupy: konfiguracji systemu definiowanie zadań oraz dróg połączeń między nimi; synchronizacji zadań wybór zadania, któremu zostanie przydzielony procesor; zarządzania pamięcią operacyjną przydział i zwalnianie; zarządzania układem przerwań podłączanie procedur użytkownika do odpowiednich źródeł przerwań, zgłaszanie przerwań i sygnałów; komunikacji międzyzadaniowej - tworzenie i przekazywanie komunikatów między zadaniami; obsługi zegara realizacja zleceń związanych z odliczaniem czasu; pomocnicze określające stopień wykorzystania zasobów, nazwy elementów systemu itp. Programowanie Systemów Wbudowanych 15/6

Elementy OS ReMix-2116x Zadania: Z punktu widzenia jądra systemu operacyjnego, zadania systemowe i zadania użytkowe nie są rozróżnialne i są traktowane jako procesy współbieżne wykonywane na tych samych prawach. Wykorzystują one te same mechanizmy synchronizacji i komunikacji między zadaniami. Podział na część systemową i użytkową jest umowny i wynika z różnic w funkcjach spełnianych przez zadania. Zadania części systemowej: zapewniają podstawową obsługę zasobów sprzętowych. Zadanie obsługi zabezpiecza dany obiekt przed użyciem go przez więcej niż jedno zadanie w danej chwili dopuszczają wykonywanie tylko takich operacji na obiekcie, które zostały z góry przewidziane przez projektanta systemu, zwalniając równocześnie użytkownika systemu z obowiązku szczegółowej znajomości zasad funkcjonowania sprzętu dobierane są stosownie do potrzeb Programowanie Systemów Wbudowanych 16/6

Elementy OS ReMix-2116x Zadania: Zadania użytkowe nie pełnią funkcji ochrony zasobów i pisane są przez użytkownika dla konkretnej aplikacji. Zadania użytkowe są niezależne od konkretnej realizacji sprzętowej poszczególnych bloków systemu. Zapewnia to ich przenoszalność w przypadku modyfikacji konfiguracji sprzętu. W systemie ReMix nie istnieje dynamiczne tworzenie zadań. Wszystkie muszą zostać powołane przed startem programu wielozadaniowego. Program napisany w języku C startuje jako pojedynczy proces od wywołania funkcji main. Przygotowanie nowego zadania wymaga wykonania funkcji systemowej CreateTask, której argumentami są podstawowe informacje o zadaniu. Tworzone są wtedy odpowiednie struktury systemowe opisujące zadanie i rezerwowana jest pamięć na jego stos. Kolejność wykonywania funkcji CreateTask decyduje o priorytetach zadań - utworzone wcześniej mają wyższy priorytet. Dopiero po utworzeniu wszystkich zadań składających się na system aplikacyjny można uruchomić program wielozadaniowy poprzez wykonanie funkcji StartSystem. Programowanie Systemów Wbudowanych 17/6

OS ReMix-2116x - komunikaty Najszybszą metodą przekazywania informacji pomiędzy zadaniami umieszczonymi na tym samym procesorze lub na procesorach mających dostęp do wspólnej pamięci jest wykorzystanie takich obszarów pamięci. W systemie wielozadaniowym każdy zasób, w tym każdy obszar pamięci, może mieć tylko jednego właściciela, tzn. może być dostępny w danej chwili tylko jednemu zadaniu. Przyjęcie tej zasady zwalnia użytkownika z obowiązku stosowania typowych mechanizmów zabezpieczania współdzielonych zasobów przed jednoczesnym dostępem, np. semaforów. Wyklucza to jednak możliwość bezpośredniego wykorzystania wspólnej pamięci do wymiany informacji. Inna możliwość, jaką może być przepisywanie informacji zawartych w lokalnej pamięci jednego zadania do pamięci znajdującej się w dyspozycji innego zadania, jest nie do przyjęcia ze względów czasowych. Stosowana w systemie ReMix koncepcja przekazywania informacji między zadaniami związana jest z przekazywaniem praw własności do pewnych zasobów, w tym wypadku - obszarów pamięci. Programowanie Systemów Wbudowanych 18/6

OS ReMix-2116x - komunikaty ReMix jest systemem sieciowym. Za węzeł sieci, czyli zestaw środków sprzętowych i programowych stanowiących implementację trzech najniższych warstw protokołu komunikacyjnego, tj. warstwy fizycznej, łącza danych i sieciowej, należy uznać pojedynczy procesor. Informacje wymieniane pomiędzy zadaniami mają postać komunikatów adresatem może być albo konkretne zadanie (komunikat jest wtedy adresowany do jednej z jego skrzynek prywatnych), albo jedno z zadań działających w pewnym węźle sieci (komunikat jest wtedy adresowany do skrzynki globalnej dostępnej dla wszystkich zadań działających na tym procesorze). Ponieważ komunikaty mogą być wymieniane zarówno między zadaniami działającymi na tym samym, jak i na różnych procesorach, konieczne jest przyjęcie jednolitego w całej sieci połączonych ze sobą procesorów sposobu adresowania. W systemie ReMix do adresowania komunikatów używa się adresów sieciowych. Na każdym procesorze należy dokonać przypisania adresów sieciowych do odpowiednich skrzynek. Programowanie Systemów Wbudowanych 19/6