Systemy Operacyjne by Ripi sem 1, WWSI, SEM 1, SO sem.1


Systemy Operacyjne (wykłady - semestr 1) - notatki.

Opracowane przez Ripiego(D-101, obecnie D-201), na podstawie książki „Podstawy systemów operacyjnych” A. Silberschatz, oraz informacji znalezionych w Internecie.

1) Wstęp do teorii Systemów Operacyjnych.

System Operacyjny - jest programem, który działa jako pośrednik między użytkownikiem komputera a sprzętem komputerowym. Głównym zadaniem systemu operacyjnego jest tworzenie środowiska, w którym użytkownik może wykonywać programy w wygodny i wydajny sposób.

Rodzaje systemów operacyjnych:

  1. wieloprzetwarzania symetrycznego (SMP) - na każdym procesorze działa identyczna kopia systemu operacyjnego. Kopie te komunikują się ze sobą w zależności od potrzeb.

  2. wieloprzetwarzania asymetrycznego - każdy procesor ma przypisane inne zadanie. Systemem takim zawiaduje główny procesor.

2) Struktury systemów operacyjnych.

Usługi i funkcje systemu operacyjnego (terminologia):

Interpreter poleceń - jest interfejsem między użytkownikiem a systemem operacyjnym.

Wywołania systemowe - tworzą interfejs między wykonywanym programem a systemem operacyjnym.

Program rozruchowy - pierwszy program, który jest wykonywany po starcie systemu. Program ten musi wiedzieć jak załadować system operacyjny i rozpocząć jego działanie.

Przerwanie - jest to sposób sygnalizowania, wystąpienia jakiegoś zdarzenia. Przerwanie pochodzi od sprzętu lub oprogramowania.

Sektor - wielkość najmniejszej adresowalnej porcji dysku (512 B, i wielokrotności).

Wejście-wyjście synchroniczne - operacja przesyłania danych rozpoczyna się, kończy, po czym wraca do procesu użytkownika.

Wejście-wyjście asynchroniczne - polega na oddaniu sterowania do programu użytkownika bez czekania na zakończenie operacji. Operacja I/O może być wtedy kontynuowana wraz z innymi działaniami systemu.

Bezpośredni dostęp do pamięci operacyjnej (DMA) - po ustawieniu buforów wskaźników i liczników sterownik danego urządzenia przesyła bezpośrednio cały blok danych między własnym buforem a pamięcią - bez interwencji procesora.

Pamięć operacyjna - zwana również pamięcią o dostępie swobodnym (RAM), jest jednym wielkim obszarem pamięci dostępnym dla procesora bezpośrednio. Tak więc programy komputerowe muszą znajdować się w pamięci operacyjnej aby mogły być wykonywane.

Pamięć pomocnicza - rozszerza pamięć operacyjną. Trwale przechowuje duże ilości danych.

Pamięć podręczna (cashe) - jest to bufor pamięci stosowany do niwelowania różnic w szybkości CPU a pamięcią operacyjną.

Pamięć ulotna - traci zawartość po odłączeniu od niej zasilania.

Pamięć nieulotna - analogicznie, zachowuje zawartość po odłączeniu od niej zasilania.

3) Zarządzanie procesami

Stany procesu:

Tylko 1 proces może być aktywny w danym momencie.

Wchodzące do systemu procesy trafiają do kolejki zadań. Gotowe do działania procesy, które

oczekują w pamięci operacyjnej, są trzymane na liście zwanej kolejką procesów gotowych. Kolejka ta ma zazwyczaj postać listy powiązanej.

Planista długoterminowy - (planista zadań) wybiera procesy z puli i ładuje je do pamięci w celu wykonania. Nadzoruje stopień wieloprogramowości - liczbę procesów w pamięci. Jeśli stopień wieloprogramowości jest stabilny to średnia liczba utworzonych procesów musi równać się średniej liczbie procesów usuwanych z systemu. Planista długoterminowy może być w niektórych systemach nieobecny lub mocno zredukowany. Planista ten powinien dobierać dobrą mieszankę procesów zawierającą zarówno procesy ograniczone przez I/O jak i przez dostęp do procesora.

Planista krótkoterminowy - (przydziału procesora) wybiera jeden proces spośród procesów gotowych do wykonania i przydziela mu procesor.

Podstawową różnicą między obydwoma tymi (krótko/długoterminowymi) planistami jest częstość ich uaktywnień.

Planista średnioterminowy - usuwa procesy z pamięci, zmniejszając w ten sposób stopień wieloprogramowości. Usunięty proces można znów wprowadzić do pamięci, a jego wykonywanie kontynuować od miejsca w którym go przerwano. Nosi to nazwę wymiany (swapping). Proces jest wymieniany, czyli wysyłany z pamięci na zewnątrz a później sprowadzany do niej ponownie przez planistę średnioterminowego. Wymiana może być niezbędna do uzyskania lepszej mieszanki procesów.

Proces macierzysty (rodzicielski, przodek) - proces tworzący inny proces. Proces macierzysty może rozdzielać własne zasoby między procesy potomne albo powodować, że niektóre zasoby będą przez potomków użytkowane wspólnie. Proces macierzysty może kontynuować działanie współbieżnie ze swoimi potomkami lub oczekiwać na zakończenie działań niektórych lub wszystkich swoich procesów potomnych.

Proces potomny (potomek) - proces utworzony przez inny proces, zwany macierzystym. Przestrzeń adresowa procesu potomnego może być zagospodarowana na dwa sposoby:

Kończenie kaskadowe - jest to zjawisko gdy proces macierzysty kończy się, a w tej sytuacji system operacyjny nie pozwala potomkowi na dalsze działanie. W takich systemach zakończenie procesu (zwykłe lub wyjątkowe) wymusza zakończenie wszystkich jego potomków.

Proces niezależny - jest to proces na który nie mogą oddziaływać inne procesy, ale on sam też nie może na nie oddziaływać.

Wątki tego samego procesu korzystają ze wspólnego kodu i danych, mają jednak oddzielne stosy. Obecne systemy operacyjne umożliwiają występowanie wielu wątków sterujących w procesie.

Proces tradycyjny (ciężki) ma jeden wątek sterujący.

Korzyści programowania wielowątkowego:

Wątki użytkownika - są udostępniane powyżej jądra i realizowane przez bibliotekę wątków na poziomie użytkowym.

Wątki jądrowe - są udostępniane bezpośrednio przez system operacyjny.

Symetryczna - proces nadawczy jak i odbiorczy w celu utrzymania ze sobą łączności musza wzajemnie używać nazw.

Asymetryczna - tylko nadawca nazywa odbiorcę a od odbiorcy nie wymaga się znajomości nazwy nadawcy.

Elementami kolejek są na ogół bloki kontrolne procesów (PCB).

Planowanie wywłaszczające - polega na tym iż wykonywany obecnie proces, może być przerwany na skutek np. pojawienia się ważniejszego procesu.

Planowanie bez wywłaszczeń - proces który otrzyma procesor, zachowuje go dopóty, dopóki go nie odda go z powodu swojego zakończenia lub przejścia do stanu czekania.

Ekspedytor - (dyspozytor) jest modułem który faktycznie przekazuje procesor do dyspozycji procesu wybranego przez planistę krótkoterminowego.

Opóźnienie ekspedycji - jest to czas który ekspedytor zużywa na wstrzymanie jednego procesu i uaktywnienie innego.

Kryteria planowania przydziału procesora:

Algorytmy planowania przydziału procesora:

a) Rygorystyczne systemy czasu rzeczywistego - wypełniają zadania krytyczne w gwarantowanym czasie.

  1. Łagodne systemy czasu rzeczywistego - procesy o decydującym działaniu mają priorytet nad słabiej sytuowanymi, jednakże nie gwarantują wypełniania zadań krytycznych w określonym czasie.

Współbieżny dostęp do danych dzielonych może powodować ich niespójność.

Synchronizacja - mechanizmy zachowywania spójności danych przez uporządkowane

wykonywanie współpracujących ze sobą procesów użytkujących wspólnie logiczną

przestrzeń adresową. Przykład: producent - konsument.

Szkodliwa rywalizacja - sytuacja w której kilka procesów współbieżnie sięga po te same dane i wykonuje na nich działania, w skutek czego wynik tych działań zależy od porządku w jakim następował dostęp do danych.

Gdy jeden proces wykonuje sekcję krytyczną to żaden inny proces nie jest dopuszczony do wykonywania swojej sekcji krytycznej.

Warunki konieczne do rozwiązania problemu sekcji krytycznej:

Problemy sekcji krytycznej mogą zostać rozwiązane na kilka różnych sposobów. Jednym z nich jest odpowiednie napisanie programów tak, aby zachowane zostały warunki sekcji krytycznej. Można wykorzystać także sprzętowe środki synchronizacji przez użycie instrukcji niepodzielnych „Testuj_i_ustal”. W środowisku jednoprocesorowym można także wyłączyć przerwania przed wejściem do sekcji krytycznej gwarantując w ten

sposób, że proces nie zostanie wywłaszczony w momencie zmiany danych i zachowana zostanie ich spójność. Zaraz po wyjściu z sekcji krytycznej włącza się ponownie przerwania. Innym sposobem jest wykorzystanie semaforów.

Semafor S - jest to zmienna całkowita, która oprócz nadania wartości początkowej, jest dostępna tylko za pomocą dwu standardowych, niepodzielnych operacji: czekaj (wait) i sygnalizuj (signal).

P0 P1

czekaj(S) czekaj(Q)

czekaj(Q) czekaj(S)

... ...

sygnalizuj(S) sygnalizuj(Q)

sygnalizuj(Q) sygnalizuj(S)

Blokowanie nieskończone (głodzenie) - gdy proces czeka w nieskończoność pod semaforem (np. gdy użyje się porządku LIFO)

Warunki konieczne do wystąpienia zakleszczenia (muszą zachodzić jednocześnie):

1. Wzajemne wykluczanie - przynajmniej jeden zasób musi być niepodzielny, tzn. że

zasobu tego może używać w danym czasie tylko jeden proces, jeśli inny proces

zamawia dany zasób to musi być opóźniany do czasu aż zasób zostanie zwolniony

2. Przetrzymywanie i oczekiwanie - musi istnieć proces, któremu przydzielono co

najmniej jeden zasób i który oczekuje na przydział dodatkowego zasobu,

przytrzymywanego właśnie przez inny proces

3. Brak wywłaszczeń - zasoby nie podlegają wywłaszczaniu, co oznacza, że zasób

może zostać zwolniony tylko z inicjatywy przetrzymującego go procesu, po zakończeniu

pracy tego procesu

4. Czekanie cykliczne - musi istnieć zbiór {P0, P1,..., Pn} czekających procesów,

takich że P0 czeka na zasób przetrzymywany przez proces P1, P1 czeka na zasób

przetrzymywany przez proces P2,..., Pn-1 czeka na zasób przetrzymywany przez

proces Pn, a Pn,..., czeka na zasób przetrzymywany przez proces P0

Stan bezpieczny - system jest w stanie bezpiecznym, gdy istnieje ciąg bezpieczny, czyli gdy dla każdego procesu jego potencjalne zapotrzebowanie na zasoby może być zaspokojone przez bieżąco dostępne zasoby oraz użytkowane. Gdy ciąg taki nie istnieje to system jest w stanie zagrożenia.

Metody postępowania z zakleszczeniami:

Rozwiązanie każdego z tych problemów może powodować głodzenie. W pierwszym przypadku może dotyczyć ono pisarzy, w drugim czytelników.

0x01 graphic

- Przydzielanie wielu zasobów do wielu procesów w sposób grożący zakleszczeniom i głodzeniu.

Inne środki synchronizacji:

Punkty kontrolne - system podczas działania rejestruje z wyprzedzeniem operacje pisania, a ponadto co pewien czas organizuje punkty kontrolne, w których należy wykonać następujący ciąg czynności:

4) System plików

Plik - jest zbiorem powiązanych ze sobą informacji zdefiniowanych przez jego twórcę. Jest on zwany również logiczna jednostka magazynowania informacji.

Struktura pliku - jest zależna od typu pliku (plik tekstowy, źródłowy, wykonywalny, wynikowy...)

Partycje - służą do wyodrębniania fizycznie lub logicznie wielkich zbiorów katalogów.

Atrybuty pliku:

Informacje o wszystkich plikach są przechowywane w strukturze katalogowej, która również rezyduje w pamięci pomocniczej.

Metody dostępu:

Struktura katalogowa zawiera informacje o zawartych w niej plikach.

Ochrona - dostęp kontrolowany.

Niezawodność - z zasady osiąga się dzięki wykonywaniu kopii zapasowych plików.

Semantyka spójności jest ważnym kryterium oceny dowolnego systemu plików

realizujących dzielenie plików. Jest to właściwość systemu określająca semantykę

jednoczesnego dostępu do pliku dzielonego przez wielu użytkowników.

Semantyka ta powinna zwłaszcza określać warunki, przy których zmiany danych

wykonywane przez jednego użytkownika są obserwowalne przez innych

użytkowników.

System plików rezyduje na stałe w pamięci pomocniczej (dysk), przesyłanie informacji miedzy pamięcią operacyjną a dyskiem odbywa się w jednostkach nazwanych blokami.

Blok - blok zawiera co najmniej jeden sektor

Sektor - ma długość od 32 do 4096 B (zwykle 512 B)

Metadane - cała struktura systemu plików, z wyjątkiem rzeczywistych danych (czyli treści plików).

Blok kontrolny pliku (file control block FCB) - zawiera informacjie o pliku, w tym nazwę właściciela, pozwolenia (dostępu) i umiejscowienie treści pliku.

Warstwowy system plików:

Metody przydziału miejsca na dysku:

Zarządzanie wolną przestrzenią:

System utrzymuje listę wolnych obszarów i implementowaną w postaci:

Rekonstrukcja:

Metody tworzenia kopii zapasowych (backup):



Wyszukiwarka

Podobne podstrony:
quota, !!!Uczelnia, wsti, materialy, II SEM, systemy operacyjne linux
Nowy folder, 1 sem PYTANIA EGZami.SYS.operSIECI, PYTANIA EGZAMINACYJNE Z
zagadnienia soisk 1 sem, , systemy operacyjne
egzamin systemy oper, !!!Uczelnia, wsti, materialy, I SEM, systemy operacyjne windows, egzamin
lab7, SEMESTRY, Sem 7, Interfejsy Programowe Systemow Operacyjnych, Laboratorium
aiaso, SEMESTRY, Sem 6, Architektura i Administracja Systemow Operacyjnych
systemy operacyjne egzamin pytania-odpowiedzi, !!!Uczelnia, wsti, materialy, II SEM
quota, !!!Uczelnia, wsti, materialy, II SEM, systemy operacyjne linux
część I systemy i struktury społeczne III sem
so, Akademia Morska, IV semestr, systemy operacyjne
SO pytania z egzaminu 2012, Systemy operacyjne
Systemy Operacyjne, projekty cwiczenie2 so z

więcej podobnych podstron