podstawy systemow operacyjnych - abraham silberschatz wyd.5

989

Upload: aur

Post on 11-Jun-2015

5.364 views

Category:

Documents


21 download

DESCRIPTION

CZĘŚCI • PRZEGLĄDRozdział l Wstęp / 31.1 Co to jest system operacyjny? / 31.2 Proste systemy wsadowe / 6l .3 Wieloprogramowane systemywsadowe / 91.4 Systemy z podziałem czasu / 11l .5 Systemy operacyjne dla komputerówosobistych / 141.6 Systemy równoległe / 171.7 Systemy rozproszone / 201.8 Systemy czasu rzeczywistego / 221.9 Podsumowanie / 23Ćwiczenia / 25Uwagi bibliograficzne / 26Rozdział 2 Struktury systemów komputerowych / 292.1 Działanie systemu komputerowego / 29 2.6 Ogólna architektura systemu / 542.2 Struktura wejścia-wyjścia / 33 2.7 Podsumowanie / 562.3 Struktura pamięci / 38 Ćwiczenia / 572.4 Hierarchia pamięci / 44 Uwagi bibliograficzne / 592.5 Ochrona sprzętowa / 48Rozdział 3 Struktury systemów operacyjnych / 613.1 Składowe systemu / 613.2 Usługi systemu operacyjnego / 683.3 Funkcje systemowe / 713.4 Programy systemowe / 823.5 Struktura systemu / 843.6 Maszyny wirtualne / 913.7 Projektowanie i implementacjasystemu / 963.8 Generowanie systemu / 993.9 Podsumowanie / 101Ćwiczenia / 102Uwagi bibliograficzne / 103CZĘŚĆ 2 • ZARZĄDZANIE PROCESAMIRozdział 4 Procesy / 1074.1 Koncepcja procesu / 107 4.6 Komunikacja międzyprocesowa / 1294.2 Planowanie procesów / 111 4.7 Podsumowanie / 1434.3 Działania na procesach / 116 Ćwiczenia / 1444.4 Procesy współpracujące / 120 Uwagi bibliograficzne / 1454.5 Wątki / 122Rozdział 5 Planowanie przydziału procesora / 1475.1 Pojęcia podstawowe / 147 5.6 Ocena algorytmów / 1725.2 Kryteria planowania / 152 5.7 Podsumowanie / 1775.3 Algorytmy planowania / 154 Ćwiczenia / 1785.4 Planowanie wieloprocesorowe / 167 Uwagi bibliograficzne / 1815.5 Planowanie w czasie rzeczywistym / 169Rozdziało Synchronizowanieprocesów / 1836.1 Podstawy / 183 6.8 Synchronizacja w systemie6.2 Problem sekcji krytycznej / 186 Solaris 2 / 2206.3 Sprzętowe środki synchronizacji / 193 6.9 Transakcje niepodzielne / 2216.4 Semafory / 196 6.10 Podsumowanie / 2336.5 Klasyczne problemy synchronizacji / 202 Ćwiczenia / 2346.6 Regiony krytyczne / 207 Uwagi bibliograficzne / 2386.7 Monitory / 212Rozdział 7 Zakleszczenia / 2417. l Model systemu / 242 7.7 Likwidowanie zakleszczenia / 2647.2 Charakterystyka zakleszczenia / 243 7.8 Mieszane metody postępowania7.3 Metody postępowania z zakleszczeniami / 266z zakleszczeniami / 247 7.9 Podsumowanie / 2687.4 Zapobieganie zakleszczeniom / 249 Ćwiczenia / 2697.5 Unikanie zakleszczeń / 252 Uwagi bibliograficzne / 2727.6 Wykrywanie zakleszczenia / 260CZĘŚĆ 3 • ZARZĄDZANIE ZASOBAMI PAMIĘCIRozdział 8 Zarządzanie pamięcią / 2778.1 Podstawy / 277 8.6 Segmentacja / 3158.2 Logiczna i fizyczna przestrzeń 8.7 Segmentacja ze stronicowaniem / 323adresowa / 284 8.8 Podsumowanie / 3288.3 Wymiana / 286 Ćwiczenia / 3308.4 Przydział ciągły / 290 Uwagi bibliograficzne / 3338.5 Stronicowanie / 299Rozdział 9 Pamięć wirtualna / 3359.1 Podstawy / 3359.2 Stronicowanie na żądanie / 3389.3 Sprawność stronicowania na żądanie / 3449.4 Zastępowanie stron / 3479.5 Algorytmy zastępowania stron / 3519.6 Przydział ramek / 3639.7 Szamotanie / 3679.8 Inne rozważania / 3749.9 Segmentacja na żądanie / 3829. l O Podsumowanie / 383Ćwiczenia / 385Uwagi bibliograficzne / 390Rozdział 10 Interfejs systemu plików / 39310.1 Pojęcie pliku / 39310.2 Metody dostępu / 40410.3 Struktura katalogowa / 40810.4 Ochrona / 42210.5 Semantyka spójności / 42710.6 Podsumowanie / 428Ćwiczenia / 430Uwagi bibliograficzne / 431Rozdział 11 Implementacja systemu plików / 43311.1 Budowa systemu plików / 43311.2 Metody przydziału miejsca na dysku / 43811.3 Zarządzanie wolną przestrzenią / 44911.4 Implementacja katalogu / 45211.5 Efektywność i wydajność / 45411.6 Rekonstrukcja / 45811.7 Podsumowanie / 460Ćwiczenia / 461Uwagi bibliograficzne / 463CZĘŚĆ 4 • SYSTEMY WEJŚCIA-WYJŚCIARozdział 12 Systemy wejścia-wyjścia / 46712.1 Przegląd / 46712.2 Sprzę

TRANSCRIPT

PRZEDMOWASystemy operacyjne s zasadnicz czci systemu komputerowego. Analogicznie, kurs systemw operacyjnych stanowi zasadnicz cz edukacji informatycznej. Niniejsza ksika ma suy jako podrcznik do podstawowego wykadu z systemw operacyjnych dla studentw modszych i starszych lat studiw dyplomowych lub pierwszego roku studiw podyplomowych. Zawiera przejrzyst prezentacj wiedzy lecej u podstaw systemw operacyjnych. W tej ksice nie kadziemy szczeglnego nacisku na aden konkretny system operacyjny lub sprzt. Omawiamy w niej natomiast fundamentalne koncepcje odnoszce si do wielu rnych systemw. Przedstawiamy du liczb przykadw nawizujcych zwaszcza do systemu UNIX, jak rwnie do innych, popularnych systemw operacyjnych. Odwoujemy si w szczeglnoci do systemu operacyjnego Solaris 2 firmy Sun Microsystems - odmiany systemu UNIX, ktry ostatnio zosta przeksztacony w nowoczesny system operacyjny, wyposaony w wtki na poziomie jdra i uytkownika, symetryczne wieloprzetwarzanie i planowanie w czasie rzeczywistym. Inne przykady dotycz systemw MS-DOS, Windows i Windows NT firmy Microsoft, systemu Linux, IBM OS/2, Apple Macintosh Operating System, systemu VMS firmy DEC oraz systemu TOPS.

Wymagane wiadomociPrzyjmujemy jako niezbdne zaoenie, e Czytelnik jest zaznajomiony z ogln budow komputerw oraz z jzykiem wysokiego poziomu, takim jak Pascal. Zagadnienia dotyczce sprztu, ktre s potrzebne do zrozumienia sy-

VIII

Przedmowa

stemw operacyjnych, przedstawiamy w rozdz. 2. Przykady kodu wyraamy w jzyku pseudopascalowym, ale zrozumienie omawianych algorytmw nie wymaga znajomoci jzyka Pascal.

Zawarto ksikiKsika jest podzielona na siedem gwnych czci: Przegld (rozdz. od l do 3). W rozdziaach tych wyjaniamy, czym s systemy operacyjne, co robi, jak ^pomylane i zbudowane. Opisujemy, jak rozwijaa si koncepcja systemu operacyjnego, jakie s jego najbardziej oczywiste cechy, co robi dla uytkownika, a co dla operatora systemu komputerowego. Unikamy rozwaa o tym, jak rzeczy maj si od wewntrz. Dziki temu opisane tu problemy s przystpne dla suchaczy niszych lat studiw oraz dla indywidualnych Czytelnikw, ktrzy chc si dowiedzie, czym jest system operacyjny, bez wnikania w szczegy wewntrznych algorytmw. W rozdziale 2 omawiamy zagadnienia sprztowe, wane do zrozumienia systemw operacyjnych. Czytelnicy majcy dobre rozeznanie w problematyce sprztu, a w szczeglnoci w dziaaniu urzdze wejcia-wyjcia, organizacji bezporedniego dostpu do pamici (DMA) oraz w operacjach dyskowych, mog zapozna si z treci tego rozdziau pobienie lub wrcz go pomin. Zarzdzanie procesami (rozdz. od 4 do 7). Pojcia procesu i wspbienoci le w samym sercu nowoczesnych systemw operacyjnych. Proces stanowi czstk pracy w systemie. System jest zbiorem procesw wykonywanych wspbienie, z ktrych cz jest procesami systemowymi (wykonujcymi rozkazy kodu samego systemu), a reszta to procesy uytkownika (wykonujce kod dostarczony przez uytkownika). W wymienionych rozdziaach omawiamy rozmaite metody planowania procesw, komunikacji midzyprocesowej, synchronizacji procesw oraz obsugi ich zakleszcze. W tej grupie zagadnie mieci si take przedstawienie wtkw. Zarzdzanie pamici (rozdz. od 8 do 11). Podczas wykonywania proces, lub przynajmniej jego cz, musi znajdowa si w pamici operacyjnej (gwnej). W celu polepszania stopnia wykorzystania procesora, a take szybkoci, z jak odpowiada on swoim uytkownikom, komputer musi przechowywa w pamici wiele procesw. Istnieje znaczna liczba rnych schematw zarzdzania pamici operacyjn. Odzwierciedlaj one rozmaite podejcia do zarzdzania pamici, przy czym efektywno

Przedmowa

IX

poszczeglnych algorytmw zaley od konkretnej sytuacji. Pami gwna jest na og za maa, aby pomieci wszystkie dane i programy; nie mona w niej rwnie przechowywa danych nieustannie. Dlatego system komputerowy musi rozporzdza pamici pomocnicz, aby skadowa w niej zawarto pamici gwnej. Wikszo nowoczesnych systemw komputerowych uywa dyskw jako podstawowego nonika magazynowania informacji, umoliwiajcego dostp bezporedni (zarwno do programw, jak i do danych). Mechanizmy zawarte w systemie plikw umoliwiaj bezporednie magazynowanie i dostp zarwno w odniesieniu do danych, jak i do programw przebywajcych na dysku. W tych rozdziaach zajmujemy si klasycznymi algorytmami wewntrznymi i strukturami zarzdzania pamici. Umoliwiaj one solidne, praktyczne zrozumienie stosowanych algorytmw - ich wasnoci, zalet i wad. Systemy wejcia-wyjcia (rozdz. od 12 do 14). Urzdzenia przyczane do komputera rni si pod wieloma wzgldami. W wielu przypadkach s one take najwolniej dziaajcymi elementami komputera. Z powodu duych rnic w urzdzeniach system operacyjny musi udostpnia szeroki wybr funkcji, ktre umoliwiaj aplikacjom wszechstronne sterowanie urzdzeniami. W tej czci ksiki omawiamy dogbnie system wejcia-wyjcia, powicajc uwag jego konstrukcji, interfejsom oraz wewntrznym strukturom i funkcjom. Poniewa urzdzenia s wskim gardem wydajnoci, analizujemy te zagadnienia dotyczce optymalizacji ich dziaania. Wyjaniamy rwnie kwestie zwizane z pamiciami pomocniczymi i trzeciorzdnymi. Systemy rozproszone (rozdz. od 15 do 18). System rozproszony skada si ze zbioru procesorw, ktre nie uywaj wsplnej pamici ani zegara. System taki zarzdza najrniejszymi zasobami, ktre udostpnia swoim uytkownikom. Korzystanie z zasobw dzielonych przyspiesza obliczenia oraz polepsza dostpno i niezawodno danych. System tego rodzaju oddaje rwnie do dyspozycji uytkownika rozproszony system plikw, w ktrym uytkownicy, serwery i urzdzenia magazynowania informacji znajduj si w rnych miejscach systemu rozproszonego. System rozproszony musi zawiera rnorodne mechanizmy do synchronizacji i komunikacji procesw, obsugi zakleszcze i rozlicznych bdw, nie napotykanych w systemie scentralizowanym. Ochrona i bezpieczestwo (rozdz. 19 i 20). Rozmaite procesy w systemie operacyjnym naley chroni przed wzajemnym oddziaywaniem. Z tego powodu istniej mechanizmy, z ktrych mona skorzysta, aby zapewni, e pliki, segmenty pamici, procesory i inne zasoby bd uy-

X

Przedmowa

wane tylko przez te procesy, ktre uzyskay waciwe upowanienie od systemu operacyjnego. Przez ochron rozumie si mechanizm kontrolowania dostpu programw, procesw lub uytkownikw do zasobw zdefiniowanych w systemie komputerowym. Mechanizm ten musi dostarcza moliwoci do okrelania wymaganej kontroli oraz rodki jej egzekwowania. Bezpieczestwo ma na celu ochron informacji przechowywanej w systemie (zarwno danych, jak i kodu) oraz ochron zasobw fizycznych systemu komputerowego przed nieupowanionym dostpem, zoliwymi uszkodzeniami lub zmianami, a take przed przypadkowym wprowadzaniem niespjnoci. Przykady konkretnych systemw (rozdz. od 21 do 24). Rnorodne koncepcje opisane w tej ksice czymy w cao, prezentujc rzeczywiste systemy operacyjne. Szczegowo omawiamy trzy takie systemy: wersj systemu UNIX 4.3BSD z Berkeley, system Linux oraz system Microsoft Windows NT. System 4.3BSD z Berkeley oraz system Linux wybralimy dlatego, e UNIX by w swoim czasie na tyle may, e mona go byo zrozumie, a jednoczenie nie by zabawkowym" systemem operacyjnym. Wikszo jego wewntrznych algorytmw dobrano ze wzgldu na ich prostot, a nie szybko lub wyrafinowanie. Zarwno system 4.3BSD, jak i Linux s atwo osigalne na wydziaach informatyki; wielu wic studentw ma do nich dostp. System Windows NT wybralimy z tego powodu, e daje moliwo zapoznania si z nowoczesnym systemem operacyjnym, ktry w konstrukcji i implementacji zasadniczo rni si od systemw uniksowych. W rozdziale 24 omawiamy pokrtce kilka innych systemw, ktre miay wpyw na rozwj dziedziny systemw operacyjnych.

0 pitym wydaniu ksiki *W zwizku z poprzednimi wydaniami skierowano do nas wiele komentarzy 1 sugestii. Uwagi te, wraz z naszymi obserwacjami, skoniy nas do opracowania niniejszego, pitego wydania. W szczeglnoci dokonalimy zasadniczych zmian w materiale dotyczcym systemw wejcia-wyjcia; dodalimy te dwa nowe rozdziay powicone nowoczesnym systemom operacyjnym. Przepisalimy na nowo tre kilku rozdziaw, ktre dotycz urzdze pamici (rozdz. l, 2, 3 i 8), uaktualniajc starszy tekst i usuwajc te fragmenty, ktre przestay by interesujce. Dodalimy nowe rozdziay o systemach wejcia-wyjcia* Trzecie wydanie polskie jest przekadem pitego wydania amerykaskiego. - Przyp. tum.

Przedmowa

XI

oraz o pamici trzeciorzdnej, jak rwnie rozdziay o systemach Linux i Windows NT. Istotne uaktualnienia i zmiany wprowadzilimy w nastpujcych rozdziaach: Rozdzia 3. Dodalimy nowy punkt dotyczcy maszyny wirtualnej jzyka Java (ang. Java Yirtual Machin). Rozdzia 4. Dodalimy nowy punkt zawierajcy opis komunikacji midzyprocesowej w systemie Windows NT. Rozdzia 12. Ten nowy rozdzia jest powicony architekturze wejcia-wyjcia systemu operacyjnego, w tym - strukturze jdra, metodom przesyania, metodom powiadamiania oraz zagadnieniom wydajnoci. Rozdzia 13. Jest to stary rozdz. 12*. Dokonalimy w nim istotnych uaktualnie materiau. Rozdzia 14. W tym nowym rozdziale przedstawilimy systemy pamici trzeciorzdnych. Rozdzia 19. Jest to stary rozdz. 13. Rozdzia 20. Jest to stary rozdz. 14. Rozdzia 21. Jest to stary rozdz. 19. Rozdzia 22. Jest to nowy rozdzia dotyczcy systemu Linux. Rozdzia 23. Jest to nowy rozdzia dotyczcy systemu Windows NT. Rozdzia 24. Rozdzia ten odpowiada staremu rozdz. 21. Dodalimy w nim punkt zawierajcy opis wczesnych systemw wsadowych (poprzednio umieszczony w rozdz. 1) oraz punkt z podsumowaniem nowych waciwoci systemu operacyjnego Mach.

Omwienie systemu operacyjnego Mach (stary rozdz. 20) - nowoczesnego systemu operacyjnego zachowujcego zgodno z systemem 4.3BSD - jest dostpne w sieci Internet. Opis systemu Nachos rwnie jest dostpny bezporednio w sieci. Zapoznanie si z nim to dobry sposb na pogbienie wiedzy na temat wspczesnych systemw operacyjnych. Umoliwia studentom wgld w jego kod rdowy, analiz dziaania systemu na niskim poziomie, samodzielne opracowanie istotnych czci systemu operacyjnego i zaobserwowanie skutkw wasnej pracy.* Ta numeracja dotyczy czwartego wydania amerykaskiego. - Przyp. tum.

XII

Przedmowa

Listy korespondencyjne i uzupenieniaDysponujemy obecnie stron WWW powicon tej ksice, zawierajc takie informacje, jak zestaw przezroczy uzupeniajcych ksik, pliki w formacie postcript z rozdziaami o systemach Mach i Nachos oraz najnowszy wykaz dostrzeonych bdw. Udostpniamy take rodowisko, w ktrym uytkownicy mog komunikowa si ze sob i z nami. Utworzylimy list korespondencyjn uytkownikw naszej ksiki pod adresem: [email protected]. Kady, kto ma ochot by na ni wpisany, jest proszony 0 wysanie komunikatu pod adresem [email protected] z podaniem nazwiska 1 adresu poczty elektronicznej. Aby uzyska informacje dotyczce uzupeniajcych materiaw dydaktycznych i materiaw dostpnych bezporednio w sieci, wystarczy zajrze pod adres URL http://www.awl.com/cseng/books/osc5e. Wykaz uzupenie i szczegowe informacje dotyczce kontaktu na terenie USA i poza wysyane s automatycznie w odpowiedzi na list zaadresowany do [email protected]. W celu otrzymania dodatkw, ktrych upowszechnianie podlega ograniczeniom, naley skontaktowa si z lokalnym punktem sprzeday.

ErrataDooylimy stara, aby w tym nowym wydaniu nie byo wszystkich wczeniejszych bdw, lecz -jak to si zdarza w systemach operacyjnych - troch ukrytych pozostao. Bdziemy wdziczni za powiadomienie nas o jakichkolwiek bdach lub brakach. Z zadowoleniem powitamy te propozycje ulepsze lub wicze. Wszelk korespondencj prosimy przesya pod adresem: Avi Silberschatz, Director, Information Sciences Research Center, MH 2T-210, Bell Laboratories, 600 Mountain Ave., Murray Hill, NJ 07974 ([email protected]).

PodzikowaniaNiniejsza ksika wywodzi si z poprzednich wyda. Wspautorem trzech pierwszych z nich by James Peterson. Do grona innych osb, ktre pomogy nam w przygotowaniu poprzednich wyda nale: Randy Bentson, David Black, Joseph Boykin, Jeff Brumfield, Gael Buckley, P. C. Capon, John Carpenter, Thomas Casavant, Ajoy Kumar Datta, Joe Deck, Thomas Doeppner, Caleb Drak, M. Rasit Eskicioglu, Hans Flack, Robert Fowler, G. Scott Graham, Rebecca Hartman, Wayne Hathaway, Christopher Haynes, Mark Holli-

Przedmowa

XIII

day, Richard Kieburtz, Carol Kroi, Thomas LeBlanc, John Leggett, Jerrold Leichter, Ted Leung, Gary Lippman, Carolyn Miller, Michael Molloy, Yoichi Muraoka, Jim M. Ng, Ed Posnak, Boris Putanec, Charles Qualline, John Quarterman, John Stankovic, Adam Stauffer, Steven Stepanek, Hal Stern, Louis Stevens, David Umbaugh, Steve Yinoski, John Werth i J. S. Weston. Przeredagowanie ksiki jest dzieem Lyn Dupre, a opracowanie techniczne dzieem Cliffa Wilkesa. Sara Strandtman zredagowaa nasz tekst w formacie Latex. W opracowaniu rysunkw pomoga Marylin Turnamian. Debbie Lafferty, Lynne Doran Cote i Patricia Unubun okazay pomoc w przygotowaniu ksiki do produkcji. Bruce Hillyer przejrza przepisane na nowo rozdziay 2, 12, 13 i 14, pomagajc w ich opracowaniu. Rozdzia 14 pochodzi z artykuu Hillyera i Silberschatza z roku 1996, a rozdz. 17 z artykuu Levy'ego i Silberschatza [254]. Rozdzia 19 opracowano na podstawie artykuu Quartermana i in. [339]. Rozdzia 22 pochodzi z niepublikowanego rkopisu Stephena Tweediego, a rozdz. 23 z niepublikowanego rkopisu Cliffa Martina. Dodatkowo rozdzia ten zredeagowa Bruce Hillyer. Dzikujemy rwnie osobom, ktre przejrzay obecne wydanie ksiki. S to: Hamid Arabnia, Sudarshan K. Dhall, Steven Stepanek, Pete Thomas, L. David Umbaugh i Tommy Wagner. Abraham Silberschatz, 1997, Murray Hill, NJ Peter Baer Galvin, 1997, Norton, MA

SPIS TRECICZCI PRZEGLDRozdzia l Wstp / 31.1 Co to jest system operacyjny? / 3 1.2 Proste systemy wsadowe / 6 l .3 Wieloprogramowane systemy wsadowe / 9 1.4 Systemy z podziaem czasu / 11 l .5 Systemy operacyjne dla komputerw osobistych / 14 1.6 1.7 1.8 1.9 Systemy rwnolege / 17 Systemy rozproszone / 20 Systemy czasu rzeczywistego / 22 Podsumowanie / 23 wiczenia / 25 Uwagi bibliograficzne / 26

Rozdzia 2 Struktury systemw komputerowych / 292.1 2.2 2.3 2.4 2.5 Dziaanie systemu komputerowego / 29 Struktura wejcia-wyjcia / 33 Struktura pamici / 38 Hierarchia pamici / 44 Ochrona sprztowa / 48 2.6 Oglna architektura systemu / 54 2.7 Podsumowanie / 56 wiczenia / 57 Uwagi bibliograficzne / 59

Rozdzia 3 Struktury systemw operacyjnych / 613.1 3.2 3.3 3.4 3.5 3.6 Skadowe systemu / 61 Usugi systemu operacyjnego / 68 Funkcje systemowe / 71 Programy systemowe / 82 Struktura systemu / 84 Maszyny wirtualne / 91 3.7 Projektowanie i implementacja systemu / 96 3.8 Generowanie systemu / 99 3.9 Podsumowanie / 101 wiczenia / 102 Uwagi bibliograficzne / 103

XVI

Spis treci

CZ 2 ZARZDZANIE PROCESAMIRozdzia 4 Procesy / 1074.1 4.2 4.3 4.4 4.5 Koncepcja procesu / 107 Planowanie procesw / 111 Dziaania na procesach / 116 Procesy wsppracujce / 120 Wtki / 122 4.6 Komunikacja midzyprocesowa / 129 4.7 Podsumowanie / 143 wiczenia / 144 Uwagi bibliograficzne / 145

Rozdzia 5 Planowanie przydziau procesora / 1475.1 5.2 5.3 5.4 5.5 Pojcia podstawowe / 147 5.6 Ocena algorytmw / 172 Kryteria planowania / 152 5.7 Podsumowanie / 177 Algorytmy planowania / 154 wiczenia / 178 Planowanie wieloprocesorowe / 167 Uwagi bibliograficzne / 181 Planowanie w czasie rzeczywistym / 169

Rozdziao Synchronizowanieprocesw / 1836.1 6.2 6.3 6.4 6.5 6.6 6.7 Podstawy / 183 Problem sekcji krytycznej / 186 Sprztowe rodki synchronizacji / 193 Semafory / 196 Klasyczne problemy synchronizacji / 202 Regiony krytyczne / 207 Monitory / 212 6.8 Synchronizacja w systemie Solaris 2 / 220 6.9 Transakcje niepodzielne / 221 6.10 Podsumowanie / 233 wiczenia / 234 Uwagi bibliograficzne / 238

Rozdzia 7 Zakleszczenia / 2417. l Model systemu / 242 7.2 Charakterystyka zakleszczenia / 243 7.3 Metody postpowania z zakleszczeniami / 247 7.4 Zapobieganie zakleszczeniom / 249 7.5 Unikanie zakleszcze / 252 7.6 Wykrywanie zakleszczenia / 260 7.7 Likwidowanie zakleszczenia / 264 7.8 Mieszane metody postpowania z zakleszczeniami / 266 7.9 Podsumowanie / 268 wiczenia / 269 Uwagi bibliograficzne / 272

CZ 3 ZARZDZANIE ZASOBAMI PAMICIRozdzia 8 Zarzdzanie pamici / 2778.1 Podstawy / 277 8.2 Logiczna i fizyczna przestrze adresowa / 284 8.3 Wymiana / 286 8.4 Przydzia cigy / 290 8.5 Stronicowanie / 299 8.6 Segmentacja / 315 8.7 Segmentacja ze stronicowaniem / 323 8.8 Podsumowanie / 328 wiczenia / 330 Uwagi bibliograficzne / 333

Spis treci

XVII

Rozdzia 9 Pami wirtualna / 3359.1 9.2 9.3 9.4 9.5 9.6 Podstawy / 335 9.7 Szamotanie / 367 Stronicowanie na danie / 338 9.8 Inne rozwaania / 374 Sprawno stronicowania na danie / 344 9.9 Segmentacja na danie / 382 Zastpowanie stron / 347 9. l O Podsumowanie / 383 Algorytmy zastpowania stron / 351 wiczenia / 385 Przydzia ramek / 363 Uwagi bibliograficzne / 390

Rozdzia 10 Interfejs systemu plikw / 39310.1 10.2 10.3 10.4 Pojcie pliku / 393 Metody dostpu / 404 Struktura katalogowa / 408 Ochrona / 422 10.5 Semantyka spjnoci / 427 10.6 Podsumowanie / 428 wiczenia / 430 Uwagi bibliograficzne / 431

Rozdzia 11 Implementacja systemu plikw / 43311.1 11.2 11.3 11.4 11.5 Budowa systemu plikw / 433 Metody przydziau miejsca na dysku / 438 Zarzdzanie woln przestrzeni / 449 Implementacja katalogu / 452 Efektywno i wydajno / 454 11.6 Rekonstrukcja / 458 11.7 Podsumowanie / 460 wiczenia / 461 Uwagi bibliograficzne / 463

CZ 4 SYSTEMY WEJCIA-WYJCIARozdzia 12 Systemy wejcia-wyjcia / 46712.1 12.2 12.3 12.4 12.5 Przegld / 467 Sprzt wejcia-wyjcia / 468 Uytkowy interfejs wejcia-wyjcia / 481 Podsystem wejcia-wyjcia w jdrze /489 Przeksztacanie zamwie wejcia-wyjcia na operacje sprztowe / 496 12.6 Wydajno / 500 12.7 Podsumowanie / 504 wiczenia / 505 Uwagi bibliograficzne / 507

Rozdzia 13 Struktura pamici pomocniczej / 50913.1 13.2 13.3 13.4 13.5 Struktura dysku / 509 Planowanie dostpu do dysku / 510 Zarzdzanie dyskiem / 518 Zarzdzanie obszarem wymiany / 522 Niezawodno dysku / 526 13.6 Implementowanie pamici trwaej / 527 13.7 Podsumowanie / 529 wiczenia / 530 Uwagi bibliograficzne / 535

XVIII Spis treci

Rozdzia 14 Struktura pamici trzeciorzdnej / 53714.1 Urzdzenia pamici trzeciorzdnej / 537 14.2 Zadania systemu operacyjnego / 541 14.3 Zagadnienia dotyczce wydajnoci / 545 14.4 Podsumowanie / 551 wiczenia / 551 Uwagi bibliograficzne / 555

CZ 5 SYSTEMY ROZPROSZONERozdzia 15 Struktury sieci / 55915.1 15.2 15.3 15.4 15.5 Podstawy / 559 Motywy / 561 Topologia / 563 Typy sieci / 569 Komunikacja / 573 15.6 Strategie projektowe / 581 15.7 Przykad dziaania sieci / 584 15.8 Podsumowanie / 587 wiczenia / 587 Uwagi bibliograficzne / 589

Rozdzia 16 Struktury systemw rozproszonych / 59116.1 16.2 16.3 16.4 Sieciowe systemy operacyjne / 591 Rozproszone systemy operacyjne / 594 Usugi zdalne / 596 Odporno / 603 16.5 Zagadnienia projektowe / 605 16.6 Podsumowanie / 609 wiczenia / 609 Uwagi bibliograficzne 7 6 1 0

Rozdzia 17 Rozproszone systemy plikw / 61317.1 17.2 17.3 17.4 17.5 Podstawy / 613 Nazewnictwo i przezroczysto / 615 Zdalny dostp do plikw / 620 Obsuga dogldana i niedogldana / 627 Zwielokrotnianie pliku / 629 17.6 Przykady systemw / 630 17.7 Podsumowanie / 664 wiczenia / 665 Uwagi bibliograficzne / 666

Rozdzia 18 Koordynacja rozproszona / 66718.1 18.2 18.3 18.4 18.5 Porzdkowanie zdarze / 667 Wzajemne wykluczanie / 670 Niepodzielno / 674 Sterowanie wspbienoci / 679 Postpowanie z zakleszczeniami / 685 18.6 Algorytmy elekcji / 694 18.7 Osiganie porozumienia / 697 18.8 Podsumowanie / 700 wiczenia / 701 Uwagi bibliograficzne / 703

CZ 6

OCHRONA I BEZPIECZESTWO

Rozdzia 19 Ochrona / 70719.1 Cele ochrony / 707 19.2 Domeny ochrony / 709 19.3 Macierz dostpw / 715 19.4 Implementacja macierzy dostpw / 720

Spis treci

XIX

19.5 Cofanie praw dostpu / 724 19.6 Systemy dziaajce na zasadzie uprawnie / 726 19.7 Ochrona na poziomie jzyka programowania / 729

19.8 Podsumowanie / 734 wiczenia / 734 Uwagi bibliograficzne / 736

Rozdzia 20 Bezpieczestwo / 73720.1 20.2 20.3 20.4 20.5 20.6 20.7 Zagadnienie bezpieczestwa / 737 Uwierzytelnianie / 739 Hasa jednorazowe / 743 Zagroenia programowe / 744 Zagroenia systemowe / 746 Nadzorowanie zagroe / 751 Szyfrowanie / 754 20.8 Klasyfikacja poziomw bezpieczestwa komputerowego / 757 20.9 Przykad modelu bezpieczestwa - system Windows NT / 759 20.10 Podsumowanie / 762 wiczenia / 762 Uwagi bibliograficzne / 763

CZ 7 PRZYKADY KONKRETNYCH SYSTEMWRozdzia 21 System UNIX / 76721.1 21.2 21.3 21.4 21.5 21.6 Historia / 767 Podstawy projektu / 775 Interfejs programisty / 777 Interfejs uytkownika / 788 Zarzdzanie procesami / 792 Zarzdzanie pamici / 798 21.7 System plikw / 803 21.8 System wejcia-wyjcia / 814 21.9 Komunikacja midzyprocesowa / 819 21.10 Podsumowanie / 826 wiczenia / 827 Uwagi bibliograficzne / 829

Rozdzia 22 System Linux / 83122.1 22.2 22.3 22.4 22.5 22.6 22.7 Historia / 831 Podstawy projektu / 837 Moduy jdra / 841 Zarzdzanie procesami / 846 Planowanie / 851 Zarzdzanie pamici / 857 Systemy plikw / 866 22.8 Wejcie i wyjcie / 872 22.9 Komunikacja midzyprocesowa / 877 22.10 Struktura sieci / 879 22.11 Bezpieczestwo / 882 22.12 Podsumowanie / 886 wiczenia / 887 Uwagi bibliograficzne / 888

Rozdzia 23 System Windows NT / 89123.1 23.2 23.3 23.4 23.5 Historia / 892 Podstawy projektu / 892 Elementy systemu / 894 Podsystemy rodowiskowe / 913 System plikw / 918 23.6 Praca w sieci /926 23.7 Interfejs programowy / 934 23.8 Podsumowanie / 943 wiczenia / 943 Uwagi bibliograficzne / 944

XX

Spis treci

Rozdzia 24 Perspektywa historyczna / 94524.1 24.2 24.3 24.4 24.5 Wczesne systemy operacyjne / 945 System Atlas / 952 System XDS-940 / 954 System THE / 955 System RC 4000 / 956 24.6 System CTSS / 957 24.7 System MULTICS / 958 24.8 System OS/360 / 959 24.9 System Mach / 961 24. l O Inne systemy / 963

Bibliografia / 965 Credits / 985 Skorowidz / 987

Cz l

PRZEGLD

System operacyjny jest programem, ktry dziaa jako porednik midzy uytkownikiem komputera a sprztem komputerowym. Zadaniem systemu operacyjnego jest tworzenie rodowiska, w ktrym uytkownik moe wykonywa programy w wygodny i wydajny sposb. Przeledzimy rozwj systemw operacyjnych od pierwszych rcznych systemw a po obecne, wieloprogramowe systemy z podziaem czasu. Zrozumienie przyczyn rozwoju systemw operacyjnych pozwoli nam oceni, co robi system operacyjny i w jaki sposb. System operacyjny musi gwarantowa bezbdn prac systemu komputerowego. Aby mona byo zapobiega wpywowi programw uytkownika na dziaanie systemu, sprzt komputerowy musi dostarcza systemowi pewnych mechanizmw gwarantujcych jego odpowiednie zachowanie. Opiszemy podstawow architektur komputera, ktra umoliwia napisanie poprawnego systemu operacyjnego. System operacyjny oferuje programom i uytkownikom tych programw usugi uatwiajce zadanie programistyczne. Poszczeglne usugi bd oczywicie rne w rnych systemach, niemniej jednak istniej pewne klasy usug, ktre okrelimy i przeanalizujemy.

Rozdzia l

WSTPSystem operacyjny jest programem, ktry dziaa jako porednik midzy uytkownikiem komputera a sprztem komputerowym. Zadaniem systemu operacyjnego jest tworzenie rodowiska, w ktrym uytkownik moe wykonywa programy. Podstawowym celem systemu operacyjnego jest zatem spowodowanie, aby system komputerowy by wygodny w uyciu. Drugim celem jest wydajna eksploatacja sprztu komputerowego. Aby zrozumie, czym s systemy operacyjne, musimy najpierw dowiedzie si, jak one powstaway. W tym rozdziale, a take w rozdz. 24, omawiamy rozwj systemw operacyjnych od pierwszych systemw bezporednich a po obecne, wieloprogramowe systemy z podziaem czasu. Poznajc kolejne stadia ich rozwoju, bdziemy mogli zobaczy ewolucj wsptworzcych je elementw, ktre powstaway jako naturalne rozwizania problemw pojawiajcych si we wczesnych systemach komputerowych. Zrozumienie przyczyn, ktre wyznaczyy rozwj systemw operacyjnych, da nam pojcie o tym, jakie zadania wykonuje system operacyjny i wjaki sposb.

1.1 Co to jest system operacyjny?System operacyjny (ang. operating system) jest wan czci prawie kadego systemu komputerowego. System komputerowy mona z grubsza podzieli na cztery czci: sprzt, system operacyjny, programy uytkowe i uytkownikw (rys. 1.1).

116

Rozdzia 4

Procesy

dania przydziau pamici przekraczaj j ej biecy obszar i wymagaj zwolnienia miejsca w pamici. Wymian omawiamy bardziej szczegowo w rozdz. 8.

4.2.3 Przeczanie kontekstuPrzeczanie procesora do innego procesu wymaga przechowania stanu starego procesu i zaadowania przechowanego stanu nowego procesu. Czynno t nazywa si przeczaniem kontekstu (ang. context switch). Czas przeczania kontekstu jest czyst danin na rzecz systemu, gdy podczas przeczania system nie wykonuje adnej uytecznej pracy. Warto czasu przeczania kontekstu zmienia si w zalenoci od typu maszyny, szybkoci pamici, liczby rejestrw oraz istnienia specjalnych instrukcji (jak np. pojedyncza instrukcja do adowania lub przechowywania wszystkich rejestrw). Na og waha si od l do 1000 |is. Czasy przeczania kontekstw w duym stopniu zale od moliwoci sprztu. Niektre procesory (np. DECSYSTEM-20) maj po kilka zbiorw rejestrw. Przeczenie kontekstu sprowadza si wtedy do zmiany wartoci wskanika biecego zbioru rejestrw. Oczywicie, jeli procesw jest wicej ni zbiorw rejestrw, to system powraca do metody kopiowania stanu rejestrw do i z pamici, tak jak poprzednio. Regu jest rwnie, e im bardziej jest zoony system operacyjny, tym wicej pracy musi by wykonane podczas przeczania kontekstu. Zaawansowane techniki zarzdzania pamici wymagaj przy kadym przeczeniu kontekstu wymiany dodatkowych danych, o czym przekonamy si w rozdz. 8. Przygotowujc na przykad pami dla nastpnego zadania, naley przechowa przestrze adresow biecego procesu. Sposb, w jaki si tego dokona, oraz ilo potrzebnej w tym celu pracy zale od przyjtej w systemie operacyjnym metody zarzdzania pamici. Jak zobaczymy w p. 4.5, przeczanie kontekstu stao si tak wskim gardem, e do unikania go, gdzie tylko to jest moliwe, korzysta si z nowych struktur (wtkw).

4.3 Dziaania na procesachProcesy w systemie mog by wykonywane wspbienie oraz dynamicznie tworzone i usuwane. System operacyjny musi wic zawiera mechanizm tworzenia i koczenia procesu.

4.3.1 Tworzenie procesuProces moe tworzy nowe procesy za pomoc wywoania systemowego utwrz-proces". Proces tworzcy nazywa si procesem macierzystym (ang. parent process), a utworzone przez niego nowe procesy zw si jego potom-

4.3 Dziaania na procesach

117

Rys. 4.7 Drzewo procesw w typowym systemie UNIX

karni (ang. children). Kady nowy proces moe tworzy kolejne procesy, wskutek czego powstaje drzewo procesw (rys. 4.7). Do wypenienia swych zada proces potrzebuje na og pewnych zasobw (czasu procesora, pamici operacyjnej, plikw, urzdze wejcia-wyjcia). Gdy proces tworzy podproces, ten ostatni moe otrzyma swoje zasoby bezporednio od systemu operacyjnego bd zasoby podprocesu ulegaj zaweniu do podzbioru zasobw procesu macierzystego. Proces macierzysty moe rozdziela wasne zasoby midzy procesy potomne albo powodowa, e niektre zasoby (np. pami lub pliki) bd przez potomkw uytkowane wsplnie. Ograniczenie zasobw procesu potomnego do podzbioru zasobw procesu macierzystego zapobiega nadmiernemu rozmnaaniu" procesw, ktre mogoby prowadzi do przecienia systemu. W uzupenieniu rozmaitych fizycznych i logicznych zasobw, ktre proces otrzymuje w chwili powstania, mog do niego dotrze -jako do potomka - dane pocztkowe (wejcie) okrelone przez jego twrc. Rozwamy na przykad proces, ktrego zadaniem jest wywietlenie na ekranie terminalu stanu pliku - powiedzmy Fl. Podczas tworzenia proces taki otrzyma od swojego procesu macierzystego dan wejciow bdc nazw pliku Fl, ktr posuy si do uzyskania potrzebnych informacji. Moe on take otrzyma nazw urzdzenia wyjciowego. Niektre systemy operacyjne przekazuj

4

Rozdzia l

Wstp

Kompilator

Asembler

Edytor tekstu Programy uytkowe

Baza danych

System operacyjny

Lj

Sprzt komputerowy

Rys. 1.1 Abstrakcyjne wyobraenie elementw systemu komputerowego

Sprzt (ang. hardware), czyli: procesor - zwany te jednostk centraln* (ang. centralprocessing unit - CPU), pami i urzdzenia wejcia-wyjcia, to podstawowe zasoby systemu komputerowego. Programy uytkowe (aplikacje) - kompilatory, systemy baz danych, gry komputerowe lub programy handlowe - okrelaj sposoby uycia tych zasobw do rozwizania zada stawianych przez uytkownikw. Zazwyczaj istnieje wielu rnych uytkownikw (ludzie, maszyny, inne komputery) zmagajcych si z rozwizywaniem rnych zada. Odpowiednio do rozmaitych potrzeb moe istnie wiele rnych programw uytkowych. System operacyjny nadzoruje i koordynuje posugiwanie si sprztem przez rne programy uytkowe, ktre pracuj na zlecenie rnych uytkownikw. System operacyjny jest podobny do rzdu. W skad systemu komputerowego wchodz: sprzt, oprogramowanie i dane. System operacyjny dostarcza rodkw do waciwego uycia tych zasobw w dziaajcym systemie komputerowym. Podobnie jak rzd, system operacyjny nie wykonuje sam adnej uytecznej funkcji. Po prostu tworzy rodowisko (ang. emironmeni), w ktrym inne programy mog wykonywa poyteczne prace. Moemy uwaa system operacyjny za dystrybutora zasobw (alokator zasobw; ang. resource allocator). System komputerowy ma wiele zasobw* Obu terminw uywamy zamiennie. - Przyp. tum.

1.1 Co to jest system operacyjny?

(sprzt i oprogramowanie), ktre mog by potrzebne do rozwizania zadania: czas procesora, obszar w pamici operacyjnej lub w pamici plikw, urzdzenia wejcia-wyjcia itd. System operacyjny peni funkcj zarzdcy owych dbr i przydziela je poszczeglnym programom i uytkownikom wwczas, gdy s one nieodzowne do wykonywania zada. Poniewa czsto moe dochodzi do konfliktw przy zamawianiu zasobw, system operacyjny musi decydowa o przydziale zasobw poszczeglnym zamawiajcym, majc na wzgldzie wydajne i harmonijne dziaanie caego systemu komputerowego. Nieco inne spojrzenie na system operacyjny jest zwizane z zapotrzebowaniem na sterowanie rozmaitymi urzdzeniami wejcia-wyjcia i programami uytkownika. System operacyjny jest programem sterujcym (ang. control program}. Program sterujcy nadzoruje dziaanie programw uytkownika, przeciwdziaa bdom i zapobiega niewaciwemu uyciu komputera. Zajmuje si zwaszcza obsugiwaniem i kontrolowaniem pracy urzdze wejcia-wyjcia. Nie ma wszake w peni adekwatnej definicji systemu operacyjnego. Istnienie systemw operacyjnych jest uzasadnione tym, e umoliwiaj one rozsdne rozwizywanie problemu kreowania uytecznego systemu obliczeniowego. Podstawowym celem systemw komputerowych jest wykonywanie programw uytkownika i uatwianie rozwizywania stawianych przez uytkownika problemw. Do spenienia tego celu konstruuje si sprzt komputerowy. Poniewa posugiwanie si samym sprztem nie jest szczeglnie wygodne, opracowuje si programy uytkowe. Rozmaite programy wymagaj pewnych wsplnych operacji, takich jak sterowanie prac urzdze wejcia-wyjcia. Wsplne funkcje sterowania i przydzielania zasobw gromadzi si zatem w jednym fragmencie oprogramowania - systemie operacyjnym. Nie ma rwnie uniwersalnie akceptowanej definicji tego, co jest, a co nie jest czci systemu operacyjnego. Przyjmuje si w uproszczeniu, e naley wzi pod uwag to wszystko, co dostawca wysya w odpowiedzi na nasze zamwienie na system operacyjny". Jednake w zalenoci od rodzaju systemu zapotrzebowanie na pami oraz oferowane waciwoci bywaj bardzo zrnicowane. Istniej systemy zajmujce mniej ni l MB pamici (l MB to milion bajtw*), a jednoczenie nie wyposaone nawet w penoekranowy edytor, podczas gdy inne wymagaj setek megabajtw pamici oraz zawieraj takie udogodnienia jak korektory pisowni i cae systemy okien". Czciej spotykamy definicj, e system operacyjny jest to ten program, ktry dziaa w komputerze nieustannie (nazywany zazwyczaj jdrem), podczas gdy wszystkie inne s programami uytkowymi. Ta druga definicja jest popularniejsza od pierwszej i przy niej - oglnie biorc - pozostaniemy.* W punkcie 2.3.2 podano dokadniejsz definicj megabajta. - Przyp. tum.

Rozdzia l

Wstp

Prawdopodobnie atwiej definiowa systemy operacyjne okrelajc, co robi, anieli czym s. Najwaniejszym celem systemu operacyjnego jest wygoda uytkownika. Systemy operacyjne istniej, poniewa przyjmuje si, e atwiej z nimi ni bez nich korzysta z komputerw. Wida to szczeglnie wyranie wwczas, gdy przyjrzymy si systemom operacyjnym maych komputerw osobistych. Celem drugorzdnym jest efektywne dziaanie systemu komputerowego. Ten cel jest szczeglnie wany w rozbudowanych, wielodostpnych systemach z podziaem czasu. Systemy tego rodzaju s zazwyczaj kosztowne, jest wic podane, aby byy maksymalnie wydajne. Te dwa cele - wygoda i wydajno - s nieraz ze sob sprzeczne. W przeszoci osignicie wydajnoci byo czsto przedkadane nad wygod. Tote teoria systemw operacyjnych skupia si przede wszystkim na optymalnym wykorzystaniu zasobw komputerowych. Aby zobaczy, czym s i co robi systemy operacyjne, przeledmy ich rozwj na przestrzeni ostatnich 35 lat. Przygldajc si tej ewolucji, bdziemy mogli wyodrbni wsplne elementy systemw operacyjnych i zrozumie, jak oraz dlaczego systemy te rozwiny si wanie tak, a nie inaczej. Bardziej szczegowe omwienie perspektywy historycznej mona znale w rozdz. 24. Systemy operacyjne i architektura komputerw wywary na siebie wzajemnie znaczny wpyw. Aby uatwi posugiwanie si sprztem, zaczto rozwija systemy operacyjne. Wraz z postpami w projektowaniu i uytkowaniu systemw operacyjnych okazao si, e wprowadzenie zmian w sprzcie wpynoby na ich uproszczenie. Studiujc poniszy szkic historyczny, warto zwrci uwag, w jaki sposb problemy dotyczce systemw operacyjnych prowadziy do powstawania nowych rozwiza sprztowych.

1.2 Proste systemy wsadowePierwsze komputery byy wielkimi (fizycznie) maszynami obsugiwanymi za porednictwem konsoli. Popularnymi urzdzeniami wejciowymi byy czytniki kart i przewijaki tam. Na wyjciu najczciej mona byo spotka drukarki wierszowe, przewijaki tam i perforatory kart. Uytkownicy takich systemw nie wsppracowali bezporednio z systemem komputerowym. Przeciwnie, uytkownik przygotowywa zadanie, ktre skadao si z programu, danych i pewnych, charakteryzujcych zadanie informacji sterujcych (karty sterujce), po czym przedkada to wszystko operatorowi komputera. Zadanie znajdowao si zazwyczaj na kartach perforowanych. W pniejszym czasie (po minutach, godzinach lub dniach) pojawiay si informacje wyjciowe zawierajce wyniki dziaania programu, a niekiedy obraz jego pamici -jeli dziaanie programu zakoczyo si bdem.

1.2 Proste systemy wsadowe

operacyjny

Obszar programw uytkownika

Rys. 1.2 Wygld pamici operacyjnej prostego systemu wsadowego

Systemy operacyjne tych pierwszych komputerw byy zupenie proste. Podstawowym ich obowizkiem byo automatyczne przekazywanie sterowania od jednego zadania do nastpnego. System operacyjny rezydowa na stae w pamici operacyjnej (rys. 1.2). Aby przyspieszy przetwarzanie, zadania o podobnych wymaganiach grupowano razem i wykonywano w komputerze w formie tzw. wsadu (ang. batch). Programici zostawiali zatem programy operatorowi. Operator sortowa je w grupy o podobnych wymaganiach i z chwil, gdy komputer stawa si dostpny, przekazywa poszczeglne pakiety zada do wykonania. Informacje wyprowadzane przez kade z zada rozsyano odpowiednim autorom programw. Wsadowy system operacyjny czyta zwykle cay strumie odrbnych zada (np. za pomoc czytnika kart) - kade z odpowiednimi kartami sterujcymi, ktre okrelaj, co ma by w zadaniu zrobione. Po zakoczeniu zadania jego wyniki s zazwyczaj drukowane (np. na drukarce wierszowej). Wyrniajc cech systemu wsadowego jest brak bezporedniego nadzoru ze strony uytkownika podczas wykonywania zadania. Zadania s przygotowywane i przedkadane. Wyniki pojawiaj si po jakim czasie. Zwoka midzy przedoeniem zadania a jego zakoczeniem, czyli czas obiegu zadania* (ang. turnaround time), moe wynika z iloci oblicze lub by spowodowana opnieniem rozpoczcia zadania przez system. W takim rodowisku wykonywania programw jednostka centralna czsto pozostawaa bezczynna. Przyczyna tych przestojw wynikaa z szybkoci* Inaczej: czas cyklu przetwarzania. -Przyp. tum.

Rozdzia l

Wstp

dziaania mechanicznych urzdze wejcia-wyjcia, ktre z natury s powolniejsze od urzdze elektronicznych. Nawet niezbyt szybka jednostka centralna pracowaa w tempie mikrosekundowym, wykonujc tysice operacji na sekund. Natomiast szybki czytnik kart mg czyta 1200 kart na minut (17 kart na sekund). Rnica midzy szybkociami jednostki centralnej a urzdze wejcia-wyjcia moga by zatem wiksza ni trzy rzdy wielkoci. Z czasem, rzecz jasna, na skutek postpu w technice urzdzenia zewntrzne zaczy dziaa szybciej. Jednak szybko procesorw te wzrosa i to nawet bardziej. Problem w zwizku z tym nie zosta rozwizany, lecz nawet uleg pogbieniu. Pomocne okazao si tutaj wprowadzenie technologii dyskowej. Zamiast czyta karty za pomoc czytnika wprost do pamici, a nastpnie przetwarza zadanie, karty z czytnika kart s czytane bezporednio na dysk. Rozmieszczenie obrazw kart jest zapisywane w tablicy przechowywanej przez system operacyjny. Podczas wykonywania zadania zamwienia na dane wejciowe z czytnika kart s realizowane przez czytanie z dysku. Podobnie, gdy zadanie zamwi wyprowadzenie wiersza na drukark, wwczas dany wiersz bdzie skopiowany do bufora systemowego i zapisany na dysku. Po zakoczeniu zadania wyniki s rzeczywicie drukowane. Tej metodzie przetwarzania nadano nazw spooling (rys. 1.3), ktr utworzono jako skrt okrelenia simultaneous peripheral operation on-line" (jednoczesna, bezporednia praca urzdze). Spooling w istocie polega na tym, e uywa si dysku jako olbrzymiego bufora do czytania z maksymalnym wyprzedzeniem z urzdze wejciowych oraz do przechowywania plikw wyjciowych do czasu, a urzdzenia wyjciowe bd w stanieje przyj. Spooling jest take stosowany przy przetwarzaniu danych w instalacjach zdalnych. Jednostka centralna wysya dane przez cza komunikacyjne doDysk

Czytnik kart Rys. 1.3 Spooling

Drukarka wierszowa

1.3 Wieloprogramowane systemy wsadowe

zdalnej drukarki (albo przyjmuje cay pakiet zada ze zdalnego czytnika kart). Przetwarzanie zdalne odbywa si z wasn szybkoci, bez jakiejkolwiek interwencji ze strony jednostki centralnej. Procesor powinien by jedynie powiadomiony o zakoczeniu przetwarzania zdalnego, aby mg wysta nastpny pakiet danych. Spooling umoliwia nakadanie w czasie operacji wejcia-wyjcia jednego zadania na obliczenia innych zada. Nawet w prostym systemie procedura spooler moe czyta dane jednego zadania i rwnoczenie drukowa wyniki innego. W tym samym czasie moe by wykonywane jeszcze inne zadanie (lub zadania), ktre czyta swoje karty" z dysku i rwnie na dysku drukuje" wiersze swoich wynikw. Spooling wywar bezporedni, dobroczynny wpyw na zachowanie systemu. Kosztem pewnego obszaru pamici na dysku i niewielu tablic procesor mg wykonywa obliczenia jednego zadania rwnoczenie z operacjami wejcia-wyjcia dla innych zada. Dziki spoolingowi stao si moliwe utrzymywanie zarwno procesora, jak i urzdze wejcia-wyjcia w znacznie wikszej aktywnoci.

1.3 Wieloprogramowane systemy wsadoweZe spoolingiem jest zwizana bardzo wana struktura danych - pula zada (ang. job pool). Spooling powoduje, e pewna liczba zada jest zawczasu czytana na dysk, gdzie czeka gotowa do wykonania. Dziki istnieniu puli zada na dysku system operacyjny moe tak wybiera nastpne zadania do wykonania, aby zwikszy wykorzystanie jednostki centralnej. Przy zadaniach nadchodzcych wprost z kart lub nawet z tamy magnetycznej nie ma moliwoci wykonywania zada w dowolnym porzdku. Zadania musz by wykonane po kolei w myl zasady: pierwsze nadeszo - pierwsze zostanie obsuone. Natomiast gdy kilka zada znajdzie si na urzdzeniu o dostpie bezporednim -jak dysk, wwczas staje si moliwe planowanie zada (szeregowanie zada; ang. job scheduling). Planowanie zada i przydziau procesora omawiamy szczegowo w rozdz. 5. Tutaj podamy kilka istotnych aspektw tego zagadnienia. Najwaniejszym aspektem planowania zada jest moliwo wieloprogramowania. Praca porednia (ang. off-line operation) oraz spooling umoliwiajcy nakadanie operacji wejcia-wyjcia maj ograniczenia. Jeden uytkownik na og nie zdoa utrzyma cay czas w aktywnoci procesora lub urzdze wejcia-wyjcia. Dziki wieloprogramowaniu zwiksza si wykorzystanie procesora wskutek takiej organizacji zada, aby procesor mia zawsze ktre z nich do wykonania.

10

Rozdzia l

Wstp

Zadanie 1 Zadanie 2

Zadanie 3 Zadanie 4512 KB

Rys. 1.4 Wygld pamici w systemie wieloprogramowym

Idea jest nastpujca. W tym samym czasie system operacyjny przechowuje w pamici kilka zada (rys. 1.4). Ten zbir zada jest podzbiorem zada zgromadzonych w puli zada (gdy liczba zada, ktre mona jednoczenie przechowywa w pamici operacyjnej, jest na og znacznie mniejsza ni liczba zada, ktr moe pomieci pula). System operacyjny pobiera ktre z zada do pamici i rozpoczyna jego wykonywanie. Prdzej czy pniej zadanie to moe zacz oczekiwa na jak usug, na przykad na zamontowanie tamy lub na zakoczenie operacji wejcia-wyjcia. W systemie jednoprogramowym jednostka centralna musiaaby wwczas przej w stan bezczynnoci. W systemie wieloprogramowym mona po prostu przej do wykonywania innego zadania itd. Po jakim czasie pierwsze zadanie skoczy oczekiwanie i otrzyma z powrotem dostp do procesora. Dopki s jakie zadania do wykonania, dopty jednostka centralna nie jest bezczynna. Takie postpowanie jest typowe dla zwyczajnych sytuacji yciowych. Adwokat nie prowadzi na og sprawy tylko jednego klienta. Przeciwnie sprawy kilku klientw tocz si w tym samym czasie. Kiedy jeden pozew czeka na rozpraw lub sporzdzenie maszynopisw, wtedy adwokat moe pracowa nad innym przypadkiem. Przy wystarczajcej liczbie klientw adwokat nigdy si nie nudzi. (Bezczynni adwokaci maj skonnoci do zostawania politykami, tote utrzymywanie adwokatw w cigym zatrudnieniu ma pewne spoeczne znaczenie). Wieloprogramowanie jest pierwszym przypadkiem, w ktrym system operacyjny musi decydowa za uytkownikw. Wieloprogramowane systemy operacyjne s wic do skomplikowane. Wszystkie zadania wchodzce do systemu trafiaj do puli zada. Pula ta skada si ze wszystkich procesw pozostajcych w pamici masowej i czekajcych na przydzia pamici opera-

1.4 Systemy z podziaem czasu

11

cyjnej. Jeeli kilka zada jest gotowych do wprowadzenia do pamici operacyjnej, lecz brakuje dla wszystkich miejsca, to system musi wybiera spord nich. Podejmowanie takich decyzji jest planowaniem zada (szeregowaniem zada); omawiamy je w rozdz. 5. Wybrawszy ktre z zada z puli, system wprowadza je do pamici operacyjnej w celu wykonania. Przechowywanie wielu programw w pamici w tym samym czasie wymaga jakiego zarzdzania pamici - tym zajmujemy si w rozdz. 8 i 9. Ponadto, jeeli kilka zada jest gotowych do dziaania w tym samym czasie, to system musi wybra ktre z nich. Tego rodzaju decyzje s. planowaniem przydziau procesora (ang. CPU scheduling), ktre omawiamy w rozdz. 5. Ze wspbienego wykonywania wielu zada wynika te potrzeba ograniczania moliwoci ich wzajemnego zaburzania we wszystkich stadiach pobytu w systemie operacyjnym: w czasie planowania procesw, przydzielania pamici dyskowej i zarzdzania pamici operacyjn. Rozwaamy to w wielu miejscach w dalszej czci tekstu.

1.4 Systemy z podziaem czasuWieloprogramowane systemy wsadowe tworz rodowisko, w ktrym rozmaite zasoby systemowe (np. jednostka centralna, pami operacyjna, urzdzenia zewntrzne) s skutecznie uytkowane. Z punktu widzenia uytkownika system wsadowy jest jednak troch kopotliwy. Poniewa uytkownik nie moe ingerowa w zadanie podczas jego wykonywania, musi przygotowa karty sterujce na okoliczno wszystkich moliwych zdarze. W zadaniu wykonywanym krok po kroku nastpne kroki mog zalee od wczeniejszych wynikw. Na przykad uruchomienie programu moe zalee od powodzenia fazy kompilacji. Trudno przewidzie, co naley robi we wszystkich przypadkach. Inn wad jest konieczno statycznego testowania programw na podstawie ich migawkowych obrazw pamici. Programista nie moe na bieco zmienia programu w celu zaobserwowania jego zachowa. Dugi czas obiegu zadania wyklucza eksperymentowanie z programem. (I na odwrt - sytuacja taka moe powodowa zwikszenie dyscypliny przy pisaniu i testowaniu programu). Podzia czasu (inaczej wielozadaniowo; ang. multitasking) stanowi logiczne rozszerzenie wieloprogramowoci. Procesor wykonuje na przemian wiele rnych zada, przy czym przeczenia nastpuj tak czsto, e uytkownicy mog wspdziaa z kadym programem podczas jego wykonania. Interakcyjny lub bezporedni (ang. hands-on) system komputerowy umoliwia bezporedni dialog uytkownika z systemem. Uytkownik wydaje bezpo-

12

Rozdzia l

Wstp

rednio instrukcje systemowi operacyjnemu lub programowi i otrzymuje natychmiastowe odpowiedzi. Za wejcie suy zazwyczaj klawiatura, a jako wyjciowe - ekran (np. ekran monitora). Po wykonaniu jednego polecenia system szuka nastpnej instrukcji sterujcej" przekazywanej nie za porednictwem czytnika kart, lecz klawiatury uytkownika. Uytkownik wydaje polecenie, czeka na odpowied i o kolejnym poleceniu decyduje na podstawie wynikw poprzedniego polecenia. Uytkownik moe atwo eksperymentowa i natychmiast oglda rezultaty. Wikszo systemw ma interakcyjne edytory tekstw do wprowadzania programw i interakcyjne programy uruchomieniowe, uatwiajce usuwanie bdw z programw. Aby uytkownicy mogli wygodnie korzysta zarwno z danych, jak i z oprogramowania, powinien mie bezporedni dostp do systemu plikw (ang. on-linefile system). Plik (ang. file) jest zestawem powizanych informacji, zdefiniowanym przez jego twrc. Z grubsza biorc, w plikach pamita si programy (zarwno w postaci rdowej, jak i wynikowej) oraz dane. Pliki danych mog zawiera liczby, teksty lub mieszane dane alfanumeryczne. Pliki mog mie ukad swobodny, jak w plikach tekstowych, lub precyzyjnie okrelony format. Mwic oglnie, plik jest cigiem bitw, bajtw, wierszy lub rekordw, ktrych znaczenie jest okrelone przez jego twrc i uytkownika. System operacyjny urzeczywistnia abstrakcyjn koncepcj pliku, zarzdzajc takimi urzdzeniami pamici masowych jak tamy i dyski. Zazwyczaj pliki s zorganizowane w logiczne niepodzielne grupy, czyli katalogi (ang. directories), uatwiajce ich odnajdywanie i wykonywanie na nich dziaa. Poniewa do plikw ma dostp wielu uytkownikw, jest podane, by istnia nadzr nad tym, kto i w jaki sposb z nich korzysta. Systemy wsadowe s odpowiednie dla wielkich zada, ktrych wykonanie nie wymaga staego bezporedniego dozoru. Uytkownik moe przedoy zadanie i przyj pniej po wyniki; nie ma powodu, aby czeka na nie podczas wykonywania zadania. Zadania interakcyjne skadaj si z wielu krtkich dziaa, w ktrych rezultaty kolejnych polece mog by nieprzewidywalne. Czas odpowiedzi (ang. response time) powinien wic by krtki - co najwyej rzdu sekund. Systemy interakcyjne maj zastosowanie tam, gdzie oczekuje si szybkich odpowiedzi. Pierwsze komputery, przeznaczone dla jednego uytkownika, byy systemami interakcyjnymi. Rozumiemy przez to, e cay system pozostawa w bezporedniej dyspozycji programisty-operatora. Zapewniao to programicie wielk elastyczno i swobod w testowaniu i rozbudowywaniu programu. Ale, jak ju to zaobserwowalimy, taka organizacja powodowaa spore marnotrawstwo czasu wtedy, kiedy procesor czeka na jakie dziaania ze strony programisty-operatora. Ze wzgldu na wysok cen wczesnych komputerw przestoje jednostki centralnej byy niepodane. Aby ich unikn,

1.4 Systemy z podziaem czasu

13

skonstruowano systemy wsadowe. Przyczynio si to do usprawnienia uytkowania komputera z punktu widzenia wacicieli systemw komputerowych. Wprowadzenie systemw z podziaem czasu (ang. time-sharing systems) umoliwio interakcyjne uytkowanie systemu komputerowego po umiarkowanych kosztach. W systemie operacyjnym z podziaem czasu zastosowano planowanie przydziau procesora i wieloprogramowo, aby zapewni kademu uytkownikowi moliwo korzystania z maej porcji dzielonego czasu pracy komputera. Kady uytkownik ma przynajmniej jeden oddzielny program w pamici. Zaadowany do pamici operacyjnej i wykonywany w niej program przyjto nazywa procesem (ang. process). Wykonywanie procesu trwa zwykle niedugo i albo si koczy, albo powoduje zapotrzebowanie na operacj wejcia-wyjcia. Operacje wejcia-wyjcia mog przebiega w trybie konwersacyjnym, tzn. wyniki s wywietlane uytkownikowi na ekranie, a polecenia i dane - wprowadzane z klawiatury. Poniewa szybko interakcyjnego wejcia-wyjcia zaley od czowieka, moe ono zajmowa sporo czasu. Na przykad wejcie moe by ograniczone przez tempo pisania na maszynie; pi znakw na sekund jest dla ludzi du szybkoci, ale niezwykle ma dla komputera. Zamiast pozwala procesorowi na bezczynno, system operacyjny w takich przypadkach angauje go byskawicznie do wykonywania programu innego uytkownika. System operacyjny z podziaem czasu sprawia, e wielu uytkownikw dzieli (ang. share) rwnoczenie jeden komputer. Poniewa pojedyncze dziaania lub polecenia w systemie z podziaem czasu trwaj krtko, kademu uytkownikowi wystarcza may przydzia czasu jednostki centralnej. Dziki byskawicznym przeczeniom systemu od jednego uytkownika do drugiego, kady z nich odnosi wraenie, e dysponuje wasnym komputerem, cho w rzeczywistoci jeden komputer jest dzielony pomidzy wielu uytkownikw. Ide podziau czasu zaprezentowano ju w 1960 r., lecz ze wzgldu na trudnoci i koszty budowy systemy z podziaem czasu pojawiy si dopiero we wczesnych latach siedemdziesitych. W miar wzrostu popularnoci podziau czasu konstruktorzy systemw zaczli czy systemy wsadowe z systemami z podziaem czasu. Wiele systemw komputerowych, ktre pierwotnie zaprojektowano z myl o uytkowaniu w trybie wsadowym, zostao zmodyfikowanych w celu umoliwienia pracy z podziaem czasu. Na przykad system operacyjny OS/360 dla komputerw IBM, ktry by systemem wsadowym, poszerzono o moliwo korzystania z podziau czasu (ang. Time Sharing Option - TSO). W tym samym okresie systemy z podziaem czasu wzbogacano czsto o podsystemy wsadowe. Obecnie wikszo systemw umoliwia zarwno przetwarzanie wsadowe, jak i podzia czasu, chocia w ich podstawowych zaoeniach i sposobie uycia zwykle przewaa jeden z tych typw pracy.

14

Rozdzia l

Wstp

Systemy operacyjne z podziaem czasu s jeszcze bardziej zoone ni wieloprogramowe systemy operacyjne. Tak jak w wieloprogramowoci, w pamici operacyjnej naley przechowywa jednoczenie wiele zada, ktre potrzebuj pewnych form zarzdzania pamici i ochrony (rozdz. 8). Aby zagwarantowa akceptowalny czas odpowiedzi, zadania z pamici operacyjnej trzeba niekiedy odsya na dysk i wprowadza do niej z powrotem. Dysk staje si zapleczem dla pamici gwnej komputera. Popularn metod osigania tego celu jest pami wirtualna (ang. virtual memory), czyli technika umoliwiajca wykonywanie zadania nie mieszczcego si w caoci w pamici operacyjnej (rozdz. 9). Najbardziej widoczn zalet takiego rozwizania jest umoliwienie wykonania programw wikszych ni pami fizyczna. Ponadto powstaje tu abstrakcja pamici gwnej w postaci wielkiej, jednolitej tablicy, oddzielajca pami logiczn- ogldan przez uytkownika - od pamici fizycznej. Uwalnia to programistw od zajmowania si ograniczeniami pamiciowymi. Systemy z podziaem czasu musz te dostarcza bezporednio dostpnego systemu plikw (rozdz. 10 i 11). System plikw rezyduje w zbiorze dyskw, naley wic take zapewni zarzdzanie dyskami (rozdz. 13). Systemy z podziaem czasu musz te umoliwia dziaania wspbiene, a to wymaga przemylanych metod przydziau procesora (rozdz. 5). Aby zagwarantowa porzdek wykonywanych dziaa, w systemie musz istnie mechanizmy synchronizowania zada oraz komunikacji midzy nimi (rozdz. 6); system musi rwnie zapewnia, e zadania nie bd si zakleszcza*, nieustannie wzajemnie na siebie czekajc (rozdz. 7). Wieloprogramowo i praca z podziaem czasu s podstawowymi zagadnieniami dotyczcymi nowoczesnych systemw operacyjnych i stanowi gwny temat tej ksiki.

1.5 Systemy operacyjne dla komputerw osobistychZmniejszanie si cen sprztu spowodowao po raz wtry moliwo zbudowania systemu komputerowego przeznaczonego dla indywidualnych uytkownikw. Ten rodzaj systemw komputerowych zwyko si nazywa komputerami osobistymi (ang. personal computers - PC). Oczywicie, zmieniy si urzdzenia wejcia-wyjcia; pulpity przecznikw i czytniki kart zostay zastpione klawiaturami, podobnymi do maszyn do pisania, i myszkami. Drukarki wierszowe i perforatory kart ustpiy miejsca monitorom ekranowym i maym, szybkim drukarkom.* Z uwagi na aktualn norm terminologiczn obowizujc w WNT na okrelenie sytuacji, w ktrych dochodzi do blokad z udziaem wielu (co najmniej dwu) procesw, bdzie w tym przekadzie stosowany termin zakleszczenie". - Przyp. tum.

1.5 Systemy operacyjne dla komputerw osobistych

15

Komputery osobiste pojawiy si w latach siedemdziesitych. S to mikrokomputery, zdecydowanie mniejsze i tasze od systemw komputerw gwnych* (ang. mainframe). W pierwszym dziesicioleciu rozwoju komputerw osobistych stosowane w nich jednostki centralne byy pozbawione cech potrzebnych do ochrony systemu operacyjnego przed programami uytkowymi. Systemy operacyjne komputerw osobistych nie byy wic ani wielostanowiskowe, ani wielozadaniowe. Jednake cele tych systemw zmieniy si z upywem czasu - zamiast maksymalizowania wykorzystania procesora i urzdze zewntrznych pooono w nich nacisk na maksimum wygody uytkowania i szybkoci kontaktu z uytkownikiem. Do systemw takich zalicza si komputery PC pracujce pod nadzorem systemu Microsoft Windows i systemu Apple Macintosh. Pochodzcy z firmy Microsoft system operacyjny MS-DOS zosta zastpiony przez liczne atrakcje systemu Microsoft Windows, a firma IBM w miejsce systemu MS-DOS wprowadzia ulepszony system OS/2. System operacyjny Apple Macintosh przeniesiono na lepszy sprzt, dziki czemu ma on obecnie nowe cechy, takie jak pami wirtualna. W systemach operacyjnych mikrokomputerw skorzystano z rnych wzorw sprawdzonych podczas rozwoju systemw operacyjnych dla duych komputerw. W mikrokomputerach od samego pocztku zaadaptowano technik opracowan dla wikszych systemw operacyjnych. Jednak tanio sprztu mikrokomputerowego sprawia, e moe on by uytkowany przez indywidualne osoby, a wykorzystanie procesora przestaje mie doniose znaczenie. W zwizku z tym pewne rozwizania uzyskane przy tworzeniu systemw operacyjnych dla duych komputerw mog by nieodpowiednie dla systemw mniejszych. Na przykad ochrona plikw w komputerach osobistych moe okaza si zbdna. W zwizku z rozwojem tanich mikroprocesorw i pamici postawiono tez, e ich upowszechnienie spowoduje, i systemy operacyjne (i kursy szkoleniowe na ich temat) stan si zbdne. Trudno uwierzy w t przepowiedni. Przeciwnie - obnienie kosztu sprztu pozwala realizowa wzgldnie wyszukane koncepcje (takie jak podzia czasu bd pami wirtualna) w wikszej ni dotd liczbie systemw. Dzieje si wic tak, e spadek cen sprztu komputerowego, na przykad mikroprocesorw, zwiksza nasze zapotrzebowanie na rozumienie zasad dziaania systemw operacyjnych. Na przykad ochrona plikw nie wydaje si konieczna w oddzielnych komputerach osobistych, ale komputery te s czsto doczane do innych komputerw za pomoc linii telefonicznych lub lokalnych sieci komputero* Mwienie o komputerach mainframe jako o duych komputerach" moe obecnie odnosi si przede wszystkim do ich fizycznych rozmiarw, dlatego te stosujemy termin komputer gwny, dzi z kolei czsto nazywany w gwarze serwerem". - Przyp. tum.

16

Rozdzia l

Wstp

1960 1970 MULTICS Komputery ___!___ gwne Kompilatory Podzia \ Bra * czasu Wielodostpno oprogramowania \ Wsad \ \

1950

1980

1990

Systemy rozproszone Wieloprocesory

Monitory \ Tolerowanie awarii rezydentne ^gQQ 197o\UNIX 1980 1990 Minikomputery Brak Kompilatory \ oprogramowana Podzia wielodostpno Wieloprocesory Monitory rezydentne Mikrokomputeryczasu

\ \

Tolerowanie awariiUNIX

^

1970 1980\ Kompilatory^|nterakcyjno

1990

oprogramowania Monitory rezydentne Komputery sieciowe

Wieloprocesory

Wielodostpno

oprogramowania Kompilatory Rys. 1.5 Wdrwka cech i koncepcji systemw operacyjnych

wych. Jeli za inne komputery i inni uytkownicy mog mie dostp do plikw w komputerze osobistym, to ochrona plikw znw staje si niezbdn cech systemu operacyjnego. Brak takiej ochrony uatwi zoliwym programom niszczenie danych w systemach operacyjnych typu MS-DOS lub Macintosh. Programy takie mog si same powiela i gwatownie rozprzestrzenia jako robaki lub wirusy (ang. worms, viruses), czynic spustoszenie w caych instytucjach lub nawet sieciach komputerowych o zasigu wiatowym. Ochron i bezpieczestwo rozwaamy w rozdz. 19 i 20. Po przeanalizowaniu systemw operacyjnych dla duych komputerw i dla mikrokomputerw okazao si, e w istocie te cechy, ktre byy w swoim czasie dostpne tylko w komputerach gwnych, zaadaptowano te w mikrokomputerach. Te same koncepcje okazuj si odpowiednie dla rozmaitych klas komputerw: komputerw gwnych, minikomputerw i mikrokomputerw (rys. l .5). Dobrym przykadem przenoszenia koncepcji systemw operacyjnych jest system operacyjny MULTICS. System ten opracowano w latach 1965-1970 w Massachusetts Institute of Technology (MIT) jako narzdzie obliczeniowe. Dziaa na duym, zoonym komputerze gwnym GE 645. Wiele pomysw wprowadzonych do systemu MULTICS zastosowano nastpnie w firmie Bell

1.6 Systemy rwnolege

17

Laboratories (ktra bya jednym z partnerw opracowujcych MULTICS) przy projektowaniu systemu UNIX. System operacyjny UNIX powsta okoo 1970 r., pierwotnie dla minikomputera PDP-11 . Okoo 1980 r. rozwizania rodem z systemu UNIX stay si baz dla uniksopodobnych systemw operacyjnych przeznaczonych dla systemw mikrokomputerowych i pojawiy si w pniejszych systemach operacyjnych, takich jak Microsoft Windows NT, IBM OS/2 i Macintosh Operating System. W ten sposb pomysy zastosowane w wielkich systemach komputerowych przenikny z czasem do mikrokomputerw. W tym samym czasie, gdy oglnie przydatne cechy wielkich systemw operacyjnych poddawano odpowiednim ograniczeniom, aby lepiej dopasowa je do komputerw osobistych, opracowywano silniejsze, szybsze i bardziej wyszukane konstrukcje sprztowe. Osobista stacja robocza (ang. workstation), taka jak Sun, HP/Apollo lub IBM RS/6000, jest wielkim komputerem osobistym. Wiele uniwersytetw i przedsibiorstw dysponuje znaczn liczb stacji roboczych powizanych ze sob w lokalne sieci komputerowe. W miar unowoczeniania si sprztu i oprogramowania komputerw PC zanika linia podziau midzy nimi a stacjami roboczymi.

1.6 Systemy rwnolegeDzisiejsze systemy s w wikszoci jednoprocesorowe, tzn. maj tylko jedn, gwn jednostk centraln. Obserwuje si jednake zainteresowanie systemami wieloprocesorowymi (ang. multiprocessor systems). W systemach tego rodzaju pewna liczba procesorw cile wsppracuje ze sob, dzielc szyn komputera, zegar, a czasami pami i urzdzenia zewntrzne. Systemy takie nazywa si cile powizanymi (ang. tightly coupled). Istnieje kilka powodw uzasadniajcych budowanie takich systemw. Jednym z argumentw jest zwikszenie przepustowoci (ang. throughput). Zwikszajc liczb procesorw, moemy oczekiwa, e wiksz ilo pracy da si wykona w krtszym czasie. Jednak wspczynnik przyspieszenia przy n procesorach nie wynosi n, lecz jest od n mniejszy. Kiedy kilka procesorw wsppracuje przy wykonaniu jednego zadania, wtedy traci si pewn cz czasu na utrzymywanie waciwego dziaania wszystkich czci. Ten nakad w poczeniu z rywalizacj o zasoby dzielone powoduje zmniejszenie oczekiwanego zysku z zastosowania dodatkowych procesorw. Analogicznie, grupa wsppracujcych ze sob n programistw nie powoduje w-krotnego wzrostu wydajnoci pracy.Wedug innych rde (A. Tanenbaum) by/ompuW^DP-7. - Przyp. tum.;- -"*.--. waszczajcy. Jeli kolejka procesw gotowych do wykonania skada si z n procesw, a kwant czasu wynosi , to kady proces dostaje l/n czasu procesora porcjami, ktrych wielko nie przekracza q jednostek czasu. Na nastpny kwant czasu kady proces musi czeka nie duej ni (n - l ) x q jednostek czasu. Na przykad przy piciu procesach i kwancie czasu wynoszcym 20 ms kady proces dostaje po 20 ms co kade 100 ms. Wydajno algorytmu rotacyjnego w duym stopniu zaley od rozmiaru kwantu czasu. W jednym z dwu skrajnych przypadkw, gdy kwant czasu jest bardzo dugi (nieskoczony), metoda rotacyjna (RR) sprowadza si do polityki FCFS. Jeli kwant czasu jest bardzo may (powiedzmy - l p,s), to planowanie rotacyjne nazywa si dzieleniem procesora (ang. processor sharing); sprawia ono (teoretycznie) na uytkownikach wraenie, e kady z n procesw ma wasny procesor dziaajcy z l/n szybkoci rzeczywistego procesora. Pomys taki wykorzystano w firmie Control Data Corporation (CDC) do budowy w ramach jednego komputera 10 peryferyjnych procesorw i 10 kompletw sprztowych rejestrw. Sprzt ten wykonuje jeden rozkaz na jednym zbiorze rejestrw, po czym przechodzi do nastpnego zbioru rejestrw. Cykl w powtarza si, dajc w efekcie 10 wolniej dziaajcych procesorw zamiast jednego szybkiego. (W rzeczywistoci, poniewa procesor by znacznie szybszy od pamici, a kady rozkaz odwoywa si do pamici, procesory peryferyjne nie byy duo wolniejsze od pojedynczego procesora). W oprogramowaniu naley jednak wzi rwnie pod uwag wpyw przeczania kontekstu na zachowanie algorytmu rotacyjnego. Zamy, e mamy tylko jeden proces, ktrego faza procesora ma dugo 10 jednostek czasu. Jeli kwant czasu wynosi 12 jednostek, to dany proces skoczy si w czasie krtszym ni l kwant, nie wymagajc dodatkowej obsugi. Jeli

5.3 Algorytmy planowania

163

Czas procesu = 10

Kwant12

Przeczenia kontekstu

0

1

2

3

4

5

6

7

8

9 1 0

Rys. 5.4 Mniejszy kwant czasu zwiksza przeczanie kontekstu

kwant wyniesie 6 jednostek czasu, to proces bdzie ju potrzebowa dwu kwantw, a to spowoduje przeczanie kontekstu. Gdyby kwant czasu wynosi l jednostk czasu, nastpioby wwczas a dziewi przecze kontekstu, co musiaoby spowolni wykonanie procesu (rys. 5.4). Jest zatem wskazane, aby kwant czasu by dugi w porwnaniu z czasem przeczania kontekstu. Jeli czas przeczania kontekstu wynosi w przyblieniu 10% kwantu czasu, to okoo 10% czasu procesora traci si na przeczanie kontekstu. Od rozmiaru kwantu czasu zaley rwnie czas cyklu przetwarzania. Jak mona zobaczy na rys. 5.5, redni czas cyklu przetwarzania zbioru procesw niekoniecznie poprawia si ze wzrostem kwantu czasu. redni czas cyklu przetwarzania poprawia si na og wtedy, kiedy wikszo procesw koczy swoje kolejne fazy procesora w pojedynczych kwantach czasu. Na przykad przy trzech procesach, z ktrych kady ma dugo l O jednostek czasu, i kwancie o dugoci l jednostki czasu redni czas obiegu wyniesie 29. Natomiast przy kwancie czasu o dugoci 10 redni czas cyklu przetwarzania skrci si do 20. Po uwzgldnieniu czasu przeczania kontekstu redni czas cyklu przetwarzania bdzie wzrasta przy maych kwantach czasu, poniewa bd potrzebne czstsze przeczenia kontekstu. Jeli jednake kwant czasu jest za duy, to planowanie rotacyjne degeneruje si do schematu planowania JKCKS. Jako wyprbowan regu mona przyj, e 80% faz procesora po%vinno by krtszych ni jeden kwantu czasu. 5.3.5 Wielopoziomowe planowanie kolejek Osobn klas algorytmw planowania wytworzono na okoliczno sytuacji, w ktrych jest moliwe atwe zaliczenie procesw do kilku rnych grup. Na przykad powszechnie rozgranicza si procesy pierwszoplanowe (ang. fora-

164

Rozdzia 5

Planowanie przydziau procesora

1

2

3

4

5

6

7

Kwant czasu Rys. 5.5 redni czas cyklu przetwarzania zalety od kwantu czasu

growid), czyli interakcyjnc, oraz procesy drugoplanowe (ang. hackgrowid), inaczej - wsadowe. Te dwa rodzaje procesw, rnic si wymaganiami na czasy odpowiedzi, mog mie rne wymagania odnonie do planowania. Ponadto procesy pierwszoplanowe mog mie pierwszestwo (zewntrznie zdefiniowane) przed procesami drugoplanowymi. Algorytm wielopoziomowego planowania kolejek rozdziela kolejk procesw gotowych na osobne kolejki (rys. 5.6). W zalenoci od pewnych cech, jak rozmiar pamici, priorytet lub typ procesu, procesy zostaj na stale przypisane do jednej z tych kolejek. Kada kolejka ma wasny algorytm planujcy. Na przykad procesy pierwszoplanowe i drugoplanowe mog by ulokowane w osobnych kolejkach. Do kolejki procesw pierwszoplanowych mona zastosowa algorytm planowania rotacyjnego, a do kolejki procesw drugoplanowych mona zastosowa algorytm planowania przydziau procesora metod FCFS. Ponadto musi istnie jakie planowanie midzy kolejkami, na og realizowane za pomoc staopriorytetowcgo planowania z wywaszczeniami. Kolejka pierwszoplanowa moe na przykad mie bezwzgldny priorytet nad kolejk procesw wsadowych. Przypatrzmy si przykadowi wielopoziomowego algorytmu planowania piciu kolejek:

5.3 Algorytmy planowania

165

Najwyszy priorytet

f

Procesy interakcyjne ^^^B

Procesy redagowania interakeyjnego

n ^ w^

Procesy wsadowe

Lj^nm^Najniszy priorytet Rys. 5.6

Procesy studenckie

Wielopoziomowe planowanie kolejek

1. 2. 3. 4. 5.

Procesy systemowe Procesy interakcyjne Procesy redagowania interakeyjnego Procesy wsadowe Procesy studenckie

Kada kolejka ma bezwzgldne pierwszestwo przed kolejkami o niszych priorytetach. Na przykad aden proces z kolejki procesw wsadowych nie moe pracowa dopty, dopki kolejki procesw systemowych, interakcyjnych i interakeyjnego redagowania nie s puste. Gdyby jaki proces interakeyjnego redagowania nadszed do kolejki procesw gotowych w chwili, w ktrej procesor wykonywaby proces wsadowy, wtedy proces wsadowy zostaby wywaszczony. Inn moliwo daje operowanie przedziaami czasu midzy kolejkami. Kada kolejka dostaje pewn porcj czasu procesora, aby go rozplanowa midzy znajdujce si w niej procesy. Na przykad kolejka procesw pierwszoplanowych moe otrzyma 80% czasu procesora na planowanie jej procesw metod rotacyjn, a kolejka drugoplanowa - pozostae 20% czasu procesora do rozdysponowania midzy j e j procesy sposobem FCFS.

166

Ko/dzia5

Planowanie przydziau procesora

5.3.6 Planowanie wielopoziomowych kolejek ze sprzeniem zwrotnym Zazwyczaj w algorytmie wielopoziomowego planowania kolejek proces jest na stae przypisywany do kolejki w chwili jego wejcia do systemu. Procesy nie mog przemieszcza si midzy kolejkami. Jeli na przykad istniej osobne kolejki dla pierwszoplanowych i dla drugoplanowych procesw, to aden proces nie moe zmieni swego przyporzdkowania do okrelonego rodzaju kolejki i przej zjednaj kolejki do drugiej. Zalet takich ustale jest niski koszt planowania, wad za brak elastycznoci. Planowanie wielopoziomowych kolejek ze sprzeniem zwrotnym umoliwia w podobnych sytuacjach przemieszczanie procesw midzy kolejkami. Pomys polega na rozdzieleniu procesw o rnych rodzajach faz procesora. Jeli proces zuywa za duo czasu procesora, to zostanie przeniesiony do kolejki o niszym priorytecie. Postpowanie to prowadzi do pozostawienia procesw ograniczonych przez wejcie-wyjcie i procesw interakcyjnych w kolejkach o wyszych priorytetach. Podobnie, proces oczekujcy zbyt dugo w niskopriorytetowej kolejce moe zosta przeniesiony do kolejki o wyszym priorytecie. Taki sposb postarzania procesw zapobiega ich godzeniu. Rozwamy na przykad dziaanie planisty wielopoziomowej kolejki ze sprzeniem zwrotnym, zoonej z trzech kolejek ponumerowanych od O do 2 (rys. 5.7). Planista powoduje najpierw wykonanie wszystkich procesw 7. kolejki 0. Po oprnieniu kolejki O s wykonywane procesy z kolejki 1. Analogicznie, procesy z kolejki 2 nie bd wykonywane dopty, dopki kolejki O i l nie zostan oprnione. Proces, ktry nadejdzie do kolejki l, wywaszczy proces z kolejki 2. Z kolei proces nalecy do kolejki l zostanie wywaszczony przez proces nadchodzcy do kolejki 0.

Rys. 5.7 Kolejki wielopoziomowe ze sprzeniem zwrotnym

5.4 Planowanie wieloprocesorowc

167

Proces wchodzcy do kolejki procesw gotowych trafia do kolejki 0. W kolejce O proces dostaje kwant czasu wielkoci 8 ms. Jeli nie zostanie w tym czasie zakoczony, to bdzie przeniesiony na koniec kolejki 1. Gdy kolejka O si oprni, wwczas proces z czoa kolejki l dostanie kwant czasu rwny 16 ms. Jeli nie zdy ukoczy swej pracy w tym czasie, to zostanie wywaszczony i trafi do kolejki 2. Procesy w kolejce 2 s wykonywane w porzdku okrelonym metod FCFS i tylko wtedy, gdy kolejki O i l s puste. 'laki algorytm planowania daje najwyszy priorytet procesom, ktrych fazy procesora nie przekraczaj 8 ms. Nic czekaj one dugo na przydzia procesora, szybko kocz faz)' procesora i powracaj do faz wejcia-wyjcia. Procesy potrzebujce wicej ni 8 ms, lecz mniej ni 24 ms s take szybko obsugiwane, cho z niszym priorytetem ni procesy krtsze. Dugie procesy automatycznie wpadaj do kolejki 2 i s obsugiwane w porzdku FCFS w cyklach pracy procesora nic wykorzystanych przez procesy z kolejek O i l. Mwic oglnie, planista wielopoziomowych kolejek ze sprzeniem zwrotnym jest okrelony za pomoc nastpujcych parametrw: liczby kolejek; algorytmu planowania dla kadej kolejki; metody uytej do decydowania o awansowaniu procesu do kolejki o wyszym priorytecie; metody uytej do decydowania o zdymisjonowaniu procesu do kolejki o niszym priorytecie; metody wyznaczajcej kolejk, do ktrej trafia proces potrzebujcy obsugi.

Definicja planisty wielopoziomowych kolejek ze sprzeniem zwrotnym jest najoglniejszym algorytmem planowania przydziau procesora. Mona ten algorytm modyfikowa, dopasowujc go do projektu specyficznego systemu. Niestety, algorytm ten wymaga te okrelenia sposobu wybierania wartoci wszystkich parametrw definiujcych najlepszego planist. Wielopoziomowa kolejka /c sprzeniem zwrotnym jest schematem najoglniejszym, lecz take najbardziej zoonym.

5.4 Planowanie wieloprocesoroweDotychczas zajmowalimy si zagadnieniami planowania przydziau procesora w systemie jednoprocesorowym. Gdy jest dostpnych wiele procesorw, problem planowania ich pracy odpowiednio si komplikuje. Wyprbowano

168

Rozdzia 5

Planowanie przydziau procesora

wiele moliwoci i -jak mona to byo zaobserwowa przy planowaniu przydziau jednego procesora - adna z nich nie okazaa si najlepsza. Omwimy teraz pokrtce niektre z aspektw planowania wieloprocesorowego. (Pene ujcie tego zagadnienia wykracza poza ramy naszej ksiki). Skoncentrujemy si na systemach, ktrych procesory s identyczne (homogeniczne) pod wzgldem wykonywanych przez nie funkcji. W systemach takich do wykonania dowolnego procesu z kolejki mona uy dowolnego dostpnego procesora. W rozdziaach 15-18 przedstawimy systemy, w ktrych procesory s rne (systemy heterogeniczne); w takich systemach na danym procesorze mona wykona tylko te programy, ktre zosta}' przetumaczone na odpowiadajcy mu zbir rozkazw. Nawet w wieloprocesorze homogenicznym istniej niekiedy ograniczenia dotyczce przydziau procesorw. Rozwamy system, w ktrym urzdzenie wejcia-wyjcia jest podczone do jednego z procesorw za pomoc prywatnej szyny. Procesy chcce korzysta z tego urzdzenia musz trafia do tego procesora, w przeciwnym razie urzdzenie byoby dla nich niedostpne. Jeli mamy wiele jednakowych procesorw, to moemy zastosowa dzielenie obcie (ang. load sharing). Z kadym procesorem mona by zwiza oddzieln kolejk. Jednak w takim przypadku dochodzioby do tego, e procesor z pust kolejk byby bezczynny, podczas gdy inny procesor miaby nadmiar pracy. W celu zapobieenia tej sytuacji stosuje si wspln kolejk procesw gotowych do dziaania. Wszystkie procesy trafiaj do jednej kolejki i s przydzielane do dowolnego z dostpnych procesorw. W opisanym schemacie mona zastosowa jedn z dwu metod planowania. W pierwszej z nich kady procesor sam planuje swoje dziaanie. Kady procesor przeglda kolejk procesw gotowych, z ktrej wybiera proces do wykonania. Jak zobaczymy w rozdz. 6, jeli wiele procesorw prbuje korzysta ze wsplnej struktury danych i zmienia j, to kady z nich musi by oprogramowany nader starannie. Naley zadba, ahy dwa procesory nie wybray tego samego procesu, a take by nie giny procesy z kolejki. W drugiej metodzie unika si tych problemw dziki wybraniu jednego procesora do penienia funkcji planisty pozostaych procesorw, czyli utworzeniu struktury typu pan i suga" (nadrzdny-podlegy; ang. master-slave). W niektrych systemach struktura ta jest rozbudowana o krok dalej. Jeden procesor - serwer gwny - podejmuje wszystkie decyzje planistyczne, wykonuje operacje wejcia-wyjcia i inne czynnoci systemowe. Pozostae procesory wykonuj tylko kod uytkowy, 'lego rodzaju asymetryczne wieloprzetwarzanie (ang. asymmetric multiprocessing) jest znacznie prostsze od wieloprzetwarzania symetrycznego, poniewa dostp do systemowych struktur danych ma tylko jeden procesor, zaspokajajc zapotrzebowanie na dzielenie danych.

5.5 Planowanie w czasie rzeczywistym

169

5.5 Planowanie w c/asie rzeczywistymW rozdziale l dokonalimy przegldu systemw operacyjnych czasu rzeczywistego i omwilimy ich wzrastajce znaczenie. Kontynuujc tutaj to omwienie, przedstawiamy rodki suce do planowania w czasie rzeczywistym w ramach uniwersalnego systemu komputerowego. Programowanie w czasie rzeczywistym dzieli si na dwa rodzaje. Do wypeniania krytycznych zada w gwarantowanym czasie s potrzebne rygorystyczne systemy czasu rzeczywistego (ang. hord real-time systems). Oglnie mwic, proces jest dostarczany wraz z instrukcj okrelajc ilo czasu, ktrej wymaga on do zakoczenia dziaania lub wykonania operacji wejcia-wyjcia. Na podstawie tych danych planista akceptuje w proces, zapewniajc jego wykonanie na czas, lub odrzuca zlecenie jako niewykonalne. Okrela si to terminem rezerwacji zasobw (ang. resource resewation). Udzielenie takiej gwarancji wymaga, aby planista mia dokadne rozeznanie w czasie zuywanym przez wszelkiego rodzaju funkcje systemu operacyjnego, tote kadej operacji powinno si zagwarantowa maksymalny czas jej wykonania. Jak wykaemy w kilku nastpnych rozdziaach, zapewnienie takich gwarancji nie jest moliwe w systemie z pamici pomocnicz lub wirtualn, gdy w podsystemach tych wystpuj nieuniknione i nieprzewidywalne odchylenia czasu wykonania poszczeglnych procesw. Dlatego w skad rygorystycznych systemw czasu rzeczywistego wchodzi specjalne oprogramowanie, dziaajce na sprzcie przypisanym na stae do krytycznych procesw, i nie wystpuj w nich wszystkie waciwoci spotykane we wspczesnych komputerach i systemach operacyjnych. agodne systemy czasu rzeczywistego (ang. soft real-time systemy) s mniej restrykcyjne. Wymaga si w nich, aby procesy o decydujcym znaczeniu miay priorytet nad sabiej sytuowanymi. Chocia dodanie do systemu z podziaem czasu moliwoci przetwarzania w agodnie pojmowanym czasie rzeczywistym moe spowodowa niesprawiedliwy przydzia zasobw i zaowocowa wikszymi opnieniami lub nawet godzeniem niektrych procesw, jednak jest przynajmniej moliwe do osignicia, Otrzymujemy w wyniku uniwersalny system, mogcy rwnie obsugiwa urzdzenia multimedialne, realizowa szybkie funkcje graficzne i wykonywa rozmaite inne zadania, ktre nie dziaayby zadowalajco w rodowisku nie zapewniajcym moliwoci wykonywania oblicze w agodnym trybie czasu rzeczywistego. Implementacja agodnego trybu przetwarzania w czasie rzeczywistym wymaga starannego zaprojektowania planisty i powizanych z nim elementw systemu operacyjnego. Po pierwsze, system musi mie planowanie priorytetowe, a procesy dziaajce w czasie rzeczywistym musz mie najwyszy

170

Rozdziali

Planowanie przydziau procesora

priorytet. Priorytety procesw czasu rzeczywistego nie mog male z upywem czasu, niezalenie od tego, e moe to dotyczy priorytetw procesw wykonywanych poza trybem czasu rzeczywistego. Po drugie, opnienie ekspediowania procesw do procesora musi by mae. Im bdzie ono mniejsze, tym szybciej proces czasu rzeczywistego bdzie mg rozpocz dziaanie, poczynajc od chwili, w ktrej jest do niego gotowy. Spenienie pierwszego z tych wymaga jest stosunkowo proste. Moemy na przykad zakaza postarzania procesw w obecnoci procesw czasu rzeczywistego, zapewniajc niezmienno ich priorytetw. Bardziej skomplikowane jest natomiast spenienie drugiego wymagania. Trudno polega na tym, e w wielu systemach operacyjnych, w tym take w wikszoci wersji systemu UNIX, przed przeczeniem kontekstu naley poczeka do zakoczenia funkcji systemowej lub do zablokowania procesu z powodu operacji wejcia-wyjcia. Opnienie ekspedycji w takich systemach moe by znaczne, gdy niektre z funkcji systemowych s zoone, a pewne urzdzenia zewntrzne dziaaj powoli. Aby utrzyma opnienie ekspedycji na niskim poziomie, musimy zezwoli na wywaszczanie funkcji systemowych. Cel w mona osign k i l koma sposobami. Jeden z nich polega na wstawianiu do dugotrwaych funkcji systemowych tzw. punktw wywaszcze (ang. preemption poinls), w ktrych sprawdza si, czy jaki wysokopriorytetowy proces nie wymaga uaktywniania. Jeli tak jest, to nastpuje przeczenie kontekstu i dziaanie przerwanej funkcji systemowej podejmuje si dopiero po wykonaniu procesu o wysokim priorytecie. Punkty wywaszcze mona umieszcza tylko w bezpiecznych" miejscach jdra, tj. w takich, w ktrych nic s zmieniane struktury danych jdra. Pomimo zastosowania punktw wywaszcze opnienia ekspedycji mog by due, poniewa w praktyce do jdra mona doda niewiele takich punktw. Inna metoda wywaszczania polega na spowodowaniu, aby cale jdro byo wywaszczalnc. W celu zapewnienia poprawnoci dziaa wszystkie struktury danych jdra musz by chronione za pomoc rnorodnych mechanizmw synchronizacji, ktre s omwione w rozdz. 6. W tej metodzie jdro mona wywaszczy w dowolnej chwili, gdy wszystkie aktualizowane dane jdra s chronione przed zmianami za pomoc wysokopriorytetowego procesu. Tak metod zastosowano w systemie Solaris 2. Co si jednak stanie, jeli proces o wyszym priorytecie zechce przeczyta lub zmieni dane jdra w chwili, w ktrej korzysta z nich inny proces o niszym priorytecie? Wysokopriorytetowy proces musiaby czeka tl zakoczenie pracy procesu o niszym priorytecie. Sytuacja ta nosi nazwc odwrcenia priorytetw (ang. priority inversiori). W rzeczywistoci moe powsta acuch procesw korzystajcych z zasobw potrzebnych procesowi

5.5

Planowanie w czasie rzeczywistym

171

Zdar Lenie

Odpo wied na zdt renie

Przetwarzanie przerwania

Procgs osiga gotowo do dziaania * Opnienie ekspedycji ^ Wykonanie procesu w czasie rzeczywistym * Konflikty *- - Ekspedycja *

Czas Rys. 5.8 Opnienie ekspedycji

wysokopriorytetowemu. Ten problem mona rozwiza za pomocy protokou dziedziczenia priorytetw (ang. prinrity-inheritance pmtocot), w ktrym wszystkie owe procesy (tj. te ktre uywaj zasobw potrzebnych procesowi wysokopriorytetowemu) dziedzicz wysoki priorytet dopty, dopki nie przestan korzysta z zasobw bdcych przedmiotem sporu. Po skoczeniu dziaania tych procesw ich priorytety uzyskuj swoje pierwotne wartoci. Na rysunku 5.8 wida, co skada si na opnienie ekspedycji. Faza konfliktowa (ang. conflictphase) w opnieniu ekspedycji obejmuje trzy czci: 1. 2. 3. Wywaszczenie procesu dziaajcego w jdrze. Zwolnienie przez niskopriorytetowe procesy zasobw potrzebnych procesowi wysokopriorytetowemu. Przeczenie kontekstu z procesu biecego do procesu wysokopriorytetowego.

Jako przykad podamy, e w systemie Solaris 2 opnienie ekspedycji przy zakazie wywaszczania przekracza 200 ms. Natomiast po zezwoleniu na wywaszczanie opnienie w ekspediowaniu procesw do procesora maleje na og do 2 ms.

172

Rozdzia 5

Planowanie przydziau procesora

5.6 Ocena algorytmwJak wybra algorytm planowania przydziau procesora dla konkretnego systemu? Pokazalimy ju w p. 5.3, e istnieje wiele algorytmw planowania, z ktrych kady ma swoiste parametry, W rezultacie wybr algorytmu moe by trudny. Podstawowym problemem jest zdefiniowanie kryteriw stosowanych przy wyborze algorytmu. Jak powiedzielimy w p. 5.2, kryteria s czsto okrelane stopniem wykorzystania procesora, czasem odpowiedzi lub przepustowoci. Aby mc dokonywa wyboru algorytmu, naley najpierw okreli wzgldn wano tych miar. Pod uwag mona wzi kilka miar, takich jak: maksymalizacja wykorzystania procesora przy zaoeniu, e maksymalny czas odpowiedzi wyniesie l s; maksymalizacja przepustowoci w taki sposb, aby czas cyklu przetwarzania by (rednio) liniowo proporcjonalny do oglnego czasu wykonania.

Po zdefiniowaniu kryteriw wyboru zechcemy dokona oceny rnych algorytmw wzitych pod uwag. Istnieje kilka rnych metod oszacowa, ktre opisujemy w p. 5.6.1-5.6.4. 5.6.1 Modelowanie deterministyczne Jedna z gwnych klas metod oceniania algorytmw nosi nazw oceny analitycznej (ang. analytic evaluatifm). Dokonujc oceny analitycznej, uywa si danego algorytmu i obcienia systemu prac w celu wytworzenia wzoru lub wartoci oszacowujcych zachowanie algorytmu dla danego obcienia. Jedn z odmian oceny analitycznej jest tnodelfiwanie deterministyczne (ang. deterministic modeling). W metodzie lej przyjmuje si? konkretne, z gry okrelone obcienie robocze systemu i definiuje zachowanie kadego algorytmu \v warunkach tego obcienia. Zamy na przykad, e obcienie prac przedstawia si tak jak niej. Wszystkie procesy nadchodz w chwili O oraz maj zadane uporzdkowanie i wyraone w milisekundach fazy procesora: Proces J', P2I\Pi P*

Czas trwania fazy 10 29123 7

5.6 Ocena algorytmw

173

Dla tego zbioru procesw rozwaymy algorytmy planowania: FCFS, SJF i rotacyjny (o kwancie czasu rwnym 10 ms). Ktry algorytm da minimalny redni czas oczekiwania? Zgodnie z algorytmem FCFS procesy zostan wykonane w nastpujcym porzdku:

O

10

39

p,

42

p,

49

l

i;

61

Czas oczekiwania wyniesie O ms dla procesu P\, 10 ms dla procesu P2, 39 ms dla procesu Pj, 42 ms dla procesu I't i 49 ms dla procesu P5. Zatem redni czas oczekiwania jest rwny (0+10 + 39 + 42-1- 49)/5 = 28 ms. Zgodnie z niewywlaszczajcym planowaniem SJF procesy zostayby wykonane w porzdku:

O

r, \ P, l3

10

f,

20

l

P,

32

\

P2

61

Czas oczekiwania wyniesie 10 ms dla procesu P\, 32 ms dla procesu PI, O ms dla procesu P$, 3 ms dla procesu P4 i 20 ms dla procesu P5. Zatem redni czas oczekiwania jest rwny (10 + 32 + O + 3 + 20)/5 = 13 ms. W algorytmie rotacyjnym proces 7^, rozpoczwszy dziaanie, po 10 ms zostaje wywaszczony i wdruje na koniec kolejki:

O

10

20

P, \ P A23

30

40

50

52

61

Czas oczekiwania wynosi O ms dla procesu P,, 32 ms dla procesu Pt 20 ms dla procesu P3, 23 ms dla procesu Pt i 40 ms dla procesu P5. redni czas oczekiwania jest rwny (O + 32 + 20 + 23 + 40)/5 = 23 ms. Mona zauway, e w tym przypadku polityka SJF daje wynik czasu oczekiwania o ponad poow lepszy od planowania FCFS, a za pomoc algorytmu RR uzyskuje si warto poredni. Modelowanie deterministyczne jest proste i szybkie. Daje dokadne liczby, pozwalajc na porwnywanie algorytmw. Jednake wymaga ono dokadnych liczb na wejciu, a uzyskiwane odpowiedzi odnosz si tylko do zadanych przypadkw. Modelowanie deterministyczne znajduje gwnie zastosowanie w opisywaniu algorytmw planowania i dostarczaniu przykadw. W przypadkach stale powtarzajcego si wykonywania tych samych programw, przy moliwoci dokadnego pomiaru wymaga zwizanych z ich przetwarzaniem, modelowanie deterministyczne moe by wykorzystane do

174

Rozdzia 5

Planowanie przydziau procesora

wyboru algorytmu planowania. Po zastosowaniu do zbioru przykadw modelowanie deterministyczne moe wykaza tendencje, ktre moemy osobno analizowa i dowodzi. Mona na przykad wykaza, e w opisanych warunkach (wszystkie procesy i ich czasy s znane w chwili 0) algorytm SJF da zawsze minimalny czas oczekiwania. Modelowanie deterministyczne dotyczy jednake zbyt specyficznych sytuacji i wymaga zbyt wiele dokadnej wiedzy, aby mogo zasugiwa na miano oglnie uytecznego. 5.6.2 Modele obsugi kolejek Procesy wykonywane w rnych systemach zmieniaj si z dnia na dzie, wic trudno jest mwi o statycznym zbiorze procesw (i pomiarw czasu), ktry mgby posuy do modelowania deterministycznego. Moliwe jest wszake ustalenie rozkadw faz procesora i wejcia-wyjcia. Rozkady te mona mierzy, a potem przyblia l u b po prostu oszacowywa. Wynikiem jest wzr matematyczny opisujcy prawdopodobiestwo wystpienia poszczeglnych faz procesora. Na og jest to rozkad wykadniczy i takimi rodkami jest opisywany. Jest tu rwnie potrzebny rozkad czasw przybywania procesw do systemu. Na podstawie tych dwu rozkadw mona obliczy redni przepustowo, wykorzystanie procesora, czas oczekiwania ilp. dane dla wikszoci algorytmw. System komputerowy mona opisa jako sie usugodawcw, czyli serwerw. Kady serwer ma kolejk czekajcych procesw. Serwerem jest zarwno procesor z kolejk procesw gotowych do wykonania, jak i system wejcia-wyjcia z kolejkami do urzdze. Znajc tempo nadchodzenia zamwie i czasy wykonywania usug, mona obliczy wykorzystanie procesora, rednie dugoci kolejek, rednie czasy oczekiwania ild. Badania te nale do analizy obsugi kolejek w sieciach (ang. (jueuing-network anafysis). Na przykad niech n bdzie redni dugoci kolejki (nie liczc procesu aktualnie obsugiwanego), niech W oznacza redni czas oczekiwania w kolejce, a A. niech symbolizuje tempo przybywania nowych procesw do kolejki (np. trzy procesy na sekund). Mona wwczas przypuszcza, e w czasie W, w cigu ktrego proces czeka, w kolejce pojawi si A x W7 nowych procesw. Jeli system ma by ustabilizowany, to liczba procesw opuszczajcych kolejk musi si rwna lic/bic procesw przybywajcych do niej, czylin = /l x W.

Powysza rwno jest znana pod nazw wzoru Liltle 'a. Wzr Little'a jest wyjtkowo uyteczny, poniewa obowizuje dla dowolnego algorytmu planowania i rozkadu przyby.

5.6 Ocena algorytmw

175

Wzoru Little'a mona uy do obliczenia jednej z trzech wystpujcych w nim zmiennych, jeli s znane dwie pozostae. Jeeli na przykad wiadomo, e \v kadej sekundzie przybywa (rednio) 7 procesw oraz e w kolejce zazwyczaj znajduje si 14 procesw, to mona obliczy, e redni czas oczekiwania bdzie wynosi 2 s na proces. Analizowanie kolejek mona z powodzeniem stosowa do porwnywania algorytmw, ale i ta metoda ma swoje ograniczenia. W chwili obecnej mao jest klas algorytmw i rozkadw, ktrymi mona by si zaj. Matematyczne opracowanie skomplikowanych algorytmw lub rozkadw moe by trudne. Tote rozkady przyby i obsugi s czsto definiowane w sposb, ktry pozwala opracowa je matematycznie, ale jest nierealistyczny. Na ogl jest przy tym potrzebna pewna liczba niezalenych zaoe, ktre mog by niedokadne. Cho zatem mona za ich pomoc obliczy odpowiedzi, modele obsugi kolejek s czsto tylko przyblieniami rzeczywistych systemw. Wskutek tego dokadno obliczanych wynikw moe by wtpliwa. 5.6.3 Symulacje Aby otrzyma dokadniejsz ocen algorytmw planowania, mona zastosowa symulacj. W tym celu trzeba zaprogramowa model systemu komputerowego. Zaprogramowane struktury danych s gwnymi czciami takiego systemu. Symulator ma zmienn reprezentujc zegar; w miar przyrostu wartoci tej zmiennej symulator zmienia stan systemu, aby odzwierciedla prac urzdze, procesw i planisty. Podczas wykonywania programu symulacji gromadzi si i drukuje dane statystyczne obrazujce dziaanie algorytmu. Dane do sterowania przebiegiem symulacji mona wygenerowa kilkoma sposobami. W najczciej uywanej metodzie stosuje si generator liczb losowych, z ktrego korzysta si w programie symulatora do tworzenia procesw, okrelania czasw trwania faz procesora, przyby, odej itd. - zgodnie z rozkadami prawdopodobiestw. Rozkady mona definiowa matematycznie (rwnomierny, wykadniczy, Poissona) lub dowiadczalnie. Jeli rozkad ma by zdefiniowany dowiadczalnie, to dokonuje si pomiarw w badanym systemie. Otrzymywane wyniki s uywane do definiowania faktycznych rozkadw zdarze w rzeczywistym systemie, a te z kolei su potem do sterowania symulacj. Symulacja sterowana rozkadami moe by niedokadna z powodu zwizkw zachodzcych midzy kolejnymi zdarzeniami w rzeczywistym systemie. Rozkad czstoci pokazuje tylko liczby poszczeglnych zdarze, nie mwic nic o porzdku ich wystpowania. Do poprawienia tej usterki mona uy tam ladw (ang. trac lapes). Tama ladu powstaje w wyniku nadzorowania rzeczywistego systemu i zapisywania faktycznej kolejnoci

176

Rozdzia 5

Planowanie przydziau procesora

Rys. 5.9 Ocena planistw przydziau procesora za pomoc symulacji

zdarze (rys. 5.9). Sekwencji takiej uywa si pniej do sterowania przebiegiem symulacji. Tamy ladw wietnie nadaj si do porwnywania dwu algorytmw dla takiego samego zbioru rzeczywistych danych. Metoda ta pozwala uzyska dokadne wyniki dla zadanych danych wejciowych. Symulacje mog by kosztowne i wymaga czsto wielu godzin pracy komputera. Bardziej szczegowa symulacja dostarcza dokadniejszych wynikw, lecz rwnie powoduje zuycie wikszej iloci czasu komputera. W dodatku tamy ladw pochaniaj olbrzymie iloci pamici. Rwnie projektowanie, kodowanie i sprawdzanie poprawnoci symulatora moe by niebagatelnym zadaniem. 5.6.4 Implementacja Nawet symulacja ma ograniczon dokadno. Jedynym sposobem na osignicie cakowicie dokadnej oceny algorytmu planowania jest zakodowanie go, wczenie do badanego systemu operacyjnego i przypatrzenie si jego pracy. To podejcie zakada wmontowanie danego algorytmu do rzeczywistego systemu i oszacowanie w rzeczywistych warunkach operacyjnych. Podstawow trudnoci przy zastosowaniu tej metody jest jej koszt. Wydatki s zwizane nie tylko z zakodowaniem algorytmu i dostosowaniem do niego systemu operacyjnego i jego struktur danych, lecz take z reakcj uytkownikw

5.7 Podsumowanie

177

na cigle zmieniajcy si system operacyjny. Wikszoci uytkownikw nic zaley na budowie lepszego systemu operacyjnego; potrzeba im po prostu, aby ich procesy byy wykonywane i by mogli uzyskiwa wyniki. Stale zmieniajcy si system operacyjny nie pomaga uytkownikom w osiganiu ich celw. Inn trudnoci, wystpujc przy kadym oszacowaniu algorytmu, jest zmieniajce si rodowisko, w ktrym si go uywa. rodowisko to zmienia si nie tylko ze zwykych powodw, takich jak powstawanie nowych programw i zmiany rodzajw stawianych problemw, lecz rwnie wskutek zachowania si planisty. Jeli bd preferowane krtkie procesy, to uytkownicy mog zacz dzieli wiksze procesy na zbiory mniejszych procesw. Gd