970 likes | 1.18k Views
Systemy Operacyjne. Dr in ż . Sławomir Samolej email: ssamolej@prz-rzeszow.pl WWW : ssamolej.prz-rzeszow.pl Slajdy zostały przygotowane na podstawie materiałów opublikowanych na ( http://wazniak.mimuw.edu.pl/ ). Literatura.
E N D
Systemy Operacyjne Dr inż. Sławomir Samolej email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl Slajdy zostały przygotowane na podstawie materiałów opublikowanych na (http://wazniak.mimuw.edu.pl/)
Literatura • A. Silberschatz, J.L. Peterson, G. Gagne, Podstawy systemów operacyjnych. WNT, Warszawa 2005
Plan wykładu • Wprowadzenie • Procesy, zasoby, wątki • Planowanie przydziału procesora • Zarządzanie pamięcią operacyjną • Urządzenia wejścia-wyjścia • System plików • Współbieżność i synchronizacja procesów
Definicja systemu operacyjnego System operacyjny (nadzorczy, nadrzędny, sterujący) jest to zorganizowany zespół programów, które pośredniczą między sprzętem a użytkownikami, dostarczając użytkownikom zestawu środków ułatwiających projektowanie, kodowanie, uruchamianie i eksploatację programów oraz w tym samym czasie sterują przydziałem zasobów dla zapewnienia efektywnego działania. Alan Shaw
SO w architekturze komputera System operacyjny pośredniczy pomiędzy użytkownikiem a sprzętem, dostarczając wygodnego środowiska do wykonywania programów. Użytkownik końcowy korzysta z programów (aplikacji), na potrzeby których przydzielane są zasoby systemu komputerowego. Przydziałem tym zarządza system operacyjny, dzięki czemu można uzyskać stosunkowo duży stopień niezależności programów od konkretnego sprzętu oraz odpowiedni poziom bezpieczeństwa i sprawności działania. Programy użytkowe System operacyjny Sprzęt
Ogólna struktura systemu operacyjnego Programy systemowe • W ogólnym przypadku w strukturze systemu operacyjnego wyróżnia się jądrooraz programy systemowe, które dostarczane są razem z systemem operacyjnym,ale nie stanowią integralnej części jądra. Interpreter poleceń Jądro SO Sprzęt • Jądro jest zbiorem modułów, któreukrywają szczegóły sprzętowej realizacji systemu komputerowego, udostępniającpewien zestaw usług, wykorzystywanych między innymi do implementacjiprogramów systemowych. • Interpreter wykonuje pewne polecenia wewnętrznie, tzn. moduł lubprogram interpretera dostarcza implementacji tych poleceń. Jeśli interpreter niemoże wykonać wewnętrznie jakiegoś polecenia, uruchamia odpowiedni program(tzw. polecenie zewnętrzne), jako odrębny proces.
Zadania SO • Definicja interfejsu użytkownika • Udostępnianie systemu plików • Udostępnianie środowiska do wykonywaniaprogramów użytkownika • mechanizm ładowania i uruchamiania programów • mechanizmy synchronizacji i komunikacjiprocesów • Sterowanie urządzeniami wejścia-wyjścia • Obsługa podstawowej klasy błędów Zarządzanie zasobami
Zarządzanie zasobami systemu komputerowego • Przydział zasobów • Planowanie dostępu do zasobów • Ochrona i autoryzacja dostępu do zasobów • Odzyskiwanie zasobów • Rozliczanie — gromadzenie danych o wykorzystaniuzasobów
Zasoby zarządzane przez SO (1) • Procesor • przydział czasu procesora • Pamięć • alokacja przestrzeni adresowej dla procesów • ochrona i transformacja adresów
Zasoby zarządzane przez SO (2) • Urządzenia wejścia-wyjścia • udostępnianie i sterowanie urządzeniami pamięcimasowej • alokacja przestrzeni dyskowej • udostępnianie i sterownie drukarkami, skanerami itp. • Informacja (system plików) • organizacja i udostępnianie informacji • ochrona i autoryzacja dostępu do informacji
Klasyfikacja systemów operacyjnych zewzględu nasposób przetwarzania • Systemy przetwarzania bezpośredniego (ang. on-lineprocessing systems) - systemy interakcyjne • występuje bezpośrednia interakcja pomiędzyużytkownikiem a systemem, • wykonywanie zadania użytkownika rozpoczyna sięzaraz po przedłożeniu. • Systemy przetwarzania pośredniego (ang. off-lineprocessing systems) — systemy wsadowe • występuje znacząca zwłoka czasowa międzyprzedłożeniem a rozpoczęciem wykonywania zadania, • niemożliwa jest ingerencja użytkownika wwykonywanie zadania.
Klasyfikacja systemów operacyjnych zewzględu na liczbę wykonywanych programów • Systemy jednozadaniowe — niedopuszczalne jestrozpoczęcie wykonywania następnego zadaniaużytkownika przed zakończeniem poprzedniego. • Systemy wielozadaniowe — dopuszczalne jest istnieniejednocześnie wielu zadań (procesów), którym zgodnie zpewną strategią przydzielany jest procesor.
Inne rodzaje systemów operacyjnych • Systemyczasurzeczywistego (ang. real-time systems)— zorientowanenaprzetwarzanie z uwzględnieniemczasuzakończeniezadania, tzw. liniikrytycznej (ang.deadline), np. VxWorks, QNX, Windows CE, RT Linux. • Systemysieciowe i rozproszone (ang. network anddistributed systems) — umożliwiajązarządzaniezbioremrozproszonychjednostekprzetwarzających, czylizbioremjednostek (komputerów), któresązintegrowanesieciąkomputerową i niewspółdzieląfizyczniezasobów, np. Windows, Novel Netware, Linux, Unix . • Systemyoperacyjnekomputerównaręcznych —tworzonedlarozwiązańtypu PDA, czytelefonówkomórkowych, podlegająistotnymograniczeniomzasobowym, np. Symbian, Windows Mobile, Brew, OS X iPhone, Android, Linux.
Cykl rozkazowy (1) pobranie operandu pobranie kodu rozkazu pamięć wystaw. adr. kodu rozkazu dekodowanie operacji wystaw. adresu operandu CPU faza pobrania rozkazu faza pobrania argumentów łańcuch następny rozkaz
Cykl rozkazowy (2) faza przerwania zapis operandu wykonanie operacji wystaw. adresu operandu sprawdz. zgłoszenia przerwań przerwanie faza składowania wyniku brak przerwań
Podstawy działania systemu operacyjnego • Odwołania do jądrasystemuprzez system przerwańlubspecjalneinstrukcje (przerwanieprogramowe) • Sprzętowaochronapamięci • Dualnytrybpracy — trybużytkownika (ang. user mode) i trybsystemowy (trybjądra, ang. system mode) • Wyróżnienieinstrukcjiuprzywilejowanych,wykonywanychtylko w trybiesystemowym • Przerwaniezegarowe
Koncepcja procesu • Proces jest elementarnąjednostkąpracy (aktywności)zarządzanąprzez system operacyjny, któraubiegasię ozasobysystemukomputerowego w celuwykonaniaprogramu. • Proces = wykonującysię program. • Elementyskładoweprocesu: • program — definiujezachowanieprocesu, • dane — zbiórwartościprzetwarzanychorazwyniki, • zbiórzasobówtworzącychśrodowiskowykonawcze, • blokkontrolnyprocesu (PCB, deskryptor) — opisbieżącegostanuprocesu.
Koncepcja zasobu • Zasobem jest element sprzętowy lub programowysystemu komputerowego, którego brak możepotencjalnie zablokować wykonywanie programu(przetwarzanie) • Przykłady zasobów: procesor, pamięć, plik (dane) itp.
Stany procesu • Nowy (ang. new) — proces jest tworzony. • Wykonywany (ang. running) — wykonywane sąinstrukcje programu. • Oczekujący (ang. waiting) — proces oczekuje na jakieśzdarzenie, np. na zakończenie operacji wejścia-wyjścia,na przydział dodatkowego zasobu, synchronizuje się zinnymi procesami. • Gotowy (ang. ready) — proces czeka na przydziałprocesora. • Zakończony (ang. terminated) — proces zakończyłdziałanie i zwalnia zasoby.
Cykl zmian stanów procesu zakończony nowy wywłaszczenie gotowy wykonywany decyzja planisty przyjęcie oczekujący zażądanie operacji wejwyjlub oczekiwanie nazdarzenie zakończenie operacjiwej-wyj lub Wystąpieniezdarzenia
Kolejki procesów • Kolejkazadań (ang. job queue) — wszystkieprocesysystemu. • Kolejkaprocesówgotowych (ang. ready queue) —procesygotowe do działania, przebywające w pamięcigłównej. • Kolejka do urządzenia (ang. device queue) — procesyczekającenazakończenieoperacjiwejścia-wyjścia. • Kolejkaprocesówoczekującychnasygnałsynchronizacjiod innychprocesami (np. kolejkaprocesównasemaforze).
Diagram kolejek w planowaniu przydziału procesora kolejka procesów gotowych procesor kolejka operacji wej-wyj zamówienie operacji wej-wyj wej-wyj upłynięcie kwantu czasu kolejka procesów uśpionych synchronizacja sygnał
Przełączanie kontekstu zachowanie kontekstu w bloku kontrolnym 1 bezczynność Proces 1 odtworzenie kontekstu z bloku kontrolnego 2 bezczynność bezczynność Proces 2 bezczynność bezczynność Proces 3
Wątki • Wątek (lekki proces, ang. lightweight process — LWP)jest obiektem w obrębie procesu ciężkiego(heavyweight), posiadającym własne sterowanie i współdzielącym z innymi wątkami tego procesuprzydzielone (procesowi) zasoby: • segment kodu i segment danych w pamięci • tablicę otwartych plików • tablicę sygnałów
Komponenty jądra w planowaniu • Planistakrótkoterminowy (ang. CPU scheduler) —wyznaczawartośćpriorytetuprocesówgotowychi wybieraproces (o najwyższympriorytecie) dowykonania. • Ekspedytor (zwanyrównieżdyspozytorem,ang.dispatcher) — realizujeprzekazaniesterowania doprocesuwybranegoprzezplanistę (dokonujeprzełączeniakontekstu).
Ogólna koncepcja planowania • Tryb decyzji — określa okoliczności, w których ocenianei porównywane są priorytety procesów oraz dokonywanyjest wybór procesu do wykonania. • Funkcja priorytetu — funkcja wyznaczająca aktualnypriorytet procesu na podstawie parametrów procesu i stanu systemu. • Reguła arbitrażu — reguła rozstrzygania konfliktów wdostępie do procesora w przypadku procesów o tymsamym priorytecie
Tryb decyzji • Schemat niewywłaszczeniowy (ang. nonpreemptive) —proces po uzyskaniu dostępu do procesora wykonywanyjest do momentu zakończenie lub zgłoszenia żądaniaobsługi do systemu. • Schemat wywłaszczeniowy (ang. preemptive) — procesmoże zostać zatrzymany i umieszczony w kolejceprocesów gotowych, a procesor zostaje przydzielonyprocesowi o wyższym (lub równym) priorytecie.
Podejmowanie decyzji o wywłaszczeniu • Utworzenie i przyjęcie nowego procesu • Obudzenie procesu w wyniku otrzymania komunikatu,sygnału gotowości urządzenia (przerwanie) lub sygnałuwynikającego z synchronizacji • Upłynięcie kwantu czasu odmierzanego przezczasomierz • Wzrost priorytetu innego procesu w stanie gotowypowyżej priorytetu procesu wykonywanego — możliwe wsystemie ze zmiennymi priorytetami
Funkcja priorytetu • Argumentami funkcji priorytetu są wybrane składowestanu procesu oraz stanu systemu. • Priorytet procesu w danej chwili jest wartością wynikowąfunkcji priorytetu dla bieżących wartości parametrówstanu danego procesu i aktualnego stanu systemu.
Przykład realizacji przetwarzania Poniższy diagram przedstawia zmiany stanu 3 procesów w czasie i ma na celu zobrazowanie parametrów czasowych. Wykonywanie Gotowość Oczekiwanie Process P1 P2 P3 0 2 4 6 8 10 12 14 16 18
Reguła arbitrażu • Losowo — możliwe w przypadku, gdyliczbaprocesów otymsamympriorytecie jest niewielka • Cyklicznie — cyklicznyprzydziałprocesorakolejnymprocesom • Chronologicznie — w kolejnościprzyjmowaniaprocesówdo systemu (w kolejności FIFO)
Algorytmy planowania niewywłaszczającego • FCFS (First Come First Served) — pierwszy zgłoszony,pierwszy obsłużony • LCFS (Last Come First Served) — ostatni zgłoszony,pierwszy obsłużony • SJF (SJN, SPF, SPN, Shortest Job/Process First/Next)— najpierw najkrótsze zadanie
Algorytmy planowania wywłaszczającego • Planowanie rotacyjne (ang. Round Robin, RR) — poustalonym kwancie czasu proces wykonywany jestprzerywany i trafia do kolejki procesów gotowych. • SRT (Shortest Remaining Time) — najpierw zadanie,które ma najkrótszy czas do zakończenia
Przykłady uszeregowania bez wywłaszczeń Wykonywanie Process Gotowość P1 FCFS P2 P3 SJF P1 P2 P3 0 2 4 6 8 10 12 14 16 18
Przykłady uszeregowania z wywłaszczeniami Wykonywanie Process Gotowość P1 SRT P2 P3 RR P1 P2 P3 0 2 4 6 8 10 12 14 16 18
Algorytm RR — dobór kwantu czasu • Krótki kwant czasu oznacza zmniejszenie czasu cykluprzetwarzania procesów krótkich, ale zwiększa narzutczasowy związany z przełączaniem kontekstu. • Z punktu widzenia interakcji z użytkownikiem kwantczasu powinien być trochę większy, niż czasodpowiedzi (reakcji).
Inne algorytmy planowania • Planowanie priorytetowe — oparte na prioryteciezewnętrznym • Planowanie wielokolejkowe — w systemie jest wielekolejek procesów gotowych i każda z kolejek może byćinaczej obsługiwana. • Planowanie przed liniami krytycznymi — zakończeniezadania przed czasową linią krytyczną lub możliwiekrótko po tej linii
Szeregowanie procesów, ograniczonychwejściem-wyjściem • Procesyograniczonewejściem-wyjściempotrzebująniewieleczasuprocesora, większośćczasu w systemiespędzającnaoczekiwaniunaurządzeniazewnętrzne. • Opóźnianieprzydziałuprocesoradlategotypuprocesówpowodujezmniejszeniewykorzystaniaurządzeńzewnętrznych, a przydział — zewzględunaniedługąfazęprocesora — niepowodujeistotnegozwiększeniaczasuoczekiwaniainnychprocesów. • Właściwymalgorytmembyłby SJF lub SRT. • Bezwzględnapreferencjadlaprocesówoczekującychnagotowośćurządzeńmożespowodowaćgłodzenieprocesówograniczonychprocesorem.
Wirtualne planowanie rotacyjne kolejka procesów gotowych procesor Pomocnicza kolejka procesów gotowych zamówienie operacji wej-wyj wej-wyj kolejka operacji wej-wyj upłynięcie kwantu czasu kolejka procesów uśpionych synchronizacja sygnał
Podstawowe zagadnienia związane z zarządzaniem pamięcią operacyjną • Przydział pamięci i jej odzyskiwanie • Ochrona • Udostępnienie w celu współdzielenia • Transformacja adresów • Transfer danych pomiędzy poszczególnymi poziomami w hierarchii pamięci.
Pamięć jako zasób systemu komputerowego • Pamięć jest zasobem służący do przechowywaniadanych i programów. • Z punktu widzenia systemu pamięć jest zasobem ostrukturze hierarchicznej (począwszy od rejestrówprocesora, przez pamięć podręczną, pamięć główną,skończywszy na pamięci masowej), w której na wyższympoziomie przechowywane są dane, stanowiące fragmentzawartości poziomu niższego. • Z punktu widzenia procesu (również procesora) pamięćjest zbiorem bajtów identyfikowanych przez adresy, czylitablicą bajtów, w której adresy są indeksami.
Hierarchia pamięci rejestry pamięć I rzędu Pamięć podręczna pamięć główna dysk magnetyczny pamięć II rzędu taśma dysk optyczny
Przestrzeń adresowa • Przestrzeń adresowa jest zbiór wszystkichdopuszczalnych adresów w pamięci. • W zależności od charakteru adresu odróżnia się: • przestrzeń fizyczną — zbiór adresówprzekazywanych do układów pamięci głównej(fizycznej). • przestrzeń logiczną — zbiór adresów generowanychprzez procesor w kontekście aktualniewykonywanego procesu.
Przykład odwzorowania adresu logicznego na fizyczny rejestr przemieszczenia pamięć 1024 procesor adres logiczny 25 adres fizyczny 1049 + jednostka zarządzania pamięcią (MMU)
Przykład weryfikacji poprawności adresu rejestr graniczny rejestr przemieszczenia pamięć 256 1024 adres fizyczny T N V Błąd programowy + adres logiczny jednostka zarządzania pamięcią (MMU) procesor
Podział pamięci • Podział stały • partycje o równym rozmiarze • partycje o różnych rozmiarach • Podział dynamiczny • Podział na bloki bliźniacze (zwany też metodąsąsiedzkich stert)