Sciągi do egzaminu, Ściąga - systemy operacyjne, Procedura przesyłania danych


Procedura przesyłania danych

1. Procesor ustawia odpowiednie rejestry sterownika urządzenia, po czym

wznawia normalna prace.

2. Sterownik urządzenia bada zawartość tych rejestrów, aby określić, jakie ma

podjąć działanie. Jeśli, na przykład zostanie rozpoznane polecenie czytania, to

sterownik zainicjuje przesyłanie danych z urządzenia do swojego lokalnego

bufora.

3. Kiedy przesyłanie danych zostanie zakończone, sterownik za pomocą

przerwania informuje jednostkę centralna, )e zakończył swoje działanie.

4. Procesor po otrzymaniu sygnału przerwania wstrzymuje bieżąca prace i pobiera

zawartość ustalonego miejsca pamięci, które na ogół zawiera adres procedury

obsługującej dane przerwanie.

5. Procedura obsługi przerwania przesyła dane z lokalnego bufora sterownika do

pamięci głównej.

6. Po zakończeniu przesyłania danych procesor jest gotowy do wznowienia

przerwanych obliczeń. Następuje pobranie wcześniej zapamiętanego adresu

powrotnego i wznowienie przerwanych obliczeń, tak, jakby przerwania nie było.

Bezpośredni dostęp do pamięci

• Szybkie urządzenia wejścia-wyjścia korzystają z bezpośredniego dostępu

do pamięci operacyjnej (DMA - Direct Memory Access). W tym

przypadku sterownik danego urządzenia przesyła bezpośrednio cały blok

danych miedzy własnym buforem a pamięcią - bez interwencji procesora.

Przerwanie wypada jeden raz na cały blok danych, a nie po przesłaniu

każdego znaku (lub słowa), jak w przypadku urządzeń powolnych.

• Przebieg procedury przesłania danych:

1. W chwili pojawienia się żądania przesłania danych system operacyjny

wybiera z kolejki buforów bufor do przesłania. Może to być pusty bufor

wejściowy lub pełny bufor wyjściowy.

2. Adresy źródła i miejsca przeznaczenia umieszcza się w rejestrach

sterownika DMA, po czym za pośrednictwem bitów sterujących w

rejestrze kontrolnym sterownik DMA dostaje informacje, że należy

zainicjować operacje wejścia-wyjścia.

3. Po zakończeniu operacji sterownik wysyła przerwanie do procesora.

• W zależności od architektury sprzętowej przerwania mogą

blokowane, maskowane lub szeregowane wg priorytetów

Organizacja komputera - bloki funkcjonalne i wzajemne

miedzy nimi

Architektura komputera - logiczna struktura wewnętrzna, tj.

sposób, w jaki programista piszący programy w języku

maszynowym widzi platformę sprzętowa

System operacyjny to program, który działa jako pośrednik miedzy

użytkownikiem komputera, a sprzętem komputerowym

Podstawowe zadania systemu operacyjnego:

- Podział zasobów

- Tworzenie wygodnej w użyciu maszyny wirtualnej

Maszyna wirtualna pozwala na łatwiejsze skorzystanie z

następujących zasobów i mechanizmów: wejście-wyjście, pamięć

operacyjna, system plików, ochrona zasobów

współdziałanie programów, sterowanie programami

Struktury systemów operacyjnych:

• Struktura jednolita

• Struktura warstwowa

• Struktura typu klient-serwer

Praca systemu operacyjnego:

• Przy uruchomieniu komputera uruchamiany jest program rozruchowy

(bootstrap), powodujący:

- ustawienie początkowych wartości systemu komputerowego takich jak:

rejestry CPU, urządzeń i wektorów przerwań

- wprowadzenie do pamięci jądra systemu operacyjnego

- uruchomienie procesu oczekującego na wystąpienie jakiegoś zdarzenia

• Jeśli nie ma żadnych zadań ani nie czekają na obsługę żadne

urządzenia wejścia-wyjścia bądź wymagające odpowiedzi polecenia

użytkowników, system operacyjny oczekuje na zdarzenie. Mówimy, _e

jest on sterowany zdarzeniami.

• Zdarzenia są sygnalizowane za pomocą przerwań sprzętowych lub

programowych.

• Spowodowanie przerwania programowego jest często konsekwencja

wywołania specjalnej operacji nazywanej wywołaniem systemowym

lub funkcja systemowa (system call).

Proces jest to ciąg czynności wykonywanych za pośrednictwem ciągu rozkazów (programu), których wynikiem jest wykonanie pewnych zadań systemowych lub określonych przez użytkownika.(proces = zadanie, task)

Kontekst procesu: Stan procesu i inne informacje pozwalające systemowi operacyjnemu

zarządzać procesem jest przechowywany w strukturze zwanej blokiem kontrolnym procesu (inaczej kontekstem procesu). Są przechowywane: Identyfikator procesu, stan procesu, licznik instrukcji, rejestry procesora, priorytet, dane o wykorzystywanej pamięci, dane o wykorzystywanych urządzeniach, licznik czasu procesora i czasu rzeczywistego.

Współbieżność jest terminem nadawanym systemom, w których może istnieć wiele procesów w stanie wykonywania, tj. takich, których obliczenia rozpoczęły się, ale ich nie zakończono lub nie zaprzestano (zakończenie błędne).

Systemy operacyjne dopuszczające współbieżność procesów użytkownika nazywa się systemami wielozadaniowymi.

Proces aktywujący nowy proces nazywa się procesem macierzystym, zaś nowy - procesem potomnym.

Proces jest niezależny, jeżeli nie wpływa na zachowanie innych procesów, zaś inne procesy nie mogą na niego oddziaływać. Proces, który nie spełnia tej własności nazywa się procesem współpracującym.

Gdy do dyspozycji jest mniej procesorów niż procesów, należy poszczególnym zadaniom przydzielać czas pracy procesora w miarę potrzeb.

Przydzielaniem tym zajmuje się specjalna cześć systemu operacyjnego zwana planista lub dyspozytorem (scheduler).

Przełączanie kontekstu polega na przechowaniu stanu starego procesu i załadowania przechowywanego stanu nowego procesu (odtworzenie środowiska procesu).

W większych systemach występują dwa rodzaje dyspozytorów:

- niskiego poziomu - zajmuje się przydzielaniem czasu procesora przeszukując kolejkę procesów gotowych

- wysokiego poziomu - zajmuje się strategia uruchamiania procesów, usuwając z pamięci te, których dalsze wykonanie jest przez pewien czas niemożliwe (np. z powodu zajętości urządzenia zewnętrznego, wykonywania procesu o wyższym priorytecie itp.)

Zakres adresów programu nazywa się przestrzenia adresów (nazw), zaś zakres komórek w pamięci fizycznej - przestrzenia pamięci.

Adresem bazowym nazywamy najmniejszy adres zajmowany przez proces po załadowaniu do pamięci. Adres bazowy (B) jest umieszczany w rejestrze bazowym.

Adresem granicznym nazywamy największy adres wykorzystywany przez proces. Adres graniczny (G)jest umieszczany w rejestrze granicznym.

Stronicowanie (ang. paging) polega na podziale przestrzeni adresów na jednakowej długości strony. System na bieżąco przydziela obszary na strony w pamięci fizycznej (tzw. ramki stron).

Strony aktywne procesu SA umieszczone w pamięci głównej, zaś strony nieaktywne - w pamięci pomocniczej.

Segmentacja polega na podziale przestrzeni adresów na segmenty, odpowiadające logicznym składowym programu, np. procedurom, danym, modułom itp. Segmentacja ułatwia prace programisty przez możliwość korzystania z nadanych przez siebie nazw segmentów.

Fragmentacja pamięci nazywamy sytuacje, kiedy wolna pamięć jest podzielona na tak małe dziury, że nie można w nich pomieścić nowych segmentów.

Upakowywaniem pamięci nazywamy mechanizm, który chroni pamięć przed fragmentacja, przenosząc zajęte obszary tak, aby zamiast wielu małych dziur powstała jedna duża.

Fragmentacja wewnętrzna polega na utracie części ostatniej przydzielanej strony w przypadku, gdy proces nie wymaga pamięci o rozmiarze będącym dokładnie wielokrotnością strony.

Zasada lokalności: Występujące w programie odniesienia do pamięci wykazują tendencje do grupowania się w małych obszarach przestrzeni adresów, a do zmiany tych obszarów dochodzi tylko okresowo.

Stopień wieloprogramowości = liczba procesów obecnych w pamięci.

Szamotanie jest sytuacja, kiedy następuje przepełnienie kanału pamięci pomocniczej, spowodowane ciągłym napływem żądań pobrania strony.

Szamotanie powoduje: blokowanie większości procesów, spadek wykorzystania procesora.

Zbiór roboczy to minimalna liczba stron procesu umieszczonych w pamięci głównej, która zapewnia efektywne wykorzystanie procesora przez proces.

Sposoby implementacji listy wolnych obszarów:

- mapa bitowa: każdy bit reprezentuje zajętość odpowiadającego mu bloku pamięci pomocniczej:

- łańcuch wolnych bloków: w każdym wolnym bloku przechowywany jest wskaźnik do następnego wolnego bloku

- zgrupowany łańcuch wolnych bloków: pierwszy blok grupy wolnych bloków zawiera wskaźniki do tych bloków oraz wskaźnik na kolejny blok ze wskaźnikami

- zliczanie polega na przechowywaniu wskaźników do pierwszego wolnego bloku i ilości wolnych bloków następujących bezpośrednio po nim

Programowy sterownik urządzenia: udostępnia innym modułom s.o. standardowy interfejs do komunikacji z urządzeniem

Opis urządzenia zawiera jego parametry wykorzystywane przez funkcje s.o. (identyfikator, możliwe operacje, tablice konwersji znaków, stan urządzenia itp.)

Urządzenia podzielne to takie, do których dostęp może mieć wiele procesów, zaś kolejka zamówień jest realizowana na bieżąco, zgodnie z napływem zgłoszeń.

Urządzenia niepodzielne nie dopuszczają przeplatania przesyłanych danych. Jeden proces ma do takiego urządzenia wyłączny dostęp od chwili otwarcia do zamknięcia strumienia. Gdy urządzenie niepodzielne jest zajęte przez proces, zamówienia od innych procesów nie są realizowane, zaś procesy te musza oczekiwać na zwolnienie urządzenia.

Mechanizm spoolingu ogranicza skutki blokowania korzystających z urządzenia niepodzielnego

Model macierzy dostępów: przechowuje informacje o możliwościach procesów wykonywanych w różnych domenach.

Implementacja macierzy dostępów: Tablica globalna (obiekt, domena, zbiór praw), Wykazy dostępów do danego obiektu (domena, zbiór praw), Wykazy możliwości domeny, Mechanizm zamka z kluczem.

Transakcja - zbiór instrukcji, które wykonują spójna funkcje (stany: zaniechanie(abort), zatwierdzenie(commit), wycofanie(rollback))

Niezawodność s.o. nazywamy poziom, do którego działanie systemu - nawet w nieoczekiwanych i nieprzyjaznych warunkach - jest zgodne ze specyfikacja jego usług dla użytkowników

System operacyjny jest poprawny, jeżeli w określonym środowisku zachowuje się w oczekiwany sposób.

Błąd s.o. - odstępstwo od określonego działania

Wada - przyczyna błędu

Uszkodzenie - zniszczenie informacji wewnątrz systemu komputerowego, konsekwencja błędu

Wady sprzętu mogą być maskowane przez odpowiednie oprogramowanie, stosowane bity parzystości, sumy kontrolne, wybieranie większościowe.

Program współbieżny opisuje zachowanie się zbioru procesów współbieżnych.

Sekcja krytyczna to fragment procesu, w którym korzysta on z obiektu dzielonego. Ponieważ w danej chwili z zasobu dzielonego może korzystać tylko jeden proces, wykonując swoja sekcje krytyczna uniemożliwia on wykonanie sekcji krytycznych innym procesom.

Zbiór procesów znajduje się w stanie blokady (zakleszczenia), jeżeli każdy z tych procesów jest wstrzymany w oczekiwaniu na zdarzenie, które może być spowodowane tylko przez jakiś inny proces z tego zbioru.

Proces jest w stanie zagłodzenia, jeśli nie zostaje wznowiony mimo, że zdarzenie na które czeka występuje dowolna ilość razy, gdyż za każdym razem jest wybierany inny czekający proces.

(Definicja klasyczna) Semafor ogólny S jest zmienna całkowita z dwoma wyróżnionymi operacjami:

- Podniesienie semafora V(S): S:=S+1

- Opuszczenie semafora P(S): Czekaj, a_ S>0; S:=S-1.

Zakłada się, że podniesienie i opuszczenie semafora są operacjami niepodzielnymi.

Monitor to zebrane w jednej konstrukcji programowej zmienne i funkcje działające na tych zmiennych. Część funkcji jest udostępniana na zewnątrz monitora i tylko z ich pomocą procesy mogą uzyskać dostęp do zmiennych ukrytych wewnątrz monitora. Wykonanie procedury monitora jest sekcja krytyczna wykonującego go procesu - w danej chwili tylko jeden spośród współbieżnie wykonujących się procesów może wykonywać procedurę monitora. Z poziomu monitora można wstrzymywać i wznawiać procesy za pomocą zmiennych typu condition. Na

zmiennych tych można wykonywać dwie operacje:

- wait(c) - wstrzymanie procesu wykonującego te operacje i wstawienie go na koniec kolejki związanej ze zmienna c, z jednoczesnym zwolnieniem monitora,

- signal(c) - wznowienie pierwszego procesu wstrzymanego w kolejce związanej ze zmienna c (jeśli kolejka nie jest pusta). Jeśli operacja ta nie jest ostatnia instrukcja procedury monitorowej, to proces wykonujący te operacje jest wstrzymywany aż do chwili, gdy wznowiony przezeń proces zwolni monitor.

Za pomocą funkcji logicznej empty(c) można sprawdzić, czy kolejka związana ze zmienna c jest pusta, czy nie.

Strategie wyboru trasy: Określają drogę, jaka będzie przesłany komunikat od jednego węzła do drugiego, jeżeli istnieje więcej niż jedna fizyczna ścieżka, która może być wykorzystana do tego celu.

Rozróżnia się 3 rodzaje strategii: trasa stała, trasa wirtualna (ustalana na czas jednej sesji), trasa dynamiczna

Strategie połączeń

Określają sposób komunikacji miedzy dwoma procesami. Najważniejsze z nich to:

- komutowanie łączy - przydzielenie fizycznego połączenia na czas komunikacji; inne procesy nie mogą wówczas z niego skorzystać;

- komutowanie komunikatów - każdy komunikat posiada dodatkowo informacje o odbiorcy i nadawcy;

- komutowanie pakietów - polega na podziale komunikatów na stałej długości pakiety, które odbiorca składa w jedna całość.

Ze względu na dostęp do zdalnych zasobów systemy dzielimy na:

- sieciowe systemy operacyjne - użytkownicy są świadomi wielości maszyn i w celu uzyskania dostępu do zasobów rejestrują się zdalnie na odpowiednich maszynach lub przesyłają dane miedzy maszynami zdalnymi a własnymi

- rozproszone systemy operacyjne - użytkownicy nie musza być świadomi wielości maszyn, zaś dostęp do zasobów zdalnych jest realizowany tak, jak dostęp lokalny (przemieszczanie procesów i danych pod nadzorem systemu operacyjnego)

Usługa jest jednostka oprogramowania działająca na jednej lub wielu maszynach, pozwalająca korzystać z określonych funkcji nieznanemu uprzednio klientowi

System obsługi (serwer) jest to oprogramowanie usługowe wykonywane na jednej maszynie • Klientem nazywa się proces wywołujący usługę za pomocą zbioru operacji zwanym interfejsem klienta

Usługa zdalna jest wywoływana przez klienta za pośrednictwem sieci na zdalnym serwerze. Wyniki jej działania są przekazywane przez siec z powrotem do klienta.

Zdalne wywoływanie procedur (Remote Procedure Call - RPC) jest najczęściej spotykana metoda realizacji usługi zdalnej. Możliwe 2 sytuacje: Klasyczne podejście: każda procedura ma na stałe przypisany, znany klientowi numer portu i Dynamiczne wiązanie portu i klienta.

przezroczystość położenia - ukrywanie miejsca przechowywania pliku w sieci

niezależność położenia - brak konieczności zmiany nazwy, gdy plik zmienia miejsce przechowywania

Standard POSIX - określa sprzęg między systemem operacyjnym a światem zewnętrznym (aplikacje i użytkownicy). Zalety: - zgodność aplikacji na poziomie kodu źródłowego, - jednakowe środowisko użytkownika (shell, polecenia, biblioteki C), - otwartość na różne zastosowania.

Komunikacja międzyprocesowa (IPC) Sygnały przekazywane w formie przerwań programowych do procesów. Informują o wystąpieniu zdarzenia, nie nadają się do przekazywania danych. Używane przez jądro do obsługi sytuacji wyjątkowych (np. próba wykonania nielegalnych instrukcji).

Obsługa sygnałów:

- Podjecie działań określonych przez programistę

(np. usuwanie plików roboczych)

- Ignorowanie sygnału

- Podjecie działań domyślnych - zwykle

zakończenie procesu (dla SIGUSR ignorowanie,

a SIGSTOP - zawieszenie procesu)

Blokowanie sygnałów - wstrzymywanie

przyjmowania (pozostawienie na później)

Wysyłanie sygnałów do innych procesów.

Potoki (pipes) umożliwiają jednokierunkowa, asynchroniczna komunikacje miedzy pokrewnymi procesami (macierzysty/potomny lub mającymi

wspólnych przodków). Informacja jest przesyłana w postaci sekwencyjnego strumienia bajtów, którego interpretacja należy do procesów korzystających z potoku. Odczytanie informacji powoduje usuniecie jej z potoku. Jeżeli w potoku nie ma tyle informacji, odczytać proces-odbiorca, to jest on wstrzymywany (mogą być zwykłe lub nazwane - te drugie mogą współpracować nie tylko z procesami pokrewnymi i nie wymagają działania obu procesów)

Dzielone obszary pamięci - pozwalają dwóm albo więcej procesom korzystać wspólnie z segmentu pamięci.

Gniazda - rozszerzenie mechanizmu przesyłania komunikatów na środowisko rozproszone (siec)

Zdalne wywoływanie procedur - wzajemne wykluczanie podczas realizacji procedur;- rozgłaszanie - jednoczesne wywołanie procedury zdalnej wykonywane przez wiele procesów obsługujących



Wyszukiwarka

Podobne podstrony:
Sciągi do egzaminu, sciaga pojecia
Sciągi do egzaminu sciaga algorytmy
Sciągi do egzaminu, sciaga - algorytmy
Historia Filozofii Materiały do egzaminu sciaga 74152
SO pytania z egzaminu 2012, Systemy operacyjne
Zagadnienia egzaminacyne z przedmiotu Systemy Operacyjne i Sieci Komputerowe w cosinusie, informatyk
Egzamin, E. Podstawy systemów operacyjnych i systemów grafiki komputerowej, E
rozwiązania i ściągi, makroekonomia egzamin ściąga, 1
Egzamin 2006, Systemy operacyjne
Zaliczenie poprawkowe 1 WSTĘP DO PROGR, Studia, Systemy operacyjne
przykładowe ściągi do egzaminu-min2, Prawa komutacji:
Egzamin 2005, Systemy operacyjne
przykładowe ściągi do egzaminu-JB-mat pom, Prawa komutacji:
przykładowe ściągi do egzaminu-min, Prawa komutacji:
OCHRONA ŚRODOWISKA-wykłady do egzaminu sciaga, inżynieria ochrony środowiska kalisz, Rok 1 IOS, Oc

więcej podobnych podstron