architektury systemÓw operacyjnychftp.pwsz.glogow.pl/.../arch_komp_sys_oper/wyklad6.pdf · 6...

Post on 21-Jul-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ARCHITEKTURY SYSTEMÓWOPERACYJNYCH

dr hab. inż. Krzysztof Patan, prof. PWSZ

Instytut PolitechnicznyPaństwowa Wyższa Szkoła Zawodowa w Głogowie

k.patan@issi.uz.zgora.pl

Wprowadzenie

Systemy operacyjne nie są jednym spójnymtworem, lecz są zbudowane z wielu pomniejszychskładowych

Każda ze składowych powinna być dobrzeokreślonym fragmentem systemu ze staranniezdefiniowanym wejściem, wyjściem i działaniem

Każdy system operacyjny jest inaczejzbudowany, ale większość posiada podobneskładowe

Główne składowe systemów operacyjnych� moduł zarządzania procesami� moduł zarządzania pamięcią operacyjną� moduł zarządzania plikami� moduł zarządzania systemem wejścia–wyjścia� moduł zarządzanie pamięcią pomocniczą� praca sieciowa� system ochrony� system interpretacji poleceń

Zarządzanie procesami

* Proces – program, który jest wykonywany, np. zadaniesystemowe, program wsadowy, program użytkownika, zadaniedo drukowania

* Proces musi korzystać z pewnych zasobów systemukomputerowego, np. czasu CPU, pamięci, plików, urządzeńperyferyjnych

* Zasoby mogą być przydzielone procesowi w chwili jegoutworzenia, lub podczas jego wykonywania

* Po zakończeniu działania procesu, system komputerowyodzyskuje wszelkie zasoby przez niego wykorzystywane inadające się do powtórnego użytku

* Proces – jednostka pracy w systemie; system składa się zezbioru procesów, część z nich to procesy systemuoperacyjnego, pozostałe – procesy użytkownika

* Program – jest elementem pasywnym i sam w sobie nie jestprocesem

* Proces – element aktywny, w którym licznik rozkazówwskazuje następną instrukcję do wykonania:• proces jest wykonywany sekwencyjnie• CPU wykonuje instrukcje jedna po drugiej• na żądanie procesu może być jednocześnie wykonana conajwyżej jedna instrukcja• z jednym programem może być powiązanych wiele procesów,zawsze rozważa się je jako oddzielne ciągi instrukcji

� W odniesieniu do zarządzania procesami systemoperacyjny odpowiada za:

1 tworzenie i usuwanie procesów użytkowych i systemowych

2 wstrzymywanie i wznawianie procesów

3 dostarczanie mechanizmów synchronizacji procesów

4 dostarczanie mechanizmów komunikacji procesów

5 dostarczanie mechanizmów obsługi zakleszczeń

Zarządzanie pamięcią operacyjną

* Pamięć operacyjna – kluczowy element każdego systemukomputerowego

* Pamięć to ”magazyn” szybko dostępnych danychwykorzystywanych przez CPU i urządzenia IO

* Przykładowe wykonywanie cyklu rozkazów1 czytanie → pamięć operacyjna → wykonywanie2 pobieranie danych z dysku → pamięć operacyjna → czytaniedanych przez proces → wykonywanie

* W celu wykonania programu, należy go zaadresować orazzaładować do pamięci

* Podczas wykonywania programu, rozkazy i dane są pobieranez pamięci za pomocą generowania potrzebnych adresów

� Lepsze wykorzystanie CPU oraz szybsza odpowiedźkomputera – przechowywanie w pamięci kilku programówjednocześnie

� W odniesieniu do zarządzania pamięcią operacyjną systemoperacyjny odpowiada za:

1 utrzymywanie ewidencji aktualnie zajętych części pamięci wrazz informacją w czyim są władaniu

2 decydowanie, które procesy mają być załadowane dozwolnionych obszarów pamięci

3 przydzielanie i zwalnianie obszarów pamięci stosownie dopotrzeb

Zarządzanie plikami

* Najbardziej widoczna część systemu operacyjnego

* Dane można przechowywać na różnego rodzaju nośnikach:magnetycznych, optycznych, itp.

* Dla wygody użytkownika system operacyjny tworzyjednolity, logiczny obraz magazynowanej informacji:

• definiuje on pliki niezależnie od fizycznych właściwościużywanych urządzeń przechowywania informacji

• system operacyjny odwzorowuje pliki na fizyczne nośnikiinformacji

• umożliwia do nich dostęp za pomocą urządzeń pamięci

* Jeśli wielu użytkowników ma dostęp do tych samychplików to jest pożądane sprawowanie pieczy nad tym kto iw jaki sposób korzysta z tego dostępu

* W odniesieniu do zarządzania plikami system operacyjnyodpowiada za:

1 tworzenie i usuwanie plików

2 tworzenie i usuwanie katalogów

3 dostarczenie elementarnych operacji do manipulowania plikamii katalogami

4 odwzorowanie plików na obszary pamięci pomocniczej5 składowanie plików na trwałych nośnikach pamięci

Zarządzanie urządzeniami wejścia–wyjścia

* Jednym z celów systemu operacyjnego jest ukrywanie przedużytkownikiem szczegółów dotyczących specyfiki urządzeńsprzętowych

* Przykładem poprawnie zaprojektowanego systemu jest systemUNIX, gdzie osobliwości urządzeń I/O są ukryte przedwiększością samego systemu przez tzw. podsystemwejścia–wyjścia

* Podsystem wejścia–wyjścia składa się z:• części zarządzającej pamięcią (buforowanie, pamięć podręczna,spooling)• ogólnego interfejsu do modułów sterujących urządzeń• modułów sterujących (programów obsługi) poszczególnychurządzeń sprzętowych

* Osobliwości poszczególnego urządzenia wejścia–wyjścia znatylko odpowiadający mu moduł sterujący

Zarządzanie pamięcią pomocniczą

* Pamięć operacyjna jest za mała aby pomieścić wszystkie danei programy

* Zawarte w niej dane giną po odcięciu zasilania

* System komputerowy powinien posiadać zatem pamięćpomocniczą będącą zapleczem dla pamięci operacyjnej

* Pamięcią dyskową jako podstawowym środkiemmagazynowania zarówno danych jak i programów

* W odniesieniu do zarządzania pamięcią operacyjną, systemoperacyjny odpowiada za:1 zarządzanie obszarami wolnymi2 przydzielaniem pamięci3 planowaniem przydziału obszarów pamięci dyskowej

System ochrony

* W systemie z wieloma użytkownikami i współbieżniewykonywanymi wieloma procesami poszczególne procesynależy chronić przed wzajemnym oddziaływaniem

* Należy opracować mechanizmy gwarantujące, że pliki,segmenty pamięci, procesor i inne zasoby będą użytkowanetylko przez te procesy, które zostały przez system operacyjnyodpowiednio uprawnione

* Ochrona – mechanizm nadzorowania dostępu programów,procesów lub użytkowników do zasobów zdefiniowanych przezsystem komputerowy

* Mechanizmy ochrony zawierają sposoby określenia, co i wjakiej formie ma podlegać ochronie, jak również środki dowymuszania zaprowadzonych ustaleń

* Za pomocą działań ochronnych można polepszaćniezawodność systemu poprzez poszukiwanie błędów ukrytychw interfejsach między składowymi podsystemami‘

* Wczesne wykrywanie błędów w interfejsach może zapobieczanieczyszczeniu zdrowego podsystemu przez podsystemuszkodzony

* Zasoby niechronione nie mogą obronić się przed użyciem lubnadużyciem przez nieupoważnionego lub niekompetentnegoużytkownika

* System ochrony dostarcza środków do rozróżniania międzyprawomocnym i nieprawomocnym użyciem

System interpretacji poleceń

* Interpreter poleceń – jeden z najważniejszych programóww systemie operacyjnym

* Interpreter poleceń – interfejs pomiędzy użytkownikiem, asystemem operacyjnym

• niektóre systemy zawierają interpreter poleceń w swoimjądrze

• w innych systemach (MS-DOS, UNIX) interpreterpoleceń jest specjalnym programem – powłoką(interpreterem wiersza poleceń)

* Systemy operacyjne często różnią się od siebie warstwąpowłoki• przyjazny interpreter – systemy Apple Macintosh i MicrosoftWindows – operowanie za pomocą systemu okien i menu orazmyszki• interpretery trudniejsze do opanowania lecz o większychmożliwościach – systemy MS-DOS, UNIX – polecenia pisanena klawiaturze są wyświetlane na monitorze lub drukowane

* Polecenia rozpoznawane przez interpreter dotyczą:1 tworzenia procesów i zarządzanie nimi2 obsługi wejścia–wyjścia3 administrowania pamięcią pomocniczą i operacyjną4 ochrony i pracy sieciowej

Struktury systemów operacyjnych

Wiele systemów nie ma ściśle określonej strukturyMałe systemy często rozszerzano przekraczając pierwotnezałożenia

System MS-DOS

Programy u¿ytkowe

Modu³y obs³ugiurz¹dzeñ z

poziomu MS-DOS

Modu³y obs³ugi urz¹dzeñw pamiêci ROM BIOS

Rezydentne programysystemowe

� wyraźnie rozróżnione poziomy funkcjonalne� z poziomu programów użytkowych można korzystać zpodstawowych procedur IO, np. pisania na ekran czy dyski

� swoboda tego rodzaju powoduje, że system nie jestodporny na błędnie działające programy użytkowe

� możliwość zawieszenia się systemu lub uszkodzeniapodzespołów

Systemy z jądrem

System UNIX

UŻYTKOWNICYPowłoki i polecenia

Kompilatory, interpreteryBiblioteki systemowe

Interfejs funkcji systemowych jądraSystem plików, planowanie przydziału czasu CPUpamięć wirtualna, system wejścia–wyjściamoduły sterujące dysków i taśmmoduły sterujące terminali

Interfejs między jądrem a sprzętemsterowniki sterowniki sterownikiterminali urządzeń pamięci

Terminale Dyski i taśmy RAM

� przykład strukturalizacji systemu� system składa się z dwóch części: jądra i programówsystemowych

� jądro dzieli się na ciąg interfejsów i programów obsługiurządzeń

� za pośrednictwem funkcji systemowych jądro udostępniasystem plików, zarządzanie pamięcią operacyjną, planowanieprzydziału CPU, itd.

� programy systemowe korzystają z udostępnianych przez jądrofunkcji systemowych w celu wykonywania użytecznych działań

� wadą systemu UNIX w wersji podstawowej jest to, że posiadatylko dwie ”warstwy”, które zawierają bardzo dużo elementów

� można podzielić system operacyjny na mniejsze, lepiejdobrane elementy – większa kontrola nad komputerem iprogramami użytkowymi

Systemy o strukturze warstwowej

W podejściu warstwowym dzieli się system na tzw. warstwy(poziomy)

Poziom najniższy (warstwa 0) – sprzęt

Poziom najwyższy (warstwa N) – interfejs z użytkownikiem

Poziom M-ty – struktury danych i procedury wywoływane zwyższych warstw

Warstwa M-ta może wywoływać operacje dotyczące niższychwarstw

ZALETA – modularność

� każda z warstw korzysta z usług tylko niżej położonych warstw� łatwe wyszukiwanie błędów i weryfikacja systemu� pierwsza warstwa może być poprawiana bez troski o resztęsystemu

� po uruchomieniu warstwy można przystąpić do realizacjikolejnej

System THE

� pierwszy system warstwowy – THE (Technische HogeschoolEindhoven)

5 PROGRAMY UŻYTKOWE4 BUFOROWANIE URZĄDZEŃ WEJŚCIA–WYJŚCIA3 PROGRAM OBSŁUGI KONSOLI OPERATORA2 ZARZĄDZANIE PAMIĘCIĄ1 PLANOWANIE PRZYDZIAŁU PROCESORA0 SPRZĘT

� schemat zarządzania pamięcią – pamięć wirtualna� program obsługi konsoli operatora i buforowanie urządzeńwejścia–wyjścia były zlokalizowane wyżej od zarządzaniapamięcią, bufory urządzeń mogły być umieszczone w pamięciwirtualnej

� buforowanie urządzeń wejścia–wyjścia znajdowało się powyżejkonsoli operatora, dlatego informacje o błędachwejścia–wyjścia mogły być wyprowadzane na konsolęoperatora

System VENUS

6 PROGRAMY UŻYTKOWE5 PROGRAMY OBSŁUGI I PLANOWANIAPRZYDZIAŁU URZĄDZEŃ

4 PAMIĘĆ WIRTUALNA3 KANAŁ WEJŚCIA–WYJŚĆIA2 PLANOWANIE PRZYDZIAŁU PROCESORA1 INTERPRETER POLECEŃ0 SPRZĘT

� poziomy niższe 0–4 – planowanie przydziału czasu procesora izarządzanie pamięcią

� warstwy 0–4 zostały napisane jako mikroprogramy – szybszedziałanie i przejrzysty interfejs między warstwamimikroprogramowanymi, a warstwami wyższymi

Właściwości systemów warstwowych

7 główna wada – trudności w odpowiednim zdefiniowaniuzawartości poszczególnych warstw� program obsługi pamięci pomocniczej powinien być poniżejprocedury zarządzania pamięcią� wiele wymagań nie jest jawnie określonych

7 realizacje warstwowe – mniej wydajne od innych

3 główna zaleta – łatwość w lokalizacji błędów i weryfikacjisystemu

Podsumowanie

problemy z efektywnością spowodowały nieznaczneodchodzenie od modeli warstwowych

dąży się do systemów złożonych z mniejszej liczby, ale bardziejfunkcjonalnych warstw

Systemy o strukturze modularnej

System OS/2

Aplikacja Aplikacja Aplikacja

Interfejs programowania aplikacji Rozszerzenie API

Podsystem Podsystem PodsystemJĄDRO SYSTEMU

• zarządzanie pamięcią• ekspediowanie zadań• zarządzanie urządzeniami

Moduł Moduł Modułsterujący sterujący sterujący

Właściwości

system OS/2 – następca MS-DOS

system wielozadaniowy, podwójny tryb operacji

zaprojektowany z uwzględnieniem warstwowości

użytkownik nie może korzystać bezpośrednio z udogodnieńniskiego poziomu

zwiększona kontrola nad sprzętem i lepsze rozeznanie codo zasobów wykorzystywanych przez programyużytkowników

System Windows NT

pierwsza wersja systemu – struktura warstwowa

niska wydajność w stosunku do systemu Windows 95

w wersji Windows NT 4.0 poprawiono niedogodnościprzesuwając warstwy z przestrzeni użytkownika do przestrzenijądra ściśle je integrującarchitektura systemu NT wersji 4 – warstwowy układmodułów� warstwa abstrakcji sprzętu� jądro� egzekutor� zbiór podsystemów działających w trybie użytkownika

Struktura systemu Windows NT

Warstwa abstrakcji sprzêtu

J¹dro

SPRZÊT

Egzekutor

Zarz¹dcawejœcia-wyjœcia

Zarz¹dcaobiektów

Zarz¹dcaprocesów

Zarz¹dcapamiêci

wirtualnej

Zbiór podsystemów

System Windows 2000

Ntdll.dll

Win32Lsass Services.exeWindows

Explorer

OS/2

Tryb u ytkownika¿

Interfejsy sprz towe, urz dzenia I/O, przerwania, kana y DMA, magistraleê ¹ ³

Tryb j dra¹

Mened er

sesji

¿ Spooler

Mened er

zada

¿

ñPOSIXWinlogon Svchost.exe

Centrum

wykonawcze

Win32 USER

GDISterowniki

urz dze¹ ñSterowniki

graficzne

Warstwa abstrakcji sprz tu HALê

J dro¹

Projektowanie i implementacja systemów operacyjnych

Założenia projektowe

Specyfikacja systemu – wybór sprzętu i typ systemu

Wymagania użytkowników – system operacyjny powinien byćwygodny w użyciu, łatwy do nauki, niezawodny, bezpieczny iszybki

Cele projektantów – system operacyjny powinien być łatwy dozaprojektowania, implementacji i konserwacji, elastyczny,niezawodny, pozbawiony błędów oraz efektywny

problem zdefiniowania wymagań względem systemuoperacyjnego nie ma jednoznacznego rozwiązania

Ogólne zasady projektowania – Inżynieria oprogramowania

Języki programowania

obecnie do projektowania systemów operacyjnychwykorzystuje się języki wysokiego poziomu

polepsza to implementację, pielęgnację oraz przenaszalnośćsystemuwady stosowania języków wysokiego poziomu1 spowolnienie działania systemu2 większe zapotrzebowanie na pamięć

pomimo wielkich rozmiarów systemów operacyjnych na ichefektywność ma wpływ niewielka ilość kodu: zarządca pamięcii planista przydziału CPU

procedury będące wąskimi gardłami można zastąpićodpowiednikami napisanymi w asemblerze

Funkcja systemowe

Funkcje systemowe (wywołania systemowe – ang. system calls)stanowią interfejs pomiędzy wykonywanym programem, asystemem operacyjnym

Podział funkcji systemowych:

nadzorowanie procesów, np. end, abort, wait for time

operacje na plikach, np. open, close, read, write, getfile attributes

operacje na urządzeniach, np. request device, releasedevice, read, write, reposition

otrzymywanie informacji, np. get time, get date, getdevice attributes

komunikacja, np. create connection, deleteconnection, send message

top related