Module also offered within study programmes:
General information:
Name:
Systemy Operacyjne
Course of study:
2015/2016
Code:
BIT-1-402-s
Faculty of:
Geology, Geophysics and Environmental Protection
Study level:
First-cycle studies
Specialty:
-
Field of study:
Applied Computer Science
Semester:
4
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Responsible teacher:
dr hab. inż. Piórkowski Adam (pioro@agh.edu.pl)
Academic teachers:
dr hab. inż. Piórkowski Adam (pioro@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
M_K001 Student odczuwa odpowiedzialność wiążącą się z tworzeniem aplikacji współpracujących z systemem operacyjnym IT1A_K04, IT1A_K03 Test
Skills
M_U001 Student potrafi napisac program korzystający z mechanizmów dostarczanych przez system operacyjny IT1A_U16 Test
M_U002 Student potrafi korzystać z dokumentacji technicznej dla danego systemu operacyjnego IT1A_U16 Test
M_U003 Student potrafi tworzyć kod systemowy i weryfikować jego działanie, potrafi skorzystać z debubggera IT1A_U13 Test
Knowledge
M_W001 Student poznaje założenia koncepcyjne systemów operacyjnych, ich podział i rys historyczny IT1A_W05 Examination
M_W002 Student poznaje budowę systemów operacyjnych IT1A_W07, IT1A_W06, IT1A_W02 Examination
M_W003 Student poznaje zasady tworzenia aplikacji systemowych IT1A_W03, IT1A_W04 Test
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
Others
E-learning
Social competence
M_K001 Student odczuwa odpowiedzialność wiążącą się z tworzeniem aplikacji współpracujących z systemem operacyjnym - - + - - - - - - - -
Skills
M_U001 Student potrafi napisac program korzystający z mechanizmów dostarczanych przez system operacyjny + - + - - - - - - - -
M_U002 Student potrafi korzystać z dokumentacji technicznej dla danego systemu operacyjnego - - + - - - - - - - -
M_U003 Student potrafi tworzyć kod systemowy i weryfikować jego działanie, potrafi skorzystać z debubggera - - + - - - - - - - -
Knowledge
M_W001 Student poznaje założenia koncepcyjne systemów operacyjnych, ich podział i rys historyczny + - - - - - - - - - -
M_W002 Student poznaje budowę systemów operacyjnych + - - - - - - - - - -
M_W003 Student poznaje zasady tworzenia aplikacji systemowych + - + - - - - - - - -
Module content
Lectures:

Wykład wprowadzający. Definicja systemu operacyjnego. Architektury komputerów. Współpraca ze sprzętem. Współpraca z użytkownikami. Struktura S.O. Wielozadaniowość. Usługi S.O. Systemy scentralizowane, rozproszone. Systemy czasu rzeczywistego. Systemy wbudowane.
Procesy i wątki w systemie operacyjnym. Definicje. Procesy i wątki. Stany procesów. Priorytety. Problem inwersji priorytetów. Wyznaczanie kolejności wykonywania procesów – algorytmy: FIFO, SJF , karuzelowy, kolejka priorytetowa, kolejka priorytetowa z algorytmem karuzelowym, EDF, MLF, RMS.
Procesy cd. Szeregowanie procesów w systemie VxWorks. Szeregowanie procesów w systemie QNX. Szeregowanie procesów w systemie Linux. Algorytm szeregowania procesów w Linuxie. Ochrona przed zagłodzeniem. Współpraca z użytkownikiem. Szeregowanie zadań w systemie RTLinux. Szeregowanie procesów w systemie WinNT. Algorytm szeregowania procesów w systemie WinNT. Ochrona przed zagłodzeniem. Inwersja priorytetów w systemie WinNT.
Synchronizacja procesów. Instrukcje atomowe. Błąd testowania, błąd aktualizacji. Sekcje krytyczne. Zdarzenia. Semafory. Oczekiwanie aktywne i pasywne. Implementacja sekcji krytycznej przy pomocy semafora. Klasyczne problemy synchronizacji procesów. Transakcje.
Synchronizacja procesów cd. Zakleszczenia. Wykrywanie wystąpienia zakleszczenia. Graf przydziału zasobów. Wykrywanie wystąpienia zakleszczenia. Postępowanie z zakleszczeniami. Zapobieganie zakleszczeniom. Unikanie zakleszczeń. Sieci Petriego. Algorytmy wzajemnego wykluczania: algorytm Dekkera, Dijkstry, Lamporta, Petersona.
Komunikacja międzyprocesowa. Model warstwowy OSI. Modele wymiany danych. Rozgłaszanie grupowe. Działania gwarantowane i niegwarantowane. Działania buforowane i niebuforowane.
Komunikacja międzyprocesowa cd. Mechanizmy komunikacji. Mechanizmy komunikacji międzyprocesowej. Pamięć dzielona. Skrzynki. Potoki anonimowe i nazwane. Kolejki FIFO. Kolejki komunikatów. Kolejki komunikatów POSIX. Sygnały. Komunikaty systemowe. Schowek. Zdalne wywołanie procedury. COM/DCOM. Systemy wiadomości kolejkowanych.
Zarządzanie pamięcią. Adresacja pamięci fizycznej. Segmentacja pamięci. Przydział ciągły. Pamięć stronicowana. Obsługa pamięci wirtualnej. Obsługa pamięci w systemie Linux. Obsługa pamięci w systemie Windows NT.
Zarządzanie urządzeniami wejścia – wyjścia. Podstawowe pojęcia. Dostęp do sprzętu w systemie MS-DOS. Dostęp do sprzętu w systemie QnX. Dostęp do sprzętu w systemie Linux. Dostęp do sprzętu w systemie Windows NT.
Pamięci masowe. Struktura dysków twardych. Systemy plików. Alokacja plików na dysku. System FAT. System EXT2. System NTFS.

Laboratory classes:

Ćw. 1
Wprowadzenie
Ćw. 2
Operacje na procesach w systemie.
Ćw. 3
Procesy i wątki w systemie, ich współdziałanie, priorytety.
Ćw. 4
Dostęp wątków do współdzielonych zmiennych. Instrukcje atomowe.
Ćw. 5
Sekcje krytyczne.
Ćw. 6
Obiekty synchronizacji między procesami: semafory zliczające i binarne (+mutex), semafory globalne.
Ćw. 7
Pamięć dzielona
Ćw. 8
Komunikacja między procesami: skrzynki (mailslot).
Ćw. 9
Komunikacja między procesami – potoki (pipe).
Ćw. 10
Procesy, wątki i semafory w systemie Unix (Linux).
Ćw. 11
Komunikacja międzyprocesowa w systemie Unix(Linux).
Ćw. 12
Komunikacja międzyprocesowa w systemie Unix(Linux).
Ćw. 13
Algorytmy wzajemnego wykluczania (alg. Dekkera, Lamporta, Petersona).
Ćw. 14
Problem 5-ciu filozofów – wersja z widelcami podnoszonymi naraz oraz wersja z widelcami podnoszonymi kolejno.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 156 h
Module ECTS credits 6 ECTS
Participation in lectures 28 h
Realization of independently performed tasks 40 h
Participation in practical classes 28 h
Preparation for classes 60 h
Additional information
Method of calculating the final grade:

Ocena końcowa = 34% oceny z egzaminu + 66% oceny z ćwiczeń

Prerequisites and additional requirements:

Umiejętność programowania w języku C

Recommended literature and teaching resources:

1 Silberschatz A., Peterson L… : Podstawy systemów operacyjnych, WNT, wydanie piąte, (1998-)2002
2 Ben-Ari M.: Podstawy programowania współbieżnego i rozproszonego, WNT
3 Tannenbaum A.: Rozproszone systemy operacyjne, PWN
4 Karmański J. : Praktyczny kurs programowania pod Windows 95, Helion
5 MSDN, http://msdn.microsoft.com
6 Richter J. :Programowanie aplikacji dla Microsoft Windows, RM 2000
7 Petzold Ch.: Programowanie Windows 95 (kompletny przewodnik programisty po API Windows 95), RM 1997
8 Bovet D. P., Cesati M.: Understanding the Linux Kernel,O’Reilly
9 Russinovich M.: Inside the Windows NT Scheduler,Windows NT Magazine 07.1997
10 Stallings W.: Systemy operacyjne, Robomatic, 2004
11 Richter J., Nasarre Ch.: Windows via C/C++. Microsoft Press, wersja polska APN Promise Warszawa 2007

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

Additional scientific publications not specified

Additional information:

None