Systemy operacyjne - dr Paweł Pełczyński

Transkrypt

Systemy operacyjne - dr Paweł Pełczyński
Systemy operacyjne
Paweł Pełczyński
[email protected]
1
Program przedmiotu
Wprowadzenie
Struktura systemów operacyjnych
Procesy i Wątki
Komunikacja międzyprocesowa
Szeregowanie procesów
Zarządzanie pamięcią
Systemy plików
Bezpieczeństwo oraz ochrona
2
Literatura
A. Silberschatz, P. B. Galvin, Podstawy systemów
operacyjnych, wydanie III, WNT, Warszawa, 2000.
A. Robbins, N. H. F. Beebe, Programowanie
skryptów powłoki, Helion 2005,
D. P. Bovet, M. Cesati, Linux kernel, Wydawnictwo
RM, Warszawa, 2001.
3
Definicja systemu
operacyjnego
System operacyjny (ang. skrót OS Operating
System)
- oprogramowanie zarządzające sprzętem
komputerowym, tworzące środowisko do
uruchamiania i kontroli zadań użytkownika.
4
Zadania systemu
operacyjnego
planowanie oraz przydział czasu procesora poszczególnym
zadaniom
kontrola i przydział pamięci operacyjnej dla uruchomionych
zadań
dostarczanie mechanizmów do synchronizacji zadań i
komunikacji pomiędzy zadaniami
obsługa sprzętu oraz zapewnienie równolegle wykonywanym
zadaniom jednolitego, wolnego od interferencji dostępu do
sprzęt
zarządzanie systemem plików
ustalanie połączeń sieciowych
5
Cechy charakterystyczne
System operacyjny stanowi swego rodzaju interfejs
pomiędzy komputerem a człowiekiem
Wiele systemów operacyjnych posiada środowiska
graficzne ułatwiające komunikacje maszyny z
użytkownikiem
6
Komponenty systemu
komputerowego
System operacyjny jest warstwą
w schemacie logicznym systemu
komputerowego.
Pozwala aplikacjom użytkownika
na dostęp do sprzętu w
ujednolicony sposób, tworząc
abstrakcję sprzętu: plik, pamięć
wirtualna, proces.
Źródło: http://pl.wikipedia.org
7
Komponenty wieloużytkownikowego
systemu komputerowego
Źródło: http://codex.cs.yale.edu/avi/os-book/os7/slide-dir/index.html
8
Klasyfikacja systemów operacyjnych
Przydział czasu procesora poszczególnym
zadaniom:
- s. o. czasu rzeczywistego (RTOS)
- s. o. czasowo niedeterministyczne
Realizacja przełączania zadań
- s. o. z wywłaszczaniem zadań
- s. o. bez wywłaszczania zadań
Rodzaj sprzętu, na którym są instalowane
- s. o. otwarte
- s. o. wbudowane
9
Zadanie, proces, wątek
Zadanie użtkownika
program do uruchomienia
Proces
egzemplarz wykonywanego programu, posiada unikalny numer, który
go jednoznacznie identyfikuje, PID (ang. process IDentifier), dzięki
czemu możliwe jest rozróżnienie wielu różnych procesów
wykonujących jednocześnie ten sam kod programu, system operacyjny
przydziela procesowi zasoby, np. pamięć i czas procesora
Wątek
jest rodzajem procesu, wykonywanego współbieżnie w obrębie
jednego zadania. Różnica między zwykłym procesem a wątkiem
polega na współdzieleniu przez wszystkie wątki uruchomione w
jednym zadaniu przestrzeni adresowej oraz wszystkich struktur
systemowych
10
Systemy jedno- i wieloprocesowe
oraz jedno- i wieloużytkownikowe
System operacyjny jednoprocesowy
brak zaimplementowanych mechanizmów wieloprocesowości,
brak możliwości uruchamiania różnych aplikacji w tym samym
czasie
System operacyjny wieloprocesowy
zaimplementowane mechanizmy wieloprocesowości, możliwe
korzystanie z kilku aplikacji jednocześnie
System operacyjny jednoużytkownikowy
przeznaczony dla komputerów osobistych, pozwala na
jednoczesną pracę pojedynczego użytkownika
System operacyjny wieloużytkownikowy
zazwyczaj system instalowany w stacji roboczej, z możliwością
podłączenia wielu terminali
11
Budowa systemu operacyjnego
System operacyjny składa się z trzech głównych elementów:
jądro
powłoka
system plików
12
Jądro systemu operacyjnego
(ang. kernel)
Jądro systemu operacyjnego można scharakteryzować
następująco:
Jest to część systemu przebywająca na stałe w pamięci
Wykonuje się w trybie uprzywilejowanym
Zarządza zasobami komputera
Udostępnia interfejs programom użytkownika w postaci wywołań
systemowych.
13
Jądro systemu operacyjnego
Jądro składa się z następujących elementów funkcjonalnych:
planisty czasu procesora, ustalającego które zadanie i jak długo będzie
wykonywane
przełącznika zadań, odpowiedzialnego za przełączanie pomiędzy
uruchomionymi zadaniami
Dodatkowo:
modułu zapewniającego synchronizację i komunikację pomiędzy
zadaniami
modułu obsługi przerwań i zarządzania urządzeniami
modułu obsługi pamięci, zapewniającego przydział i ochronę pamięci
innych funkcji
14
Zarządzanie zasobami w wieloprocesowym
systemie operacyjnym
Aby zapobiec tzw. interferencji procesów organizuje się dostęp do
sprzętu, plików, pamięci itp. poprzez ustanowienie zasobów
systemowych. Zadania użytkownika używają systemu
operacyjnego jako strażnika zarządcy zasobów.
Zadania niskopoziomowe systemu operacyjnego podczas
zarządzania zasobami komputera:
tworzenie deskryptora zasobu,
usuwanie deskryptora zasobu,
realizacja żądania przydziału,
zwolnienie i odzyskiwanie zasobu.
15
Zarządzanie zasobami w wieloprocesowym
systemie operacyjnym
Zadania logiczne zarządzania zasobami:
przydział zasobów,
synchronizacja dostępu do zasobów,
ochrona i autoryzacja dostępu do zasobów,
odzyskiwanie zasobów,
gromadzenie danych o wykorzystaniu zasobów.
16
Rozwój systemów operacyjnych
Początkowo koszt komputera był wysoki w porównaniu z kosztem
pracy ludzi z niego korzystających.
– Główny cel stojący przed systemem, to maksymalizacja wykorzystania
sprzętu (procesora, pamięci masowych, drukarek).
– Stosowano rozwiązania typu: przetwarzanie wsadowe,
wieloprogramowość, spooling.
17
Rozwój systemów operacyjnych
Obecnie koszt komputera jest niski w porównaniu z kosztem pracy
ludzi z niego korzystających.
– Cel stojący przed systemem to stworzenie środowiska zapewniającego
jak największą wygodę i produktywność użytkowników.
– Realizowana jest praca interaktywna, praca interakcyjna z wieloma
programami, graficzne interfejsy użytkownika + wielowątkowość.
18
Historia rozwoju systemów
operacyjnych
Komputery bez systemu operacyjnego
Systemy wsadowe
Systemy wykorzystujące buforowanie i spooling
Wieloprogramowe systemy wsadowe
Systemy z podziałem czasu
Systemy komputerów osobistych
Systemy równoległe i rozproszone
Systemy czasu rzeczywistego
19
Historia rozwoju systemów
operacyjnych – brak systemu
Programista rezerwuje czas komputera
Wczytuje program z czytnika kart perforowanych lub
taśmy magnetycznej
Kompiluje program i uruchamia program
Drukarka drukuje wyniki
Wady:
– Duża część czasu spędzana na przygotowaniu programu do
uruchomienia
– Nieefektywne wykorzystanie czasu pracy systemu
Zalety:
- w przypisanym czasie programista ma pełną kontrolę nad
komputerem
20
Historia rozwoju systemów
operacyjnych – systemy wsadowe
Programista zostawia zadanie operatorowi w postaci kart
perforowanych lub innego nośnika
Grupowanie razem czynności o podobnym charakterze (np.
kompilacja)
Zadania są łączone we wsad (ang. Batch) i wykonywane
Programista po pewnym czasie otrzymuje wyniki
Program monitora (pierwowzór systemu operacyjnego)
– Wczytuje program użytkownika do pamięci
– Przekazuje mu sterowanie
– Po zakończeniu pracy program użytkownika zwraca sterowanie do
monitora
Zaleta:
- lepsze wykorzystanie sprzętu
Wada:
- programista nie ma kontroli nad wykonywaniem zadania
21
Historia rozwoju systemów operacyjnych –
systemy wykorzystujące buforowanie lub
spooling
Buforowanie – jednoczesne wykonywanie obliczeń i operacji
wejścia/wyjścia dla jednego zadania
Spooling (ang: Simulateneous Peripheral Operation On-Line)
- jednoczesne wykonywanie operacji wejścia/wyjścia dla
jednego zadania i obliczeń dla innych zadań
- wykorzystuje szybką pamięć dyskową
- program i dane z czytnika kart są przesyłane na dysk
- program do wykonania wczytany z dysku, wyniki zapisywane na
dysk
- wyniki z dysku przesyłane na urządzenie wyjściowe, np. drukarkę
● Cechy:
- zrównoleglenie operacji wczytywania programu, obliczeń i
wyprowadzania danych
- algorytmy szeregowania (ang. scheduling) zarządzają pulą zadań
na dysku
22
Historia rozwoju systemów operacyjnych –
wieloprogramowe systemy wsadowe
Wiele zadań równocześnie przebywa w pamięci i współdzieli
procesor (wykonuje się współbieżnie)
Cechy:
Dzielenie czasu procesora (wznawianie zadań, synchronizacja
i komunikacja)
Dzielenie pamięci operacyjnej
Dzielenie urządzeń (program kanałowy, system przerwań)
23
Historia rozwoju systemów operacyjnych –
systemy z podziałem czasu
Procesor wykonuje na przemian wiele zadań, przy czym
przełączanie następuje tak często, że użytkownicy mogą
współdziałać z programem podczas jego wykonania
Cechy:
Interakcja użytkownika z systemem komputerowym
System plików dostępnych bezpośrednio (dostęp do
programów i danych)
Wymiana zadania między pamięcią i dyskiem (ang. swapping)
24
Historia rozwoju systemów operacyjnych –
systemy komputerów osobistych
Pierwsze systemy operacyjne komputerów osobistych
np. MS-DOS
Cechy:
brak ochrony plików
brak ochrony pamięci
brak wielozadaniowości
25
Historia rozwoju systemów operacyjnych –
systemy równoległe
Systemy wieloprocesorowe z więcej, niż jednym procesorem
Cechy:
Systemy ściśle powiązane - procesory dzielą pamięć i zegar
zwiększona przepustowość i niezawodność
Symetryczna lub asymetryczna wieloprocesowość
Symetryczna wieloprocesowość: każdy procesor wykonuje
identyczną kopię systemu operacyjnego, wiele procesów
wykonuje się jednocześnie bez spadku wydajności
Asymetryczna wieloprocesowość: każdy procesor wykonuje
przydzielone mu zadanie, procesor główny szereguje i
przydziela pracę procesorom podrzędnym
26
Historia rozwoju systemów operacyjnych –
systemy rozproszone
Rozdzielenie obliczeń pomiędzy wiele komputerów
Cechy:
systemy luźno powiązane - każdy procesor ma lokalną
pamięć
procesory komunikują się ze sobą poprzez sieć
Korzyści: podział zasobów, obciążenia, niezawodność
27
Historia rozwoju systemów operacyjnych –
systemy czasu rzeczywistego
Służą jako sterowniki urządzeń o ściśle określonym
znaczeniu
Cechy:
Ostre wymagania czasowe
Sprzężenie zwrotne
Przykłady:
sterowanie procesem przemysłowym, monitorowanie stanu
zdrowia pacjenta
28

Podobne dokumenty