Politechnika Częstochowska - Centralny System Uwierzytelniania
Strona główna

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) Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 15 godzin więcej informacji
Wykład, 30 godzin więcej informacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 15 godzin więcej informacji
Wykład, 30 godzin więcej informacji
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
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Częstochowska.
ul. J.H. Dąbrowskiego 69
42-201 Częstochowa
tel: +48 (34) 3255-211 https://pcz.pl
kontakt deklaracja dostępności USOSweb 7.0.2.0-2 (2024-03-22)