Operating systems (wykład) - 2019/2020

Course description
General information
Lecturer:dr Viktor Melnyk prof. KUL
Organising unit:Faculty of Natural Sciences and Health - Instytut Matematyki, Informatyki i Architektury Krajobrazu
Number of hours (week/semester): 1/15
Language of instruction:Język polski
Course objective
C1 - zaznajomienie słuchaczy z podstawowymi pojęciami oraz ideami wykorzystywanymi w systemach operacyjnych historycznych i współczesnych
C2 - przedstawienie konkretnych rozwiązań zastosowanych w systemach rodzin Unix oraz Windows.
Prerequisites
W1 - znajomością treści z informatyki objętych programem szkoły średniej.
W2 - znajomość podstawowych zagadnień z architektury komputerów.
W3 - znajomość z podstawami programowania.
W4 - dobra znajomość obsługi komputera.
Learning outcomes
WIEDZA
K_W01 Rozumie współczesne znaczenie informatyki i jej zastosowań
K_W03 Zna podstawowe algorytmy oraz przykłady ich praktycznej implementacji
K_W04 Ma podstawową wiedzę z zakresu budowy i zarządzania systemami informatycznymi
K_W05 Zna na poziomie podstawowym co najmniej jeden pakiet oprogramowania służący do obliczeń symbolicznych
K_W06 Ma ogólną wiedzę z zakresu algorytmiki, projektowania i programowania, systemów operacyjnych, sieci komputerowych, inżynierii oprogramowania, baz danych, sztucznej inteligencji i grafiki komputerowej
K_W08 Zna ogólne zasady tworzenia i rozwoju form indywidualnej przedsiębiorczości, wykorzystując wiedzę z zakresu informatyki

UMIEJĘTNOŚCI
K_U01 Potrafi posługiwać się wybranymi systemami operacyjnymi oraz pakietami oprogramowania użytkowego
K_U02 Potrafi samodzielnie pozyskiwać i wykorzystywać informacje pomocne w rozwiązaniu określonych problemów informatycznych z dokumentacji technicznej, plików pomocy oraz zasobów Internetu i dostępnej literatury
K_U03 Potrafi stosować na poziomie podstawowym co najmniej jeden pakiet oprogramowania służący do obliczeń symbolicznych
K_U04 Potrafi posługiwać się słownictwem specjalistycznym z zakresu informatyki
K_U05 Potrafi projektować strony www
K_U06 Potrafi stosować podstawowe pojęcia i metody z zakresu systemów liczbowych, kodowania, przetwarzania i ochrony danych
K_U07 Potrafi analizować algorytmy i programy zapisane w języku programowania imperatywnego pod kątem ich poprawności i złożoności obliczeniowej
K_U08 Rozumie zasady budowy algorytmów. Potrafi konstruować i zapisywać proste algorytmy rozwiązujące problemy z różnych dziedzin nauki
K_U09 Potrafi stosować podstawowe algorytmy rekurencyjne, sortowania i przeszukiwania oraz ich implementacje w wybranym języku programowania i środowisku programistycznym
K_U10 Potrafi stosować struktury danych, zaimplementować je i wykonywać na nich operacje
K_U11 Potrafi stosować zasady tworzenia programów strukturalnych i obiektowych
K_U12 Potrafi napisać prostą aplikację w obiektowym języku programowania, w środowisku tekstowym i graficznym
K_U13 Potrafi projektować oprogramowanie z wykorzystaniem zasad inżynierii oprogramowania
K_U14 Potrafi opracować podstawową dokumentację w procesie realizacji projektu informatycznego
K_U15 Potrafi tworzyć proste usługi sieciowe oraz udostępniać je użytkownikom poprzez różne protokoły sieciowe
K_U16 Potrafi stosować podstawowe zagadnienia sztucznej inteligencji
K_U17 Potrafi opisać przestrzeń problemu wyrażonego w języku naturalnym w terminach stanów, operatorów, stanu początkowego i docelowego
K_U18 Potrafi stosować mechanizmy wspomagania decyzji przy rozwiązywaniu problemów praktycznych
K_U19 Posiada umiejętność przeprowadzania testów funkcjonalnych
K_U20 Potrafi stosować w praktyce podstawowe metody numeryczne
K_U22 Potrafi wykorzystać nabytą wiedzę matematyczną do opisu procesów, tworzenia modeli, zapisu algorytmów oraz innych działań w obszarze informatyki
K_U23 Potrafi posługiwać się językiem angielskim w stopniu umożliwiającym korzystanie z dokumentacji oprogramowania i sprzętu
K_U24 Potrafi zbudować i administrować prostą siecią komputerową
K_U25 Posiada umiejętność tworzenia obrazów z wykorzystaniem standardowego API graficznego i zrealizować podstawowe transformacje, zaimplementować proste procedury transformacji obrazów
K_U26 Potrafi formułować proste zapytania w języku SQL, przygotować schemat relacyjnej bazy danych
K_U27 Potrafi zbudowac prosty system bazodanowy wykorzystując co najmniej jeden z popularnych systemów zarzadzania bazą danych
K_U29 Posiada umiejętność przygotowania typowych prac pisemnych dotyczących zagadnień informatycznych
K_U30 Potrafi zaprezentować ogólne i szczegółowe zagadnienia informatyczne w sposób zrozumiały

KOMPETENCJE SPOŁECZNE (POSTAWY)
K_K01 Ma świadomość poziomu swojej wiedzy i umiejętności, rozumie potrzebę dokształcania się i podnoszenia kompetencji zawodowych i osobistych
K_K02 Potrafi odpowiednio określić priorytety w ramach realizowanego projektu informatycznego
K_K03 Potrafi wykazać się inicjatywą i efektywnością w trakcie realizowanego projektu
K_K04 Potrafi pracować indywidualnie i zespołowo, rozumie konieczność systematycznej pracy nad projektami o długofalowym charakterze
K_K06 Rozumie społeczne aspekty stosowania zdobytej wiedzy oraz związaną z tym odpowiedzialność
K_K07 Potrafi komunikować się przy użyciu różnych technik w środowisku zawodowym
Teaching method
WYKŁAD
Wykład tradycyjny, wykład konwersatoryjny z prezentacją multimedialną, metody nauczania wspieranego technikami informacyjnymi.

ĆWICZENIA
zajęcia prowadzone w pracowni komputerowej wyposażonej w rzutnik multimedialny, metody dialogowe, problemowe, ćwiczeniowe, prezentacja multimedialna, praca w grupie, indywidualne zajęcia przy komputerze, indywidualna praca prowadzącego ze studentem
Course content description
WYKŁAD
1. Istota, rola i zadania systemu operacyjnego. Rodzaje systemów operacyjnych. Podstawy działania. Struktura systemu. Historyczny rys rozwoju systemów operacyjnych - od systemów wsadowych do interakcyjnych.
2. Zasoby, procesy i wątki. Właściwości i pożądane cechy systemów operacyjnych. Przetwarzanie współbieżne.
3. Planowanie przydziału procesora. Algorytmy planowania i kryteria oceny. Implementacja algorytmów planowania procesów i wątków.
4. Systemowe mechanizmy synchronizacji procesów. Komunikacja między procesami - wzajemne wyłączanie, synchronizacja i blokada. Semafory - zasada działania, implementacja. Zastosowanie semaforów w komunikacji międzyprocesowej.
5. Hierarchia pamięci. Zarządzanie pamięcią operacyjną. Sterowania pamięcią, pryzdyial pamięci.
6. Pamięć wirtualna. Sposoby zamieszczenia stron w pamięci operacyjnej.
7. System plików. Atrybuty pliku. Podstawowe operacje na plikach. Operacje na katalogu. Organizacja logiczna systemu plików. Organizacja fizyczna systemu plików.
8. Mechanizmy wejścia/wyjścia. Rodzaje urządzeń wejścia-wyjścia. Struktura mechanizmu wejścia-wyjścia. Buforowanie.

ĆWICZENIA
1. Instalacja systemu operacyjnego.
2. Wprowadzenie oraz obsługa systemu plików w Linux\'ie.
3. Linux – konsola. Operacje na katalogach i plikach. Konta użytkowników. Montowanie i odmontowywanie urządzeń.
4. Procesy, zmienne, programy, pliki, standardowe wyjscie i wejscie.
5. Filtry, strumienie standardowe oraz przetwarzanie potokowe.
6. Tworzenie skryptów powłoki systemu operacyjnego Linux.
7. Obsługa edytora vi.
8. Obsługa edytora joe.
9. Windows: Power shell, pliki batch
Forms of assessment
Warunkiem zaliczenia ćwiczeń jest obecność studenta na zajęciach dydaktycznych, wykonanie ćwiczeń i otrzymywanie ocen, uzyskanie pozytywnej oceny za odpowiedzi na pytania kontrolne w kazdym ćwiczeniu.
Oceny za wykonanie ćwiczeń - 70%, obecność - 30%

Egzamin (dla osób, które zaliczyły ćwiczenia) polega na przeprowadzeniu testu z wiedzy przekazanej na wykładzie. Ocena egzaminacyjna jest formowana na podstawie dwóch składowych:
70 % - odpowiedzi pisemne na zadania testowe i odpowiedzi ustne w razie wątpliwości,
30% - ocena otrzymana z ćwiczeń.

Ocenianie jest wykonywane według następnej skali:
poniżej 50% - niedostateczny (2.0).
Szczegółowe zasady oceniania są podawane studentom z każdą edycją przedmiotu.

W1, U1, U2 – egzamin pisemny, pracy laboratoryjne, przygotowanie do zajęć
K1, K2, K3 – praca i aktywność na zajęciac

GODZINOWE EKWIWALENTY PUNKTÓW ECTS

Godziny realizowane w ramach programu studiów:
wykład 15
ćwiczenia 30
Łączna liczba godzin z udziałem nauczyciela akademickiego 45
Liczba punktów ECTS z udziałem nauczyciela akademickiego 2

Praca własna
Studiowanie literatury 20
Przygotowanie do prac laboratoryjnych 20
Przygotowanie do egzaminu 20

Łączna liczba godzin pracy własnej 60
Liczba punktów ECTS 2

Sumaryczna liczba punktów ECTS dla modułu 4
Required reading list
Podstawowa:
1. Andrew S. Tanenbaum: Systemy operacyjne. Wydanie III. Helion, 2010.
2. William Stallings: Systemy operacyjne. Struktura i zasady budowy. WNT, Warszawa 2006
3. Шеховцов, В. А. Операційні системи [Текст] : підруч. для студ. вищ. навч. закл. / В. А. Шеховцов. - К. : BHV, 2005.
4. Abraham Silberschatz, Peter B. Galvin, Greg Gagne: Podstawy systemów operacyjnych. WNT, Warszawa 2006

Uzupełniająca:
1. M.J. Bach: Budowa systemu operacyjnego Unix, WNT, Warszawa 1994
2. T.W. Ogletree: Windows XP PL. Księga eksperta, Helion, Gliwice 2002
3. U. Vahalia: Jądro systemu Unix, WNT, Warszawa 2000
4. D.A. Solomon: Inside Windows NT, Microsoft Press, 1998
5. B. Goodheart, J. Cox: Sekrety magicznego ogrodu. UNIX® System V Wersja 4 od środka. WNT, Warszawa 2001.
6. U. Vahalia: Jądro systemu UNIX®. Nowe horyzonty. WNT, W-wa, 2001.
7. D. A. Solomon, M. E. Russinovich: Microsoft Windows® 2000 od środka, Helion, 2003.
8. R. Lowe: Kernel Linux. Przewodnik programisty, Helion, 2004
Field of study: Informatics
Course listing in the Schedule of Courses:
Year/semester:Year II - Semester 4
Number of ECTS credits: 4
Form of assessment: Examination