Zarzadzanie procesami Proces - to program w trakcie realizacji wraz z przydzielonymi mu zasobami. Do zasobów procesu zaliczamy przede wszystkim: _ pamiec operacyjna - by mógł sie wykonac musi miec w niej miejsce _ procesor - by mógł sie wykonac dostaje na chwile procesor _ pliki - mo_e je otwierac oraz modyfikowac w zakresie swoich uprawnien _ urzadzenia WE/WY w ramach swych uprawnien. W skład procesu wchodza:
W systemach operacyjnych procesy moga byc: _ ciezkie (jednowatkowe) - były podstawa funkcjonowania systemów Unix w latach 70-tych Na czym to polegało:
Jeden program i w trakcie realizacji procesu moze sie wykonywac ten jeden program. Wielozadaniowe systemy operacyjne W ich pamieci operacyjnej jest wiele procesów.
Zle wykonujacy sie proces nie ma wpływu na inne procesy. System operacyjny nie pozwala na zmiane procesu przez inny proces, jest tak_e chronione sprzetowo. procesy wielowatkowe Zaczeto je stosowac w połowie lat 80-tych
Wielowatkowosc to wielozadaniowosc w ramach jednego procesu. Proces tworzy srodowisko pracy watkom, wiele programów wykonywanych współbie_nie. System operacyjny przydziela procesor poszczególnym watkom. SO wielowatkowy za “jednostke” przyjmuje watek, nie proces. Zarzadza zatem praca watków, a nie całych procesów. Stany procesów
Aktywny - w danym momencie proces ma procesor i sie wykonuje exit() - konczy proces, potem system operacyjny uwalnia pamiec, której dany proces u_ywał, a tak_e zamyka u_ywane przez niego pliki. Scheduler - program szeregujacy, decyduje, któremu procesorowi przyznany zostaje procesor.
Stany procesów w Unix
1 - gotowy do wykonania w pamieci 2 - nastepuje przełaczenie procesu (SCHEDULER) mówimy, _e proces jest wykonywany w trybie jadra. 3 - proces wykonywany w trybie u_ytkownika (jest aktywny) 4 - proces uspiony w pamieci (np. przez WE/WY) wczesniej przeszedł przez 2 5 - uspiony poza pamiecia, to znaczy, _e system operacyjny ma mało pamieci, a wykonuje wiele procesów, wiec przeniósł go do pamieci wymiany na dysku (tzw. Swap) 6 - gotowy do wykonania poza pamiecia ZOMBIE - procesu juz nie ma, ale jeszcze w niektórych “zapiskach systemowych” istnieja informacje o tym procesie Algorytm pracy SCHEDULERA Jest to zasadniczy i elementarny program systemu operacyjnego, program szeregujacy. W przypadku SO z μjadrem stanowi on znaczna czesc tego jadra. Wiekszosc systemów operacyjnych ma zaszyty w pamieci algorytm szeregowania, tylko w niektórych systemach mo_na na niego wpłynac , np. QNX Scheduler moze szeregowac procesy np.: _ na podstawie priorytetów procesów (nie mo_e to byc wyłaczne rozwiazanie) _ kolejka (w czystej formie równie_ nie do przyjecia) _ kolejka priorytetowa - ka_dy proces posiada priorytet poczatkowy, a nastepnie w miare jak czeka w kolejce, to jego priorytet narasta od priorytetu poczatkowego.
Nice - polecenie systemowe Unixa pozwala uruchomic nasz program z ni_szym priorytetem poczatkowym. Współdziałanie procesu macierzystego z procesem Potomnym
wait() - oczekiwanie procesu macierzystego na zakonczenie procesu potomka exit() - proces potomny konczy prace (budzi sie wtedy proces macierzysty). Druga mnożliwoścc:
Sa to dwa niezale_ne procesy (jeden robi swoje a drugi swoje), Sa ró_ne przypadki: _ gdy macierzysty wykona sie szybciej, wtedy potomny jest osierocony i adoptowany przez proces Init (schemat powy_ej)
- ale moze byc odwrotnie: Proces ZOMBIE - proces potomny zakonczył działanie, ale rodzic nie zostaje o tym poinformowany, czyli potomka ju_ nie ma, ale niektórych zapisach procesu macierzystego (systemu) jeszcze widnieje. Procesy: -niezalezne 1. nie komunikuja sie miedzy soba 2. sa w pełni odseparowane od siebie 3. nie wykorzystuja wspólnych danych (np. plików)
zalezne 1. wykorzystuja wspólne dane (jeden plik) 2. komunikuja sie miedzy soba np. jeden zapisuje do pliku, druki z niego odczytuje i robia to współbie_nie 3. wynik działania procesów zale_nych mo_e byc nieprzewidywalny 4. procesy nale_y synchronizowac * mutex (mutual excluser) * semaphore
Klasyfikacja systemów operacyjnych (ze wzgledu na maszyne wirtualna tworzona przez dany system operacyjny) 1. Systemy operacyjne jednozadaniowe, jednostanowiskowe zadanie = proces Stacja robocza, na której w jednej chwili mo_na wykonywac 1 program np.DOS.
Duża prostota, ale za to duże marnotrawstwo czasu procesora, np. procesor wykonuje 100*106 rozkazów/sek. powiedzmy, _e P1 to edytor tekstu _t = 0,1 sek (czas pomiedzy wcisnieciami klawiszy) a same operacje programu sa krótkie - stopien wykorzystania proca to 1%. 2. SO wielozadaniowe, jednostanowiskowe Stacja robocza, na której w jednej chwili mo_e byc wykonywane wiele zadan, np. WINDOWS NT (i nowsze).
Klasyfikacja systemów operacyjnych 1. Systemy operacyjne jednozadaniowe, jednostanowiskowe 2. Systemy operacyjne wielozadaniowe, jednostanowiskowe Współbiezna realizacja procesów (Scheduler - program szeregujacy procesy)
Podstawa jest współbiezna realizacja procesów. Scheduler - program, który przydziela procesowi procesor i jesli proces go nie oddaje to po przekroczeniu limitu czasu zabiera go. Wywłaszczenie - to zabranie procesora przez proces wy_szy priorytetem, lub przez przekroczenie limitu czasu przewidzianego na proces. Programy systemowe te_ sa szeregowane, ale posiadaja najwy_sze priorytety. Cechy: Rosnie procent wykorzystania procesora. U_ytkownik mo_e pracowac na kilku programach współbie_nie. Komputery wieloprocesorowe Równoległa realizacja procesów
Procesy wykonuja sie na kolejnych procesorach, ale cała praca jest nadal współbie_na. Proces pierwszy wykonuje sie przez chwile na jednym procesorze , nastepuje wywłaszczenie, i proces drugi zaczyna byc wykonywany, ale na innym procesorze. Wieksza liczba procesów mo_e byc jednoczesnie realizowana. System operacyjny tworzy stacje robocza (wirtualny obraz), na której u_ytkownik mo_e wykonywac wiele programów jednoczesnie. 3. Systemy operacyjne wielozadaniowe, wielodostepne Przykładem jest Unix Ju_ w połowie 60-tych wykorzystywano procesory wielozadaniowe. Unix powstał na poczatku lat 70-tych Unix: SUN - Solaris HP - HPUX SCO -SCO UNIX Linux 4. Sieciowe systemy operacyjne. 5. SO czasu rzeczywistego. (komputerowe systemy sterowania), np. QNX, RTLINUX. 6. Rozproszone systemy operacyjne.
Ogólna budowa systemów operacyjnych Systemy operacyjne nale_a do programów o najwiekszej zło_onosci. Sa to programy o wielkiej odpowiedzialnosci. Musza byc niezawodne. Czesto systemy operacyjne to setki zupełnie odrebnych programów. Podstawa budowy SO jest warstwowa hierarchiczna budowa tego oprogramowania. UNIX
Jadro - zbiór funkcji systemowych. Jego wersja okresla konkretny zbiór funkcji systemowych. Fork - funkcja JSO (w C) Shell - powłoka (w Unix znakowa). Tryb pracy procesora Systemy operacyjne i znajdujace sie tam programy sa chronione sprzetowo. Sa wykonywane w specjalnym trybie procesora. Rozrózniamy tryby: _ tryb uzytkownika - programy uzytkowe _ tryb uprzywilejowany - tryb jadra
z monolitycznym jadrem (np. Unix) Praca wyglada tak:
sa cechy systemów operacyjnych tego typu: _ wysokie bezpieczenstwo _ bardzo mała elastycznosc systemu. Mo_na to zauwa_yc przy rozbudowie systemu operacyjnego (jest ona bardzo kłopotliwa) Przekompilowanie jadra - dołaczenie programu w C do modułów i to wszystko razem kompilujemy potem ten moduł jest zintegrowany z reszta - mała liczba przełaczen trybu pracy , co daje wieksza szybkosc systemu.
Systemy operacyjne Windows
Systemy operacyjne Windows to systemy z μjadrem, tyle, _e struktura ta została nieco zmodyfikowana - pod katem szybkosci pracy. Do jadra dodano czesc usług systemowych. Poprzez API programy u_ytkowe komunikuja sie z systemem.
|