architektury systemÓw operacyjnychftp.pwsz.glogow.pl/.../arch_komp_sys_oper/wyklad6.pdf · 6...
TRANSCRIPT
ARCHITEKTURY SYSTEMÓWOPERACYJNYCH
dr hab. inż. Krzysztof Patan, prof. PWSZ
Instytut PolitechnicznyPaństwowa Wyższa Szkoła Zawodowa w Głogowie
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