Systemy operacyjne wykład – dr Marcin Czarnota laboratorium – mgr Radosław Maj
Plan wykładów 1. 2. 3. 4.
5. 6. 7. 8.
Wprowadzenie, Procesy, wątki i zasoby, Planowanie przydziału procesora, Zarządzanie pamięcią operacyjną, pamięć wirtualna, Urządzenia wejścia – wyjścia, System plików, Współbieżność i synchronizacja procesów, Zakleszczanie.
Systemy operacyjne
Wykład 1
2/31
Literatura 1.
2. 3.
4.
A. Silberschatz, P.B. Galvin, G. Gagne, Podstawy systemów operacyjnych, wydanie szóste, WNT 2005; wydanie siódme, WNT 2006, A. N. Tanenbaum, Modern operating systems, third edition, Pearson 2008, W. Stallings, Systemy operacyjne. Robomatic, Wrocław 2004, C. Sobaniec, System operacyjny Linux — przewodnik użytkownika. Nakom, Poznań 2002. http://wazniak.mimuw.edu.pl/index.php
http://th-www.if.uj.edu.pl/~placzek/dydaktyka/SO/wyklady/ Systemy operacyjne
Wykład 1
3/31
Wprowadzenie
System operacyjny: • definicje, • rola i zadania,
Klasyfikacja systemów operacyjnych, Zasada działania systemu operacyjnego.
Systemy operacyjne
Wykład 1
4/31
Definicje systemu operacyjnego System operacyjny jest zbiorem ręcznych i automatycznych procedur, które pozwalają grupie osób na efektywne współdzielenie urządzeń maszyny cyfrowej. Per Brinch Hansen
Systemy operacyjne
Wykład 1
5/31
Definicje systemu operacyjnego System operacyjny (nadzorczy, nadrzędny, sterujący) jest to zorganizowany zespół programów, które pośredniczą między sprzętem a użytkownikami, dostarczając użytkownikom zestawu środków ułatwiających projektowanie, kodowanie, uruchamianie i eksploatację programów oraz w tym samym czasie sterują przydziałem zasobów dla zapewnienia efektywnego działania. Alan Shaw
Systemy operacyjne
Wykład 1
6/31
Definicje systemu operacyjnego System operacyjny jest programem, który działa jako pośrednik między użytkownikiem komputera a sprzętem komputerowym. Zadaniem systemu operacyjnego jest tworzenie środowiska, w którym użytkownik może wykonywać programy w sposób wygodny i wydajny. Abraham Silberschatz
Systemy operacyjne
Wykład 1
7/31
Definicje systemu operacyjnego System operacyjny jest warstwą oprogramowania operującą bezpośrednio na sprzęcie, której celem jest zarządzanie zasobami systemu komputerowego i stworzenie użytkownikowi środowiska łatwiejszego do zrozumienia i wykorzystania. Andrew Tanenbaum
Systemy operacyjne
Wykład 1
8/31
Miejsce systemu operacyjnego w architekturze systemu komputerowego Użytkownicy
Programy użytkowe kompilator
System operacyjny Baza
Edytor tekstu
danych System komputerowy
Systemy operacyjne
Wykład 1
9/31
Architektura systemu komputerowego
Systemy operacyjne
Wykład 1
10/31
Struktura systemu operacyjnego interpreter poleceń
programy systemowe
jądro systemu operacyjnego
sprzęt
Systemy operacyjne
Wykład 1
11/31
Zadania systemu operacyjnego • Definicja interfejsu użytkownika, • Udostępnianie systemu plików, • Udostępnianie środowiska do wykonywania programów użytkownika, – mechanizm ładowania i uruchamiania programów, – mechanizmy synchronizacji i komunikacji procesów, • Sterowanie urządzeniami wejścia-wyjścia, • Obsługa podstawowej klasy błędów.
Systemy operacyjne
Wykład 1
12/31
Zarządzanie zasobami systemu komputerowego • • • • •
Przydział zasobów, Planowanie dostępu do zasobów, Ochrona i autoryzacja dostępu do zasobów, Odzyskiwanie zasobów, Rozliczanie — gromadzenie danych o wykorzystaniu zasobów.
Systemy operacyjne
Wykład 1
13/31
Zasoby zarządzane przez system operacyjny • Procesor — przydział czasu procesora, • Pamięć: – alokacja przestrzeni adresowej dla procesów, – ochrona i transformacja adresów, • Urządzenia wejścia-wyjścia: – udostępnianie i sterowanie urządzeniami pamięci masowej, – alokacja przestrzeni dyskowej, – udostępnianie i sterownie drukarkami, skanerami itp., • Informacja (system plików): – organizacja i udostępnianie informacji, – ochrona i autoryzacja dostępu do informacji. Systemy operacyjne
Wykład 1
14/31
Podział systemów operacyjnych
ze względu na sposób przetwarzania, ze względu na liczbę wykonywanych programów, ze względu na liczbę użytkowników, inne.
Systemy operacyjne
Wykład 1
15/31
Sposób przetwarzania • Systemy przetwarzania bezpośredniego (on-line processing systems) — systemy interakcyjne – występuje bezpośrednia interakcja pomiędzy użytkownikiem a systemem, – wykonywanie zadania użytkownika rozpoczyna się zaraz po przedłożeniu. • Systemy przetwarzania pośredniego (off-line processing systems) — systemy wsadowe – występuje znacząca zwłoka czasowa między przedłożeniem a rozpoczęciem wykonywania zadania, – niemożliwa jest ingerencja użytkownika w wykonywanie zadania. Systemy operacyjne
Wykład 1
16/31
Liczba wykonywanych programów • Systemy jednozadaniowe — niedopuszczalne jest rozpoczęcie wykonywania następnego zadania użytkownika przed zakończeniem poprzedniego. • Systemy wielozadaniowe — dopuszczalne jest istnienie jednocześnie wielu zadań (procesów), którym zgodnie z pewną strategią przydzielany jest procesor.
Systemy operacyjne
Wykład 1
17/31
Liczba użytkowników • Systemy dla jednego użytkownika — zasoby przeznaczone są dla jednego użytkownika (np. w przypadku komputerów osobistych), nie ma mechanizmów autoryzacji, a mechanizmy ochrony informacji są ograniczone. • Systemy wielodostępne — wielu użytkowników może korzystać ze zasobów systemu komputerowego, a system operacyjny gwarantuje ich ochronę przed nieupoważnioną ingerencją.
Systemy operacyjne
Wykład 1
18/31
Inne systemy operacyjne • Systemy czasu rzeczywistego (real-time systems) — zorientowane na przetwarzanie z uwzględnieniem ostrych kryteriów czasowych. • Systemy sieciowe i rozproszone (network and distributed systems) — umożliwiają zarządzanie zbiorem rozproszonych jednostek przetwarzających, czyli zbiorem jednostek (komputerów), które są połączone siecią komputerową i nie współdzielą fizycznie zasobów. • Systemy operacyjne komputerów naręcznych — tworzone dla rozwiązań typu PDA, czy telefonów komórkowych, podlegają istotnym ograniczeniom zasobowym (wolny procesor, mała pamięć, niewielki ekran). Systemy operacyjne
Wykład 1
19/31
Zasada działania systemu operacyjnego ujęcie wielowarstwowe poziom języka zorientowanego problemowo
poziom asemblera
poziom systemu operacyjnego poziom maszynowy mikroprocesora poziom mikroarchitektury Systemy operacyjne
Wykład 1
20/31
Architektura von Neumanna • Zarówno program (kody rozkazów), jak i dane (argumenty rozkazu, operandy) znajdują się w pamięci operacyjnej. • Rozkazy wykonywane są w kolejności, w jakiej zostały umieszczone w programie (i tym samym w pamięci), a zmiana tej kolejności może nastąpić w wyniku wykonania specjalnego rozkazu, np. skoku, wywołania podprogramu, powrotu z podprogramu itp. • W celu pobrania rozkazu z pamięci procesor wystawia odpowiedni adres na magistrali adresowej.
Systemy operacyjne
Wykład 1
21/31
Cykl rozkazowy • Cykl rozkazowy — cykl działań procesora i jego interakcji z pamięcią operacyjną związanych z realizacją rozkazu. • Cykl rozkazowy składa się z faz, zwanych cyklami maszynowymi. • Typowe fazy cyklu rozkazowego: – pobranie kodu rozkazu — odczyt pamięci, – pobranie operandu — odczyt pamięci, – składowanie operandu — zapis pamięci.
Systemy operacyjne
Wykład 1
22/31
Cykl rozkazowy – pobranie rozkazu pamięć / IO
pobranie kodu rozkazu
CPU
wystawienie adresu kodu rozkazu
pobranie operandu
dekodowanie operacji
faza pobrania argumentu
faza pobrania rozkazu
Systemy operacyjne
wystawienie adresu operandu
Wykład 1
łańcuch 23/31
Cykl rozkazowy – wykonanie rozkazu zapis operandu
wykonanie operacji
wystawienie adresu operandu
faza przerwania
sprawdzenie zgłoszenia przerwań brak przerwań
faza składowania wyniku Systemy operacyjne
przerwanie
Wykład 1
24/31
Podstawy działania systemu operacyjnego • Odwołania do jądra systemu przez system przerwań lub specjalne instrukcje (przerwanie programowe), • Sprzętowa ochrona pamięci, • Dualny tryb pracy — tryb użytkownika (user mode) i tryb systemowy (tryb jądra, system mode), • Wyróżnienie instrukcji uprzywilejowanych, wykonywanych tylko w trybie systemowym, • Uprzywilejowanie instrukcji wejścia-wyjścia, • Przerwanie zegarowe.
Systemy operacyjne
Wykład 1
25/31
Przerwania i ich obsługa Przerwanie jest reakcją na asynchroniczne zdarzenie, polegającą na automatycznym zapamiętaniu bieżącego stanu procesora w celu późniejszego odtworzenia oraz przekazaniu sterowania do ustalonej procedury obsługi przerwania. Obsługa przerwań (interrupt handling): • System operacyjny zachowuje stan CPU: - stan licznika programu, - stan innych rejestrów. • Określa typ przerwania: - odpytywanie (polling), - wektorowe (vectored interrupt system). • Dla każdego typu przerwań oddzielne procedury. Systemy operacyjne
Wykład 1
26/31
Typy przerwań • Przerwania zewnętrzne — od urządzeń zewnętrznych, • Przerwania programowe — wykonanie specjalnej instrukcji, • Przerwania diagnostyczne — pułapki, błędy programowe i sprzętowe.
Systemy operacyjne
Wykład 1
27/31
Przerwania cd. przerwanie zewnętrzne
ujęcie wielowarstwowe
przerwanie programowe
poziom systemu operacyjnego
poziom maszynowy procesora poziom mikroarchitektury przerwanie diagnostyczne Systemy operacyjne
Wykład 1
28/31
Przerwania zegarowe
programy użytkownika
• Przerwanie zegarowe generowane jest przez czasomierz (timer) po wyznaczonym okresie czasu. • Obsługa przerwania zegarowego oznacza przekazanie sterowania do jądra systemu operacyjnego, umożliwiając w ten sposób wykonanie pewnych zdań okresowych. przerwanie zagarowe program 2 program 1 program jądra Systemy operacyjne
czas Wykład 1
29/31
Ochrona pamięci adres rejestr bazowy ≥