Uniwersytet im. Adama Mickiewicza w Poznaniu - Centralny System Uwierzytelniania
Strona główna

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) 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: 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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Wykład, 30 godzin więcej informacji
Zajęcia laboratoryjne, 30 godzin więcej informacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Wykład, 30 godzin więcej informacji
Zajęcia laboratoryjne, 30 godzin więcej informacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Wykład, 30 godzin więcej informacji
Zajęcia laboratoryjne, 30 godzin więcej informacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Konwersatorium, 30 godzin więcej informacji
Zajęcia laboratoryjne, 30 godzin więcej informacji
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ą
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet im. Adama Mickiewicza w Poznaniu.
ul. Wieniawskiego 1
61-712 Poznań
tel: +48 61 829 4000
kontakt deklaracja dostępności USOSweb 7.0.3.0 (2024-03-22)