Systemy operacyjne Odpowiedzi


1. System operacyjny jest programem, który pośredniczy pomiędzy użytkownikiem a sprzętem komputerowym.

Zadania SO:

Zarządzanie zasobami komputera: procesory, pamięć, urządzenia wejścia-wyjścia, porty komunikacyjne itd.

Ukrywanie szczegółów sprzętowych przez tworzenie abstrakcyjnych obiektów (maszyn wirtualnych).

Tworzenie środowiska, w którym użytkownik może wydajnie wygodnie wykonywać programy.

Usługi systemu operacyjnego

Wykonywanie programów - zdolność systemu operacyjnego do ładowania programów do pamięci i ich wykonywania.

Operacje WE/WY - ponieważ program użytkownika nie może bezpośrednio wykonywać operacji WE/WY, system operacyjny musi dostarczać środki do ich wykonywania.

Manipulowanie systemem plików - programy muszą mieć możliwość czytania i pisania w plikach, a także tworzenia i usuwania plików przy użyciu ich nazw.

Komunikacja - wymiana informacji między procesami wykonywanymi albo w tym samym komputerze albo w różnych systemach komputerowych.

Zaimplementowana za pomocą pamięci dzielonej(sharedmemory) lub techniki przekazywania komunikatów (messagepassing).

Wykrywanie błędów - zapewnienie poprawnego przebiegu obliczeń poprzez wykrywanie i obsługę błędów w działaniu CPU i pamięci, w urządzeniach WE/WY lub programach użytkownika.

Dodatkowe funkcje systemu operacyjnego

Istnieje dodatkowy zbiór funkcji systemu operacyjnego przeznaczonych nie do pomagania użytkownikowi, ale do optymalizacji działania samego systemu.

•Przydzielanie zasobów - alokacja zasobów do wielu użytkowników i wielu wykonywanych zadań.

•Rozliczanie -przechowywanie i śledzenie informacji o tym, którzy użytkownicy i w jakim stopniu korzystają z poszczególnych zasobów.

•Ochrona - zapewnienie nadzoru nad wszystkimi dostępami do zasobów systemu. Ważne jest również bezpieczeństwo (security) systemu wobec niepożądanych czynników zewnętrznych.

2. Omów sprzętową ochronę operacji wejścia/wyjścia.

Operacje we/wy są operacjami uprzywilejowanymi. SO powinien zapewnić, że użytkownik nigdy nie przejmie kontroli nad komputerem pracującym w trybie systemowym (przechwyci wektor przerwań).

3. Omów sprzętową ochronę pamięci i jednostki centralnej.

Trzeba zapewnić ochronę pamięci przynajmniej dla wektora przerwań i procedur obsługi przerwań. Ochronę pamięci można uzyskać za pomocą dwu rejestrów określających zakres dopuszczalnych adresów programu:

Rejestr bazowy(base register)-zawiera najmniejszy dopuszczalny adres fizyczny pamięci.

Rejestr graniczny(limit register)-zawiera rozmiar obszaru pamięci.

Pamięć poza tak zdefiniowanym obszarem jest chroniona!

Ochrona jednostki centralnej (CPU)

Czasomierz(timer)-generuje przerwania po wyznaczonym okresie czasu, aby zapewnić systemowi operacyjnemu utrzymanie kontroli.

Licznik czasomierza jest zmniejszany przy każdym tyknięciu zegara.

Kiedy licznik osiągnie wartość zero pojawia się przerwanie.

•Czasomierz jest zwykle używany do realizacji podziału czasu.

•Czasomierza używa się również do obliczania bieżącego czasu.

•Ustawianie czasomierza jest rozkazem uprzywilejowanym.

4. Podaj i opisz modele komunikacji wykorzystywane w systemach operacyjnych.

Przekazywanie komunikatów- wygodne do wymiany mniejszej ilości danych w komunikacji międzykomputerowej.

a) klient/ serwer: w środowisku tym mamy do czynienia z klientami i serwerami. Maszyny klienckie to najczęściej komputery osobiste lub stacje robocze, które zapewniają użytkownikom łatwą obsługę aplikacji. Stacja kliencka jest zwykle obsługiwana za pomocą wygodnego dla użytkowników graficznego interfejsu, z wykorzystaniem okienek i myszki. W aplikacjach klienckich nacisk kładziony jest na prostotę obsługi, przykładem jest arkusz kalkulacyjny.

Każdy serwer w środowisku klient/serwer udostępnia klientom zestaw usług. Model komunikacji klient/serwer jest modelem rozproszonym. Rozmieszczenie użytkowników, aplikacji i zasobów odpowiada wymaganiom przedsiębiorstwa, a połączenia pomiędzy nimi realizowane są przez sieć LAN, WAN lub sieć złożoną.

Pamięć dzielona- zapewnia maksymalną szybkość i wygodę komunikacji w obrębie jednego komputera.

5. Podaj i krótko scharakteryzuj strukturę wybranego systemu operacyjnego.

MS-DOS- napisany pod kątem osiągnięcia maksymalnej funkcjonalności przy oszczędności miejsca:

Brak podziału na moduły;

Interfejsy i poziomy funkcjonalne nie są wyraźnie wydzielone.

UNIX- początkowo ograniczany przez cechy sprzętowe miał ograniczoną strukturalizację; składał się z dwu odrębnych części:

Jądro(kernel):

Składa się z wszystkiego poniżej interfejsu funkcji systemowych a powyżej sprzętu;

Udostępnia system plików, planowanie przydziału procesora, zarządzanie pamięcią i inne czynności systemu operacyjnego (bardzo wiele możliwości zebranych na jednym poziomie).

Programy systemowe- korzystają z udostępnianych przez jądro funkcji systemowych dla wykonywania użytecznych działań (np. kompilacja programów, operacje na plikach).

Struktura warstwowa (Layered Structure)

System operacyjny jest podzielony na warstwy(poziomy).Najniższą warstwę (warstwę 0)stanowi sprzęt; najwyższą warstwą (warstwą N) jest interfejs użytkownika. Warstwy są tak wybrane, że każda używa funkcji (operacji) i korzysta z usług tylko niżej położonych warstw. Modularność i ukrywanie operacji, danych itd. Zalety: Łatwiejsze uruchamianie i testowanie systemu (warstwa po warstwie, począwszy od najniższej) -upraszcza projektowanie i implementację systemu. Wady: Główna trudność: odpowiednie zdefiniowanie poszczególnych warstw(nie zawsze jest oczywiste, co powinna zawierać dana warstwa). Mniejsza wydajność (konieczność przechodzenia od warstwy do warstwy).

6. Co to jest maszyna wirtualna? Podaj jej charakterystykę.

Maszyna wirtualna (ang. virtual machine, VM) to ogólna nazwa dla programów tworzących środowisko uruchomieniowe dla innych programów. Maszyna wirtualna kontroluje wszystkie odwołania uruchamianego programu bezpośrednio do sprzętu lub systemu operacyjnego i zapewnia ich obsługę. Dzięki temu program uruchomiony na maszynie wirtualnej "myśli", że działa na rzeczywistym sprzęcie, podczas gdy w istocie pracuje na sprzęcie wirtualnym, "udawanym" przez odpowiednie oprogramowanie (maszynę wirtualną). Wykonywanym programem może być zarówno pojedyncza aplikacja jak i cały system operacyjny lub nawet kolejna maszyna wirtualna. Są one zupełnie odizolowane przez maszynę wirtualną od maszyny fizycznej, w odróżnieniu od klasycznego systemu operacyjnego, który tylko zarządza uruchamianiem aplikacji na maszynie fizycznej.

7. Co to jest proces? Scharakteryzuj jego stany.

Proces jest to wykonywany program. Wykonanie takiego procesu musi być sekwencyjne. W skład programu wchodzi: kod programu, licznik rozkazów, stos procesu (dane tymczasowe) i sekcja danych (zmienne globalne). Wykonujący się proces zmienia swój stan. Każdy proces może znajdować się w jednym z następujących stanów: nowy (proces został utworzony), aktywny (aktualnie wykonywane są instrukcje), oczekiwanie (proces oczekuje na wystąpienie jakiegoś zdarzenia), gotowy (proces oczekuje na przydział procesora), zakończony (proces zakończył już działanie). W danej chwili w procesorze tylko jeden proces może być aktywny, natomiast wiele procesów może być oczekujących lub gotowych do działania.

8. Czemu służy planowanie procesów? Scharakteryzuj kolejki planowania.

Planowanie procesów używane jest w celu najlepszego wykorzystania procesora. Jest ono szczególnie ważne w systemach wieloprogramowych z podziałem czasu.

Kolejki planowania są to zbiory procesów czekających na jakieś zdarzenie. Procesy mogą wędrować między różnymi kolejkami. Wyróżniamy następujące kolejki planowania: kolejka zadań (zbiór wszystkich procesów w systemie), kolejka procesów gotowych (jest to zbiór procesów rezydujących w pamięci operacyjnej, gotowych i oczekujących na wykonanie, {ma zazwyczaj postać listy powiązanej}), kolejka do urządzenia (zbiór procesów czekających na konkretne urządzenie wejścia/wyjścia, każde urządzenie ma własną kolejkę).

9. Co to jest planista? Podaj podział i charakterystykę planistów.

Planista inaczej program szeregujący jest to program systemowy wybierający procesy z kolejek. Planistów możemy podzielić na: planistę długoterminowego inaczej planistę zadań (wybiera on procesy z puli zadań znajdującej się zazwyczaj na dyskach i ładuje po pamięci operacyjnej do tzw. Kolejki procesów gotowych. Nadzoruje on stopień wieloprogramowości tj. liczbę procesów w pamięci, co jest bardzo ważne dla wydajności systemu komputerowego. Wywoływany rzadziej niż planista krótkoterminowy.); planistę krótkoterminowego inaczej planistę przydziału procesora (planista ten wybiera jeden proces spośród procesów gotowych do wykonania i przydziela mu procesor. Wywoływany jest bardzo często i musi być szybki.); planistę krótkoterminowego (planista ten odpowiedzialny jest za wymianę procesów między pamięcią operacyjną a dyskiem, stosowany jest najczęściej w systemach z podziałem czasu).

10. Co to jest i na czym polega przełączanie kontekstu?

Przełączanie procesora do innego procesu wymaga przechowania stanu starego procesu i załadowania przechowanego stanu nowego procesu -przełączanie kontekstu. Podczas przełączania kontekstu system nie wykonuje żadnej użytecznej pracy. Wartość czasu przełączania zależy od możliwości sprzętu (zwykle od 1 do 100 mikrosekund). Niektóre procesory mają po kilka zbiorów rejestrów: przełączanie kontekstu -zmiana wartości wskaźnika do bieżącego zbioru rejestrów. Przełączanie kontekstu jest nierzadko „wąskim gardłem” w systemach operacyjnych -rozwiązanie: wątki.

11. Omów podstawowe problemy występujące przy tworzeniu procesu.

Tworzenie procesu- proces macierzysty tworzy procesy potomne a te mogą tworzyć dalsze procesy- drzewo procesów.

Wykonanie możliwości: pro macierzysty i pro potomne wykonują się współbieżnie, pro macierzyste czkają na zakończenie procesów potomnych.

Proces potomny staje się kopią procesu macierzystego.

Proces potomny otrzymuje nowy program.

12. Omów podstawowe problemy występujące przy kończeniu procesu.

Kończenie procesu: proces wykonuje ostatnia komendę i prosi system operacyjny (poprzez funkcję exit), aby do usunął:

Proces może przekazać dane (wyjściowe) do procesu macierzystego (za pomocą funkcji wait).

Proces macierzysty może zakończyć wykonanie procesu potomnego, gdy:

-wykonywane przez potomka zadanie stało się zbędne,

-proces macierzysty kończy swoje działanie.

System operacyjny nie pozwala potomkowi na dalsze działanie.

13. Omów komunikacje międzyprocesową (IPC).

Kom. między-procesorowa- mechanizm systemu operacyjnego umożliwiający procesom łączność i synchronizację.

Mechanizm IPC dostarcza dwie operacje:

-Nadaj (komunikat) - rozmiar kom. może być stały lub zmienny,

-Odbierz (komunikat).

14. Omów komunikację pośrednią.

W komunikacji pośredniej komunikaty są nadawane i odbierane za pomocą skrzynek pocztowych, zwanych także portami. Każda skrzynka pocztowa ma jednoznaczną identyfikację.

Właściwości łącza komunikacyjnego:

-Łącze może być związane z więcej niż dwoma procesami,

-Łącze może być 1 lub 2 kierunkowe.

-Każda para komunikujących się procesów może mieć wiele łączy.

Możliwe rozwiązania:

Zezwalać na łącza tylko między dwoma procesami,

Zezwolić tylko jednemu procesowi na wykonanie w danej chwili operacji Odbierz.

15. Omów komunikację bezpośrednią.

W komunikacji bezpośredniej procesu musi jawnie nawiązać nadawcę lub odbiorcę:

-nadaj(P,komunikat) nadaj komunikat do procesu P;

-odbierz(Q,komunikat) odbierz komunikat od procesu Q.

Właściwości łącza komunikacyjnego:

-Łącze jest ustawiane automatycznie,

-Łącze dotyczy dokładnie dwu procesów,

-Między każdą parą procesów istnieje dokładnie jedno łącze,

Wada:

Ograniczenie modularności- zmiana nazwy jednego procesu może pociągnąć za sobą konieczność zweryfikowania definicji wszystkich innych procesów.

16. Scharakteryzuj komunikację w systemie klient-serwer (Socket, RPC, RMI).

Gniazda (Sockets) - BSD UNIX:

- gniazdo jest zdefiniowane jako punkt końcowy komunikacji;

- gniazdo posiada adres: połączenie adresu IP i numeru portu np. gniazdo 149.156.64.9:1625 dotyczy portu 1625 na maszynie 149.156.64.9;

- komunikacja odbywa się między parami gniazd.

Zdalne wywołania procedur (RPC):

- zdalne wywołanie procedury jest uogólnieniem mechanizmu wywołania procedury na systemy sieciowe.

- komunikat zawiera identyfikator funkcji oraz parametry, które mają być jej przekazane i jest adresowany do demona RPC w odległym systemie.

- klient wysyła komunikat do serwera, a serwer wykonuje odpowiednią funkcję i odsyła wyniki do klienta w oddzielnym komunikacie.

Zdalne wywołania metod (RMI):

- RMI jest mechanizmem systemu Java podobnym do RPC.

- RMI pozwala programowi Javy działającemu na jednej maszynie wywołać metodę w zdalnym obiekcie (na innej JVM, innym komputerze).

17. Co to jest wątek? Przedstaw zalety i wady stosowania wątków.

Wątek, zwany także procesem lekkim jest podstawową jednostką wykorzystania CPU - posiada: licznik rozkazów, zbiór rejestrów i obszar stosu.

Wątek dzieli wraz z innymi równorzędnymi wątkami: sekcję kodu, sekcję danych oraz zasoby systemowe (otwarte pliki, sygnały) - łącznie nazywa się to zadaniem.

Tradycyjny proces jest równoważny zadaniu z jednym wątkiem.

Zadanie nic nie robi, jeśli nie mam w nim ani jednego wątku; wątek może przebiegać dokładnie w jednym zadaniu.

Zalety wątków:

- dzielenie zasobów sprawia, że przełączanie między wątkami oraz tworzenie wątków jest tanie w porównaniu z procesami ciężkimi.

- oszczędne wykorzystanie zasobów - dzięki ich współużytkowaniu.

- współpraca wielu wątków pozwala zwiększyć przepustowość i poprawić wydajność (np. jeśli jeden wątek jest zablokowany to może działać inny).

Wady:

Przy jednowątkowym jądrze każde odwołanie wątku poziomu użytkownika do systemu powoduje wstrzymanie całego zadania.

Nieadekwatny przydział czasu procesora (zadanie wielowątkowe i jednowątkowe mogą dostawać tyle samo kwantów czasu).

18. Omów modele wielowątkowości. Który z nich jest stosowany w Windows?

Model „wiele na jeden”

- wiele wątków poziomu użytkownika odwzorowanych na jeden wątek jądra.

- stosowany w systemach nie posiadających wątków jądra.

Model „jeden na jeden”

- każdy wątek poziomu użytkownika odwzorowany wzajemnie jednoznacznie na jeden wątek jądra.

Model „wiele na wiele”

- wiele wątków poziomu użytkownika jest multipleksowanych na mniejszą lub równą liczbę wątków jądra.

- pozwala systemowi operacyjnemu utworzyć dostateczną liczbę wątków jądra -> dobra współbieżność i dobra wydajność.

- często występuje poziom pośredni w postaci procesów lekkich będących dla wątków użytkownika czymś w rodzaju wielowątkowych wirtualnych procesów - z każdym procesem lekkim związany jest jeden wątek jądra, natomiast zwykły proces może składać się z jednego lub więcej procesów lekkich.

W Windows stosowany jest model wątku „jeden na jeden”.

19. Przedstaw i krótko opisz metody (rodzaje) kasowania wątków.

Metody kasowania wątków:

- kasowanie asynchroniczne - dany wątek kończy natychmiast wątek obrany za cel; może być niebezpieczne dla dzielonych zasobów.

- kasowanie odroczone - wątek obrany za cel może okresowo sprawdzać, czy powinien się zakończyć, co daje mu możliwość zakończenia w sposób uporządkowany.

20. Przedstaw obsługę sygnałów (w wątkach).

Obsługa sygnałów w wątkach:

- Sygnał służy w systemach uniksowych do powiadamiania o wystąpieniu konkretnego zdarzenia.

- Sygnały synchroniczne są dostarczone do procesu, który wykonał operację powodującą sygnał, natomiast asynchroniczne pochodzą od zdarzeń zewnętrznych.

- Możliwość dostarczania sygnałów do procesów wielowątkowych:

dostarczyć sygnał tylko do tego wątku, do którego się on odnosi.

dostarczyć sygnał do wszystkich wątków w procesie.

dostarczyć sygnał do niektórych wątków.

Przydzielić specjalny wątek do odbierania wszystkich sygnałów do procesu.

Różne procesy realizują różne możliwości, zależy to też od rodzaju sygnału.

21. Podaj i krótko scharakteryzuj kryteria planowania przydziału procesora.

Kryteria planowania

Wykorzystanie procesora (CPU utilization) -procesor powinien być możliwie jak

najbardziej zajęty.

Przepustowość (throughput) -liczba procesów kończących się w jednostce czasu (np. 10

procesów na sekundę).

Czas cyklu przetwarzania (turnaround time) -czas potrzebny na wykonanie procesu (od momentu

pojawienia się procesu w systemie do chwili jego zakończenia).

Czas oczekiwania (waiting time) -suma okresów czasu, które proces spędza czekając w kolejce

procesów gotowych.

Czas odpowiedzi (response time) -czas między wysłaniem żądania (złożeniem zamówienia) a

pojawieniem się pierwszej odpowiedzi; nie obejmuje czasu potrzebnego na wyprowadzenie

odpowiedzi (zależny od urządzenia WY). Ważne kryterium planowania dla systemów

interakcyjnych.

22. Przedstaw algorytm FCFS

Jest to najprostszy algorytm planowania przydziału procesora, algorytm „pierwszy zgłoszony - pierwszy obsłużony” (first-come, first-served - FCFS).

Implementacja za pomocą kolejek FIFO (first in - first out)

Przykład :

Proces

Czas trwania fazy[MS]

P1

24

P2

3

P3

3

Przypuśćmy że procesy nadeszły w kolejności P1,P2,P3

Diagram Gantta

0x01 graphic

Przypuśćmy że procesy nadeszły w następującej kolejności P2,P3,P1

0x01 graphic

Efekt konwoju (convoy effect) - procesy krótkie czekają na zwolnienie procesora przez proces długi.

- Algorytm FCFS jest niewywłaszczający.

- Algorytm FCFS jest kłopotliwy w systemach z podziałem czasu.

23. Przedstaw algorytm SJF

Algorytm „najpierw najkrótsze zadanie” (shortest-job-first -SJF) przydziela CPU procesowi mającemu najkrótszą następną fazę procesora.

Możliwe są dwa schematy :

- Niewywłaszczający: żaden proces nie jest wywłaszczany podczas wykonywania fazy procesora.

- Wywłaszczający: bieżący proces jest wywłaszczany przez nowy proces, którego następna faza procesora jest krótsza o pozostałej części fazy procesora bieżącego procesu. Schemat ten zwany jest planowaniem„najpierw najkrótszy pozostały czas”(shortest-remaining-time-first -SRTF).

Algorytm SJF jest optymalny -daje minimalny średni czas oczekiwania dla danego zbioru procesów. Łatwiejszy do realizacji w planowaniu długoterminowym (np. w systemach wsadowych), trudniejszy w planowaniu krótkoterminowym -brak sposobu na poznanie długości następnej fazy procesora (można jedynie zgadywać).

Przykład zastosowania algorytmu :

Proces

Czas przybycia

Czas trwania fazy

P1

0

7

P2

2

4

P3

4

1

P4

5

4

0x01 graphic

24. Omów planowanie priorytetowe.

W algorytmie priorytetowym każdemu procesowi przypisuje się priorytet w postaci pewnej liczby całkowej - zazwyczaj : im mniejsza liczba tym wyższy priorytet, ale bywa też odwrotnie.

Procesor jest przydzielany procesowi o najwyższym priorytecie.

Priorytety mogą być definiowane wewnętrznie (na podstawie jakichś mierzalnych własności procesu) lub zewnętrznie (ważność procesu, czynniki polityczne itp.).

Algorytm priorytetowy może być wywłaszczający lub nie wywłaszczający.

Algorytm SJF jest algorytmem priorytetowym, gdzie priorytet p jest proporcjonalny do przewidywanej długości następnej fazy procesora (im krótsza faza tym wyższy priorytet).

PROBLEM : (za)głodzenie (starvation) - procesy o niskim priorytecie mogą nigdy nie dostać się do procesora!

ROZWIĄZANIE : postarzanie (aging) procesów - stopniowe podwyższanie priorytetów procesów długo oczekujących.

25. Omów planowanie rotacyjne.

Algorytm planowania rotacyjnego (round-robin RR) jest podobny do algorytmu FCFS, ale w celu przełączania procesów dodano w nim wywłaszczanie i cykliczną kolejką.

Każdy proces dostaje małą jednostkę czasu procesora, tzw. Kwant czasu (time quantum) (zwykle od 10 do 100 milisekund) - po jej upływie proces jest wywłaszczany i wysyłanay na koniec kolejki procesów gotowych, będącą kolejką typu FIFO.

Dla n procesów w kolejce i kwantu czasu q, każdy proces dostaje 1/n czasu procesora porcjami, których wartość nie przekracza q, żaden proces nie czeka dłużej niż (n-1)q jednostek czasu.

Długość kwantu czasu:

- bardzo duża(nieskończona) > algorytm FCFS.

- bardzo mała (np. 1µs) - dzielenie procesora (processor sharing).

Kwant czasu powinien być długi w porównaniu z czasem przełączania kontekstu, w przeciwnym razie narzut związany z przełączanie kontekstu jest zbyt wysoki!

Typowa reguła : 80% faz procesora krótsza od kwantu czasu.

26. Scharakteryzuj wielopoziomowe planowanie kolejek.

Wielopoziomowe planowanie kolejek

•Kolejka procesów gotowych jest podzielona na osobne kolejki:

1.Procesy pierwszoplanowe(foreground) -interakcyjne;

2.Procesy drugoplanowe(background) -wsadowe.

•Każda kolejka ma swój własny algorytm planujący:

1.Pierwszoplanowa:np. algorytm rotacyjny;

2.Drugoplanowa:np. algorytm FCFS.

•Musi istnieć planowanie między kolejkami:

Planowanie stałopriorytetowe z wywłaszczeniem, np. kolejka pierwszoplanowa ma wyższy priorytet niż drugoplanowa →możliwość zagłodzenia!

Przydział porcji czasu procesora dla każdej z kolejek, np. 80% czasu procesora dla kolejki pierwszoplanowej(z planowaniem rotacyjnym), a 20% dla drugoplanowej(z planowaniem FCFS).

0x01 graphic

W zwykłym algorytmie wielopoziomowego planowania kolejek proces jest na stałe przypisany do określonej kolejki (brak elastyczności).

27. Scharakteryzuj wielopoziomowe planowanie kolejek ze sprzężeniem zwrotnym.

Planowanie wielopoziomowych kolejek ze sprzężeniem zwrotnym (multilevel feedback queue) umożliwia przemieszczanie procesów między różnymi kolejkami: proces zużywający dużo czasu procesora zostaje przeniesiony do kolejki o niższym priorytecie i odwrotnie.

Planista wielopoziomowych kolejek ze sprzężeniem zwrotnym jest określony za pomocą następujących parametrów:

Liczba kolejek;

Algorytm planowania dla każdej kolejki;

Metoda użyta do decydowania o awansowaniu procesu do kolejki o wyższym priorytecie;

Metoda użyta do decydowania o zdymisjonowaniu procesu do kolejki o niższym priorytecie;

Metoda wyznaczająca kolejkę, do której trafia proces potrzebujący obsługi.

Jest to najogólniejszy algorytm planowania przydziału procesora.

0x01 graphic

28. Przedstaw sposób planowania w syst. homogenicznych.

Systemy homogeniczne (identyczne procesory):

Dzielenie obciążeń(load sharing) -wszystkie procesy trafiają do jednej kolejki wykonań (run queue) i są przydzielane do dowolnego z dostępnych procesorów.

Struktura „master-slave”-jeden procesor pełni funkcję planisty dla pozostałych procesorów.

Wieloprzetwarzanie asymetryczne(asymmetric multiprocessing)-jeden procesor (serwer główny)wykonuje planowanie, operacje WE/WY i inne czynności systemowe, pozostałe zaś wykonują tylko kod użytkowy.

29. Przedstaw sposób planowania w syst. heterogenicznych.

Planowanie heterogeniczne - dla systemów sieciowych, rozproszonych, o różnych procesorach - bardzo trudne w realizacji

30. Przedstaw sposób planowania w łagodnych systemach czasu rzeczywistego.

Łagodne systemy czasu rzeczywistego -procesy o decydującym znaczeniu uzyskują priorytet nad innymi procesami:

Wstawianie w długotrwałych funkcjach systemowych punktów wywłaszczeń, w których może nastąpić przełączenie kontekstu.

Możliwość wywłaszczenia całego jądra -potrzebna ochrona danych jądra przy pomocy mechanizmów synchronizacji

Np. Solaris 2.

Wątki w klasie czasu rzeczywistego otrzymują najwyższy priorytet-daje to gwarancję uzyskania odpowiedzi w ograniczonym odstępie czasu (do tej klasy należy na ogół niewiele procesów).

W systemie Linux:

Dla procesów czasu rzeczywistego realizowane są dwie klasy planowania:

Każdy proces posiada priorytet-planista uruchamia ten o najwyższym priorytecie!

Kod jądra nie może być wywłaszczony przez kod trybu użytkownika!

31. Przedstaw sposób planowania w rygorystycznych systemach czasu rzeczywistego.

Rygorystyczne systemy czasu rzeczywistego -do wypełniania krytycznych zadań w gwarantowanym czasie.

Proces jest dostarczany wraz z instrukcją określającą potrzeby czasowe.

Na postawie tych danych planista akceptuje proces, zapewniając wykonanie go na czas, lub odrzuca zlecenie jako niewykonalne.

Niemożliwe jest udzielenie gwarancji wykonania procesu w zadanymczasie w systemach z pamięcią pomocniczą lub wirtualną.

  1. Podaj i omów warunki sekcji krytycznej.

Każdy proces ma segment kodu zwany sekcją krytyczną (critical section), w którym może korzystać ze wspólnych danych.

Warunki sekcji krytycznej

1.Wzajemne wykluczanie: Jeśli jeden proces wykonuje swoją sekcję krytyczną, to żaden inny proces nie działa w sekcji krytycznej.

2.Postęp: Jeżeli żaden proces nie wykonuje swojej sekcji krytycznej oraz istnieją procesy, które chcą wejść do swoich sekcji krytycznych, to tylko procesy nie wykonujące swoich reszt mogą rywalizować o wejście do sekcji krytyczneji wybór ten nie może być odwlekany w nieskończoność.

3.Ograniczone czekanie: Musi istnieć wartość graniczna liczby wejść innych procesów do sekcji krytycznych po tym, gdy dany proces zgłosił chęć wejścia do swojej sekcji krytyczneji zanim uzyskał na to pozwolenie.

33. Przedstaw metody synchronizacji procesów.

34. Co to jest zakleszczenie (deadlock), zagłodzenie (starvation)?

Stan zakleszczenia (blokady; deadlock): każdy proces w zbiorze procesów czeka na zdarzenie, które może być spowodowane tylko przez inny proces z tego samego zbioru, np. zwolnienie zajętego zasobu, na który proces oczekuje.

35. Dodaj i krótko omów warunki powstawania zakleszczeń.

Zakleszczenie może powstać wtedy, kiedy w systemie spełnione są jednocześnie cztery warunki:

1.Wzajemne wykluczanie: Tylko jeden proces może używać zasobu w tym samym czasie (zasób niepodzielny).

2.Przetrzymywanie i czekanie: Proces mający jeden zasób czeka na przydział dodatkowych zasobów będących w posiadaniu innych procesów.

3.Brak wywłaszczeń: Zasoby nie podlegają wywłaszczaniu.

4.Czekanie cykliczne: Istnieje zbiór czekających procesów {P0,P1,...,Pn}, takich że P0czeka na zasób przetrzymywany przez P1, P1czeka nazasób przetrzymywany przez P2, ..., aPnczeka na zasób przetrzymywany przez P0.

41. Omów metodę likwidowania zakleszczeń.

Likwidowanie zakleszczeń po przez:

Zakończenie procesu:

Zaniechanie wszystkich zakleszczonych procesów

Usuwanie procesów pojedynczo, aż do wyeliminowania cyklu zakleszczenia.

Jak wybrać proces do zakończenia:

Jaki jest priorytet procesu?

Jak długo proces wykonywał obliczenia i ile czasu potrzebuje do zakończenia?

Ile zasobów i jakiego typu używa proces?

Ilu jeszcze zasobów proces potrzebuje do zakończenia działania?

Ile procesów trzeba będzie zakończyć?

Czy proces jest interakcyjny czy wsadowy?

Wywłaszczanie zasobów:

Wybór ofiary: które zasoby i które procesy mają być wywłaszczone -minimum kosztów.

Wycofanie procesu do pewnego bezpiecznego stanu i wznowienie go z tego stanu w późniejszym czasie - może być trudne!

Głodzenie: do roli ofiary może być wybierany wciąż ten sam proces -potrzebne ograniczenie; uwzględnienie liczby wycofań przy ocenie kosztów.

42. Przedstaw fazy życia programu, w których następuje wiązanie adresów logicznych z fizycznymi adresami pamięci operacyjnej.

Wiązanie rozkazów i danych z adresami pamięci może być dokonane w dowolnym z trzech kroków:

1.Faza kompilacji: Jeżeli a priori znane jest miejsce, w którym proces będzie przebywał w pamięci, to można wygenerować kod bezwzględny(absolute code); zmiana położenia kodu w pamięci wymaga jego rekompilacji. 2.Faza ładowania: Jeżeli przyszłe położenie procesu w pamięci nie jest znane podczas kompilacji, to kompilator musi generować kod przemieszczalny(relocatable code); wiązanie adresów następuje w czasie ładowania kodu.

3.Faza wykonania: Jeżeli proces podczas wykonania może być przemieszczany w pamięci, to wiązanie adresów musi być opóźnione do czasu wykonania -wymaga to specjalnego sprzętu (stosowane w większości systemów).

43. Co to są adresy logiczne i fizyczne pamięci? Przedstaw jedną z metod ich wzajemnego przekształcania.

Adresy logiczne (wirtualne) - adresy generowane przez CPU

Adresy fizyczne -adresy widziane przez jednostkę pamięci.

Adresy logiczne i fizyczne są: takie same - w schematach wiązania adresów podczas kompilacji i ładowania; różne - w schematach wiązania adresów podczas wykonywania.

Zbiór wszystkich adresów logicznych generowanych przez program nazywa się logiczną przestrzenią adresową, a zbiór odpowiadających im adresów fizycznych -fizyczną przestrzenią adresową.

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

44. Wyjaśnij pojęcia: fragmentacja zewnętrzna, fragmentacja wewnętrzna. Podaj przykłady sytuacji, w których mogą wystąpić.

Fragmentacja zewnętrzna (external fragmentation): Suma wolnych obszarów w pamięci wystarcza na spełnienie zamówienia, ale nie tworzą one spójnego obszaru.

Reguła 50 procent-w strategii pierwszego dopasowania z powodu fragmentacji straty wynoszą zwykle ok. 50% tego co zostało przydzielone.

Fragmentacja wewnętrzna (internal fragmentation): Przydzielona pamięć może być nieco większa niż zamawiana (nie opłaca się trzymać informacji o bardzo małych dziurach) -ten naddatek znajduje się wewnątrz przydzielonego obszaru, ale jest niewykorzystywany.

Fragmentację zewnętrzną można redukować przez upakowanie:

Przetasowanie pamięci tak, aby cała wolna pamięć była w jednym bloku.

Upakowanie jest możliwe tylko przy dynamicznym wiązaniu adresów wykonywanym podczas działania procesu.

Algorytm upakowania może być dość kosztowny.

Wybranie optymalnej strategii upakowywania jest dosyć trudne.

Dodatkowe trudności pojawiają się kiedy w systemie występuje wymiana, np. problem przywrócenia procesu o statycznie ustalanych adresach.

45. Co to jest i na czym polega stronicowanie pamięci?

Inne rozwiązanie problemu fragmentacji zewnętrznej - dopuszczenie do nieciągłości logicznej przestrzeni adresowej, tzn. przydzielanie procesowi dowolnych dostępnych miejsc pamięci fizycznej, ale określonymi porcjami.

Pamięć fizyczna podzielona jest na bloki o stałej długości zwane ramkami (frames); rozmiar zwykle jest potęgą 2, między 512 B a 16 MB.

Pamięć logiczna podzielona jest na bloki takiego samego rozmiaru zwane stronami (pages)

System utrzymuje informację o wolnych i przydzielonych ramkach w tablicy ramek (a także do jakiego procesu - lub procesów - ramka jest przydzielona).

Strony uruchamianego procesu przebywające w pamięci pomocniczej są wprowadzane w wolne ramki pamięci operacyjnej(program rozmiaru n stron potrzebuje n ramek -mogą być w dowolnym miejscu pamięci fizycznej)

Eliminuje się fragmentację zewnętrzną, ale pozostaje fragmentacja wewnętrzna.

Adres logiczny generowany przez procesor składa się z dwóch części:

numer strony s(page number) -indeks w tablicy stron; tablica stron zawiera adresy bazowe wszystkich stron w pamięci operacyjnej.

odległość na stronie o (page offset) - w połączeniu z adresem bazowym daje adres fizyczny pamięci, który jest wysyłany do jednostki pamięci.

46. Co to jest i na czym polega segmentacja pamięci?

Segmentacja jest schematem zarządzania pamięcią urzeczywistniającym sposób widzenia pamięci przez użytkownika.

Przestrzeń adresów logicznych jest zbiorem segmentów.

Segment to jednostka logiczna, taka jak:, program główny, procedury, funkcje, metody, obiekty, stosy, wykazy, tablice, zmienne lokalne i globalne itd.

Dla ułatwienia implementacji segmenty są ponumerowane.

Adres logiczny: <numer_segmentu, odległość>

Tablica segmentów: odwzorowuje dwuwymiarowe adresy logiczne w jednowymiarowe adresy fizyczne. Każda pozycja składa się z dwu części:

Baza segmentu -zawiera początkowy adres fizyczny segmentu w pamięci;

Granica segmentu -określa długość segmentu.

  1. Co to jest pamięć wirtualna i jak jest ona implementowana w systemach operacyjnych?

Pamięć wirtualna jest techniką, która umożliwia wykonywanie procesów, pomimo że nie są one w całości przechowywane w pamięci operacyjnej. Pozwala stworzyć abstrakcyjną pamięć główną w postaci olbrzymiej, jednolitej tablicy i odseparować pamięć logiczną od pamięci fizycznej.

Pamięć wirtualna jest najczęściej implementowana w formie:

Stronicowania na żądanie (demand paging);

Segmentacji na żądanie (demand segmentation) -rzadziej, np. IBM OS/2.

48. Co to jest stronicowanie na żądanie? Podaj przykład jego zastosowania.

Procesy podzielone na strony przebywają w pamięci pomocniczej (zwykle dysk).

•Strona jest sprowadzana z pamięci pomocniczej do operacyjnej tylko wtedy, kiedy jest potrzebna.

Mniej operacji WE/WY koniecznych do załadowania i wymiany programu.

Mniejsze zapotrzebowanie na pamięć.

Krótszy czas odpowiedzi.

Równocześnie może pracować większa liczba procesów/użytkowników.

49. Jak realizowane jest w systemach operacyjnych zastępowanie stron?

Zastępowanie stron (page replacement):

1.Zlokalizowanie potrzebnej strony na dysku.

2.Wykonanie algorytmu zastępowania stron w celu wytypowania ramki-ofiary (victim frame).

3.Zapisanie strony-ofiary na dysku oraz stosowna modyfikacja tablicy stron i tablicy ramek.

4.Wczytanie potrzebnej strony do zwolnionej ramki oraz modyfikacja tablicy stron i tablicy ramek.

5.Wznowienie działania procesu.

50. Na czym polega efekt szamotania stron pamięci (thrashing)?

Szamotanie (migotanie) (thrashing) -sytuacja, w której proces jest zajęty głównie wymianą stron (przesyłaniem między dyskiem a pamięcią operacyjną).

Szamotanie powoduje wyraźne zaburzenia wydajności systemu!

51. Przedstaw metody unikania efektu szamotania.

>Efekt szamotania można ograniczać za pomocą lokalnego algorytmu zastępowania - jeżeli jakiś proces się szamoce, to nie powinien zabierać ramek innemu procesowi i doprowadzać go też do szamotania.

>Aby zapobiec szamotaniu należy dostarczyć procesowi tyle ramek ile potrzebuje →ale jak się o tym dowiedzieć?

52. Co to jest plik? Podaj atrybuty pliku oraz przedstaw operacje plikowe.

Plik(file) jest logiczną jednostką magazynowania informacji w pamięci pomocniczej (magnetyczne dyski i taśmy, dyski optyczne).

Plik jest ciągiem bitów, bajtów, wierszy lub rekordów, których znaczenie określa twórca pliku i jego użytkownik.

Atrybuty pliku

Nazwa -czytelna dla człowieka symboliczna nazwa pliku, za pomocą której można się do niego odwoływać; na ogół jest ciągiem znaków (niektóre systemy rozróżniają wielkie i małe litery, inne zaś nie).

Identyfikator -pole o niepowtarzalnej wartości, zwykle liczbowej; wyodrębnia plik w całym systemie (jest to nazwa pliku w postaci nieczytelnej dla człowieka).

Typ -informacja potrzebna w systemach, w których rozróżnia się typy plików.

Lokacja -wskaźnik do urządzenia i położenia pliku na tym urządzeniu.

Rozmiar -atrybut zawierający bieżący rozmiar pliku (w bajtach, słowach lub blokach); może też określać maksymalny dopuszczalny rozmiar pliku.

Ochrona -informacje kontroli dostępu, służące do sprawdzania, kto może plik czytać, zapisywać, wykonywać itd.

Czas, data i identyfikator użytkownika -dane o czasie utworzenia pliku, ostatniej modyfikacji, ostatnim użyciu itp.

Operacje plikowe

Tworzenie pliku (create) -niezbędne dwa kroki: (1)znalezienie miejsca na plik oraz (2)utworzenie wpisu pliku w katalogu (nazwa pliku i informacja o jego położeniu w systemie plików).

Zapisywanie pliku (write) -wywołanie odpowiedniej funkcji systemowej i podanie jej nazwy pliku oraz informacji, która ma być zapisana; system musi przechowywać wskaźnik pisaniaokreślający miejsce pliku, do którego będzie się odnosić kolejna operacja pisania (musi być uaktualniany podczas każdego pisania).

Czytanie pliku (read) -wywołanie funkcji systemowej, której podaje się nazwę pliku oraz miejsce (w pamięci operacyjnej), gdzie należy umieścić następny blok pliku; potrzebny jest wskaźnik czytania. Niektóre systemy utrzymują tylko jeden wskaźnik bieżącego położenia w pliku(current-file-position) -używany zarówno do czytania, jak i pisania (oszczędność miejsca, uproszczenie systemu).

Zmiana pozycji w pliku (repositioning) lub przemieszczenie w pliku (seek) -nadanie określonej wartości wskaźnikowi bieżącego położenia w pliku.

Usuwanie pliku (deleting) -zwolnienie całej przestrzeni zajmowanej przez plik i likwidacja danego wpisu katalogowego.

Skracanie pliku (truncating) -ponowne ustalenie zerowej długości pliku przy niezmienionych pozostałych atrybutach.

53. Omów metody dostępu do pliku.

Dostęp sekwencyjny (sequential access) -informacje w pliku są przetwarzane sekwencyjnie, jeden rekord za drugim; najpowszechniejszy rodzaj dostępu (np. edytory, kompilatory).

Dostęp bezpośredni (direct access) -plik składa się z rekordów logicznych o stałej długości, które mogą być przetwarzane bez jakiegokolwiek porządku, tzn. bezpośrednio:

Operacje czytania i pisania typu: czytaj n; pisz n;gdzie n jest numerem bloku -zwykle tzw. numerem względnym bloku(relative block number), tzn. indeksem względem początku pliku.

Przy pomocy dostępu bezpośredniego można łatwo symulować dostęp sekwencyjny; symulacja w drugą stronę jest bardzo nieefektywna.

Dostęp indeksowy (indexed access) -z plikiem związany jest indeks zawierający wskaźniki do bloków pliku; dla dużych plików wprowadza się podwójne indeksowanie, tzn. pierwotny indeks zawiera wskaźniki do wtórnego indeksu, a ten do danych.

54. Przedstaw strukturę drzewiastą katalogów i omów jej właściwości.

Własności katalogów drzewiastych Własności drzewiastych

•Katalog zawiera zbiór plików lub podkatalogów.

•Jeden bit w każdym wpisie katalogowym określa, czy wpis dotyczy pliku (0), czy podkatalogu (1).

•Do tworzenia, usuwania, kopiowania, przenoszenia, zmiany katalogów służą specjalne funkcje systemowe.

•Podczas normalnej pracy każdy użytkownik ma do dyspozycji katalog bieżący (current directory).

•Nazwy ścieżek mogą być:

Bezwzględne -biegnie od korzenia aż do danego pliku (podkatalogu).

Względne -od bieżącego (lub domowego) katalogu do pliku (podkatalogu).

•Użytkownik ma możliwość tworzenia własnych podkatalogów, a tym samym kształtowania struktury własnych plików.

•Niektóre systemy pozwalają usuwać tylko puste katalogi (np. MS-DOS), a inne również katalogi z zawartością (np. UNIX:rm-r).

•Użytkownicy mogą mieć dostęp do plików innych użytkowników.

•Niektóre systemy pozwalają użytkownikom definiować własne ścieżki przeszukiwań (np. UNIX: zmienna$PATH).

55. Przedstaw i omów sens stosowania w praktyce acyklicznego grafu katalogów.

Graf acykliczny (acyclicgraph) umożliwia dzielenie plików i katalogów.

56. Omów w skrócie problem montowania i współdzielenia systemu plików.

Zanim system plików stanie się dostępny dla procesów musi zostaćzamontowany (mounted).

Procedura montażu:

Systemowi operacyjnemu podaje się nazwę urządzenia oraz punkt montażu (mountpoint), tzn. miejsce w strukturze plików, do którego należy przyłączyćsystem plików; na ogół jest to pusty katalog.

System operacyjny sprawdza, czy urządzenie zawiera właściwy system plików (tzn. przy pomocy modułu obsługi urządzenia czyta katalog i sprawdza jego format).

Na koniec system operacyjny zaznacza w swojej strukturze katalogowej zamontowanie pliku w określonym punkcie montażu.

W systemach umożliwiających użytkownikom wspólne korzystanie z plików konieczne jest kontrolowanie dostępui ochrona-system operacyjny musi pośredniczyć w dzieleniu plików.

•W większości systemów przyjęto koncepcję właściciela (użytkownika) i grupypliku lub katalogu.

•Właścicielem jest użytkownik, który może zmienić atrybuty, zezwalać na dostęp i ma największą kontrolę nad plikiem lub katalogiem.

•Grupowy atrybut pliku służy do definiowania podzbioru użytkowników, którzy mogą dzielićdostęp do pliku.

57. Przedstaw w punktach problemy związane z ochroną plików.

58. Przedstaw i omów warstwowy system plików.

Programy użytkowe

Logiczny system plików

Moduł organizacji pliku

Podstawowy system plików

Sterowanie wejściem-wyjściem

Urządzenia

Aby utworzyć nowy plik, program użytkowy wywołuje logiczny system plików.

•Logiczny system plików czyta do pamięci odpowiedni katalog, uaktualnia go dodając nowy wpis i zapisuje ponownie na dysku (niektóre systemy, np. UNIX, traktują katalogi tak samo jak pliki, inne, jak np. Windows XP, jako odrębne jednostki).

•Aby udostępnić plik operacjom WE/WY należy go otworzyć. Informacje o otwartych plikach są przechowywane w tablicy otwartych plików, rezydującej w pamięci operacyjnej.

•Do programu użytkownika przekazuje się indeks tej tablicy, zwany deskryptorem pliku (UNIX), uchwytem plikowym (file handle) (Windows XP)lub blokiem kontrolnym pliku (filecontrolblock-FCB)

59. Omów przydział ciągły miejsca na dysku.

Przydział ciągły ((contiguous allocationcontiguous allocation))

•Każdy plik musi zajmować ciąg kolejnych bloków na dysku.

•Wpis katalogowy pliku zawiera adres bloku początkowego i długość obszaru przydzielonego danemu plikowi.

Dostęp do pliku jest łatwy; możliwy dostęp sekwencyjny jak i bezpośredni (adres bloku iw pliku o bloku początkowym b: b + i).

Minimalny ruch głowicy dysku w obrębie danego pliku.

Problem przydziału miejsca dla nowego pliku -dynamiczny przydział pamięci(jak dla pamięci operacyjnej):najpowszechniej stosowane strategie pierwszego lub najlepszego dopasowania.

Występuje fragmentacja zewnętrzna.

Plik nie może rosnąć albo trzeba z góry określić jego maksymalny rozmiar (na ogół trudne!) →fragmentacja wewnętrzna.

60. Omów przydział listowy miejsca na dysku.

•W przydziale listowym (linked allocation)każdy plik jest listą powiązanych ze sobą bloków dyskowych; bloki te mogą znajdować się gdziekolwiek na dysku.

•Katalog zawiera wskaźnik do pierwszego i ostatniego bloku pliku.

•Każdy blok zawiera wskaźnik do następnego bloku.

Łatwy i efektywny dostęp sekwencyjny do pliku (np. przy pisaniu znajduje się kolejne wolne bloki i tworzy odpowiednie dowiązania).

Brak fragmentacji zewnętrznej -nie ma potrzeby upakowywania.

Plik może rosnąć dopóki są wolne bloki -nie trzeba deklarować rozmiaru pliku.

Realizacja dostępu bezpośredniego jest niewydajna (dostęp do bloku i wymaga przeszukiwania listy od początku pliku).

Wskaźniki pochłaniają część przestrzeni dyskowej:

W celu zaoszczędzenia miejsca czasami bloki łączy się po kilka w tzw. klastry i przydziela się klastry - zwiększa to jednak fragmentację wewnętrzną.

Gorsza niezawodność -zagubienie lub uszkodzenie wskaźnika w którymś bloku może spowodować utratę fragmentu pliku.

61. Omów indeksowy przydział miejsca na dysku.

W przydziale indeksowym każdy plik ma własny blok indeksowy, będący tablicą adresów bloków dyskowych.

•Pozycja o numerze i w bloku indeksowym wskazuje na blok i pliku.

•Katalog zawiera adres bloku indeksowego.

Umożliwia dostęp bezpośredni (bez fragmentacji zewnętrznej).

Marnowanie przestrzeni dyskowej na bloki indeksowe, szczególnie dla małych plików (potrzebny dodatkowy blok dyskowy na indeks).

62. Omów metody zarządzanie wolną przestrzenią dyskową oraz poprawy wydajności systemu plików.

Główne metody: ciągła ,listowa i indeksowa

Ciągły:

Listowy

Indeksowy

63. Co to jest system plików ze struktura dziennika?Podaj jego krótką charakterystykę i przykłady.

System plikow polega na uaktualnianiu metadanych systemu plików za pomocą technik odtwarzania opartych na dzienniku→transakcyjne systemy plików ze strukturą dziennika zwane też systemami plików zkronikowaniem Wszystkie zmiany metadanych zapisuje się po kolei w dzienniku(bufor cykliczny)-każdy zestaw operacji jest transakcją. Z chwilą zapisania zmian do dziennika uważa sięje za zatwierdzone i może nastąpić powrót z wywołania systemowego do procesu użytkownika. Tymczasem zarejestrowane wpisy są odtwarzane w rzeczywistych strukturach systemu. Po zakończeniu zmian uaktualniany jest wskaźnik pokazujący, które działania zostały zakończone, a które są jeszcze niekompletne. Po zakończeniu całej zatwierdzonej transakcji usuwa się jąz dziennika.

Transakcja jest zapisywana w dzienniku(bufor cykliczny)

Tymczasem zarejestrowane wpisy są odtwarzane w rzeczywistych strukturach systemu. Po zakończeniu zmian uaktualniany jest wskaźnik pokazujący, które działania zostały zakończone, a które są jeszcze niekompletne. Po zakończeniu całej zatwierdzonej transakcji usuwa się jąz dziennika.

64. Przedstaw strukturę szynowa typowego PC oraz scharakteryzuj urządzenie wejścia-wyjścia.

Typowe elementy sprzętowe WE/WY: Port (port) -punkt, przez który urządzenie kontaktuje się z maszyną; Szyna (magistrala) (bus) -wspólna wiązka przewodów, z której korzysta jedno lub więcej urządzeń, posiadająca ściśle zdefiniowany protokół, precyzujący zbiór komunikatów, który można tymi przewodami przesyłać. Np. szyna PCI, szyna rozszerzająca, szyna SCSI w komputerach PC. Sterownik (controller) -zespół układów elektronicznych służących do kierowania pracą portu, szyny lub urządzenia. Niektóre urządzenia mają własne, wbudowane sterowniki, np. napęd dysku posiada sterownik dysku.•Komunikacja między procesorem a sterownikiem: Sterownik ma rejestry do pamiętania danych i sygnałów sterujących. Procesor czyta i zapisuje układy bitów w tych rejestrach. Do realizacji komunikacji służą specjalne rozkazy WE/WY określające przesłanie bajta lub słowa na adres portu WE/WY.

0x01 graphic

65. Omów mechanizm odpytywania oraz przerwań w kontekście obsługi urządzeń wejścia-wyjścia.

Prostym protokołem konwersacji między procesorem głównym a sterownikiem urządzenia jest tzw. uzgadnianie (handshaking). Przykład: Komunikacja typu producent-konsument-potrzebne 2 bity

1.Procesor powtarza czytanie bitu zajętedopóki nie przyjmie on wartości 0, tzn. wykonuje aktywne czekanie lub inaczej odpytywanie.2.Procesor ustawia bit pisania(write bit) w rejestrze poleceń i wpisuje bajt do rejestru danych wyjściowych.3.Procesor ustawia bit gotowości polecenia. 4.Gdy sterownik stwierdzi, że powyższy bit jest ustawiony, to ustawia bit zajęte.5.Sterownik czyta rejestr poleceń i rozpoznaje polecenie pisania, następnie czyta bajt w rejestru danych wyjściowych i wykonuje na urządzeniu operację WE/WY.6.Sterownik czyści bit gotowości polecenia oraz bit błędu (error bit) w rejestrze stanu (operacja się powiodła), a następnie czyści bit zajęte, sygnalizując, że zakończył działanie. Schemat odpytywania można stosować gdy sterownik i urządzenie są szybkie, natomiast dla wolnych urządzeń marnuje się dużo czasu

66. Co to jest bezpośredni dostęp do pamięci? Omów etapy przesyłania w tym trybie.

Sterownik bezpośredniego dostępu do pamięci (direct memory access -DMA) jest to wyspecjalizowany procesor do przesyłania danych w trybie DMA:

Choć sterownik DMA kradnie cykle pamięci procesorowi głównemu, to jednak stosowanie przesyłania DMAzwykle poprawiaogólną wydajność systemu.

Płyty WE/WY komputerów PC służące do zarządzania szyną (bus-mastering) zwykle posiadają własny sprzęt DMA o dużej szybkości.

Etapy:

  1. Moduł sterujący urządzenia otrzymuje polecenie przesła-niadanych dyskowych do bufora pod adresem X.

  2. Moduł sterujący urządzenia zawiadamia dysk o potrzebie przesłania Cbajtów do bufora pod adresem X.

  3. Sterownik dysku rozpoczyna przesyłanie DMA.

  4. Sterownik dysku wysyła bajt za bajtem do sterownika DMA.

  5. Sterownik DMA przesyła bajty do bufora X, zwięk-szającadres pamięci i zmniejszając C dopóty, dopóki C jest różne od 0.

  6. Kiedy C=0, wtedy sterownik DMA przerywa pracę proce-soraw celu zasygnalizowa-niazakończenia przesyłania.

67. Scharakteryzuj urządzenia blokowe, znakowe i sieciowe.

Urządzenia blokowe -urządzenia umożliwiające swobodny dostęp do całkowicie niezależnych bloków danych o stałym rozmiarze, np. dyski.

Polecenia: czytaj,pisz iszukaj (dla urządzeń o dostępie bezpośrednim).

Dostęp do takiego urządzenia odbywa się w aplikacjach zwykle poprzez interfejs systemu plików.

Urządzenia znakowe -obejmują większość innych urządzeń przetwarzających liniowy strumień bajtów, np. taśmy, klawiatury, terminale, myszy, głośniki, mikrofony itd.; nie muszą mieć wszystkich własności regularnych plików.

Podstawowe polecenia: pobranie (get) i przekazanie (put) jednego znaku.

Oprogramowanie biblioteczne znajdujące się powyżej tego interfejsu udostępnia jednorazowe przesyłanie całych wierszy tekstu z możliwością ich buforowania i edytowania liniowego (np. używając klawiszaBackspace).

Urządzenia sieciowe-użytkownicy nie mogą do nich bezpośrednio przekazywać danych, lecz muszą się komunikować za pośrednictwem podsystemu sieciowego jądra.

Systemy rodziny UNIX oraz Windows NT/9x/2000/XP posiadają interfejs gniazda sieciowego(socket).Gniazdo to, oddziela protokół sieciowy od operacji sieciowej.

68.Co to są wywołania systemowe blokujące, nieblokujące i asynchroniczne? Podaj przykłady.

Wykonanie przez proces blokującego (blocking) wywołania systemowego WE/WY powoduje wstrzymanie jego działania do czasu zakończenie wykonywania tego wywołania.

Kod aplikacji z blokowaniem jest łatwiejszy do zrozumienia i użycia.

Niewystarczające dla pewnych potrzeb, np. klawiatura (mysz) i ekran.

Nieblokujące (nonblocking) wywołanie systemowe WE/WY nie wstrzymuje wykonywania aplikacji na dłuższy czas, lecz kończy się szybko, przekazując informację o liczbie przesłanych bajtów.

Stosowane np. w interfejsach użytkownika, w których sygnały z klawiatury i myszki przeplatają się z przetwarzaniem i wyświetlaniem danych na ekranie.

Mogą być implementowanie przez wielowątkowość - podczas gdy jedne wątki są blokowane przez operacje WE/WY, inne mogą kontynuować działanie (np. biblioteka poziomu użytkownika w systemie Solaris).

Asynchroniczne odwołanie do systemu - powrót następuje natychmiast, bez czekania na zakończenie operacji WE/WY.

Aplikacja kontynuuje wykonywanie swojego kodu.

Zakończenie operacji WE/WY następuje po pewnym czasie i zostaje zakomunikowane przez: ustawienie pewnej zmiennej w przestrzeni adresowej aplikacji, przekazanie sygnału, przerwanie programowe lub przywołanie.

69.Co to jest podsystem wejścia-wyjścia? Podaj i krótko omów jego zadania.

Podsystem IO to zespół mechanizmów służących do komunikacji systemu ze światem zewnętrznym.

Zadania:

Planowanie wejścia-wyjścia - określenie dobrego porządku wykonywania operacji WE/WY

Buforowanie (buffering) - przechowywanie danych w obszarze pamięci, zwanym buforem, w trakcie ich przesyłania między urządzeniami lub między urządzeniem a aplikacją

Przechowywanie podręczne (caching) - kopie danych przechowywane są w szybkiej pamięci podręcznej (cache)

Spooling - użycie bufora (spool) do przechowywania danych przeznaczonych dla urządzenia, które nie dopuszcza przeplatania danych w przekazywanym mu strumieniu (np. drukarka)

Rezerwacja urządzeń - dostarczanie jawnych środków dostępu

Obsługa błędów

Struktury danych jądra - jądro musi przechowywać informacje o stanie używanych składowych WE/WY; używa do tego rozmaitych, wewnętrznych struktur danych

Podsumowanie:

Podsystem WE/WYnadzoruje:

•Zarządzanie przestrzenią nazw plików i urządzeń.

•Kontrolowanie dostępu do plików i urządzeń.

•Poprawność operacji.

•Przydzielanie urządzeń.

•Buforowanie, przechowywanie podręczne oraz spooling.

•Planowanie operacji WE/WY.

•Doglądanie stanu urządzeń, obsługę błędów oraz czynności naprawcze po awarii.

•Konfigurowanie i wprowadzanie w stan początkowy modułu sterującego urządzenia.

70.Co to jest strumień? Omów jego strukturę.

Strumień (stream) systemu UNIX w wersji V jest jedno-kierunkowym połączeniem między modułem sterującym a procesem poziomu użytkownika -składa się z:

Czoła strumienia (stream head) -interfejs z procesem użytkownika.

Zakończenia modułu sterującego (driver end) - nadzoruje urządzenie.

Dowolnej liczbymodułów strumienia (stream modules) między czołem strumienia a jego zakończeniem.

Strumieni można używać do komunikacji międzyprocesowej i sieciowej (np. gniazda są zrealizowane za pomocą strumieni).



Wyszukiwarka

Podobne podstrony:
TAM GDZIE PLUS TO ODPOWIEDŹ POPRAWNA, UŁ Sieci komputerowe i przetwarzanie danych, Semestr II, Syste
systemy operacyjne egzamin pytania-odpowiedzi, !!!Uczelnia, wsti, materialy, II SEM
Systemy operacyjne
5 Systemy Operacyjne 23 11 2010 Zarządzanie procesami
zasady grupy, java, javascript, oprogramowanie biurowe, programowanie, programowanie 2, UTK, systemy
Systemy Operacyjne lab4, Politechnika Wrocławska, Systemy Operacyjne
format[1], Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr I
System plików, zOthers, Systemy operacyjne i sieci komputerowe
quota, !!!Uczelnia, wsti, materialy, II SEM, systemy operacyjne linux
Rafał Polak 12k2 lab8, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
System operacyjny
01 Systemy Operacyjne ppt
12 wspomaganie systemu operacyjnego pamiec wirtualna
Pytania do egzaminu z Systemow Operacyjnych cz, EdukacjaTEB
W2K3-15-raport, WAT, SEMESTR VII, Systemy operacyjne windows, Systemy operacyjne windows, sow, W2K3-
Pamięci dynamiczne RAM, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr I

więcej podobnych podstron