System operacyjny jest programem, który działa jako pośrednik między użytkownikiem komputera a sprzętem komputerowym. Jego zadanie jest stworzenie środowiska, w którym użytkownik może wykonywać programy. Dzięki niemu system komputerowy ma być wygodny i efektywny.
Elementem systemu komputerowego są:
sprzęt komputerowy
system operacyjny
programy użytkowe (kompilatory, edytory tekstu, inne programy użytkowe).
Historia systemów operacyjnych.
Na początku był sprzęt komputerowy:
indywidualna, interakcyjna praca programisty
operatorzy programów
grupowanie zadań przez operatorów
rezydentne monitory i karty sterujące języka opisu zadania (JCL)
pośrednia praca urządzeń wejścia/wyjścia
buforowanie
spooting
wieloprogramowość
wielozadaniowość (podział czasu)
Klasyfikacja systemów operacyjnych
systemy wsadowe
systemy interakcyjne
systemy z podziałem czasu
systemy rozproszone
systemy czasu rzeczywistego (real time system)
systemy jednostanowiskowe
Elementy funkcyjne systemu operacyjnego:
Zarządzanie procesami
tworzenie i usuwanie procesów
wstrzymywanie i wznawianie procesów
dostarczanie mechanizmów synchronizacji procesów
dostarczanie mechanizmów komunikacji procesów
dostarczanie mechanizmów obsługi blokad
Zarządzanie pamięcią operacyjną
utrzymywanie ewidencji aktualnie zajętych części pamięci
decydowanie o tym, które procesy mają być załadowane do zwolnionych obszarów
przydzielanie i zwalnianie obszarów pamięci wg potrzeb
Zarządzanie pamięcią pomocniczą
zarządzanie obszarami wolnymi
przydzielanie pamięci
planowanie przydziałów pamięci
Zarządzanie systemem wejścia/wyjścia
system buforowo-notatnikowy
interfejs do programów obsługi urządzeń
programy obsługi urządzeń
Zarządzanie plikami
tworzenie i dostarczanie (usuwanie) plików i katalogów
dostarczanie elementarnych operacji manipulowania plikami i katalogami
odwzorowywanie plików na obszary pamięci pomocniczej
składowanie plików na trwałych nośnikach pamięci
System ochrony
Interpretator poleceń
zabezpieczenie zasobów użytkowników przed niepowołanym dostępem
zabezpieczenie przed wzajemnym działaniem programów na siebie Interpretator poleceń (DOS, UNIX)
tekstowy
graficzny
Funkcje systemowe tworzą interfejs między programem a systemem operacyjnym. Są wywołane w programie.
Przekazywanie parametrów odbywa się:
w rejestrach jednostki centralnej (procesora)
w bloku pamięci, którego adres przekazywany jest w rejestrze jednostki centralnej
poprzez stos.
Klasy funkcji systemowych:
Nadzorowanie procesów
zakończenie, zaniechanie
załadowanie, wykonanie
utworzenie procesu
pobranie i określenie atrybutów procesu
oczekiwanie czasowe
oczekiwanie na zdarzenie i sygnalizacja zdarzenia
przydział i zwolnienie pamięci.
Operacje na plikach
utworzenie i usuwanie pliku
otwarcie i zamknięcie pliku
czytanie, pisanie i zmiana położenia
pobranie i określenie atrybutów plików
Operacje na urządzeniach
żądanie i zwolnienie urządzenia
czytanie, pisanie i zmiana położenia
pobranie i określenie atrybutów urządzenia
logiczne przyłączenie i odłączenie urządzeń
Utrzymywanie informacji
pobranie i określenie daty i czasu
pobranie i określenie danych systemowych
pobranie i określenie atrybutów procesu, pliku i urządzenia
Komunikacja
utworzenie i usunięcie połączenia
nadawanie i odbieranie komunikatów
przekazywanie informacji o stanie
przyłączenie i odłączanie urządzeń wymiennych.
Kategorie programów, systemów
manipulowanie plikami
informowanie o stanie systemu
tworzenie i zmienianie zawartości plików
kompilowanie programów
komunikacja
programy użytkowe (edytory tekstów, programy graficzne, systemy baz danych, arkusze kalkulacyjne, programy statystyczne, gry itp.)
Warstwa jest implementacją abstrakcyjnego obiektu - wyizolowanym zbiorem danych i operacji, które mogą tymi danymi manipulować.
Każda warstwa może używać tylko warstw niższych poziomów.
PROCES to wykonywany program. Zwykle potrzebuje pewnych zasobów, takich jak;
czas procesora
pamięć operacyjna
pliki
urządzenia we/wy
Sam program jest obiektem pasywnym. Proces jest obiektem aktywnym.
Blok kontrolny procesu
stan procesu
licznik rozkazów
rejestry procesora
informacje o planowaniu przydziału procesora (priorytet procesu, wskaźniki do kolejek i inne parametry planowania)
informacje o zarządzaniu pamięcią (zawartość rejestrów granicznych lub tablic stron)
informacje do rozliczeń (zużyty czas procesora i rzeczywisty, numery rachunków, ograniczenia)
informacje o stanie we/wy (niezrealizowane zamówienia, wykaz przydzielonych urządzeń, lista otwartych plików itd.).
Dlaczego procesy współbieżne?
podział zasobów fizycznych (ze względu na ich ograniczoność)
podział zasobów logicznych (ze względu na konieczność wspólnego dostępu do niektórych zasobów)
przyśpieszanie obliczeń (zadania w procesie można wykonywać równoległe na wielu procesorach)
modularność
wygoda (użytkownik może jednocześnie wykonywać kilka swoich zadań).
Proces może tworzyć nowe procesy za pomocą funkcji systemowej. Proces tworzący nazywamy procesem macierzystym. Procesy utworzone nazywamy procesami potomnymi.
Zasoby procesu potomnego mogą:
pochodzić bezpośrednio od systemu operacyjnego
być podzbiorem zasobów procesu macierzystego Po utworzeniu procesów potomnych, proces macierzysty może:
kontynuować swoje działanie współbieżne ze swoimi potomkami
oczekiwać, dopóki wszystkie jego procesy potomne nie zakończą pracy.
UNIX
identyfikator procesu
funkcja systemowa „fork”
funkcja systemowa „execve” Proces kończy się gdy:
poprosi system operacyjny o swoje usunięcie poprzez wywołanie odpowiedniej funkcji systemowej
zostanie przerwany przez inny proces w wyniku wywołania odpowiedniej funkcji systemowej
Proces w momencie zakończenie może przekazać dane do procesu macierzystego (również przez wywołanie funkcji systemowej).
Zakończenie kaskadowe - wszystkie procesy potomne są kończone, jeżeli kończy działanie proces macierzysty.
UNIX
funkcja zakończenia procesu „exit”
funkcja oczekiwania na zdarzenie „wait”
zasoby są pobierane z systemu operacyjnego.
Proces niezależny nie może wpływać na zachowanie innych procesów, ani inne procesy nie mogą oddziaływać na niego.
Właściwości:
na jego stan nie wpływa w żaden sposób inny proces
wynik jego pracy zależy wyłącznie od stanu wejściowego
jego działanie jest powielarne (taki sam wynik przez takich samych danych wejściowych.)
jego wykonanie może być wstrzymywane i wznawiane bez żadnych szkodliwych skutków.
Proces, który nie dzieli żadnych danych z żadnym innym procesem jest w istocie procesem niezależnym.
Proces współdziałający może wpływać na zachowanie innych procesów lub sam może ulegać wpływom innych procesów.
Właściwości:
jego stan jest dzielony wraz z innymi procesami
nie da się określić z góry wyniku jego działania, gdyż zależy on od względnej kolejności wykonywania procesu
wynik działania może nie być zawsze taki sam przy takich samych danych wejściowych
Dowolny proces, który dzieli jakiejkolwiek dane z innymi procesami jest procesem współdziałającym.
Kryteria oceny algorytmów planowania
wykorzystanie procesora - powinno być jak największe
przepustowość - mierzona ilością procesów realizowanych w jednostce czasu
czas cyklu przetwarzania - mierzony od momentu nadejścia procesu do systemu do momentu zakończenia procesu
czas oczekiwania - czas spędzany w kolejce procesów gotowych
czas odpowiedzi - czas między zgłoszeniem zamówienia a pojawieniem się odpowiedzi.
W systemach interakcyjnych może być pożądane minimalizowanie wariancji czasu odpowiedzi.
Metoda FCFS - pierwszy nadszedł, pierwszy obsłużony (First Come, First Served)
Metoda SJF - najpierw zadania najkrótsze (Shorted Job First). Pod uwagę brana jest długość najbliższej fazy procesora, oszacowana zwykle na podstawie faz poprzednich
Metoda priorytetowa - każdemu procesowi przypisuje się priorytet. Wybieranie wg wartości priorytetu.
Metoda rotacyjna - (Round Robin) cykliczny przydział określonego kwantu czasu.
Metody wielopoziomowe - kolejka procesów gotowych dzielona jest na kilka kolejek (np. pierwszo- i drugoplanowe). Każda kolejka ma swój algorytm planowania.
Planowanie międzykolejkowe ma zwykle charakter priorytetowy.
Stronicowanie jest również metodą walki z fragmentacją zewnętrzną. Dopuszcza ona nieciągłość obszaru pamięci procesów.
Rozmiar strony jest określany przez sprzęt.
Stronicowanie eliminuje fragmentację zewnętrzną. Natomiast pozostaje fragmentacja wewnętrzna. Im mniejsze strony tym będzie ona mniejsza. Zwiększa się jednak koszt związany z wpisem to tablicy stron.
Tablicę stron można zaimplementować jako zbiór rejestrów specjalnych (zwykle w ograniczonej treści). Duże tablice stron organizuje się w pamięci operacyjnej. Zwiększa to ilość kontaktów z pamięcią i opóźnia proces.....???
Współczynnik trafień - jest to procentowa ilość numerów stron odnajdywanych w rejestrach asocjacyjnych.
Efektywny czas dostępu:
Te = w(Ta+Td ) + (1-w)(2Td+Ta)
w - współczynnik trafień
Ta - czas przeglądanie pamięci asocjacyjnej
Td - czas dostępu do pamięci głównej
Współczynnik trafień zależy od ilości rejestrów. Przy 16÷5/2 rejestrach można osiągnąć współczynnik 80+90%.
Stronicowanie umożliwia dzielenie kodu przez kilka procesów. Musi to być tzw. kod czysty - wznawialny, czyli taki, który siebie nie modyfikuje. Tablicowanie stron poszczególnych procesów będą odwzorowywać adresy na tą samą ramkę (stronę fizyczną).
Ochrona odbywa się zwykle metodą klucza i zamka oraz przy pomocy odpowiednich bitów ochrony przypisanych do każdej ramki.
Pamięć wirtualna - jest techniką, która umożliwia wykonanie procesu bez potrzeby przetrzymywania go w całości w pamięci operacyjnej. Główne zalety:
programy mogą być większe niż wielkość pamięci fizycznej
programy mogą zajmować mniej miejsca, więc zmieści się ich więcej
zmniejsza się liczba operacji we/wy koniecznych do załadowania lub wymiany procesów.
Pamięć wirtualna może być zrealizowana w systemie segmentacji, stronicowanej segmentacji. Najczęściej wykorzystuje się stronicowanie na żądanie.
Procesy rezydują w pamięci pomocniczej. Ten, który ma być wykonywany zostaje wprowadzony do pamięci głównej, jednak nie cały, lecz niezbędne strony.
Procedura wymiany będzie operować wszystkimi, całymi procesami. Procedura zmieniania stron („pager”) zajmuje się poszczególnymi stronami procesu.
Każda pozycja w tablicy stron jest uzupełniana o bit poprawności odniesienia, określający czy strona znajduje się w pamięci głównej czy na dysku. Wykonanie procesu przebiega normalnie (tak jakby cały znajdował się w PAO) dopóki działa na stronach znajdujących się w PAO. Jeżeli proces próbuje użyć stronę nieobecną to musi ją ściągnąć do pamięci. Jeżeli zostanie ściągnięta zła strona to powstaje błąd strony i należy go skorygować:
Sprawdzić tablicę stron procesu aby określić, czy odwołanie jest dozwolone.
Jeżeli odwołanie jest niedozwolone to następuje koniec procesu. W przeciwnym przypadku należy sprawdzić stronę.
Znaleźć wolną ramkę (stronę fizyczną)
Zainicjować czytanie z dysku potrzebnej strony do ramki
Zmodyfikować tablicę stron procesu.
W przypadku błędu strony występuje następujący ciąg zdarzeń:
Pułapka w systemie operacyjnym
Przechowywanie rejestrów użytkownika i stanu procesu
Rozpoznanie, że przerwanie było spowodowane błędem strony
Sprawdzenie dopuszczalności odwołania i określenie położenia strony na dysku
Wydanie polecenia czytania do ramki:
czekanie w kolejce aż zostanie obsłużone zamówienie czytania
czekanie na odszukania danych
rozpoczęcie przesyłania do ramki
Przydzielenie procesora innemu procesowi
Odebranie sygnału o zakończeniu operacji czytania z dysku
Przechowanie rejestrów i stanu procesu uaktywnionego w p.6.
Rozpoznanie, czy przetrwanie pochodziło z dysku
Skorygowanie tablicy stron i innych struktur w celu odnotowania obecności stron
Czekanie na powtórne przydzielenie procesora
Odtworzenie rejestrów, stanu procesu i nowej tablicy stron oraz wznowienie procesu.
Modyfikacja procedury obsługi błędu strony.
Odnalezienie lokalizacji potrzebnej strony na dysku
Odnalezienie wolnej ramki:
jeżeli istnieje wolna ramka, to zostanie użyta
jeżeli nie istnieje, to trzeba wykonać algorytm zastępowania w celu wytypowania ramki-ofiary
stronę-ofiarę zapisuje się na dysku (ze zmianą tablic stron i ramek)
Wczytanie do zwolnionej ramki potrzebnej strony i zmiana tablic stron i ramek
Wznowienie procesu.
Algorytm zastępowania stron
Algorytm FIFO - z każdą stroną jest skojarzony jej czas załadowania do pamięci. Do usunięcia wybiera się stronę „najstarszą”
Anomalia Belady'ego- czasami współczynnik błędu strony może wzrastać ze wzrostem ilości wolnych ramek
Algorytm optymalny - zastąpienie strony, która najdłużej nie będzie używana. Wymaga wiedzy o przyszłej postaci ciągu odwołań. Używany jest wobec tego w studiach porównawczych przy ocenie innych algorytmów. Nie występuje anomalia jw.
Algorytm LRU - zastępowanie stan najdłuższej nieużywanej (least recently used). Jest on postępowanie takie jak w algorytmie optymalnym, ale wstecz a nie w przód. Wymaga wspomagania sprzętowego.
Zarządzanie pamięcią pomocniczą
Konieczność wykorzystywania pamięci pomocniczej wynika z:
ograniczenie wielkości pamięci głównej
ulotność pamięci głównej
Początkowo były wykorzystywane taśmy magnetyczne (trwałe, pojemne, powolne, dostęp tylko sekwencyjny). Budowa pamięci dyskowych, sposób zapisu, organizacja zostały omówione na przedmiocie „Urządzenie zewnętrzne”. Obszar pamięci dyskowej jest również ograniczony, więc niezbędnie jest racjonalne gospodarowanie tym obszarem. System utrzymuje listę wolnych obszarów. Są tam odnotowane wszystkie bloki nie przydzielone do żadnego pliku. Przy załadowaniu pliku przydzielony mu obszar jest usuwany z listy, a przy kasowaniu pliku, dodawany do listy. Lista wolnych obszarów może być zaimplementowane poprzez:
mapę bitową
listę powiązań
grupowanie
zliczanie
Metody przydziału miejsca na dysku
Przydział ciągły. Każdy plik zajmuje ciąg kolejnych bloków na dysku. Przydział jest określony za pomocą adresu dyskowego i ilości bloków.
Przydział listowy. Każdy plik stanowi listę bloków dyskowych znajdujących się w dowolnym miejscu na dysku. Katalog zawiera wskaźnik do pierwszego i ostatniego bloku.
Przydział indeksowy, Skupienie wskaźników w jednym miejscu ( w bloku indeksowym). Każdy plik ma blok indeksowy będący tablicą adresów dyskowych. Katalog zawiera adres bloku indeksowego.
FAT (Tablica przydziału plików)
Proces ładowanie systemu
BOOTING
The start-up program has
to find a boot sector at a disk
DOS, Windows 95, NT or
another operating system is
load form the disk
Plan Sesji Egzaminacyjnej
Przedmiot |
Forma |
Grupa |
Data |
Godzina |
Sala |
Algorytmy |
Egzamin-pisemny |
150X 150Y |
28.05.2001 |
10.00-12.00 |
A-4 A-9 |
Grafika komputerowa |
Egzamin-ustny |
150 |
30.05.2001 |
10.00-16.00 |
B-13 |
Podstawy informatyki |
Egzamin-pisemny |
150 |
31.05.2001 |
12.00-14.00 |
C-113 |
|
|
|
|
|
|
|
|
|
|
|
|
Praca pochodzi z serwisu www.e-sciagi.pl
POST
(Power On Self Test)
Test programs
ROM (Ready Only Memory)
Programs on chips at the motherboard
Setup data from CMOS
BIOS
(Basic Input Output System)
System software copied to RAM
ROM chips with BIOS programs
BIOS copied from adapters