Kod przedmiotu 02 55 6165 00
Liczba uzyskiwanych punktów ECTS 3
Nazwa przedmiotu w języku prowadzenia
Systemy operacyjne II
Nazwa przedmiotu w języku polskim Systemy operacyjne II
Nazwa przedmiotu w języku angielskim
Operating Systems II
Język prowadzenia zajęć polski
Formy zajęć
Wykład Ćwiczenia Laboratorium Projekt Seminarium Inne Suma godzin w semestrze
Godziny kontaktowe 20 10 0 30
Czy e-learning Nie Nie Nie Nie Nie Nie
Kryteria oceny (waga) 0,50 0,50 0,00
Jednostka prowadząca Instytut Informatyki Stosowanej
Kierownik przedmiotu dr inż. Tomasz Jaworski
Realizatorzy przedmiotu mgr inż. Adrian Chojecki
Wymagania wstępne
Elementarna wiedza o architekturze komputera, biegła znajomość podstaw programowania w C (potwierdzone zaliczeniem przedmiotu Podstawy Programowania II), umiejętność obsługi podstawowych funkcjonalności systemu operacyjnego.
Przedmiotowe efekty uczenia się
  1. Student potrafi analizować i omawiać podstawowe mechanizmy systemu operacyjnego.
  2. Student potrafi analizować i omawiać podstawowe struktury danych systemu operacyjnego.
  3. Student potrafi budować programy wielowątkowe, wykorzystując interfejs API systemu operacyjnego.
  4. Student potrafi budować programy do przetwarzania oraz modyfikacji podstawowych struktur danych systemu operacyjnego.
Przypisane kierunkowe efekty uczenia się
  1. W zaawansowanym stopniu zna i rozumie teoretyczne fundamenty informatyki oraz wybrane zagadnienia z różnych działów informatyki, zna i rozumie budowę i działanie sprzętu komputerowego oraz podstawowe procesy zachodzące w cyklu życia obiektów i systemów technicznych.
  2. Potrafi przeanalizować złożony problem i zaproponować jego rozwiązania, wykazując się kreatywnością w łączeniu wiedzy z zakresu informatyki i innych, specyficznych dla danego problemu, dyscyplin, tworząc specyfikację wymagań dla potrzeb implementacji.
  3. Potrafi zaprojektować, zaimplementować i ocenić system informatyczny spełniający narzucone wymagania, dokonując przy tym wyboru odpowiednich do tego celu technik i narzędzi informatycznych.
  4. Jest gotów do krytycznej oceny posiadanej wiedzy i odbieranych treści, w tym założeń, wywodów i danych przedstawianych na ich poparcie, do uznawania znaczenia wiedzy w rozwiązywaniu problemów oraz do zasięgania opinii ekspertów.
Treści programowe
W ramach przedmiotu przedstawione zostaną niskopoziomowe mechanizmy oraz struktury danych systemu operacyjnego. 
Omówiona zostanie struktura systemu operacyjnego, zarządzanie pamięcią komputera, problemy synchronizacji, komunikacja miedzyprocesowa oraz najpopularniejsze systemy plików.
W części praktycznej student potwierdzi praktycznie nabytą wiedzę, przygotowując aplikację wieloprocesową, własny mechanizm zarządzania pamiecią oraz interpreter/modyfikator wybranego systemu plików.
Metody weryfikacji przedmiotowych efektów uczenia się
Efekty 1, 2: Kolokwium wykladowe.
Efekty 3, 4: Kolokwium laboratoryjne, automatycznie sprawdzane prace domowe. 
Formy i warunki zaliczenia przedmiotu
Wyklad: koncowe kolokwium zaliczajace w formie pisemnej (test).
Laboratorium: kolokwium praktycznie (pisanie krótkich programów) na ostatnim laboratorium oraz zadania do samodzielnego wykonania w systemie automatycznego sprawdzania programów.
Szczegółowe treści przedmiotu
WYKŁAD
1. Struktura systemu operacyjnego: skladniki systemu, funkcje systemowe, programy systemowe, struktura systemu, wirtualizacja.
2. Procesy: planowanie procesu, dzialania na procesach, watki, procesy wspólpracujace, komunikacja miedzyprocesowa, sytuacje wyjatkowe. Planowanie przydzialu procesora: kryteria planowania, planowanie jedno-procesorowe (First-Come-First-Served, Shortest-Job-First, priorytetowe, rotacyjne), planowanie wielopoziomowe, kryteria wyboru.
3. Synchronizacja procesów: sekcja krytyczna, semafory, monitory, problem czytelników i pisarzy, problem filozofów, problem producent-konsument, zastosowanie instrukcji atomowych.
4. Zarzadzanie pamiecia: wymiana, stronicowanie, segmentacja, ochrona, alokatory, sterta, stos.
5. Komunikacja miedzyprocesowa: potoki, gniazda, pamiec wspóldzielona.
6. Systemy plików: pliki i katalogi, struktura katalogowa, implementacja plików, algorytmy przydzialu miejsca na dysku, zarzadzanie wolna przestrzenia, struktury danych FAT12/16/32, NTFS.

CWICZENIA LABORATORYJNE
1. Tworzenie programów zawierajacych watki.
2. Tworzenie procesów potomnych.
3. Wykorzystanie w programach wielowatkowych metod synchronizacji. 
4. Wczytywania i analiza popularnych struktur organizacji nosników danych.
5. Praca ze strukturami danych systemów plików FAT/NTFS.
Literatura podstawowa
  1. Silberschatz A., Peterson J., Galwin P.: Podstawy systemów operacyjnych, WNT, Warszawa, 2005.
  2. Metzger Piotr: Anatomia PC. Wydanie XI. Helion 2007.
  3. Jeffrey Richter: Programowanie Aplikacji dla Microsoft Windows.RM, Warszawa 2002.
  4. Beck M., Bohme H., Dziadzka M., Kunitz U., Magnus R., Verworner D.: Linux Kernel. Jadro systemu. Wydawnictwo Mikom, 1999.
  5. William Stallings: Systemy Operacyjne. ROBOMATIC, Wroclaw 2004.
Literatura uzupełniająca
  1. Vahalia U.: Jadro systemu UNIX. Nowe horyzonty. WNT, Warszawa, 2001.
  2. Solomon Dawid A,. Russinovich Mark E.: Microsoft Windows 2000 od srodka. Helion, Gliwice, 2003.
  3. N. Wirth, Algorytmy + Struktury Danych = Programy, WNT Warszawa 2004.
Przeciętne obciążenie godzinowe studenta pracą własną
8
Uwagi
Data aktualizacja karty 2020-10-15 19:15:05
Przedmiot archiwalny tak/nie nie