Systemy operacyjne 17-DSOP-IP0
Podstawowe definicje oraz pojęcia:
- definicja i podstawowe funkcje systemu operacyjnego
- pojęcie zasobu w systemie operacyjnym
- rodzaje i klasyfikacje zasobów
- rodzaje i klasyfikacje struktur systemów operacyjnych
- tryby pracy systemu operacyjnego
- kryteria efektywności pracy systemu operacyjnego.
Zarządzanie pamięcią:
- podstawowe definicje i pojęcia
- klasyfikacja i rodzaje pamięci
- hierarchia pamięci
- podstawowe cele zarządzania pamięcią
- organizacja logiczna i fizyczna pamięci operacyjnej
- przemieszczanie obrazów procesów w pamięci
- wiązanie adresów
- łączenie statyczne i dynamiczne
- ochrona pamięci
- pamięć wirtualna: idea i metody implementacji
- pamięć segmentowana i jej obsługa
- pamięć stronicowana i jej obsługa
- zjawisko migotania stron
- strategie rozmieszczania i wymiany stron
- problemy fragmentacji pamięci i pakowania
- strategie rozwiązywania problemu fragmentacji pamięci
- algorytmy FF i FFD
- swapping
- stopień wieloprogramowości i jego znaczenie
- pamięć dyskowa: fizyczna i logiczna budowa dysku
- metody adresowania sektorów dysku
- metody przechowywania informacji o wolnych blokach dysku
- metody przydziału przestrzeni dyskowej
- algorytmy optymalizacji ruchu głowic dyskowych
- algorytmy FCFS, SSTF i SCAN
Procesy i wątki:
- definicja procesu
- stany procesu
- diagram przejść między stanami procesu
- blok kontrolny procesu
- obraz procesu w pamięci operacyjnej
- kontekst procesu
- procesy macierzyste i potomne
- procesy upiory i procesy-sieroty
- podstawowe metody komunikacji między procesami
- zasady wyboru algorytmów szeregowania procesów
- algorytmy ROUND-ROBIN i FCFS
- wątki
System plików:
- definicje pliku, fizycznego zbioru danych oraz systemu plików
- części składowe oraz funkcje systemu plików
- systemowe struktury danych dotyczące plików
- podstawowe typy plików
- rodzaje katalogów
- metody dostępu do plików
- podstawowe operacje na plikach oraz katalogach
- ochrona plików
- mechanizm praw i atrybutów
- warstwy systemu plików
Obsługa urządzeń wejścia/wyjścia:
- klasyfikacje urządzeń wejścia/wyjścia
- parametry pracy urządzeń wejścia/wyjścia
- pojęcie maszynowego zbioru znaków
- kody ASCII i Unicode
- metody obsługi urządzeń wejścia/wyjścia
- praca offline; polling
- przerwania, typy przerwań i ich obsługa
- DMA
- buforowanie operacji wejścia/wyjścia
- spooling
- warstwy systemu obsługi
Synchronizacja procesów:
- definicja procesów współbieżnych
- współbieżność potencjalna i aktualna
- budowa kodu współbieżnych procesów
- pojęcie fazy krytycznej
- problem wzajemnego wykluczania
- algorytm rozwiązania problemu wzajemnego wykluczania dla dwu procesów
- rozwiązanie problemu wzajemnego wykluczania za pomocą Set&TestLock i Exchange
- semafory
- rozwiązanie problemu wzajemnego wykluczania za pomocą semaforów
- problem aktywnego czekania i jego konsekwencje
- problem producentów i konsumentów
- problem czytelników i pisarzy
- problem pięciu filozofów urządzeń wejścia/wyjścia
Blokada:
- definicja blokady
- warunki Coffmana
- graf przydziału zasobów i jego stosowanie
- algorytm bankiera
- algorytm piekarni
- metody postępowania z blokadami
Sprzętowe podstawy współbieżności:
- klasyfikacja komputerów równoległych wg Flynna
- definicja przyśpieszenia algorytmu równoległego
- klasyfikacja komputerów równoległych ze wspólną pamięcią
- prawo Moore’a
- prawo Amdahla
Budowa ogólna systemów operacyjnych rodziny Unix/Linux:
- główne odmiany systemu operacyjnego Unix
- podstawowe cechy standardu SVR4
- standard BSD
- rodzina SunOS/Solaris; Linux i jego dystrybucje
- budowa ogólna systemów rodziny Unix/Linux
- budowa, funkcje i tryb jądra
- jądro klasycznych wersji systemu Unix/Linux
- budowa modularnego jądra nowych wersji
- podstawowe grupy funkcji systemowych
Powłoka systemu Unix i jej odmiany:
- budowa ogólna: powłoka systemu i jej odmiany
- podstawowy cykl pracy powłoki
- lista metasymboli powłoki
- zmienne i ich eksport
- substytucja poleceń
- zasady cytowania metasymboli
- sposoby tworzenia procesu
- polecenia do pracy z procesami
- procesy pierwszoplanowe i w tle
- proces init
- system plików: struktura katalogów
- pliki specjalne
- montowanie systemu plików
- nazwy plików
- prawa dostępu
- rodzaje dowiązań do pliku
- podstawowe operacje na plikach na poziomie powłoki
- język powłoki
- skrypty powłokowe
- parametry pozycyjne
- zmienne powłoki wykorzystywane w skryptach
- podstawowe konstrukcje języka powłoki (alternatywa i koniunkcja warunkowa, zdanie warunkowe, instrukcja wyboru, pętle, instrukcje wczytywanie danych)
Jądro systemu Unix i jego odmiany:
- pamięć: zarządzanie pamięcią w SVR4 na poziomie jądra
- systemowe struktury danych w stronicowaniu
- schemat stronicowania dla procesów użytkownika
- algorytm bliźniaków
- schemat przydziału stron dla procesów jądra
- algorytm leniwych bliźniaków
- algorytm dwuręcznego zegara
- procesy
- zarządzanie procesami w SVR4 na poziomie jądra
- obsługa funkcji systemowych SVR4 przez jądro
- wybrane funkcje dotyczące procesów i ich obsługa: fork, exit, wait
- funkcje rodziny exec*
- pliki: system plików w SVR4 na poziomie jądra
- budowa węzła informacyjnego
- schemat indeksowania bloków pliku w SVR4
- wybrane funkcje dotyczące plików i ich obsługa: creat, open, close, read, write, wejście/wyjście
- obsługa urządzeń wejścia/wyjścia w SVR4 na poziomie jądra
- typy urządzeń wejścia/wyjścia w SVR4
- pliki specjalne i ich rola
- sygnały
- funkcja signal
- podstawowe sygnały w SVR4
Budowa ogólna systemów operacyjnych rodziny Windows:
- ogólna architektura systemu Windows
- warstwa API
- moduł NT Executive i jego budowa
- warstwa HAL
- środowiska NTDVM, Win16/Win32
- obsługa pamięci wirtualnej
- zarządzanie pamięcią podręczną
- leniwe zapisywanie
- obsługa procesów i wątków w Windows
- struktura procesu/wątku
- stany procesu/wątku
- zarządzanie zasobami: żeton dostępu, identyfikator ochrony, tabela obiektu
- system plików NTFS
- budowa woluminu NTFS
- budowa oraz funkcje modułu obsługi wejścia/wyjścia w Windows
- sterowniki systemu plików i ich obsługa
- synchroniczne i asynchroniczne operacje wejścia/wyjścia; wersje Workstation i Server systemu Windows
System operacyjny Windows:
- ogólna architektura systemu systemu Windows
Nowe systemy operacyjne rodziny Windows:
- podstawowe cechy nowych systemów rodziny
Windows
- budowa ogólna systemu Windows
Teoretyczne podstawy algorytmów przydziału procesorów:
- składowe opisu ogólnego problemu przydziału procesów do procesorów (szeregowania procesów)
- opis zbioru procesów
- opis zbioru procesorów
- kryterium optymalności
- definicje czasów wykonywania procesów, czasów gotowości i pożądanych
terminów zakończenia
- rodzaje procesorów identycznych
- kryteria minimalizacji długości uszeregowania oraz ogólnego łącznego czasu
przepływu
- definicja uszeregowania
- główne klasy uszeregowań
- główne rodzaje algorytmów szeregowania procesów
- diagramy Gantta
- minimalizacja długości uszeregowania dla jednego procesora
- procesy bez czasów gotowości i pożądanych terminów zakończenia
- procesy z czasami gotowości
- algorytm ERT
- procesy z pożądanymi terminami zakończenia
- algorytm EDD
- minimalizacja ogólnego łącznego czasu przepływu dla jednego procesora
- algorytmy SPT oraz WSPT
- minimalizacja liczby spóźnionych procesów dla jednego procesora
- algorytm Hodgsona-Moore'a;
- minimalizacja maksymalnego kosztu dla jednego procesora
- algorytm Lawlera
- przyczyny stosowania algorytmów przybliżonych dla ogólnego problemu szeregowania procesów na dwu identycznych równoległych procesorach
- algorytm LS szeregowania listowego oraz oszacowanie jego
najgorszego przypadku dla wielu identycznych równoległych procesorów
- algorytm LPT oraz oszacowanie jego najgorszego przypadku dla wielu identycznych równoległych procesorów
- algorytm McNaughtona szeregowania podzielnego zadań niezależnych na wielu identycznych równoległych procesorach
- algorytm Hu szeregowania zadań jednostkowych z ograniczeniami
kolejnościowymi w postaci drzewa na wielu identycznych równoległych procesorach
Kryptograficzne metody ochrony danych w systemach operacyjnych:
- podstawowe definicje i pojęcia
- szyfr, klucz szyfrowania, alfabet jawny, alfabet szyfrowania, kod, entropia, redundancja, wskaźnik zgodności Friedmanna
- wybrane klasyczne algorytmy szyfrowania
- szyfr Cezara i jego odmiany
- szyfr monoalfabetyczny i jego odmiany
- szyfr polialfabetyczny; szyfr z “wędrującym” kluczem
- wybrane współczesne algorytmy szyfrowania
- standardy DES i AES
- kryptografia publiczna
- szyfr RSA
Cele kształcenia
Informacja o tym, gdzie można zapoznać się z materiałami do zajęć
Kierunek studiów
Metody prowadzenia zajęć umożliwiające osiągnięcie założonych EK
Moduł zajęć/przedmiotu prowadzony zdalnie (e-learning)
Nakład pracy studenta (punkty ECTS)
Poziom przedmiotu
Rodzaj przedmiotu
Rok studiów (jeśli obowiązuje)
Wymagania wstępne w zakresie wiedzy, umiejętności oraz kompetencji
Koordynatorzy przedmiotu
W cyklu 2024/SZ: | W cyklu 2018/SZ: | W cyklu 2020/SZ: | W cyklu 2023/SZ: | W cyklu 2021/SZ: | W cyklu 2022/SZ: | W cyklu 2019/SZ: |
Efekty kształcenia
Posiada podstawową wiedzę na temat idei oraz algorytmów
wykorzystywanych w systemach operacyjnych w przeszłości i obecnie.
Zna podstawowe definicje oraz pojęcia, zarządzanie pamięcią. Zna procesy i wątki, system plików, obsługę urządzeń wejścia/wyjścia.
Zna podstawowe fakty dotyczące budowy wybranych przedstawicieli
systemów operacyjnych z rodziny Unix/Linux oraz Windows. Zna budowę ogólna systemów operacyjnych rodziny Unix/Linux. Zna powłokę
systemu Unix/Linux i jej odmiany Zna jądro systemu Unix/Linux i jego odmiany. Zna nowe systemy operacyjne rodziny Windows.
Zna budowę ogólna systemów operacyjnych rodziny Windows.
Umie posługiwać się podstawowymi poleceniami systemów operacyjnych z
rodziny Unix/Linux oraz Windows, służącymi do wykonywania operacji na plikach, procesach/wątkach i urządzeniach wejścia/wyjścia.
Potrafi przeczytać ze zrozumieniem/napisać skrypt w języku
powłoki BASH, wykorzystujący podstawowe konstrukcje sterujące tej
powłoki dostępne w systemach z rodziny Unix/Linux.
Potrafi przeczytać ze zrozumieniem/napisać program wsadowy, wykorzystujący podstawowe konstrukcje sterujące dostępne w trybie tekstowym w systemach z rodziny Windows.
Potrafi przeczytać ze zrozumieniem/napisać program w języku C zawierający wywołania funkcji systemowych Unixa/Linuxa dotyczących procesów, plików i
sygnałów. Zna jądro systemu Unix/Linux i jego odmiany.
Rozumie/umie wykonać podstawowe czynności związane z administrowaniem systemem operacyjnym z rodziny Unix/Linux oraz Windows.
Zna/umie zastosować w praktyce wybrane algorytmy kryptograficzne. Zna kryptograficzne metody ochrony danych w systemach operacyjnych.
Zna podstawowe fakty oraz algorytmy związane ze współbieżnym
wykonywaniem procesów/wątków. Zna synchronizację procesów, blokadę, sprzętowe podstawy współbieżności.
Zna/potrafi zastosować w praktyce podstawowe algorytmy przydziału
procesów do procesorów. Zna teoretyczne podstawy algorytmów
przydziału procesorów.
Ma świadomość znaczenia i roli systemów operacyjnych w informatyce,
rozumie potrzebę dalszego kształcenia w tym zakresie. Zna podstawowe pojęcia oraz definicje.
Kryteria oceniania
Podstawą zaliczenia ćwiczeń są sprawdziany ze znajomości podstawowych poleceń systemów Unix/Linux i Windows oraz umiejętności pisania programów w języku C wykorzystujących funkcje systemu Unix/Linux. W ramach ćwiczeń
należy także zaliczyć pisemny projekt na temat związany z materiałem wykładu.
Egzamin ma postać pisemną i składa się z części teoretycznej, związanej z materiałem wykładu, oraz części praktycznej, polegającej na rozwiązaniu zestawu zadań związanych z algorytmami omawianymi w ramach
wykładu.
Literatura
B. Goodheart, J. Cox: Sekrety magicznego ogrodu. Unix System V wersja 4 od środka, WNT, 2001.
B.W. Kernighan, D.M. Ritchie: Język C, WNT, 1988.
A. Silberschatz, P.B. Galvin, G. Gagne: Podstawy systemów operacyjnych, wyd. 6, WNT, 2005.
W. Stallings: Organizacja i architektura systemu komputerowego, WNT, 2004.
W. Stallings: Systemy operacyjne. Struktura i zasady budowy, PWN, 2006.
U. Vahalia: Jądro systemu Unix. Nowe horyzonty, WNT, 2001.
3. C. Sobaniec, System operacyjny Linux — przewodnik użytkownika. Nakom, Poznań 2002
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: