Systemy operacyjne
Informacje ogólne
Kod przedmiotu: | 17-DSOP-IP0 |
Kod Erasmus / ISCED: | (brak danych) / (brak danych) |
Nazwa przedmiotu: | Systemy operacyjne |
Jednostka: | Nadnotecki Instytut UAM w Pile |
Grupy: |
Moodle - przedmioty Innych jednostek |
Punkty ECTS i inne: |
0 LUB
6.00
(w zależności od programu)
|
Język prowadzenia: | język polski |
Rodzaj przedmiotu: | obowiązkowe |
Kierunek studiów: | Technologie informatyczne. |
Poziom przedmiotu: | I stopień |
Cele kształcenia: | Zaznajomienie studentów z podstawowymi pojęciami oraz ideami wykorzystywanymi w systemach operacyjnych historycznych i współczesnych. Przedstawienie wybranych algorytmów do zarządzania zasobami oraz usługami oferowanymi przez systemy rodzin Unix/Linux oraz Windows. |
Rok studiów (jeśli obowiązuje): | II rok |
Moduł zajęć/przedmiotu prowadzony zdalnie (e-learning): | Zajęcia prowadzone są w formie stacjonarnej. |
Wymagania wstępne w zakresie wiedzy, umiejętności oraz kompetencji: | Umiejętność wykonywania podstawowych operacji w środowisku Windows i Unix/Linux. Znajomość podstaw języka C. |
Informacja o tym, gdzie można zapoznać się z materiałami do zajęć: | Umieszczone na platformie UAM - MS Teams. |
Metody prowadzenia zajęć umożliwiające osiągnięcie założonych EK: | Wykład, laboratorium, praca metodą projektów, analiza i rozwiązywanie praktycznych problemów. |
Nakład pracy studenta (punkty ECTS): | Suma godzin pracy własnej: 90 h Godziny zajęć z nauczycielem (wg planu studiów): 60 h Liczba punktów ECTS: 6 |
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 WINDOWS/DOS oraz systemu operacyjnego Unix/Linux, tworzenia skryptów powłoki Unix/Linux oraz podstaw programowania mechanizmów komunikacji międzyprocesowej, podstaw tworzenia procesów i wątków w systemie operacyjnym Unix/Linux oraz ich synchronizacji. |
Pełny opis: |
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 |
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 |
Efekty uczenia się: |
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. |
Metody i 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. |
Zajęcia w cyklu "Semestr zimowy 2020/2021" (zakończony)
Okres: | 2020-10-01 - 2021-02-28 |
Przejdź do planu
PN WT ŚR CZ LAB
WYK
LAB
PT |
Typ zajęć: |
Wykład, 30 godzin
Zajęcia laboratoryjne, 30 godzin
|
|
Koordynatorzy: | Marcin Gogolewski | |
Prowadzący grup: | Marcin Gogolewski | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Wykład - Egzamin Zajęcia laboratoryjne - Zaliczenie z notą |
Zajęcia w cyklu "Semestr zimowy 2021/2022" (zakończony)
Okres: | 2021-10-01 - 2022-02-23 |
Przejdź do planu
PN WT ŚR CZ PT |
Typ zajęć: |
Wykład, 30 godzin
Zajęcia laboratoryjne, 30 godzin
|
|
Koordynatorzy: | Norbert Rataj, Marek Wisła | |
Prowadzący grup: | Norbert Rataj, Marek Wisła | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Wykład - Egzamin Zajęcia laboratoryjne - Zaliczenie z notą |
Zajęcia w cyklu "Semestr zimowy 2022/2023" (zakończony)
Okres: | 2022-10-01 - 2023-02-26 |
Przejdź do planu
PN WT ŚR CZ PT |
Typ zajęć: |
Wykład, 30 godzin
Zajęcia laboratoryjne, 30 godzin
|
|
Koordynatorzy: | Norbert Rataj, Marek Wisła | |
Prowadzący grup: | Norbert Rataj, Marek Wisła | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Wykład - Egzamin Zajęcia laboratoryjne - Zaliczenie z notą |
Zajęcia w cyklu "Semestr zimowy 2023/2024" (zakończony)
Okres: | 2023-10-01 - 2024-02-25 |
Przejdź do planu
PN WT ŚR CZ PT |
Typ zajęć: |
Konwersatorium, 30 godzin
Zajęcia laboratoryjne, 30 godzin
|
|
Koordynatorzy: | Norbert Rataj, Marek Wisła | |
Prowadzący grup: | Norbert Rataj, Marek Wisła | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Konwersatorium - Egzamin Zajęcia laboratoryjne - Zaliczenie z notą |
Właścicielem praw autorskich jest Uniwersytet im. Adama Mickiewicza w Poznaniu.