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