Systemy operacyjne
Informacje ogólne
Kod przedmiotu: | WE-INF-D1-SYSOP-03 |
Kod Erasmus / ISCED: | (brak danych) / (brak danych) |
Nazwa przedmiotu: | Systemy operacyjne |
Jednostka: | Wydział Elektryczny |
Grupy: |
Przedmioty obowiazkowe 3 sem. Informatyk I stopnia studia stacjonarne |
Punkty ECTS i inne: |
0 LUB
4.00
(w zależności od programu)
|
Język prowadzenia: | polski |
Rodzaj przedmiotu: | obowiązkowe |
Skrócony opis: |
Przedmiot Systemy Operacyjne ma na celu zapoznanie studentów z budową współczesnych systemów operacyjnych. Jest to nauka posługiwania się poleceniami DOS oraz systemu operacyjnego Linux, tworzenia skryptów powłoki Linux oraz podstaw programowania mechanizmów komunikacji międzyprocesowej, podstaw tworzenia procesów i wątków w systemie operacyjnym Linux oraz ich synchronizacji. |
Pełny opis: |
Treści programowe (wykład): W1 – System komputerowy i system operacyjny. Ewolucja systemów operacyjnych (systemy wsadowe, spooling, systemy z podziałem czasu oraz systemy czasu rzeczywistego). Historia popularnych systemów operacyjnych (MS-DOS, UNIX, MS-Windows). W2 – Wielozadaniowość systemu, Podstawowe zadania oraz funkcje współczesnych systemów operacyjnych (zarządzanie procesami, pamięcią, plikami, We/Wy, pracą w sieci). System ochrony. W3 – Warstwowa struktura systemów operacyjnych. Struktura systemu z mikrojądrem. Maszyny wirtualne. System operacyjny a sprzęt. Generowanie systemu. Funkcje systemowe oraz system interpretacji poleceń. W4 – Proces w systemie operacyjnym. Blok kontrolny procesu oraz przełączenie kontekstu. Procesy ciężkie i lekkie. Wątki. Planowanie procesów. Kolejki procesów. Planowanie krótkoterminowe, średnioterminowe oraz długoterminowe. W5 – Algorytmy planowania procesów. Cykli fazy procesora i We/Wy. Kryteria planowania i optymalizacji. Algorytmy bez i z wywłaszczaniem procesów. Algorytmy FCFS, SJF oraz planowania rotacyjnego. Wielopoziomowe planowanie kolejek. Planowanie wieloprocesorowe oraz w czasie rzeczywistym. Ocena algorytmów i symulacje. W6 – Tworzenie i usuwanie procesów. Procesy macierzyste i potomne. Drzewo procesów. Tworzenie oraz identyfikacja procesów w systemie operacyjnym UNIX: funkcje fork() i execv() wraz z przykładami ich praktycznego zastosowania. W7 – Komunikacja międzyprocesowa. Metody logicznej implementacji. Synchronizacja oraz buforowanie. Układ producent-konsument. Komunikacja za pośrednictwem potoków nienazwanych (funkcja pipe()). Przykłady realizacji praktycznej w ramach systemu operacyjnego Unix/Linux. W8 – Komunikacja za pośrednictwem potoków nazwanych (funkcja mkfifo()). Przykłady realizacji praktycznej w ramach systemu operacyjnego Unix/Linux. Synchronizacja procesów i wątków. Sekcja krytyczna. Postulaty sekcji krytycznej. W9 – Algorytmy synchronizacji procesów. Przykłady synchronizacji dwóch procesów. Synchronizacja wielu procesów i/lub wątków (algorytm piekarni). Przykłady realizacji praktycznej w ramach systemu operacyjnego Windows (dla wątków). W10 – Systemowe metody ochrony sekcji krytycznej. Funkcja zamek (lock). Semafory. Semafor zliczający oraz binarny. Semafory w systemie operacyjnym Unix/Linux. Przykłady realizacji praktycznej w ramach systemu operacyjnego Unix/Linux. W11 – Problemy synchronizacji procesów. Problem pisarzy i czytelników. Zagłodzenie oraz zakleszczenie procesów. Problem pięciu filozofów. Monitory i ich implementacja w systemach operacyjnych. W12 – Rola systemu operacyjnego w zarządzaniu pamięcią. Ograniczenia sprzętowe (rodzaje pamięci). Wiązanie adresów. Pamięć wirtualna. Wymiana (swap) prosta. Fragmentacja pamięci. W13 – Mechanizmy stronicowania i segmentacji. Segmentacja ze stronicowaniem. Stronicowanie na żądanie. Algorytmy zastępowania stron. Zarządzanie pamięcią w systemie operacyjnym Linux. W14 – System plików. Typy plików. Katalogi i ich topologia. Implementacja i organizacja systemu plików. Metody przydziału miejsca na dysku. W15 – Algorytmy szeregowania zadań Test zaliczeniowy Treści programowe (laboratorium: ćwiczenia komputerowe): L1 – Tworzenie skryptów powłoki MS-DOS systemu operacyjnego Windows. Instrukcje warunkowe i iteracyjne. Operacji na plikach. Pobieranie wartości w trakcie wykonywania skryptów. L2 – Obsługa plików i katalogów przy pomocy poleceń powłoki systemu Linux L3 – Obsługa procesów przy pomocy poleceń powłoki systemu Linux L4 – Tworzenie skryptów powłoki shell systemu operacyjnego Linux. Instrukcje warunkowe i iteracyjne. Operacji na plikach. Pobieranie wartości w trakcie wykonywania skryptów. L5 – Tworzenie drzewa procesów oraz ich identyfikacja w systemie operacyjnym Linux z wykorzystaniem funkcji systemowych funkcje fork(), execv(), getpid(), getppid(). L6 – Tworzenie skryptów komunikacji międzyprocesowej w układzie konsument-producent za pośrednictwem potoków nienazwanych (funkcja pipe()) w ramach systemu operacyjnego Unix/Linux. L7 – Tworzenie skryptów komunikacji międzyprocesowej za pośrednictwem potoków nazwanych (funkcja mkfifo()) w ramach systemu operacyjnego Unix/Linux. L8 – Synchronizacja procesów w układzie konsument-producent za pośrednictwem semaforów w ramach systemu operacyjnego Unix/Linux. L9 – Tworzenie wątków oraz skryptów komunikacji międzywątkowej w ramach systemu operacyjnego Linux. Test zaliczeniowy |
Literatura: |
Literatura podstawowa: 1. A. Silberschatz, J.L. Peterson, G. Gagne, Podstawy systemów operacyjnych. WNT, Warszawa 2005. 2. W. Stallings, Systemy operacyjne. Robomatic, Wrocław 2004. 3. C. Sobaniec, System operacyjny Linux — przewodnik użytkownika. Nakom, Poznań 2002. 4. J. S. Gray, Komunikacja między procesami w Unixie. ReadMe, Warszawa 1998. 5. Tikhonenko O., Metody probabilistyczne analizy systemów informacyjnych, Exit, Warszawa 2006 Literatura uzupełniająca: 1. M. J. Bach, Budowa systemu operacyjnego Unix®. WNT, Warszawa 1995. 2. R. Lowe, Kernel Linux. Przewodnik programisty. Helion, Gliwice 2004. |
Efekty uczenia się: |
EK1. Student potrafi określić i scharakteryzować strukturę oraz składowe współczesnych systemów operacyjnych, określić mechanizmy systemu operacyjnego stosowanych do tworzenia procesów i ich synchronizacji oraz zarządzania pamięcią EK2. Student potrafi pisać skrypty powłoki w systemach operacyjnych, tworzyć wątki i procesy, rozwiązać zagadnienia związane z synchronizacją procesów oraz komunikacja międzyprocesową |
Metody i kryteria oceniania: |
F1. Test z zakresu wymagań wstępnych dotyczących przedmiotów Architektura Systemów Komputerowych oraz Podstaw Programowania. Test nie ma wpływu na ocenę końcową z przedmiotu. P1. Wykład: 100% punktów oceny końcowej z wykładu przyznawane na podstawie rezultatów komputerowego testu egzaminacyjnego P2. Laboratorium: 50% punktów oceny końcowej z laboratorium przyznawane za realizacje zadań podstawowych i dodatkowych w trakcie zajęć laboratoryjnych P3. Laboratorium: 50% punktów oceny końcowej z laboratorium przyznawane na podstawie rezultatów komputerowego testu zaliczeniowego EK1 Student potrafi określić i scharakteryzować strukturę oraz składowe współczesnych systemów operacyjnych, określić mechanizmy systemu operacyjnego stosowanych do tworzenia procesów i ich synchronizacji oraz zarządzania pamięcią Ocena 2: Student nie potrafi wymienić i scharakteryzować wybrane cechy współczesnych systemów operacyjnych, nie potrafi wymienić i scharakteryzować role systemu operacyjnego w tworzeniu procesów oraz zarządzaniu nimi Ocena 3: Student potrafi zdefiniować system operacyjny, ma podstawową wiedze w zakresie roli systemu operacyjnego w tworzeniu procesów Ocena 3.5: Student potrafi określić rolę i miejsce systemu operacyjnego w systemie komputerowym, ma podstawową wiedze w zakresie roli systemu operacyjnego w tworzeniu oraz zarządzaniu procesami i wątkami Ocena 4: Student potrafi określić warstwową strukturę systemu operacyjnego, potrafi zdefiniować kontrolny blok procesu oraz określić jego role w mechanizmie zarządzania procesami oraz pamięcią operacyjną Ocena 4.5: Student potrafi określić wielozadaniowość jako podstawową cechę każdego współczesnego systemu operacyjnego, ma wiedze na temat struktury procesu w systemie operacyjnym Unix/Linux oraz mechanizmu stronicowania pamięci operacyjnej Ocena 5: Student potrafi scharakteryzować główne funkcje systemu operacyjnego oraz metody ich realizacji, potrafi scharakteryzować mechanizmy szeregowania procesów, określić mechanizmy zarządzania pamięcią oraz kolejkowania procesów, wymienić funkcje służące do tworzenia i identyfikacji procesów dostarczane przez system operacyjny EK2 Student potrafi pisać skrypty powłoki w systemach operacyjnych, tworzyć wątki i procesy, rozwiązać zagadnienia związane z synchronizacją procesów oraz komunikacja międzyprocesową Ocena 2: Student nie potrafi tworzyć skrypty powłoki w systemach operacyjnych Ocena 3: Student potrafi wymienić podstawowe kluczowe słowa interpretera powłoki MS-DOS, potrafi tworzyć proste skrypty Ocena 3.5: Student potrafi wymienić podstawowe kluczowe słowa interpretera powłok DOS oraz Linux, potrafi tworzyć proste skrypty Ocena 4: Student potrafi tworzyć proste skrypty interpretera powłok DOS oraz Linux, potrafi tworzyć instrukcji iteracyjne oraz warunkowe z zastosowaniem języków programowania C oraz C++, posługuje się funkcjami systemowymi do tworzenia procesów Ocena 4.5: Student potrafi tworzyć złożone skrypty interpretera powłok DOS oraz Linux, posługuje się funkcjami systemowymi do tworzenia procesów i wątków oraz komunikacji międzyprocesowej z użyciem języków programowania C i C++. Ocena 5: Student swobodnie posługuje się zarówno językami powłok DOS oraz Linux jak i językami programowania C lub C++ stosowanymi do tworzenia aplikacji z użyciem funkcji systemowych. Swobodnie posługuje się funkcjami systemowymi do tworzenia procesów i wątków, komunikacji międzyprocesowej oraz synchronizacji procesów i wątków. |
Zajęcia w cyklu "Semestr zimowy 2018/2019" (zakończony)
Okres: | 2018-10-01 - 2019-01-25 |
Przejdź do planu
PN WT ŚR CZ PT |
Typ zajęć: |
Laboratorium, 15 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Andriy Kityk | |
Prowadzący grup: | Andriy Kityk | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Laboratorium - zaliczenia lub końcowy przedmiotu Wykład - Egzamin |
Zajęcia w cyklu "Semestr zimowy 2019/2020" (zakończony)
Okres: | 2019-10-01 - 2020-01-29 |
Przejdź do planu
PN WT ŚR CZ PT |
Typ zajęć: |
Laboratorium, 15 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Andriy Kityk | |
Prowadzący grup: | Andriy Kityk | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Laboratorium - zaliczenia lub końcowy przedmiotu Wykład - Egzamin |
Właścicielem praw autorskich jest Politechnika Częstochowska.