Pojęcie systemu
operacyjnego
Co będziesz umiał
definicje SO, jądra, mikrojądra,
systemu komputerowego, maszyny
wirtualnej,
rodzaje zasobów komputerowych
funkcje SO
struktury SO
Ewolucja systemów operacyjnych
System operacyjny
(Silberschatz i inni) System operacyjny jest
programem, który działa jako pośrednik
między użytkownikiem komputera, a
sprzętem komputerowym
(Deitel) System operacyjny to zespół
programów, które samodzielnie umożliwiają
wszechstronne wykorzystanie sprzętu
komputerowego
System operacyjny
(Milenković) System operacyjny to
zorganizowany zbiór programowych
rozszerzeń sprzętu, zawierający
procedury kontrolne dla pracy
komputera i dostarczający otoczenia
dla wykonywanych programów
System operacyjny
(Błażewicz i inni) System operacyjny
to zbiór programów pośredniczących
między sprzętem a użytkownikiem,
dokonujących dynamicznego
rozdziału dostępnych zasobów
pomiędzy istniejące procesy w sposób
zapewniający ich poprawne oraz
efektywne wykonanie
System operacyjny
Systemem operacyjnym nazywamy
zorganizowany zbiór programów
pośredniczących między sprzętem
komputerowym a jego użytkownikiem,
który dokonuje dynamicznego
rozdziału dostępnych zasobów
pomiędzy istniejące procesy w sposób
zapewniający ich poprawne oraz
efektywne, w sensie przyjętego
kryterium, wykorzystanie.
System komputerowy
System komputerowy to sprzęt
komputerowy oraz system operacyjny
+ dodatkowe oprogramowanie,
traktowane jako całość służąca do
ściśle określonych celów.
np.: komputerowy system obsługi
transakcji bankowych
Funkcje systemu operacyjnego
Główne grupy funkcji systemu
operacyjnego obejmują:
nadzorowanie uruchamianych
programów użytkownika,
kontrolę zapisu, odczytu oraz innych
operacji na danych,
zarządzanie dostępnymi zasobami, ze
szczególnym uwzględnieniem procesora
(procesorów).
Funkcje systemu operacyjnego
Bardziej szczegółowy podział funkcji SO:
sterowanie procesami:
tworzenie nowych procesów
zabijanie istniejących procesów
przydział istniejących procesów do
procesora/procesorów
przełączanie procesów
synchronizacja procesów, komunikacja między
procesami
Funkcje systemu operacyjnego
Bardziej szczegółowy podział funkcji SO:
zarządzanie pamięcią
przydział przestrzeni adresowej do procesów
zarządzanie stronami (segmentami) pamięci
wirtualnej
obsługa przydziału bloków pamięci zewnętrznej
zrzucanie obrazu procesów do pamięci
zewnętrznej
Funkcje systemu operacyjnego
Bardziej szczegółowy podział funkcji
SO:
przetwarzanie plików,
obsługę operacji I/O,
buforowanie, obsługa przerwań
przydział urządzeń I/O do procesów
współdzielenie i ochronę danych,
specyfikację interfejsu użytkownika.
Skład oprogramowania typowego
SO
polecenia do zarządzania pamięcią,
polecenia do zarządzania procesami,
polecenia do zarządzania plikami,
polecenia ogólnego przeznaczenia
(formatowanie dysków, diagnostyka
systemu itp.),
Skład oprogramowania typowego
SO
interpretery i kompilatory języków
programowania,
programy wspomagające tworzenie
oprogramowania,
narzędzia do administracji systemem
(zakładanie kont użytkowników,
archiwizacja danych itp.),
inne (gry, obsługa grafiki, muzyki itp.)
Zasoby w SO
Zasobem w systemie operacyjnym
nazywamy każdy rodzaj sprzętu
komputerowego lub danych,
niezbędny do prawidłowego
rozpoczęcia, wykonywania oraz
zakończenia istniejących procesów.
Główne zasoby w SO
procesor (procesory),
pamięć (operacyjna, zewnętrzna),
urządzenia wejścia/wyjścia,
dane.
Zasoby w SO
Zasób jest nieodnawialny, jeśli jest
zużywany przez wykorzystujący go proces.
Zasób jest nieprzywłaszczalny, jeśli nie
jest możliwe zawieszenie jego
wykorzystywania przez aktywny proces.
Zasób jest niepodzielny, jeśli
wykorzystywać go może w danej chwili
tylko jeden proces.
Przykłady zasobów w SO
zasoby odnawialne – pamięć operacyjna,
urządzenia I/O
zasoby nieodnawialne – energia
elektryczna, pamięć dyskowa
zasoby nieprzywłaszczalne – urządzenia I/O
zasoby przywłaszczalne – procesor, pamięć
operacyjna
zasoby niepodzielne – urządzenia I/O
(drukarki, dyski)
zasoby podzielne – pamięć operacyjna
SO jako warstwa maszyny
wirtualnej
Na system operacyjny można także patrzeć
jak na jedną z warstw tzw. maszyny
wirtualnej.
Maszyna wirtualna to abstrakcyjny model
komputera o innych własnościach aniżeli
maszyna fizyczna; składają się na nią
rozwiązania dotyczące obsługi urządzeń I/O,
pamięci operacyjnej (wirtualnej), systemu
plików, sterowania programami (procesami)
oraz przyjęte metody ochrony danych.
Warstwy maszyny wirtualnej
warstwa użytkownika
programy użytkownika
warstwa systemu operacyjnego
powłoka (interpreter poleceń)
w. oprogramowania systemowego
warstwa sprzętu
język maszynowy
mikroprogramowanie
sprzęt
SO jako warstwa maszyny
wirtualnej
Na poziomie każdej z warstw istnieje
odrębny język, za pomocą którego
użytkownik porozumiewa się z
maszyną wirtualną
Przykład: na poziomie powłoki
językiem są polecenia powłoki, na
poziomie sprzętu – ciągi sygnałów
elektrycznych o odpowiednich
parametrach itp.
SO jako warstwa maszyny
wirtualnej
W SO lat 60-tych wprowadzono języki
sterowania zadaniami (JCL, ang. Job
Command Language), opisujące
zadania (programy) na potrzeby SO
Języki JCL były skomplikowane,
niechętnie stosowane przez
użytkowników i stosunkowo szybko
zarzucone.
Przykład języka JCL
Przykład 1 (JCL systemu GEORGE 3 dla ICL 1900)
JOB FORTRAN, 77101, PBR
IN MT (PROGRAM TAPE)
LOAD #XFAM
IN/O (SOURCE)
ENTER 1
AT DELETED LO, GOTO 8
END
8 LOAD #
IN/O (DATA)
ENTER
AT HALTED
Miary efektywności pracy SO
Znane są różne kryteria efektywności pracy
SO, do najczęściej wykorzystywanych
należą:
średni czas odpowiedzi (SO interaktywne),
niewykorzystany czas pracy procesora
(utylizacja),
średni czas przepływu, tj. średni czas, jaki
upływa między rozpoczęciem procesu, a jego
zakończeniem (SO wsadowe)
Struktury SO
Wyróżniamy następujące rodzaje struktur SO:
monolityczna (jednolita) - system operacyjny jest zbiorem
usług, z których każda może wywołać inną;
warstwowa - system operacyjny jest podzielony na warstwy
odpowiadające za poszczególne funkcje systemu; główne
warstwy to w. jądra, w. powłoki, w. programów użytkownika
Odmianą budowy warstwowej jest tzw. budowa
pierścieniowa
W SO warstwowych (pierścieniowych) najbardziej
wewnętrzną warstwą jest jądro systemu.
Jądro SO
Jądro systemu operacyjnego to
najbardziej wewnętrzna warstwa
systemu, odpowiedzialna za
szeregowanie procesów, komunikację
międzyprocesową oraz zarządzanie
pamięcią.
Funkcje jądra
zarządzanie procesami
zarządzanie pamięcią
obsługa urządzeń I/O
inne (monitoring, accounting itp.)
Funkcje jądra dotyczą najbardziej
podstawowych operacji,
wywoływanych bardzo często
przez procesy.
Mikrojądro
Mikrojądro to mały rdzeń SO, będący
podstawą do modularnych
(modułowych) rozszerzeń.
Struktury SO
Do innych typów struktur SO należą
systemy:
maszyn wirtualnych - system operacyjny stwarza
dla każdego użytkownika „wirtualny” komputer
posiadający własną kopię systemu;
systemy z mikrojądrem - podstawowe usługi
systemu operacyjnego są umieszczane w
mikrojądrze, inne są implementowane jako
procesy użytkownika (klienci). Klienci wysyłają
żądania do serwera, zarządzającego daną
funkcją za pomocą techniki „klient-serwer”.
Struktury SO
Mikrojadro po raz pierwszy pojawiło się w
SO Mach.
Typowe mikrojądro 1. generacji ma ok. 300
kB kodu, 140 usług systemowych.
Typowe mikrojądro 2. generacji ma ok. 10
kB kodu, jedynie kilka usług systemowych.
SO wykorzystujące mikrojądro bardzo
często korzystają z tzw. techniki klient-
serwer.
Klient-serwer
Technika „klient-serwer” polega na
podziale oprogramowania
systemowego na dwie
współdziałające ze sobą części o
nazwach „klient” oraz „serwer”.
Zalety techniki klient-serwer
uproszczenie struktury SO
zwiększenie niezawodności SO,
zapewnienie jednolitego sposobu
komunikacji między procesami,
stworzenie podstaw dla przetwarzania
rozproszonego,
łatwa rozszerzalność SO o nowe
funkcje.
Tryby pracy SO
SO może pracować w różnych trybach,
które różnią się między sobą zbiorem usług
dostępnych dla użytkownika.
Tryb pracy SO decyduje o tym, jakie usługi
SO mogą zostać przez dany proces
wywołane.
Wyróżniamy dwa główne tryby:
tryb użytkownika (ang. user mode) oraz
tryb jądra (ang. kernel mode).
Tryby pracy SO
W trybie użytkownika proces nie
dysponuje dostępem do wszystkich
usług systemu.
Możliwości pracy systemu w różnych
trybach określa architektura
procesora (por. tryb
rzeczywisty/chroniony w procesorach
80286+ firmy Intel).
Klasyfikacja SO
dla jednego użytkownika:
jednoprogramowe
wieloprogramowe,
dla wielu użytkowników,
sieciowe systemy operacyjne,
rozproszone systemy operacyjne,
systemy czasu rzeczywistego,
ogólnego przeznaczenia
wsadowe,
wielodostępne
systemy obsługi baz danych.
Cechy współczesnych SO
architektura oparta o mikrojądro,
funkcje SO implementowane w
technice „klientserwer”,
wielowątkowość,
wieloprzetwarzanie,
obliczenia rozproszone,
metodologia OOP (ang. Object
Oriented Programming).
Pokolenia SO
1. pokolenie (1945-1955)
Sprzęt: komputery lampowe, tablice
połączeń
SO: brak SO, brak języka maszynowego
2. pokolenie (1955-1965)
Sprzęt: komputery tranzystorowe, systemy
wsadowe, praca typu „off-line”
SO: systemy FMS, IBSYS (dla komputera
7094)
Pokolenia SO
Systemy operacyjne 2. pokolenia są
nazywane monitorami, ponieważ ich główne
zadanie polegało na monitorowaniu
wykonywania podstawowych funkcji takich
jak:
obsługa przerwań,
sterowanie pracą urządzeń I/O
szeregowanie zadań (programów)
interpretacja języka sterowania zadaniami (JCL)
obsługa programów użytkowych,
Wyżej wymienione funkcje były realizowane
w bardzo podstawowym zakresie.
Pokolenia SO
3. pokolenie (1965-1980)
Sprzęt: komputery na układach scalonych,
kanały, przerwania, wieloprogramowość, podział
czasu
systemy: OS/360 (1964), GEORGE 3 (ICL 1900),
CTSS (1962): 32Kx32b, monitor 5K, przerwania
co 0.2s
4. pokolenie (1980-do dzisiaj)
Sprzęt: komputery na układach VLSI, komputery
typu PC, stacje robocze
SO: CP/M, MS-DOS, Windows 9x, OS/2, Windows
NT, Windows XP
Przykłady SO
Pierwsze znane systemy operacyjne:
system bez nazwy dla komputera EDVAC (koniec
lat 40-tych),
system bez nazwy opracowany przez firmę
General Motors dla komputera IBM 701 (połowa
lat 50-tych).
Pierwszy system operacyjny o budowie
warstwowej:
system THE (Dijkstra 1968) dla komputera
Electrologica X8
Przykłady SO
Pierwszy system operacyjny o budowie
pierścieniowej:
system MULTICS (Corbato et al. 1965), będący
prekursorem wielu rozwiązań przyjętych w innych
SO (jądro, procesy, potoki, powłoka).
System operacyjny „maszyn wirtualnych”:
system VM/370 (1979), pochodzący od systemów
OS/360, TSS/360 oraz CP/CMS dla komputerów
rodziny IBM/360.
SO dla 1-go użytkownika (jednoprogramowe):
CP/M
MS-DOS,
Przykłady SO
SO dla 1-go użytkownika
(wieloprogramowe):
Windows NT,
OS/2,
Windows XP,
Windows Vista.
SO dla wielu użytkowników
(wielodostępne):
Unix, Solaris, SunOS.
Linux i jego dystrybucje.
SO sieciowe:
Novell NetWare
SO rozproszone:
Mach, Chorus, DCE
SO czasu rzeczywistego:
QNX, RSX-11, RMX-80
SO sieciowy
(NOS – network operating system)
pozwala wielu komputerom pracować
we wspólnej sieci i zarządza
rozmaitymi aspektami pracy
sieciowej, jak udostępnianie plików
czy drukowanie
SO rozproszony
zbiór niezależnych komputerów,
sprawiająch na jego uzytkownikch
wrażenie jednego, logicznie zwartego
systemu
SO czasu rzeczywistego
spełnia wymagania narzucone przez
czas działania. Najczęściej wymaga
się od niego reakcji w określonym
czasie
takie systemy sterują centralami
telefonicznymi, systemem ABS w
samochodzie
Pytania