STRUKTURY SYSTEMÓW OPERACYJNYCH Struktury systemów operacyjnych 1 WSTEP Systemy operacyjne nie sa jednym spójnym tworem, lecz sa zbudowane z wielu pomniejszych składowych Każda ze składowych powinna być dobrze określonym fragmentem systemu ze starannie zdefiniowanym wejściem, wyjściem i działaniem Każdy system operacyjny jest inaczej zbudowany ale większość posiada podobne składowe
Struktury systemów operacyjnych 2 moduł zarzadzania procesami moduł zarzadzania pamięcia operacyjna moduł zarzadzania plikami moduł zarzadzania systemem wejścia wyjścia moduł zarzadzanie pamięcia pomocnicza praca sieciowa system ochrony system interpretacji poleceń Struktury systemów operacyjnych 3 CZEŚCI SKŁADOWE SO ZARZADZANIE PROCESAMI Proces program, który jest wykonywany, np. zadanie systemowe, program wsadowy, program użytkownika, zadanie do drukowania Proces musi korzystać z pewnych zasobów systemu komputerowego, np. czasu CPU, pamięci, plików, urzadzeń peryferyjnych Zasoby moga być przydzielone procesowi w chwili jego utworzenia, lub podczas jego wykonywania Po zakończeniu działania procesu, system komputerowy odzyskuje wszelkie zasoby przez niego wykorzystywane i nadajace się do powtórnego użytku
Struktury systemów operacyjnych 4 Proces jednostka pracy w systemie; system składa się ze zbioru procesów, część z nich to procesy systemu operacyjnego, pozostałe procesy użytkownika Program jest elementem pasywnym i sam w sobie nie jest procesem Proces element aktywny, w którym licznik rozkazów wskazuje następna instrukcję do wykonania: proces jest wykonywany sekwencyjnie CPU wykonuje instrukcje jedna po drugiej na żadanie procesu może być jednocześnie wykonana co najwyżej jedna instrukcja z jednym programem może być powiazanych wiele procesów, zawsze rozważa się je jako oddzielne ciagi instrukcji Struktury systemów operacyjnych 5 W odniesieniu do zarzadzania procesami system operacyjny 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ń
Struktury systemów operacyjnych 6 ZARZADZANIE PAMIECI A OPERACYJNA Pamięć operacyjna kluczowy element każdego systemu komputerowego Pamięć to magazyn szybko dostępnych danych wykorzystywanych przez CPU i urzadzenia IO Przykładowe wykonywanie cyklu rozkazów czytanie pamięć operacyjna wykonywanie pobieranie danych z dysku pamięć operacyjna czytanie danych przez proces wykonywanie W celu wykonania programu, należy go zaadresować oraz załadować do pamięci Podczas wykonywania programu, rozkazy i dane sa pobierane z pamięci za pomoca generowania potrzebnych adresów Struktury systemów operacyjnych 7 Lepsze wykorzystanie CPU oraz szybsza odpowiedź komputera przechowywanie w pamięci kilku programów jednocześnie W odniesieniu do zarzadzania pamięcia operacyjna system operacyjny odpowiada za: 1. utrzymywanie ewidencji aktualnie zajętych części pamięci wraz z informacja w czyim sa władaniu 2. decydowanie, które procesy maja być załadowane do zwolnionych obszarów pamięci 3. przydzielanie i zwalnianie obszarów pamięci stosownie do potrzeb
Struktury systemów operacyjnych 8 ZARZADZANIE 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 tworzy jednolity, logiczny obraz magazynowanej informacji: definiuje on pliki niezależnie od fizycznych właściwości używanych urzadzeń przechowywania informacji system operacyjny odwzorowuje pliki na fizyczne nośniki informacji umożliwia do nich dostęp za pomoca urzadzeń pamięci Struktury systemów operacyjnych 9 Jeśli wielu użytkowników ma dostęp do tych samych plików to jest pożadane sprawowanie pieczy nad tym kto i w jaki sposób korzysta z tego dostępu W odniesieniu do zarzadzania plikami system operacyjny odpowiada za: 1. tworzenie i usuwanie plików 2. tworzenie i usuwanie katalogów 3. dostarczenie elementarnych operacji do manipulowania plikami i katalogami 4. odwzorowanie plików na obszary pamięci pomocniczej 5. składowanie plików na trwałych nośnikach pamięci
Struktury systemów operacyjnych 10 ZARZADZANIE SYSTEMEM WEJŚCIA WYJŚCIA Jednym z celów systemu operacyjnego jest ukrywanie przed użytkownikiem szczegółów dotyczacych specyfiki urzadzeń sprzętowych Przykładem poprawnie zaprojektowanego systemu jest system UNIX, gdzie osobliwości urzadzeń IO sa ukryte przed większościa samego systemu przez tzw. podsystem wejścia wyjścia Podsystem wejścia wyjścia składa się z: części zarzadzaj acej pamięcia (buforowanie, pamięć podręczna, spooling) ogólnego interfejsu do modułów sterujacych urzadzeń modułów sterujacych (programów obsługi) poszczególnych urzadzeń sprzętowych Osobliwości poszczególnego urzadzenia wejścia wyjścia zna tylko odpowiadajacy mu moduł sterujacy Struktury systemów operacyjnych 11 ZARZADZANIE PAMIECI A POMOCNICZA Pamięć operacyjna jest za mała aby pomieścić wszystkie dane i programy Zawarte w niej dane gina po odcięciu zasilania System komputerowy powinien posiadać zatem pamięć pomocnicza będac a zapleczem dla pamięci operacyjnej Pamięcia dyskowa jako podstawowym środkiem magazynowania zarówno danych jak i programów W odniesieniu do zarzadzania pamięcia operacyjna, system operacyjny odpowiada za: 1. zarzadzanie obszarami wolnymi 2. przydzielaniem pamięci 3. planowaniem przydziału obszarów pamięci dyskowej
Struktury systemów operacyjnych 12 SYSTEM OCHRONY W systemie z wieloma użytkownikami i współbieżnie wykonywanymi wieloma procesami poszczególne procesy należy chronić przed wzajemnym oddziaływaniem Należy opracować mechanizmy gwarantujace, że pliki, segmenty pamięci, procesor i inne zasoby będa użytkowane tylko przez te procesy, które zostały przez system operacyjny odpowiednio uprawnione Ochrona mechanizm nadzorowania dostępu programów, procesów lub użytkowników do zasobów zdefiniowanych przez system komputerowy Mechanizmy ochrony zawieraja sposoby określenia, co i w jakiej formie ma podlegać ochronie, jak również środki do wymuszania zaprowadzonych ustaleń Struktury systemów operacyjnych 13 Za pomoca działań ochronnych można polepszać niezawodność systemu poprzez poszukiwanie błędów ukrytych w interfejsach między składowymi podsystemami Wczesne wykrywanie błędów w interfejsach może zapobiec zanieczyszczeniu zdrowego podsystemu przez podsystem uszkodzony Zasoby niechronione nie moga obronić się przed użyciem lub nadużyciem przez nieupoważnionego lub niekompetentnego użytkownika System ochrony dostarcza środków do rozróżniania między prawomocnym i nieprawomocnym użyciem
Struktury systemów operacyjnych 14 SYSTEM INTERPRETACJI POLECEŃ Interpreter poleceń jeden z najważniejszych programów w systemie operacyjnym Interpreter poleceń interfejs pomiędzy użytkownikiem, a systemem operacyjnym niektóre systemy zawieraja interpreter poleceń w swoim jadrze w innych systemach (MS-DOS, UNIX) interpreter poleceń jest specjalnym programem powłoka (interpreterem wiersza poleceń) Struktury systemów operacyjnych 15 Systemy operacyjne często różnia się od siebie warstwa powłoki przyjazny interpreter systemy Apple Macintosh i Microsoft Windows operowanie za pomoca systemu okien i menu oraz myszki interpretery trudniejsze do opanowania lecz o większych możliwościach systemy MS-DOS, UNIX polecenia pisane na klawiaturze sa wyświetlane na monitorze lub drukowane Polecenia rozpoznawane przez interpreter dotycza: 1. tworzenia procesów i zarzadzanie nimi 2. obsługi wejścia wyjścia 3. administrowania pamięcia pomocnicza i operacyjna 4. ochrony i pracy sieciowej
Struktury systemów operacyjnych 16 USŁUGI SYSTEMÓW OPERACYJNYCH Wykonanie programu możliwość załadowania programu do pamięci i rozpoczęcia jego wykonywania możliwość zakończenia: w sposób normalny w sposób wyjatkowy (potrzeba sygnalizowania błędu) Struktury systemów operacyjnych 17 Przykład 1. System MS-DOS a) b) Wolna pamiêæ Interpreter poleceñ J¹dro Wolna pamiêæ Proces Interpreter poleceñ J¹dro system jednozadaniowy a) rozruch systemu b) wykonanie programu program jest wprowadzany do pamięci kosztem części systemu operacyjnego
Struktury systemów operacyjnych 18 Przykład 2. System UNIX Proces D Wolna pamiêæ Proces C Interpreter poleceñ Proces B J¹dro system wielozadaniowy z możliwościa wyboru interpretera poleceń interpreter poleceń może kontynuować działanie podczas wykonywania innego programu (wykonywanie procesu w tle) Struktury systemów operacyjnych 19 Operacje wejścia wyjścia wiele programów potrzebuje operacji IO odnoszacych się do pliku lub urzadzenia peryferyjnego poszczególne urzadzenia wymagaja określonych funkcji, np. wygaszenie ekranu monitora ze względu na wydajność i ochronę, użytkownicy zazwyczaj nie moga bezpośrednio nadzorować operacji wejścia wyjścia Manipulowanie systemem plików programy musza zapisywać i odczytywać pliki możliwość tworzenia i usuwania plików przy użyciu ich nazw Komunikacja Procesy wymagaja wzajemnego kontaktu i wymiany informacji Metody organizowania komunikacji: 1. pamięć dzielona, 2. przekazywanie komunikatów
Struktury systemów operacyjnych 20 Przykład 3. Modele komunikacji 1. Model przesyłania komunikatów Proces A Proces B K K J¹dro K informacja jest wymieniana przez międzyprocesowe środki komunikacji dostarczone przez system operacyjny nawiazanie połaczenia nazwy klienta get process id i serwera get host id Struktury systemów operacyjnych 21 zezwolenie odbiorcy na nawiazanie połaczenia accept connection źródło (klient) oraz demon odbiorczy (serwer) wymieniaja komunikaty za pomoca funkcji systemowych read message i write message koniec komunikacji close connection Zalety bezkonfliktowa wymiana informacji możliwość wykorzystania do komunikacji procesów pracujacych w różnych systemach komputerowych
Struktury systemów operacyjnych 22 2. Model z pamięcia dzielona Proces A Pamiêæ dzielona Proces B 1 2 J¹dro procesy posługuja się systemowymi funkcjami odwzorowania pamięci system operacyjny próbuje zapobiegać dostawaniu się jednego procesu do pamięci innego dzielenie pamięci wymaga, aby dwa lub więcej procesów zgodziło się na usunięcie tego ograniczenia Struktury systemów operacyjnych 23 procesy moga wymieniać informacje poprzez czytanie i pisanie do wspólnie użytkowanych obszarów procesy musza pamiętać, aby nie pisać jednocześnie do tego samego miejsca Właściwości model stosowany do komunikacji procesów pracujacych na tym samym komputerze pamięć dzielona zapewnia maksymalna szybkość i wygodę komunikacji problemy z zakresu ochrony i synchronizacji
Struktury systemów operacyjnych 24 Wykrywanie błędów system operacyjny powinien być nieustannie powiadamiany o występowaniu błędów oraz odpowiednio na nie reagować błędy w działaniu CPU i pamięci operacyjnej błędy w urzadzeniach IO (błędy parzystości, awaria połaczenia w sieci, brak papieru w drukarce) błędy w programie użytkownika (błędy arytmetyczne, dostęp do niedozwolonych obszarów pamięci) Struktury systemów operacyjnych 25 Przydzielanie zasobów zarzadzanie różnymi zasobami systemu komputerowego przydzielanie cykli procesora czy pamięci operacyjnej może wymagać odrębnego kodu, podczas gdy urzadzenia IO moga mieć bardziej ogólny kod zamawiania i zwalniania różne procedury moga być wywoływane do przydzielania modemów, ploterów i innych urzadzeń
Struktury systemów operacyjnych 26 INNE USŁUGI SO Rozliczanie przechowywanie danych o tym, którzy użytkownicy i w jakim stopniu korzystaja z poszczególnych zasobów komputera cele statystyczne rekonfiguracja systemu Ochrona nadzór nad wszystkimi dostępami do zasobów systemu zabezpieczenie systemu przed niedozwolonym dostępem, rejestrowanie wszystkich takich przypadków, wykrywanie włamań Struktury systemów operacyjnych 27 STRUKTURY SYSTEMÓW Wiele systemów nie ma ściśle określonej struktury Małe systemy często rozszerzano przekraczajac pierwotne założenia 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
Struktury systemów operacyjnych 28 wyraźnie rozróżnione poziomy funkcjonalne z poziomu programów użytkowych można korzystać z podstawowych procedur IO, np. pisania na ekran czy dyski swoboda tego rodzaju powoduje, że system nie jest odporny na błędnie działajace programy użytkowe możliwość zawieszenia się systemu lub uszkodzenia podzespołów Struktury systemów operacyjnych 29 System UNIX Powłoki i polecenia UŻYTKOWNICY Kompilatory, interpretery Biblioteki systemowe Interfejs funkcji systemowych jadra System plików, planowanie przydziału czasu CPU pamięć wirtualna, system wejścia wyjścia moduły sterujace dysków i taśm moduły sterujace terminali Interfejs między jadrem a sprzętem sterowniki sterowniki sterowniki terminali urzadzeń pamięci Terminale Dyski i taśmy RAM
Struktury systemów operacyjnych 30 przykład strukturalizacji systemu system składa się z dwóch części: jadra i programów systemowych jadro dzieli się na ciag interfejsów i programów obsługi urzadzeń za pośrednictwem funkcji systemowych jadro udostępnia system plików, zarzadzanie pamięcia operacyjna, planowanie przydziału CPU, itd. (wiele możliwości zebranych na jednym poziomie) programy systemowe korzystaja z udostępnianych przez jadro funkcji systemowych w celu wykonywania użytecznych działań (operowanie plikami, kompilacja) wada systemu UNIX w wersji podstawowej jest to, że posiada tylko dwie warstwy, które zawieraja bardzo dużo elementów można podzielić system operacyjny na mniejsze, lepiej dobrane elementy większa kontrola nad komputerem i programami użytkowymi Struktury systemów operacyjnych 31 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 z wyższych warstw Warstwa M-ta może wywoływać operacje dotyczace niższych warstw 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 przystapić do realizacji kolejnej
Struktury systemów operacyjnych 32 System THE pierwszy system warstwowy THE (Technische Hogeschool Eindhoven) 5 PROGRAMY UŻYTKOWE 4 BUFOROWANIE URZADZEŃ WEJŚCIA WYJŚCIA 3 PROGRAM OBSŁUGI KONSOLI OPERATORA 2 ZARZADZANIE PAMIECI A 1 PLANOWANIE PRZYDZIAŁU PROCESORA 0 SPRZET schemat zarzadzania pamięcia pamięć wirtualna program obsługi konsoli operatora i buforowanie urzadzeń wejścia wyjścia były zlokalizowane wyżej od zarzadzania pamięcia, bufory urzadzeń mogły być umieszczone w pamięci wirtualnej buforowanie urzadzeń wejścia wyjścia znajdowało się powyżej konsoli operatora, dlatego informacje o błędach wejścia wyjścia mogły być wyprowadzane na konsolę operatora Struktury systemów operacyjnych 33 System VENUS 6 PROGRAMY UŻYTKOWE 5 PROGRAMY OBSŁUGI I PLANOWANIA PRZYDZIAŁU URZADZEŃ 4 PAMIEĆ WIRTUALNA 3 KANAŁ WEJŚCIA WYJŚĆIA 2 PLANOWANIE PRZYDZIAŁU PROCESORA 1 INTERPRETER POLECEŃ 0 SPRZET poziomy niższe 0 4 planowanie przydziału czasu procesora i zarzadzanie pamięcia warstwy 0 4 zostały napisane jako mikroprogramy szybsze działanie i przejrzysty interfejs między warstwami mikroprogramowanymi, a warstwami wyższymi
Struktury systemów operacyjnych 34 Właściwości główna wada trudności w odpowiednim zdefiniowaniu poszczególnych warstw program obsługi pamięci pomocniczej powinien być poniżej procedury zarzadzania pamięcia wiele wymagań nie jest jawnie określonych realizacje warstwowe mniej wydajne od innych główna zaleta łatwość w lokalizacji błędów i weryfikacji systemu Podsumowanie problemy z efektywnościa spowodowały nieznaczne odchodzenie od modeli warstwowych daży się do systemów złożonych z mniejszej liczby ale bardziej funkcjonalnych warstw Struktury systemów operacyjnych 35 MASZYNY WIRTUALNE Cele programów użytkowych moga być realizowane przez system operacyjny różnymi sposobami programy systemowe funkcje systemowe rozkazy sprzętowe Programy użytkowe moga traktować wszystko to co znajduje się poniżej ich w hierarchii systemu komputerowego traktować jako stanowiace część maszyny (komputera) Logicznym rozszerzeniem modelu warstowego była idea maszyny wirtualnej System operacyny VM (firma IBM) przykład zastosowania koncepcji maszyny wirtualnej
Struktury systemów operacyjnych 36 Dzięki koncepcji maszyny wirtualnej tworzy się interfejs identyczny z podstawowym sprzętem Każdy proces otrzymuje (wirtualna) kopię komputera (podstawy systemu) Procesy Procesy Procesy Procesy J¹dro Sprzêt (a) Interfejs programowy J¹dro J¹dro J¹dro Maszyna wirtualna Sprzêt (b) Maszyna niewirtualna (a), maszyna wirtualna (b) Struktury systemów operacyjnych 37 Właściwości ochrona zasobów systemowych każda maszyna wirtualna jest całkowicie odizolowana od innych maszyn wirtualnych brak bezpośredniej możliwości wspólnego użytkowania zasobów łatwa konserwacja systemu programiści systemowi otrzymuja własne maszyny wirtualne i na nich dokonuja konserwacji systemu. Unika się w ten sposób okresowego wyłaczenia systemu rozwiazanie zagadnienia zgodności systemów możliwość uruchomienia programów dedykowanych na określona platformę sprzętowa w innym systemie operacyjnym uruchamianie programów dostępnych w systemie MS-DOS na komputerach DEC maszyna wirtualna Intel nadbudowana na rdzenny procesor komputer Apple Macintosh z procesorem PowerPC zawiera maszynę wirtualna Motorola 68000 umożliwiajac a wykonywanie programów binarnych napisanych dla starszego modelu komputera
Struktury systemów operacyjnych 38 JAVA Przykład ciagłości koncepcji maszyny wirtualnej Kompilator języka Java wytwarza tzw. kod pośredni, który wykonywany jest przez Wirtualna maszynę Javy (ang. Java Virtual Machine JVM) Maszyna JVM działa na wielu typach komputerów: komputerach klasy PC, Macintosh, stacjach roboczych i serwerach systemu UNIX, minikomputerach i komputerach głównych typu IBM Maszyna JVM jest realizowana w przegladarkach sieciowych Kod pośredni sprawdzany jest pod katem występowania rozkazów mogacych naruszać bezpieczeństwo lub niezawodność podstawowej maszyny. Jeżeli program nie zaliczy tego testu to nie zostanie wykonany Struktury systemów operacyjnych 39 System OS/2 SYSTEMY O STRUKTURZE MODULARNEJ Aplikacja Aplikacja Aplikacja Interfejs programowania aplikacji Rozszerzenie API Podsystem Podsystem Podsystem JADRO SYSTEMU zarzadzanie pamięcia ekspediowanie zadań zarzadzanie urzadzeniami Moduł Moduł Moduł sterujacy sterujacy sterujacy
Struktury systemów operacyjnych 40 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 co do zasobów wykorzystywanych przez programy użytkowników Struktury systemów operacyjnych 41 System Windows NT pierwsza wersja systemu struktura warstwowa niska wydajność w stosunku do systemu Windows 95 w wersji Windows NT 4.0 poprawiono niedogodności przesuwajac warstwy z przestrzeni użytkownika do przestrzeni jadra ściśle je integrujac architektura systemu NT wersji 4 warstwowy układ modułów warstwa abstrakcji sprzętu jadro egzekutor zbiór podsystemów działajacych w rybie użytkownika
Struktury systemów operacyjnych 42 Struktura systemu Windows NT Zbiór podsystemów Egzekutor Zarz¹dca wejœciawyjœcia Zarz¹dca procesów Zarz¹dca obiektów J¹dro Zarz¹dca pamiêci wirtualnej Warstwa abstrakcji sprzêtu SPRZÊT Struktury systemów operacyjnych 43 PROJEKTOWANIE I IMPLEMENTACJA SO 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 i szybki Cele projektantów system operacyjny powinien być łatwy do zaprojektowania, implementacji i konserwacji, elastyczny, niezawodny, pozbawiony błędów oraz efektywny problem zdefiniowania wymagań względem systemu operacyjnego nie ma jednoznacznego rozwiazania Ogólne zasady projektowania Inżynieria oprogramowania
Struktury systemów operacyjnych 44 Języki programowania obecnie do projektowania systemów operacyjnych wykorzystuje się języki wysokiego poziomu polepsza to implementację, pielęgnację oraz przenaszalność systemu wady stosowania języków wysokie poziomu 1. spowolnienie działania systemu 2. większe zapotrzebowanie na pamięć pomimo wielkich rozmiarów systemów operacyjnych na ich efektywność ma wpływ niewielka ilość kodu: zarzadca pamięci i planista przydziału CPU procedury będace waskimi gardłami można zastapić odpowiednikami napisanymi w asemblerze Struktury systemów operacyjnych 45 FUNKCJE SYSTEMOWE Funkcje systemowe (wywołania systemowe ang. system calls) stanowia interfejs pomiędzy wykonywanym programem, a systemem operacyjnym. Podział funkcji systemowych: nadzorowanie procesów, np. end, abort, wait for operacje na plikach, np. open, close, read, write, get file attributes time operacje na urzadzeniach, np. request device, release device, read, write, reposition otrzymywanie informacji, np. get time, get date, get device attributes komunikacja, np. create connection, delete connection, send message
Struktury systemów operacyjnych 46 PROGRAMY SYSTEMOWE Programy systemowe tworza środowisko do opracowywania i wykonywania innych programów. Można powiedzieć, że programy systemowe sa interfejsami użytkownika do funkcji systemowych Podział programów systemowych: manipulowanie plikami informowanie o stanie systemu translatory języków programowania ładowanie i wykonywanie programów komunikacja Większość nowoczesnych systemów operacyjnych zawiera programy do wykonywania typowych zadań : przegladarki WWW, edytory tekstów, proste arkusze kalkulacyjne, itp.