You are on page 1of 31

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Wprowadzenie

Celem wykadu jest przedstawienie oglnych informacji o systemie operacyjnym


jako skadowej oprogramowania komputera. Omawiana jest zatem jego rola i
zadania, klasyfikacja oraz specyficzny sposb wykonywania, wynikajcy ze
cisej integracji z poziomem maszynowym procesora.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne
Plan wykadu

Definicja, miejsce, rola i zadania systemu operacyjnego


Klasyfikacja systemw operacyjnych
Zasada dziaania systemu operacyjnego

Wprowadzenie (2)

Wykad rozpoczyna si od przedstawienia kilku oglnych definicji systemu


operacyjnego, z ktrych wynika jego rola i miejsce w oprogramowaniu
komputera. Omwiona jest te oglna struktura systemu operacyjnego. Nastpnie
przedstawiona jest klasyfikacja systemw operacyjnych wedug rnych
kryteriw. Ostatnia cz dotyczy wykonywania systemu operacyjnego jako
programu w komputerze, czyli przekazywania sterowania do kodu jdra.
Poruszone przy tej okazji s kwestie zabezpieczenia jdra systemu przed
niekontrolowan ingerencj ze strony oprogramowania aplikacyjnego.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Miejsce, rola i zadania systemu


operacyjnego w oprogramowaniu
komputera

Wprowadzenie (3)

Systemy operacyjne

Wprowadzenie

Systemy operacyjne
Definicja systemu operacyjnego (1)

System operacyjny jest zbiorem rcznych i


automatycznych procedur, ktre pozwalaj grupie osb na
efektywne wspdzielenie urzdze maszyny cyfrowej
Per Brinch Hansen

Wprowadzenie (4)

Pojcie systemu operacyjnego jest trudne do zdefiniowania w zwartej,


lakonicznej formie. Najczciej krtki opis jest zbyt oglny, eby uzyska
wyobraenie o roli i sposobie dziaania tego specyficznego oprogramowania.
Podobnie, trudne jest okrelenie elementw skadowych systemu operacyjnego,
czyli jednoznaczne oddzielenie oprogramowania systemowego od aplikacyjnego.
Na kolejnych slajdach przedstawione s bardzo oglne definicje systemu
operacyjnego, podane przez autorw najwaniejszy monografii z tej dziedziny.
Warto podkreli, e definicje te pojawiay si na przestrzeni okoo 40 lat, co
odzwierciedla w pewnym sensie sposb postrzegania roli i zada systemu
operacyjnego.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne
Definicja systemu operacyjnego (2)

System operacyjny (nadzorczy, nadrzdny, sterujcy) jest


to zorganizowany zesp programw, ktre porednicz
midzy sprztem a uytkownikami, dostarczajc
uytkownikom zestawu rodkw uatwiajcych
projektowanie, kodowanie, uruchamianie i eksploatacj
programw oraz w tym samym czasie steruj przydziaem
zasobw dla zapewnienia efektywnego dziaania.
Alan Shaw

Wprowadzenie (5)

Systemy operacyjne

Wprowadzenie

Systemy operacyjne
Definicja systemu operacyjnego (3)

System operacyjny jest programem, ktry dziaa jako


porednik midzy uytkownikiem komputera a sprztem
komputerowym. Zadaniem systemu operacyjnego jest
tworzenie rodowiska, w ktrym uytkownik moe
wykonywa programy w sposb wygodny i wydajny.
Abraham Silberschatz

Wprowadzenie (6)

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Definicja systemu operacyjnego (4)

System operacyjny jest warstw oprogramowania


operujc bezporednio na sprzcie, ktrej celem jest
zarzdzanie zasobami systemu komputerowego i
stworzenie uytkownikowi rodowiska atwiejszego do
zrozumienia i wykorzystania.
Andrew Tanenbaum

Wprowadzenie (7)

W niemal wszystkich tych definicjach przewijaj si dwie zasadnicze kwestie:


zarzdzanie zasobami systemu komputerowego,
stworzenie rodowiska, wygodnego dla uytkownika.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne
System operacyjny w architekturze komputera

Programy uytkowe

System operacyjny
Sprzt

Wprowadzenie (8)

System operacyjny poredniczy pomidzy uytkownikiem a sprztem,


dostarczajc wygodnego rodowiska do wykonywania programw. Uytkownik
kocowy korzysta z programw (aplikacji), na potrzeby ktrych przydzielane s
zasoby systemu komputerowego. Przydziaem tym zarzdza system operacyjny,
dziki czemu mona uzyska stosunkowo duy stopie niezalenoci programw
od konkretnego sprztu oraz odpowiedni poziom bezpieczestwa i sprawnoci
dziaania.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne
Oglna struktura systemu operacyjnego

interpreter
polece

programy
systemowe

Jdro systemu
operacyjnego
Sprzt

Wprowadzenie (9)

Nie ma precyzyjnego okrelenia, ktre skadniki wchodz w skad systemu


operacyjnego jako jego czci. Najczciej akceptuje si definicj
marketingow, zgodnie z ktr to wszystko, co producent udostpnia w ramach
zbioru oprogramowania nazywanego systemem operacyjnym, stanowi jego cze.
(Podejcie takie byo przyczyn wielu problemw prawnych firmy Microsoft).
W oglnym przypadku w strukturze systemu operacyjnego wyrnia si jdro
oraz programy systemowe, ktre dostarczane s razem z systemem operacyjnym,
ale nie stanowi integralnej czci jdra. Jdro jest zbiorem moduw, ktre
ukrywaj szczegy sprztowej realizacji systemu komputerowego, udostpniajc
pewien zestaw usug, wykorzystywanych midzy innymi do implementacji
programw systemowych. W dalszej czci system operacyjny bdzie rozumiany
gwnie jako jdro, ewentualnie inne elementy oprogramowania integralnie
zwizane z funkcjonowaniem jdra.
Z punktu widzenia kontaktu z uytkownikiem istotny jest interpreter polece,
ktry moe by czci jdra lub programem systemowym (np. w systemie
UNIX). Interpreter wykonuje pewne polecenia wewntrznie, tzn. modu lub
program interpretera dostarcza implementacji tych polece. Jeli interpreter nie
moe wykona wewntrznie jakiego polecenia, uruchamia odpowiedni program
(tzw. polecenie zewntrzne), jako odrbny proces.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Zadania systemu operacyjnego

Definicja interfejsu uytkownika


Udostpnianie rodowiska do wykonywania
programw uytkownika
mechanizm adowania i uruchamiania programw
mechanizmy synchronizacji i komunikacji
procesw
Sterowanie urzdzeniami wejcia-wyjcia
Obsuga podstawowej klasy bdw

zarzdzanie zasobami

Udostpnianie systemu plikw

Wprowadzenie (10)

Definiowanie interfejsu uytkownika: system operacyjny dostarcza uytkownikom zbir


polece lub system okienkowy wraz z odpowiednim menu, ktry umoliwia interakcj z
systemem komputerowym.
Udostpnianie systemu plikw: system operacyjny organizuje i uatwia dostp do informacji
np. w postaci hierarchicznego systemu plikw.
Udostpnianie rodowisko do wykonywania programw: system operacyjny dostarcza
struktur danych do organizacji wykonywania programu oraz zachowywania i odtwarzania stanu
przetwarzania (procesy i przeczanie kontekstu). System operacyjny udostpnia te
programistom mechanizmy komunikacji
pomidzy procesami (kolejki
komunikatw,
strumienie, pami wspdzielona) oraz mechanizmy synchronizacji procesw (np. semafory).
Sterowanie urzdzeniami wejcia-wyjcia: odpowiednie moduy sterujce, integrowane z
systemem operacyjnym, inicjalizuj prac urzdze zewntrznych oraz porednicz w
efektywnym przekazywaniu danych pomidzy jednostk centraln a tymi urzdzeniami.
Obsuga podstawowej klasy bdw: system operacyjny reaguje na bdy uytkownikw (np.
niedostpno zasobw, brak prawa dostpu), programistw (np. bd dzielenia przez 0,
naruszenie ochrony pamici, nieprawidowy kod rozkazu) oraz systemu (np. bd braku strony,
bd magistrali).
Efektywno zarzdzania zasobami oraz wygodny interfejs dla uytkownika s dwoma
oglnymi, niezalenymi celami projektowymi systemw operacyjnych. Pierwszy z tych celw
by kluczowy w rozwoju rodziny systemw uniksowych. Dopiero w pniejszych etapach ich
rozwoju pojawi si intuicyjny okienkowy interfejs uytkownika. Systemy rodziny MS Windows
zorientowane byy natomiast przede wszystkim na interfejs uytkownika, na bazie ktrego w
pniejszych etapach rozwoju powstawa penowartociowy system operacyjny, uwzgldniajcy
szerzej rozumiane zarzdzanie zasobami.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Zarzdzanie zasobami systemu komputerowego

Przydzia zasobw
Planowanie dostpu do zasobw
Ochrona i autoryzacja dostpu do zasobw
Odzyskiwanie zasobw
Rozliczanie gromadzenie danych o wykorzystaniu
zasobw

Wprowadzenie (11)

Formalne pojcie zasobu zostanie wprowadzone wraz z pojciem procesu. Na razie


zasb bdzie rozumiany intuicyjnie jako element systemu komputerowego istotny, czy
wrcz kluczowy dla realizacji przetwarzania. Funkcja zarzdzania zasobami nie jest
bezporednio wykorzystywana przez uytkownika (czasami nie jest przez niego w ogle
dostrzegana). Jej celem jest optymalizacja wykorzystania zasobw przez uytkownikw.
W ramach zarzdzania oglnie rozumianymi zasobami mona wyrni nastpujce
operacje:
Przydzia zasobw: realizacja da dostpu do zasobw w taki sposb, e zasoby
uywane s zgodnie z intencj uytkownikw (np. zagwarantowanie wycznego
dostpu drukarki).
Planowanie dostpu do zasobw: strategia przydziau zasobw gwarantujca
bezpieczestwo, ywotno, brak zakleszczenia, sprawiedliwo oraz optymalno
ich wykorzystania. Warto zwrci uwag na odrnienie planowania od samego
przydziau przydzia oznacza powizanie zasobu z realizowanym zadaniem,
podczas gdy planowanie wie si z podejmowaniem decyzji odnonie wyboru
zdania, ktremu zasb bdzie przydzielony.
Ochrona i autoryzacja dostpu do zasobw: dopuszczanie moliwoci uytkowania
zasobu tylko przez osoby uprawnione i w zakresie przydzielonych im uprawnie.
Odzyskiwanie zasobw: doczanie zwolnionych zasobw do zbioru zasobw
wolnych po zakoczeniu ich uytkowania.
Rozliczanie: rejestrowanie i udostpnianie informacji o wykorzystaniu zasobw w
celach kontrolnych i rozrachunkowych.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Zasoby zarzdzane przez system operacyjny (1)

Procesor przydzia czasu procesora


Pami
alokacja przestrzeni adresowej dla procesw
ochrona i transformacja adresw

Wprowadzenie (12)

Typowymi zasobami zarzdzanymi przez system operacyjny s: procesor,


pami, urzdzenia wejcia-wyjcia (w tym system plikw, stanowicy tzw.
wirtualne wejcie-wyjcie). Zalenie od zasobu zarzdzanie charakteryzuje si
pewn specyfik.
Procesor jest zasobem wspdzielonym przez wiele procesw, w zwizku z czym
zadaniem systemu operacyjnego jest przydzia kwantu czasu procesora i
wywaszczanie zadania, ktre:
wykorzystao ju swj czas lub
nie moe kontynuowa przetwarzania ze wzgldu na brak innych zasobw
(np. brak gotowoci urzdze wejcia-wyjcia) lub te
ma zbyt niski priorytet.
Pami jest zasobem, ktry przydzielany jest na wyczno danego
przetwarzania. Zadaniem systemu jest zatem utrzymywanie informacji o
zajtoci przestrzeni adresowej, znajdowanie i przydzielanie odpowiednich
fragmentw wolnej pamici na danie aplikacji uytkownika lub innych
moduw systemu operacyjnego oraz reagowanie na naruszenie ochrony pamici.
System operacyjny poredniczy rwnie w transformacji adresw wirtualnych na
fizyczne w systemach z segmentacj lub stronicowaniem przez organizacj
tablicy segmentw lub stron oraz obsug bdw strony.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Zasoby zarzdzane przez system operacyjny (2)

Urzdzenia wejcia-wyjcia
udostpnianie i sterowanie urzdzeniami pamici
masowej
alokacja przestrzeni dyskowej
udostpnianie i sterownie drukarkami, skanerami itp.
Informacja (system plikw)
organizacja i udostpnianie informacji
ochrona i autoryzacja dostpu do informacji

Wprowadzenie (13)

Urzdzenia zewntrzne s stosunkowo wolne, w zwizku z czym, w celu


poprawy efektywnoci, zarzdzanie tymi urzdzeniami wymaga odpowiedniej
organizacji systemu przerwa oraz buforowania danych, ewentualnie spoolingu.
Osobnym zagadnieniem jest zarzdzanie urzdzeniami pamici masowej,
zwaszcza odpowiednia organizacja przestrzeni dyskowej oraz optymalizacja
ruchu gowic dyskowych.
Informacja jest z punktu widzenia uytkownika najwaniejszym zasobem, gdy
jej przetwarzanie jest celem systemu komputerowego. System operacyjny
odpowiada za organizacj gromadzenia i udostpniania informacji, jej ochron
przed nieuprawnion ingerencj, spjno w przypadku awarii itp.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Klasyfikacja systemw operacyjnych

Wprowadzenie (14)

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Klasyfikacja systemw operacyjnych ze wzgldu na


sposb przetwarzania

Systemy przetwarzania bezporedniego (ang. on-line


processing systems) systemy interakcyjne
wystpuje bezporednia interakcja pomidzy
uytkownikiem a systemem,
wykonywanie zadania uytkownika rozpoczyna si
zaraz po przedoeniu.
Systemy przetwarzania poredniego (ang. off-line
processing systems) systemy wsadowe
wystpuje znaczca zwoka czasowa midzy
przedoeniem a rozpoczciem wykonywania zadania,
niemoliwa jest ingerencja uytkownika w
wykonywanie zadania.
Wprowadzenie (15)

W przypadku systemu przetwarzania bezporedniego uytkownik wprowadza


zadanie do systemu i oczekuje na wyniki. W trakcie przetwarzania jest zatem
moliwa interakcja pomidzy uytkownikiem
a systemem (aplikacj).
Uytkownik moe by na przykad poproszony o wprowadzenie jaki danych na
terminalu, wybranie czego z menu itp.
W przypadku przetwarzania poredniego zadanie jest realizowane w czasie
wybranym przez system. Po przedoeniu zadania ingerencja uytkownika jest
niemoliwa. Wszystkie dane musz by zatem dostpne w momencie
przedkadania zadania, a jakikolwiek bd programowy (np. niekompletno
danych) oznacza konieczno przedoenia i wykonania zadania ponownie.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Klasyfikacja systemw operacyjnych ze wzgldu na liczb


wykonywanych programw

Systemy jednozadaniowe niedopuszczalne jest


rozpoczcie wykonywania nastpnego zadania
uytkownika przed zakoczeniem poprzedniego.
Systemy wielozadaniowe dopuszczalne jest istnienie
jednoczenie wielu zada (procesw), ktrym zgodnie z
pewn strategi przydzielany jest procesor.

Wprowadzenie (16)

Systemy jednoprogramowe, zwane te jednozadaniowymi, umoliwiaj


uruchomienie jednego zadania uytkownika, ktre ewentualnie moe by
wykonywane wspbienie z pewnymi procedurami systemu operacyjnego.
Systemy wieloprogramowe (wielozadaniowe)
dostarczaj mechanizm
przeczania kontekstu, umoliwiajc w ten sposb zachowanie stanu
wykonywania okrelonego programu (stanu procesu), a nastpnie odtworzenie
stanu wykonywania innego programu (w szczeglnoci innego wykonywania
tego samego programu). Przeczenie kontekstu jest skutkiem zwolnienia
procesora, ktre z kolei nastpuje w wyniku:
dania przydziau dodatkowego zasobu,
zainicjowania operacji wejcia-wyjcia,
przekroczenia ustalonego limitu czasu (kwantu czasu),
uzyskania gotowoci przez inne zadanie (proces) o wyszym priorytecie.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Klasyfikacja systemw operacyjnych ze wzgldu na liczb


uytkownikw

Systemy dla jednego uytkownika zasoby


przeznaczone s dla jednego uytkownika (np. w
przypadku komputerw osobistych), nie ma
mechanizmw autoryzacji, a mechanizmy ochrony
informacji s ograniczone.
Systemy wielodostpne wielu uytkownikw moe
korzysta ze zasobw systemu komputerowego, a
system operacyjny gwarantuje ich ochron przed
nieupowanion ingerencj.

Wprowadzenie (17)

W systemach dla jednego uytkownika nie ma problemu autoryzacji, czyli


koniecznoci identyfikowania zleceniodawcy
poszczeglnych zada.
Mechanizmy ochrony s ograniczone w tym sensie, e nie ma potrzeby ochrony
zasobw jednego uytkownika przed drugim uytkownikiem tego samego
systemu operacyjnego, ale w czasie powszechnoci sieci rozlegych istnieje
jednak problem ochrony zasobw przed ingerencj z zewntrz.
System operacyjny w przypadku wielodostpu musi zagwarantowa, e jeden
uytkownik nie jest w stanie zakci pracy innych uytkownikw. Jest to
problem waciwego udostpniania zasobw oraz dostpnoci mechanizmw
ochrony prywatnych zasobw jednego uytkownika przed ingerencj innego.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Inne rodzaje systemw operacyjnych

Systemy czasu rzeczywistego (ang. real-time systems)


zorientowane na przetwarzanie z uwzgldnieniem
czasu zakoczenie zadania, tzw. linii krytycznej (ang.
deadline).
Systemy sieciowe i rozproszone (ang. network and
distributed systems) umoliwiaj zarzdzanie zbiorem
rozproszonych jednostek przetwarzajcych, czyli
zbiorem jednostek (komputerw), ktre s zintegrowane
sieci komputerow i nie wspdziel fizycznie zasobw.
Systemy operacyjne komputerw narcznych
tworzone dla rozwiza typu PDA, czy telefonw
komrkowych, podlegaj istotnym ograniczeniom
zasobowym.
Wprowadzenie (18)

W systemach czasu rzeczywistego priorytetem jest minimalizacja czasu odpowiedzi


(reakcji) lub czasu realizacji zadania, gdy po przekroczeniu pewnego czasu warto
wynikw albo jest znacznie mniejsza (np. przewidywanie kursw akcji na giedzie) albo
s one cakowicie bezuyteczne (np.
prognozowanie pogody). Szczeglnym
przypadkiem, gdzie czas jest krytyczny, s wszelkiego rodzaju systemy sterowania w
czasie rzeczywistym (np. w komputerach pokadowych samochodw, samolotw,
jednostek pywajcych itp.). Systemy operacyjne czasu rzeczywistego s wic budowane
pod ktem szybkoci reakcji na zdarzenie zewntrzne. Ich zadaniem jest minimalizowa
czas oczekiwania na zasoby dla czasowo krytycznych zada, dlatego unika si w ich
przypadku rozwiza, ktre zmniejszaj przewidywalno tego czasu (np. pamici
wirtualnej).
Rozproszone systemy operacyjne zapewniaj, e system komputerowy, zoony z
autonomicznych jednostek przetwarzajcych poczonych sieci komputerow,
postrzegany jest jako cao. Zasoby tego systemu udostpniane s w jednolity sposb
niezalenie od ich fizycznej lokalizacji niezalenie od tego, czy s to zasoby lokalne
danej jednostki, czy zasoby zwizane integralnie z jednostk zdaln. Cecha ta odrnia
systemy rozproszone od systemw sieciowych, ktre rwnie umoliwiaj dostp do
zdalnych zasobw, ale nie ukrywaj faktu fizycznego rozproszenia tych zasobw.
Inaczej mwic, w systemie sieciowym odrnia si dostp lokalny i dostp zdalny do
zasobw.
Rozwizania dla systemw narcznych
nie musz tworzy rodowiska
zaawansowanego przetwarzania wielozadaniowego, ale ze wzgldu na niewielkie
rozmiary urzdze podlegaj do rygorystycznym ograniczeniom zasobowym. W
przypadku tego typu rozwiza, jak rwnie rozwiza dla innych urzdze mobilnych,
do istotnym zasobem, ktrym naley odpowiednio zarzdza jest energia.

dla

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Zasada dziaania systemu operacyjnego

Wprowadzenie (19)

System operacyjny jest programem, jednak jego dziaanie jest do specyficzne,


gdy musi on nadzorowa (monitorowa) prac komputera nawet wwczas, gdy
wykonywany jest jaki program aplikacyjny. System operacyjny musi reagowa
na bdy w programach aplikacyjnych, porzdkowa system komputerowy po
awariach, z kolei bdy w kodzie jdra systemu operacyjnego mog
zdestabilizowa funkcjonowanie caego systemu komputerowego.
Dziaanie wspczesnych systemw operacyjnych jest rezultatem ewolucji w
architekturze sprztowo-programowej, w ktrej potrzeby w zakresie
implementacji pewnych mechanizmw systemu operacyjnego wymuszay
wprowadzanie stosownych rozwiza na poziomie architektury komputera
(procesora, jednostki zarzdzania pamici, ukadu bezporedniego dostpu do
pamici, procesorw wejcia-wyjcia itp.). Rozwizania na poziomie
architektury komputera otwieray z kolei drog do dalszego rozwoju
oprogramowania systemowego.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

System operacyjny w ujciu wielowarstwowym

poziom jzyka zorientowanego problemowo


poziom asemblera
poziom systemu operacyjnego
poziom maszynowy procesora
poziom mikroarchitektury

Wprowadzenie (20)

Dziaanie systemu komputerowego mona opisywa na rnych poziomach


abstrakcji, poczwszy od zjawisk fizycznych na poziomie ukadw
pprzewodnikowych, czy te propagacji sygnaw logicznych na poziomie
ukadw techniki cyfrowej. Tak niski poziom abstrakcji jest jednak na og mao
interesujcy dla informatyka, dlatego na najniszym poziomie abstrakcji na
slajdzie umieszczona zostaa mikroarchitektura. Poziom mikroarchitektury jest
jednak zastrzeony dla twrcw procesorw, natomiast dla programistw
systemw komputerowych najniej dostpny jest poziom maszynowy procesora.
Na poziomie tym definiowana jest lista rozkazw procesora, tryby adresowania
pamici, rejestry procesora. Na poziomie tym nie istniej jednak takie elementy,
jak pliki, procesy, mechanizmy komunikacji i synchronizacji. Te elementy
uzupeniane s przez system operacyjny, ktry wsptworzy wraz poziomem
maszynowym hybrydow warstw usug dla programw uytkowych. Na bazie
tej warstwy budowane s kolejne poziomy abstrakcji, zwizane z jzykami
programowania niszego lub wyszego poziomu.
W praktyce rzadko kiedy korzysta si bezporednio z poziomu maszynowego.
Jeli rzeczywicie istnieje potrzeba pisania programu na tak niskim poziomie,
wykorzystywany jest raczej asembler, ktry nie ogranicza moliwoci poziomu
maszynowego, a usprawnia tworzenie programu dziki mnemonikom rozkazw
zamiast ich kodw, etykietom zamiast adresw itp.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Architektura von Neumanna

Zarwno program (kody rozkazw), jak i dane


(argumenty rozkazu, operandy) znajduj si w pamici
operacyjnej.
Rozkazy wykonywane s w kolejnoci, w jakiej zostay
umieszczone w programie (i tym samym w pamici), a
zmiana tej kolejnoci moe nastpi w wyniku
wykonania specjalnego rozkazu, np. skoku, wywoania
podprogramu, powrotu z podprogramu itp.
W celu pobrania rozkazu z pamici procesor wystawia
odpowiedni adres na magistrali adresowej.

Wprowadzenie (21)

W celu wyjanienia, w jaki sposb wykonywany jest program jdra, istotne jest
uwiadomienie sobie, w jaki sposb w ogle wykonywany jest program przez
procesor.
Dziaanie wspczesnych procesorw opiera si w duej czci na modelu von
Neumanna. Architektura komputera, ktrej nazwa przyja si od nazwiska jej
popularyzatora Johna von Neumanna, zakada, e zarwno dane, jak i
program (kod instrukcji/rozkazw) znajduj si w pamici operacyjnej (dzi
wydaje si to do oczywiste). Rozkazy umieszczane s pod kolejnymi adresami
w pamici. Wykonywanie takiego programu sprowadza si zatem do pobierania
rozkazw z kolejnych komrek. Adres komrki pamici, od ktrej rozpoczyna
si kod nastpnego rozkazu do wykonania, przechowywany jest w odpowiednim
rejestrze procesora, zwanym licznikiem programu (PC program counter) lub
wskanikiem instrukcji (IP instruction pointer). Zawarto tego rejestru
wystawiana jest na szyn adresow magistrali systemowej w celu pobrania z
pamici kodu rozkazu. Po zdekodowaniu operacji licznik ten zwikszany jest
odpowiednio do dugoci pobranego rozkazu, w ten sposb wskazuje nastpny
rozkaz do wykonania. Opisany schemat domylny przepyw sterowania
oznacza wykonywanie rozkazw w pewnej sekwencji, wynikajcej z ich
uporzdkowania w programie i tym samym w pamici. Schemat ten moe ulec
zmianie w wyniku wykonania specjalnego rozkazu (skoku, wywoania
podprogramu, powrotu z podprogramu). Zmiana domylnego przepywu
sterowania jest wic zdefiniowana przez sam program.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Cykl rozkazowy

Cykl rozkazowy cykl dziaa procesora i jego


interakcji z pamici operacyjn zwizanych z realizacj
rozkazu.
Cykl rozkazowy skada si z faz, zwanych cyklami
maszynowymi.
Typowe fazy cyklu rozkazowego:
pobranie kodu rozkazu odczyt pamici
pobranie operandu odczyt pamici
skadowanie operandu zapis pamici

Wprowadzenie (22)

Dziaania procesora, zmierzajce do wykonania rozkazu, powtarzaj si


cyklicznie, w zwizku z czym okrela si je jako cykl rozkazowy. Realizacja
cyklu rozkazowego wymaga na og kilku interakcji procesora z pamici. Kad
tak interakcj okrela si mianem cyklu maszynowego. W kadym cyklu
rozkazowym wystpuje cykl maszynowy pobrania kodu rozkazu (fetch). W
zalenoci od trybu dostpnoci operandw mog te wystpi cykle pobrania
operandu z pamici (albo rejestrw wejcia-wyjcia) lub skadowania operandu
w pamici (albo rejestrach wejcia-wyjcia) . (Operandy s argumentami operacji
wykonywanej w ramach rozkazu.) Kady cykl maszynowy oznacza zatem zapis
lub odczyt pamici, przy czym cykl pobrania kodu rozkazu oznacza zawsze
odczyt.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Cykl rozkazowy pobranie rozkazu

pami/IO

pobranie
kodu
rozkazu

CPU

wystaw.
adr. kodu
rozkazu

faza pobrania
rozkazu

pobranie
operandu

dekodowanie
operacji

nastpny
rozkaz

wystaw.
adresu
operandu

faza pobrania
argumentw

acuch

Wprowadzenie (23)

Cykl rozkazowy rozpoczyna si od wystawienia kodu rozkazu. W reakcji na


towarzyszcy temu sygna sterujcy odczytu pamici na szynie danych
udostpniana jest zawarto zaadresowanej komrki, a procesor pobiera j i
zapamituje w odpowiednim rejestrze. Nastpnie zostaje zdekodowana operacja i
w zalenoci od wymaganych operandw nastpuje odczyt pamici lub rejestrw
wejcia-wyjcia. Odczyt taki wymaga oczywicie wystawienia odpowiedniego
adresu na magistrali, a nastpnie przekazania sygnau sterujcego odczytu
pamici. Adres operandu w zalenoci od trybu adresowania jest czci kodu
rozkazu lub znajduje si w rejestrze procesora (rzadziej w innej komrce
pamici). W przypadku rozkazw wymagajcych kilku operandw wejciowych
cykl maszynowy pobrania operandw moe powtrzy si kilkakrotnie. W
szczeglnym przypadku rozkaz nie wymaga adnego operandu wejciowego.
Moe si te okaza, e operand dostpny jest w rejestrze procesora, w zwizku z
czym nie jest wymagana interakcja z pamici albo rejestrami wejcia-wyjcia.
W takich przypadkach cykl maszynowy pobrania operandw zostanie pominity.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Cykl rozkazowy wykonanie rozkazu

zapis
operandu
faza przerwania

wykonanie
operacji

wystaw.
adresu
operandu

faza skadowania wyniku

sprawdz.
zgoszenia
przerwa

przerwanie

brak
przerwa

Wprowadzenie (24)

Po zdekodowaniu operacji i skompletowaniu operandw wejciowych mona


wykona operacj, a nastpnie umieci w pamici albo rejestrach wejciawyjcia operandy wyjciowe. Podobnie
jak w przypadku operandw
wejciowych ten cykl maszynowy moe by wykonany wielokrotnie lub w
szczeglnym przypadku pominity. Na tym koczy si cig dziaa zwizany z
wykonaniem biecego rozkazu i mona by przej do nastpnego cyklu
rozkazowego.
Jeli w taki sposb byby wykonywany program uytkownika, to nasuwa si
pytanie: Gdzie jest miejsce na wykonywanie programu jdra systemu
operacyjnego?, W jaki sposb nastpuje przekazanie sterowania do jdra
systemu operacyjnego?.
W czasie wykonywania rozkazu mogy nastpi pewne zdarzenia zewntrzne w
stosunku do procesora, nie zwizane z biecym cyklem rozkazowym, ale
wymagajce od procesora jakiej reakcji. Konieczno reakcji zgaszana jest
poprzez sygna na odpowiedniej linii wejciowej procesora. Ostatnia faza cyklu
rozkazowego polega zatem na sprawdzeniu, czy wystpio takie zgoszenie. Jeli
nie byo zgoszenia, rozpoczyna si nastpny cykl maszynowy. Jeli jednak byo
zgoszenie nazywane przerwaniem, nastpuje cig dziaa, zmierzajcych do
zidentyfikowania rda przerwania, a nastpnie przekazania sterowania do
stosownej procedury obsugi. Procedury obsugi przerwa s czci programu
jdra systemu operacyjnego.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Podstawy dziaania systemu operacyjnego

Odwoania do jdra systemu przez system przerwa lub


specjalne instrukcje (przerwanie programowe)
Sprztowa ochrona pamici
Dualny tryb pracy tryb uytkownika (ang. user mode) i
tryb systemowy (tryb jdra, ang. system mode)
Wyrnienie instrukcji uprzywilejowanych,
wykonywanych tylko w trybie systemowym
Uprzywilejowanie instrukcji wejcia-wyjcia
Przerwanie zegarowe

Wprowadzenie (25)

Oglnie, sterowanie przekazywane jest do jdra systemu operacyjnego poprzez


przerwania. Program jdra jest wic zbiorem procedur obsugi przerwa i
wywoywanych przez nie innych podprogramw. Przerwania, wspomniane na
poprzednim slajdzie, pochodz z ukadw na zewntrz procesora, czyli od urzdze
wejcia-wyjcia, czasomierzy, ukadu bezporedniego dostpu do pamici itp. Inny
rodzaj to przerwania zgaszane wewntrznie przez procesor, bdce nastpstwem
wykrycia jakiego stanu wyjtkowego. Jeszcze inny rodzaj to przerwania programowe,
wynikajce z wykonania specjalnej instrukcji procesora, umoliwiajce programom
uytkownika dostp do wybranych funkcji jdra systemu operacyjnego.
Stabilno pracy systemu wymaga ochrony przynajmniej jdra systemu operacyjnego
przed niekontrolowan ingerencj uytkownikw. Wymaga to monitorowania odniesie
do pamici i weryfikowania poprawnoci adresw. Ze wzgldw wydajnociowych
zadanie to realizowane jest sprztowo, ale odpowiednie dane na potrzeby weryfikacji
musi dostarczy system. W celu zabezpieczenia tych (i innych) newralgicznych danych
wyrnione s pewne instrukcje uprzywilejowane, niedostpne dla programw
aplikacyjnych. Powstaje jednak problem odrnienia programw systemowych od
aplikacyjnych, ktrego rozwizaniem jest wyodrbnienie dwch (w niektrych
procesorach nawet wikszej liczby) poziomw pracy (trybw pracy). Moliwe staje si
narzucenie sprztowych restrykcji odnonie wykonywania niektrych instrukcji na
odpowiednich poziomach. Proces uytkownika uruchamiany jest w trybie
nieuprzywilejowanym, w zwizku z czym nie moe wykona pewnych instrukcji,
dostpnych tylko w trybie uprzywilejowanym, tym samym ma ograniczon moliwo
swobodnego ingerowania w obszary zastrzeone dla jdra systemu operacyjnego.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

Przerwania w systemie komputerowym

Przerwanie jest reakcj na asynchroniczne zdarzenie,


polegajc na automatycznym zapamitaniu biecego
stanu procesora w celu pniejszego odtworzenia oraz
przekazaniu sterowania do ustalonej procedury obsugi
przerwania.

Wprowadzenie (26)

System przerwa umoliwia niesekwencyjne (wspbiene) wykonywanie


programw. Zmiana sekwencji wykonywania instrukcji polega na tym, e w
reakcji na przerwanie nastpuje zapamitanie biecego stanu przetwarzania
(najwaniejszych rejestrw procesora), przekazanie sterowania do ustalonej
procedury obsugi i rozpoczcie wykonywania instrukcji tej procedury. W
szczeglnoci moe to prowadzi do przeczenia kontekstu, czyli przekazania
sterowania po zakoczeniu procedury obsugi przerwania do innego
przetwarzania, ni to ktre zostao przerwane.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne

rda przerwa

Przerwania zewntrzne od urzdze zewntrznych


Przerwania programowe wykonanie specjalnej
instrukcji
Przerwania diagnostyczne puapki, bdy programowe
i sprztowe

Wprowadzenie (27)

Przerwania od urzdze zewntrznych zgaszane s po zakoczeniu operacji wejciawyjcia i przekazywane na specjalne wejcie procesora najczciej przez sterownik
przerwa. T sam ciek zgaszane s rwnie przerwania od ukadw cile
wsppracujcych z procesorem czasomierzy, ukadw bezporedniego dostpu do
pamici itp. S to typowe przerwania, gdy ich rdo jest poza procesorem i jest od
niego niezalene.
W przeciwiestwie do przerwa zewntrznych, przerwania programowe s wynikiem
wykonania specjalnej instrukcji procesora, np. int (interrupt) w procesorach firmy Intel,
sc (system call) w procesorach PowerPC firm IBM, Motorola i Apple.
Przerwania diagnostyczne s z kolei generowane wewntrznie przez procesor w sytuacji
zajcia okrelonego stanu. S zatem porednim skutkiem wykonania okrelonego cigu
rozkazw prowadzcych do osignicia tego stanu. Tego typu przerwania w literaturze
okrela si jako puapki lub wyjtki. Przykadami tego typu przerwa s:
puapki ktre pojawiaj si, gdy licznik rozkazw osignie okrelon warto, tzn.
bdzie wskazywa na instrukcj, na ktrej zaoono puapk. Mechanizm ten
wykorzystywany jest w konstrukcji debuggerw.
bdy programowe, typu bd dzielenia przez 0, naruszenie ochrony pamici,
nieprawidowy format rozkazu procesora. W reakcji na to przerwanie jdro
najczciej usuwa proces, ktry je spowodowa.
bdy sprztowe, wymagajce odpowiedniej
obsugi ze strony systemu
operacyjnego, np. bd braku strony w przypadku systemw z pamici
stronicowan. Zadaniem jdra jest doprowadzenie systemu do takiego stanu, eby
wznowienie tego samego rozkazu nie spowodowao ponownie bdu.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne
Przerwania w ujciu wielowarstwowym

przerwanie
zewntrzne
poziom systemu operacyjnego
poziom maszynowy procesora

przerwanie
programowe

poziom mikroarchitektury

przerwanie
diagnostyczne
Wprowadzenie (28)

Przerwanie diagnostyczne ma swoje rdo na poziomie maszynowym procesora.


Przerwanie programowe te ma swoje rdo na poziomie maszynowym
procesora, ale bezporedni przyczyn jego wystpienia jest rozkaz w programie
wykonywanym przez procesor. Rozkaz taki najczciej jest w programie
aplikacyjnym, ale moe rwnie by w kodzie jdra systemu operacyjnego.
Przerwanie zewntrzne zgaszane
jest procesorowi poprzez podanie
odpowiedniego sygnau na specjalne wejcie. Procesor moe mie kilka takich
wej w najprostszym przypadku ma jedno wejcie przerwa maskowalnych
(przerwanie zgaszane na tym wejciu mona ignorowa) oraz jedno wejcie
przerwa niemaskowalnych (nie mona go zignorowa).

Systemy operacyjne

Wprowadzenie

Systemy operacyjne
Zasady ochrony pamici

W wyniku wykonywania
programu nastpuje
odwoanie do komrek
pamici o okrelonych
adresach
Dostpne obszary pamici
opisane s przez dwa
parametry: baz (ang.
base) i granic (ang. limit)

adres
rejestr
bazowy

rejestr
graniczny

Wprowadzenie (29)

Kluczowa dla stabilnej pracy i bezpieczestwa systemu komputerowego jest ochrona


pamici jdra systemu operacyjnego przed ingerencj programw wykonywanych w
trybie uytkownika przede wszystkim przed modyfikacj kodu lub danych, ale ze
wzgldw bezpieczestwa rwnie przed odczytem (np. hase). W systemach
wielozadaniowych wana jest rwnie ochrona pamici jednego zadania (procesu)
przed ingerencj innego zadania.
W najprostszym przypadku ochrona pamici polega na ograniczeniu zakresu
dostpnych adresw do pewnego podzbioru, opisanego przez podanie najniszego i
najwyszego dopuszczalnego adresu. W przedstawionym schemacie najniszy
dopuszczalny adres przechowywany jest w rejestrze bazowym. Rejestr graniczny z
kolei okrela wielko dostpnego obszaru pamici. Dopuszczalne adresy nale do
zatem do przedziau <baza, baza+granica). Jeli dany adres jest spoza tego
przedziau nastpuje zgoszenie przerwania
diagnostycznego i sterowanie
przekazywane jest do odpowiedniej procedury systemu operacyjnego. W wyniku
wykonania tej procedury nastpuje najczciej zakoczenie wykonywania programu,
ktry spowodowa naruszenie ochrony pamici.
W rodowisku wielozadaniowym z kadym przetwarzaniem mog by zwizane inne
ograniczenia na dostpno obszarw pamici. Przeczanie midzy zadaniami wymaga
zatem zmiany zawartoci rejestrw, ograniczajcych zakres dostpnoci pamici. W
rozwaaniach pominite zostay te kwestie ograniczonego dostpu do okrelonych
obszarw (np. tylko do odczytu). Dostpno obszaru w takim przypadku zaley od
rodzaju cyklu maszynowego. Tego typu zagadnienia bd rozwaane przy omawianiu
zarzdzania pamici.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne
Piercienie ochrony

tryb uytkownika

tryb
moduw sterujcych

tryb
jdra

Wprowadzenie (30)

Dla procesora program jest cigiem instrukcji. Na tym poziomie nie ma


rozrnienia uytkownika, administratora, operatora itd. Narzucenie restrykcji
odnonie wykonywania niektrych instrukcji wymaga zatem wskazania trybu
pracy (zwizanego z poziomem uprzywilejowania), ktry musi by czytelny dla
procesora w celu weryfikowania dostpnoci instrukcji.
W najprostszym przypadku wystarcz dwa tryby, ale wiksza ich liczba moe
usprawni tworzenie oprogramowania systemowego. Na rysunku
wyszczeglniono 3 tryby, zwane te piercieniami ochrony. W architekturze Intel
IA-32 wyrniono 4 piercienie. W trybie najbardziej uprzywilejowanym (trybie
jdra, poziomie nr 0 w procesorach Intel) dostpne s wszystkie instrukcje i
rejestry procesora. W kadym nastpnym (mniej uprzywilejowanym) trybie jest
coraz mniej dostpnych instrukcji lub rejestrw.
Procesor pracuje zatem zawsze w jednym z trybw uprzywilejowania. Programu
jdra wykonywany jest w trybie najbardziej uprzywilejowanym, z ktrego mona
si przeczy w tryb mniej uprzywilejowany, co ma miejsce przy uruchamianiu
programu aplikacyjnego. Powrt do trybu uprzywilejowanego moliwy jest
poprzez odpowiednie przerwania (lub podobne mechanizmy), ale procedura
obsugi przerwania dostarczona jest przez jdro. Program uytkownika nie moe
zatem zmieni trybu pracy na potrzeby wykonania dowolnego wasnego kodu.

Systemy operacyjne

Wprowadzenie

Systemy operacyjne
Przerwanie zegarowe

programy
uytkow.

Przerwanie zegarowe generowane jest przez


czasomierz (ang. timer) po wyznaczonym okresie czasu.
Obsuga przerwania zegarowego oznacza przekazanie
sterowania do jdra systemu operacyjnego, umoliwiajc
w ten sposb wykonanie pewnych zda okresowych.
przerwanie
zegarowe
program 2
program 1

program jdra
czas
Wprowadzenie (31)

Czasomierz jest licznikiem, na wejcie ktrego podawane s impulsy o staej


czstotliwoci, niezalenej od czstotliwoci zegara procesora. Do licznika
wpisywana jest pewna warto, ktra zmniejszana jest o 1 z kadym impulsem.
Po osigniciu wartoci 0 generowane jest przerwanie, zwane zegarowym. Jest to
jedno z przerwa zewntrznych. Wystpienie tego przerwania nazywany jest
taktem zegara i pojawia si zalenie od architektury kilkadziesit lub kilkaset
razy na sekund (zwykle okoo 100 razy).
W wyniku przerwania zegarowego system operacyjny przejmuje sterowanie,
wykonuje pewne zadania okresowe (np. zbiera dane statystyczne w celu
optymalizacji pracy systemu) i podejmuje decyzje, czy wznowi przerwane
zadanie, czy przeczy si na inne zadanie (dokona przeczenia kontekstu). W
ten sposb niemoliwe jest zawaszczenie procesora przez program uytkownika.

You might also like