Kierunek: Informatyka Przedmiot: Systemy operacyjne Operating Systems Czas trwania: semestr 4 Przedmiot: kierunkowy Język wykładowy: polski Rodzaj zajęć Prowadzący Liczba godzin Tryb zaliczenia Wykład dr hab. Franciszek Seredyński 30 egzamin Laboratorium mgr Zbigniew Młynarski mgr Piotr Świtalski 30 zaliczenie na ocenę Punkty ECTS 6 POZIOM Warunkiem uczestnictwa w zajęciach jest wcześniejsze uzyskanie zaliczenia z następujących przedmiotów: Architektura Systemów Komputerowych Podstawy Programowania lub znajomość literatury obowiązującej w tych przedmiotach. ZAŁOŻENIA I CELE Celem wykładu jest przedstawienie ogólnych zasad budowy i funkcjonowania współczesnych systemów operacyjnych, a także zapoznanie sie z najbardziej popularnymi systemami operacyjnymi. Rozwiniętymi celami szczegółowymi są: Struktura systemów komputerowych i operacyjnych, Procesy i wątki oraz zarządzanie nimi, Synchronizacja procesów, Zarządzanie pamięcią, Pamięć wirtualna, System plików. Celem laboratorium jest poszerzenie wiadomości nabytych w ramach wykładu oraz nabycie praktycznych umiejętności w zakresie obsługi i konfiguracji systemów operacyjnych. Cele szczegółowe laboratorium obejmują następujące umiejętności praktyczne: Posługiwanie się interpreterem poleceń w systemie Linux, 95
Wykonywanie operacji na obiektach systemu plików, Zarządzanie procesami, Pisanie i uruchamianie skryptów powłoki, Wykorzystywanie programów narzędziowych systemu Linux WYKŁAD 1. Wprowadzenie Podstawowe definicje Ewolucja systemów operacyjnych 2. Struktury systemów komputerowych Ogólna architektura systemu Struktura wejścia-wyjścia Struktura i hierarchia pamieci Ochrona sprzętowa 3. Struktury systemów operacyjnych (1) Składowe systemu Usługi systemu operacyjnego Funkcje systemowe Programy systemowe 4. Struktury systemów operacyjnych (2) Struktura systemu Maszyny wirtualne Projektowanie i implementacja systemu Generowanie systemu 5. Procesy Koncepcja procesu Stan procesu Blok kontrolny procesu Planowanie procesów 6. Wątki Struktura watku Watki w systemach Solaris 2, Mach 2, Windows NT Komunikacja miedzyprocesowa 7. Planowanie przydziału procesora Pojęcia podstawowe Cykl faz procesora i wejścia-wyjścia 96
Planista i planowanie Kryteria planowania 8. Algorytmy szeregowania Planowanie metoda FCFS Planowanie metodą najpierw najkrótsze zadanie Planowanie priorytetowe Planowanie rotacyjne Ocena algorytmów 9. Zarządzanie pamiecią Wiązanie adresów, ładowanie i konsolidacja Logiczna i fizyczna przestrzeń adresowa Wymiana Przydział ciągły 10. Zarządzanie pamiecią (2) Stronicowanie Segmentacja Segmentacja ze stronicowaniem 11. Pamięc wirtualna Koncepcja pamięci wirtualnej Stronicowanie na zadanie Zastępowanie stron 12. Algorytmy zastępowania stron Algorytm FIFO Algorytm optymalny Algorytm LRU Szamotanie 13. ISynchronizowanie procesów Zagadnienie producenta-konsumenta Problem sekcji krytycznej Semafory i monitory Klasyczne problemy synchronizacji i ich rozwiązania 14. Implementacja systemu plików Budowa systemu plików Metody przydziału miejsca na dysku 15. Implementacja systemu plików (2) 97
Implementacja katalogu Metody dostępu do katalogów ZALICZENIE WYKŁADU Przedmiot kończy się egzaminem, w którym można uzyskać maksymalnie 100 punktów. Ocena końcowa z egzaminu, w zależności od liczby uzyskanych punktów może być następująca (w nawiasach ocena wg skali ECTS): Zakres Ocena Zakres Ocena 0-50 pkt. ndst (F) 71-80 pkt. db (C) 51-60 pkt. dst (E) 81-90 pkt. db+ (B) 61-70 pkt. dst+ (D) 91-100 pkt. bdb (A) LABORATORIUM 1. Omówienie zasad realizacji ćwiczen laboratoryjnych. Model warstwowy systemu operacyjnego (SO), jadro SO, powłoka. wstęp do systemu operacyjnego wprowadzenie do interpretatorów powłoki omówienie pojęcia jądra systemu operacyjnego podstawowe polecenia powłoki edytor vi 2. System plików. Struktura katalogowa systemu Linux. Prawa dostępu do plików / katalogów. rodzaje systemów plików struktura katalogowa systemu Linux montowanie urządzeń operacje na plikach i katalogach: tworzenie, kopiowanie zmiana praw dostepu do plików / katalogów 3. Procesy i shell. Polecenia zwiazane z procesami w systemie operacyjnym. Polecenia wbudowane w powłokę i zewnętrzne. wyjaśnienie pojęcia proces, identyfikator procesu przedstawienie działania procesów w powłoce bash proces w tle, zmiana stanu procesu status wyjścia wykonania polecenia dowiązania miękkie i twarde 4. Polecenia filtrujace strumień danych. Porównywanie zawartości plików. Używanie skrótów w poleceniach. polecenia filtrujace grep, head, tail, clear, wc porównywanie zawartości plików 98
kopiowanie katalogów używanie skrótowych nazw scieżek 5. Operacje na plikach, problem nadpisywania plików. Przeszukiwanie struktury katalogowo-plikowej. problem nadpisywania plików zmienna noclobber i noglob polecenie tee potoki przeszukiwanie katalogów i plików przy pomocy polecenia find filtry i metaznaki 6. Cytowania, proste skrypty. Polecenia tr i mail metaznaki używane podczas cytowania pierwszy skrypt powłoki bash, zmiana praw, uruchomienie polecenie tr obsługa poczty elektronicznej za pomoca polecenia mail 7. Zmienne środowiskowe i definiowane przez użytkownika. Polecenia umask, set, env, unset, export, stty, alias, unalias. zmienne środowiskowe systemu operacyjnego zmienne definiowane przez użytkownika modyfikacja zmiennych i zakres zmiennych edycja parametrów początkowych powłoki zmienne jako skrótowe nazwy scieżek 8. Modyfikatory zmiennych, zakres zmiennych, zmienne specjalne i pozycyjne. Funkcje. zasady używania modyfikatorów zmiennych zmienne specjalne i pozycyjne zmienne tylko do odczytu polecenie eval funkcje 9. Deskryptory plików, standardowe wejście, wyjście i błąd. Dokument odtąd - dotąd. Arytmetyka stałoprzecinkowa. wyjaśnienie pojęcia deskryptora plików przykłady działania deskryptorów ćwiczenia z deskryptorami plików dokument odtąd - dotąd polecenia exec, read, expr 10. Wyrażenia warunkowe i testowanie plików. Struktury if...then...fi, if/else polecenie test, exit struktury warunku if...then...fi, if/else ćwiczenia z użyciem powyższych struktur 99
11. Struktura warunkowa if/elif/else. Instrukcja case. struktura warunkowa if/elif/else instrukcja case i jej użycie ćwiczenia z użyciem powyższych struktur 12. Struktury pętli for, while oraz until. struktura pętli for i jej użycie struktury pętli while oraz until i ich użycie ćwiczenia z użyciem powyższych struktur 13. Polecenia shift, brake, true, continue, line, sort. argumenty skryptu a polecenie shift polecenia sterujące skryptem skierowanie wyjścia z pętli do pliku, polecenie line skierowanie wyjścia z pętli do polecenia, polecenie sort 14. Język przetwarzania tekstów awk składnia polecenia awk mechanizm działania awk wybieranie wierszy do przetwarzania - wzorce wzorce z wyrażeniami regularnymi 15. Program zarządzajacy make zagadnienie wielu plików zródłowych składnia plików makefile opcje i parametry polecenia makefile ZALICZENIE LABORATORIUM Zajęcia laboratoryjne są obowiązkowe. Trzy nieusprawiedliwione nieobecności na zajęciach wykluczają możliwość ich zaliczenia. Wszystkie zajęcia laboratoryjne (za wyjątkiem pierwszego) są oceniane. Zaliczenie zajęć laboratoryjnych następuje na podstawie ocen cząstkowych uzyskanych za poszczególne zajęcia oraz obronionego indywidualnego projektu. W przypadku nieobecności studenta na laboratorium sposób ich odpracowania określa osoba odpowiedzialna za kurs i jest on podany na pierwszych zajęciach. Na każdych ćwiczeniach prowadzący podaje zakres zadań dla studentów do przygotowania na następne zajęcia (o charakterze praktycznym lub teoretycznym) i wytyczne do ich realizacji. Przygotowanie do zajęć oraz realizacja zadań każdego ćwiczenia są oceniane w skali od 0 do 10 pkt. Łącznie student za 14 zajęć może uzyskać od 0 do 140 pkt. Łączna ocena punktowa zajęć laboratoryjnych zawiera się w granicach 0-140 pkt. Ocena końcowa zajęć zależy od sumy uzyskanych punktów i wynosi (w nawiasach ocena wg skali ECTS): 100
Zakres Ocena Zakres Ocena 0-70 pkt. ndst (F) 99-112 pkt. db (C) 71-84 pkt. dst (E) 113-126 pkt. db+ (B) 85-98 pkt. dst+ (D) 127-140 pkt. bdb (A) LITERATURA 1. A. Silberschatz, P. B. Galvin, Podstawy systemów operacyjnych, WNT, 2000 2. E. Quigley, UNIX Shells by Examples, Prentice Hall PTR, 1997 3. D. Gilly, UNIX in a Nutschell, O Reilly, 1998 4. S. Strobel, T. Uhl, Linux, WNT, 1997 5. W. Stallings, Operating Systems, Prentice Hall, 1995 6. M. J. Rochkind, Programowanie w systemie UNIX dla zaawansowanych, WNT, Warszawa, 1993 7. M. Kaniewski, K. Wieremejczyk, Po Prostu UNIX, Mikom, 1992 101