Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji...

70
Plan wykladu Jeszcze jedna definicja systemu operacyjnego Podsystemy Uslugi Wywolania systemowe Programy systemowe Struktury jądra Projekt i implementacja Systemy Operacyjne - struktura Arkadiusz Chrobot Katedra Systemów Informatycznych, Politechnika Świętokrzyska w Kielcach Kielce, 19 października 2020 Arkadiusz Chrobot Systemy Operacyjne - struktura

Transcript of Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji...

Page 1: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Systemy Operacyjne - struktura

Arkadiusz Chrobot

Katedra Systemów Informatycznych, Politechnika Świętokrzyska w Kielcach

Kielce, 19 października 2020

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 2: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Plan wykładu

1 Jeszcze jedna definicja systemu operacyjnego2 Elementy (podsystemy) systemu operacyjnego3 Usługi systemu operacyjnego4 Wywołania systemowe5 Programy systemowe6 Struktury jądra sytemu operacyjnego7 Projektowanie i implementacja systemu operacyjnego

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 3: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Plan wykładu

1 Jeszcze jedna definicja systemu operacyjnego2 Elementy (podsystemy) systemu operacyjnego3 Usługi systemu operacyjnego4 Wywołania systemowe5 Programy systemowe6 Struktury jądra sytemu operacyjnego7 Projektowanie i implementacja systemu operacyjnego

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 4: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Plan wykładu

1 Jeszcze jedna definicja systemu operacyjnego2 Elementy (podsystemy) systemu operacyjnego3 Usługi systemu operacyjnego4 Wywołania systemowe5 Programy systemowe6 Struktury jądra sytemu operacyjnego7 Projektowanie i implementacja systemu operacyjnego

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 5: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Plan wykładu

1 Jeszcze jedna definicja systemu operacyjnego2 Elementy (podsystemy) systemu operacyjnego3 Usługi systemu operacyjnego4 Wywołania systemowe5 Programy systemowe6 Struktury jądra sytemu operacyjnego7 Projektowanie i implementacja systemu operacyjnego

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 6: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Plan wykładu

1 Jeszcze jedna definicja systemu operacyjnego2 Elementy (podsystemy) systemu operacyjnego3 Usługi systemu operacyjnego4 Wywołania systemowe5 Programy systemowe6 Struktury jądra sytemu operacyjnego7 Projektowanie i implementacja systemu operacyjnego

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 7: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Plan wykładu

1 Jeszcze jedna definicja systemu operacyjnego2 Elementy (podsystemy) systemu operacyjnego3 Usługi systemu operacyjnego4 Wywołania systemowe5 Programy systemowe6 Struktury jądra sytemu operacyjnego7 Projektowanie i implementacja systemu operacyjnego

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 8: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Plan wykładu

1 Jeszcze jedna definicja systemu operacyjnego2 Elementy (podsystemy) systemu operacyjnego3 Usługi systemu operacyjnego4 Wywołania systemowe5 Programy systemowe6 Struktury jądra sytemu operacyjnego7 Projektowanie i implementacja systemu operacyjnego

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 9: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Plan wykładu

1 Jeszcze jedna definicja systemu operacyjnego2 Elementy (podsystemy) systemu operacyjnego3 Usługi systemu operacyjnego4 Wywołania systemowe5 Programy systemowe6 Struktury jądra sytemu operacyjnego7 Projektowanie i implementacja systemu operacyjnego

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 10: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

System operacyjny-inne spojrzenie

Podobnie jak nie ma jednoznacznej definicji czym jest system operacyjny,tak nie ma jednoznacznej definicji co nim jest. Termin system operacyj-ny może oznaczać „to co dostarcza producent jako system operacyjny”i obejmować swoim znaczeniem zbiór takich elementów oprogramowaniajak: jądro systemu, interpreter poleceń, edytory tekstu itd. Może równieżokreślać część oprogramowania systemowego stale rezydującą w pamięcioperacyjnej komputera i wykonywaną w trybie monitora procesora, czylijądro systemu operacyjnego. W trakcie tego wykładu system operacyjnybędziemy definiować zgodnie z tą drugą możliwością. Wszelkie odstępstwaod tej definicji będą sygnalizowane.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 11: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

Elementy systemu operacyjnego

Choć istnieje wiele systemów operacyjnych, to można wyróżnić pewnewspólne elementy, które prawie każdy z nich zawiera. Zaliczają się do nich:

1 podsystem zarządzania procesami,2 podsystem zarządzania pamięcią operacyjną,3 podsystem zarządzania pamięcią pomocniczą,4 podsystem wejścia-wyjścia,5 system plików,6 podsystem obsługi sieci,7 ochrona,8 interpretator poleceń,

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 12: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

Procesy

Każda praca jest wykonywana w komputerze w ramach procesu. W szcze-gólności każdy uruchomiony program użytkownika jest procesem lub grupąprocesów. Aby wykonać swoje zadania procesy muszą dysponować określo-nymi zasobami. Te zasoby udostępnia im system operacyjny. Do jego zadańnależy również ochrona zasobów przed nieprawidłowym użyciem ich przezprocesy. Pojedynczy proces jest wykonywany sekwencyjnie, natomiast kil-ka procesów może być wykonywanych współbieżnie. Koordynacja takiegowykonania jest również zadaniem systemu operacyjnego.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 13: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

Obsługa procesów

Czynności, które system operacyjny wykonuje zarządzając procesami obej-mują:

tworzenie i usuwanie procesów użytkowników i systemowych,

wstrzymywanie i wznawianie wykonania procesów,

zapewnianie możliwości synchronizacji procesów,

zapewnianie środków komunikacji między procesami,

zapewnienie mechanizmów obsługi zakleszczeń (nieobowiązkowe).

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 14: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

Pamięć operacyjna

Pamięć operacyjna stanowi główny magazyn danych dla procesora. Możnają zobrazować, jako tablicę komórek o wielkości 1 bajta (najpopularniej-sze rozwiązanie). Każda z tych komórek posiada swój unikatowy adres.Do pamięci operacyjnej bezpośredni1 dostęp ma procesor oraz urządzeniaobsługiwane w trybie DMA. Ponieważ pamięć operacyjna, jak każda innama skończoną wielkość, więc zarządzanie nią jest ważnym zdaniem sys-temu operacyjnego. Ma to szczególne znaczenie zwłaszcza w systemachwielozadaniowych.

1W przypadku nowszych komputerów to stwierdzenie nie do końca jest prawdziwe,a to za sprawą pamięci podręcznej (ang. cache).

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 15: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

Obsługa pamięci operacyjnej

System operacyjny wykonuje następujące czynności w stosunku do pamięcioperacyjnej:

utrzymuje ewidencję obszarów pamięci, które są w danej chwilizajęte, wraz z informacją do kogo one należą,

decyduje o tym, które procesy zostaną umieszczone w wolnychobszarach pamięci,

przydziela i zwalnia obszary pamięci, w zależności odzapotrzebowania.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 16: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

Pamięć pomocnicza

Pamięć pomocnicza (ang. external memory) realizowana jest w postaci pa-mięci dyskowej i stanowi uzupełnienie pamięci operacyjnej, która może sięokazać niewystarczająca dla procesów użytkownika. Ponieważ dysk twardyjest jednostką wolniejszą od pamięci RAM, to konieczne jest efektywnezarządzanie pamięcią pomocniczą.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 17: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

Zarządzanie pamięcią pomocniczą

Do obowiązków systemu operacyjnego, jako zarządcy pamięci pomocniczejnależy:

zarządzanie obszarami wolnymi,

przydzielanie pamięci pomocniczej,

planowanie przydziału obszarów pamięci dyskowej.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 18: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

System wejścia-wyjścia

Jednym z naczelnych zadań systemu operacyjnego jest ochrona urządzeńperyferyjnych przed nieprawidłowym ich użyciem przez procesy użytkowni-ka. Efektem tej ochrony jest ukrycie przed procesami użytkownika szczegó-łów obsługi tych urządzeń. Ma to dodatkową zaletę - zwiększa elastycznośćsystemu. Opisany na poprzednim wykładzie system przerwań pozwala skon-struować wydajny system wejścia-wyjścia. Większość ze współczesnych sys-temów operacyjnych łączy obsługę urządzeń zewnętrznych z obsługą pli-ków.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 19: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

Zarządzanie urządzeniami wejścia-wyjścia

System operacyjny tworzy warstwę abstrakcji ułatwiającą procesom użyt-kownika korzystanie z urządzeń zewnętrznych, która może składać się z np.:

systemu buforowo-notatnikowego,

interfejsu do podprogramów obsługi urządzeń peryferyjnych,

podprogramu obsługi urządzeń peryferyjnych.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 20: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

Pliki

Zawartość pamięci operacyjnej jest ulotna, tzn. przestaje istnieć wraz z wy-łączeniem zasilania. Ważne informacje, w tym dane i programy powin-ny więc zostać zapamiętane na nośnikach, które pozwalają je przechowaćw sposób trwały. Istnieje wiele urządzeń, które mogą służyć jako pamięćmasowa. Każde z tych urządzeń ma specyficzną budowę i sposób obsłu-gi. Aby ujednolicić dla procesów użytkownika sposób korzystania z tychurządzeń system operacyjny tworzy system plików. Plik jest jednostką in-formacji, która nie jest zależna do specyfiki nośnika na którym jest prze-chowywana. Struktura plików zależy od ich twórców. Do przechowywaniainformacji o plikach i ich porządkowania służą katalogi. Niektóre syste-my operacyjne implementują katalogi jako specjalny rodzaj plików (plikigromadzące informacje - metadane - o innych plikach).

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 21: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

Zarządzanie plikami i katalogami

System operacyjny nie tylko tworzy system plików, ale również jest odpo-wiedzialny za:

tworzenie i usuwanie plików,

tworzenie i usuwanie katalogów,

dostarczanie podstawowych operacji do manipulowania plikamii katalogami,

odwzorowywanie całości, lub części plików w pamięci operacyjnej,

umieszczenie plików w pamięci trwałej.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 22: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

Sieć

Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych. Sieci mogą mieć różny zasięg i różne topologie. Systemy kompute-rowe połączone w sieć mogą być jednakowego typu (sieć homogeniczna)lub różnych typów (sieć heterogeniczna).

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 23: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

Obsługa sieci

W ramach obsługi sieci system operacyjnych może wykonywać następująceczynności:

wyznaczanie tras pakietów,

translacja nazw komputerów połączonych w sieć,

dzielenie i scalanie pakietów,

nawiązywanie i kończenie połączeń,

obsługa błędów transmisji.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 24: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

System ochrony

Ochrona nie jest jednym spójnym mechanizmem, ale paradoksalnie jestniezbędna do zapewnienia spójności i stabilności działania systemu kom-puterowego. W skład tego „podsystemu” wchodzą środki pozwalające wy-krywać próby nieupoważnionego dostępu do zasobów oraz im zapobiegać.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 25: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Zarządzanie procesamiZarządzanie pamięcią operacyjnąZarządzanie pamięcią pomocnicząZarządzanie urządzeniami wejścia — wyjściaZarządzanie plikamiObsługa sieciOchronaInterpreter poleceń

Interpreter poleceń

W niektórych systemach operacyjnych (MS-DOS) interpreter poleceń, czyliczęść systemu umożliwiająca komunikację z użytkownikiem, jest częścią ją-dra systemu. W większości innych systemów jest to osobny program wcho-dzący w skład oprogramowania systemowego.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 26: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Wykonywanie programuOperacje wejścia-wyjściaManipulowanie systemem plikówKomunikacjaWykrywanie wyjątkówPrzydział zasobówRozliczanieBezpieczeństwo

Usługi systemu operacyjnego

Obok zarządzania zasobami i nadzoru nad procesami system operacyjnydostarcza zarówno procesom użytkowników, jak i samym użytkownikompewnych usług. Dzięki tym usługom tworzy środowisko w którym mo-gą się wykonywać procesy użytkownika. To jakie usługi i w jaki sposóbdostarcza system operacyjny zależy od wielu czynników, niemniej możnawyróżnić kilka grup usług, które są świadczone przez prawie każdy systemoperacyjny.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 27: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Wykonywanie programuOperacje wejścia-wyjściaManipulowanie systemem plikówKomunikacjaWykrywanie wyjątkówPrzydział zasobówRozliczanieBezpieczeństwo

Wykonanie programu

Na życzenie użytkownika system operacyjny powinien załadować określo-ny program do pamięci i umożliwić mu jego wykonanie. Program powinienmóc zasygnalizować stan swojego wykonania systemowi operacyjnemu (po-prawny/niepoprawny).

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 28: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Wykonywanie programuOperacje wejścia-wyjściaManipulowanie systemem plikówKomunikacjaWykrywanie wyjątkówPrzydział zasobówRozliczanieBezpieczeństwo

Operacje wejścia-wyjścia

Procesy użytkownika nie powinny mieć możliwości używania urządzeń pery-feryjnych bezpośrednio, bo mogłoby to prowadzić do szeregu nadużyć z ichstrony. Opracowywanie fragmentów kodu związanego z wejściem-wyjściembyłoby również uciążliwe dla programistów piszących aplikacje. Dlatego tosystem operacyjny jest wyposażony w odpowiednie elementy umożliwiająceprocesom użytkownika wykonanie rozważanych operacji.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 29: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Wykonywanie programuOperacje wejścia-wyjściaManipulowanie systemem plikówKomunikacjaWykrywanie wyjątkówPrzydział zasobówRozliczanieBezpieczeństwo

Manipulowanie systemem plików.

Ponieważ pliki są tworami kreowanymi przez system operacyjny, to równieżza jego pośrednictwem muszą być obsługiwane. Usługi związane z plikamiobejmują ich tworzenie, usuwanie, otwieranie, odczyt, zapis, jak równieżprzemieszczanie i kopiowanie.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 30: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Wykonywanie programuOperacje wejścia-wyjściaManipulowanie systemem plikówKomunikacjaWykrywanie wyjątkówPrzydział zasobówRozliczanieBezpieczeństwo

Komunikacja

Możemy wyróżnić dwie kategorie sposobów komunikowania się procesów:komunikację lokalną i komunikację sieciową. Pierwszy rodzaj komunikacjiobejmuje komunikację za pomocą lokalnych łączy lub za pomocą pamięcidzielonej. Wszystkie te środki łączności są zapewniane przez system ope-racyjny.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 31: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Wykonywanie programuOperacje wejścia-wyjściaManipulowanie systemem plikówKomunikacjaWykrywanie wyjątkówPrzydział zasobówRozliczanieBezpieczeństwo

Wykrywanie wyjątków

Podczas przetwarzania informacji mogą pojawić się wyjątki. Ich źródłemmogą być nie tylko procesy użytkownika, ale również inne elementy syste-mu komputerowego. System operacyjny musi zagwarantować wykrywaniewszystkich wyjątków niskopoziomowych i poprawną reakcję na nie.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 32: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Wykonywanie programuOperacje wejścia-wyjściaManipulowanie systemem plikówKomunikacjaWykrywanie wyjątkówPrzydział zasobówRozliczanieBezpieczeństwo

Przydział zasobów

Każdy proces do wykonania potrzebuje zasobów. W każdym systemie kom-puterowym występuje ograniczona liczba zasobów. Zarządzanie zasobamistaje się szczególnie ważne w systemach wielozadaniowych i wielodostęp-nych, gdyż od niego zależy efektywność i wygoda używania komputera.Przydział niektórych rodzajów zasobów może być oprogramowany za po-mocą dosyć ogólnego kodu, natomiast przydziały innych rodzajów zasobówbędą wymagały szczególnych rozwiązań.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 33: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Wykonywanie programuOperacje wejścia-wyjściaManipulowanie systemem plikówKomunikacjaWykrywanie wyjątkówPrzydział zasobówRozliczanieBezpieczeństwo

Rozliczanie

Czas pracy pierwszych systemów komputerowych był cenny, ze względu nawartość materialną tych urządzeń. Należało więc starannie mierzyć czas po-święcony na wykonanie przez system zadania użytkownika, aby móc późniejprzedstawić mu wiarygodny rachunek. Z czasem obowiązek dokonywaniapomiaru czasu pracy procesów przejęły systemy operacyjne. W nowszychich wersjach takie usługi są rzadziej spotykane, ale dały one początek usłu-gom, które pozwalają sporządzać statystyki wykorzystania zasobów kom-putera i tym samym pozwalają na wprowadzenie do systemu poprawekoptymalizacyjnych.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 34: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Wykonywanie programuOperacje wejścia-wyjściaManipulowanie systemem plikówKomunikacjaWykrywanie wyjątkówPrzydział zasobówRozliczanieBezpieczeństwo

Bezpieczeństwo

System operacyjny powinien dostarczać swym użytkownikom mechani-zmów pozwalających na realizację przyjętej przez nich polityki bezpie-czeństwa. Do tych mechanizmów należy zaliczyć prawa dostępu, systemuwierzytelniania użytkowników, system rejestrowania zdarzeń zachodzą-cych w systemie.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 35: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

ProcesyOperacje na plikachOperacje na urządzeniach zewnętrznychUtrzymywanie informacjiKomunikacja

Wywołania systemowe

Wywołania systemowe (ang. system calls) nazywane również funkcjami sys-temowymi są specjalnymi procedurami (lub procedurą) obsługi wyróżnio-nych przerwań (lub przerwania), które pozwalają na komunikację międzyprocesami użytkownika, a systemem operacyjnym. Za pomocą wywołańsystemowych procesy użytkownika mogą przedstawiać swe żądania syste-mowi, a więc tworzą one interfejs między tymi dwoma elementami systemukomputerowego. Wywołania systemowe są bezpośrednio dostępne dla pro-gramistów piszących aplikacje w języku assemblerowym oraz w niektórychjęzykach wysokiego poziomu (np. C). Częściej jednak mamy do czynieniaz pośrednim wywołaniem funkcji systemowych. Języki wysokiego poziomudostarczają bibliotek podprogramów, które stanowią mniej lub bardziej zło-żone „opakowania” na wywołania systemowe (np. funkcja printf() w językuC lub procedura write w języku Pascal).

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 36: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

ProcesyOperacje na plikachOperacje na urządzeniach zewnętrznychUtrzymywanie informacjiKomunikacja

Przykład

Poniżej przedstawiony jest diagram, który obrazuje z jakich wywołań sys-temowych może korzystać program kopiujący pliki.

błędy

błędy błędy błędy błędy

komunikacja z użytkownikiem

otwarcie plików odczyt zapis zamknięcie plików

obsługa błędów

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 37: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

ProcesyOperacje na plikachOperacje na urządzeniach zewnętrznychUtrzymywanie informacjiKomunikacja

Argumenty wywołań systemowych

Podobnie jak zwykłe podprogramy wywołania systemowe mogą wymagaćpewnych argumentów wywołania. Te argumenty mogą być im przekazywa-ne na trzy różne sposoby:

1 przez rejestry,2 przez stos,3 przez pamięć - adres początku obszaru pamięci zawierającego

argumenty umieszczany jest w rejestrach.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 38: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

ProcesyOperacje na plikachOperacje na urządzeniach zewnętrznychUtrzymywanie informacjiKomunikacja

Kategorie wywołań systemowych

Liczba i sposób działania wywołań systemowych jest zależna od usług,jakich system operacyjny dostarcza procesom i użytkownikom. Możemyw związku z tym podzielić funkcje systemowe na kilka kategorii:

1 wywołania związane z zarządzaniem procesami,2 wywołania związane z operacjami na plikach,3 wywołania związane z operacjami na urządzeniach peryferyjnych,4 wywołania związane z utrzymywaniem informacji,5 wywołania związane z komunikacją.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 39: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

ProcesyOperacje na plikachOperacje na urządzeniach zewnętrznychUtrzymywanie informacjiKomunikacja

Wywołania związane z nadzorem nad procesami

Do tej kategorii wywołań systemowych należy zaliczyć wywołania służącedo tworzenia nowych procesów, ładowania do pamięci programów użyt-kownika, kończenia działania procesu, debugowania, profilowania działaniaprocesu, zawieszania działania procesu i synchronizowania procesów.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 40: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

ProcesyOperacje na plikachOperacje na urządzeniach zewnętrznychUtrzymywanie informacjiKomunikacja

Wywołania związane z operacjami na plikach

Ta kategoria obejmuje wywołania związane z tworzeniem, otwieraniem pli-ków, odczytem, zapisem, zmianą pozycji wskaźnika pliku oraz zamykaniem.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 41: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

ProcesyOperacje na plikachOperacje na urządzeniach zewnętrznychUtrzymywanie informacjiKomunikacja

Wywołania związane z operacjami na urządzeniachwejścia-wyjścia

Wiele systemów operacyjnych, na czele z Uniksem łączy system zarządza-nia urządzeniami zewnętrznymi z systemem plików, dlatego te same wywo-łania, które służą do obsługi plików są także używane do obsługi urządzeńwejścia-wyjścia. Niektóre funkcje systemowe z tej grupy mogą być spe-cyficzne jedynie dla urządzeń peryferyjnych, np.: montowanie urządzeniaw systemie.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 42: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

ProcesyOperacje na plikachOperacje na urządzeniach zewnętrznychUtrzymywanie informacjiKomunikacja

Wywołania związane z utrzymywaniem informacji.

Najprostszymi przykładami wywołań należących do tej kategorii są wy-wołania pozwalające pobrać bieżący czas i datę. Bardziej skomplikowanepozwalają poznać wszelkie informacje statystyczne związane z systemem,jak: ilość wolnego miejsca na dysku, ilość dostępnej pamięci operacyjnej,liczba użytkowników, itp.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 43: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

ProcesyOperacje na plikachOperacje na urządzeniach zewnętrznychUtrzymywanie informacjiKomunikacja

Wywołania związane z komunikacją między procesami.

W przypadku komunikacji przez sieć lub łącza logiczne muszą istnieć wy-wołania pozwalające utworzyć połączenie, nadać i odebrać komunikat orazzamknąć połączenie. W przypadku komunikacji przez pamięć musi istniećfunkcja systemowa pozwalająca zażądać od systemu operacyjnego obszarupamięci, który będzie współdzielony przez dwa lub większą liczbę procesówrównocześnie.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 44: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Manipulowanie plikamiInformacje o stanie systemuTworzenie i zmiana zawartości plikówTranslacja języków programowaniaKomunikacjaProgramy użytkowe

Programy systemowe

Wraz z niemalże każdym systemem operacyjnym dostarczane są programy,które nie stanowią części jądra systemu, ale należy je zaliczyć do oprogra-mowania systemowego. Te programy również możemy podzielić na kate-gorie, w zależności do czego służą:

manipulowanie plikami,

informowanie o stanie systemu,

tworzenie i zmienianie zawartości plików,

translacja języków programowania,

komunikacja,

programy użytkowe.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 45: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Manipulowanie plikamiInformacje o stanie systemuTworzenie i zmiana zawartości plikówTranslacja języków programowaniaKomunikacjaProgramy użytkowe

Programy do manipulowania plikami

Do tej grupy należy zaliczyć programy kopiujące (copy, xcopy, cp), prze-noszące (move, mv), usuwające (rm, erase) oraz tworzące pliki (touch)i podobne działające na katalogach (ls, dir, mkdir, rmdir).

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 46: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Manipulowanie plikamiInformacje o stanie systemuTworzenie i zmiana zawartości plikówTranslacja języków programowaniaKomunikacjaProgramy użytkowe

Programy do uzyskiwania informacji o systemie

Do tej kategorii należą programy pozwalające poznać liczbę użytkownikówkorzystających z systemu (who, w, users), ilość wolnego miejsca na dysku(df), informacje na temat dostępnej pamięci operacyjnej (vmstat, free,mem), datę i czas (date, time) i inne informacje o stanie systemu.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 47: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Manipulowanie plikamiInformacje o stanie systemuTworzenie i zmiana zawartości plikówTranslacja języków programowaniaKomunikacjaProgramy użytkowe

Programy do przetwarzania plików.

W tej grupie znajdują się zarówno edytory tekstów typu Notatnik, Word-Pad, VIM, Emasc, Norton Editor, jak i specjalistyczne narzędzia do prze-twarzania plików tekstowych (sed,awk,LATEX,troff)

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 48: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Manipulowanie plikamiInformacje o stanie systemuTworzenie i zmiana zawartości plikówTranslacja języków programowaniaKomunikacjaProgramy użytkowe

Translatory języków programowania

Do tej kategorii należy zaliczyć kompilatory i interpretery dostarczane wrazz systemem operacyjnym. Przykładami takich programów są gcc, python,perl, itd.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 49: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Manipulowanie plikamiInformacje o stanie systemuTworzenie i zmiana zawartości plikówTranslacja języków programowaniaKomunikacjaProgramy użytkowe

Programy systemowe związane z komunikacją.

W tej grupie znajdują się programy związane zarówno z diagnostyką siecikomputerowych (ping, traceroute, tracert), jak również pozwalające na pro-stą komunikację między użytkownikami (mail, talk, WinPopUp, WindowsMessanger), oraz programy udostępniające pewne usługi, zwane demonamilub serwerami (sshd, nfsd). Korzystanie z usług ostatniej kategorii progra-mów komunikacyjnych jest możliwe za pomocą programów klienckich.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 50: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Manipulowanie plikamiInformacje o stanie systemuTworzenie i zmiana zawartości plikówTranslacja języków programowaniaKomunikacjaProgramy użytkowe

Programy użytkowe

Ta kategoria jest dosyć szeroka. Może obejmować zaawansowane edytorytekstu, arkusze kalkulacyjne, programy graficzne, gry i podobne oprogra-mowanie. Najważniejszym programem, który należy do tej kategorii, a któ-ry jest zawsze dostarczany wraz z systemem operacyjnym jest interpreterpoleceń, program służący użytkownikowi do komunikacji z systemem ope-racyjnym. Są co najmniej trzy rodzaje takich programów:

1 interpretery tekstowe,2 interpretery graficzne 2D,3 interpretery graficzne 3D.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 51: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Manipulowanie plikamiInformacje o stanie systemuTworzenie i zmiana zawartości plikówTranslacja języków programowaniaKomunikacjaProgramy użytkowe

Interpretery tekstowe

Interpretery pracujące w środowisku tekstowym pozwalają komunikować się użyt-kownikowi z komputerem za pomocą wiersza poleceń (ang. command line). Pro-stym przykładem takiego interpretera jest commmand.com z systemu MS-DOS.Ładując do pamięci program, który mu został przedłożony do wykonania, nie two-rzy nowego procesu lecz usuwa fragment siebie, zwalniając tym samym fragmentpamięci operacyjnej, który przeznacza dla programu użytkownika. Po zakończe-niu wykonania programu, sterowanie wraca do interpretera, który odbudowujesię. Bardziej wyrafinowaną postacią interpreterów poleceń są powłoki (ang. shell)w systemie Unix (bash,tcsh,ksh). Są one wykonywane jako osobne procesy. Kiedymuszą wykonać inny proces, to tworzą proces potomny, którego program jest za-stępowany zleconym zadaniem. W zależności od sposobu uruchomienia nowegoprocesu sterowanie może wrócić natychmiast do interpretera, lub po zakończeniuprocesu. Polecenia powłoki mogą stanowić część jej kodu, bądź być osobnymiprogramami.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 52: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Manipulowanie plikamiInformacje o stanie systemuTworzenie i zmiana zawartości plikówTranslacja języków programowaniaKomunikacjaProgramy użytkowe

Interpretery graficzne 2D

Interpretery graficzne 2D tworzą graficzny interfejs użytkownika (GUI), po-zwalając porozumiewać się z komputerem za pomocą wskaźnika myszy orazsystemu okien i ikon. Interpretery te mogą być na stałe zintegrowane z sys-temem operacyjnym (GUI systemów MacOS, explorer w MS-Windows) lubbyć osobnym rozbudowanym systemem, takim jak X Window, który umoż-liwia nawet zdalną pracę przez sieć i zmianę interfejsu użytkownika, od pro-stych zarządców okien (fvwm2, Enlightenment, Window Maker), po całeśrodowiska graficzne (Gnome, KDE).

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 53: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Manipulowanie plikamiInformacje o stanie systemuTworzenie i zmiana zawartości plikówTranslacja języków programowaniaKomunikacjaProgramy użytkowe

Interpretery 3D

Interpretery graficzne 3D są dosyć nową próbą dodania do znanych środo-wisk graficznych efektu przestrzennego. Wiąże się to z rosnącym wsparciemsprzętowym dla trójwymiarowych operacji graficznych. Przykładami takichśrodowisk są Looking Glass, XGL (Compiz i Beryl), AIGLX (Compiz i Be-ryl), Aero. Pojawiły się również rozwiązania określane mianem interfejsów2.5D (Metisse).

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 54: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Jądro monolityczneJądro modularneMikrojądroJądro hybrydoweEgzojądroJądro warstwoweMaszyny wirtualne

Struktury jądra systemu operacyjnego

Ponieważ napisanie jądra systemu operacyjnego jest złożonym przedsię-wzięciem, to musi je poprzedzić proces przygotowań w wyniku któregozostają podjęte decyzje, co do struktury i funkcjonowania jądra. Na na-stępnych planszach zostaną przedstawione ogólne rozwiązania takiego pro-blemu.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 55: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Jądro monolityczneJądro modularneMikrojądroJądro hybrydoweEgzojądroJądro warstwoweMaszyny wirtualne

Jądro monolityczne

Jądro monolityczne jest jednymprogramem, podzielonym na pod-programy, które wzajemnie są zesobą powiązane. Brak w nichwyraźnej struktury, lub jest onadosyć luźna. Przykłady: Unix,MS-DOS,MS-Windows 95,98,ME.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 56: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Jądro monolityczneJądro modularneMikrojądroJądro hybrydoweEgzojądroJądro warstwoweMaszyny wirtualne

Jądro systemu MS - DOS

programy użytkownika

programy rezydentne

MS-DOS

BIOS

sprzęt

Jak wynika z zamieszczonego obokdiagramu, procesy użytkownikamogą korzystać zarówno z funkcjidostarczanych przez system DOS,jak i z usług dostarczanych przezrezydentne programy systemoweoraz BIOS. Mogą uzyskiwać rów-nież bezpośredni dostęp do sprzę-tu.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 57: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Jądro monolityczneJądro modularneMikrojądroJądro hybrydoweEgzojądroJądro warstwoweMaszyny wirtualne

Jądro systemu Unix

terminale pamięć masowa pamięć operacyjnaprocesor

JĄDRO

programy użytkowników, shell, biblioteki systemowe

(użytkownicy)

interfejs między wywołaniami systemowymi a resztą jądra

Interfejs między jądrem a sprzętem

Oryginalne jądro systemu Unix by-ło zaprojektowane dla sprzętu nie-posiadającego żadnego mechani-zmu ochrony. Mimo to twórcy sys-temu postanowili dokładnie odse-parować procesy użytkownika odsprzętu.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 58: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Jądro monolityczneJądro modularneMikrojądroJądro hybrydoweEgzojądroJądro warstwoweMaszyny wirtualne

Jądro monolityczne z modułami

Jest to pewna modyfikacja jądra monolitycznego, pozwalająca na ładowa-nie w trakcie działania jądra pewnych jego fragmentów (np.: sterownikówurządzeń) do pamięci, na podobnej zasadzie, jak programy użytkownikówładują biblioteki współdzielone. Jądro takie musi być wyposażone w do-datkowe elementy: tablicę symboli, mechanizm ładowania modułu i me-chanizm śledzenia zależności między modułami. Przykładami systemówz jądrem modularnym są Linux i FreeBSD.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 59: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Jądro monolityczneJądro modularneMikrojądroJądro hybrydoweEgzojądroJądro warstwoweMaszyny wirtualne

Mikrojądro (ang. microkernel)

Jądro ma niewielkie rozmiary i jestwykonywane w trybie systemowymprocesora. Zadania jądra sprowadzająsię do zarządzania procesami, pamię-cią operacyjną i zapewnienia komuni-kacji międzyprocesowej. Inne czynno-ści wykonywane tradycyjnie przez ją-dro przejmują programy-demony pra-cujące w trybie użytkownika, lub po-średnim.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 60: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Jądro monolityczneJądro modularneMikrojądroJądro hybrydoweEgzojądroJądro warstwoweMaszyny wirtualne

Jądro hybrydowe

Jest to rozwiązanie pośredniemiędzy jądrem monolitycznym,a mikrojądrem. Wszystkie serwi-sy są uruchamiane w trybie ją-dra. Część ekspertów uważa, żetaka kategoria nie istnieje na-prawdę i jest tylko chwytem mar-ketingowym, a jądro hybrydo-we jest zwykłym jądrem mo-nolitycznym, z dobrze określonąstrukturą wewnętrzną. Przykła-dy: Windows NT, 2000, XP.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 61: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Jądro monolityczneJądro modularneMikrojądroJądro hybrydoweEgzojądroJądro warstwoweMaszyny wirtualne

Egzojądro (ang. exokernel)

Egzojądro (ang. exokernel) jestnową koncepcją w dziedziniesystemów operacyjnych. Jądrojest jeszcze mniejszych rozmia-rów niż w przypadku mikrojądra.Jego jedynym zadaniem jest za-pewnienie ochrony zasobów naniskim poziomie. Wszelkie ro-dzaje abstrakcji, takie jak np.:system plików są dostarczaneprocesom użytkownika za pomo-cą zewnętrznych bibliotek. Po-dobne rozwiązania noszą nazwypikojąder i nanojąder.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 62: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Jądro monolityczneJądro modularneMikrojądroJądro hybrydoweEgzojądroJądro warstwoweMaszyny wirtualne

Jądro z podziałem na warstwy.

warstwa M...

nowe operacje

warstwa M-1

...

operacje istniejące

...

operacje ukryte

Jądro systemu jest podzielone nawspółpracujące ze sobą warstwy.Każda warstwa posiada określony in-terfejs, który udostępnia warstwie na-stępnej. Ta z kolei może udostępniaćbezpośrednio część funkcji z warstwypoprzedniej, warstwie która znajdu-je się nad nią, może ukrywać częśćfunkcji z warstwy poprzedniej i możedefiniować własne funkcje. Przykła-dy: THE, Venus, MULTICS.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 63: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Jądro monolityczneJądro modularneMikrojądroJądro hybrydoweEgzojądroJądro warstwoweMaszyny wirtualne

Maszyny wirtualne

Maszyny wirtualne są naturalnym rozwinięciem idei podziału jądra nawarstwy. Taka maszyna jest po prostu wirtualną kopią komputera, którąotrzymuje każdy z uruchomionych programów. Maszyna ta może pracowaćw rzeczywistym trybie użytkownika i wykonywać system operacyjny, pra-cujący w wirtualnym trybie systemowym, który będzie wykonywał procesydziałające w wirtualnym trybie użytkownika. Jednym z pierwszych syste-mów wykorzystujących koncepcję maszyn wirtualnych był IBM VM/370.Obecnie ta idea zyskuje na popularności dzięki pojawieniu się w najnow-szych procesorach sprzętowego wsparcia dla wirtualizacji.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 64: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Polityka i mechanizmyJęzyki programowaniaInstalacja

Projekt systemu operacyjnego

Podobnie jak w przypadku innych dużych projektów, nie ma gotowych prze-pisów na napisanie systemu operacyjnego. Projekt takiego oprogramowa-nia jest kompromisem między wymaganiami narzucanymi przez użytkowni-ków (wygoda obsługi), programistów (wygoda tworzenia nowych aplikacji,utrzymania (ang. maintenance)) i sprzęt (dostępne urządzenia, mechani-zmy ochrony). Również jak w przypadku innego oprogramowania przydat-ne są zasady inżynierii oprogramowania (np.: podział projektu na mniejszeczęści) i mniej oficjalne reguły (KISS - Keep It Simple, Stupid, DRY -Don’t Repeat Yourself).

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 65: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Polityka i mechanizmyJęzyki programowaniaInstalacja

Polityka i mechanizmy

Podstawową zasadą przy tworzeniu systemów operacyjnych jest oddzieleniemechanizmu od polityki. Polityka określa co ma być zrobione, natomiastmechanizm określa w jaki sposób. Mechanizmy powinny być na tyle ela-styczne, aby pozwalały zrealizować dowolną politykę. Twórca systemu niepowinien również narzucać jego użytkownikom (głównie administratorom)żadnej polityki. Przykład: w systemie trzeba uwierzytelniać użytkowników(polityka), może to się odbywać za pomocą haseł statycznych, zmiennychw czasie lub za pomocą systemów biometrycznych (mechanizmy).

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 66: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Polityka i mechanizmyJęzyki programowaniaInstalacja

Języki programowania

Początkowo wszystkie systemy operacyjne były pisane w języku assemble-rowym. Z czasem pojawiły się języki wysokiego poziomu, których możnabyło użyć zamiast języków niskopoziomowych, takimi językami były Bliss,Concurrent Pascal, niektóre dialekty języka Fortran. Prawdziwym przeło-mem było pojawienie się języka C, który został opracowany specjalnie napotrzeby prac nad systemem Unix. Większość współczesnych systemówjest napisana w tym języku. Obecnie używane są również C++ (Haiku,UnixLite), Java (JavaOS, JNode) i C# (Singularity, OSharp, Cosmos).

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 67: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Polityka i mechanizmyJęzyki programowaniaInstalacja

Instalacja

Istnieją dwa skrajne scenariusze instalowania systemów operacyjnych: kom-pilacja całości systemu, dzięki czemu otrzymujemy system całkowicie do-stosowany do sprzętu którym dysponujemy i do naszych potrzeb oraz in-stalacja wersji binarnej, co jest niewątpliwie szybszym rozwiązaniem. Roz-wiązanie pośrednie polega na zainstalowaniu części binarnej i kompilacjielementów systemu, które mogą mieć wpływ na efektywność korzystaniaz systemu komputerowego.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 68: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Polityka i mechanizmyJęzyki programowaniaInstalacja

Pytania

?

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 69: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Polityka i mechanizmyJęzyki programowaniaInstalacja

Źródła

Rysunki monojądra i mikrojądra pochodzą ze strony TU Dresen: OperatingSystem Group. Schematy jądra hybrydowego i egzojądra pochodzą ze stronWikipedii i są chronione przez licencję Creative Commons.

Arkadiusz Chrobot Systemy Operacyjne - struktura

Page 70: Systemy Operacyjne - struktura€¦ · Sieci komputerowe (ang. networks) służą do komunikacji pomiędzy syste-mami komputerowymi i mogą służyć do budowy tzw. systemów rozproszo-nych.

Plan wykładuJeszcze jedna definicja systemu operacyjnego

PodsystemyUsługi

Wywołania systemoweProgramy systemowe

Struktury jądraProjekt i implementacja

Polityka i mechanizmyJęzyki programowaniaInstalacja

Koniec

Dziękuję Państwu za uwagę!

Arkadiusz Chrobot Systemy Operacyjne - struktura