Systemy operacyjne

  1. Zasada działania komputera (14-20)

  2. Podstawowe zadania systemu operacyjnego (2,88-90)

  3. Szeregowanie zadań przez system operacyjny (42-45)

  4. Jak jest zorganizowany dostęp procesora do pamięci i jak się oblicza czas tego dostępu (108-120)

  5. Zasada działania pamięci wirtualnej (71-74)

Ad. 1

Podstawowym zadaniem komputera jest wykonywanie programu.

Program przeznaczony do wykonania składa się z zestawu rozkazów przechowywanych w pamięci. Procesor realizuje to zadanie, wykonując rozkazy wyszczególnione w programie.

Podstawowe elementy wykonywania programu:

W najprostszej postaci przetwarzanie rozkazu składa się z dwóch kroków: procesor odczytuje (pobiera) rozkaz z pamięci, a następnie wykonuje go.

Realizacja programu polega na powtarzaniu procesu pobierania i wykonywania rozkazu. Wykonywanie rozkazu może zawierać pewną liczbę kroków i jest zależne od natury rozkazu.

Cykl rozkazowy:

Przetwarzanie wymagane dla pojedynczego rozkazu jest nazywane cyklem rozkazu. Jest on pokazany na rys. 9, przy czym wykorzystano 2-etapowe ujęcie przedstawione powyżej.

Te dwa etapy są określane jako cykl pobierania i cykl wykonywania. Wykonywanie programu jest wstrzymywane tylko po wyłączeniu maszyny, po wystąpieniu pewnego rodzaju nieodwracalnego błędu lub jeśli wystąpi w programie rozkaz zatrzymania komputera.

Pobieranie i wykonywanie rozkazu:

Na początku każdego cyklu rozkazu procesor pobiera rozkaz z pamięci. W typowym procesorze do śledzenia, który rozkaz ma być pobrany, służy rejestr zwany licznikiem programu (PC). Jeśli procesor nie otrzyma innego polecenia, to powoduje inkrementację (elementarny przyrost stanu) licznika PC po każdym pobraniu rozkazu i wykonuje następny rozkaz w ciągu (to znaczy rozkaz zlokalizowany w pamięci pod najbliższym adresem o kolejnym wyższym numerze).

Pobrany rozkaz jest następnie ładowany do rejestru w procesorze zwanego rejestrem rozkazu (IR). Rozkaz ten ma postać kodu binarnego określającego działanie, które ma podjąć procesor. Procesor interpretuje rozkaz i przeprowadza wymagane działanie.

Ad. 2

System operacyjny jest programem, który steruje wykonywaniem programów użytkowych przez procesor i zarządza jego zasobami. Przy tym realizuje dwie grupy funkcji:

Sprzęt i oprogramowanie umożliwiające użytkownikowi posługiwanie się aplikacjami mogą być postrzegane jako struktura warstwowa lub hierarchiczna, co zostało pokazane na rys.1.

W systemie operacyjnym można wyróżnić poszczególne elementy, przedstawione na rysunku 1 i opisane poniżej.

Zarządzanie procesami (zadaniami)

System operacyjny steruje wykonaniem różnych działań, takich jak wykonanie programów, wyprowadzanie i wprowadzanie danych, itp. Takiego typu działania nazywamy procesami systemu operacyjnego. Wykonanie programu użytkownika również będzie procesem. Sam program jest obiektem pasywnym i nie można nazwać go procesem. Komputer ma do wykonania różne procesy. Są to procesy systemu operacyjnego i procesy użytkownika.

System operacyjny realizuje następujące zadania związane z zarządzaniem procesami:

Zarządzanie pamięcią operacyjną

System operacyjny jest odpowiedzialny za następujące czynności związanie z pamięci operacyjną:

System plików

System operacyjny umożliwia pracę na plikach danych za pomocą nazw symbolicznych. Oznacza to, że nie zachodzi potrzeba znajomości poszczególnych adresów w pamięci fizycznej, jej organizacji oraz budowy. Dla użytkownika tworzony jest jednorodny, logiczny model przechowywanie informacji. System operacyjny dostarcza abstrakcyjnego pojęcia pliku oraz określa sposoby korzystania i zarządzania plikami.

Zarządzanie systemami wejścia-wyjścia

System ten dostarcza prostych rozwiązań dotyczących obsługi wejścia i wyjścia, czyli wprowadzania i wyprowadzania danych. Dzięki temu użytkownik nie musi znacz poszczególnych specyfikacji urządzeń peryferyjnych.

System ochrony

System ochrony dostarcza pewnych mechanizmów, gwarantujących, że takie zasoby jak pliki, pamięć, procesor czy urządzanie zewnętrzne będą użytkowanie przez uprawnione do tego procesy. System ten chroni użytkownika przed popełnionymi przez niego błędami, chroni tez zasoby, jeżeli więcej użytkowników korzysta z jednej maszyny.

System interpretacji poleceń

Żądania przekazywane są do systemu operacyjnego za pomocą instrukcji sterujących, zawierających polecenia dla systemu operacyjnego. System operacyjny dostarcza użytkowi nowi pewnego sprzęgu (złącza, interfejsu), za pomocą którego może sterować praca maszyny.

Instrukcje sterujące interpretowane są przez program nazywany interpreterem poleceń. Polecenia rozpoznawane przez interpreter dotyczą obsługi wejścia-wyjścia plików, pamięci, sieci, procesów oraz ochrony danych.

Praca sieciowa

Ta część systemu operacyjnego jest typowa dla rozproszonego systemu komputerowego. System rozproszony składa się ze zbiorów procesorów, które nie korzystają ze wspólnej pamięci, oraz z zegara.

Każdy z procesorów ma lokalną pamięć i komunikuje się z innymi procesorami poprzez łącza komunikacyjne. Systemy operacyjne umożliwiają dostęp do zasobów innych komputerów, traktując te zasoby jako uogólnione pojęcie pliku.

Ad. 3

Szeregowanie

Kluczem do wieloprogramowania jest szeregowanie. Zwykle stosuje się cztery rodzaje szeregowania (tabela 4).

Szeregowanie długookresowe Decyzja wprowadzenia do puli programów przeznaczonych do wykonania
Szeregowanie średniookresowe Decyzja wprowadzenia do procesów, które częściowo lub całkowicie znajdują się w pamięci głównej
Szeregowanie krótkookresowe Wybór tego spośród dostępnych procesów, który będzie wykonywany przez procesor
Szeregowanie operacji wejścia-wyjścia Wybór tego spośród zawieszonych żądań wejścia-wyjścia, które ma być realizowane przez dostępne urządzenie wejścia-wyjścia

Program szeregujący wysokiego poziomu (szeregowanie długookresowe) działa stosunkowo rzadko i podejmuje ogólne decyzje, czy przyjąć nowy proces i który proces ma być przyjęty.

Krótkookresowy program szeregujący, znany również jako dyspozytor (dispatcher), działa często i podejmuje bardziej szczegółowe decyzje, które zadanie ma być realizowane jako następne.

Aby zrozumieć działanie dyspozytora (w szeregowaniu), musimy rozważyć koncepcję stanu procesu. Podczas czasu życia procesu, jego status zmienia się wielokrotnie. Status procesu w dowolnym czasie jest nazywany stanem, ponieważ oznacza on jednocześnie, że istnieje pewna informacja definiująca status w tym momencie.

Definiuje się zwykle pięć stanów procesu (rys. 7).

Ad. 4

Rysunek Nazwy urządznień standardowych w systemach rodziny Linux (wybrane przykłady)

Nazwa Opis
hda Pierwszy dysk twardy (IDE/EIDE)
hda1 Pierwsza partycja na pierwszym dysku twardym
hdb Drugi dysk twardy (IDE/EIDE)
fd Pierwsza stacja dysków elastycznych
sda Pierwszy dysk twardy (SCSI)
lp0 Pierwszy port równoległy drukarki
ny1 Pierwszy terminal
ny2 Drugi terminal
null Urządzenie puste

Dodatkowo definiowanie jest urządzenie puste (NUL, null), któremu nie odpowiada żadne faktyczne istniejące urządzenie. Do tego urządzenia można kierować niepotrzebne dane – użycie tego urządzenia pozawala np. na pozbycie się niektórych komunikatów systemowych.

Wiele urządzeń może być jedynie obiektami emulowanymi przez system operacyjny (urządzeniami logicznymi). Nie występują wówczas na liście fizycznych modułów zainstalowanych w komputerze, a ich funkcje (dostępne dla programistów) SA dostarczane przez system - często w wyniku pracy zupełnie innych urządzeń fizycznych. Przykładem takiego urządzenia może być np. emulowany terminal, służący do komunikacji zdalnej z innymi systemami operacyjnymi.

Zasoby dostępu do urządzenie wejściowych i wyjściowych

Systemy operacyjne mają z reguły strukturę warstwą. Warstwa, która ma bezpośredni dostęp do sprzętu, zawiera podstawowe programy obsługi tego sprzętu w zakresie wprowadzania i wyprowadzania danych. Warstwa ta nosi nazwę podstawowego systemu wejścia-wyjścia BIOS (Basic Input Output System).

Programy BIOS-u znajdują się w pamięci typu ROM, której zawartość nie jest zmieniana podczas pracy systemu operacyjnego. Za pomocą podprogramów zawartych w systemie BIOS można sterować takimi zasobami, jak: porty szeregowe, porty równoległe, klawiatura, ekran oraz dyski. Podprogramy dostarczają jedynie podstawowego mechanizmu dostępu typu: czytaj, zapisz. Podprogramy te nie organizują danych w sposób umożliwiający łatwe generowanie nimi. Na przykład podprogramy BIOS-u mogą zapisywać dane do sektorów dyskowych, ale nie korzystają z systemu plików. W warstwie wyższej pracują podprogramy systemu operacyjnego, dostarczając funkcji wyższego poziomu. Wykorzystują procedury BIOS-u, stanowią one dodatkowy poziom pomiędzy programem użytkownika a procedurami BIOS-u. ten dodatkowy poziom ułatwia korzystanie z urządzeń systemu komputerowego i jest bardziej elastycznym rozwiązaniem, z drugiej strony zaś może być przyczyną wolniejszego wykonywania programów. Z tego powodu niektóre programy nie korzystają z procedur systemu operacyjnego, lecz sięgają bezpośrednio do procedur BIOS-u lub wręcz programują urządzenia na poziomie portów.

Urządzenia wejściowe i wyjściowe pracują bardzo powoli w porównaniu z szybkością procesów. W związku z tym możliwa jest równoczesna praca procesora i urządzeń. Aby taka praca była możliwa, obsługa urządzeń wejścia-wyjścia realizowana jest poprzez mechanizm przerwań, zaś przesyłanie bloków danych bazuje zwykle na bezpośrednim dostępie do pamięci (DMA).

Zaprogramowany kontroler DMA przekazuje dane do urządzenia. Gdy wystąpi zdarzenie specjalne, związane z urządzeniem (polegające np. na opróżnieniu się bufora z danych, pojawieniu się danych do przetworzenia wyprodukowanych przez urządzenie), generowane jest przerwanie (tzw. Przerwanie sprzętowe), które zostaje następnie obsłużone prze procedurę systemu operacyjnego.

Zarówno BIOS, jak i system operacyjny zapewniają dostęp do zasobów poprzez wykorzystanie mechanizmu przerwań programowych – instalując swoje własne procedury obsługi przerwań. Procedury te będą następnie jawnie wywoływane przez wykonywanie w systemie programy – za każdym razem, gdy program będzie korzystał z danej usługi systemu operacyjnego czy funkcji BIOS-u.

Ad. 5

Pamięć wirtualna

Stronicowanie na żądanie

W wyniku zastosowania stronicowania stały się możliwe prawdziwie efektywne systemy wieloprogramowe.

Równie ważne jest to, że prosta taktyka podziału procesu na strony doprowadziła do powstania innej ważnej koncepcji – pamięci wirtualnej. Aby zrozumieć na czym polega pomysł pamięci wirtualnej, musimy dodać pewne ulepszenie do omawianego schematu stronicowania. Ulepszeniem tym jest stronicowanie na żądanie, które oznacza po prostu, że każda strona procesu jest wprowadzana tylko wtedy, kiedy jest potrzebna, to znaczy na żądanie.

W przypadku stronicowania na żądanie nie jest konieczne ładowanie całego procesu do pamięci głównej. Fakt ten ma doniosłe konsekwencje: istnieje możliwość, żeby proces był większy od całej pamięci głównej. Usunięte zostało jedno z najbardziej fundamentalnych ograniczeń w programowaniu. Bez stronicowania na żądanie programista musiał ciągłe zwracać uwagę na to, ile pozostało dostępnej pamięci. Jeśli program został napisany jako zbyt obszerny, programista musiał znaleźć sposoby jego podziału na części, które mogły być jednorazowo załadowane.

W przypadku stronicowania na żądanie zadanie to jest pozostawione systemowi operacyjnemu i sprzętowi. Jeśli chodzi o programistę, ma on do czynienia z potężną pamięcią o pojemności związanej z pamięcią dyskową. System operacyjny używa stronicowania na żądnie w celu ładowania części tego procesu do pamięci głównej.

Ponieważ proces jest realizowany tylko w pamięci głównej, pamięć ta jest określana jako pamięć rzeczywista.

Jednak programista lub użytkownik dysponuje o wiele większą pamięcią – tą, która znajduje się na dysku. Ta ostatnia jest wobec tego nazywana pamięcią wirtualną. Pamięć wirtualna umożliwia bardzo efektywne wieloprogramowanie i uwalnia użytkownika od niepotrzebnie ciasnych ograniczeń pamięci głównej.


Wyszukiwarka

Podobne podstrony:
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
Model ISO-OSI, szkola, systemy operacyjne, klasa 4
dobrucki,systemy operacyjne, Rodzaje pamięci
Organizacja pamięci komputerów, szkola, systemy operacyjne, klasa 1
zadania-egzaminacyjne, Studia WIT - Informatyka, Systemy operacyjne

więcej podobnych podstron