Systemy Operacyjne - PowerPoint PPT Presentation

systemy operacyjne n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Systemy Operacyjne PowerPoint Presentation
Download Presentation
Systemy Operacyjne

play fullscreen
1 / 124
Systemy Operacyjne
207 Views
Download Presentation
komala
Download Presentation

Systemy Operacyjne

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Systemy Operacyjne Sem. Zimowy 2007/2008 Dr Piotr Smejda E-mail: piotr@wshe.lodz.pl htttp://piotrsmejda.wshe.lodz.pl student

  2. Literatura: • A. Silberschatz, P.B. Galvin, G. Gagne, „Podstawy systemówoperacyjnych”, wydanie szóste, WNT 2005; wydanie siódme, WNT 2006.

  3. Ogólny plan wykładu (7 h lekcyjnych) • Wprowadzenie i przegląd. • Struktury systemów komputerowych. • Struktury systemów operacyjnych. • Zarządzanie procesami. • Zarządzanie zasobami pamięci.. • Zarządzanie operacjami wejścia-wyjścia. • Ochrona i bezpieczeństwo. • Przykłady systemów: linux, winnt/2000/xp/vista i inne

  4. Wprowadzenie • System komputerowy: sprzęt (ang. hardware) –dostarcza podstawowe zasobysystemu komputerowego: procesor (jednostka centralna,ang. central processing unit –CPU), pamięć, urządzeniawejścia-wyjścia (WE/WY) itd. System operacyjny –nadzoruje ikoordynujeposługiwaniesię sprzętem przez różne programy aplikacyjne (użytkowe) – szczegóły później Programy aplikacyjne (kompilatory, systemy baz danych,gry komputerowe, programy dla biznesu) Określająsposoby użycia zasobów systemu do rozwiązywania zadaństawianych przez użytkowników Użytkownicy (ludzie, maszyny, inne komputery).

  5. Schemat systemu komputerowego

  6. Co to jest System Operacyjny? • System operacyjny –program, który działa jakopośrednik między użytkownikiem komputera a sprzętem komputerowym. • Zadania systemu operacyjnego: Zarządzanie zasobami komputera: procesory, pamięć, urządzenia wejścia wyjścia, porty komunikacyjne itd. Ukrywanie szczegółów sprzętowych przez tworzenie abstrakcyjnych obiektów (maszyn wirtualnych). Tworzenie środowiska, w którym użytkownik może wydajnie i wygodnie wykonywać programy.

  7. Historia SO • I. Systemy komputerów głównych (Mainfraime Systems) A) Wczesne systemy –(lata 1950-te) Struktura: duże maszyny obsługiwane przy pomocy konsoli; system jednoużytkownikowy; programista/użytkownik jako operator; taśmy papierowe i karty perforowane jako nośniki. Wczesne oprogramowanie: asemblery, kompilatory, programy ładujące ( loaders); biblioteki typowych funkcji; sterowniki urządzeń Zalety –wysoki poziom bezpieczeństwa. Wady – nieefektywne wykorzystanie drogich zasobów:niski poziom wykorzystania CPU, znaczący czas potrzebny na czynności operatorskie.

  8. B) Proste systemy wsadowe (Simple Batch Systems) Konieczne zatrudnienie operatora (użytkownik operator). Użytkownik przygotowuje zadanie (na kartach perforowanych) i przekazuje je operatorowi. Operator uruchamia zadanie i wyniki zwraca użytkownikowi. Zalety –większa przepustowość Wady –niska wydajność: długi czas obiegu zadania;

  9. C) Wieloprogramowe systemy wsadowe Wiele zadań rezyduje w tym samym czasie w pamięci, a procesor jest im odpowiednio przydzielany (współbieżność); Niezbędne cechy systemu operacyjnego: Szeregowanie zadań– decydowanie, które zadania z puli zadań mają być załadowane do pamięci operacyjnej. Zarządzanie pamięcią–system musi alokować pamięć dla wielu zadań. Planowanie przydziału procesora(CPU scheduling) –system musi wybrać do uruchomienia jedno spośród wielu zadań w pamięci. Ochrona zadańna wszystkich etapach pobytu w systemie. Alokowanie urządzeń, dostarczanie procedur WE/WY. Zalety: Wydajne wykorzystanie zasobów (CPU, pamięć operacyjna, urządzenia zewnętrzne). Wady: Użytkownik nie może ingerować w zadanie w trakcie jego wykonywania, np. reagować na błędy kompilacji, nie może na bieżąco testować programu itd. Długi obieg zadania –od złożenia programu do odebrania wyników.

  10. D) Systemy z podziałem czasu (Time-Sharing Systems) Procesor wykonuje na przemian wiele różnych zadań (wielozadaniowość, ang. multitasking), a przełączenia następują tak często, że użytkownicy mogą na bieżąco współdziałać z programami podczas ich wykonywania. • Możliwość pracy interakcyjnej–użytkownik wydaje bezpośrednio instrukcje systemowi lub programowi i otrzymuje natychmiastowe odpowiedzi (zazwyczaj przy użyciu klawiatury i ekranu monitora). •Bezpośrednio dostępny systemu plików(on-line file system) – użytkownik ma bezpośredni dostęp do plików z programami i danymi (zazwyczaj na dysku). •Wymiana zadania pomiędzy pamięcią a dyskiem w trakcie jego wykonywania (swapping). •Tworzenie pamięci wirtualnej(virtual memory), tzn. rozszerzenie pamięci operacyjnej pamięcią dyskową –umożliwienie wykonywania zadań nie mieszczących się w pamięci operacyjnej. •Wielu użytkowników może równocześnie dzielić jeden komputer – każdy z nich odnosi wrażenie jakby dysponował swoim własnym.

  11. Wieloprogramowość ipodział czasu procesora –to podstawowe cechy współczesnych systemów operacyjnych.

  12. 2. Systemy biurkowe Początkowo: Komputery osobiste (W latach 1970-tych. Brak potrzeby maksymalizowania wykorzystania CPU i urządzeń zewnętrznych. Mniej istotna ochrona plików, pamięci. Nacisk na maksimum wygody użytkownika i szybkość kontaktu z użytkownikiem. Systemy operacyjne: MS-DOS, wczesne Microsoft Windows, Apple Macintosh. Później: • Sieci komputerowe, Internet – zmiana podejścia do kwestii ochrony i • bezpieczeństwa ( • konieczność ochrony danych, systemów). Szybkie mikroprocesory, duże pamięci – możliwość zastosowania cech systemów dużych komputerów (wielozadaniowość itd.). Nowa generacja systemów operacyjnych dla PC: Microsoft Windows NT/2000/XP, IBM OS/2, Apple Macintosh ), Linux.

  13. III. Systemy wieloprocesorowe (Multiprocessor Systems) Systemy wieloprocesorowe z więcej niż jednym CPU w ścis³ej komunikacji między sobą. • procesory dzielą szynę systemową i zegar, czasami pamięć i urządzenia peryferyczne, komunikacja zwykle odbywa się przez pamięć dzieloną. Zalety:większa przepustowość, większa niezawodność (łagodna degradacja, tolerancja na awarie), ekonomika skali (oszczędność). Wieloprzetwarzanie symetryczne ( symmetric multiprocessing: SMP): • Każdy procesor wykonuje identyczną kopię systemu operacyjnego. • Wiele procesów może być wykonywanych równocześnie bez spadku • wydajności. Systemy: Sun Solaris, Linux, MS Windows 2000/XP, Mac OS X. Wieloprzetwarzanie asymetryczne (asymmetric multiprocessing): Każdy procesor ma przydzielone specyficzne zadanie; procesor g³ówny master) szereguje i przydziela pracę procesorom podrzędnym (slaves). Częściej spotykana w bardzo dużych systemach.

  14. IV. Systemy rozproszone (Distributed Systems) • Systemy luźno powiązane (loosely coupled) – • każdy procesor ma swoją w³asną pamięć lokalną; procesory komunikują się między sobą za pomocą różnych linii komunikacyjnych (np. szybkie szyny danych, linie telefoniczne). Zalety: podział zasobów (w różnych miejscach można mieć różne zasoby), przyspieszanie obliczeń (rozdzielanie obliczeń między wiele procesorów, używanie mniej obciążonych komputerów – tzw. dzielenie obciążeń), niezawodność ( awaria jednego komputera nie wstrzymuje pracy pozosta³ych), komunikacja ( wymiana informacji, plików itd. między węz³ami). Ogromnie zyskały na znaczeniu w ostatnich latach, a w przyszłości powinny jeszcze bardziej się rozwijać – coraz szybsze itańsze linie komunikacyjne! Internet, a w szczególności WorldWideWeb ( • Sieci komputerowe: lokalne (LAN), miejskie (MAN), rozleg³e (WAN), technologie bezprzewodowe sieci ma³oobszarowe ( Systemy klient-serwer: systemy serwerów obliczeń, systemy serwerów plików. Systemy Peer-to-Peer (P2P): systemy wymiany plików, np. Napster, Gnutella. Rozproszone systemy operacyjne: systemy w bliskiej komunikacji przez sieć.

  15. V. Systemy klastrowe V. Systemy klastrowe (zgrupowane) (Cluster Systems) Wed³ug ogólnie akceptowanej definicji zgrupowane w klaster komputery dzielą pamięć dyskową i są blisko ze sobą powiązane poprzez sieć LAN. Różnią się od systemów równoleg³ych tym, że z³ożone są z dwu lub więcej indywidualnych systemów sprzężonych razem. Zwykle są używane w celu dostarczania serwisów wysokiego poziomu dostępności tj. takich serwisów, które będą dostępne nawet gdy jeden lub więcej systemów w klastrze ulegnie awarii. Tryb asymetryczny: jeden komputer pozostaje w pogotowiu ( hot-standby host) monitorując aktywne serwery aplikacji – gdy któryś z nich ulegnie awarii, wówczas przejmuje jego rolę. Tryb symetryczny: wszystkie komputery klastra działają jako aktywne serwery aplikacji i zarazem monitorują się nawzajem na wypadek awarii.

  16. Inne rodzaje klastrów: klastry równoległe: wiele komputerów ma dostęp do tych samych danych w dzielonej pamięci masowej klastry w sieciach rozleg³ych, np. storage-area networks ( SAN) –wiele różnych systemów pod³ączonych do wielu jednostek pamięci masowej poprzez WAN.

  17. VI. Systemy czasu rzeczywistego (Real-Time Systems) Używane jako sterowniki urządzeń o ściśle określonym celu. Surowe wymagania czasowe. • Rygorystyczne systemy czasu rzeczywistego (hard real-time systems): pamięć pomocnicza ma³a lub jej brak, dane przechowywane w pamięci o krótkim czasie dostępu lub pamięci tylko do odczytu (ROM); • W konflikcie z systemami z podzia³em czasu – dlatego nie są realizowane w uniwersalnych systemach operacyjnych. Zastosowania do sterowania procesami przemys³owymi, nadzorowania eksperymentów naukowych, obrazowania badań medycznych itd. Łagodne systemy czasu rzeczywistego (soft real-time systems): krytyczne zadanie do obs³ugi w czasie rzeczywistym otrzymuje pierwszeństwo przed innymi zadaniami,³agodniejsze wymagania czasowe – mogą występować pewne opóźnienia. • Zastosowania w technikach multimedialnych, wirtualnej rzeczywistości, zaawansowanych projektach badawczych – wymagających systemów operacyjnych o rozbudowanych w³aściwościach. Znajdują się w większości wspó³czesnych systemów operacyjnych,

  18. VII. Systemy kieszonkowe (Handheld Systems) Personal digital assistants (PDA), takie jak Palm, Pocket-PC, telefony komórkowe W porównaniu np. z komputerem PC dysponują niewielką pamięcią, wolnym procesorem, małym ekranem – Ograniczenia w funkcjonalności są równoważone przez ich wygodę i przenośność (obecnie powszechny jest również dostęp do Internetu). Użyteczność i rola systemów kieszonkowych ciągle wzrasta! Wędrówka cech Wiele własności dawnych systemów operacyjnych, opracowanych np. dla komputerów g³ównych (mainfraimes), zostało zaadaptowanych przez późniejsze systemy operacyjne, np. dla PC, a nawet dla PDA. Znajomość historii rozwoju systemów operacyjnych jest bardzo przydatna W zrozumieniu współczesnych systemów (niektóre idee się odradzają).

  19. Działanie systemu komputerowego • CPU i sterowniki urządzeń (device controllers) są połączone wspólną szyną systemową (system bus). • CPU i sterowniki mogą działać współbieżnie. • Każdy sterownik odpowiada za określony typ urządzenia ( np. napędy dysków, monitor, USB itd.). • Każdy sterownik ma swój lokalny bufor. • CPU przesyła dane między pamięcią operacyjną a lokalnymi buforami. • Operacje wejścia-wyjścia odbywają się między urządzeniami a lokalnymi buforami sterowników. • Sterownik informuje CPU o zakończeniu swojej operacji za pomocą przerwania (interrupt).

  20. Struktura wejścia-wyjścia (WE/WY) • Przed operacją WE/WY CPU określa zawartość rejestrów w sterowniku. Sterownik sprawdza stan swoich rejestrów, aby określić rodzaj działania, a następnie wykonuje to działanie ( np. dla operacji czytania przesyła dane z urządzenia do swojego lokalnego bufora). • O zakończeniu działania sterownik informuje CPU za pomocą przerwania. Synchroniczne WE/WY (synchronous I/O) – CPU czeka na zakończenie operacji WE/WY. Wada: Nieefektywne wykorzystanie CPU i urządzeń WE/WY Asynchroniczne WE/WY (asynchronous I/O) – rozpoczęcie operacji WE/WY i kontynuowanie działań systemu operacyjnego lub programu użytkownika bez czekania na zakończenie. Przy asynch. WE/WY ważna jest Tablica stanów urządzeń (device status table) określająca typ urządzeń, ich adresy i stany (wolne, zajęte, …) – potrzebna do obsługi wielu urządzeń. Oraz Kolejka oczekujących zamówień dla każdego urządzenia –do obsługi zamówień wielu procesów. Zalety:Efektywniejsze wykorzystanie CPU i urządzeń WE/WY. Na koniec procedura obsługi przerwania urządzenia WE/WY zwraca sterowanie – do programu użytkownika, do pętli czekania, etc.

  21. Struktura pamięci Pamięć operacyjna lub główna(main memory) – jedyny wielki obszar pamięci dostępny bezpośrednio procesorowi (za pośrednictwem szyny pamięci) Pamięć pomocnicza (secondary storage)–rozszerzenie pamięci operacyjnej dające możliwość trwałego przechowywania dużej ilości danych (dyski magnetyczne, taśmy magnetyczne, pamięci elektroniczne typu Flash). • Dysk magnetyczny –metalowa lub szklana płyta pokryta materiałem magnetycznym; powierzchnia logicznie podzielona na ścieżki (tracks), a te z kolei na sektory (sectors); wiruje z dużą prędkością w napędzie dysku; połączony z komputerem wiązką przewodów zwaną szyną WE/WY; sterownik dysku i sterownik macierzysty (po stronie szyny WE/WY) nadzorują przesyłanie danych między dyskiem a komputerem ( sterowniki dysków mają zwykle pamięć podręczną, która jest używana do przesyłania danych z dysku lub na dysk). • Taśma magnetyczna –taśma pokryta materiałem magnetycznym, znajduje się na szpuli i przewija się do przodu lub do tyłu pod głowicą odczytująco-zapisującą; znacznie wolniejsza od dysku, ale może być kilkakrotnie pojemniejsza; używana głównie do przechowywania rzadko używanych danych (np. archiwizacja, kopie zapasowe, czyli tzw. backup). • Pamięci typu Flash –elektroniczne urządzenie pamięci nieulotnej; pojemność do kilkudziesięciu GB (dziś), duża szybkość dostępu. Czy wyprą twarde dyski? (laptopy)

  22. Pamięć jest to tablica oznaczona adresami słów lub bajtów Każdy proces działający w komputerze wymaga pamięci operacyjnej do przechowywania kodu swego programu i danych które przetwarza. Dane, które przetwarza proces reprezentowane są przez zmienne programu. Przez zmienną programu rozumie się obszar pamięci o ustalonym adresie początkowym i długości, do którego można odwoływać się z programu poprzez symbol zwany nazwą zmiennej. Każda zmienna posiada swój typ, definiowany jako zbiór, którego elementy mogą być kodowane przez wartości zmiennej, np. typ char języka C koduje znaki zbioru ASCII lub liczby z przedziału -128 do 127. Typ decyduje o długości obszaru przeznaczonego na zmienną. Ważnymi typami zmiennych są zmienne wskaźnikowe. Przechowują one adresy (adresy początku obszaru) innych zmiennych.

  23. Z punktu widzenia zarządzania pamięcią wyróżnia się trzy klasy zmiennych: 1.   Zmienne statyczne - są tworzone przy starcie procesu i istnieją przez cały czas jego życia. Określenie statyczna odnosi się do sposobu gospodarowania pamięcią tej zmiennej - rezerwuje się ją przy starcie a zwalnia przy końcu procesu. Przez cały czas życia procesu dany obszar pamięci wykorzystywany jest w ten sam sposób - na przechowywanie aktualnej wartości danej zmiennej. 2.   Zmienne lokalne podprogramów zwane też automatycznymi - są tworzone dla każdego wywołania podprogramu i usuwane po jego zakończeniu. 3.   Zmienne dynamiczne - są tworzone i usuwane w miarę potrzeby.

  24. Wyróżnia się trzy zasadnicze grupy obszarów pamięci, z których korzysta proces: 1.   Obszary zajmowane przez kod programu i biblioteki. Na pamięci wchodzącej w skład tych obszarów po załadowaniu programu (lub biblioteki) procesor wykonuje jedynie operacje odczytu. Obszary te mogą być wspólne dla różnych procesów wykonujących ten sam program, lub korzystających z tej samej biblioteki ładowanej dynamicznie. 2.   Obszary zajmowane przez prywatne dane programu, w tym zmienne statyczne i dynamiczne. Obszar ten jest inicjowany przy starcie procesu początkowymi wartościami zmiennych globalnych (często zerami). W trakcie życia procesu dokonywane są zarówno operacje odczytu jak i zapisu. Obszar przechowujący zmienne dynamiczne nazywany jest stertą. Tworzenie i niszczenie zmiennych dynamicznych może powodować zwiększanie się i zmniejszanie tego obszaru w trakcie życia procesu. Każdy proces wymaga własnego obszaru prywatnych danych. Jeżeli proces składa się z wątków, wątki współdzielą obszar danych procesu. 3.   Obszar stosu. W obszarze tym zapamiętuje się adresy powrotów z podprogramów oraz przechowuje zmienne lokalne (dla każdego wywołania podprogramu tworzony jest jego własny komplet zmiennych lokalnych). Obszar ten jest rezerwowany w pamięci przy starcie procesu. Z początku jest pusty. Wypełnia się i opróżnia w miarę jak wywoływane i kończone są poszczególne podprogramy. Każdy wątek wymaga własnego obszaru stosu.

  25. Logiczna i fizyczna przestrzeń adresowa Adresem fizycznym komórki nazywamy adres, jaki wysyła na magistralę adresową procesor, aby odwołać się do tej komórki. Każda komórka pamięci operacyjnej ma swój niezmienny adres fizyczny. Każdy adres fizyczny odnosi się zawsze do tej samej komórki pamięci lub jest zawsze błędny. Adresem logicznym (lub wirtualnym) nazywamy adres jakim posługuje się program, aby odwołać się do zmiennej lub instrukcji. Adres logiczny może odnosić się zarówno do komórki pamięci operacyjnej jak i słowa maszynowego zapisanego na dysku. Przypisanie adresu logicznego do konkretnej komórki pamięci, czy konkretnego miejsca na dysku jest inne dla każdego procesu i może się zmieniać w trakcie jego życia. Pamięć operacyjna dzielona jest na ramki, to jest spójne obszary o stałym rozmiarze zwanym wielkością ramki. Przestrzeń adresów wirtualnych dzielona jest na strony, to jest spójne obszary o stałym rozmiarze zwanym wielkością strony. Wielkość strony równa się wielkości ramki i jest wielokrotnością rozmiaru sektora dyskowego. Wielkość strony jest rzędu 1kB, i tak, w systemie VMS wynosi ona 512B, w Linuksie - 1kB a.

  26. Odwzorowywanie adresów logicznych na fizyczne dokonywane jest przez jednostkę zarządzania pamięcią (memory management unit – MMU) – jest to urządz. Sprzętowe • Do każdego adresu generowanego przez proces użytkownika w chwili odwołania się do pamięci dodawana jest wartość rejestru przemieszczenia • Program użytkownika działa na adresach logicznych i nigdy nie ma do czynienia z adresami fizycznymi

  27. Wymiana (ang. swapping): • Proces może zostać czasowo wysłany z pamięci głównej do zewnętrznej, a po jakimś czasie sprowadzony ponownie do pamięci głównej • Jako pamięć zewnętrzna na potrzeby wymiany służy duży szybki dysk z dostępem bezpośrednim. • Główny narzut: czas transmisji. • różne wersje wymiany są realizowane w wielu systemach, np. w różnych wersjach Uniksa czy Microsoft Windows.

  28. Techniki zarządzania pamięcią • Alokacja ciągła • Przydział pojedynczego obszaru • Pamięć podzielona na dwa obszary: dla rezydującego systemu operacyjnego i dla użytkownika. • Rejestr bazowy (relokacji) i graniczny służą do ochrony oraz do dynamicznej translacji adresów logicznych na fizyczne. • Np. IBM PC: BIOS (programy sterujące urządzeń) w ROM-ie (górne adresy), SO w RAM-ie (dolne adresy). • Przydział wielu obszarów • W systemach wieloprogramowych w pamięci równocześnie przebywa wiele programów, każdy we własnym obszarze. • Metoda stref statycznych: pamięć jest na stałe podzielona na obszary o ustalonej wielkości (np. IBM OS/360 MFT). • Metoda stref dynamicznych: liczba i wielkość stref zmienia się dynamicznie (np. IBM OS/360 MVT). • Dziura: wolny obszar pamięci; dziury różnych rozmiarów są rozrzucone po pamięci.

  29. Strategia wyboru wolnego obszaru: • Pierwszy pasujący (ang. first fit): przydziela pierwszy obszar o wystarczającej wielkości (następny pasujący: szukanie rozpoczyna się od miejsca, w którym ostatnio zakończono szukanie); z reguły krótszy czas szukania. • Najlepiej pasujący (ang. best fit): przydziela się najmniejszy z dostatecznie dużych obszarów; wymaga przeszukania całej listy (o ile nie jest uporządkowana wg rozmiaru); pozostająca część obszaru jest najmniejsza. • Najgorzej pasujący (ang. worst fit): przydziela się największy obszar; wymaga przeszukania całej listy; pozostająca część obszaru jest największa. • Pierwszy pasujący i najlepiej pasujący są zwykle lepsze w terminach czasu i wykorzystania pamięci. • Fragmentacja zewnętrzna: suma wolnych obszarów w pamięci wystarcza na spełnienie żądania, lecz nie stanowi spójnego obszaru. • Fragmentacja wewnętrzna: przydzielona pamięć może być nieco większa niż żądana. Różnica między tymi wielkościami znajduje się wewnątrz przydzielonego obszaru, lecz nie jest wykorzystywana. • Redukowanie fragmentacji zewnętrznej przez defragmentację: umieszczenie całej wolnej pamięci w jednym bloku; możliwe tylko w przypadku, gdy adresy są wiązane w czasie wykonania; różne strategie defragmentacji;

  30. Techniki zarz. Pamięcią cd • Stronicowanie • Pamięć fizyczna jest podzielona na bloki jednakowego rozmiaru, zwane ramkami (rozmiar ramki jest potęgą 2, między 512 bajtów a 8 MB). • Logiczna przestrzeń adresowa procesu jest podzielona na bloki o rozmiarze takim jak ramki, zwane stronami. • Strony przebywają w pamięci pomocniczej, są sprowadzane do pamięci głównej i umieszczane w wolnych ramkach (program o n stronach potrzebuje n ramek); strony nie muszą zajmować ciągłego obszaru fizycznego. • Występuje fragmentacja wewnętrzna, brak fragmentacji zewnętrznej (małe ramki to mniejsza fragmentacja wewnętrzna, ale większy narzut na tablice stron). • System przechowuje informacje o wolnych ramkach (w tablicy ramek). • Tablica stron procesu służy do odwzorowywania adresów logicznych w adresy fizyczne. • Adres logiczny składa się z dwóch części: • numer strony (p) - służy jako indeks w tablicy stron, • przesunięcie w stronie (d) - numer bajtu w stronie.

  31. Procesy i wątki

  32. Jak nazywamy czynności procesora? • System wsadowy: zadaniami (jobs) • Systemy z podziałem czasu: programy użytkownika (user programs) lub prace (tasks) • Terminy: „zadanie” i „proces” używane są zamiennie;preferowany jest jednak termin „proces” • Proces – wykonywany program; musi on być wykonywany sekwencyjnie

  33. W skład procesu wchodzi: • Kod programu • Licznik rozkazów • Stos procesu – dane tymczasowe • Sekcja danych – zmienne globalne STAN PROCESU Wykonujący się proces zmienia swój stan. Może on znajdować się w jednym z następujących stanów:

  34. Nowy – proces został utworzony • Aktywny – są wykonywane instrukcje • Oczekiwanie – proces czeka na wystąpienie jakiegoś zdarzenia (np.. Operacji we/wy) • Gotowy - proces czeka na przydział procesora • Zakończony – proces zakończył działanie W każdej chwili w procesorze tylko jeden proces może być aktywny, ale wiele procesów może być gotowych do działania lub oczekujących

  35. Kolejki i priorytety • Procesy oczekujące na zwolnienie procesora mogą mieć różną ważność. • Przykład: • proces dokonujący pomiaru w toczącym się eksperymencie, • edytor teksu, • proces systemowy uruchomiony celem zrobienia okresowych porządków • zadanie symulacji numerycznej jakiegoś układu fizycznego wykonywane długi czas w tle. • Pierwsze dwa procesy przez większość czasu oczekują na zajście operacji wejścia wyjścia, a gdy już to nastąpi, powinny natychmiast reagować, z kolei dwa ostatnie wykorzystują głównie czas procesora, ale nie są na tyle pilne, by nie mogły ustępować w razie potrzeby innym. W zależności od pilności zadania i jego dotychczasowego przebiegu, system operacyjny nadaje procesowi priorytet. • Im mniejszą liczbą jest wyrażony, tym lepiej z punktu widzenia procesu - ma więksy dostęp do procesora. Dla każdego priorytetu tworzona jest osobna kolejka procesów gotowych do wykonania. Dopóki w kolejce o priorytecie wyrażonym mniejszą liczbą czekają procesy, • prcesy z kolejki większego priorytetu nie będą wykonywane.

  36. Najmniejsze priorytety są zarezerwowane dla użytku systemu operacyjnego, są one do tego stopnia uprzywilejowane, że procesy wykonujące się z tymi priorytetami nie są wywłaszczane. Stąd też są używane jedynie w wyjątkowych okolicznościach przez krótkie procedury systemowe. Użytkownik ma zwykle możliwość wyboru priorytetu dla uruchamianego procesu, jednakże jest w swym wyborze ograniczony "z dołu". System operacyjny rezerwuje sobie możliwość zmiany priorytetu w trakcie działania procesu, celem wyrównania szans różnych procesów.

  37. Wątki Niektóre systemy operacyjne dopuszczają współbieżność w ramach jednego procesu. Określa się wówczas wątek jako jednostkę wykonania. Każdy wykonujący się proces ma przynajmniej jeden wątek, każdy wątek wykonuje się w ramach jednego procesu. Wątki konkurują ze sobą o czas procesora. Pozostałe zasoby przydzielane są na rzecz procesu. System operacyjny zostawia programiście aplikacji wolną rękę w rozstrzyganiu konfliktów pomiędzy wątkami o dostęp do zasobów przydzielonych procesowi.

  38. System operacyjny nazywamy wielowątkowym, jeżeli dopuszcza istnienie wielu wątków wykonania w ramach jednego procesu. Przykłady systemów wielowątkowych: • Windows 2000 i następne • niektóre odmiany Uniksa. W systemach nie będących wielowątkowymi pojęcie wątku i prcesu utożsamia się.

  39. Kontekst procesu • Aby proces/wątek mógł być wznowiony od miejsca w którym przerwane zostało jegowykonanie, należy zachować pewne informacje o stanie procesora w chwili przerywania działania procesu. Zbiór wszystkich informacji niezbędnych do podjęcia prez proces działania z miejsca, w którym się znajduje nazywamy kontekstem procesu. • Kontekst procesu składa się z: • wskaźnika instrukcji, • rejestru flag stanu • wskaźnika stosu. • W przypadku systemów z pamięcią wirtualną w skład kontekstu wchodzą tablice stron.

  40. Kolejki szeregowania procesów • kolejka zadań - zbiór wszystkich procesów w systemie • kolejka gotowych - zbiór wszystkich procesów umieszczonych w pamięci głównej, gotowych i czekających na wykonanie • kolejki do urządzeń - zbiór procesów czekających na określone urządzenie wejścia-wyjścia

  41. Szeregowanie procesów- rodzaje • szeregowanie długoterminowe - wybór procesów, które przejdą do kolejki gotowych; wykonywane rzadko (sekundy, minuty); może być wolne; • szeregowanie krótkoterminowe - wybór następnego procesu do wykonania i przydział CPU; wykonywane często (milisekundy); - musi być szybkie • Czasami dochodzi szeregowanie średnioterminowe: wymiana (swapping) czyli czasowe usuwanie zadania w całości z pamięci głównej do pomocniczej

  42. Inny podział procesów • zorientowane na wejście-wyjście - spędzają więcej czasu wykonując wejście-wyjście niż obliczenia; wiele krótkich odcinków czasu zapotrzebowania na CPU • zorientowane na obliczenia - spędzają więcej czasu wykonując obliczenia; kilka bardzo długich odcinków czasu zapotrzebowania na CPU

  43. Tu skonczylem Wykonanie procesu przebiega cyklicznie: fazy zapotrzebowania na CPU przeplatają się z fazami zapotrzebowania na wejście- wyjście Rozkład faz zapotrzebowania na CPU powinien mieć wpływ na dobór algorytmu szeregowania procesów

  44. Na czym polega działanie procesu szeregującego (krótkoterminowo) - - wybiera spośród procesów gotowych i umieszczonych w pamięci jeden i przydziela mu procesor Decyzję podejmuje się gdy proces: 1. przechodzi ze stanu wykonywany do stanu oczekujący 2. przechodzi ze stanu wykonywany do stanu gotowy 3. przechodzi ze stanu oczekujący do stanu gotowy 4. kończy się Szeregowanie bez wywłaszczania: 1 i 4 Szeregowanie z wywłaszczaniem: pozostałe

  45. Ważnym elementem w szeregowaniu jest Dyspozytor (dispatcher)Przekazuje procesor procesowi wybranemu przez proces szeregujący; jego obowiązki to: • przełączanie kontekstu • przełączenie do trybu użytkownika • wykonanie skoku do odpowiedniego adresu w programieużytkownika w celu wznowienia wykonania programu Przy tej operacji występuje opóźnienie związane z działaniem dyspozytora - czas potrzebny dyspozytorowi na zatrzymanie jednego procesu i uruchomienie innego

  46. Kryteria szeregowania procesów: • Wykorzystanie CPU - procent czasu zajętości CPU (max ) • Przepustowość - liczba procesów, które zakończyły wykonanie w jednostce czasu (max) • Czas obrotu - czas potrzebny na wykonanie procesu (min) • Czas oczekiwania - czas spędzony przez proces w kolejce procesów gotowych (min) • Czas reakcji - czas liczony od chwili dostarczenia żądania do chwili uzyskania odpowiedzi (w systemie z podziałem czasu)(min)

  47. Algorytmy (krótkoterminowego) szeregowania procesów • Kolejka prosta (FIFO) – first in first out lub inaczej FCFS (first come first served) Procesy są wykonywane w kolejności przybywania Przykład: • Procesy i ich zapotrzebowanie na CPU: P1 (24), P2 (3), P3 (3) Jeśli procesy przybyły w kolejności P1, P2, P3: • czas oczekiwania: P1 = 0, P2 = 24, P3 = 27 • średni czas oczekiwania: (0 + 24 + 27)/3 = 17

  48. Przykład 2 • Jeśli procesy przybyły w kolejności P2, P3, P1: • czas oczekiwania: P1 = 6, P2 = 0, P3 = 3 • średni czas oczekiwania: (6 + 0 +3)/3 = 3 Algorytm FCFS jest niewywłaszczający. Po objęciu kontroli nad procesorem proces utrzymuje ją aż sam zwolni procesor kończąc swoje działanie. Występuje tzw. efekt konwoju czyli krótkie procesy wstrzymywane przez długie Wadą tego algorytmu jest długi średni czas oczekiwania oraz to ze jest, praktycznie nie do zaakceptowania w systemach z podziałem czasu ponieważ ważne jest aby w tych systemach każdy użytkownik dostawał procesor w regularnych odstępach czasu.

  49. Algorytmy (krótkoterminowego) szeregowania procesów ciąg dalszy 2. Najkrótsze zadanie najpierw (SJF) –shorted job firstProcesor przydziela się temu procesowi, który ma najkrótsząfazę zapotrzebowania na CPU Algorytm ten może być wywłaszczający lub niewywłaszczający Konieczność wyboru powstaje wówczas gdy w kolejce procesów gotowych pojawia się nowy proces a poprzedni proces używa nadal CPU. Nowy proces może mieć krótsza następna fazę procesora niż to co pozostało do wykonania w bieżącym procesie. Wtedy aktywizuje się algorytm wywłaszczający (SRTF)Zaleta to optymalnośćWada: wymaga określenia długości przyszłej fazy CPU

  50. 3. Szeregowanie priorytetoweZ każdym procesem jest związany priorytet (liczba całkowita)CPU przydziela się procesowi z najwyższym priorytetem, Procesy o równych priorytetach planuje się w porządku FCFS. Priorytety mogą być z dowolnego przedziału liczb całkowitych Jest to algorytm zarówno wywłaszczający jak i niewywłaszczajacyProblemem w szer.prior. jest głodzenie procesu. Polega ono na tym ze w obciążonym systemie komp. procesy o wyższych priorytetach nie dopuszczają nigdy procesów o niższym priorytecieRozwiązaniem tego problemu jest postarzanie procesów czyli : wzrost priorytetu z upływem czasu np. można podwyższać priorytet czasu o 1 co 10 minut