Przejdź do głównej zawartości
1. Co to jest system operacyjny – Podaj przynajmniej 3 definicje
System operacyjny jest programem, który działa jako pośrednik między użytkownikiem komputera a sprzętem komputerowym. Zadaniem systemu operacyjnego jest tworzenie środowiska, w którym użytkownik może wykonywać programy. Podstawowym celem systemu operacyjnego jest spowodowanie, aby system komputerowy był wygodny w użyciu, drugim zaś celem jest wydajna eksploatacja sprzętu komputerowego. System operacyjny (ang. operating system) jest ważną częścią prawie każdego systemu komputerowego. Nadzoruje i koordynuje on posługiwanie się sprzętem przez różne programy użytkowe, które pracują na zlecenie różnych użytkowników. System operacyjny jest programem sterującym (ang. control program). Program sterujący nadzoruje działanie programów użytkownika, przeciwdziałania błędom i zapobiega niewłaściwemu użyciu komputera. Zajmuje się zwłaszcza obsługiwaniem i kontrolowaniem pracy urządzeń wejścia-wyjścia
2. Scharakteryzuj proste systemy wsadowe:
Pierwsze komputery były wielkimi (fizycznie) maszynami obsługiwanymi za pośrednictwem konsoli. Popularnymi urządzeniami wejściowymi były czytniki kart i przewijaki taśm. Na wyjściu najczęściej można było spotkać drukarki wierszowe, przewijaki taśm i perforatory kart. Użytkownicy takich systemów nie współpracowali bezpośrednio z systemem komputerowym. Użytkownik przygotowywał zadanie, które składało się z programu, danych i pewnych, charakteryzujących zadanie informacji sterujących (karty sterujące), po czym przedkładał to wszystko operatorowi komputera. W późniejszym czasie (po minutach, godzinach lub dniach) pojawiały się informacje wyjściowe zawierające wyniki działania programu, a niekiedy obraz jego pamięci -jeśli działanie programu zakończyło się błędem. Podstawowym ich obowiązkiem było automatyczne przekazywanie sterowania od jednego zadania do następnego. System operacyjny rezydował na stałe w pamięci operacyjnej. Aby przyspieszyć przetwarzanie zadania o podobnych wymaganiach grupowano razem i wykonywano w komputerze w formie tzw. wsadu (ang. batch). Programiści zostawiali zatem programy operatorowi. Operator sortował je w grupy o podobnych wymaganiach i z chwilą, gdy komputer stawał się dostępny, przekazywał poszczególne pakiety zadań do wykonania. Wyróżniającą cechą systemu wsadowego jest brak bezpośredniego nadzoru ze strony użytkownika podczas wykonywania zadania. Zadania są przygotowywane i przedkładane. Wyniki pojawiają się po jakimś czasie. Zwłoka między przedłożeniem zadania a jego zakończeniem, czyli "czas obiegu zadania" (ang. turnaround time), może wynikać z ilości obliczeń lub być spowodowana opóźnieniem rozpoczęcia zadania przez system. W takim środowisku wykonywania programów jednostka centralna często pozostawała bezczynna. Przyczyna tych przestojów wynikała z szybkości działania mechanicznych urządzeń wejścia/wyjścia, które z natury są wolniejsze od urządzeń elektronicznych.
3. Opisz wieloprogramowane systemy wsadowe
Z tymi systemami wiąże się spooling. Ze spoolingiem natomiast jest związana bardzo ważna struktura danych - pula zadań (ang. job pool). Spooling powoduje, że pewna liczba zadań jest zawczasu czytana na dysk, gdzie czeka gotowa do wykonania. Dzięki istnieniu puli zadań na dysku system operacyjny może tak wybierać następne zadania do wykonania, aby zwiększyć wykorzystanie jednostki centralnej. Gdy kilka zadań znajdzie się na urządzeniu o dostępie bezpośrednim -jak dysk, wówczas staje się możliwe planowanie zadań (szeregowanie zadań; ang. job scheduling). Planowanie zadań i przydziału procesora omawiamy szczegółowo w następnych wykładach. Tutaj podamy kilka istotnych aspektów tego zagadnienia. Najważniejszym aspektem planowania zadań jest możliwość wieloprogramowania. Idea jest następująca. W tym samym czasie system operacyjny przechowuje w pamięci kilka zadań. System operacyjny pobiera któreś z zadań do pamięci i rozpoczyna jego wykonywanie.. Prędzej czy później zadanie to może zacząć oczekiwać na jakąś usługę, na przykład na zamontowanie taśmy lub na zakończenie operacji wejścia-wyjścia. W systemie jedno-programowym jednostka centralna musiałaby wówczas przejść w stan bezczynności. W systemie wieloprogramowym można po prostu przejść do wykonywania innego zadania itd. Po jakimś czasie pierwsze zadanie skończy oczekiwanie i otrzyma z powrotem dostęp do procesora. Dopóki są jakieś zadania do wykonania, dopóty jednostka centralna nie jest bezczynna. Wieloprogramowane systemy operacyjne są więc dość skomplikowane. Jeżeli kilka zadań jest gotowych do wprowadzenia do pamięci operacyjnej, lecz brakuje dla wszystkich miejsca, to system musi wybierać spośród nich. Podejmowanie takich decyzji jest planowaniem zadań (szeregowaniem zadań).Jeżeli kilka zadań jest gotowych do działania w tym samym czasie, to system musi wybrać któreś z nich. Tego rodzaju decyzje planowaniem przydziału procesora (ang. CPU scheduling) Wieloprogramowane systemy wsadowe tworzą środowisko, w którym rozmaite zasoby systemowe (np. jednostka centralna, pamięć operacyjna, urządzenia zewnętrzne) są skutecznie użytkowane. Ich wadą jest to, że użytkownik nie może ingerować w zadanie podczas jego wykonywania, musi przygotować karty sterujące na okoliczność wszystkich możliwych zdarzeń. W zadaniu wykonywanym krok po kroku następne kroki mogą zależeć od wcześniejszych wyników. Na przykład uruchomienie programu może zależeć od powodzenia fazy kompilacji. Trudno przewidzieć, co należy robić we wszystkich przypadkach.Inną wadą jest konieczność statycznego testowania programów na podstawie ich migawkowych obrazów pamięci. Programista nie może na bieżąco zmieniać programu w celu zaobserwowania jego zachowań. Długi czas obiegu zadania wyklucza eksperymentowanie z programem. (I na odwrót - sytuacja taka może powodować zwiększenie dyscypliny przy pisaniu i testowaniu programu).
4. Opisz systemy z podziałem czasu, ich wady i zalety
Podział czasu (inaczej wielozadaniowość; ang. multitasking) stanowi logiczne rozszerzenie wieloprogramowości. Procesor wykonuje na przemian wiele różnych zadań, przy czym przełączenia następują tak często, że użytkownicy mogą współdziałać z każdym programem podczas jego wykonania. Interakcyjny lub bezpośredni (ang. hands-on) system komputerowy umożliwia bezpośredni dialog użytkownika z systemem. Użytkownik wydaje bezpośrednio instrukcje systemowi operacyjnemu lub programowi i otrzymuje natychmiastowe odpowiedzi. Użytkownik może łatwo eksperymentować i natychmiast oglądać rezultaty. Większość systemów ma interakcyjne edytory tekstów do wprowadzania programów i interakcyjne programy uruchomieniowe, ułatwiające usuwanie błędów z programów. Aby użytkownicy mogli wygodnie korzystać zarówno z danych, jak i z oprogramowania, powinien mieć bezpośredni dostęp do systemu plików (ang. on-line file system). Plik (ang. file) jest zestawem powiązanych informacji, zdefiniowanym przez jego twórcę. W plikach pamięta się programy (zarówno w postaci źródłowej, jak i wynikowej) oraz dane. Pliki danych mogą zawierać liczby, teksty lub mieszane dane alfanumeryczne. Pliki mogą mieć układ swobodny, jak w plikach tekstowych, lub precyzyjnie określony format. Mówiąc ogólnie, plik jest ciągiem bitów, bajtów, wierszy lub rekordów, których znaczenie jest określone przez jego twórcę i użytkownika W systemie operacyjnym z podziałem czasu zastosowano planowanie przydziału procesora i wieloprogramowość, aby zapewnić każdemu użytkownikowi możliwość korzystania z małej porcji dzielonego czasu pracy komputera. Załadowany do pamięci operacyjnej i wykonywany w niej program przyjęto nazywać procesem (ang. process). System operacyjny z podziałem czasu sprawia, że wielu użytkowników dzieli (ang. share) równocześnie jeden komputer. Ponieważ pojedyncze działania lub polecenia w systemie z podziałem czasu trwają krótko, każdemu użytkownikowi wystarcza mały przydział czasu jednostki centralnej. Dzięki błyskawicznym przełączeniom systemu od jednego użytkownika do drugiego, każdy z nich odnosi wrażenie, że dysponuje własnym komputerem, choć w rzeczywistości jeden komputer jest dzielony pomiędzy wielu użytkowników. Systemy operacyjne z podziałem czasu są jeszcze bardziej złożone niż wieloprogramowe systemy operacyjne. Tak jak w wieloprogramowości, w pamięci operacyjnej należy przechowywać jednocześnie wiele zadań, które potrzebują pewnych form zarządzania pamięcią i ochrony. Aby zagwarantować akceptowalny czas odpowiedzi, zadania z pamięci operacyjnej trzeba niekiedy odsyłać na dysk i wprowadzać do niej z powrotem. Dysk staje się zapleczem dla pamięci głównej komputera. Popularną metodą osiągania tego celu jest pamięć wirtualna (ang. virtual memory), czyli technika umożliwiająca wykonywanie zadania nie mieszczącego się w całości w pamięci operacyjnej. Najbardziej widoczną zaletą takiego rozwiązania jest umożliwienie wykonania programów większych niż pamięć fizyczna. Systemy z podziałem czasu muszą też dostarczać bezpośrednio dostępnego systemu plików, należy więc także zapewnić zarządzanie dyskami. Systemy z podziałem czasu muszą też umożliwiać działania współbieżne, a to wymaga przemyślanych metod przydziału procesora. Aby zagwarantować porządek wykonywanych działań, w systemie muszą istnieć mechanizmy synchronizowania zadań oraz komunikacji między nimi . System musi również zapewniać, że zadania nie będą się zakleszczać, nieustannie wzajemnie na siebie czekając.
5. Omów systemy równoległe i podział tych systemów
Dzisiejsze systemy są w większości jednoprocesorowe, tzn. mają tylko jedną, główną jednostkę centralną. Obserwuje się jednakże zainteresowanie systemami wieloprocesorowymi (ang. multiprocessor systems). W systemach tego rodzaju pewna liczba procesorów ściśle współpracuje ze sobą, dzieląc szynę komputera, zegar, a czasami pamięć i urządzenia zewnętrzne. Systemy takie dzieli się na ściśle powiązanymi (ang. tightly coupled) lub luźno powiązanymi (loosely coupled). Istnieje kilka powodów uzasadniających budowanie takich systemów. Jednym z argumentów jest zwiększenie przepustowości (ang. throughput). Zwiększając liczbę procesorów, możemy oczekiwać, że większą ilość pracy da się wykonać w krótszym czasie. Jednak współczynnik przyspieszenia przy n procesorach nie wynosi n, lecz jest od n mniejszy.
6. Omów systemy operacyjne rozproszone, do czego służą?
W tworzonych ostatnio systemach komputerowych dajesię zauważyć tendencja do rozdzielania obliczeń międzywiele procesorów W porównaniu ze systemami równoległymi, procesory te nie dzielą pamięci ani zegara. Każdy procesor ma natomiast własną pamięć lokalną. Procesory komunikują się za komputerowej. Systemy takie nazywają się systemami rozproszonymi (ang.distributed systems). Procesory w systemach rozproszonych mogą się różnić pod względem rozmiaru i przeznaczenia. Mogą wśród nich być małe mikroprocesory, stacje robocze, minikomputery i wielkie systemy komputerowe ogólnego przeznaczenia. Systemy rozproszone buduje się z wielu powodów; wymienimytu kilka ważniejszych Podział zasobów: Po połączeniu ze sobą różnych stanowisk (o różnych możliwościach) użytkownik jednego stanowiska może korzystać z zasobów dostępnych na innym Przyspieszanie obliczeń: Jeśli pewne obliczenie da się rozłożyć na zbiór obliczeń cząstkowych, które można wykonywać współbieżnie, to system rozproszony umożliwia przydzielenie tych obliczeń do poszczególnych stanowisk i współbieżne ich wykonanie Ponadto, jeżeli pewne stanowisko jest w danej chwili przeciążone zadaniami, to część z nich można przenieść do innego, mniej obciążonegostanowiska: dzielenie obciążeń (ang. load sharing). Niezawodność: W przypadku awarii jednego stanowiska w systemurozproszonym pozostałe mogą kontynuować pracę Komunikacja: Istnieje wiele sytuacji, w których programy muszą wymieniać dane między sobą w ramach jednego systemu. Użytkownicy sieci mogą przesyłać pliki lub kontaktować się ze sobą
7. Opisz systemy czasu rzeczywistego, gdzie mają zastosowanie?
System czasu rzeczywistego jest stosowany tam, gdzie istnieją surowe wymagania na czas wykonania operacji lub przepływu danych, dlatego używa się go często jako sterownika w urządzeniu o ściśle określonym celu. Rygorystyczny system czasu rzeczywistego (ang. hard real- time system) gwarantuje terminowe wypełnianie krytycznych zadań. Łagodny system czasu rzeczywistego (ang. soft real-time system), w którym krytyczne zadanie do obsługi w czasie rzeczywistym otrzymuje pierwszeństwo przed innymi zadaniami i zachowuje je aż do swojego zakończenia
8. Opisz cykl rozkazu komputera AMDAHL 470V/6
W komputerze AMDAHL 470V/6 instrukcje byłypodzielone na 6 faz (FI, DI, CO, FO, EI, WO) FI–Fetch Instruction-Pobieranie instrukcji DI – Decode Instruction – Dekodowanie instrukcji CO – Calculate Operands – Obliczenie adresu argumentów FO–FetchOperands–Pobieranie argumentów EI–Execute Instruction–Wykonanie instrukcji WO – Write Operands – Zapis wyniku Po wykonaniu rozkazu na argumentach jego wynikmożna z powrotem przechować w pamięci
9. Podaj hierarchię pamięci i opisz znane ich typy.
Hierarchia pamięci Przemieszczając się w dół hierarchii– Zwiększamy czas dostępu i zmniejszamy koszt jednego bajtu Dyski magnetyczne Dyski magnetyczne stanowią zdecydowaną większość pamięcipomocniczych współczesnych systemów komputerowych. Każda płyta (ang. platter) dysku ma kształt kolisty, jak płyta kompaktowa. Obie powierzchnie płyty są pokryte materiałem magnetycznym, podobnym do stosowanego na taśmachmagnetycznych. Informacje przechowuje się przezodpowiednie namagnesowanie warstwy magnetycznej Napęd dysku jest podłączony do komputera za pomocą wiązkiprzewodów nazywanych szyną wejścia-wyjścia (ang. I/O bus). Jest kilka rodzajów szyn, w tym ATA, SATA, EIDE i SCSI.Przesyłanie danych szyną odbywa się pod nadzoremspecjalnych, elektronicznych procesorów, nazywanychsterownikami (ang. controllers). Sterownik macierzysty (ang.host controller) to sterownik po stronie szyny przylegającej dokomputera. Sterownik dysku (ang. disk controller) jestwbudowany w każdy napęd dyskowy. Taśmy magnetyczne Taśma magnetyczna (ang. magnetic tape) jako nośnik pamięci pomocniczej była używana od dawna. Choć jest ona względnie trwała i można na niej przechowywać wielkie ilości danych, ma długi czas dostępu w porównaniu z pamięcią operacyjną. Dostęp losowy do taśmy magnetycznej jest tysiące razy wolniejszy niż dostęp losowy do dysku magnetycznego, toteż taśmy nie są wygodne w roli pamięci pomocniczej Taśm używa się głownie do przechowywania informacjirzadko używanych oraz jako środka do transportuinformacji z jednego systemu do drugiego. Pamięć Cache Stosowanie pamięci podręcznej (ang. caching) jest ważną zasadą przy projektowaniu systemów komputerowych W normalnych warunkach informacje są przechowywane w jakimś systemie pamięci (np. w pamięci operacyjnej Przed ich użyciem są kopiowane do szybszego systemu pamięci - tj. do mięci podręcznej - na okres przejściowy Gdy jest potrzebny jakiś fragment informacji, wtedy sprawdza się najpierw, czy nie ma go w pamięci podręcznej. Jeśli jest, informacje pobiera się wprost z pamięci podręcznej; jeśli nie, to korzysta się z informacji w głównym systemie pamięci, umieszcza ich kopię w pamięci podręcznej przy założeniu, że istnieje duże prawdopodobieństwo, że będą one znów potrzebne Zarządzanie pamięcią podręczną (ang. cache management) jestważnym zagadnieniem projektowym ze względu na ograniczone rozmiary tych pamięci staranny dobór wielkości pamięci podręcznej i polityki zastępowania w niej formacji może spowodować, że 80 do 99% wszystkich dostępów będzie się przenosić do pamięci podręcznej, co w dużym stopniu usprawni działanie systemu. Wykorzystanie pamięci Cache Wykorzystanie szybkiej pamięci do przechowywania najczęściej używanych danych – Pamięć podręczna procesora– Pamięć podręczna dysku Wymaga wprowadzenie polityki zarządzania pamięcią podręczną. Problem spójności pamięci podręcznej: (ang. cachecoherency) Informacja przechowywana w pamięci podręcznej niezgodna z informacją przechowywaną w pamięci głównej Przykład 1. System dwuprocesorowy. Każdy procesor ma własną pamięć podręczną. Zawartość jednej komórki pamięciprzechowywana w obydwu pamięciach podręcznych. Procesor A zapisuje tę komórkę, Procesor B próbuje odczytu ....... Przykład 2. Pamięć podręczna dysku. Zmodyfikowana zawartośćpewnych sektorów dysku jest przechowywana przez pewien czas wpamięci operacyjnej zanim zostanie zapisana fizycznie na dysk.Jeżeli w tym czasie nastąpi załamanie systemu ............ Pamięć operacyjna główna Pamięć operacyjną (główną) można uważać za szybką pamięć podręczną pamięci pomocniczej, gdyż dane z pamięci pomocniczej muszą być przeniesione do pamięci operacyjnej, a dane przeznaczone do przemieszczenia do pamięci pomocniczej w celu bezpiecznego przechowywania muszą wpierw znajdować się w pamięci operacyjnej Dane systemu plików mogą występować na kilku poziomach w hierarchii pamięci. Na najwyższym poziomie system operacyjny może utrzymywać pamięć podręczną danych systemu plików w pamięci operacyjnej Do bardzo szybkiego, ulotnego pamiętania można również stosowaćelektroniczne RAM-dyski, udostępniane z pomocą interfejsu systemu plików Przemieszczanie informacji między poziomami hierarchii pamięci możebyć jawne lub niejawne - zależnie od konstrukcji sprzętu i nadzoru zestron programowania systemu operacyjnego. – przesyłanie danych z pamięci podręcznej do jednostki centralnej i rejestrów jest zwykle funkcją sprzętową, nie wymagającą żadnejinterwencji ze strony systemu operacyjnego. – przesyłanie danych z dysku do pamięci operacyjnej jest zazwyczajnadzorowane przez system operacyjny
10. Opisz system przerwań (co to jest przerwanie, co może ją spowodować, jak obsłużyć)
Przerwania Przerwanie jest sygnałem pochodzącym odsprzętu lub oprogramowania i sygnalizuje wystąpienie zdarzenia Sygnały przerwań od sprzętu wysyłane są do procesora najczęściej za pośrednictwem szynysystemowej Oprogramowanie może spowodowaćprzerwanie poprzez wykonanie wywołaniasystemowego Zdarzenia powodujące przerwanie Zakończenie operacji wejścia-wyjścia Dzielenie przez zero, Niedozwolony dostęp do pamięci, Zapotrzebowanie na usługę systemu Itd. Każdemu przerwaniu odpowiada procedura obsługi. Istnieje wektor przerwań:Tablica wskaźników do procedur obsługujących poszczególne przerwania. – Indeksy tej tablicy odpowiadają numerom urządzeń „generujących” przerwania, a elementami tablicy sąadresy procedur obsługujących przerwania. – Pozwala to przyspieszyć operację obsługi przerwań Obsługa przerwań Przy przejściu do obsługi przerwania należy zapamiętać adres przerwanego rozkazu, a takżenp. zawartości rejestrów, jeżeli obsługaprzerwania zmienia je. W nowych systemach adres powrotny przechowywany jest na stosie systemowym. Podczas obsługi jednego przerwania inne są wyłączone, lub ustalone są priorytety przerwań(przerwania maskowane). Wyjątki Pułapka (wyjątek) jest rodzajem przerwania generowanym przez oprogramowanie, a spowodowanym przez błąd numeryczny (np. dzielenie przez zero) lub przez niewłaściwy dostęp do pamięci, bądź też na specjalnezamówienie użytkownika (wywołanieprocedury obsługiwanej przez systemoperacyjny)
11. Opisz usługi systemów operacyjnych, jakie funkcje pełnią?
System operacyjny tworzy środowisko, w którym są wykonywane programy, dostarcza on pewnych usług zarówno programom, jak i użytkownikom tych programów. Wykonanie programu: System powinien móc załadować program do pamięci i rozpocząć jego wykonywanie. Program powinien móc zakończyć swoją pracę w sposób normalny. Manipulowanie systemem plików: System plików ma znaczenie szczególne. Nie ulega wątpliwości, że programy muszą zapisywać i odczytywać pliki. Jest im również potrzebna możliwość tworzenia i usuwania plików przy użyciu ich nazw. Komunikacja: Istnieje wiele sytuacji, w których procesy wymagają wzajemnego kontaktu i wymiany informacji Wykrywanie błędów: System operacyjny powinien być nieustannie powiadamiany o występowaniu błędów. Przydzielanie zasobów: Jeżeli praca wielu użytkowników i wiele zadań wymaga dzielenie niektórych zasobów Rozliczanie: Przechowywanie danych o tym, którzy użytkownicy i w jakim stopniu korzystają z poszczególnych zasobów komputera Ochrona: Gdy kilka oddzielnych procesów jest wykonywanych współbieżnie, wówczas żaden proces nie powinien zaburzać pracy innych procesów lub samego systemu operacyjnego.
12. Podaj cechy procesu, na czym polega zarządzanie procesami przez S.O.
Proces jest programem, który jest aktualnie wykonywany. Jest to jednostka pracy w systemie. System składa się ze zbioru procesów, z których część to procesy systemu operacyjnego, a pozostałe są procesami użytkowymi. Proces służy do organizowania wykonywania programu w ten sposób, że stanowi on powiązanie niezbędnych zasobów systemu komputerowego i umożliwia kontrolę stanu tych zasobów, związaną z wykonywaniem programu. Istotne jest rozróżnienie pomiędzy procesem a programem. Program jest zbiorem instrukcji. Proces - cechy: Każdy proces reprezentowany jest w systemie przez blok kontrolny procesu. Blok ten jest miejscem gdzie przechowywane są informacje opisujące dany proces. Zgodnie z przyjętym modelem wszystkie realizowane przez komputer programy nazywane są procesami. Każdy proces ma swój wirtualny procesor. Podejście takie znacznie ułatwia zrozumienie działania systemu, gdyż pozwala na jego analizę jako zbiór równolegle działających procesów (nie trzeba skupiać się nad ciągłym przełączaniem procesora pomiędzy poszczególnymi zadaniami). Zarządzanie procesami przez S.O. : Tworzenie i usuwanie procesów użytkowych i systemowych, wstrzymywanie i wznawianie procesów, dostarczanie mechanizmów synchronizacji procesów, dostarczanie mechanizmów komunikacji procesów, dostarczanie mechanizmów obsługi zakleszczeń
13. Jakie znasz zasoby systemów komputerowych, jakie mechanizmy służą do ich ochrony?
Zasoby Zasobem jest element sprzętowy lub programowy systemu komputerowego, którego brak może potencjalnie zablokować wykonywanie programu (przetwarzanie). Przykłady zasobów: procesor, pamięć, plik (dane) itp. Zasoby można dzielić na podzielne i niepodzielne Zasób niepodzielny: zasób którego wykorzystanie przez jednego klienta nie można przerwać i oddać innemu do wykorzystania, a potem powrócić do obsługi klienta którego obsługę się przerwało (np. drukarka) Zasób podzielny: zasób którego wykorzystanie przez jednego klienta można przerwać i oddać innemu do wykorzystania, a potem powrócić do przerwanej obsługi pierwszego klienta (np. procesor) Podział zasobów •Ze względu na sposób wykorzystania: –zasoby odzyskiwalne (zwrotne, reusable), –zasoby nieodzyskiwalne (niezwrotne, zużywalne, consumable). •Ze względu na sposób odzyskiwania: –zasoby wywłaszczalne, –zasoby niewywłaszczalne. •Ze względu na tryb dostępu: –współdzielone, –wyłączne. Ochrona zasobów niepodzielnych: •Procedura TAS(m) często realizowana w postaci pojedynczego rozkazu maszynowego: •Procedura TAS(p) można wykorzystać dla ochrony zasobu, którego stan wskazuje zmienna p (chronionego zmienną p) –p=1 : zasób zajęty p=0: zasób wolny Ochrona zasobów niepodzielnych •Zasówka: zmienna chroniąca jakieś zasób (p=0 zasób wolny, p=1 zasób zajęty) wraz ze stworzoną z tą zmienną kolejkę oczekujących f(p) •Procedura wejścia: jeśli p=0 to p=1 w przeciwnym razie zawieść program i dołącz do kolejki f(p) •Procedura wyjścia: Jeśli f(p) != 0 to pierwszy w kolejce wprowadź w stan aktywny w przeciwnym razie p=0 Ochrona zasobów niepodzielnych •Semafor S: Zmienna S chroniąca zasób i kolejkę f(s). •Warunek początkowy S=S0 ( w zależności od problemu) Zapisz zgłoszenie na zasób: S=S-1 Zbadaj czy zasób jest zajęty (czy Smniejszy0) Jeśli tak, to zmień swój stan na zawieszony i ustaw się w kolejce Wykorzystaj zasób Zapisz, że zwolniłeś zasób: S=S+1 Zbadaj czy jest kolejka (Smniejszy0) Jeśli tak odblokuj pierwszego z kolejki Kontynuuj program
14. Podaj przykład działania semafora
Jeśli po operacji S=S-1 jest Smniejszy0 zasób zajęty •Jeśli po operacji S=S+1 Smniejszy=0 jest kolejka •Semafor S •P(s): V(s): Przykład: •Z pojedynczego zasobu chronionego semaforem S korzystają kolejno procesy I1 i I2. Jak się zachowuje semafor? •Zasób pojedynczy więc warunek początkowy S=1 •Ik – proces wchodzi do zasobu •Ik – proces wychodzi z zasobu Wnioski •Jeśli po operacji P(S) - wejście, po operacji S=S-1, Smniejszy0 to zasób zajęty •Jeśli po operacji V(S) – wyjście, po operacji S=S+1, Smniejszy to znaczy, że jest kolejka
15. Omów stany procesów
Nowy (new) — proces został utworzony. Gotowy (ready) — proces czeka na przydział procesora. –Proces mógłby się wykonywać, ale nie wykonuje się, ponieważ w tej chwili wykonuje się jakiś inny proces Wykonywany/Aktywny (running) — wykonywane są instrukcje programu. –W systemie z jednym procesorem w danej chwili jeden proces może być aktywny Oczekujący (waiting ) — proces oczekuje na jakieś zdarzenie, np. na zakończenie operacji wejścia - wyjścia, na przydział dodatkowego zasobu, synchronizuje się z innymi procesami. Zakończony (terminated) — proces zakończył działanie i zwalnia zasoby.
16. Podaj schemat przejścia procesów
w odpowiedziach był obrazek... oczekuje, przechodzi dalej, i tak dalej...
17. Co to jest planista, jakie znasz planistów jaka ich rola?
Dyspozytor (ang. scheduler), zwany czasami planistą niskopoziomowym (ang. low-level scheduler) – część systemu operacyjnego odpowiedzialna za przydzielanie czasu procesora w ramach przełączania zadań. Decyzja o tym, któremu procesowi przydzielić czas procesora jest podejmowana przez algorytm szeregowania. Do zadań dyspozytora należy m.in. przełączanie kontekstu. Planista krótkoterminowy, planista przydziału procesora (CPU Scheduler) — zajmuje się przydziałem procesora do procesów gotowych. Planista średnioterminowy (Medium Term Scheduler) — zajmuje się wymianą procesów pomiędzy pamięcią główną a pamięcią zewnętrzną (np. dyskiem). Planista długoterminowy, planista zadań (Long - Term Scheduler, Job Scheduler) — zajmuje się ładowaniem nowych programów do pamięci i kontrolą liczby zadań w systemie oraz ich odpowiednim doborem w celu zrównoważenia wykorzystania zasobów.
18. Co to jest wątek, podaj cechy wątku.
Wątek (lekki proces, lightweight process — LWP) jest obiektem w obrębie procesu ciężkiego (heavyweight), posiadającym własne sterowanie i współdzielącym z innymi wątkami tego procesu przydzielone (procesowi) zasoby: segment kodu i segment danych w pamięci, tablicę otwartych plików, tablicę sygnałów. Każdy wątek ma swój własny stan (Aktywny, Gotowy, Zablokowany, ... ). Ma swoje wartości rejestrów i licznika rozkazów. Ma swój własny stos (zmienne lokalne funkcji !!!). Ma dostęp do przestrzeni adresowej, plików i innych zasobów procesu - WSZYSTKIE WĄTKI TO WSPÓŁDZIELĄ. Operacje zakończenia, zawieszenia procesu dotyczą wszystkich wątków. Procesy są od siebie izolowane, wątki nie. Cechy wątków Zalety Utworzenie i zakończenie wątku zajmuje znacznie mniej czasu niż w przypadku procesu Możliwość szybkiego przełączania kontekstu pomiędzy wątkami tego samego procesu Możliwość komunikacji wątków bez pośrednictwa systemu operacyjnego Możliwość wykorzystania maszyn wieloprocesorowych SMP Wady “Źle zachowujący się wątek” może zakłócić pracę innych wątków tego samego procesu W przypadku dwóch procesów o odrębnych przestrzeniach adresowych nie jest to możliwe
19. Jakie są stany wątku / procesu w Linux
TASK_RUNNING —wykonywanie lub gotowość (do wykonania) TASK_INTERRUPTIBLE — oczekiwanie na zajście zdarzenia lub sygnał TASK_UNINTERRUPTIBLE — oczekiwanie na zajście zdarzenia, przy czym sygnały są ignorowane TASK_ZOMBI — stan zakończenia utrzymywany w celu przechowania deskryptora procesu ASK_STOP — zatrzymanie w wyniku otrzymania sygnału (np. SIGSTOP)
20. Stany wątku w Windows
• inicjalizowany – wartość „0” (stan wewnętrzny w trakcie tworzenia wątku) • gotowy – wartość „1” (oczekuje na przydział procesora) • wykonywany – wartość „2” • czuwający – wartość „3” (wybrany do wykonania jako następny) • zakończony – wartość „4” • oczekujący – wartość „5” (oczekuje na zdarzenie) • przejście – wartość „6” (oczekuje na sprowadzenie swoje stosu jądra z pliku wymiany) • unknown – wartość „7”
21. Przełączenie kontekstu
• przechodzenie między procesami • działania nieproduktywne ale niezbędne • czas przełączenia 1-1000 ms (zależnie od komputera) • podczas każdego przełączenia procesora należy zachować stan poprzedniego procesu oraz załadować przechowany stan nowego (context switch)
22. Parametry funkcji priorytetu
• wymagania odnośnie wielkości przestrzeni adresowej pamięci • czas oczekiwania (czas spędzony w stanie gotowości) • czas obsługi (czas przez, który proces wykorzystywał procesor) • rzeczywisty czas przebywania w systemie (czas obsługi + czas oczekiwania + czas realizacji żądań zasobowych) • priorytet zewnętrzny (wyróżnienie procesu ze względu na klasy użytkowników) • czasowa linia krytyczna (określa czas, po którym wartość wyników spada) • obciązęnie systemu (liczba procesów w systemie oczekujących na przydział procesora)
23. Reguły arbitrażu
• losowo (liczba procesów o tym samym priorytecie jest niska) • cyklicznie (cykliczny przydział procesora klejnym procesom) • FIFO (chronologinie – w kolejności przyjmowania procesu przez system)
24. Kryteria oceny algorytmów planowania
• efektywność z punktu widzenia systemu a) wykorzystanie procesora (czas, przez który procesor jest zajęty pracą) b) przepustowość (liczba procesów kończonych w jednostce czasu) • inne aspekty z punktu widzenia systemu a) sprawiedliwość (równe traktowanie procesów) b) respektowanie priorytetów procesów c) równoważenie obciążenia wykorzystania zasobów • efektywność z punktu widzenia użytkownika a) czas cyklu przetwarzania (rzeczywisty czas przebywania w systemie) b) czas odpowiedzi (proces → czas otrzymania pierwszej odpowiedzi) • inne aspekty z punktu widzenia użytkownika a) przewidywalność (przedstawienie zbliżonego czasu realizacji
25. Algorytmy planowania wywłaszczającego
• planowanie rotacyjne (po ustalonym czasie proces jest przerywany i przenoszony do kolejki procesów gotowych) • SRT (Shortest Remaining Time) (kolejność według najkrótszego czasu zakończenia) • planowanie wielokolejkowe (wiele kolejek procesów gotowych, każda może być inaczej obsługiwana np. według priorytetu)
26. Właściwości urządzeń wejścia/wyjścia
• tryb transmisji danych a) znakowy (dane bajt po bajcie) a) blokowy (dane w bloku bajtów) • sposób dostępu do danych a) sekwencyjny (dane przesyłane w określonym przez urządzenie porządku – k. sieć.) b) swobodny (użytkownik ma wpływ na wybór danych do przesyłania - dysk) • tryb pracy urządzenia a) synchroniczny (dane zostaną przekazane w przewidywalnym momencie - dysk) b) asynchroniczny (dane mogą być przesłane w dowolnym momencie - klawiatura) • tryb współdzielenia a) wyłączny (niemożliwe używanie urządzenia przez wiele procesów - drukarka) b) współdzielony (dopuszczalne używanie urządzenia przez wiele procesów - dysk) • szybkość działania (transmisji) a) wolne (drukarka) b) szybkie (dysk) • kierunek przekazywania danych a) urządzenia I/O (możliwość zarówno zapisu jak i odczytu – dysk) b) urządzenia wejścia (możliwość tylko odczytu – klawiatura) c) urządzenia wyjścia (możliwość tylko zapisu - drukarka)
27. Sposoby interakcji jednostki centralnej ze sterownikiem urządzenia I/O
• odpytywanie (procesor bez przerwy odczytuje odpowiedni rejestr sterownika sprawdzając jego stan) • sterowanie przerwaniami (sterownik zgłasza procesorowi przerwaniem o zakończeniu lub zmianie stanu pracy sterownika) • bezpośredni dostęp do pamięci (DMA) (przekazanie danych pomiędzy sterownikiem, a pamięcią bez angażowania procesora)
28. Obsługa przerwań wielokrotnych
• obsługa sekwencyjna (nowe przerwanie obługiwane jest po zakończeniu bieżącego) • obsługa zagnieżdżona (przy nowym przerwaniu bieżące jest zawieszane do momentu zakończenia nowego) • obsługa priorytetowa (obsługiwane jest przerwanie o najwyższym priorytecie)
29. Problemy współbieżnej obsługi wielu urządzeń
• problem identyfikacji źródła przerwaniami (zidentyfikowanie urządzenia, które wymusiło przekazanie sterowania do procedury obsługi przerwania) • problem priorytetów (zagwarantowanie kolejności urządzeń przy ich gotowości w tym samym czasie)
30. DMA (Direct Memory Access)
• bezpośredni dostęp do pamięci • może rywalizować z procesorem o dostęp do magistrali systemowej • dostęp do danych: a) rodzaj operacji (zapis lub odczyt bloku w pamięci) b) adres urządzenia I/O c) początkowy adres bloku w pamięci d) rozmiar bloku • w celu realizacji zlecenia układ DMA przejmuje od procesora kontrolę nad magistralą • koniec pracy sygnalizuje procesorowi zgłaszając przerwanie
31. Podaj parametry dysku, jakie znasz metody planowania dostępu do dysku?
A) Parametry dysku: Czas dostępu Interfejs Pamięć podręczna Pojemność Prędkość obrotowa MTBF B) Metody planowania dostępu do dysku FCFS - "pierwszy zgłoszony - pierwszy obsłużony". Jest to najbardziej sprawiedliwy z algorytmów jednak nie najszybszy. SSTF - -najpierw najkrótszy czas przeszukiwania. Metoda ta polega na realizacji zamówień w takiej kolejności, aby wielkość liczby cylindrów pomiędzy każdym zamówieniem była jak najmniejsza SCAN - polega na tym, że ramię dysku rozpoczyna przemieszczanie się od jednej krawędzi dysku, do przeciwległej krawędzi. W czasie przemieszczania się ramienia dysku, obsługiwane są zamówienia w kolejności napotkanych, żądanych przez system, cylindrów. C-SCAN - Polega ona na tym, że po osiągnięciu jednej krawędzi dysku głowica wraca do drugiej krawędzi, ale nie wykonuje nic, poza tym. Po osiągnięciu tej drugiej krawędzi, głowica przemieszcza się do pierwszej krawędzi, wykonując zlecenia po drodze. LOOK - głowica przesuwa się pomiędzy skrajnymi zamówieniami. Gdy osiągnie jedno z nich, natychmiast robi zwrot i idzie w kierunku przeciwnym, nie dochodząc do skrajnego położenia na dysku.
32. RAID – Omów, opisz 3 rodzaje
A) RAID (ang. Redundand Array of Independent Disks) to sposób połączenia dwóch lub większej ilości dysków twardych w jedną macierz, która zapewnia dodatkową funkcjonalność w porównaniu z oddzielnie podłączonymi pojedynczymi dyskami twardymi. Macierze RAID są powszechnie stosowane w rozwiązaniach serwerowych, dzięki nim uzyskujemy: odporność na awarie, zwiększenie prędkości transmisji w porównaniu z pojedynczym dyskiem, zależnie od rodzaju pamięć widoczna jako jedno urządzenie. B) Rodzaje RAID 0 - Do utworzenia tego typu macierzy RAID potrzebne są minimum 2 dyski twarde. Należy pamiętać, aby były to dyski o tej samej pojemności i prędkości. W tym rodzaju macierzy bloki z danymi są zapisywane naprzemiennie na poszczególnych dyskach. Łączna pojemność tego rodzaju macierzy jest wielokrotnością pojemności dysków składowych. RAID 0 zwiększa niemalże podwójnie szybkość operacji zapisu/odczytu macierzy kosztem bezpieczeństwa danych - utrata jednego napędu wiąże się z utratą całości danych. RAID 1 - Do utworzenia tego typu macierzy potrzebne są 2 dyski twarde. W macierzy tego typu każdy blok danych jest zapisywany jednocześnie na obydwa dyski twarde (replikacja). RAID1 posiada pojemność najmniejszego dysku z macierzy oraz prędkość zapisu/odczytu najwolniejszego. Ten rodzaj macierzy jest zabezpieczeniem przed fizyczną awarią jednego z dysków macierzy. RAID 2 - Do utworzenia tego typu macierzy potrzebne są minimum 3 dyski twarde. Dane na dyskach są dzielone na poziomie bitów i zapisywane jednoczenie na dwóch dyskach. Trzeci dysk przechowuje informacje o dotyczące korekcji błędów generowane za pomocą kodu Hamminga. Macierz jest odporna na awarię jednego z dysków. Ten rodzaj macierzy jest przestarzały i obecnie nieużywany. Został wyparty przez rozwiązania typu RAID 5 i 6.
33. Co to jest plik, jakie ma atrybuty, jakie znasz typy plików, jakie metody dostępu?
A) Plik - Plik to systemowa struktura danych, za pomocą której SO dokonuje operacji na fizycznym zbiorze danych B) Atrybuty rozmiar nazwa data utworzenia, modyfikacji, ostatniego dostępu, usunięcia itp. właściciel i grupa pliku prawa (zapisu, odczytu itd. – mogą być odmienne dla różnych grup użytkowników) położenie, czyli wskaźnik do miejsca na urządzeniu, na którym plik został zapisany (często tablica wskaźników) typ pliku C) Typy plików Katalogi Dowiązania symboliczne Kolejki FIFO Pliki wykonywalne Tekstowe Binarne D) Metody dostępu Dostęp sekwencyjny (ang. sequential access) — informacje w pliku przetwarzane są rekord po rekordzie, tzn. po wykonaniu operacji na określonym rekordzie system przygotowuje się do wykonania operacji na kolejnym rekordzie w pliku. Dostęp bezpośredni (swobodny, ang. direct access) — lokalizacja rekordu do przetwarzania podawana jest jako parametr odpowiedniej operacji. Dostęp indeksowy — rekord, na którym ma być wykonana operacja identyfikowany jest przez klucz, odwzorowywany na konkretny rekord w pliku stowarzyszonym poprzez plik indeksowy.
34. Jakie są podstawowe operacje na plikach
Tworzenie pliku — konieczne jest określenie podstawowych atrybutów pliku, znalezienie miejsca na ten plik w systemie komputerowym oraz jego zaewidencjonowanie (utworzenie wpisu katalogowego) Zapis do pliku — konieczne jest określenie, co ma być zapisane i gdzie ma być zapisane (w którym pliku i w jakim miejscu tego plik, zależnie od sposobu dostępu) Odczyt z pliku — konieczne jest określenie, co ma być odczytane (z którego pliku i z jakiego miejsca tego plik, zależnie od sposobu dostępu) i gdzie mają być umieszczone odczytane dane
35. Podaj funkcje systemu Unix do operowania na plikach
36. Jakie są metody przydziału miejsca na dysku systemu plików
Przydział miejsca na dysku Przydział ciągły (ang. contiguous allocation) – cały plik zajmuje ciąg kolejnych bloków (jednostek alokacji) Przydział listowy (ang. linked allocation) – plik jest listą powiązanych bloków, dowolnie rozproszonych w dostępnej przestrzeni dyskowej Przydział indeksowy (ang. indexed allocation) – wskaźniki do rozproszonych bloków dyskowych (indeksy) skupione są w jednym miejscu, w tzw. bloku indeksowym • schemat listowy bloku indeksowego • indeks wielopoziomowy • schemat kombinowany Przydział ciągły — właściwości Efektywność dostępu (niewielkie ruchy głowic dysk.) - Łatwa lokalizacja bloków pliku zarówno przy dostępie sekwencyjnym jak i swobodnym Problem fragmentacji zewnętrznej — po usuniętych plikach pozostają dziury, które trudno połączyć w jeden większy blok Problem rozszerzenia pliku pliku nie da się rozszerzyć, będzie go trzeba przenieść w nowe miejsce (znaleźć większą dziurę) będzie trzeba z góry zarezerwować więcej miejsca w przestrzeni dyskowej Przydział listowy — właściwości Nie ma problemu fragmentacji zewnętrznej i wynikających z niej wad metody przydziału Łatwa realizacja dostępu sekwencyjnego Problem realizacji dostępu swobodnego (bezpośredniego) – przejście do poprzedniego bloku wymaga rozpoczęcia przeglądania listy bloków od początku Konieczność pamiętania wewnątrz bloku wskaźnika do bloku następnego Niezawodność – utrata jednego bloku pociąga za sobą stratę wszystkich następnych
37. Omów klasyfikację Flynn’a
Klasyfikacja Flynn’a • Kryterium: –Liczba strumieni danych, –Liczba strumieni rozkazów • Wyróżniamy: –JS: Jednostka Sterująca –JP: Jednostka Przetwarzająca (procesor) –MP: Moduł Pamięci SISD • SISD: Single Instruction/Single Data stream – klasyczny komputer sekwencyjny SIMD • SIMD: Single Instruction/Mutiple Data stream – komputery macierzowe i wektorowe MISD • Multiple Instruction/Single Data stream –Do skompletowania klasyfikacji –Brak rozwiązań praktycznych MIMD • MIMD: Multiple Instruction/Mutiple Data stream – komputery wieloprocesorowe MIMD c.d. • Systemy luźno połączone (loosely coopled) –Dostęp do pamięci poprzez przesył komunikatów • Systemy ściśle połączone (tightly coopled) –Dostęp do wspólnej pamięci • Systemy wielomaszynowe (wielokomputerowe – multicomputer systems)
38. Jakie są struktury połączeń w systemach wieloprocesorowych
Systemy ze wspólną pamięcią – Systemy ze wspólną magistralą – Systemy z przełącznicą krzyżową – Systemy z pamięcią wieloportową – Systemy z wielostopniową siecią połączeń • Systemy z przesyłaniem komunikatów – Pierścień – Siatka – Drzewo – Gwiazda – Hipersześcian
39. Jakie są metody rozwiązanie konfiktów w dostępie do pamięci w systemach wieloprocesorowych ze wspólną magistralą
Metoda priorytetów statycznych
Metoda priorytetów dynamicznych
Metoda stałego kwantu czasu
Metoda kolejkowa
40.Metody oceny algorytmów równoległych
• Całkowity czas obliczeń (elapsed time) • Przyspieszenie (speed-up) • Efektywność (efficiency) • Przyspieszenie skalowalne (scaled speed-up) • Efektywność skalowalna (scaled efficiency)