podstawy systemów operacyjnych – a. silberschatz 3.1 ę ... · 2 podstawy systemów operacyjnych...

7
1 I. Pardyka - Akademia Świętokrzyska 3.1 Podstawy systemów operacyjnych – A. Silberschatz System komputerowy - hardware (schemat uproszczony) I. Pardyka - Akademia Świętokrzyska 3.2 Podstawy systemów operacyjnych – A. Silberschatz System operacyjny I. Pardyka - Akademia Świętokrzyska 3.3 Podstawy systemów operacyjnych – A. Silberschatz Struktury systemów operacyjnych Skladniki systemu Uslugi systemowe Funkcje systemowe (system calls) Programy systemowe Struktura systemu Maszyny wirtualne Projektowanie systemu i implementacja Generowanie systemu I. Pardyka - Akademia Świętokrzyska 3.4 Podstawy systemów operacyjnych – A. Silberschatz Skladniki systemu Zarządzanie procesami Zarządzanie pamięcią glówną Zarządzanie plikami Zarządzanie systemem we/wy Zarządzanie pamięcią pomocniczą Zarządzanie pracą w sieci System ochrony System interpretacji poleceń I. Pardyka - Akademia Świętokrzyska 3.5 Podstawy systemów operacyjnych – A. Silberschatz Zarządzanie procesami Proces to program w trakcie wykonywania. Proces wymaga zasobów (czas CPU, pamięć, pliki, urządzenia we/wy) aby wykonać zadanie. System operacyjny odpowiada za następujące dzialania związane z zarządzaniem procesami: Tworzenie i usuwanie procesu. Zawieszanie i odwieszanie procesu. Dostarcza mechanizmów do: synchronizacji procesów komunikacji między procesami. I. Pardyka - Akademia Świętokrzyska 3.6 Podstawy systemów operacyjnych – A. Silberschatz Zarządzanie pamięcią glówną Pamięć jest zorganizowana w postaci wielkiej tablicy slów lub bajtów wskazywanych przez adres. Jest zbiornikiem danych o szybkim dostępie dzielonym między CPU i urządzenia we/wy. Pamięć glówna jest ulotna (volatile). Traci swoją zawartość w razie awarii systemu. System operacyjny jest odpowiedzialny za następujące dzialania związane z zarządzaniem pamięcią: Śledzenie zajętości pamięci (która część jest zajęta i przez kogo). Decydowanie, który proces zaladować, gdy pojawi się wolne miejsce w pamięci. Przydzielanie (allocation) i zwalnianie (deallocation) pamięci stosownie do potrzeb.

Upload: vannhan

Post on 01-Mar-2019

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Podstawy systemów operacyjnych – A. Silberschatz 3.1 ę ... · 2 Podstawy systemów operacyjnych – A. Silberschatz 3.7 I. Pardyka - Akademia Świętokrzyska Zarządzanie plikami

1

I. Pardyka - Akademia Świętokrzyska3.1Podstawy systemów operacyjnych – A. Silberschatz

System komputerowy - hardware(schemat uproszczony)

I. Pardyka - Akademia Świętokrzyska3.2Podstawy systemów operacyjnych – A. Silberschatz

System operacyjny

I. Pardyka - Akademia Świętokrzyska3.3Podstawy systemów operacyjnych – A. Silberschatz

Struktury systemów operacyjnych

Składniki systemuUsługi systemowe

Funkcje systemowe (system calls)Programy systemoweStruktura systemu

Maszyny wirtualneProjektowanie systemu i implementacja

Generowanie systemu

I. Pardyka - Akademia Świętokrzyska3.4Podstawy systemów operacyjnych – A. Silberschatz

Składniki systemu

Zarządzanie procesami

Zarządzanie pamięcią głównąZarządzanie plikami

Zarządzanie systemem we/wyZarządzanie pamięcią pomocnicząZarządzanie pracą w sieciSystem ochronySystem interpretacji poleceń

I. Pardyka - Akademia Świętokrzyska3.5Podstawy systemów operacyjnych – A. Silberschatz

Zarządzanie procesami

Proces to program w trakcie wykonywania. Proceswymaga zasobów (czas CPU, pamięć, pliki, urządzeniawe/wy) aby wykonać zadanie.

System operacyjny odpowiada za następujące działaniazwiązane z zarządzaniem procesami:

Tworzenie i usuwanie procesu.Zawieszanie i odwieszanie procesu.

Dostarcza mechanizmów do:synchronizacji procesów

komunikacji między procesami.

I. Pardyka - Akademia Świętokrzyska3.6Podstawy systemów operacyjnych – A. Silberschatz

Zarządzanie pamięcią główną

Pamięć jest zorganizowana w postaci wielkiej tablicy słówlub bajtów wskazywanych przez adres. Jest zbiornikiemdanych o szybkim dostępie dzielonym między CPU iurządzenia we/wy.Pamięć główna jest ulotna (volatile). Traci swojązawartość w razie awarii systemu.System operacyjny jest odpowiedzialny za następującedziałania związane z zarządzaniem pamięcią:

Śledzenie zajętości pamięci (która część jest zajęta i przezkogo).Decydowanie, który proces załadować, gdy pojawi sięwolne miejsce w pamięci.Przydzielanie (allocation) i zwalnianie (deallocation) pamięcistosownie do potrzeb.

Page 2: Podstawy systemów operacyjnych – A. Silberschatz 3.1 ę ... · 2 Podstawy systemów operacyjnych – A. Silberschatz 3.7 I. Pardyka - Akademia Świętokrzyska Zarządzanie plikami

2

I. Pardyka - Akademia Świętokrzyska3.7Podstawy systemów operacyjnych – A. Silberschatz

Zarządzanie plikami

Plik jest zbiorem powiązanych ze sobą informacji,zdefiniowanych przez jego twórcę. Zwykle pliki zawierająprogramy (wersję źródłową i wynikową) oraz dane.System operacyjny jest odpowiedzialny za następującedziałania związane z zarządzaniem plikami:

Tworzenie i usuwanie plików.Tworzenie i usuwanie katalogów.

Dostarczanie elementarnych operacji do manipulowaniaplikami i katalogami.

Odwzorowanie plików na obszary pamięci pomocniczej.Składanie plików na trwałych nośnikach pamięci (na którychinformacja nie znika).

I. Pardyka - Akademia Świętokrzyska3.8Podstawy systemów operacyjnych – A. Silberschatz

Zarządzanie systemem we/wy

System we/wy składa się z:Systemu buforowania notatnikowego

Ogólnego interfejsu do programów obsługi urządzeńsprzętowych.

Sterowników poszczególnych urządzeń sprzętowych.

I. Pardyka - Akademia Świętokrzyska3.9Podstawy systemów operacyjnych – A. Silberschatz

Zarządzanie pamięcią pomocnicząPamięć główna (main memory = primary storage) jest ulotna izbyt mała aby pomieścić wszystkie dane i programy dlategopotrzebna jest pamięć pomocnicza (secondary storage)stanowiąca zaplecze dla pamięci głównej.

Większość współczesnych systemów komputerowych posługujesię pamięcią dyskową jako podstawowym środkiemmagazynowania programów i danych.System operacyjny jest odpowiedzialny za następujące działaniazwiązane z zarządzaniem pamięcią pomocniczą:

Zarządzanie obszarami wolnymiPrzydzielanie pamięci

Planowanie przydziałów obszarów pamięci

I. Pardyka - Akademia Świętokrzyska3.10Podstawy systemów operacyjnych – A. Silberschatz

Praca sieciowa(w systemie rozproszonym)

System rozległy (distributed) to zbiór procesorów, którenie korzystają ze wspólnej pamięci ani zegara. Każdyprocesor posiada swoją własną pamięć lokalną.Procesory w systemie rozproszonym są połączone zapośrednictwem sieci komunikacyjnej.

Dla celów komunikacji stosowane są protokoły(protocol).

System rozproszony umożliwia użytkownikowi dostęp doróżnych zasobów systemowych.

Dostęp do zasobów dzielonych pozwala na:Przyspieszenie obliczeń.

Zwiększa osiągalność danych.Zwiększa pewność działania.

I. Pardyka - Akademia Świętokrzyska3.11Podstawy systemów operacyjnych – A. Silberschatz

System ochrony

Ochrona (Protection) jest mechanizmem nadzorowaniadostępu programów, procesów lub użytkowników dozasobów zdefiniowanych przez system komputerowy.Mechanizm ochrony musi:

Rozróżnić dostęp autoryzowany od nieautoryzowanego.

Określić co podlega jakiej ochronie.Zapewnić środki wymuszania zaprowadzonych ustaleń.

I. Pardyka - Akademia Świętokrzyska3.12Podstawy systemów operacyjnych – A. Silberschatz

System interpretacji poleceń

Wiele poleceń jest przekazywanych do systemuoperacyjnego za pośrednictwem instrukcji sterujących(control statements):

Tworzenie procesu i zarządzanie nim

Obsługa we/wyZarządzanie pamięcią pomocnicząZarządzanie pamięcią główną (operacyjną)Dostęp do systemu plików

OchronaPraca w sieci

Page 3: Podstawy systemów operacyjnych – A. Silberschatz 3.1 ę ... · 2 Podstawy systemów operacyjnych – A. Silberschatz 3.7 I. Pardyka - Akademia Świętokrzyska Zarządzanie plikami

3

I. Pardyka - Akademia Świętokrzyska3.13Podstawy systemów operacyjnych – A. Silberschatz

System interpretacji poleceń (cd.)

Program, który czyta i interpretuje polecenia jestnazywany:

Interpreterem poleceń (command-line interpreter)Powłoką (ang. Shell), np. w systemie UNIX

Jego zadaniem jest pobranie i wykonanie następnegopolecenia.

I. Pardyka - Akademia Świętokrzyska3.14Podstawy systemów operacyjnych – A. Silberschatz

Usługi systemu operacyjnego

Wykonanie programu (program execution) – załadowanie programudo pamięci i rozpoczęcie jego wykonywania.

Operacje we/wy (I/O operations) – ponieważ programy użytkownikanie mogą wykonywać operacji we/wy bezpośrednio, więc środki dorealizacji tych czynności musi mieć system operacyjny.Manipulowanie systemem plików (file-system manipulation) –możliwość czytania, zapisu, tworzenia i usuwania plików.

Komunikacja (communications) – wymiana informacji międzyprocesami wykonywanymi na tym samym komputerze lub nakomputerach połączonych siecią. Komunikacja zachodzi zapośrednictwem pamięci dzielonej (shared memory) lub zapośrednictwem przekazywania komunikatów (message passing).Wykrywanie błędów (error detection) – w CPU, pamięci,urządzeniach we/wy, programie użytkownika gwarantujepoprawność i spójność obliczeń.

I. Pardyka - Akademia Świętokrzyska3.15Podstawy systemów operacyjnych – A. Silberschatz

Dodatkowe funkcje systemu

Nie tyle pomagają użytkownikowi, co zapewniają poprawnąpracę systemu.

• Przydział zasobów (resource allocation) – wieluużytkownikom lub wielu zadaniom wykonywanym w tymsamym czasie.

• Rozliczanie (accounting) – przechowywanie danych o tym,którzy użytkownicy i w jakim stopniu korzystają z zasobówkomputera (aby wystawić rachunek lub dla celówstatystycznych).

• Ochrona (protection) – zapewnia, że dostęp do zasobówsystemu jest kontrolowany.

I. Pardyka - Akademia Świętokrzyska3.16Podstawy systemów operacyjnych – A. Silberschatz

Funkcje systemowe (System Calls)

Funkcje systemowe tworzą interfejs między wykonywanymprogramem, a systemem operacyjnym.

Zwykle dostępne na poziomie instrukcji asemblera.Języki zastępujące asembler w programowaniu systemowym (jak C,C++) pozwalają również na bezpośrednie korzystanie z tych funkcji.

Metody przekazywania parametrów pomiędzy wykonywanymprogramem a systemem operacyjnym.

Przekazywanie parametrów przez rejestry.Umieszczenie parametrów w tablicy i przekazanie adresu tablicy jakoparametru poprzez rejestr.Za pośrednictwem stosu (stack):

Program odkłada parametry na stosie: operacja: push (store)System operacyjny pobiera parametry ze stosu: operacja pop.

I. Pardyka - Akademia Świętokrzyska3.17Podstawy systemów operacyjnych – A. Silberschatz

Przekazywanie parametrów zapomocą tablicy

I. Pardyka - Akademia Świętokrzyska3.18Podstawy systemów operacyjnych – A. Silberschatz

Rodzaje funkcji systemowych

Nadzorowanie procesów (tworzenie, ładowanie,kończenie, zaniechanie, oczekiwanie, przydział zasobówitp.)Zarządzanie plikami (tworzenie, otwieranie, czytanie,pisanie itp.)

Zarządzanie urządzeniami (zamówienie, zwolnienie,czytanie, pisanie itp.)

Utrzymywanie informacji (pobranie daty, czasu, danychsystemowych, określenie atrybutów procesu itp.)

Komunikacja (tworzenie, usuwanie połączeniakomunikacyjnego, nadawanie, odbieranie komunikatów,przekazywanie informacji o stanie itp.).

Page 4: Podstawy systemów operacyjnych – A. Silberschatz 3.1 ę ... · 2 Podstawy systemów operacyjnych – A. Silberschatz 3.7 I. Pardyka - Akademia Świętokrzyska Zarządzanie plikami

4

I. Pardyka - Akademia Świętokrzyska3.19Podstawy systemów operacyjnych – A. Silberschatz

MS-DOS

Po inicjacji systemu Wykonywanie programu

I. Pardyka - Akademia Świętokrzyska3.20Podstawy systemów operacyjnych – A. Silberschatz

UNIX uruchamiający wieleprogramów

I. Pardyka - Akademia Świętokrzyska3.21Podstawy systemów operacyjnych – A. Silberschatz

Modele komunikacyjne

Przesyłanie komunikatów Pamięć dzielona

Komunikacja za pomocą wymiany komunikatów albo zapośrednictwem pamięci.

I. Pardyka - Akademia Świętokrzyska3.22Podstawy systemów operacyjnych – A. Silberschatz

Programy systemowe

Programy systemowe tworzą wygodne środowisko doopracowania i wykonania innych programów. Można jepodzielić na kilka kategorii:

Manipulowanie plikamiInformowanie o stanie systemu

Modyfikowanie plikówTranslatory języków programowania

Ładowanie i wykonywanie programów.Komunikacja (wymiana komunikatów, poczta elektroniczna, zdalnelogowanie itp.)Programy użytkowe.

Większość użytkowników postrzega system operacyjny przezpryzmat programów systemowych (a nie funkcji systemowych).

I. Pardyka - Akademia Świętokrzyska3.23Podstawy systemów operacyjnych – A. Silberschatz

Struktura MS-DOS

MS-DOS – został napisany pod kątem maksymalnejfunkcjonalności przy oszczędności kodu.

Brak podziału na modułyInterfejsy i poziomy funkcjonalne nie są wyraźniewydzielone.

I. Pardyka - Akademia Świętokrzyska3.24Podstawy systemów operacyjnych – A. Silberschatz

Warstwy MS-DOS

Page 5: Podstawy systemów operacyjnych – A. Silberschatz 3.1 ę ... · 2 Podstawy systemów operacyjnych – A. Silberschatz 3.7 I. Pardyka - Akademia Świętokrzyska Zarządzanie plikami

5

I. Pardyka - Akademia Świętokrzyska3.25Podstawy systemów operacyjnych – A. Silberschatz

Struktura systemu UNIX

UNIX – początkowo ograniczony przez cechy sprzętu.Składa się z dwóch odrębnych części:

Programów systemowychJądra

Do jądra należy wszystko, co znajduje się powyżejsprzętu, a poniżej interfejsu do funkcjisystemowych.Jądro zarządza systemem plików, planuje przydziałprocesora, zarządza pamięcią.

I. Pardyka - Akademia Świętokrzyska3.26Podstawy systemów operacyjnych – A. Silberschatz

Struktura systemu UNIX

I. Pardyka - Akademia Świętokrzyska3.27Podstawy systemów operacyjnych – A. Silberschatz

Podejście warstwowe

System operacyjny jest dzielony na warstwy: najniższazarządza sprzętem, najwyższa stanowi interfejsużytkownika.

Warstwa używa funkcji i usług należących tylko dowarstwy niższej (leżącej bezpośrednio pod danąwarstwą).

I. Pardyka - Akademia Świętokrzyska3.28Podstawy systemów operacyjnych – A. Silberschatz

Warstwy

I. Pardyka - Akademia Świętokrzyska3.29Podstawy systemów operacyjnych – A. Silberschatz

Struktura OS/2

I. Pardyka - Akademia Świętokrzyska3.30Podstawy systemów operacyjnych – A. Silberschatz

Koncepcja mikrojądra

W jądrze, zwanym mikrojądrem (microkernel) pozostawiasię niezbędne minimum funkcji, pozostałe przenosząc doprzestrzeni użytkownika.Komunikacja z modułami użytkownika za pośrednictwemkomunikatów.

Korzyści:łatwość rozszerzania mikrojądra.

łatwość przenoszenia kodu systemu do nowej architektury.zwiększona niezawodność (mniej kodu wykonuje się wtrybie jądra)zwiększone bezpieczeństwo.

Page 6: Podstawy systemów operacyjnych – A. Silberschatz 3.1 ę ... · 2 Podstawy systemów operacyjnych – A. Silberschatz 3.7 I. Pardyka - Akademia Świętokrzyska Zarządzanie plikami

6

I. Pardyka - Akademia Świętokrzyska3.31Podstawy systemów operacyjnych – A. Silberschatz

Jądro a mikrojądro systemu

I. Pardyka - Akademia Świętokrzyska3.32Podstawy systemów operacyjnych – A. Silberschatz

Struktura Windows NT Client-Server

I. Pardyka - Akademia Świętokrzyska3.33Podstawy systemów operacyjnych – A. Silberschatz

Maszyny wirtualne

Maszyna wirtualna (virtual machine) - wykorzystuje sięabstrakcję podejścia warstwowego: traktujemy sprzęt ijądro systemu operacyjnego tak, jakby razem stanowiłyhardware i taką maszynę nazywamy maszyną wirtualną.Maszyna wirtualna posiada interfejs identyczny jakinterfejs „gołego” sprzętu.System operacyjny może tworzyć złudzenie, że wieleprocesów pracuje na własnych procesorach, i z własną(wirtualną) pamięcią.

I. Pardyka - Akademia Świętokrzyska3.34Podstawy systemów operacyjnych – A. Silberschatz

Maszyny wirtualne

I. Pardyka - Akademia Świętokrzyska3.35Podstawy systemów operacyjnych – A. Silberschatz

Maszyny wirtualne (cd.)

Zasoby komputera fizycznego są dzielone pomiędzymaszyny wirtualne.

Planowanie przydziału procesora (CPU) może wywoływaćwrażenie, że każdy użytkownik ma własny procesor.

Spooling (simultaneous peripherial operation on-line) isystemy plików pozwalają tworzyć wirtualne drukarki.

Zwykła końcówka konwersacyjna do pracy w podzialeczasu przejmuje rolę wirtualnej konsoli operatorskiej.

I. Pardyka - Akademia Świętokrzyska3.36Podstawy systemów operacyjnych – A. Silberschatz

Modele systemu

Non-virtual Machine Virtual Machine

Page 7: Podstawy systemów operacyjnych – A. Silberschatz 3.1 ę ... · 2 Podstawy systemów operacyjnych – A. Silberschatz 3.7 I. Pardyka - Akademia Świętokrzyska Zarządzanie plikami

7

I. Pardyka - Akademia Świętokrzyska3.37Podstawy systemów operacyjnych – A. Silberschatz

Maszyna wirtualna Javy

Program języka Java po kompilacji przyjmuje formę kodubajtowego (bytecode) niezależnego od platformy, naktórej jest wykonywany przez wirtualną maszynę Javy -Java Virtual Machine (JVM).JVM składa się z:

- programu ładującego klasy (class loader)- programu weryfikującego klasy (class verifier)

- interpretera wykonującego (runtime interpreter)

I. Pardyka - Akademia Świętokrzyska3.38Podstawy systemów operacyjnych – A. Silberschatz

Maszyna wirtualna Javy

I. Pardyka - Akademia Świętokrzyska3.39Podstawy systemów operacyjnych – A. Silberschatz

Założenia projektowe systemuoperacyjnego

Cele użytkownika – system operacyjny powinien być:wygodny w użyciu,łatwy do nauki,niezawodny,bezpieczny,szybki.

Cele systemowe – system operacyjny powinien być:łatwy do zaprojektowania,implementacji i pielęgnowaniaelastyczny,niezawodny,wolny od błędówwydajny.

I. Pardyka - Akademia Świętokrzyska3.40Podstawy systemów operacyjnych – A. Silberschatz

Mechanizm a polityka

Mechanizmy określają, jak czegoś dokonać, a politykadecyduje o tym co ma być wykonane.Oddzielenie polityki od mechanizmów jest bardzo ważnązasadą pozwalającą uzyskiwać maksimum elastycznościprzy zmianie decyzji składających się na politykę.

I. Pardyka - Akademia Świętokrzyska3.41Podstawy systemów operacyjnych – A. Silberschatz

Implementacja systemu

Dawniej system operacyjny był pisany w całości w językuasemblera, obecnie może być pisany w językachwyższego poziomu.Kod napisany w języku wyższego poziomu:

Może powstawać szybciej.

Jest bardziej zwarty.Jest łatwiejszy do zrozumienia i sprawdzenia (debug).

System operacyjny jest znacznie łatwiejszy doprzenoszenia (instalowania na innym sprzęcie), jeślizostał napisany w języku wysokiego poziomu.

I. Pardyka - Akademia Świętokrzyska3.42Podstawy systemów operacyjnych – A. Silberschatz

Generowanie Systemu (SYSGEN)

Systemy operacyjne są tak projektowane, aby można jebyło instalować na maszynach dowolnej klasy; systemmusi być jednak konfigurowany na komputerze danejklasy.Program konfigurujący (generujący system) SYSGENpotrzebuje informacji na temat konfiguracji sprzętu.Booting – startowanie komputera przez ładowanie jądrasystemu.Bootstrap program – kod zapisany w ROM, który potrafizlokalizować jądro, załadować je do pamięci i uruchomić.