Podstawy info 7

background image

Wstęp do Informatyki

Wykład 7

Podstawy

systemu

operacyjnego

Autor: Dr hab. Marek J. Greniewski

background image

Podział na części architektoniczną i

układową współczesnego komputera

Układy we-wy

Procesor

Kompilator

System

operacyjny

(np. Windows 2K)

Aplikacje (np. Netscape)

Układy cyfrowe

Obwody

scalone

Lista rozkazów

określająca architekturę

Ścieżki danych i sterowanie

Bramki i

elementy

pamięci

Pamięć

Hardware

Software

Assemble
r

Magistrala

background image

Komputery pierwszej

generacji

• Pierwsza generacja komputerów charakteryzowała się strukturą,

w której wszystkie moduły, włączając w to moduł wejścia-wyjścia

były sterowane przez jedno urządzenie.

• Nakładanie się operacji różnych urządzeń zewnętrznych było

dozwolone, jednak wysłanie rozkazu do urządzenia

przetwarzającego jeszcze poprzedni rozkaz – powodowało

wstrzymanie całego systemu aż do zakończenia poprzedniego

rozkazu.

• Oznaczało to, że prędkość całego komputera była ograniczana

przez najwolniejsze używane w danej chwili urządzenie lub

moduł.

• Prowadziło to niskiego wykorzystania mocy komputera.
• Wraz z rozwojem liczby użytkowników i zakresu zastosowań

komputerów w wielu dziedzinach, z jednej strony sformułowane

zostały wymagania użytkownika, z drugiej strony wymyślono

rozwiązania sprzętowe oraz programowe umożliwiające

zaspokojenie wymagań użytkowników systemów

komputerowych.

background image

Wymagania użytkowania komputera

• Projektowanie, programowanie i wykonywanie algorytmów musi

być jak najbardziej ułatwione dlatego:

– Zapotrzebowanie na odpowiednie języki
– Zapotrzebowanie na odpowiednie mechanizmy pisania, modyfikowania

oraz testowania algorytmów – umożliwiające potwierdzenie ich
poprawności

– Zapotrzebowanie na podstawowe procedury wielokrotnego wykorzystania

• System musi funkcjonować niezawodnie, co należy rozumieć

jako:

– Z chwilą zakończenia prac nad uruchamianiem programu należy mieć

zaufanie do otrzymywanych rezultatów

– Nie powinny zdarzać się „katastrofy”, które mogłyby uszkodzić lub

zniszczyć informacje nie dające się natychmiast odtworzyć

• Zasoby zużywane przez program muszą być kontrolowane, co

należy rozumieć:

– Nie można dopuścić aby program przekroczył granicę przydzielonego

czasu

– Podział zasobów pomiędzy programy musi być zgodny z przyjętymi

priorytetami.

background image

Rozwiązania

zapotrzebowania

• Większość potrzeb użytkowania systemów komputerowych

jest zaspakajana przez

specjalnie zaprojektowane

oprogramowanie

.

• Oprogramowanie to wprowadzone pomiędzy użytkownika

systemu komputerowego, a sprzęt komputerowy

(hardware) nazwano

systemem operacyjnym (Operating

System)

.

• W skład systemu operacyjnego,wykorzystując podstawowe

mechanizmy tego ostatniego, wchodzi szereg programów

pomocniczych lub usługowych zwanych

utilities

.

• Dodatkowym składnikiem systemu operacyjnego jest

specjalizowany język, który zapewnia komunikację

pomiędzy systemem operacyjnym – a użytkownikiem

systemu komputerowego, który początkowo nazywano

Job

Control Language

.

background image

Cele i funkcje systemu

operacyjnego

System operacyjny jest programem – sterującym

wykonywaniem programów aplikacyjnych i działającym

jako interfejs pomiędzy użytkownikiem i sprzętem

(hardware) komputera.

System operacyjny realizuje dwojakie cele:

– Ułatwienia w użytkowaniu komputera
– Zapewnienie sprawności wykorzystania komputera.

Programy

aplikacyjne

Programy

narzędziowe

System operacyjny

Sprzęt komputera

Użytkownik

końcowy

Programista

aplikacji

Projektant

systemu

operacyjnego

Programy

aplikacyjne

Programy

narzędziowe

(

utilities

)

System operacyjny

Sprzęt komputera

(

hardware

)

background image

Programy i procesy I

• Podczas wykonywania można wyróżnić trzy niezależne byty:

– Zbiór instrukcji, czyli

procedurę

– składający się na dany program

– Procesor, to jest urządzenie realizujące daną procedurę

– Środowisko, czyli tą część otoczenia, na której zmiany stanów

procesor może bezpośrednio reagować lub które może zmieniać.

• Program idealny

- rozpatrywany jest jako wykonanie

sekwencji rozkazów określonych przez procedurę programu,

w pewnym określonym czasie.

• Podstawowe własności

programu idealnego to

:

– Operacje określone przez procedurę wykonywane są w ścisłym

porządku sekwencyjnym, gdzie po zakończeniu każdego kroku

procedury następuje aktywizacja kroku następnego

– Środowisko znajduje się całkowicie pod kontrolą programu i nie

podlega żadnym zmianom, chyba że zmiany te są wynikiem

rezultatu wykonania programu.

– Z wyjątkiem sytuacji, w których wyniki programu mają być uzyskane

we wskazanym czasie, rzeczywisty czas zużyty na wykonanie każdej

z operacji nie jest istotny z punktu widzenia programu.

• Z powyższego wynika, że

program idealny jest systemem

zamkniętym

, czyli jest wykonywany niezależnie od zdarzeń

występujących poza jego środowiskiem.

background image

Programy i procesy II

• Większość programów aplikacyjnych napisanych w języku

wysokiego rzędu stanowi przybliżenie programu idealnego.

• Różnica jest zwykle trywialna i wiąże się z dostępem do

zegara czasu rzeczywistego lub poleceń dawanych za

pośrednictwem wyrażeń Job Control Language przez

operatora systemu lub użytkownika.

• Programy idealne nie nadają się do zarządzania przez

system operacyjny, z następujących przyczyn:

– Systemowi operacyjnemu stawia się wymaganie efektywnego

wykorzystywania wszystkich składowych systemu komputerowego

– System operacyjny musi zapewnić określony czas rekcji na

otrzymywane polecenia lub zapytania.

• Pierwsze próby stworzenia oprogramowania, które mogły

zapewnić współbieżność operacji i obsłużyć nie dające się

przewidzieć żądania były czynione bez żadnych podstaw

teoretycznych, a w konsekwencji powstawały sytuacje

prowadzące do pewnych niepowtarzalnych błędów o

trudnych do zlokalizowania przyczynach.

background image

Programy i procesy III

• Trudności te doprowadziły do wprowadzania pojęcia „

procesu

”.

• Proces

jest pod wieloma względami podobny pojedynczemu

wykonaniu programu idealnego, składa się również z szeregu

nie współbieżnych kroków, z których każdy w określony

sposób bada lub zmienia środowisko.

• Proces

jest zwykle kontrolowany przez procedurę, która sama

jest częścią środowiska (jest w nim zapamiętana).

• Proces

bez żadnych konsekwencji może być przerywany,

można też zmieniać procesory w w trakcie jego wykonywania.

• Zasadnicza różnica pomiędzy procesem a programem

idealnym polega na tym, że

proces nie jest układem

zamkniętym

, może się komunikować z innymi procesami w

sposób jawny lub niejawny przez zmianę lub badanie swojego

środowiska, które to środowisko jest wspólne dla zbiorowiska

procesów.

• Dzielone pomiędzy procesy środowisko

często jest nazywane

środowiskiem globalnym

, w odróżnieniu od środowiska

pojedynczego procesu - zwanym środowiskiem lokalnym.

background image

Programy i procesy IV

We współczesnych systemach komputerowych

wiele

procesorów

może być jednocześnie

aktywnych

.

Z drugiej strony jeśli przyjmiemy, że

proces jest jednostką

aktywności procedury

- wykonywaną przez jeden z

procesorów. Inaczej mówiąc,

proces jest pojedynczym

wykonaniem procedury

.

Oznacza to, że każdy

proces

jest czymś co ma tymczasowy

żywot

”, a zatem istnieje moment kiedy proces się „

rodzi

lub jest zainicjowany oraz inny moment, kiedy proces

umiera

” po wykonaniu swojego zadania.

Ogólnie można powiedzieć, że

poszczególne procesy są

inicjowane przez inne procesy

i że musi istnieć jeden

proces główny

”, od którego zaczyna się łańcuch inicjacji.

Ten

główny proces jest aktywizowany uruchomieniem

systemu operacyjnego

.

background image

Stany procesu i

ekstrakody

• W dowolnym momencie życia procesu jego funkcjonowanie

jest opisane przez „stan procesu”.

• Stan procesu wskazuje na to, czy proces jest aktywizowany

– czyli jest

nowym

procesem, czy jest procesem

gotowym

oczekującym na realizację, czy jest aktualnie

realizowany

,

czy z jakichś przyczyn systemowych jest procesem

oczekującym

na dalszą realizację, czy wreszcie jest

procesem, który już wykonał zadanie i został

zatrzymany

.

• Proces komunikuje się z innymi procesami za pomocą tzw.

ekstrakodu

, odwołując się w tym celu do systemu

operacyjnego.

• Ekstrakody dzielą się na dwie grupy:

– Pierwsza zajmuje się

inicjowaniem i kończeniem procesów

– Druga zajmuje się manipulowaniem specjalnymi znacznikami,

zwanymi „

semaforami

”.

background image

Graf stanów procesu

Nowy

Gotowy

Realizowany

Zatrzymany

Oczekujący

Cykl życia procesu

background image

Przykłady stanów procesu

Proces nowy

. Zadanie zostało przyjęte przez program

szeregujący wysokiego poziomu, lecz nie jest gotowy do

realizacji. System operacyjny inicjuje proces

odpowiadający zadaniu, przesuwając go tym samym do

stanu gotowości.

Proces gotowy

. Proces jest gotowy do wykonywania i

oczekuje na dostęp do procesora.

Proces realizowany

. Proces realizowany przez procesor.

Proces oczekujący

. Realizacja procesu została

zawieszona ze względu na oczekiwanie na dostęp do

wskazanych przez proces zasobów komputera, np.

wejścia-wyjścia.

Proces zatrzymany

. Proces albo został zakończony z

sukcesem, albo zakończony na skutek błędu

strukturalnego i zostanie zniszczony przez system

operacyjny.

background image

Semafory I

• Jak już powiedzieliśmy ekstrakody dzielą się na dwie grupy:

– Pierwsza zajmuje się

inicjowaniem i kończeniem procesów

– Druga zajmuje się manipulowaniem specjalnymi znacznikami, zwanymi

semaforami

” i testowaniu stanu tych ostatnich.

• Każdy fragment środowiska procesu może być określany jako

semafor

.

• Istnieją trzy typy ekstrakodów operujących na semaforach:

– Zmieniania wartości

wskazanego

semafora

w określony sposób

– Zawieszania procesu

wydającego ekstrakod (czyli przestawienie procesu

w stan oczekiwania) na tak długo,

póki określony wartość z semafora

nie jest osiągnięta. Jeśli semafor ma określoną wartość, proces nie jest
zawieszany

– Sprawdzania, czy semafor ma określoną wartość

. Jeśli ma –

wykonywana jest podana operacja na semaforze i kontynuowany jest
proces od następnej instrukcji. Natomiast jeśli semafor niema określonej
wartości, to następuje przekazanie sterowania pod wskazany adres.

• Ostatni z wymienionych ekstrakodów jest operacją

nieprzerywalną.

background image

Semafory II

Nazwa „

semafor

” została wybrana w związku z analogią

pomiędzy nadzorowaniem procesów a sygnalizacją w

kolejnictwie.

Załóżmy, że

liczne pociągi przybywają

do węzła

A

i muszą

przemieścić się

n-torową

linią do węzła

B

. Linia łącząca

A

z

B

może równocześnie obsłużyć

n

pociągów. Sygnał semafor

S

w

węźle

A

pokazuje w każdej chwili liczbę pociągów na trasie.

Procedura postępowania maszynisty jest następująca:

1. Przybądź do

A

2. Zatrzymaj się jeśli wartość

S

nie jest mniejsze od

n

3. Jeśli

S

nie jest mniejsze od

n

idź do 2. W przeciwnym razie dodaj

1

do

S

4. Przebądź trasę

AB

5. Po dojechaniu do

B

odejmij

1

od

S

6. Udaj się do miejsca przeznaczenia.

Kroki

2

,

3

i

5

procedury są ekstrakodami.

Jeśli pociąg przybywa do

A

, gdy na linii

AB

jest mniej

pociągów niż

n

, to niema opóźnienia. Jeśli linia jest

zapełniona, to każdy pociąg będzie czekał na bocznicy. Gdy

pociąg opuści w

B

linię, wszyscy maszyniści będą

„aktywizowani”, ale tylko jednemu uda się wjechać na linię. W

tym momencie sygnał

S

powróci do wartości

n

, a pozostali

maszyniści wrócą do stanu oczekiwania – zgodnie z krokiem 2

procedury.

background image

Schemat semafora

Węzeł A Węzeł B

Semafor

background image

Semafory III

• Jako inny przykład użycia semafora rozpatrzmy „bufor danych”.
• Bufory są używane w każdym miejscu, do którego informacje są

dostarczane w innym tempie, od tego w jakim opuszczają to
miejsce.

• Dobrym przykładem jest proces, który przełącza się z bardzo

szybkiego wyprowadzania wyników, np. na drukarkę laserową, w
długi okres przetwarzania, podczas którego nie emituje żadnych
wyników.

• Gdyby takiemu procesowi na stałe przydzielić drukarkę, jego faza

wyprowadzenia wyników uległaby istotnemu spowolnieniu, zaś
podczas fazy przetwarzania – drukarka nie byłaby wykorzystywana.

• Wprowadzając bufor – czyli odpowiednio duży obszar pamięci

komputera, pomiędzy proces a drukarkę, dopasowujemy szybkość
procesu i drukarki. W fazie wyprowadzania wyników, proces
dokonuje zapisu w buforze, z którego następnie odbywa się
drukowanie z maksymalną szybkością.

background image

Bufor drukarki

• Przyjmijmy, że bufor składa się z obszaru pamięci o

pojemności

n

rekordów (linii wydruku), oznaczonych numerami

0

,

1

, ... (

n-1

).

• Obszar jest cykliczny, czyli że rekord

0

przylega do rekordu (

n-

1

).

• Z buforem związane są dwa

wskaźniki

(strzałki)

p

i

q

. Przy

czym

p

jest wskaźnikiem wejściowym, według którego proces

wpisuje do rekordu wygenerowaną linię,

q

jest wskaźnikiem

wyjściowym i wskazuje rekord zawierający następną linię

oczekującą na wydruk.

• Wskaźniki zmieniają swoją wartość tylko po zakończeniu

operacji wprowadzania i wyprowadzania z bufora.

• Dodawanie

1

do wskaźników

p

i

q

odbywa się modulo

n

.

• Z buforem współpracują dwa procesy. Jeden z nich stanowi

wykonanie procedury generującej kolejne linie, drugi jest

odpowiedzialny za wydruk z bufora.

• Zadaniem procesu drukowania jest utrzymanie drukarki w

ciągłej pracy, chyba że bufor jest pusty. Ta sytuacja zaistnieje,

gdy

p

=

q

+

1

(mod

n

).

background image

Schemat blokowy ładowania

bufora

Ustaw semafory

p:= 1 q:=0

Dodaj 1 do p

(mod n)

Zapamiętaj

linię pod p

Zawieś się

jeśli p=q

Aktywuj proces

drukowania

Generuj wiersz

wyników

start

background image

Schemat procesu drukowania

Zawieś się

jeśli p=q+1

Dodaj 1 do q

(mod n)

Drukuj

linię q

Start

background image

Sterowanie procesami I

• Jak zostało wcześniej powiedziane, każdy

proces składa się z

sekwencji prostych operacji

– w określony sposób zmieniających

środowisko.

• Proces

może być

przerywany

pomiędzy kolejnymi operacjami i

następnie wznawiany

bez żadnych niezamierzonych

konsekwencji, o ile

lokalnemu środowisku zostanie przywrócony

stan sprzed przerwania

.

• W działającym systemie komputerowym mamy do czynienia z

wieloma procesami. Część z nich jest

zawieszona

(

oczekująca

),

część jest

gotowa

, a część jest

realizowana

. Zakończony proces

nie istnieje dalej, bo jest po prostu usuwany (tak jak spektakl
teatralny z chwilą opadnięcia kurtyny).

• Rozpatrzmy pierwszy nadmiarowy system komputerowy zdolny

do wykonywania procesów współbieżnych. System ten zawiera:

Środowisko
Procesory
Linie sygnałowe i sterujące

background image

Struktura sterowania

Pamięć

Procedura

sterująca

Procesor

sterujący

Procesor A

Procesor B

Procesor C

Tablice

procesów

Środowisko

Procesory

Linie sterujące

Linie sygnałowe

background image

Sterowanie procesami II

• Środowisko

obejmuje to wszystko, co komputer może zbadać

lub zmienić, włączając w to pamięci wszelkich typów, dane w

urządzeniach wejścia-wyjścia, a nawet puste formularze i

papier w tych urządzeniach.

• Procesory

obejmują wszystkie urządzenia, które mogą

wywierać wpływ na środowisko. Dzielą się one na dwie grupy:

– Procesory „centralne”

sterowane przez zapamiętane instrukcje

pobierane ze wskazanego miejsca środowiska

– „Urządzenia wejścia-wyjścia”

działające zgodnie z określonymi

sekwencjami sterującymi.

• Oba typy procesorów

mają tę własność, że począwszy od

wskazania im odpowiednich danych (takich jak adres pierwszej

instrukcji w zapamiętanej sekwencji lub adres obszaru pamięci,

którego zawartość ma zostać przemieszczona)

mogą być

aktywizowane i działać autonomicznie

.

• Stwarza to możliwość

jednoczesnego działania wielu

procesorów

, o ile tylko kolizje występujące przy jednoczesnym

dostępie do pamięci rozstrzygane będą przez układ arbitrażu

(zrealizowany sprzętowo).

background image

Sterowanie procesami III

• Przyjmijmy, że jest

dostatecznie dużo procesorów różnych

typów

, tak aby można było

obsłużyć każdy nowo utworzony

proces

.

• Załóżmy, że

steruje pracą komputera

wyspecjalizowany

procesor centralny, zwany dalej

procesorem sterującym

,

działający zgodnie z

procedurą sterowania

przechowywaną w

pamięci.

• Procesor sterujący ma specjalne

linie komunikacyjne

z

pozostałymi procesorami (są to linie:

sygnałowe

i

sterujące

).

Może on aktywizować te procesory ustalając w nich dowolne
warunki początkowe. Jest ponadto informowany gdy tylko
któryś z procesorów zakończy wykonywanie procesu lub
wykona ekstrakod komunikacyjny.

• Procesor sterujący prowadzi

rejestr

(tablica procesów)

wszystkich

istniejących procesów oraz powodów zmiany ich

stanów

. Procesor sterujący oczekuje na zdarzenia i określa ich

przyczyny, aktualizując zapisy w tablicy procesów.

background image

Sterowanie procesami IV

• Jeśli

zdarzeniem

jest pojawienie się ekstrakodu

żądającego

utworzenia nowego procesu

, procesor sterujący

tworzy nowy

proces i go aktywizuje

.

• Każdy proces

po wykonaniu przez procesor centralny ekstrakodu

komunikacji

musi być

zawieszony

, do czasu wznowienia go przez

procesor sterujący.

• W odróżnieniu jednak od każdego z procesorów realizujących

przy-porządkowany mu proces,

procesor sterujący nie panuje nad

nad wykonywaniem procesów przez poszczególne procesory

.

• Natomiast pozostałe

procesory mogą zażądać obsługi

ze strony

procesora sterującego

w dowolnym momencie

.

• Nie jest do pomyślenia sytuacja, w której

procesor sterujący

zaniechałby obsługi

jednego z procesorów,

gdy żądanie obsługi

przyjdzie

od innego. Dlatego też

wszystkie zdarzenia

, które

wystąpią wtedy gdy procesor sterowania jest zajęty,

umieszczane w kolejce oczekiwania

na obsługę. Po zakończeniu

wykonywanej obsługi,

procesor sterujący pobiera kolejne zadanie

z kolejki

oczekiwania na obsługę.

background image

Sterowanie procesami V

W omawianej organizacji komputera, jest

nierealnym

rozwiązanie

zapewnienia tak wielu procesorów, aby

zawsze

istniał choć jeden gotowy

dla każdego nowego procesu

.

W rzeczywistości należy przyjąć, że

niekiedy procesy muszą

zostać wstrzymane, ponieważ nie będzie dostępnych
procesorów

. Co z kolei stwarza problem przydziału,

ponieważ za każdym razem kiedy procesor zostaje
zwolniony,

należy podjąć decyzję któremu procesowi

przydzielić zwolniony procesor

.

Wyboru tego procesor sterujący dokonuje posługując się

algorytmem szeregowania procesów

”.

Jak widać z powyższego,

procesor sterujący jest mało

obciążony

. Można zatem

pozbyć się go

całkowicie i

rozłożyć

jego funkcję

pomiędzy pozostałe

procesory centralne

.

background image

Sterowanie procesami VI

Wynika stąd, że każdy procesor centralny będzie odgrywał

dwie role (działając w dwu różnych trybach: „normalnym” i

„sterującym”) oraz będzie zmuszony dokonywać

odpowiednich przełączeń pomiędzy nimi.

W trybie „normalnym” będzie realizował proces i będzie

narażony na przerwania.

W trybie „sterującym” zaś, otrzyma prawa nadzoru nad

pozostałymi procesorami i nie będzie narażony na

przerwania. Tryb sterujący często nazywany jest trybem

„obsługi przerwań”. Wszystkie procesory centralne działając

w trybie „sterującym” realizują kopie procedury sterowania

systemem komputerowym.

Jest rzeczą możliwą, że kilka procesorów równocześnie

działa w trybie „sterującym”, należy więc zapewnić, aby nie

przeszkadzały sobie wzajemnie podczas wykonywania

operacji na tablicach stanów procesów.

background image

Sterowanie procesami VII

• Aktywowanie procesu sterowania dokonywane jest następująco:

– Za każdym razem gdy wykonywany jest ekstrakod komunikacji w procesie

realizowanym na procesorze centralnym, procesor zostaje przełączony na

tryb sterujący, po zapamiętaniu stanu procesu, ten ostatni jest

zawieszany.

– Za każdym razem gdy proces wejścia-wyjścia kończy się, urządzenie

sygnalizuje zdarzenie wysłaniem przerwania. Przerwanie jest kierowane

do jednego z centralnych procesorów, a ten po przełączeniu z trybu

normalnego na tryb sterujący, obsługuje to zdarzenie. Wiąże się to

zwykle, z tak szybkim jak to jest możliwe, obsłużeniem urządzenia.

– Wyznaczanie procesora centralnego do obsługi przerwania może

odbywać się za pomocą tzw. wybieraka, który przejrzy kolejno procesory

centralne, aż znajdzie taki, który nie działa, w danym momencie, w trybie

sterującym. Jeśli wszystkie procesory działają w trybie sterującym –

przerwanie jest umieszczane w kolejce.

• Gdy tylko któryś procesor centralny zakończy pracę w trybie

sterującym, przechodzi w tryb normalny i zostanie przydzielony

do realizowania procesu gotowego – oczekującego w kolejce na

realizację. Przydzielony proces nie musi być tym samym, który

został przerwany.

background image

Sterowanie procesami VIII

• Odmiennym od rodzajem komputera z kilkoma centralnymi

procesorami jest system kierujący wszystkie przerwania do

jednego tylko procesora.

– Rozwiązanie to odznacza się prostotą, ponieważ tylko jeden musi

pracować w dwu trybach i sterować procesami.

– Z drugiej stronny czas obsługi zdarzeń jest zwykle dłuższy, a komputer

taki jest bardziej wrażliwy na awarię niż system z rozproszoną funkcją

sterowania.

• Skrajnym przypadkiem

jest

komputer z jednym procesorem

centralnym

. Przypadek ten jest istotny, bo jest typowy dla

większości komputerów.

• Rozważmy z kolei bardzo uproszczony komputer, który nie

odpowiada żadnej rzeczywistemu rozwiązaniu, lecz pozwoli

wyjaśnić podstawowe zasady działania.

• Przyjmijmy, że

komputer

ten ma

pamięci operacyjną i dyskową

oraz

czytnik dokumentów

i

drukarkę laserową

.

• W chwili początkowej wszystkie urządzenie wejścia-wyjścia nie

pracują, a procesor realizuje proces, który w pewnym momencie

wykonuje ekstrakod żądający aktywizacji, któregoś z urządzeń

wejścia-wyjścia. Procesor przełącza się w tryb sterowania i

posługując się jedną z linii

A

1

do

A

3

, aktywizuje odpowiednie

urządzenie zewnętrzne po czym powróci do uprzednio

wykonywanego procesu. Jak urządzenie zakończy transmisję, co

zasygnalizuje po linii

B

rejestr przerwań

”. Co znowu spowoduje

zmianę trybu pracy procesora.

background image

Sterowanie procesami w

systemie

jednoprocesorowym

Pamięć

operacyjna

Drukarka

laserowa

Pamięć

dyskowa

Czytnik

dokumentów

Procesor

centralny

Rejestr przerwań

B

B

1

A

1

A

3

B

3

A

2

B

2

A

i

– linie sterowania

B

i

– linie przerwań

B stan rejestru
przerwań

background image

• Ekstrakod inicjuje nowy

proces

• Ekstrakod kończy proces
• Ekstrakod zawiesza proces

aż do spełnienia warunku

• Ekstrakod zmienia wartość

semafora

• Po każdym zdarzeniu

• Procedura konstruuje nowy rekord

stanu

• Procedura znajduje i usuwa rekord

stanu

• Procedura sprawdza warunek. Jeśli

nie spełniony zawiesza proces

• Procedura zmienia stan i przegląda

listę rekordów procesów

oczekujących, jeśli trzeba zmienia

stan na gotowy

• Procedura przegląda listę rekordów i

wybiera jeden proces w stanie

gotowy aby realizować (uruchomić)

Zdarzenia: Działania:

Działania na liście rekordów
procesów

Podstawowy rekord każdego procesu składa się z kilku odrębnych
pól. Rekordy procesów tworzą listę procesów. Każdy rekord
zawiera stan procesu (nowy, gotowy, realizowany, zawierzony).
Przejście procesu do stanu zakończony - powoduje usunięcie
rekordu procesu z listy procesów.

background image

Wczesne systemy operacyjne

• Systemy operacyjne wsadowe pojawiły się na przełomie lat 50-

60 XX wieku, podlegając dalszemu rozwojowi.

• Początkowo miały postać „

monitora wsadowego

”, czyli

programu rezydentnego zarządzającego zadaniami

pojedynczego wsadu. Rozwojowi funkcjonalności monitorów

towarzyszyło powstanie nowych mechanizmów komputera, a

między innymi:

– Rejestru bariery adresowej

pomiędzy programem monitor, a programem

aplikacyjnym.

– Rozkazów uprzywilejowanych

, które mogły występować tylko w

programie monitor.

– Czasomierza

– dla zapobiegania monopolizacji komputera przez zadanie.

• Monitor wczytywał po jednym zadania wsadu, poczym lokował

je w obszarze programu aplikacyjnego, a następnie przekazywał

sterowanie załadowanemu programowi aplikacyjnemu.

• Po zakończeniu wykonywania zadania, pojawiało się przerwanie,

np. wywoływane przez rozkaz stop programu aplikacyjnego,

które powoduje przekazanie sterowania programowi monitor.

background image

Podział pamięci dla

wczesnego monitora

wsadowego

Obszar pamięci

wykorzystywany

przez kompilator

lub program aplikacyjny

po kompilacji

Obszar pamięci

przydzielony na stałe

monitorowi wsadowemu

background image

Przetwarzanie wsadowe

Kolejka

zadań

Wykonywanie

zadań

Domena

komputera

Wyniki

Zadania:
program aplikacyjny,
dane i dyrektywy

Domena
użytkownika

background image

Cykl pracy monitora

wsadowego

Czy są jeszcze

prace?

Czy praca

zawiera błędy?

Wykonaj

program

wynikowy

Kompiluj

następną

pracę

Start

Stop

Tak

Nie

Tak

Nie

background image

Wady monitora

wsadowego I

• Monitor wsadowy posiadał szereg wad, które powodowały, że

pracował on znacznie mniej sprawnie, niż sugerował to opis
działania.

• Główną wadą tradycyjnego przetwarzania wsadowego jest to,

że użytkownik nie ma możliwości interakcji z programem po
dostarczeniu go do kolejki zadań. Wprawdzie takie
rozwiązanie jest akceptowane w przypadku niektórych
zastosowań, takich jak np. listy płac, w których dane i decyzje
dotyczące przetwarzania są ustalone z góry.

• Metody wsadowej nie daje się stosować, jeśli użytkownik musi

porozumiewać się z programem w czasie jego wykonywania.
Przykładem może tu być system rezerwacji miejsc, który musi
podawać na bieżąco informacje o dokonanych i
odwoływanych rezerwacjach, w miarę ich pojawiania się.

background image

Wady monitora

wsadowego II

• Przyczyna braków leżała w tym, że monitor nie ma nad

wykonaniem programu większej kontroli niż jakikolwiek
inny program nad swoimi podprogramami.

– Jeśli program wynikowy (aplikacyjny) próbuje wykonać rozkaz

nielegalny, to system komputerowy zostaje zatrzymany;

– Jeśli program wynikowy (aplikacyjny) wpadnie w martwą pętlę, to

wciąga w nią cały system komputerowy;

– Nie istnieje żadna możliwość powstrzymania błędnego programu

wynikowego (aplikacyjnego) przed zniszczeniem części monitora.

• W praktyce oznaczało to konieczność interwencji

operatora, w celu usunięcia martwej pętli lub efektów
„kolizji” (na ogół raz na 10-12 prac).

• Dodatkowo monitory nakładały szereg ograniczeń na

programy aplikacyjne.

background image

Dyrektywy – Job Control

Language

• We wczesnych monitorach wsadowych z każdym zadaniem

dostarczano zbiór instrukcji opisujących kroki, które należy

wykonać w celu przygotowania komputera do realizacji danego

zadania.

• Instrukcje te zapisywano w specjalnym języku sterowania

zadaniami (

Job Control Language

) i umieszczano je razem z

zadaniem w kolejce zadań.

• Po wybraniu zadania do wykonania przez monitor, na drukarce

konsoli operatorskiej monitor drukował , dzięki czemu mógł je

przeczytać i wykonać operator. Instrukcje, które wymagały

podjęcia pewnych czynności przez operatora np. załadowanie

taśmy magnetycznej z kompilatorem języka FORTRAN, musiały

być wykonane aby komputer mógł zrealizować zadanie.

• Zadaniem języka sterowania zadaniami, było między innymi,

komunikacja z operatorem komputera.

• Dzisiaj języki sterowania zadaniami, służą do komunikacji z

systemem operacyjnym, zaś sama funkcja operatora

komputera stała się czymś rzadko spotykanym. Funkcje

operatora częściowo przejął użytkownik, a częściowo

administrator systemu operacyjnego.

background image

Przykład wsadu z rozkazami JCL

(Job Control Language)

• Rozkaz początku wsadu

$JOB

• Polecenie uruchomienia kompilatora języka Fortran

$FTN

• Plik kart z instrukcjami programu w języku Fortran

• Polecenie załadowania skompilowanego programu

$LOAD

• Polecenie wykonania załadowanego programu

$RUN

• Plik kart z danymi dla programu

• Rozkaz zakończenia wsadu

$END

background image

Podział pamięci dla zaawansowanego

monitora

Programy – sterowniki urządzeń

wejścia-wyjścia

Programy obsługi przerwań

Program szeregowania zadań

Interpreter języka sterowania JCL

Obszar kompilatorów lub

programów aplikacyjnych

oraz danych tych programów

Monitor

Bariera

background image

Niedostatki wczesnych systemów

operacyjnych

Planowanie. W większości systemów używano kartki papieru

w celu zarezerwowania czasu komputera, zwykle w
wielokrotnościach pół godziny. Użytkownik mógł wystąpić o
godzinę, a zakończyć pracę w ciągu 45 minut; wynikiem tego
był stracony czas komputera. Użytkownik mógł też natrafić na
problemy, nie ukończyć pracy w przydzielonym czasie i
przerwać ją przed rozwiązaniem zadania.

Czas na przygotowanie. Pojedynczy program, nazywany

zadaniem, mógł obejmować ładowanie do pamięci kompilatora
oraz programu w języku wysokiego poziomu (program
źródłowy), zachowanie programu skompilowanego (program
wynikowy), a następnie ładowanie i łączenie ze sobą programu
wynikowego i funkcji standardowych. Każdy z tych kroków mógł
zawierać zakładanie i wyjmowanie taśm magnetycznych oraz
przygotowanie paczek kart perforowanych. W wyniku tracono
wiele czasu komputera na przygotowanie programu
aplikacyjnego do pracy.

background image

Przetwarzanie

interakcyjne

Wykonywanie

programów aplikacyjnych

Domena

komputera

Programy, dane, dyrektywy i wyniki

Domena

użytkowników

background image

Interakcyjne systemy

operacyjne

• Dla zapewnienia możliwości przetwarzania interakcyjnego

(

interactive processing

), opracowano systemy operacyjne

nowego typu.

• W opracowaniach tych wykorzystano nowe rozwiązania

sprzętowe oraz programowych, takie jak:

– Rejestr bariery adresowej

pomiędzy programami.

– Rozkazy uprzywilejowane

, które mogły występować tylko w trybie

pracy system operacyjny, przy czym programy aplikacyjne działają
w trybie zadanie.

– Czasomierza wraz z mechanizmem

podziału czasu

– dla

zapobiegania monopolizacji komputera przez zadanie.

Układ multipleksera

– umożliwiający quasi równoczesne

podłączenie wielu użytkowników do komputera.

– Pamięci dyskowych o wielkich pojemnościach

– eliminujących

konieczność częstych interwencji operatora.

– Pojęć procesu, semafora, współbieżności, kolejki zadań oraz

przetwarzania wsadowego realizowanego w tle

przetwarzania

interakcyjnego.

background image

Usługi dostarczane przez system

operacyjny

Tworzenie programów

. System operacyjny dostarcza szereg

ułatwień, narzędzi i usług wspomagających programistę przy pisaniu

programów. Do tego celu wykorzystywane są programy zwane utilities.

Wykonywanie programów

. Wykonywanie programu wymaga

realizacji wielu zadań. Należy przydzielić odpowiedni obszar w pamięci

operacyjnej. Rozkazy i dane należy załadować do tegoż obszaru

pamięci operacyjnej, urządzenia wejścia-wyjścia i pliki muszą zostać

zainicjowane.

Dostęp do urządzeń wejścia-wyjścia

. Każde urządzenie wejścia-

wyjścia posiada własny, specyficzny zestaw instrukcji lub sygnałów

sterowania. System operacyjny zajmuje się obsługą dostępu programu

aplikacyjnego do urządzeń wejścia-wyjścia, dzięki czemu programista

może posługiwać się standaryzowanymi instrukcjami odczytu i zapisu.

Kontrolowany dostęp do plików

. Obok dostępu za pośrednictwem

urządzeń wejścia-wyjścia, koniecznym jest posługiwanie się formatami

plików na nośniku i zapewnieniem bezpiecznego korzystania z plików.

Dostęp do systemu

. System operacyjny kontroluje dostęp do

komputera oraz zarządza zasobami komputera wraz z przydzielaniem

zasobów poszczególnym użytkownikom i programom aplikacyjnym.

background image

Zarządzanie zasobami przez system

operacyjny

• Komputer jest zbiorem zasobów służących do

przenoszenia, przechowywania i przetwarzania
danych oraz sterowania tymi funkcjami.

• System operacyjny jest dość specyficznym

mechanizmem sterowania, ponieważ:

– Funkcjonuje w ten sam sposób, jak zwykłe programy

aplikacyjne, ponieważ jest programem wykonywanym przez
procesor.

– Często jednak rezygnuje ze swojej roli mechanizmu

sterującego, przekazując sterowanie procesorowi, powierzając
mu wykonywanie określonych zadań sterowania, aby po
jakimś czasie ponownie odzyskać sterowanie komputerem.

• System operacyjny nie jest w rzeczywistości niczym

więcej, jak tylko programem komputerowym.

background image

System operacyjny jako program

komputerowy

• Podobnie jak inne programy, system operacyjny dostarcza

rozkazy do procesora.

• Jedynym co go różni od innych programów jest cel

działania systemu operacyjnego – kieruje on procesorem w

zakresie użytkowania pozostałych zasobów komputera oraz

synchronizacją wykonywania innych programów.

• Żeby jednak procesor mógł wykonywać powierzone

czynności, musi zaprzestać realizowanie programu

systemu operacyjnego i zacząć wykonywać inne programy.

• System operacyjny zrzeka się sterowania bezpośredniego

procesorem, aby umożliwić procesorowi wykonywanie innej

pracy, a następnie wznawia sterowanie z wyprzedzeniem

wystarczającym do przygotowania dalszej pracy.

• System operacyjny może używać niedostępnych dla

programów aplikacyjnych - tzw. rozkazów

uprzywilejowanych.

background image

System operacyjny – zarządca

zasobów

Komputer

Urządzenia wejścia-wyjścia

Pamięć

Sterowniki

wejścia-wyjścia

Program
systemu

operacyjnego

Programy

aplikacyjne

i dane

Proceso

r

Pamięć

Syste

m

Aplikacja

Dane

background image

Rodzaje systemów operacyjnych

• Systemy operacyjne ze względu na sposób

współdziałania z użytkownikiem dzielą się na dwie klasy:

– Systemy wsadowe (batch). Programy wielu użytkowników są

grupowane w tzw. wsad, uruchamiany przez operatora. Po

zakończeniu wykonywania wyniki są np. drukowane i

przekazywane użytkownikom.

– Systemy interakcyjne (interactive). Ma miejsce konwersacja

pomiędzy użytkownikiem a komputerem, zwykle za

pośrednictwem terminala klawiatura/monitor, mająca na celu

zgłoszenie zapotrzebowania na wykonanie określonej pracy lub

przeprowadzenie transakcji. Ponadto użytkownik może

komunikować się z komputerem podczas wykonywanej pracy.

• Wyróżniamy jednozadaniowe systemy operacyjne

– Pojedynczy wsad – rodzaj systemu należący dziś do rzadkości.
– Interakcyjny wyspecjalizowany system jednozadaniowy.

• Wyróżniamy wielozadaniowe systemy operacyjne

– Złożony wsad.
– Interakcyjny z podziałem czasu system wielozadaniowy.

background image

Nowy mechanizm – podział

czasu

a) Jeden program

b) Trzy programy działające w podziale czasu

Praca

Praca

Oczekiwanie

Oczekiwanie

t

Praca A

Praca A

Oczekiwanie

Oczekiwanie

t

Praca B

Praca B

t

Praca C

Praca C

t

t

Praca A

Praca B

Praca C

Praca A

Praca B

Oczekiwanie

Praca C

background image

Charakterystyka przykładowego

wsadu

 

Praca A

Praca B

Praca C

 Rodzaj pracy

Intensywn

a

obliczenia

 Konwersa

cja

Drukowa

nie

z dysku

  Czas trwania

 5 min

 15 min

 10 min

  Pamięć

operacyjna

 150 k

 100 k

 80 k

  Pamięć dyskowa

 Nie

 Tak

 Tak

 Terminal

 Nie

 Tak

Nie

 

 Drukarka

 Nie

  Nie

 Tak

background image

Wieloprogramowy system

operacyjny

• Wieloprogramowy system operacyjny, podobnie jak jednoprogramowy

system operacyjny, jest programem.

• Wieloprogramowe systemy operacyjne są znacznie bardziej złożone, w

porównaniu z jednozadaniowymi, wykorzystując mechanizm podziału
czasu (time sharing).

• Aby dysponować kilkoma zadaniami gotowymi do uruchomienia, muszą

one być przechowywane w pamięci, wymagany jest tym samym
funkcjonalność zarządzania pamięcią.

• Jeśli kilka zadań czeka w stanie gotowości wielozadaniowy system

operacyjny musi zdecydować, które z zadań ma być realizowane, co
wymaga funkcjonalności szeregowania zadań.

• Wieloprogramowy system operacyjny powinien w sobie łączyć

funkcjonalności przetwarzania wsadowego i przetwarzania
interakcyjnego.

• Wieloprogramowe systemy operacyjne interakcyjno-wsadowe

korzystają z trzech poziomów uprzywilejowania i jednego poziomu
aplikacyjnego.

background image

Wpływ wieloprogramowości

na wykorzystanie zasobów

komputera

Przetwarzanie

jednoprogram

owe

Przetwarzanie

wieloprogram

owe

Wykorzystanie

procesora

17%

33%

Wykorzystanie

pamięci

30%

67%

Wykorzystanie

dysku

33%

67%

Wykorzystanie

drukarki

33%

67%

Czas realizacji

30 min

15 min

Przepustowość

6 zadań na

godz.

12 zadań na

godz.

Średni czas

odpowiedzi

18 min

10 min

background image

Szeregowanie czasowe zadań

Szeregowanie

wysokiego
poziomu

Decyzje typu dodania nowego

zadania do puli zadań
oczekujących na wykonanie, wraz z
określeniem priorytetów
poszczególnych zadań.

Zadanie o najwyższym priorytecie
jest ładowane, a tym samym
przekształcane w tzw. nowy
proces.

Szeregowanie

krótkookresowe

Wybór z pośród dostępnych

procesów (zadań załadowanych do
pamięci komputera), tego procesu
który będzie realizowany przez

procesor.

Szeregowanie
operacji

wejścia-wyjścia

Wybór tego z pośród zawieszonych
(oczekujących na wykonanie)

żądań dostępu do urządzeń
wejścia-wyjścia, które ma być
realizowane przez dostępne
urządzenie wejścia-wyjścia.

background image

Blok kontrolny procesu

Identyfikator procesu

. Każdy proces ma unikalny identyfikator.

Stan procesu

. Jeden ze stanów: nowy, gotowy, realizowany,

oczekujący, zakończony.

Priorytet procesu

. Względny poziom priorytetu procesu.

Licznik programu

. Adres następnego rozkazu programu procesu,

który ma być wykonywany.

Znaczniki pamięci

. Adresy początkowej i końcowej komórki

obszaru zajmowanego przez proces w pamięci komputera.

Dane kontekstowe procesu

. Są to dane znajdujące się w

rejestrach procesora – ładowane do rejestrów procesora w

momencie przejścia procesu do stanu realizowany, a zapamiętywane

w momencie przejścia procesu w stan oczekiwania.

Informacje o stanach wejścia-wyjścia procesu

. Obejmują

przypisaną do procesu listę plików i aktualne żądania dostępu do

wskazanych zasobów.

Informacja ewidencyjna procesu

. Czas dotychczasowy realizacji

procesu, ograniczenia czasowe, aktualnie przydzielony czas

procesora, itp.

background image

Przykład szeregowania

krótkookresowego

System

operacyjny stan:

gotowy

System

operacyjny stan:

realizowany

System

operacyjny stan:

gotowy

Proces A stan:

realizowany

Proces A stan:

oczekujący

Proces A stan:

oczekujący

Proces B stan:

gotowy

Proces B stan:

gotowy

Proces B stan:

realizowany

Inne partycje

Inne partycje

Inne partycje

background image

Szeregowanie zadań czyli

kolejkowanie

Kolejka długookresowa

– jest listą zadań oczekujących

na użycie przez system operacyjny, tworzoną na
podstawie zgłoszeń przez program szeregowania
wysokiego poziomu. Gdy warunki pozwolą, program ten
dokona alokacji (przydziału) obszaru pamięci i utworzy
proces z jednego z zadań kolejki długookresowej.

Kolejka krótkookresowa

– składa się ze wszystkich

procesów będących w stanie gotowości.

Kolejka wejścia-wyjścia

– związana jest z każdym

urządzeniem wejścia-wyjścia. Wiele procesów może
domagać się użycia tego samego urządzenia wejścia
wyjścia. Wszystkie procesy oczekujące na użycie
określonego urządzenia są ustawione w jego kolejce.

background image

Główne składniki systemu

operacyjnego

System operacyjny

Program

przetwarzający

wywołania

obsługi

Program szeregowania

krótkookresowego

Program

obsługi

przerwań

K

o

le

jk

a

d

łu

g

o

o

k

re

so

w

a

K

o

le

jk

a

k

tk

o

o

kr

e

so

w

a

Kolejki

we-wy

Wywołanie obsługi

przez proces

Przerwanie z procesu

Przerwanie od urządzenia

wejścia-wyjścia

background image

Diagram kolejek szeregowania

pracy

Kolejka

krótkookres

owa

Zapotrzebowanie

na zadanie

Kolejka

długookresowa

Kolejka we-wy

Kolejka we-wy

Kolejka we-wy

Procesor

We-wy

We-wy

We-wy

Układ

przerwań

Usuwanie

zatrzymanego

procesu

Kolejka

krótkookres

owa

background image

System operacyjny LINUX

LINUX jest interakcyjnym systemem operacyjnym

zaprojektowanym przez Linusa Torvaldsa (w czasie gdy był on

studentem na Uniwersytecie Helsinskim), jest wzorowany na

wcześniejszych systemach operacyjnych UNIX i spełnia

standardy tych ostatnich.

LINUX jest w zasadzie produktem nie komercyjnym i jako taki

jest rozpowszechniany razem z kodem źródłowym.

W skład systemu operacyjnego LINUX wchodzą:

– Interpreter poleceń tzw. powłoka (

shell

).

– Graficzny interfejs użytkownika (

Graphical User Interface

),

nadbudowany nad powłoką, wraz z tzw. zarządcą okien (

windows

manager

).

– Jądro systemu (

kernel

) wraz z programem szeregującym (

scheduler

)

oraz dyspozytorem zadań (

dispatcher

).

– Zarządca plików (

file manger

), wraz z hierarchicznym mechanizmem

katalogów (

directory, folder

) i deskryptorem plików (

file descriptor

).

– Programy obsługi urządzeń (

device drivers

).

– Zarządcą pamięci (

memory manger

) wraz mechanizmem pamięci

wirtualnej.

Przedmiot „

Platformy komputerowe 2

”, jest poświęcony

systemowi operacyjnemu LINUX.


Document Outline


Wyszukiwarka

Podobne podstrony:
Podstawowe info dot amortyzacji
Diagnoza autyzmu podstawowe info, PEDAGOGIKA i PSYCHOLOGIA, AUTYZM
Podstawy info 3
Podstawy info 9
Podstawy info 11
Podstawy info 8
Podstawy info 2
Podstawy info 10
Podstawy info 6
Podstawy info 5
Podstawowe info dot amortyzacji
podstawowe info o AF z netu
Podstawy info 3
Mat. info EKG, PIELĘGNIARSTWO 1 sem, Podstawy Pielęgniarstwa, laborka
Mat. info EKG, PIELĘGNIARSTWO 1 sem, Podstawy Pielęgniarstwa, laborka
OSOBOWOŚCI MAŁŻEŃSKIE - info podstawowe, psychologia sądowa
USTAWA o ochronie info niejawnych, Po

więcej podobnych podstron