Struktury systemów operacyjnych



Podobne dokumenty
Działanie systemu operacyjnego

Działanie systemu operacyjnego

Struktury systemów operacyjnych

Działanie systemu operacyjnego

ochrona w systemie operacyjnym

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Działanie systemu operacyjnego

Struktury systemów operacyjnych

Budowa systemów komputerowych

Wprowadzenie do systemów operacyjnych

Systemy operacyjne III

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Paweł Skrobanek. C-3, pok

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

System komputerowy. System komputerowy

Technologia informacyjna. Urządzenia techniki komputerowej

LEKCJA TEMAT: Zasada działania komputera.

Jądro systemu operacyjnego

Zarządzanie pamięcią operacyjną

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Sieciowe Systemy Operacyjne

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

System operacyjny System operacyjny

Komputery przemysłowe i systemy wbudowane

Struktury systemów operacyjnych

Systemy Operacyjne struktura

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Informatyka. informatyka i nauki komputerowe (computer science)

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

projektowanie systemu

Warstwy systemu Windows 2000

1. Etapy rozwoju systemów komputerowych

Systemy operacyjne i sieci komputerowe Szymon Wilk System operacyjny 1

Systemy operacyjne. Informatyka Stosowana, I rok. Krzysztof Wilk. Katedra Informatyki Stosowanej i Modelowania

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

1. Co to jest system operacyjny

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

DOS COMMAND.COM. Rys. 2. Główne moduły programowe systemu operacyjnego DOS. Interpreter poleceń. Rys. 3. Warstwowa struktura systemu DOS

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Opis efektów kształcenia dla modułu zajęć

Systemy operacyjne Charakterystyka systemów operacyjnych

Zarządzanie pamięcią operacyjną

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Paweł Skrobanek. C-3, pok pawel.skrobanek.staff.iiar.pwr.wroc.pl

Programowanie obiektowe zastosowanie języka Java SE

Czujniki obiektowe Sterowniki przemysłowe

Wstęp do Informatyki. Klasyfikacja oprogramowania

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Struktura systemów komputerowych

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Podstawowe zagadnienia

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Architektura i administracja systemów operacyjnych

Systemy operacyjne III

dr inż. Jarosław Forenc

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Architektura komputerów

Systemy operacyjne system przerwań

Urządzenia wejścia-wyjścia

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

STRUKTURY SYSTEMÓW OPERACYJNYCH

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

System operacyjny. System operacyjny to program kontrolujący pracę komputera

Struktury systemów operacyjnych Usługi, funkcje, programy. mgr inż. Krzysztof Szałajko

Kernel Kompilacja jądra

Java jako język programowania

O historycznym systemie DOS. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Historia modeli programowania

Architektura komputerów

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Programowanie niskopoziomowe

4. Procesy pojęcia podstawowe

1. Podstawy...P Polecenia podstawowe...p... 18

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Systemy operacyjne. dr inż. Jerzy Sas.

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Java EE produkcja oprogramowania

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu

Technologie informacyjne (2) Zdzisław Szyjewski

Systemy operacyjne. Paweł Pełczyński

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Podstawy programowania. Wprowadzenie

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Temat. Budowa systemu komputerowego Zakładka 1. Elementy tworzące stanowisko komputerowe.

Struktura dysku. Dyski podstawowe i dynamiczne

Transkrypt:

Struktury systemów operacyjnych Składowe systemu. Usługi systemu operacyjnego. Wywołania systemowe. Programy systemowe. Struktura systemu. Maszyny wirtualne. Projektowanie i implementacja systemu. Generowanie systemu. Wiesław Płaczek Systemy Operacyjne: Wykład 2 1

Składowe systemu operacyjnego Zarządzanie procesami. Zarządzanie pamięcią operacyjną. Zarządzanie plikami. Zarządzanie systemem wejścia-wyjścia. Zarządzanie pamięcią pomocniczą. Praca sieciowa. System ochrony. System interpretacji poleceń. Wiesław Płaczek Systemy Operacyjne: Wykład 2 2

Zarządzanie procesami Proces program, który jest wykonywany. Aby wypełnić swoje zadanie, proces potrzebuje pewnych zasobów: czas procesora, pamięć, pliki, urządzenie WE/WY itd. System operacyjny jest odpowiedzialny za następujące czynności związane z zarządzaniem procesami: Tworzenie i usuwanie procesów (użytkowych, systemowych); Wstrzymywanie i wznawianie procesów; Dostarczanie mechanizmów do: Synchronizacji procesów; Komunikacji procesów; Obsługi zakleszczeń. Wiesław Płaczek Systemy Operacyjne: Wykład 2 3

Zarządzanie pamięcią operacyjną Pamięć operacyjna duża tablica słów lub bajtów, z których każde(y) ma swój adres. Jest magazynem szybko dostępnych danych dzielonych przez CPU i urządzenia WE/WY. Jest to pamięć ulotna traci swoją zawartość w przypadku awarii systemu. W odniesieniu do zarządzania pamięcią SO jest odpowiedzialny za następujące czynności: Utrzymywanie informacji o tym, które obszary pamięci są aktualnie zajęte i przez kogo; Decydowanie o tym, które procesy mają być załadowane do zwolnionych obszarów pamięci; Przydzielanie (alokacja) i zwalnianie (dealokacja) obszarów pamięci zależnie od potrzeb. Wiesław Płaczek Systemy Operacyjne: Wykład 2 4

Zarządzanie plikami Plik (file) zbiór powiązanych ze sobą informacji zdefiniowanych przez jego twórcę. W plikach zazwyczaj przechowywane są programy (zarówno w postaci źródłowej, jak i wykonawczej) oraz dane; Zwykle pliki zorganizowane są w katalogi; Najczęściej pliki przechowuje się na dyskach i taśmach magnetycznych, dyskach optycznych, obecnie też na dyskach elektronicznych. W odniesieniu do zarządzania plikami SO jest odpowiedzialny za następujące czynności: Tworzenie i usuwanie plików; Tworzenie i usuwanie katalogów; Dostarczanie elementarnych operacji do manipulowania plikami i katalogami; Odwzorowywanie plików na obszary pamięci pomocniczej; Umieszczanie plików na trwałych nośnikach pamięci. Wiesław Płaczek Systemy Operacyjne: Wykład 2 5

Zarządzanie systemem WE/WY Jednym z celów systemu operacyjnego jest ukrywanie przed użytkownikiem (czasem też przed większością samego systemu operacyjnego) szczegółów dotyczących sprzętu, m.in. WE/WY. Wiele systemów ma specjalne podsystemy WE/WY.. System WE/WY składa się z: Systemu zarządzania pamięcią: buforowanie, przechowywanie podręczne, spooling; Ogólnego interfejsu do modułów sterujących urządzeń; Modułów sterujących (programów obsługi) dla poszczególnych urządzeń sprzętowych. Właściwości danego urządzenia zna tylko odpowiadający mu moduł sterujący. Wiesław Płaczek Systemy Operacyjne: Wykład 2 6

Zarządzanie pamięcią pomocniczą Ponieważ pamięć operacyjna jest ulotna i za mała by pomieścić wszystkie dane i programy, system komputerowy musi dostarczać pamięć pomocniczą jako zaplecze dla pamięci operacyjnej. Większość współczesnych systemów komputerowych używa dysków jako podstawowego medium do magazynowania zarówno danych, jak i programów. System operacyjny odpowiada za następujące czynności związane z zarządzaniem dyskami: Zarządzanie wolnymi obszarami; Alokacja pamięci; Planowanie dostępu do dysku. Wydajność pamięci pomocniczej może mieć znaczny wpływ na wydajność całego systemu komputerowego (na ogół pamięć ta jest często używana podczas pracy komputera). Wiesław Płaczek Systemy Operacyjne: Wykład 2 7

Praca sieciowa (systemy rozproszone) System rozproszony jest zbiorem procesorów, które nie dzielą pamięci, urządzeń zewnętrznych ani zegara każdy procesor ma swoją lokalną pamięć itd. Procesory w systemie połączone są za pomocą sieci komunikacyjnej (szybkie szyny danych, linie telefoniczne, łącza bezprzewodowe). Komunikacja odbywa się przy użyciu protokołu (zbiór reguł używanych przez węzły komunikacyjne przy wymianie informacji). System rozproszony umożliwia użytkownikowi dostęp do różnych zasobów. Dostęp do dzielonych zasobów pozwala na: przyspieszanie obliczeń, większą funkcjonalność, zwiększanie dostępności danych; podniesienie niezawodności. Wiesław Płaczek Systemy Operacyjne: Wykład 2 8

System ochrony Ochrona mechanizm nadzorowania dostępu programów, procesów lub użytkowników do zasobów zarówno systemu, jak i użytkowników. Każdy wielozadaniowy, wielodostępny i współbieżny system operacyjny musi dostarczać sposoby ochrony procesów przed ich wzajemnym (niepożądanym) oddziaływaniem. Mechanizm ochrony musi: Rozróżniać między dostępem autoryzowanym a nieautoryzowanym; Określać co i jakiej ma podlegać ochronie; Dostarczać środków do wymuszania zaprowadzonych ustaleń. Wiesław Płaczek Systemy Operacyjne: Wykład 2 9

System interpretacji poleceń Wiele poleceń jest przekazywanych do systemu operacyjnego za pomocą instrukcji sterujących (control statements), które dotyczą: tworzenia procesów i zarządzania nimi; obsługi WE/WY; zarządzania pamięcią pomocniczą i operacyjną; dostępu do systemu plików; ochrony; pracy sieciowej (networking). Program, który czyta i interpretuje instrukcje sterujące nosi różne nazwy: Interpreter wiersza poleceń (command-line interpreter); Powłoka (shell) np. w systemie UNIX. Jego zadanie: pobrać następną instrukcję i wykonać ją. W niektórych systemach jest częścią jądra, w innych (np. MS-DOS, UNIX) jest specjalnym programem, wykonywanym przy rozpoczynaniu zadania lub przy logowaniu się w systemie. Wiesław Płaczek Systemy Operacyjne: Wykład 2 10

Usługi systemu operacyjnego Wykonywanie programów zdolność systemu operacyjnego do ładowania programów do pamięci i ich wykonywania. Operacje WE/WY ponieważ program użytkownika nie może bezpośrednio wykonywać operacji WE/WY, system operacyjny musi dostarczać środki do ich wykonywania. Manipulowanie systemem plików programy muszą mieć możliwość czytania i pisania w plikach, a także tworzenia i usuwania plików przy użyciu ich nazw. Komunikacja wymiana informacji między procesami wykonywanymi albo w tym samym komputerze albo w różnych systemach komputerowych. Zaimplementowana za pomocą pamięci dzielonej (shared memory) lub techniki przekazywania komunikatów (message passing). Wykrywanie błędów zapewnienie poprawnego przebiegu obliczeń poprzez wykrywanie i obsługę błędów w działaniu CPU i pamięci, w urządzeniach WE/WY lub programach użytkownika. Wiesław Płaczek Systemy Operacyjne: Wykład 2 11

Dodatkowe funkcje systemu operacyjnego Istnieje dodatkowy zbiór funkcji systemu operacyjnego przeznaczonych nie do pomagania użytkownikowi, ale do optymalizacji działania samego systemu. Przydzielanie zasobów alokacja zasobów do wielu użytkowników i wielu wykonywanych zadań. Rozliczanie przechowywanie i śledzenie informacji o tym, którzy użytkownicy i w jakim stopniu korzystają z poszczególnych zasobów. Ochrona zapewnienie nadzoru nad wszystkimi dostępami do zasobów systemu. Ważne jest również bezpieczeństwo (security) systemu wobec niepożądanych czynników zewnętrznych. Wiesław Płaczek Systemy Operacyjne: Wykład 2 12

Wywołania systemowe Funkcje systemowe, inaczej: wywołania systemowe (system calls) tworzą interfejs między wykonywanym programem a systemem operacyjnym. Na ogół dostępne jako rozkazy w języku asemblera. Języki, które utworzono aby zastąpić asemblery przy programowaniu systemów operacyjnych dają możliwość bezpośredniego wywołania funkcji systemowych (np. C, C++, Perl). Np. wywołania systemu UNIX można wykonywać bezpośrednio z programu w języku C/C++, natomiast w MS Windows XP są one częścią interfejsu programisty aplikacji (application programmer interface API), dostępnego w kompilatorach dla MS Windows. Istnieją zasadniczo trzy metody przekazywania parametrów między wykonywanym programem a systemem operacyjnym: Przekazanie parametrów bezpośrednio do rejestrów procesora. Umieszczenie parametrów w tablicy w pamięci i przekazanie jej adresu za pośrednictwem rejestru. Składanie parametrów na stosie za pomocą programu i zdejmowanie ich stamtąd przez system operacyjny. Wiesław Płaczek Systemy Operacyjne: Wykład 2 13

Kategorie wywołań systemowych Nadzorowanie procesów: Utworzenie, załadowanie, wykonanie, zakończenie, zaniechanie, określenie atrybutów, procesu; przydział i zwolnienie pamięci itd. Operacje na plikach: Utworzenie, usunięcie, otwarcie, zamknięcie, czytanie, pisanie, określenie/pobranie atrybutów pliku itp. Operacje na urządzeniach: Zamówienie, zwolnienie, logiczne przyłączenie i odłączenie, czytanie, pisanie, określenie/pobranie atrybutów urządzenia itp. Utrzymywanie informacji: Pobranie/ustawienie: czasu, daty, danych systemowych, atrybutów procesu/pliku/urządzenia itp. Komunikacja: Utworzenie/usunięcie połączenia komunikacyjnego, nadawanie/odbieranie komunikatów, przekazanie informacji o stanie, przyłączanie/odłączanie urządzeń zdalnych. Wiesław Płaczek Systemy Operacyjne: Wykład 2 14

Przykłady nadzorowania procesów System MS-DOS System UNIX Wolna pamięć Interpreter poleceń Jądro Rozruch systemu Wolna pamięć Proces Interpreter poleceń Jądro Wykonywanie programu Proces D Wolna pamięć Proces C Interpreter Proces B Jądro Wykonywanie wielu programów Wiesław Płaczek Systemy Operacyjne: Wykład 2 15

Modele komunikacji Przekazywanie komunikatów Pamięć dzielona Proces A Proces B K K Proces A Pamięć dzielona Proces B 1 2 2 1 Jądro K Jądro Przekazywanie komunikatów wygodne do wymiany mniejszej ilości danych w komunikacji międzykomputerowej. Pamięć dzielona zapewnia maksymalną szybkość i wygodę komunikacji w obrębie jednego komputera. Wiesław Płaczek Systemy Operacyjne: Wykład 2 16

Programy systemowe Programy systemowe Programy systemowe tworzą wygodne środowisko do rozwoju i wykonywania innych programów; można je podzielić na następujące kategorie: Manipulowanie plikami (tworzenie, usuwanie, kopiowanie itd.); Informowanie o stanie systemu (data i czas, wielkość pamięci itp.); Tworzenie i modyfikowanie plików (edytory); Zaplecze języków programowania (kompilatory, asemblery, interpretery popularnych języków, jak C/C++, Java, Perl, ); Ładowanie i wykonywanie programów (konsolidatory/linkery, programy ładujące i uruchomieniowe, ); Komunikacja (realizacja mechanizmów połączeń między procesami, użytkownikami, różnymi systemami komputerowymi); Programy aplikacyjne (przeglądarki WWW, arkusze kalkulacyjne, programy przetwarzania tekstu, pakiety graficzne, ). Sposób, w jaki większość użytkowników postrzega system operacyjny, jest określany w większym stopniu przez programy systemowe niż przez funkcje systemowe. Wiesław Płaczek Systemy Operacyjne: Wykład 2 17

Struktura systemu MS-DOS napisany pod kątem osiągnięcia maksymalnej funkcjonalności przy oszczędności miejsca: Brak podziału na moduły; Interfejsy i poziomy funkcjonalne nie są wyraźnie wydzielone. UNIX początkowo ograniczany przez cechy sprzętowe miał ograniczoną strukturalizację; składał się z dwu odrębnych części: Jądro (kernel): Składa się z wszystkiego poniżej interfejsu funkcji systemowych a powyżej sprzętu; Udostępnia system plików, planowanie przydziału procesora, zarządzanie pamięcią i inne czynności systemu operacyjnego (bardzo wiele możliwości zebranych na jednym poziomie). Programy systemowe korzystają z udostępnianych przez jądro funkcji systemowych dla wykonywania użytecznych działań (np. kompilacja programów, operacje na plikach). Wiesław Płaczek Systemy Operacyjne: Wykład 2 18

Warstwowa struktura systemu 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 Wiesław Płaczek Systemy Operacyjne: Wykład 2 19

Struktura systemu UNIX Sygnały; Obsługa terminali; System znakowego WE/WY; Użytkownicy Powłoki i polecenia; Kompilatory i interpretery; Biblioteki systemowe; J Ą D R O Moduły sterujące terminali; Interfejs funkcji systemowych jądra System plików; Wymiana; System blokowego WE/WY; Planowanie przydziału procesora; Zastępowanie stron; Stronicowanie na Moduły sterujące żądanie; dysków i taśm; Pamięć wirtualna; Interfejs między jądrem a sprzętem Sterowniki terminali; Sterowniki urządzeń; Sterowniki pamięci; Terminale; Dyski i taśmy; Pamięć operacyjna; Wiesław Płaczek Systemy Operacyjne: Wykład 2 20

Struktura warstwowa (Layered Structure) System operacyjny jest podzielona na warstwy (poziomy). Najniższą warstwę (warstwę 0)stanowi sprzęt; najwyższą warstwą (warstwą N) jest interfejs użytkownika. Warstwy są tak wybrane, że każda używa funkcji (operacji) i korzysta z usług tylko niżej położonych warstw. Modularność i ukrywanie operacji, danych itd. Zalety: Łatwiejsze uruchamianie i testowanie systemu (warstwa po warstwie, począwszy od najniższej) upraszcza projektowanie i implementację systemu. Wady: Główna trudność: odpowiednie zdefiniowanie poszczególnych warstw (nie zawsze jest oczywiste co powinna zawierać dana warstwa). Mniejsza wydajność (konieczność przechodzenia od warstwy do warstwy). Wiesław Płaczek Systemy Operacyjne: Wykład 2 21

Warstwa systemu operacyjnego Nowe operacje... Warstwa M Ukryte operacje.. Warstwa M 1 Istniejące operacje. Wiesław Płaczek Systemy Operacyjne: Wykład 2 22

Struktura warstw systemu OS/2 (IBM) Aplikacja Aplikacja Aplikacja Interfejs programowania aplikacji (API) Rozszerzenie API Podsystem Podsystem Podsystem Moduł sterujący urządzenia Jądro systemu Moduł sterujący urządzenia Zarządzanie pamięcią Ekspediowanie zadań Zarządzanie urządzeniami Moduł sterujący urządzenia Moduł sterujący urządzenia Wiesław Płaczek Systemy Operacyjne: Wykład 2 23

Mikrojądra Jądro systemu zredukowane do małego zbioru funkcji rdzeniowych, realizujących jedynie mały zbiór niezbędnych operacji elementarnych tzw. mikrojądro (microkernel). Wszystkie mniej ważne operacje przeniesione do programów systemowych lub programów z poziomu użytkownika. Komunikacja odbywa się między modułami użytkownika przy użyciu metody przekazywania komunikatów. Zalety: System operacyjny łatwiejszy do rozszerzania; SO łatwiejszy do przenoszenia na nowe architektury sprzętowe; SO bardziej niezawodny (mniej kodu wykonywanego w trybie jądra); Większe bezpieczeństwo systemu. Przykłady: system Mach (wersja UNIX a opracowana przez Carnegie-Mellon University), Tru64 UNIX, MS Windows NT. Wiesław Płaczek Systemy Operacyjne: Wykład 2 24

Struktura klient-serwer systemu Microsoft Windows NT Aplikacja Win32 Aplikacja OS/2 Aplikacja POSIX Serwer Win32 Serwer OS/2 Serwer POSIX Jądro Wiesław Płaczek Systemy Operacyjne: Wykład 2 25

Struktura hybrydowa systemu Apple Macintosh OS X (Darwin) Środowiska aplikacji i ogólne usługi Środowisko jądra BSD Mach System OS X ma strukturę hybrydową środowisko jądra składa się zasadniczo z mikrojądra Mach i jądra BSD. Wiesław Płaczek Systemy Operacyjne: Wykład 2 26

Struktura systemu z modułami jądra Stosowanie technik obiektowych przy projektowaniu nowoczesnych systemów operacyjnych prowadzi do tworzenia modularnych jąder. Jądro takie posiada zbiór rdzeniowych komponent i dynamicznie dołącza dodatkowe usługi albo w trakcie uruchamiania systemu, albo w trakcie jego działania. Strategia taka oparta jest o dynamicznie ładowalne moduły jądra i jest powszechna w nowoczesnych implementacjach systemu UNIX, takich jak Solaris, Linux, Mac OS X. Np. struktura systemu Solaris jest zorganizowana wokół rdzeniowego jądra z siedmioma typami ładowalnych modułów jądra: Klasy planowania; Systemy plików; Ładowalne wywołania systemowe; Formaty wykonawcze; Moduły STREAMS; Sterowniki urządzeń i szyn; Różnorodne usługi. Struktura tego typu jest bardziej elastyczna od struktury warstwowej; przypomina strukturę z mikrojądrem, ale jest od niej bardziej wydajna. Wiesław Płaczek Systemy Operacyjne: Wykład 2 27

Maszyny wirtualne Maszyna wirtualna (virtual machine) jest logiczną konkluzją podejścia warstwowego; traktuje sprzęt i funkcje systemowe jakby należały do tego samego poziomu maszyny. Maszyna wirtualna tworzy interfejs identyczny z podstawowym sprzętem (wirtualna kopia komputera). SO tworzy złudzenie wielu procesów pracujących na swych własnych procesorach z własną (wirtualną) pamięcią. Zasoby fizycznego komputera są dzielone w celu utworzenia maszyn wirtualnych. Odpowiednie planowanie przydziału CPU sprawia wrażenie, że każdy użytkownik ma swój własny procesor. Spooling i system plików pozwalają tworzyć wirtualne urządzenia wejścia-wyjścia. Zwykły terminal do pracy z podziałem czasu służy jako wirtualna konsola operatorska. Wiesław Płaczek Systemy Operacyjne: Wykład 2 28

Modele systemu Procesy Procesy Procesy Procesy Jądro Sprzęt Maszyna niewirtualna Interfejs programowy Jądro Jądro Jądro VM1 VM2 VM3 Implementacja maszyny wirtualnej Sprzęt Maszyna wirtualna (np. system IBM VM) Wiesław Płaczek Systemy Operacyjne: Wykład 2 29

Zalety/Wady maszyn wirtualnych Koncepcja maszyn wirtualnych dostarcza pełną ochronę zasobów systemowych, gdyż każda maszyna wirtualna jest całkowicie odizolowana od innych maszyn wirtualnych. System maszyn wirtualnych stanowi znakomitą platformę do badań i rozwoju systemów operacyjnych (rozwój systemu operacyjnego dokonuje się na maszynie wirtualnej zamiast na fizycznej maszynie, a zatem nie zaburza normalnego działania systemu). Koncepcja maszyny wirtualnej jest trudna do implementacji zrealizowanie dokładnej kopii maszyny bazowej wymaga sporego wysiłku. Wzajemna izolacja maszyn wirtualnych uniemożliwia bezpośrednie dzielenie zasobów (można wprowadzić komunikację poprzez wirtualną sieć, czy system dzielonych dysków wirtualnych, tzw. minidysków). Mniejsza wydajność (procesor musi obsługiwać wiele maszyn wirtualnych przełączanie kontekstu). Wiesław Płaczek Systemy Operacyjne: Wykład 2 30

Maszyna wirtualna Javy Kompilator języka Java (Sun Microsystems) wytwarza niezależny od architektury kod pośredni, tzw. bajtokod (bytecode), wykonywany przez wirtualną maszynę Javy (Java Virtual Machine JVM). Aby program w języku Java mógł być wykonywany na danej platformie, musi być na niej zainstalowana JVM (na SO, na sprzęcie lub w przeglądarce WWW). JVM jest specyfikacją abstrakcyjnego komputera; składa się z: Ładowacza klas (class loader); Weryfikatora klas (class verifier); Interpretera działającego w czasie wykonywania (runtime interpreter). Kompilatory terminowe (Just-In-Time: JIT) przekształcają bajtokod w język maszynowy danego komputera w celu podniesienia wydajności. JVM jest implementowana w przeglądarkach internetowych. JVM jest także realizowana w małym systemie operacyjnym JX, który implementuje ją wprost na sprzęcie. Urządzenia specjalizowane, np. telefony komórkowe, mogą być oprogramowane za pomocą języka Java (mikroprocesory wykonujące jako rdzenne instrukcje kod pośredni Javy). Wiesław Płaczek Systemy Operacyjne: Wykład 2 31

Projektowanie systemu Cele systemu: 1. Cele użytkownika system operacyjny powinien być wygodny i łatwy w użyciu, łatwy do nauki, niezawodny, bezpieczny i szybki. 2. Cele systemu system operacyjny powinien być łatwy do zaprojektowania, realizacji i pielęgnowania, a także elastyczny niezawodny, wolny od błędów i wydajny. Mechanizmy a polityka: Mechanizmy określają jak coś zrobić (np. mechanizmem ochrony procesora jest czasomierz), natomiast polityka decyduje o tym co będzie realizowane w praktyce (np. na jak długo będzie ustawiany czasomierz dla poszczególnych użytkowników). Oddzielenie polityki od mechanizmów jest bardzo ważną zasadą daje maksimum elastyczności, jeżeli decyzje polityczne mają być później zmieniane (np. systemy z mikrojądrem urzeczywistniają tę zasadę w sposób skrajny, realizując jedynie podstawowy zbiór elementarnych działań składowych; na przeciwnym krańcu są systemy takie jak Windows, gdzie zarówno mechanizmy, jak i polityka są zakodowane w systemie, żeby wymusić jego ogólny wygląd i odbiór). Wiesław Płaczek Systemy Operacyjne: Wykład 2 32

Implementacja systemu Tradycyjnie systemy operacyjne były pisane w językach asemblerowych, obecnie natomiast pisze się je często w językach wyższego poziomu, takich jak C lub C++ (np. UNIX, OS/2, czy Windows NT napisano niemal w całości w języku C; w asemblerze zakodowano tylko małe fragmenty). Zalety używania języka wyższego poziomu: Programuje się szybciej; Kod jest bardziej zwarty; Kod jest łatwiejszy do zrozumienia i sprawdzenia; System operacyjny jest znacznie łatwiejszy do przenoszenia (instalowania na innym sprzęcie). Wady: Spowolnienie działania; Większe zapotrzebowanie na pamięć. Najbardziej newralgiczne części systemu (tzw. wąskie gardła) mogą być (prze)pisane w asemblerze. Wiesław Płaczek Systemy Operacyjne: Wykład 2 33

Generowanie systemu Systemy operacyjne zwykle projektowane są by działały na pewnej klasie maszyn w rozmaitych instalacjach ze zmienną konfiguracją urządzeń. SO musi być skonfigurowany (wygenerowany) dla każdej specyficznej instalacji komputerowej proces ten nazywa się generowaniem systemu (system generation SYSGEN). Program SYSGEN zbiera informacje dotyczące specyfiki konfiguracji danego sprzętu (czyta z pliku, pyta operatora bądź sam sonduje sprzęt), a następnie generuje system. Rozruch systemu (booting) procedura rozpoczęcia pracy komputera przez załadowanie jądra. Program rozruchowy (bootstrap program) mały fragment kodu przechowywany w pamięci ROM będący w stanie zlokalizować jądro, załadować je do pamięci i rozpocząć jego wykonywanie (czasami dwuetapowo: mniejszy program rozruchowy sprowadza z dysku większy program rozruchowy, a ten dopiero ładuje jądro, np. w komputerach PC). Wiesław Płaczek Systemy Operacyjne: Wykład 2 34

Rozruch systemu W momencie rozruchu systemu rejestr rozkazów jest ładowany z predefiniowanego miejsca pamięci, w którym znajduje się początkowy program rozruchowy (initial bootstrap program). Program rozruchowy może wykonywać różnorodne zadania, jak np. diagnostyka komputera, inicjalizacja wszystkich składowych systemu od rejestrów CPU po sterowniki urządzeń i zawartość pamięci operacyjnej; wcześniej czy później uruchamia on system operacyjny. Małe systemy operacyjne, np. urządzeń typu PDA, czy telefony komórkowe, mogą w całości znajdować się w pamięci ROM. Aby umożliwić zmianę kodu rozruchowego bez konieczności wymiany kości pamięci ROM, niektóre systemy korzystają z pamięci EPROM (erasable programmable read-only memory), która normalnie jest tylko do odczytu, ale przy pomocy specjalnej komendy można uczynić ją zdolną do zapisu. W przypadku dużych systemów operacyjnych (np. Windows, Mac OS X, UNIX) sam system operacyjny znajduje się na dysku program rozruchowy czyta i uruchamia kod z bloku rozruchowego (boot block) znajdującego się w ustalonym miejscu na dysku (np. blok zerowy), ten kod z kolei najczęściej znajduje na dysku resztę programu rozruchowego, który uruchamia system. Dysk z partycją rozruchową nazywa się dyskiem rozruchowym (boot disk) lub dyskiem systemowym (system disk). Wiesław Płaczek Systemy Operacyjne: Wykład 2 35