Module also offered within study programmes:
General information:
Name:
Operating systems for information systems
Course of study:
2019/2020
Code:
IETP-2-105-n
Faculty of:
Computer Science, Electronics and Telecommunications
Study level:
Second-cycle studies
Specialty:
-
Field of study:
Electronics and Telecommunications
Semester:
1
Profile of education:
Academic (A)
Lecture language:
English
Form and type of study:
Part-time studies
Responsible teacher:
prof. zw. dr hab. inż. Cyganek Bogusław (cyganek@agh.edu.pl)
Module summary

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence: is able to
M_K001 Student potrafi kreatywnie rozwiązać postawione zadanie problemowe. ETP2A_K01 Execution of laboratory classes,
Activity during classes
Skills: he can
M_U001 Student potrafi korzystać z interfejsu aplikacyjnego systemu operacyjnego czasu rzeczywistego. ETP2A_U01 Execution of laboratory classes,
Test
M_U002 Student potrafi projektować, tworzyć i testować aplikacje wielowątkowe z synchronizacją, działające pod kontrolą systemu operacyjnego ETP2A_U01 Execution of laboratory classes,
Test
M_U003 Student potrafi skonfigurować i uruchomić system operacyjny czasu rzeczywistego dedykowany dla systemów wbudowanych ETP2A_U01 Execution of laboratory classes,
Test
Knowledge: he knows and understands
M_W001 Student zna podstawowe mechanizmy zarządzania pamięcią operacyjną i dyskową w systemie operacyjnym ETP2A_W06, ETP2A_W02 Execution of laboratory classes,
Test
M_W002 Student posiada wiedzę 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. ETP2A_W06, ETP2A_W02 Execution of laboratory classes,
Test
M_W003 Student posiada wiedzę dotyczącą mechanizmów komunikacji międzyprocesowej, synchronizacji procesów i ich wykorzystania w aplikacjach czasu rzeczywistego. ETP2A_W06, ETP2A_W02 Execution of laboratory classes,
Test
Number of hours for each form of classes:
Sum (hours)
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
30 18 0 0 12 0 0 0 0 0 0 0
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Social competence
M_K001 Student potrafi kreatywnie rozwiązać postawione zadanie problemowe. - - - + - - - - - - -
Skills
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 - - - + - - - - - - -
M_U003 Student potrafi skonfigurować i uruchomić system operacyjny czasu rzeczywistego dedykowany dla systemów wbudowanych - - - + - - - - - - -
Knowledge
M_W001 Student zna podstawowe mechanizmy zarządzania pamięcią operacyjną i dyskową w systemie operacyjnym + - - + - - - - - - -
M_W002 Student posiada wiedzę 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_W003 Student posiada wiedzę dotyczącą mechanizmów komunikacji międzyprocesowej, synchronizacji procesów i ich wykorzystania w aplikacjach czasu rzeczywistego. + - - + - - - - - - -
Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 79 h
Module ECTS credits 3 ECTS
Udział w zajęciach dydaktycznych/praktyka 30 h
Preparation for classes 24 h
przygotowanie projektu, prezentacji, pracy pisemnej, sprawozdania 25 h
Module content
Lectures (18h):

*1. Podstawy oraz narzędzia projektowania i programowania systemów operacyjnych czasu rzeczywistego (RTOS)

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.

*2. Podstawowe mechanizmy i pojęcia systemów operacyjnych

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 wielo-rdzeniowe;

*3. Struktura jądra, zarządzanie oraz tworzenie procesów

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; Minimalizacja opóźnień; Synchronizacja procesów oraz dzielenie zasobów: mutual-exclusion 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.

*4. Komunikacja między zadaniami oraz synchronizacja

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ędzy-zadaniowa – 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.

*5. Zarządzanie pamięcią oraz urządzenia wejścia/wyjścia

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;

*6. Zagadnienia zaawansowane

Ź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;

Project classes (12h):
-
Additional information
Teaching methods and techniques:
  • Lectures: Treści prezentowane na wykładzie są przekazywane w formie prezentacji multimedialnej w połączeniu z klasycznym wykładem tablicowym wzbogaconymi o pokazy odnoszące się do prezentowanych zagadnień.
  • Project classes: Studenci wykonują zadany projekt samodzielnie, bez większej ingerencji prowadzącego. Ma to wykształcić poczucie odpowiedzialności za pracę w grupie oraz odpowiedzialności za podejmowane decyzje.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

Participation rules in classes:
  • Lectures:
    – Attendance is mandatory: Yes
    – Participation rules in classes: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Project classes:
    – Attendance is mandatory: Yes
    – Participation rules in classes: Studenci wykonują prace praktyczne mające na celu uzyskanie kompetencji zakładanych przez syllabus. Ocenie podlega sposób wykonania projektu oraz efekt końcowy.
Method of calculating the final grade:

1. Warunkiem uzyskania pozytywnej oceny końcowej jest uzyskanie pozytywnej oceny z laboratorium, na którą składają się oceny z kolokwiów częściowych oraz końcowego kolokwium zaliczeniowego.
2. Ocena końcowa z laboratorium AV obliczana jest na podstawie średniej ważonej z ocen cząstkowych.
3. Na wykładach możliwe jest otrzymanie oceny za przedstawienie prezentacji wybranego tematu.
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

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Prerequisites and additional requirements:

• Wiedza z zakresu techniki mikroprocesorowej
• Znajomość metodyki i technik programowania
• Podstawy C/C++
• Podstawowa wiedza dot systemów operacyjnych

Recommended literature and teaching resources:

1. Stallings W.: Operating Systems. Prentice-Hall, 2011 (tł. polskie: Systemy operacyjne, PWN).
2. Stroustrup B. The C++ Programming Language, 2000 (tł. polskie: Język C++, WNT).
3. Hughes C., Hughes T.: Professional Multicore Programming. Wrox, 2008.
4. Hallinan C.: Embedded Linux Primer. Prentice-Hall, 2011.
5. Douglass B.P.: Doing Hard Time. Developing Real-Time System. Addison Wesley, 1999.
6. Labrosse J.J.: MicroC/OS-III. The Real-Time Kernel. Micrium Press, 2009.
7. Paprocki K.: Mikrokontrolery STM32 w praktyce, BTC, 2011.

Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

None