Opis efektów kształcenia dla modułu zajęć
Transkrypt
Opis efektów kształcenia dla modułu zajęć
Nazwa modułu: Systemy operacyjne dla systemów wbudowanych Rok akademicki: Wydział: Kierunek: 2012/2013 Kod: IET-2-205-SW-s Punkty ECTS: 4 Informatyki, Elektroniki i Telekomunikacji Elektronika i Telekomunikacja Poziom studiów: Studia II stopnia Język wykładowy: Polski Specjalność: Systemy wbudowane Forma i tryb studiów: Profil kształcenia: Stacjonarne Ogólnoakademicki (A) Semestr: 2 Strona www: Osoba odpowiedzialna: dr hab. inż. Cyganek Bogusław ([email protected]) Osoby prowadzące: Krzak Łukasz ([email protected]) Opis efektów kształcenia dla modułu zajęć Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń) M_W001 Student posiada wiedze z zakresu budowy systemów operacyjnych. Zna pojęcia procesów i wątków wraz z podstawową klasyfikacją, zna mechanizm zmiany kontekstu i algorytmy planisty. ET2A_W08, ET2A_W09 Wykonanie ćwiczeń laboratoryjnych M_W002 Student posiada wiedzę dotyczącą mechanizmów komunikacji międzyprocesowej, synchronizacji procesów i ich wykorzystania w aplikacjach czasu rzeczywistego. ET2A_W08, ET2A_W09 Wykonanie ćwiczeń laboratoryjnych M_W003 Student zna podstawowe mechanizmy zarządzania pamięcią operacyjną i dyskową w systemie operacyjnym ET2A_W08, ET2A_W09 Wykonanie ćwiczeń laboratoryjnych M_U001 Student potrafi korzystać z interfejsu aplikacyjnego systemu operacyjnego czasu rzeczywistego. ET2A_U05, ET1A_U24 Wykonanie ćwiczeń laboratoryjnych M_U002 Student potrafi projektować, tworzyć i testować aplikacje wielowątkowe z synchronizacją, działające pod kontrolą systemu operacyjnego ET2A_U05 Wykonanie ćwiczeń laboratoryjnych Wiedza Umiejętności 1/5 Karta modułu - Systemy operacyjne dla systemów wbudowanych M_U003 Student potrafi skonfigurować i uruchomić system operacyjny czasu rzeczywistego dedykowany dla systemów wbudowanych ET2A_U10 Wykonanie ćwiczeń laboratoryjnych Kompetencje społeczne M_K001 Student rozumie potrzebę i zna możliwości ciągłego dokształcania się oraz podnoszenia swoich kompetencji zawodowych ET2A_K01 M_K002 Student ma świadomość ważności i rozumie pozatechniczne aspekty i skutki działalności inżyniera – elektryka, w tym odpowiedzialności za podejmowane decyzje ET2A_K02 Matryca efektów kształcenia w odniesieniu do form zajęć Konwersatori um Zajęcia seminaryjne Zajęcia praktyczne Zajęcia terenowe Zajęcia warsztatowe Student posiada wiedze z zakresu budowy systemów operacyjnych. Zna pojęcia procesów i wątków wraz z podstawową klasyfikacją, zna mechanizm zmiany kontekstu i algorytmy planisty. + - - - - - - - - - - M_W002 Student posiada wiedzę dotyczącą mechanizmów komunikacji międzyprocesowej, synchronizacji procesów i ich wykorzystania w aplikacjach czasu rzeczywistego. + - + - - - - - - - - M_W003 Student zna podstawowe mechanizmy zarządzania pamięcią operacyjną i dyskową w systemie operacyjnym + - + - - - - - - - - M_U001 Student potrafi korzystać z interfejsu aplikacyjnego systemu operacyjnego czasu rzeczywistego. + - + - - - - - - - - M_U002 Student potrafi projektować, tworzyć i testować aplikacje wielowątkowe z synchronizacją, działające pod kontrolą systemu operacyjnego + - + - - - - - - - - E-learning Ćwiczenia projektowe M_W001 Inne Ćwiczenia laboratoryjne Forma zajęć Ćwiczenia audytoryjne Student, który zaliczył moduł zajęć wie/umie/potrafi Wykład Kod EKM Wiedza Umiejętności 2/5 Karta modułu - Systemy operacyjne dla systemów wbudowanych M_U003 Student potrafi skonfigurować i uruchomić system operacyjny czasu rzeczywistego dedykowany dla systemów wbudowanych + - + - - - - - - - - Kompetencje społeczne M_K001 Student rozumie potrzebę i zna możliwości ciągłego dokształcania się oraz podnoszenia swoich kompetencji zawodowych + - + - - - - - - - - M_K002 Student ma świadomość ważności i rozumie pozatechniczne aspekty i skutki działalności inżyniera – elektryka, w tym odpowiedzialności za podejmowane decyzje + - + - - - - - - - - Treść modułu zajęć (program wykładów i pozostałych zajęć) Wykład Podstawy oraz narzędzia projektowania i programowania systemów operacyjnych czasu rzeczywistego (RTOS) – 4 godziny Wstępny podział systemów operacyjnych: systemy wbudowane, ogólnego zastosowania, przykłady znanych systemów (Windows, CE, Linux, RT, Android, FreeRTOS, MicroC/OS, itd.). Przegląd technik programistycznych specyficznych dla RTOS: Architektura systemów mikroprocesorowych, podstawy programowania mikroprocesorów w językach asemblerowych oraz C, podstawowe narzędzia (kompilator, linker, debugger); Podstawowe struktury danych używane w RTOS; Programowanie obiektowe w C++; Wstęp do przetwarzania równoległego; Techniki debuggowania systemów, programowanie z weryfikacją (programming by contract); Specyfika narzędzi do projektowania oraz testowania RTOS: Model wodospadowy oraz spiralny; Zasady używania Unified Modeling Language (UML) do RTOS – diagramy przypadków użycia, stanów, aktywności, sekwencji, komponentów, rozlokowania oraz klas; Projektowanie testów. Podstawowe mechanizmy i pojęcia systemów operacyjnych – 4 godziny Przedstawienie zagadnień, mechanizmów na przykładzie Win, Linux, MicroC/OS: Systemy pierwszo/drugo-planowe, sekcja krytyczna, dzielone zasoby komputera, wielo-zadaniowość, zadanie, proces, wątek, włókno; Mechanizm przełączania zadań; Jądro systemu; Struktura jądra; Scheduler; Jądra bez i z wywłaszczaniem; Specyfika systemów czasu rzeczywistego: systemy miękkie i twarde, zadania synchroniczne i asynchroniczne, parametry systemu, systemy wielo-mikroprocesorowe i wielordzeniowe; Struktura jądra, zarządzanie oraz tworzenie procesów – 7 godzin Koncepcja procesu (wątku, zadania, włókna) na przykładzie Win, Linux, MicroC/OS: stany procesu, proces control block (PCB); Mechanizm przełączania kontekstu; Priorytet zadań, priorytety statyczne i dynamiczne, przydział priorytetów zadaniom; Algorytmy planowania: Round-Robin, rate monotonic, earliest-deadline-first, least laxity dynamic, maximum-urgency-first, weighted shortest-processing-time-first; 3/5 Karta modułu - Systemy operacyjne dla systemów wbudowanych Minimalizacja opóźnień; Synchronizacja procesów oraz dzielenie zasobów: mutualexclusion semafory, algorytm Dekker’a i Peterson’a, spinlocks, zmienne warunkowe, bariery, obiekty rendez-vous, monitory; Metody analizy zarządcy: analiza globalna, obliczenie zblokowań, określenie granic. Komunikacja między zadaniami oraz synchronizacja – 7 godzin Problem wzajemnego wykluczania (mutual-exclusion) – włączanie/wyłączanie przerwań, mechanizm test-and-set, wł/wył. planera, semafory; Problem wzajemnego zakleszczenia (deadlock); Problem zagłodzenia; Problem producentów/konsumentów; Synchronizacja zadań; Flagi zdarzeń systemowych (event flags); Komunikacja międzyzadaniowa – mailboxes, kolejki wiadomości, przekazywanie wiadomości; Przerwania – źródła przerwań, maskowalne/niemaskowalne, wektory przerwań, procedura obsługi (ISR), opóźnienia, odpowiedź, powrót, obliczanie i planowanie zależności czasowych ISR; Liczne przykłady ww zagadnień w Win, Linux, MicroC/OS. Zarządzanie pamięcią oraz urządzenia wejścia/wyjścia – 4 godziny Struktura pamięci i mechanizm zarządzania pamięcią (kontroler pamięci, cache), rodzaje adresowań pamięci; Przydział jednego i wielu obszarów; Stronicowanie; Segmentacja; Segmentacja stronicowana; Pamięć wirtualna: mechanizm tłumaczenia adresów, stronicowanie na żądanie, zastępowanie stron, przydział ramek; Wstęp do systemów plików; Zarządzanie urządzeniami I/O; Zagadnienia zaawansowane – 4 godziny Źródła oraz pomiar czasu w RTOS; Problem systemów krytycznych: zapewnienie poziomu bezpieczeństwa, architektury wysokiego bezpieczeństwa – projektowanie zabezpieczenia pojedynczego kanału, wzorzec głosowania wielo-kanałowego, wzorzec jednorodnej nadmiarowości, wzorzec watchdog; Metody projektowania pod testowanie (test driven); Obiektowe metody projektowania RTOS: fazy projektowe, planowanie, analiza, projekt, metody testowania; Narzędzia do projektowania RTOS; Ćwiczenia laboratoryjne Programowanie z wykorzystaniem interfejsu aplikacyjnego systemu operacyjnego czasu rzeczywistego Zapoznanie studentów z narzędziami do edycji i budowania kodu dla wybranej platformy mikrokontrolerowej. Ćwiczenia z wykorzystania mechanizmów systemu operacyjnego czasu rzeczywistego (planista, wątki, mechanizmy synchronizacji zadań). Metody diagnostyki i debuggowania (detekcja przepełnienia stosu, kontrola zależności czasowych). Komunikacja z układami peryferyjnymi pod kontrolą systemu operacyjnego czasu rzeczywistego Zadaniem studentów jest implementacja sterowników wspierających aplikacje wielowątkowe, dla wybranych układów peryferyjnych (np. ADC, USART, SPI, I2C, USB, Ethernet), wykorzystując w pełni ich możliwości (np. transfer DMA). Zaprojektowanie aplikacji z wykorzystaniem systemu operacyjnego czasu rzeczywistego •Analiza specyfikacji wymagań projektu (dyskusja) – 1 godzina –specyfikacja funkcjonalna i plan testów dla wybranego zadania projektowego •Wybór systemu operacyjnego pod kątem realizacji projektu (dyskusja) – 1 godzina – Zadaniem studentów jest analiza wybranych systemów operacyjnych (FreeRTOS, MicroC/OS, RT Linux) pod kątem możliwości realizacji wybranego zadania projektowego. •Dobór mechanizmów programowych (dyskusja) – 1 godzina – Studenci wybierają metodę realizacji kolejnych modułów wchodzących w skład projektu na podstawie wiedzy uzyskanej podczas wykładów •Realizacja zadania projektowego – 4 godziny 4/5 Karta modułu - Systemy operacyjne dla systemów wbudowanych Sposób obliczania oceny końcowej 1.Warunkiem uzyskania pozytywnej oceny końcowej jest uzyskanie pozytywnej oceny z laboratorium, kolokwium zaliczeniowego z wykładu. 2.Na wykładach możliwe jest otrzymanie oceny za przedstawienie prezentacji wybranego tematu. 3.Obliczamy średnią arytmetyczną av ocen uzyskanych we wszystkich terminach (terminy poprawkowe z wagą 2). 4.Wyznaczamy ocenę końcową OK na podstawie algorytmu: if av>4.75 then OK:=5.0 else if av>4.25 then OK:=4.5 else if av>3.75 then OK:=4.0 else if av>3.25 then OK:=3.5 else if av>=3.0 then OK:=3.0 Wymagania wstępne i dodatkowe •Wiedza z zakresu techniki mikroprocesorowej •Znajomość metodyki i technik programowania •Podstawy C/C++ •Podstawowa wiedza nt systemów operacyjnych Zalecana literatura i pomoce naukowe 1. 2. 3. 4. 5. 6. 7. Stallings W.: Operating Systems. Prentice-Hall, 2011 (tł. polskie: Systemy operacyjne, PWN). Stroustrup B. The C++ Programming Language, 2000 (tł. polskie: Język C++, WNT). Hughes C., Hughes T.: Professional Multicore Programming. Wrox, 2008. Hallinan C.: Embedded Linux Primer. Prentice-Hall, 2011. Douglass B.P.: Doing Hard Time. Developing Real-Time System. Addison Wesley, 1999. Labrosse J.J.: MicroC/OS-III. The Real-Time Kernel. Micrium Press, 2009. Paprocki K.: Mikrokontrolery STM32 w praktyce, BTC, 2011. Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu Nie podano dodatkowych publikacji Informacje dodatkowe Brak Nakład pracy studenta (bilans punktów ECTS) Forma aktywności studenta Obciążenie studenta Udział w wykładach 30 godz Samodzielne studiowanie tematyki zajęć 30 godz Udział w ćwiczeniach laboratoryjnych 30 godz Przygotowanie do zajęć 30 godz Sumaryczne obciążenie pracą studenta 120 godz Punkty ECTS za moduł 4 ECTS 5/5