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, 

są 

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ń

 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

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