1 Zarządzanie pamięcią operacyjną Zarządzanie procesami Zarządzanie procesami Ogólne składowe systemu Struktury systemów operacyjnych Struktura systemu operacyjnego

10  Download (0)

Full text

(1)

3.1

Struktury systemów operacyjnych

Składowe systemu

Usługi systemu

Wywołania systemowe

Programy systemowe

Struktura systemu

Maszyny wirtualne

Projektowanie i implementacja systemu

Generowanie systemu

Wykład 7, Systemy operacyjne (studia zaoczne) PJWSTK, Adam Smyk, 2016/17

3.2

Struktura systemu operacyjnego

Składowe systemu operacyjnego

 System operacyjny to duży i bardzo złożony system informatyczny.

 Systemy takie muszą mieć modularną strukturę, inaczej trudno poradzić sobie z ich złożonością.

 W typowym systemie operacyjnym wyróżniamy następujące podsystemy:

 …..

 …..

 …..

 …..

3.3

Ogólne składowe systemu

Istnieje kilka dogodnych sposobów patrzenia na SO:

 przegląd świadczonych przez system usług

 Interfejs, który system udostępnia użytkownikom i programistom

 poszczególne części systemu i ich wzajemne powiązania

Wiele współczesnych SO zawiera następujące części składowe:

 zarządzanie procesami

 zarządzanie pamięcią operacyjną

 zarządzanie plikami

 zarządzanie systemem we/wy

 zarządzanie pamięcią pomocniczą

 praca sieciowa

 system ochrony

 system interpretacji poleceń

3.4

Składowe systemu

Zarządzanie procesami

proces to program, który jest wykonywany w sposób sekwencyjny, a podczas jego wykonywania licznik rozkazów określa następną instrukcję w określa

proces wymaga określonych zasobów, w tym czasu procesora, pamięci, plików, urządzeń WE/WY, aby być procesem

program pasywny nie jest procesem - jeden wykonywany program rodzi wiele procesów

3.5

Składowe systemu

Zarządzanie procesami

W odniesieniu do zarządzania procesami SO odpowiada za:

tworzenie i usuwanie zarówno procesów użytkowych, jak systemowych

wstrzymywanie i wznawianie procesów

dostarczanie mechanizmów

»

synchronizacji procesów

»

komunikacji procesów

»

obsługi zakleszczeń

3.6

Składowe systemu

Zarządzanie pamięcią operacyjną

 pamięć operacyjna (PO) jest wielką tablicą słów lub bajtów z przypisanymi im adresami

 PO stanowi magazyn szybko dostępnych danych eksploatowanych wspólnie przez jednostkę centralną i urządzenia WE/WY

 PO jest w zasadzie jedyną pamięcią, którą jednostka centralna może adresować bezpośrednio

 aby rozkazy programu mogły być wykonywane przez procesor, muszą znajdować się w PO

 PO jest pamięcią ulotną;

również traci swoją zawartość w przypadku awarii systemu RAM

 Ale PO może być też pamięcią nieulotną; ROM, EPROM, EEPROM (FLASH)

(2)

3.7

Składowe systemu

Zarządzanie pamięcią operacyjną

 jeśli chcemy uzyskać lepsze wykorzystanie procesora jak i szybszą reakcję komputera na polecenia użytkownika to musimy przechowywać jednoczenie kilka programów

 jest wiele sposobów (algorytmów, strategii) zarządzania PO

 każdy algorytm zarządzania pamięcią wymaga swoistego wspomagania sprzętowego

 w odniesieniu do zarządzania PO system operacyjny odpowiada za:

utrzymanie ewidencji aktualnie zajętych części pamięci wraz z informacją, w czyim są władaniu

decydowanie o tym, które procesy mają być załadowane do zwolnionych obszarów pamięci

przydzielanie i zwalnianie obszarów pamięci stosownie do potrzeb

3.8

Składowe systemu

Zarządzanie plikami

 Komputery mogą przechowywać informację na nośnikach fizycznych kilku różnych typów: taśmy, dyski magnetyczne, dyski optyczne

 Kontrolę nad każdym z tych urządzeń sprawuje tzw. sterownik (sprzętowy i programowy)

 dla wszystkich użytkowników SO tworzy jednolity, logiczny obraz magazynowanej informacji, definiując pliki

plik jest zbiorem powiązanych informacji określonym przez jego twórcę, definiowanym niezależnie od fizycznych własności używanych urządzeń pamięci

 W plikach przechowuje się programy oraz dane

 SO realizuje abstrakcyjny model plików przez zarządzanie pamięci masowej

 Dodatkowo w zależności od SO pliki mogą być dzielone na kilka typów:

Katalogi – służące do organizacji systemu plików (spis odwołań do innych plików)

Dowiązania – skróty, linki symboliczne, linki sztywne

Pliki specjalne takie jak gniazda, kolejki FIFO itp…

Pliki wykonywalne, skrypty, pliki wsadowe

Pliki tekstowe, binarne

3.9

Składowe systemu

Zarządzanie plikami cd.

w

odniesieniu do zarządzania plikami SO odpowiada za:

tworzenie i usuwanie plików

tworzenie i usuwanie katalogów

dostarczanie elementarnych operacji do manipulowania plikami i katalogami

odwzorowanie plików na obszary pamięci pomocniczej

składowanie plików na trwałych nośnikach pamięci (na których informacja nie znika)

Typy systemów plików:

Linux - minix,ext,..,ext4,ReiserFS,………

DOS - FAT,FAT16,FAT32

Windows - NTFS,FAT32,WinFS,VFAT

CD/DVD - ISO9660,UDF

3.10

Składowe systemu

Zarządzanie plikami cd.

 Wirtualny System Plików – (VFS):

Abstrakcyjny (wirtualny) poziom umożliwiający jednolity dostęp do różnorodnych, rzeczywistych systemów plików.

Standardowe odwołania systemowe (read, write) są konwertowane na odwołania specyficzne dla konkretnego systemu plików (readext, writeext)

3.11

Składowe systemu

Zarządzanie plikami cd.

 Ext i UFS – pojecie i-node

Pole Opis

i_mode typ pliku (dowiązanie symboliczne, zwykły plik, folder, urządzenie znakowe, urządzenie blokowe, gniazdo, kolejka FIFO) i prawa dostępu

i_uid Identyfikator właściciela pliku i_size Długość pliku w bajtach i_atime Czas ostatniego dostępu (w sekundach od epoki

Uniksa)

i_ctime Czas ostatniej zmiany i-węzła (jw.) i_mtime Czas ostatniej zmiany zawartości pliku (jw.) i_dtime Czas usunięcia pliku (jw.) i_gid Identyfikator grupy i_links_co unt

Licznik twardych dowiązań do pliku

i_blocks Liczba bloków danych pliku (po 512 bajtów) i_flags Flagi pliku ("tylko dodawanie (append only)", "nie

można zmieniać (immmutable)", i inne) i_block Wskaźniki do bloków danych (zwykle 13,

pierwszych 10 to wskaźniki bezpośrednie, jeden pośredni, jeden podwójnie pośredni, jeden potrójnie pośredni) i_file_acl Lista kontroli dostępu do pliku (ACL)

i_dir_acl Lista kontroli dostępu katalogu

3.12

Podsystem wejścia/wyjścia

Składowe systemu operacyjnego

Podsystem ten ukrywa przed użytkownikiem szczegóły dotyczące urządzeń wejścia/wyjścia.

W jego skład wchodzą:

moduły sterujące poszczególnych urządzeń, ukrywające szczegóły charakterystyczne dla poszczególnych urządzeń,

ujednolicony interfejs modułów sterujących urządzeniami,

moduł zarządzający buforowaniem i czytaniem z

wyprzedzeniem pamięci pomocniczej.

(3)

3.13

Składowe systemu

Zarządzanie systemem WE/WY

 W systemie UNIX osobliwości urządzeń WE/WY są ukrywane przed większością samego SO

 Składa się on z:

części zarządzającej pamięcią wliczając w to buforowanie, pamięć podręczną i spooling

ogólnego interfejsu do modułów sterujących urządzeń

modułów sterujących (programów obsługi) poszczególnych urządzeń sprzętowych

osobliwości konkretnego urządzenia zna tylko odpowiadający mu moduł sterujący

3.14

Składowe systemu

Zarządzanie pamięcią pomocniczą

Pamięć operacyjna (PO) jest ulotna i zbyt mała, aby stale przechowywać wszystkie dane i programy, system komputerowy musi mieć pamięć pomocniczą będącą zapleczem PO

Większość współczesnych systemów komputerowych posługuje się pamięcią dyskową jako podstawowym środkiem magazynowania informacji

Programy, w tym kompilatory, asemblery, procedury sortujące, edytory jest przechowywana na dysku

SO odpowiada, w odniesieniu do zarządzania dyskami, za:

zarządza urządzeniami pamięci pomocniczej (zwykle jest to pamięć dyskowa),

śledzi, które obszary są wolne, a które zajęte,

przydziela pamięć, szereguje odwołania do pamięci pomocniczej.

Pamięć pomocnicza jest często używania i dlatego musi działać wydajnie

Ogólna szybkość działania komputera może zależeć od podsystemu dyskowego i stosowanych w nim algorytmów

3.15

Składowe systemu

Praca sieciowa (systemy rozproszone)

 System rozproszony jest zbiorem procesów, które nie dzielą pamięci i zegara; każdy procesor ma własną lokalną pamięć

 Procesory w systemie rozproszonym są połączone za pomocą sieci komunikacyjnej

 Komunikacja odbywa się z wykorzystaniem stosu protokołów.

 System rozproszony umożliwia użytkownikom dostęp do różnych zasobów systemu dostęp do wspólnych zasobów pozwala na:

zwiększenie szybkości obliczeń

zwiększenie dostępności danych

zwiększenie niezawodności systemu

3.16

Składowe systemu

Systemy ochrony

 System komputerowy ma wielu użytkowników i umożliwia współbieżne wykonywanie wielu procesów, które trzeba chronić przed wzajemnym oddziaływaniem

 Ochrona jest mechanizmem nadzorowania dostępu programów, procesów lub użytkowników do zasobów systemu komputerowego

 Mechanizm ochrony musi:

umieć rozpoznać autoryzowaną i nieautoryzowaną próbę użycia zasobów

zawierać środki do wymuszenia zaprowadzonych ustaleń

 System ochrony wykrywa błędy ukryte w interfejsach między składowymi podsystemu

3.17

Składowe systemu

System interpretacji poleceń

 Interpreter poleceń będący interfejsem między użytkownikiem a SO jest albo zawarty w jądrze SO, lub jak w MS-DOS, UNIX-ie, jest specjalnym programem wykonywanym przy rozpoczęciu zadania lub zalogowaniu się

 Wiele poleceń jest przekazywanych do SO za pomocą instrukcji sterujących

 Program interpretujący instrukcje sterujące w UNIX-ie to powłoka (shell)

 Inne nazwy takiego programu to:

 interpreter kart sterujących

 interpreter wiersza poleceń

• Polecenia rozpoznawane przez interpreter dotyczą:

• tworzenia procesów i zarządzania nimi

• obsługi WE/WY

• administrowania pamięcią pomocniczą i operacyjną

• dostępu do plików

• ochrony

• pracy sieciowej

3.18

Usługi systemu operacyjnego

wykonanie programu - zdolność systemu do załadowania programu do pamięci i rozpoczęcia jego wykonywania

operacje WE/WY - ponieważ programy użytkowników nie mogą wykonywać bezpośrednio operacji WE/WY, SO musi zapewnić środki do realizacji tych czynności

manipulowanie systemem plików - zdolność programu do czytania, pisania, tworzenia i usuwania plików

komunikacja - wymiana informacji między procesami działającymi albo w tym samym procesorze lub na różnych systemach powiązanych za pomocą sieci;

Dwa mechanizmy implementacji komunikacji:

komunikacja za pomocą pamięci dzielonej

komunikacja z użyciem techniki przekazywania komunikatów (za pośrednictwem SO)

(4)

3.19

Usługi systemu operacyjnego cd.

wykrywanie błędów

w jednostce centralnej i pamięci : sprzętowa wada pamięci lub awaria zasilania, itp.

w urządzeniach WE/WY : błąd parzystości na taśmie, awaria połączenia w sieci, brak papieru w drukarce, itp.

w programie użytkownika: np. nadmiar arytmetyczny, próba sięgnięcia poza obszar pamięci programu, przekroczenie przydzielonego czasu procesora

Na wszystkie rodzaje błędów SO powinien odpowiednio zareagować, gwarantując poprawność i spójność obliczeń.

3.20

Dodatkowe funkcje SO

Nie są one przeznaczone do pomagania użytkownikowi, lecz do zapewnienia efektywnego (optymalizacja) działania systemu

przydzielanie zasobów - przydział zasobów dla wielu użytkowników i wielu zadań pracujących w tym samym czasie, np. planowanie przydziału czasu procesora

rozliczanie - przechowywanie danych o tym, którzy użytkownicy i w jakim stopniu korzystają z poszczególnych zasobów komputera (wystawianie rachunków, statystyka, rekonfiguracja)

ochrona - zapewnienie, że całkowity dostęp do zasobów jest kontrolowany

3.21

Wywołania systemowe

 Funkcje systemowe (wywołania systemowe, system calls) tworzą interfejs między wykonywanym programem a SO

ogólnie dostępne poprzez rozkazy w języku assemblera

kilka języków programowania (C, Bliss, PL/360, PERL) zdefiniowano tak, aby umożliwić bezpośrednie wykonywanie wywołań funkcji systemowych

3.22

http://docs.cs.up.ac.za/programming/asm/derick_

tut/syscalls.html

3.23

 używane są zasadniczo trzy metody przekazywania parametrów wykonywanego programu do SO:

umieszczenie parametrów w rejestrach jednostki centralnej

przechowanie parametrów w tablicy w pamięci, a jej adresu w rejestrze

program składa parametry na stosie, skąd zdejmowane są przez SO

Wywołania systemowe

3.24

Wywołania systemowe cd.

ilustracja sposobu używania funkcji systemowych, np.

program czytający dane z jednego pliku i kopiujący je do innego pliku.

program będzie potrzebował podania nazw obu plików;

będzie to wymagało ciągu odwołań do funkcji systemowych w celu:

 wypisania na ekranie symbolu zachęty do pisania

 czytania z klawiatury znaków definiujących oba pliki

 otworzenia pliku wejściowego i utworzenia pliku wyjściowego; możliwe jest tu wystąpienie błędów:

nie istnieje plik o podanej nazwie

komunikat na konsoli (ciąg wywołań f.

systemowych)

zakończenie działania programu na warunkach wyjątkowych (kolejne wywołania f. systemowych)

jest już plik o takiej nazwie

...

...

(5)

3.25

Wywołania systemowe cd.

gdy oba pliki są przygotowane można rozpocząć pętlę czytania z pliku wejściowego (wywołania f. systemowej) i pisania do pliku wyjściowego (wywołania f. systemowej)

każda operacja czytania/pisania musi przekazać informację o wyniku jej wykonania, uwzględniając różne możliwe przyczyny błędów (brak miejsca na dysku, fizyczny koniec taśmy, itp.)

po skopiowaniu całego pliku program może zamknąć oba pliki (kolejne wywołania f. system.), po czym skończyć działanie w normalny sposób (ostatnie odwołanie f.

systemowej)

3.26

Przekazywanie parametrów za pomocą tablicy

3.27

Rodzaje wywołań systemowych

 Nadzorowanie procesów

 zakończenie (end), zaniechanie (abort);

 załadowanie (load), wykonanie (execute);

 utworzenie procesu (create process), zakończenie procesu (terminate process);

 pobieranie atrybutów procesu (get process attributes), określenie atrybutów procesu (set process attributes);

 czekanie czasowe (wait for time)

 oczekiwanie na zdarzenie (wait for event), sygnalizacja zdarzenia (signal event);

 przydział i zwolnienie pamięci (allocate and free memory)

 Operacje na plikach

 utworzenie pliku (create file), usunięcie pliku (delete file);

 otwarcie (open), zamknięcie (close);

 czytanie (read), pisanie (write), zmiana położenia (reposition);

 pobieranie atrybutów pliku (get file attributes), określenie atrybutów pliku (set file attributes)

3.28

Rodzaje wywołań systemowych cd.

 Operacje na urządzeniach

 zamówienie urządzenia (request device), zwolnienie urządzenia (release device)

 czytanie (read), pisanie (write), zmiana położenia (reposition);

 pobieranie atrybutów urządzenia (get device attributes), określenie atrybutów urządzenia (set device attributes)

 logiczne przyłączanie lub odłączanie urządzeń (logically attach or detach devices)

 Utrzymywanie informacji

 pobieranie czasu lub daty (get time or date), określenie czasu lub daty (set time or date)

 pobieranie danych systemowych (get system data), określenie danych systemowych (set system data)

 pobieranie atrybutów procesu, plkiu lub urządzenia (get process, file or device attributes)

 określenie atrybutów procesu, pliku lub urządzenia (set process, file or device attributes)

3.29

Rodzaje wywołań systemowych cd.

 Komunikacja

 utworzenie, usunięcie połączenia komunikacyjnego (create, delete communication connection)

 nadawanie, odbieranie komunikatów (send, receive messages)

 przekazanie informacji o stanie (transfer status information)

 przyłączanie lub odłączanie urządzeń zdalnych (attach or detach remote devices)

3.30

Działanie systemu MS-DOS 1.

interpretator poleceń wywoływany jest na początku pracy komputera; nie tworzy

nowego procesu podczas uruchamiania nowego programu

2.

system wprowadza program do pamięci operacyjnej, nawet kosztem większości własnego kodu

3.

następnie ustawia licznik rozkazów na pierwszy rozkaz programu i program zaczyna się wykonywać

4.

jeśli wystąpi błąd podczas jego wykonania, uaktywnia się odpowiednia pułapka systemowa, albo program zatrzyma się wykonując odpowiednią funkcję systemową

5.

w obu przypadkach kod błędu zostanie przechowany w pamięci systemu do późniejszego użytku

6.

następnie interpretator ładuje z dysku resztę swojego kodu

MS-DOS, chociaż nie jest wielozadaniowy, dostarcza sposobów na okrojone działanie współbieżne:

"przechwytuje przerwanie" po czym kończy pracę za pomocą funkcji systemowej "zakończ i pozostań w pogotowiu"

może przechwytywać przerwania zegara

(6)

3.31

Działanie systemu MS-DOS

3.32

UNIX- system wielozadaniowy

1. gdy użytkownik rejestruje się w systemie, wówczas wybiera odpowiednią wersję interpretatora poleceń (powłoka, shell)

2. w celu zapoczątkowania nowego procesu, shell wykonuje funkcję systemową fork

3. wówczas nowy program zostaje załadowany do pamięci za pomocą funkcji systemowej exec i rozpoczyna pracę

4. w zależności od wydanego polecenia, shell oczekuje na zakończenie działania procesu (proces pierwszoplanowy), albo powoduje, że proces będzie wykonywany "w tle" (proces drugoplanowy)

5. w drugim przypadku shell jest natychmiast gotowy do przyjmowania następnych poleceń; proces wykonywany w tle nie może otrzymać danych z klawiatury, ponieważ zasobu tego używa powłoka

6. procesy w tle wykonują operacje WE/WY za pośrednictwem plików 7. pod koniec pracy proces wywołuje funkcję systemową exit, która kończy jego

działanie i powoduje przekazanie procesowi, który go wywołał, kodu stanu zakończenia programu

3.33

UNIX- system wielozadaniowy

3.34

Komunikacja międzyprocesowa

3.35

Modele komunikacji

Model przekazywania komunikatów

 informacja jest wymieniana przez międzyprocesowe środki komunikacji które dostarcza SO

 przed rozpoczęciem komunikacji należy nawiązać połączenie (funkcja systemowe odebranie połączenia)

 musi być znana nazwa odbiorcy: inny proces w tym samym procesorze lub proces w innym komputerze

 każdy komputer w sieci ma swoją nazwę sieciową

 każdy proces ma swoją nazwę procesu

 funkcje systemowe pobranie nazwy sieciowej i pobranie nazwy procesu tłumaczą te nazwy na identyfikatory, których używa SO

 proces odbiorcy musi zazwyczaj udzielić zgody na nawiązanie komunikacji za pomocą funkcji akceptującej połączenie

 większość procesów realizujących połączenia to tzw. demony

3.36

Modele komunikacji cd.

Cd. Model przekazywania komunikatów

 Wywołują one czekania na połączenie i są budzone gdy połączenie zostanie nawiązane

 źródło komunikacji (klient) i demon odbiorcy (server) wymieniają komunikaty za pomocą funkcji systemowych czytania komunikatu i pisania komunikatu

 wywołanie funkcji zamknięcie połączenia kończy komunikację

Przesyłanie komunikatów jest przydatne do bezpośredniej wymiany mniejszych ilości danych oraz w komunikacji międzykomputerowej

(7)

3.37

Modele komunikacji cd.

model pamięci dzielonej

 wspólne użytkowanie przez procesy pewnego obszaru pamięci

 procesy wymieniają informację przez pisanie i czytanie do wspólnie użytkowanych obszarów pamięci

 procesy określają postać danych i ich miejsce w pamięci wspólnej; nie podlega to kontroli SO

 procesy muszą dopilnować, aby nie zapisywać jednocześnie tego samego miejsca pamięci; niezbędne są do tego pewne mechanizmy

 pamięć dzielona zapewnia maksymalna szybkość i wygodę komunikacji; w obrębie jednego komputera może ona przebiegać z szybkością działania pamięci operacyjnej

 problemy z zakresu ochrony i synchronizacji

3.38

Programy systemowe

 Tworzą one wygodne środowisko do opracowywania i wykonywania programów. Można je podzielić na kilka kategorii

 manipulowanie plikami (tworzenie, usuwanie, kopiowanie, przemianowywanie, składowanie , wyprowadzanie zawartości plików / katalogów)

 informacje o stanie systemu (data, czas, ilość dostępnej pamięci,...)

 tworzenie i zmienianie zawartości plików (różne odmiany edytorów)

 translatory języków programowania (kompilatory, assembliery, interpretatory)

 ładowanie i wykonywanie programów

 komunikacja (tworzenie wirtualnych połączeń między procesami, użytkownikami, systemem komputerowym)

 programy aplikacyjne (przeglądarki WWW, bazy danych, arkusze kalkulacyjne, ...)

3.39

Programy systemowe cd.

 najważniejszy program systemowy, to interpreter poleceń;

 dwa sposoby jego realizacji:

 interpreter poleceń sam zawiera kod wykonywanych poleceń

 alternatywna metoda w UNIX-ie: polecenia systemowe są wykonywane przez specjalne programy systemowe; polecenie służy jedynie do zidentyfikowania pliku, który ma być załadowany do pamięci i wykonany; interpreter jest niewielki, a programista ma możliwość dołączania nowych poleceń

 sposób w jaki większość użytkowników postrzega SO jest określany w większym stopniu przez programy użytkowe, aniżeli funkcje systemowe:

 ten sam zbiór funkcji systemowych w np. Microsoft Windows może być oglądany przez:

 powłokę poleceń CMD

 interfejs graficzny z myszką i oknami

3.40

Struktura systemu MS-DOS

MS-DOS - zaprojektowany (dla mikroprocesora INTEL 8088) pod kątem osiągnięcia maksymalnej

funkcjonalności, przy oszczędności przestrzeni pamięci

nie jest podzielony na moduły

chociaż ma pewną strukturę, jego interfejsy i poziomy funkcjonalne nie są wyraźnie wydzielone

nie ma dualnego trybu pamięci, ani ochrony sprzętowej

3.41

Warstwowa struktura system MS-DOS

Programy użytkowe

Rezydentne programy systemowe

Moduły obsługi urządzeń z poziomu MS-DOS

Moduły obsługi urządzeń w pamięci ROM BIOS

3.42

Struktura systemu UNIX

 UNIX - inny przykład ograniczonej strukturalizacji;

początkowo również był ograniczony przez cechy sprzętu składa się z 2 odrębnych części

 programów systemowych

 jądra

wszystko co znajduje się poniżej interfejsu funkcji systemowych i powyżej sprzętu

za pośrednictwem funkcji sprzętowych udostępnia system plików, planowanie przydziału procesora, zarządzanie pamięcią; duża liczba funkcji na jednym poziomie

 funkcje systemowe definiują interfejs programisty z systemem UNIX; zbiór programów systemowych określa interfejs użytkownika

(8)

3.43

Struktura systemu UNIX

Użytkownicy Powłoki i polecenia Kompilatory i interpretery

Biblioteki systemowe Interfejs funkcji systemowych jądra

Sygnały Obsługa terminali System znakowego

wejścia-wyjścia Moduły sterujące

terminalami

System plików Wymiana System blokowego

wejścia-wyjścia Moduły sterujące dysków i taśm

Planowanie Przydziału procesora

Zastępowanie stron Stronicowanie

na żądanie Pamięć wirtualna

Interfejs między jądrem a sprzętem Sterowniki terminali

Terminale

Sterowniki urządzeń Dyski i taśmy

Sterowniki pamięci Pamięć operacyjna

3.46

Podejście warstwowe

Nowe operacje

Istniejące operacje

Ukryte operacje

Warstwa M

. . . .

. .

. . .

Warstwa M-1

3.48

Struktura systemu Microkernel

 Wszystkie „zbędne elementy” przeniesiono z jądra do przestrzeni użytkownika

 Komunikacja odbywa się pomiędzy modułami użytkownika za użyciem przekazywania wiadomości.

 Zalety:

- łatwiej rozszerzyć microkernel

- łatwiej przenieść system operacyjny na nowe architektury - bardziej niezawodny (mniej kodu jest uruchomione w trubie jądra)

- bardziej bezpieczny

3.50

Maszyny wirtualne

 ogólnego punktu widzenia system komputerowy jest zbudowany z warstw:

1. najniższy poziom: sprzęt

2. następny poziom: jądro systemu; użyto w nim rozkazów sprzętowych do utworzenia zbioru funkcji systemowych, używanych w zewnętrznych warstwach

3. w programach systemowych występujących powyżej jądra systemu używa się funkcji systemowych na równi z rozkazami sprzętowymi 4. oba rodzaje operacji pozwalają zaprogramować bardziej złożone funkcje,

a sprzęt i funkcje systemowe traktuje się tak jakby należały do tego samego poziomu

5. niektóre systemy idą dalej: umożliwiają łatwe wywoływanie programów systemowych przez programy użytkowe

6. logiczną konkluzją tak pojmowanej warstwowości jest koncepcja maszyny wirtualnej

3.51

Maszyny wirtualne cd.

 W wirtualnej maszynie traktuje się zarówno sprzęt jak i jądro SO jako sprzęt

 stosując planowanie przydziału procesora oraz technikę pamięci wirtualnej, SO może tworzyć złudzenie, że wiele procesów pracuje na własnych procesorach, z własną (wirtualną) pamięcią

 maszyna wirtualna tworzy interfejs identyczny z podstawowym sprzętem; każdy proces otrzymuje (wirtualną) kopię komputera

 zasoby fizycznego komputera są określone w celu utworzenia maszyn wirtualnych

 planowanie przydziału procesora powoduje powstanie wrażenia, że każdy użytkownik ma własny procesor

 spooling i system plików pozwalają utworzyć wirtualne czytniki kart i wirtualne drukarki wierszowe

 zwykły terminal do pracy z podziałem czasu przejmuje rolę wirtualnej konsoli operatorskiej

 system operacyjny VM dla maszyn IBM jest najlepszym przykładem koncepcji maszyn wirtualnych

3.52

Zalety i wady maszyn wirtualnych

zalety / wady maszyn wirtualnych

 koncepcja maszyny wirtualnej zapewnia pełną ochronę zasobów systemowych, ponieważ każda maszyna wirtualna jest izolowana od innych maszyn wirtualnych; z drugiej strony nie ma bezpośredniej możliwości wspólnego bezpośredniego użytkowania zasobów

 system wirtualnych maszyn stanowi znakomite narzędzie badań nad SO i poszukiwań kierunków ich rozwoju;

programiści systemowi otrzymują własną maszynę wirtualną i to na niej, zamiast na maszynie fizycznej, odbywa się eksperymentowanie / konserwacja SO

 maszyny wirtualne stają się sposobem rozwiązania zagadnień zgodności systemów np. utworzenie maszyny wirtualnej Intel (programy pod MS DOS) nadbudowanej nad rdzennym procesorem np. firmy Sun Microsystems

(9)

3.53

Modele systemu

3.54

Wirtualna maszyna Java

 Język Java (Sun Microsystems) jest innym przykładem ciągłości koncepcji maszyn wirtualnych

 kompilator Javy wytwarza tzw. kod pośredni (czy bajtkod) zawierający instrukcje wykonywane przez wirtualną maszynę Javy (Java Virtual Machine - JVM)

 aby program w Javie mógł być wykonany na jakiejś platformie, musi w niej działać maszyna JVM

 JVM działa na wielu typach komputerów, na przeglądarkach sieciowych, a także na małym systemie operacyjnym Java OS

 urządzenia specjalizowane np. telefony komórkowe mogą być oprogramowane z użyciem Javy

 koncepcja maszyny wirtualnej jest trudna do implementacji, zrealizowanie dokładnej kopii maszyny bazowej wymaga wielkiego wysiłku

3.55

Wirtualna maszyna Java

3.56

Założenia projektowe i implementacja systemu operacyjnego

System operacyjny powinien być projektowany zgodnie z:

celami użytkowników – czyli powinien być wygodny i łatwy w użyciu, łatwy do nauki, niezawodny, bezpieczny i szybki

cele systemu - czyli powinien być łatwy do

zaprojektowania, implementacji, utrzymywania i obsługi;

powinien być elastyczny, niezawodny, wolny od błędów i wydajny

 Jest to sposób relatywnie trudny, a sformułowanie specyfikacji i projektowanie SO jest pracą twórczą;

ogólne zasady są natomiast określone w ramach inżynierii oprogramowania.

3.57

Założenia projektowe i implementacja systemu operacyjnego

Mechanizm a polityka

Polityka decyduje co ma być zrobione

Mechanizmy określają jak czegoś dokonać;

np. mechanizmem gwarantującym ochronę procesora jest czasomierz; decyzja o tym na jak długo czasomierz jest nastawiany dla poszczególnych użytkowników, leży w sferze polityki

Odseparowanie polityki od mechanizmów jest bardzo ważne; pozwala na maksymalną elastyczność systemu w sytuacji późniejszych zmian polityki

Można zdefiniować pewien mechanizm (związany, powiedzmy z priorytetami operacji), który w zależności od polityki będzie, albo uprzywilejowywał operacje wejścia/wyjścia, albo operacje np.:

arytmetyczne.

3.58

Założenia projektowe i implementacja systemu operacyjnego

Implementacja systemu

 Tradycyjne SO-e pisano w językach asemblera, obecnie można je pisać w językach wyższego poziomu pierwszy SO napisany nie w asemblerze to MCP napisany w Algolu; następnie

MULTICS w PL/1

Primus w Fortranie

UNIX, OS/2, Windows NT niemal w całości w języku C (tylko 900 linii kody w UNIX-ie napisano w asemblerze)

 Kodując SO w języku wysokiego poziomu uzyskuje się:

szybką implementację

bardziej zwarty kod

łatwiej zrozumiały i poprawny kod

jest znacznie łatwiejsze przenoszenie systemu na inne platformy sprzętowe

 Po pełnym przetestowaniu, efektywność działania SO zakodowanego w języku wysokiego poziomu można zwiększyć, tłumacząc najbardziej czasochłonne procedury (wąskie gardła) na asembler

(10)

3.59

Generowanie systemu (SYSGEN)

 SO-e są projektowane tak, aby mogły działać na dowolnej klasie maszyn, w instalacjach ze zmienną konfiguracją urządzeń zewnętrznych; system musi być skonfigurowany dla każdej specyficznej instalacji komputera;

 Program generujący system, SYSGEN uzyskuje informacje dotyczące specyficznej konfiguracji (typ i ilość procesora, pamięci, urządzenia I/O, inne wymagania….) systemu dane te mogą być wykorzystane na kilka sposobów:

zostaną wprowadzone zmiany w kopii kodu źródłowego systemu i musi nastąpić jego całkowita kompilacja

zostaną utworzone tablice i wybrane zawczasu skompilowane moduły, a następnie skonsolidowane

zostanie generowany system całkowicie sterowany tablicami

 rozruch (booting) - start przez załadowanie jądra systemu przez program rozruchowy zapisany w pamięci ROM, a najczęściej program ten odczytuje z dysku położenie pliku jądra SO, dzięki czemu w elastyczny sposób możemy dostosowywać maszynę do wymagań użytkowników.

Figure

Updating...

References

Related subjects :