Do spisu tresci tematu 01
1.1.1 Architektura systemu:Ogolny schemat
Spis tresci
Wprowadzenie
System operacyjny jest wazna czescia prawie kazdego systemu
komputerowego.System komputerowy mozna podzielic na cztery
czesci skladowe:sprzet,system operacyjny,programy uzytkowy i
uzytnikow.
Sprzet(procesor,czyli jednostka centralna,pamiec i urzadzenia
wejscie-wyjscie)stanowi podstawowe zasoby systemu komputerowego.
Programy uzytkowe(kompilatory,systemy baz danych,...) okreslaja
sposoby uzycia tych zasobow do rozwiazania zadan' stawianych przez
uzytnikow.
System operacyjny jest programem,ktory dziala jako posrednik miedzy
uzytnikiem komputera a sprzetem komputerowym.System operacyjny
nadzoruje i koordynuje poslugiwanie sie sprzetem przez rozne program
uzytkowe ,ktore pracuja na zlecenie roznych uzytkownikow.System operacyjny
wykonuje rozne operacje podstawowe w imieniu procesow uzytkownika.
Oto zestaw uslug dostarczanych przez system operacyjny:
- Sterowanie wykonaniem procesow,przez umozliwienie ich tworzenia,konczenia,
zawierzenia i komunikowania sie.
- Sprawiedliwe szeregowanie procesow ubiegajacych sie o czas centralnego
procesa.Procesy korzystaja z CPU na zasadzie podzialu czasu--CPU wykonuje
proces,jadro zawierza go po uplywie kwantu czasu i wybierta do wykonania
inny,pozniej wznawia wykonanie zawieszonego procesu.
- Przydzielenie wykonywaniemu procesowi pamieci glownej.Jadro pod pewnymi
warunkami umozliwia procesom wspoldzielenie czesci ich przestrzeni
adresowej,lecz chroni prywatna czesc przestrzeni adresowej procesu przed
niepowolanym dostepem z zewnatrz.Kiedy system zaczyna brakowac pamieci wolnej,
jadro zwalnia pamiec przepisujac procesczasowo do pamiec pomocnicznej,zwanej
urzadzaniem do realizacji wymianej.Jesli jadro wysyla cale procesy na urzadzenie
pomocnicze,to implementacje nazywa sie systemem z wymiana.Jesli zas' zapisuje
strony pamiecji,to nazywa sie ja systemem stronicujacym.
- Przydzielanie pamieci pomocniczej na efektywne przechowywanie i odczytywanie
danych uzytkowych.Ta usluga obejmuje system plikow.Jadro przydziela pamiec
pomocnica na plik uzytkowe,odzyskuje nieuzywana pamiec,nadaje systemowi plikow
czytelna strukture ichroni pliki uzytkowe przed niepowolanym dostepem.
- Umozliwianie procesom kontrowanego dostepu do urzadzen'peryferyjnych,takich jak terminale,
stacje tasm,stacje dyskow i urzadzenia sisciowe.
Diagram blokowy jadra systemu
ARCHITEKTURA SYSTEMU OPERACYJNEGO
Wprowadzenie
System operacyjny czyli "jadro" sa dwa glowne skladniki to:podsystem plikow i
podsystem sterujacy procesami.Podsystem plikow zarzadza plikami,a podsystem
sterujacy procesami odpowiednialny jest za synchronizacja procesy,komunikacja
miedzy nimi,zarzadzania pamiecia i szeregowanie procesow.
Rysunek przedstawia diagram blokowy jadra,pokazuje rozne moduly i ich
wzajemne zwiazki.Po lewej stronie jest umieszczony podsystem plikow,a
po prawej podsysytem sterujacy procesami.Diagram obrazuje wygodne logiczne
spojrzenie na jadro.
Funkcje systemowe
Funkcje systemowe tworza intefejs miedzy wykonywanym programem a systemem
operacyjnym.Ogolnie biorac,mozna z nich korzystac za pomoca instrukcji w
jezyku asemblera.
Zbior funkcji systemowych podzielono na te,ktore wspolpracuja z podsystemem
plikow i te wspolpracujace z podsystemem syterowania procesami.
Funkcje systemowe mozna z grubsza podzielic na piec podstawowych kategorii:
nadzorowanie procesow,operacje na plikach,operacje na urzadzeniach,komunikacja
i utrzymawania informacji.
Rodzaj funkcji systemowych
1.Nadzorowanie procesow
- zakonczenie(exit),zaniechanie;
- zaladowanie,wykonanie(exec);
- utworzenia(fork),zakonczenie proces(exit);
- pobranie artybutow procesu(getegid,getgid,getpid ..),okreslenie artybutow procesu(setgid,setuid);
- czekanie czasowo(wait);
- oczekiwanie na zdarzenie(wait),sygnalizacja zdarzenia(signal);
- przydzial i zwolnienie pamiec;
2.Operacje na plikach
- Utworzenie pliku(creat);,usuwanie;
- otwarcie(open),zamkniecie(close);
- czytanie(read),pisanie(write),zmiana polozenie;
- pobranie artybutow pliku,okreslenie artybutow pliku;
3.Operacje na urzadzeniach
- zamowienie urzadzenia,zwolnienia urzadzenia;
- czytanie urzadzenia,pisanie urzadzenia,zmiana polozenie;
- pobranie artybutow urzadzenia,okreslenie artybutow urzadzenia;
- logiczne przylaczanie lub odlaczenie urzadzen;
4.Utrzymawania informacji
- pobranie czas(time,stime),okreslenie czas(time);
- pobranie danych systemowych,okreslenie danych systemowych;
- pobranie lub okreslenie artrybutow proces,plik i urzadzenenie;
5.Komunikacja
- utworzenie,usuniecie polaczenia komunikacyjnego;
- nadawanie,odbieranie komunikatow;
- przekazanie informacja o stanie;
- przylaczenie lub odlaczenie urzadzen wymiennych;
Podsystem plikow
Podsystem plikow zarzadza plikami:
- przydzielaja na nie pamiec.
- administruja pamiecia wolna.
- steruje dostepem do plikow.
- udostepnia uzytkownikom dane.
Podsytem plikow udostepnia dane z pliku za pomoca mechanizmu
buforowania.Ktory reguluje przeplyw danych miedzy jadrem i
urzadzeniami pamieci pomocniczej.Mechanizm buforowania wspoldziala
z podprogramami obslugi blokowych urzadzen' wejscie-wyjscia w celu
zainicjowania transmisji danych do i z jadra.Podprogramy obslugi
urzadzen sa modulami jadra,ktore steruja praca urzadze peryferyjnych.
Blokowe urzadzennia wejscia-wyjscia sa urzadzenniami pamieci o dostepie
bezposrednim lub tez to ich podprogramy obslugi tworza dla reszty
systemu iluzje takich urzadzen.Podprogram obslugi tasmy moze np:pozwolic
jadru na traktowanie jednostki tasmowej jak urzadzennia pamieci o dostepie
bezposrednim.Podsystemem wejscia-wyjscia wspolpracuje takze bezposrednio
z podprogramami obslugi surowych urzadzen wejscia-wyjscia bez uruchamiania
mechanizmu buforowania.Urzadzennia surowe,czasami nazywane znakowymi,
obejmuja wszystkie urzadzennia,ktore nie sa blokowe.
Proces komunikuja sie z podsystem plikow za pomoca specjalnego zbioru funkcji
systemowych.
Do funkcji systemowych sluzacych do urzadzenia plikow naleza:creat()-tworzenie plikow,
open()-otwierzania pliku z prawem czytania pisanie lub wykonanie ...,close()-
zamkniecie pliku,read(),write(),stat()-do zadawania pytan o artybutoy pliki,
chmod()-do zmiana wlasciciela pliku.Poza tym sa jeszcze duzo funkcje jak lseek(),
chdir(),chroot(),chown(),fstat(),dup(),pipe() ....
Wiecej informacja o tych funkcji jest na temat06(system plikow-funkcje systemowe).
Podsystem sterujacy procesami
Podsystem sterowania procesami odpowiednialny jest za:
- synchronizacja procesy.
- komunikacja miedzy nimi.
- zarzadzania pamiecia.
- szeregowanie procesow.
Podsystem sterowania procesami wspolpracuje z podsystemem plokow podczas
ladowania pliku do pamieci w celu wykonania,Podsystem sterowania procesami
czyta pliki wykonalne do pamieci przed rozpoczeciem ich wykonania.
Podsystem sterowania procesami czyta plik uzytkonywalne do pamieci przed
rozpoczeciem ich wykonywania Wtedy wspolpracuje z podsystemem plikow
Proces jest wykonaniem programu i sklada sie za zbiorowosci bajtow,ktore CPU
interpretuje jako instrukcje maszynowe,dane i stos.Jadro steruje wykonaniem
procesow.Kilka procesow moze byc wcieleniem jednego programu.Jadro identifikuje
kazdy proces za pomoca jego numer,zwanego identifikatorem procesu(PID).Proces
0 jest procesem specjalnym,tworzonym "recznie".
Do funkcji systemowych sluzacych do sterowania procesami naleza:fork()-utworz
nowy proces,exec()-naloz obraz program na program wykonywanego procesu,exit()-
zakoncz wykonywanego procesu,wait()-zsynchronizuje wykonywanie prosecu z
zakonczeniem wykonania procesu utworzonego wczesniej za pomoca funkcji fork,
brk()-skontroluj rozmiar pamieci przydzielonej procesowi,signal()-ustal reakcje
procesu na nietypowe zdarzenia.
Wiecej informacja o tych funkcji jest na temat02(zarzadzanie procesami).
- Komunikacja miedzyprocesowa jest kilka sposobow--od asynchronicznego sygnalizowania
zdarzen do synchronicznej transmisji komunikatow miedzy procesami,np lacza niezwane-
pipe,komunikaty.
Wiecej informacja o tym jest na temat03(komunikacja miedzy procesami).
- Modul zarzadzajacy pamiecia steruje przydzialem pamieci.Jesli nie ma
dosc pamieci fizycznej na wszystkie procesy,to jadro przesyla je miedzy
pamiecia gowna i pamiecia pomocnicia tak,aby wszystkie mialy szanse
wykonac.Dwie strategie:wymiany i stronicowanie na zadanie.
Wiecej informacja o tym jest na temat04(zarzadzania pamiecia).
- Modul odpowiedzalny za dostep do CPU przydzial go procesom.Ustala
kolejnosc wykonywania procesow,tzn.korzystaja one z procesa az do
chwili.gdy same zwolnia CPU podczas oczekiwania na jakis zasob lub
gdy jadro odbierze im procesor po uplywie przyzielonego kwantu czasu.
Wowczas proces szeregujacy wybiera proces gotowy do wykonania o
najwyzszym priorytecie.
Modul sterujacy sprzetem
Modul sterujacy sprzetem odpowiedzialny za obssulge przerwan' i za
komunikowanie sie z komputerem.Urzadzenia takie jak dyski czy terminale
moga przerywac przce CPU podczas wykonywania procesu.Jesli tak sie
zdarzy.Jadro moze wznowic wykonywanie przerwanego procesu po ukonczeniu
obslugi przerwania.Przerwania nie sa obslugiwanie przez specjalne procesy,
lecz przez specjalne funkcje jadra,wywolywane w kontekscie wykonywanego
wlasnie procesu.
Bibliografia
- Abraham Silberschatz, James L. Peterson,Peter B. Galvin:
PODSTAWOWY SYSTEMOW OPERACYJNYCH
- A. M. Lister,R. D. Eager:WPROWADZENIE DO SYSTEMOW OPERACYJNYCH
- Maurice J.Bach: BUDOWA SYSTEMU OPERACYJNEGO UNIX
Autor: Nguyen Vu Hung