Systemy operacyjne: Różnice pomiędzy wersjami
m formatowanie i uspójnienie |
m formatowanie i uspójnienie |
||
Linia 45: | Linia 45: | ||
=== Literatura === | === Literatura === | ||
==== Wykład ==== | ==== Wykład ==== | ||
# G. Nutt | # G. Nutt. ''Operating Systems. A Modern Perspective.'' wydanie 2, Addison Wesley Longman, Inc., 2002. | ||
# W. Stallings | # W. Stallings. ''Systemy operacyjne.'' Robomatic, Wrocław, 2004. | ||
# L. Bic, A. C. Shaw | # L. Bic, A. C. Shaw. ''The Logical Design of Operating Systems.'' Prentice-Hall, Inc, 1988. | ||
# A. Silberschatz, J.L. Peterson, G. Gagne | # A. Silberschatz, J.L. Peterson, G. Gagne. ''Podstawy systemów operacyjnych.'' WNT, Warszawa, 2005. | ||
# A. S. Tanenbaum | # A. S. Tanenbaum. ''Modern Operating Systems.'' wydanie 2, Prentice-Hall, Inc, 2001. | ||
# M. J. Bach | # M. J. Bach. ''Budowa systemu operacyjnego Unix®.'' WNT, Warszawa, 1995. | ||
# B. Goodheart, J. Cox | # B. Goodheart, J. Cox. ''Sekrety magicznego ogrodu. UNIX® System V Wersja 4 od środka.'' WNT, Warszawa, 2001. | ||
# U. Vahalia | # U. Vahalia. ''Jądro systemu UNIX®. Nowe horyzonty.'' WNT, Warszawa, 2001. | ||
# D. A. Solomon, M. E. Russinovich | # D. A. Solomon, M. E. Russinovich. ''Microsoft Windows® 2000 od środka.'' Helion, Gliwice, 2003. | ||
# R. Lowe | # R. Lowe. ''Kernel Linux. Przewodnik programisty.'' Helion, Gliwice, 2004. | ||
==== Ćwiczenia — użytkowanie ==== | ==== Ćwiczenia — użytkowanie ==== |
Wersja z 17:42, 11 cze 2006
Forma zajęć
wykład (30 godzin) + ćwiczenia (30 godzin)
Opis
Celem przedmiotu jest przedstawienie roli i zadań systemu operacyjnego w oprogramowaniu komputera oraz omówienie zagadnień realizacji — algorytmów, struktur danych i ich implementacji. Prezentowane są techniki zarządzania podstawowymi zasobami sprzętowymi komputera — procesorem, pamięcią operacyjną oraz wirtualną i urządzeniami wejścia-wyjścia — oraz ich wpływ na efektywność funkcjonowania systemu jako całości. W kontekście zarządzania zasobami wprowadzana jest również koncepcja procesu oraz wątku. Następnie omawiana jest koncepcja pliku oraz realizacja systemu plików — warstwy logicznej i fizycznej — wraz z przykładami konkretnych implementacji (CP/M, FAT-12/16/32, ISO 9660, Unix, NTFS). Osobnym zagadnieniem, integralnie związanym z realizacją systemu operacyjnego, jest współbieżności i synchronizacja w sensie koordynacji przepływu sterowania. W kontekście podstawowych problemów synchronizacji, takich jak wzajemne wykluczania oraz ograniczone buforowanie, omawiane są podejścia do synchronizacji procesów bazujące na współdzielonych zmiennych, podejścia wspierane przez system operacyjny — semafory, oraz podejścia wymagające wsparcia w konstrukcjach programowych języków wysokopoziomowych — monitory, regiony krytyczne i spotkania (ang. rendezvous). Następnie realizowane są zadania, polegające na zastosowaniu omawianych mechanizmów do rozwiązania klasycznych problemów synchronizacji (problem producenta-konsumenta, czytelników i pisarzy, pięciu filozofów, śpiących fryzjerów itp.). Omawiany jest również problem wynikający z dostępu współbieżnych procesów do zasobów — zakleszczenie oraz podejścia do rozwiązywania tego problemu.
Sylabus
Autor
- Dariusz Wawrzyniak
Wymagania wstępne
- Wstęp do programowania
- Umiejętność programowania w języku C
- Elementarna wiedza z zakresu architektur komputerów
Zawartość
Wykład
- Rola i zadania systemu operacyjnego oraz jego umiejscowienie w strukturze oprogramowania systemu komputerowego
- Klasyfikacja systemów operacyjnych
- Ogólna zasada działania systemu operacyjnego — sposób przekazywania sterowania do programu jądra
- Koncepcja procesu i zasobu oraz ich opis i identyfikacja
- Zarządzanie procesorem - szeregowanie zadań
- Zarządzanie pamięcią operacyjną — podział pamięci, przydział, zjawisko fragmentacji, segmentacja i stronicowanie
- Realizacja pamięci wirtualnej — obsługa błędu strony, problem wymiany stron i wznawiania rozkazów, implementacja algorytmów wymiany
- Zarządzanie urządzeniami wejścia-wyjścia — podsystem wejścia-wyjścia, sposoby interakcji jednostki centralnej z urządzeniami wejścia-wyjścia, buforowanie i spooling
- Urządzenia dyskowe — funkcjonowanie i parametry dysku, algorytmy sterowania ruchem głowic, macierze dyskowe
- System plików — pojęcie pliku, jego struktury i typu, organizacja logiczna systemu plików, organizacja fizyczna systemu plików, przykłady implementacji
- Ochrona zasobów — domeny ochrony, macierz dostępów i jej implementacja
- Współbieżność — instrukcje atomowe, przeplot i istota synchronizacji
- Poprawność programów współbieżnych — bezpieczeństwo i żywotność
- Wzajemne wykluczanie — algorytmy Dekkera, Dijkstry, Petersona, Lamporta
- Instrukcje atomowe test&set oraz exchange
- Semafory — klasyfikacja i implementacja
- Monitory
- Regiony krytyczne
- Spotkania
- Zakleszczenie — warunki konieczne, zapobieganie, unikanie, detekcja i usuwanie.
Ćwiczenia
- Użytkowanie systemu operacyjnego Unix: poruszanie się w systemie plików, obsługa plików i katalogów, obsługa procesów, potoki i filtry, skrypty powłoki
- Programowanie z wykorzystaniem funkcji systemowych jądra Unixa: tworzenie i dostęp do plików, tworzenie i obsługa procesów, uruchamianie programów, wątki i ich synchronizacja, sygnały, komunikacja strumieniowa za pośrednictwem łączy, mechanizmy grupy IPC
Literatura
Wykład
- G. Nutt. Operating Systems. A Modern Perspective. wydanie 2, Addison Wesley Longman, Inc., 2002.
- W. Stallings. Systemy operacyjne. Robomatic, Wrocław, 2004.
- L. Bic, A. C. Shaw. The Logical Design of Operating Systems. Prentice-Hall, Inc, 1988.
- A. Silberschatz, J.L. Peterson, G. Gagne. Podstawy systemów operacyjnych. WNT, Warszawa, 2005.
- A. S. Tanenbaum. Modern Operating Systems. wydanie 2, Prentice-Hall, Inc, 2001.
- M. J. Bach. Budowa systemu operacyjnego Unix®. WNT, Warszawa, 1995.
- B. Goodheart, J. Cox. Sekrety magicznego ogrodu. UNIX® System V Wersja 4 od środka. WNT, Warszawa, 2001.
- U. Vahalia. Jądro systemu UNIX®. Nowe horyzonty. WNT, Warszawa, 2001.
- D. A. Solomon, M. E. Russinovich. Microsoft Windows® 2000 od środka. Helion, Gliwice, 2003.
- R. Lowe. Kernel Linux. Przewodnik programisty. Helion, Gliwice, 2004.
Ćwiczenia — użytkowanie
- C. Sobaniec. System operacyjny Linux — przewodnik użytkownika. Nakom, Poznań, 2002.
- J. Marczyński. UNIX użytkowanie i administrowanie. wydanie 2, Helion, Gliwice, 2000.
- P. Silvester. System operacyjny Unix™. WNT, Warszawa, 1990.
- Z. Królikowski, M. Sajkowski. UNIX dla początkujących i zaawansowanych. Nakom, Poznań, 1996.
Ćwiczenia — programowanie
- W. R. Stevens. Programowania w środowisku systemu UNIX. WNT, Warszawa, 2002.
- J. S. Gray. Komunikacja między procesami w Unixie. ReadMe, Warszawa, 1998.
- M. J. Rochkind. Programowanie w systemie Unix dla zaawansowanych. WNT, Warszawa, 1993.
- Z. Guźlewski, T. Weiss. Programowanie współbieżne i rozproszone w przykładach i zadaniach. WNT, Warszawa, 1993.
- R. W. Stevens. Programowanie zastosowań sieciowych w systemie Unix. WNT, Warszawa, 1995.
- M. Gabassi, B. Dupouy. Przetwarzanie rozproszone w systemie Unix. Lupus, Warszawa, 1995.