Struktury systemów operacyjnych



Podobne dokumenty
projektowanie systemu

Zarządzanie procesami i wątkami

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

Proces y i y w i ąt ą ki

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

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

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

Programowanie współbieżne Wykład 2. Iwona Kochańska

Procesy, wątki i zasoby

4. Procesy pojęcia podstawowe

Systemy operacyjne III

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Wprowadzenie do systemów operacyjnych

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Zarządzanie procesorem

Systemy operacyjne. Paweł Pełczyński

4. Procesy pojęcia podstawowe

Paweł Skrobanek. C-3, pok

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

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań

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

Informatyka, systemy, sieci komputerowe

Struktury systemów operacyjnych

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

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

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Informatyka. informatyka i nauki komputerowe (computer science)

Budowa systemów komputerowych

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

Systemy Operacyjne struktura

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

Struktury systemów operacyjnych

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

System komputerowy. System komputerowy

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

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

Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści

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

Systemy operacyjne system przerwań

Systemy Operacyjne. wykład 1. Adam Kolany. Październik, Instytut Techniczny Państwowa Wyższa Szkoła Zawodowa w Nowym Sączu

1.1 Definicja procesu

4. Procesy pojęcia podstawowe

Zarządzanie pamięcią operacyjną

Systemy operacyjne III

Struktura systemów komputerowych

Wprowadzenie do systemów operacyjnych. mgr inż. Krzysztof Szałajko

Koncepcja procesu. Procesy i wątki. Diagram stanów procesu. Stan procesu. Blok kontrolny procesu Process Control Block (PCB)

Zarządzanie procesami (omawiane zagadnienia)

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Systemy operacyjne. wykład 1- System operacyjny i jego zadania. dr Marcin Ziółkowski

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Systemy Operacyjne - zarządzanie procesami

Mikroprocesor Operacje wejścia / wyjścia

Systemy operacyjne Procesy i wątki

Zarządzanie pamięcią w systemie operacyjnym

Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.

Systemy operacyjne System sieciowy UNIX-a

LEKCJA TEMAT: Zasada działania komputera.

Systemy operacyjne i sieci komputerowe Szymon Wilk System operacyjny 1

Systemy wejścia-wyjścia. wyjścia

ARCHITEKTURY SYSTEMÓW OPERACYJNYCH

Celem wykładu jest wprowadzenie fundamentalnych pojęć, integralnie związanych z systemem operacyjnym, na których opiera się przetwarzanie we

2.1 Pojęcie wątku Modele wielowątkowości Wybrane zagadnienia wielowątkowości Wątki POSIX... 18

System operacyjny MACH

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

Podsumowanie. Systemy operacyjne Podsumowanie 1. Klasyfikacja ze względu na sposób przetwarzania

Podstawy Informatyki Systemy operacyjne

Wieloprogramowanie. Systemy operacyjne / Procesy i wątki str.4/32. Proces w systemie operacyjnym. Tworzenie i kończenie procesów

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

System wejścia-wyjścia

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

Systemy operacyjne. Król Tomasz

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora

Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

System operacyjny System operacyjny

System operacyjny wstęp

41. System operacyjny. Postrzeganie systemu operacyjnego przez warstwę oprogramowania użytkowego

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Podsumowanie. Klasyfikacja ze względu na sposób przetwarzania. Klas. ze względu na liczbę wykonywanych zadań

Podsumowanie. Klasyfikacja ze względu na. liczbę użytkowników. Klasyfikacja ze względu na. Inne rodzaje systemów operacyjnych. sposób przetwarzania

Architektura systemu komputerowego

STRUKTURY SYSTEMÓW OPERACYJNYCH

ochrona w systemie operacyjnym

Planowanie przydziału procesora

Jądro systemu operacyjnego

System plików. Warstwowy model systemu plików

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Wykład 7. Zarządzanie pamięcią

1. Rola pamięci operacyjnej

Transkrypt:

Struktury systemów operacyjnych Zadania s.o. Usługi s.o. Budowa s.o. Podejście warstwowe Przykładowe konstrukcje Funkcje systemowe Programy systemowe Maszyny wirtualne Tworzenie i uruchamianie s.o. Procesy i wątki Koncepcja procesu Planowanie procesów Działania na procesach Wątki Inne zagadnienia związane z procesami (planowanie czasu procesora, synchronizacja procesów, zakleszczenia) 2.1 Zadania systemu operacyjnego Zarządzanie procesami Zarządzanie pamięcią operacyjną Zarządzanie plikami Zarządzanie systemem we/wy Zarządzanie pamięcią pomocniczą Praca sieciowa System ochrony Interfejs użytkownika System interpretera poleceń Graficzny interfejs użytkownika (GUI) 2.2 1

Zarządzanie procesami Proces jest programem w trakcie wykonywania. Proces potrzebuje określonych zasobów: czasu procesora, pamięci, plików, urządzeń we/wy by wykonać zadanie. S.o. jest odpowiedzialny za następujące działania związane z zarządzaniem procesami: tworzenie i usuwanie procesów (użytkowych i systemowych) wstrzymywanie i wznawianie procesów dostarczanie mechanizmów: synchronizacji procesów komunikacji między procesami obsługi zakleszczeń 2.3 Zarządzanie pamięcią operacyjną Pamięć jest olbrzymią tablicą słów lub bajtów, z których każdy ma swój własny, unikalny adres. Pamięć jest magazynem szybko dostępnych danych dzielonych przez procesor i urządzenia we/wy. Pamięć operacyjna jest pamięcią ulotną. Traci swą zawartość w przypadku awarii bądź wyłączenia systemu. System operacyjny jest odpowiedzialny za następujące zadania związane z zarządzaniem pamięcią: Utrzymywanie ewidencji aktualnie zajętych fragmentów pamięci wraz z informacją w czyim są władaniu. Decydowanie o tym, które procesy mają być załadowane do zwolnionych obszarów pamięci. Przydzielanie i zwalnianie obszarów pamięci stosownie do potrzeb. 2.4 2

Zarządzanie systemem we/wy i plikami Podsystem we/wy składa się z: Części zarządzającej pamięcią (w tym: buforowanie, pamięć podręczna i spoling) Ogólnego interfejsu do modułów sterujących urządzeń Modułów sterujących (programów obsługi, sterowników) poszczególnych urządzeń sprzętowych Plik jest zbiorem powiązanych ze sobą informacji, zdefiniowanych przez jego twórcę. W plikach zwykle przechowuje się programy (w wersjach źródłowych i wykonywalnych) lub dane. S.o. jest odpowiedzialny za następujące zadania związane z zarządzaniem plikami: 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 Składowanie (backup) plików na trwałych nośnikach pamięci (nieulotnej) 2.5 Zarządzanie pamięcią pomocniczą Ponieważ pamięć operacyjna jest ulotna i zbyt mała aby pomieścić wszystkie dane i programy, system komputerowy musi posiadać także pamięć pomocniczą jako podstawowy środek magazynowania informacji. Większość współczesnych systemów komputerowych wykorzystuje dyski jako podstawowy nośnik pamięci danych i programów. S.o. jest odpowiedzialny za następujące zadania związane z zarządzaniem dyskami: Zarządzanie wolnymi obszarami dysku Przydzielanie pamięci Planowanie przydziału obszarów pamięci dyskowej 2.6 3

Praca sieciowa (systemy rozproszone) System rozproszony jest zbiorem procesorów nie posiadających współdzielonej pamięci ani zegara. Każdy procesor ma swoja własna pamięć. Procesory w systemie są połączone przez sieć komputerową. Komunikacja odbywa się z wykorzystaniem protokołu. Systemy rozproszone umożliwiają użytkownikowi dostęp do różnych zasobów znajdujących się na odrębnych stanowiskach. Dostęp do rozproszonych zasobów pozwala na: Przyspieszenie obliczeń Zwiększenie dostępności danych Zwiększenie niezawodności 2.7 System ochrony Ochrona odnosi się do mechanizmów sterowania dostępem do programów, procesów i użytkowników do zasobów systemowych i zasobów użytkowników. Mechanizm ochrony ma za zadanie: rozróżniać między wykorzystaniem autoryzowanym i nieautoryzowanym określenie co podlega ochronie i jakiej dostarczenie środków do wymuszenia tych ustaleń 2.8 4

Interfejs użytkownika Interfejs użytkownika umożliwia zlecanie s.o. operacji m.in.: tworzenia i zarządzania procesami (uruchamianie programów) obsługi we/wy zarządzania pamięcią operacyjną i drugorzędną dostępu do systemu plików ochrony usług sieciowych Interpreter poleceń Komend jest przekazywanych do sytemu operacyjnego przez instrukcje sterujące wpisywane z klawiatury Komendy wewnętrzne i zewnętrzne Inna nazwa: powłoka (shell) systemy rodziny UNIX Graficzny interfejs użytkownika (GUI) pozwala na wygodną pracę wieloprogramową pracuje w trybie graficznym korzystając z systemu okien 2.9 Podstawowe usługi systemu operacyjnego Wykonywanie programów zdolność systemu do załadowania programu do pamięci i uruchomienia go. Operacje we/wy programy użytkowników nie mogą wykonywać operacji we/wy bezpośrednio dlatego s.o. musi zapewnić środki do wykonywania operacji we/wy. Manipulowanie systemem plików programy muszą mieć możliwość czytania, zapisywania, tworzenia i usuwania plików. Komunikacja wymiana informacji między procesami wykonywanymi bądź na tym samym komputerze bądź na systemach połączonych siecią Zaimplementowane przy pomocy pamięci dzielonej lub przekazywania komunikatów. Wykrywanie błędów zapewnianie prawidłowego działania systemu przez wykrywanie błędów w działaniu procesora, pamięci, urządzeń we/wy i programów użytkownika. 2.10 5

Dodatkowe funkcje (usługi) systemu operacyjnego Dodatkowe funkcje systemu przeznaczone do optymalizacji działania systemu (a nie pomagania użytkownikowi) Przydzielanie zasobów dla wielu użytkowników lub zadań uruchomionych w tym samym czasie. Rozliczanie przechowywanie informacji którzy użytkownicy i w jakim stopniu korzystają z poszczególnych zasobów. Stosowane dla celów rozliczeniowych lub gromadzenia informacji w celach statystycznych. Ochrona zapewnianie by każdy dostęp do zasobów systemowych był kontrolowany. 2.11 Wywołania systemowe Wywołania systemowe (funkcje systemowe) tworzą interfejs między uruchomionym programem a systemem operacyjnym. Można z nich korzystać z za pomocą rozkazów w języku asemblera Niektóre języki wyższego rzędu pozwalają na wywoływanie funkcji systemowych bezpośrednio (np., C, C++). W tych językach programuje się też s.o. Istnieją trzy metody przekazywania parametrów między wykonywanym programem a systemem operacyjnym: Przekazywanie parametrów przez rejestry. Przekazywanie parametrów jako tablicy w pamięci. Adres tej tablicy jest przekazywany jako parametr w rejestrze. Przez stos.parametry są umieszczane na stosie przez proces i zdejmowane przez s.o. 2.12 6

Rodzaje wywołań systemowych Sterowanie procesami (nadzorowanie procesów): end, abort, load, execute, create process, terminate process, wait, signal event, allocate memory, free memory Zarządzanie plikami (operacje na plikach): create file, delete file, open, close, read, write, reposition (seek) Zarządzanie urządzeniami (operacje na urządzeniach): request device, read, write, reposition, logically attach/detach device Zarządzanie informacją (danych procesów, atrybutów,daty itp..): get time, date, set/get system data, get process/file/device attributes, set process/file/device attributes Komunikacja: create, delete connection, send/receive message, transfer status information, attach/detach remote devices 2.13 Programy systemowe Programy systemowe dostarczają wygodne środowisko do tworzenia i uruchamiania programów. Dzielą się na programy: Manipulowania plikami Informujące o stanie systemu Tworzenie plików i zmienianie ich zawartości Translatory języków programowania Ładowanie i wykonywanie programów Komunikacja Sposób widzenia systemu operacyjnego przez użytkownika jest zdeterminowany programami systemowymi (użytkownik nie ma bezpośredniego dostepu do funkcji systemowych) 2.14 7

Podejście warstwowe S.o. jest podzielony na pewną liczbę warstw (poziomów), nadbudowanych jeden na drugim. Dolną warstwą (0) tworzy sprzęt; najwyższą (N) jest interfejs użytkownika. Każda warstwa wykorzystuje funkcje i usługi z niższych warstw. 2.15 Struktury systemów operacyjnych 2.16 8

Maszyny wirtualne Maszyna wirtualna jest logiczną konkluzją systemu warstwowego. Traktuje sprzęt i jądro s.o. w całości jako sprzęt. Maszyna wirtualna posiada interfejs identyczny z bezpośrednim interfejsem sprzętu. S.o. tworzy iluzję wielu procesów z których każdy dysponuje własny procesorem i pamięcią. Realizacja przez dzielenie zasobów: dzielenie czasu procesora daje złudzenie, że każdy użytkownik ma do dyspozycji własny procesor. System spoolingu i system plików dostarczają wirtualne urządzenia we/wy Zwykły terminal użytkownika działający w podziale czasu może być wirtualna konsola operatora. Przykłady: IBM VM, MS-DOS na komputerach SUN i DEC, emulacja procesorów 68000 na Power PC (Macintosh) 2.17 Maszyny wirtualne (2) Tradycyjny system Maszyna wirtualna 2.18 9

Cele projektowania i implementacja systemu operacyjnego Cele użytkownika s.o. ma być wygodny w użyciu, łatwy do nauki, niezawodny, bezpieczny i szybki Cele systemu s.o. ma być łatwy do zaprojektowania, zaimplementowania i konserwacji, elastyczny, niezawodny, wolny od błędów i wydajny. Tradycyjne pisane w językach asmeblerowych obecnie s.o. tworzone są w językach wyższego poziomu. Zalety pisania s.o. w jęz. wyższego poziomu: mogą być pisane szybciej bardziej zwarty kod są łatwiejsze do zrozumienia i testowania S.o. napisany w języku wyższego poziomu jest dużo łatwiejszy do przeniesienia na inny rodzaj sprzętu. 2.19 Generowanie systemu (System Generation - SYSGEN) S.o. są projektowane tak by móc być uruchomionymi na różnych konfiguracjach sprzętowych s.o. musi być konfigurowalny program typu SYSGEN zbiera informacje na temat sprzętu i jego specyficznych właściwości. bootowanie (Booting) uruchamianie systemu przez załadowanie jądra program rozruchowy (Bootstrap program) kod przechowywany w pamięci ROM, który potrafi zlokalizować i wczytac jądro systemu do pamięci i uruchomić jego działanie. 2.20 10

Koncepcja procesu Proces program w trakcie wykonywania; System operacyjny wykonuje różne działania: Systemy wsadowe procesy (zadania) są wykonywana sekwencyjnie System z podziałem czasu czas procesora dzielony między wiele procesów Pojęcia zadanie i proces stosuje się wymiennie Każdy proces składa się z: kodu programu (lub sekcją tekstu ang. text section) zawartości licznika rozkazów (ang.program counter) zawartości rejestrów procesora stos procesu (ang. process stack) sekcja danych (ang. data section) Z jednym programem może być związanych kilka procesów. 2.21 Stan procesu Proces w trakcie wykonywania zmienia swój stan Przykładowe stany: nowy (new) proces został utworzony. aktywny (running) są wykonywane instrukcje. oczekiwanie (waiting) proces czeka na wystąpienie jakiegoś zdarzenia (np. na zakończenia operacji we/wy). gotowy (ready) proces czeka na przydział czasu procesora. zakończony (terminated) proces zakończył działanie. 2.22 11

Blok kontrolny procesu (PCB) Blok kontrolny procesu (zadania) = process control block Informacja przypisana do każdego procesu Stan procesu Stan licznika rozkazów (adres następnego rozkazu do wykonania) Stan rejestrów procesora Informacje o planowaniu przydziału procesora Informacje o zarządzaniu pamięcią Informacje do rozliczeń Informacje o stanie wejścia/wyjścia 2.23 Kolejki planowania procesów Kolejka zadań zbiór wszystkich procesów w systemie. Kolejka procesów gotowych zbiór wszystkich procesów rezydujących w pamięci operacyjnej, gotowych i przedzielenia im czasu procesora. Kolejki do urządzeń zbiór procesów czekających na urządzenia we/wy. Procesy są przemieszczane pomiędzy poszczególnymi kolejkami 2.24 12

Planiści Planista długoterminowy (ang. long-term scheduler) lub planista zadań (ang. job scheduler) wybiera procesy, które powinny być umieszczone w kolejce procesów gotowych. Planista krótkoterminowy (ang. short-term scheduler) lub planista przydziału procesora (ang. CPU scheduler) wybiera, który proces powinien jako kolejny dostać przydział czasu procesora. Planista krótkoterminowy jest wywoływany b. często (milisekundy) powinien być szybki Planista długoterminowy jest wywoływany rzadko może być wolny. Planista długoterminowy nadzoruje stopień wieloprogramowości Większość procesów można zakwalifikować do jednego z dwóch rodzajów: Procesy ograniczone przez we/wy (ang. I/O-bound process ) więcej czasu poświęca na wykonywanie operacji we/wy niż na obliczenia Procesy ograniczone przez dostęp do procesora (ang. CPU-bound process) więcej czasu poświęca obliczeniom niż dostepowi do we/wy 2.25 Przełączanie kontekstu Przełączanie kontekstu = context switch Gdy procesor przełącza się na inny proces, system musi zachować stan starego procesu i wczytać zachowany stan nowego procesu. Przełączanie kontekstu jest dodatkowym zadaniem procesora w tym czasie nie jest wykonywana żadna inna czynnoś ć Ekspedytor (ang. dispatcher) moduł który przekazuje procesor do dyspozycji procesu wybranego przez planistę krótkoterminowego 2.26 13

Sposoby komunikacji międzyprocesowej Komunikacja między procesami przez przekazywanie komunikatów lub z wykorzystaniem pamięci współdzielonej Przekazywanie komunikatów Pamięć współdzielona 2.27 Tworzenie procesu Procesy mogą tworzyć inne procesy proces macierzysty tworzy proces potomny Procesy potomne jednych mogą być procesami macierzystymi innych procesów procesy tworzą drzewo procesów Dzielenie zasobów: Proces macierzysty i potomny dzielą wszystkie zasoby Zasoby procesu potomnego są podzbiorem zasobów procesu macierzystego Procesy macierzysty i potomny nie mają wspólnych zasobów Wykonanie: Procesy macierzysty i potomny działają jednocześnie Proces macierzysty czeka na zakończenia działania procesu potomnego Przestrzeń adresowa: proces potomny jest duplikatem macierzystego proces potomny jest załadowanym programem System UNIX: wywołanie systemowe fork tworzy nowy proces wywołanie systemowe execve wykonane po fork wczytuje do pamięci nowy program zastępując jej dotychczasową zawartość 2.28 14

Kończenie procesu Proces wykonuje ostatnią instrukcję i korzystając z funkcji exit prosi system operacyjny by go usunął a następnie: przesyła dane do procesu macierzystego wszystkie zasoby procesu zostają odebrane przez system operacyjny Proces macierzysty może spowodować zakończenie procesu potomnego za pomocą odpowiedniej funkcji systemowej (np.abort), wtedy np. gdy: Proces potomny nadużył któregoś z przydzielonych zasobów. Zadanie wykonywane przez potomka stało się zbędne Proces macierzysty się kończy system nie pozwala na działania potomków gdy kończy się proces macierzysty kończenie kaskadowe 2.29 Wątki Wątek (ang. thread) lub proces lekki (ang. lightweight process LWP) jest jednostką wykorzystania procesora wykorzystującą: licznik rozkazów, zbiór rejstrów i obszar stosu. Każdy proces (zadanie) może posiadać kilka wątków Wątek współużytkuje wraz z innymi równorzędnymi wątkami tego samego procesu sekcję kodu, sekcje danych oraz inne zasoby systemu takie jak np. otwarte pliki Tradycyjny proces, tzw. ciężki (ang. heavyweight) = zadanie z jednym wątkiem 2.30 15

Procesy jedno i wielowątkowe Wątek może przebiegać w dokładnie jednym zadaniu Działanie wątków przypomina działanie procesów, różnica: wątki nie sa niezależne od siebie, wątki tego samego procesu korzystają z tych samych danych brak ochrony na poziomie wątków (ale: nie jest potrzebna) 2.31 Planowanie przydziału procesora Zadanie wybrania procesu oczekującego w kolejce procesów gotowych i przydzielenie mu procesora (przy pomocy ekspedytora) Rodzaje algorytmów: niewywłaszczające (systemy wieloprogramowe) wywłaszczające (systemy z podziałem czasu) Najprostszy algorytm niewyw.: pierwszy zgłoszony pierwszy obsłużony (FCFS) nie jest optymalny Najkrótszy średni czas oczekiwania daje algorytm najpierw najkrótsze zadanie (SJF) może być wywłaszczjący i niewywłaszczjący Dla systemów z podziałem czasu: planowanie rotacyjne (RR) algorytm wywłaszczający Algorytmy wielopoziomowego planowania kolejek różne algorytmy dla różnych klas procesów 2.32 16

Synchronizowanie procesów, usuwanie zakleszczeń Synchronizowanie procesów: Dotyczy procesów współpracujących korzystających ze wspólnych danych (m.in. wątków) Współbieżny dostęp do danych może powodować ich niespójnoś ć Sekcja krytyczna kodu częś ć do której mają dostęp inne procesy/watki -> problem (dostępu do) sekcji krytycznej Usuwanie zakleszczeń Zakleszczenie: dwa lub więcej procesów czeka na zdarzenie, które może być spowodowane przez jeden z nich Trzy sposoby: wprowadzenie protokołu uniemożliwiającego zakleszczenia zezwolenie na występowanie zakleszczeń i wycofywanie się z nich zlekceważenie problemu (np..unix) 2.33 17