Systemy operacyjne

RSS

Cel przedmiotu

Zapoznanie z budowa˛ i zasada˛działania systemu operacyjnego, jego elementami składowymi oraz algorytmami ich działania oraz z programowaniem podstawowych mechanizmów systemowych.

Program wykładu

1. Rodzaje i struktura systemów operacyjnych. Systemy monolityczne i warstwowe. Mikrojądro. 2. Budowa procesu. Stany procesu. Tworzenie procesów. Przodek i potomek. Wątki. Budowa wątku. Wątki poziomu użytkownika. Wątki jądra. Procesy lekkie. Modele wielowątkowości. Algorytmy planowania przydziału procesora. 3. Synchronizacja. Sekcja krytyczna. Rozwiązanie problemu sekcji krytycznej. Semafory. Monitory. Problemy czytelników i pisarzy, producentów i konsumentów, filozofów. 4. Zakleszczenia. Warunki zajścia. Graf przydziału zasobów. Zapobieganie i unikanie. Stan i ciąg bezpieczny. Algorytm bankiera. 5. Komunikacja między procesami. 6. Zarządzanie pamięcią. Stronicowanie i segmentacja. 7. Pamięć wirtualna. Wymiana. Algorytmy wymiany stron. 8. Biblioteki 9. System plików. Budowa plików i katalogów. Przydział miejsca na dysku. 10. Zarządzanie wejściem/wyjściem. Sterowniki urządzeń. Szeregowanie operacji dyskowych. RAID. 11.Bezpieczeństwo. Zagrożenia bezpiecze´nstwa. Ochrona. Włamywacze. Szkodliwe programy. 12 Systemy: Unix, Linux, Windows.

Charakterystyka pozostałych zajęć

W ramach laboratorium należy wykonać zastaw ćwiczeń laboratoryjnych poświęconych użytkowaniu wybranych mechanizmów systemowych oraz wykonać projekt sprawdzający umiejętność zastosowania nabytej wiedzy. Ćwiczenia obejmują techniki optymalizacji kodu, użytkowanie make, gdb, gprof, strace, zarządzanie pamięcią, tworzenie bibliotek statycznych i dynamicznych, pomiar czasu, operacje na plikach, tworzenie procesów, sygnały, potoki nazwane i nienazwane, kolejki komunikatów, semafory i pamięć wspólna˛, tworzenie i zarządzanie wątkami i ich synchronizacje˛, sokety. Ponadto należy zaliczyć kolokwia z tematyki zająć.

Bibliografia

1. Abraham Silberschatz, Peter B. Galvin, Podstawy systemów operacyjnych, WNT, 2005 (wyd. 5 zmienione)
2. William Stallings, Systemy operacyjne. Struktura i zasady budowy, Wydawnictwo Naukowe PWN SA, 2006
3. W. Richard Stevens, Programowanie w środowisku systemu Unix, WNT, 2002
4. Mark Mitchell, Jeffrey Oldham, Alex Samuel, Linux. Programowanie dla zaawansowanych, Wydawnictwo ReadMe, 2002
5. W. Richard Stevens, Stephen A. Rago, Advanced programming in the Unix Environment, Second Edition, Addison Wesley Publishing Company, 2005

Wszelkie prawa zastrzeżone © 2010 Katedra Informatyki   |   Akademia Górniczno-Hutnicza   |   Realizacja Creative Bastards