SYSTEM, Informatyka
[ Pobierz całość w formacie PDF ]
1
Systemy operacyjne,
powłoki systemu operacyjnego
W ka
Ŝ
dym komputerze lub systemie komputerowym istnieje obfito
ść
(uci
ąŜ
liwych) zada
ń
, którymi
u
Ŝ
ytkownik nie chciałby sobie zawraca
ć
głowy. Obróbka tych (uci
ąŜ
liwych) problemów organiza-
cyjnych wewn
ą
trz komputera jest zadaniem systemu operacyjnego.
System operacyjny jest swego rodzaju strefą buforową miedzy oprogramowaniem stosowanym i przebie-
gami wewnątrz komputera. Rysunek wyjaśnia dokładniej to przejście od sprzętu w górę.
Powłoki bliskie systemowi operacyjnemu
stopień
zorientowania
problemu
powłoki
bazy
danych
środki opisu wy-
specjalizowane
problemowo
systemy
ekspertowe
metody
sztucznej inte-
ligencji
edytory,
inne programy sys-
temowe
kompiler
asembler
system operacyjny
techniki
wspomagania
komputerowego
(CA..)
rodzaje pracy
powłoka
(shell)
sprzęt
wyspecjalizowane
Interfejsy człowiek-komputer
. Od sprz
ę
tu do rozwi
ą
zania problemu
Z punktu widzenia uŜytkownika system operacyjny nie jest więc niczym innym jak koniecznym środkiem
pomocniczym, aby uwolnić uŜytkownika od:
-
wprowadzania-wydawania danych
-
zarządzania plikami
-
zarządzania pamięcią oraz
-
zarządzania zadaniami i procesami.
Zadania systemu operacyjnego
Zadaniem systemów operacyjnych jest skuteczne zarz
ą
dzanie ró
Ŝ
nymi rodzajami i przebiegami pracy kom-
ponentów sprzętowych komputera.
System operacyjny jest
zbiorem programów
, który oddziela u
Ŝ
ytkownika od skomplikowanego sprz
ę
tu, a
wi
ę
c upraszcza u
Ŝ
ytkowanie i obsługiwanie komputera.
Wynika stąd, Ŝe nie istnieje Ŝaden pełny opis zadań systemu operacyjnego. Na pewno jednak naleŜą do tego
zadania następujące:
-
wprowadzanie-wydawanie danych,
-
zarządzanie plikami (organizacja pamięci masowej),
-
zarządzanie pamięcią oraz
-
organizacja zadań i procesów.
2
Wprowadzanie-wydawanie danych
Wszystkie przebiegi biegną pod reŜyserię systemu operacyjnego. JeŜeli na przykład. naciskamy klawisz
podczas uŜytkowania systemu do przetwarzania tekstu, to naciśniecie wyzwala funkcję systemu operacyj-
nego „weź znak z klawiatury”.
Zarz
ą
dzanie plikami
Jak szuka system operacyjny?
Zadaniem logicznym, opierającym się na zarządzaniu wejściem-wyjściem, jest zarządzanie wszystkimi da-
nymi. Przy tym system operacyjny nie moŜe stosować metod „chaotycznych”. Z zapytaniem
„Gdzie znajdę wyliczenie zapłaty dla Kowalskiego?”
system operacyjny moŜe dać radę sobie tylko przez ściśle hierarchiczny porządek (rysunek ).
Jak u
Ŝ
ytkownik chciałby szuka
ć
?
Do zarządzania plikami naleŜy jednak nie tylko umiejętność ustalenia, gdzie się odpowiednie dane znajdują,
ale takŜe dysponowanie nimi wtedy, kiedy są potrzebne. Komfortowe sposoby szukania rozwiązują to przez
analogiczne, „maskowane” powłoki, na których moŜna poszukiwać prawie „normalnie”. Jednak powłoki te
są w rzeczywistości dodatkowymi „nakładkami oprogramowania”, które czynią sterowanie systemu istotnie
wygodniejszym
A B C D E F
Płaszczyzny hierarchii:
G
H I
J K L
budynek: główny
skrzydło: wschodnie
piętro: 31
pokój: 05
regał: 2
półka: 3
skoroszyt: M
wykaz (katalog): Kowalski
dokument:
naliczenie wynagrodzenia
Gdzie znajd
ę
... (jako system operacyjny)
Wewn
ę
trzna struktura systemów plików
Wewnętrzna struktura systemów plików wygląda podobnie jak drzewo genealogiczne. Mówi się o hierar-
chicznej strukturze drzewiastej (rys.). Korzeń drzewa odpowiada plikowi korzenia (
root
). Nie ma on Ŝadnej
własnej nazwy. Węzły odgałęzień odpowiadają katalogom (
directories
). Na liściach znajdują się pliki (
fi-
les
). Nazwa pliku jest całkowicie i jednoznacznie opisana przez absolutna nazwę ścieŜki. Absolutna nazwa
ścieŜki składa się ze wszystkich nazw katalogów, które leŜą „na śladzie” od korzenia do szukanego pliku.
Dlatego na rysunku absolutna nazwa pliku texta brzmi
/usr/roemer/asterix/texta.
Plik ten jest zresztą róŜny od
/usr/roemer/idefix/texta.
Oba naleŜą do róŜnych katalogów! Wewnątrz jednego katalogu kaŜda nazwa powinna pojawić się tylko je-
den raz.
Katalog roboczy (working directory)
KaŜdy uŜytkownik ma podczas pracy przy komputerze ciągle aktualny katalog (working directory), w któ-
rym właśnie pracuje. Wewnątrz aktualnego katalogu (np. asterix) znajdujące się w nim pliki mogą być
3
przywoływane bez kompletnych absolutnych nazw ścieŜki. Wystarcza po prostu nazwa pliku. Dla przykładu
na rys. oznacza to, Ŝe aby jednoznacznie przywołać plik:
dla aktualnego katalogu
asterix
wystarcza sama nazwa pliku
texta
zamiast absolutnej ścieŜki pliku
/usr/roemer/asterix/texta.
Uregulowanie prawa dost
ę
pu (password)
Do zarządzania plikami naleŜy takŜe uregulowanie praw dostępu. W większości systemów operacyjnych
przed „wejściem” sprawdzane się, za pomocą hasła (password), uprawnienie do dostępu. Czytanie, zapisy-
wanie i przetwarzanie plików moŜe być przy tym oddzielnie udostępniane lub blokowane. Uprawnienia do-
stępu moŜna ustalać oddzielnie dla
-
wła
ś
ciciela
plików,
-
grupy
, której członkiem jest właściciel, oraz
innych u
Ŝ
ytkowników
.
Tylko właściciel pliku i zarządca systemu mogą zmienić uprawnienia dostępu.
root
directory
usr
users
system
dev
roemer
asterix
idefix
file
texta
textb
texta
textc
Struktura drzewiasta systemu plików
Zarz
ą
dzanie pami
ę
ci
ą
Innym centralnym zadaniem systemu operacyjnego jest zarządzanie pamięcią. Najprostszą tego formą jest
sztywne segmentowanie
.
Organizacja pamięci podczas segmentowania sztywnego
Większość systemów operacyjnych stosuje
segmentowanie zmienne
. Polega ono na „wsortowywaniu” pro-
cesów „nowych” – w zaleŜności od wymaganego zapotrzebowania pamięci. Pamięć, jaką mamy do dyspo-
zycji, jest wtedy
fragmentowana
(dzielona na części). Dlatego podczas skutecznego zarządzania pamięcią
procesy są „zsuwane do siebie”, ścieśniane, upakowywane
Do zarządzania pamięcią naleŜy równieŜ bieŜące przydzielanie procesowi dodatkowej pamięci głównej, je-
Ŝeli takiej potrzebuje (dynamic memory allocation). Mamy do czynienia z takim przypadkiem wtedy, gdy
ilość danych do przetworzenia nie jest ustalona z góry, poniewaŜ zaleŜy na przykład od uŜytkownika.
Bardzo wa
Ŝ
nym zadaniem jest ochrona obszarów pami
ę
ci przed niezamierzonym zlikwidowaniem. Je
Ŝ
eli
ochrona taka nie istnieje, to procesy, które są równocześnie w pamięci głównej, mogą sobie wzajemnie
zniszczyć dane lub kod programowy, w ekstremalnym przypadku moŜliwe jest nawet zniszczenie samego
systemu operacyjnego (jak na przykład w DOS).
-
4
Zarz
ą
dzanie zadaniami i procesami
Do zadań systemu operacyjnego naleŜy równieŜ zarządzanie zadaniami i procesami. Wcho-
dzące „zamówienia” trzeba przetwarzać na przykład partiami lub według priorytetów. Pod-
czas zarządzania procesami musimy mieć pewność, Ŝe „proces” obróbki pojedynczego pro-
gramu w kaŜdym stadium przebiegnie jednoznacznie i bez „zakleszczeń”. Mogą przy tym
wystąpić następujące stany:
gotowy program mógłby biec, ale procesor nie jest wolny;
aktywny procesor przejął program i obrabia go;
oczekujący program Ŝąda zdarzenia zewnętrznego w procesorze i jest
przestawiany w stan „oczekujący”; procesor jest wolny dla
innych procesów.
Oczywiście mogą przy tym wystąpić problemy, na przykład:
-
Proces 1 oczekuje na zdarzenie A, które powinien wytworzyć proces 2.
Proces 2 oczekuje na zdarzenie B, które powinien wytworzyć proces 1.
W tym przypadku oba procesy pozostają (na zawsze, aŜ do wyłączenia komputera z sieci) w
stanie „oczekujący”. Taka sytuacja nazywana jest zakleszczeniem (deadlock). MoŜe ona wy-
stąpić nie tylko podczas zarządzania procesami systemu operacyjnego, lecz takŜe podczas
koordynacji dwóch robotów, które oczekują na określoną czynność swego sąsiada. Warunki
powstania takiego „zakleszczenia” są następujące:
-
Wykluczenie wzajemne
: Kilka procesów Ŝąda środków pracy w celu wyłącznego ich za-
stosowania.
-
Nieprzerywalno
ść: Środki pracy zostały przydzielone (np. drukarce nie wolno np. „mie-
szać” róŜnych procesów na jednej kartce papieru).
-
Ła
ń
cuch oczekiwania
: Procesy miały juŜ środek pracy i czekają na inny.
Ła
ń
cuch zamkni
ę
ty
: KaŜdy proces czeka na środek pracy, który juŜ został przydzielony
następnemu procesowi w zamkniętych łańcuchach.
Typową sytuacją zakleszczenia w Ŝyciu codziennym jest ruchu kołowy, gdzie obowiązuje
zasada „nadjeŜdŜający z prawej przed nadjeŜdŜającym z lewej”:
-
Wykluczenie wzajemne
: KaŜde miejsce w ruchu kołowym moŜe być zajęte tylko przez
jedno auto.
-
Nieprzerywalno
ść: Zajęte miejsce nie moŜe przejściowo być zajęte przez inne auto.
-
Ła
ń
cuch oczekiwania
: KaŜde auto ma juŜ miejsce i czeka na miejsce przed nim.
Ła
ń
cuch zamkni
ę
ty
: KaŜde auto czeka na miejsce przed sobą, które juŜ jest zajęte w łań-
cuchu zamkniętym.
Zakleszczenia moŜna
rozpoznawa
ć, moŜna ich
unika
ć lub się im
przeciwstawia
ć, jeŜeli się je
ciągle sprawdza. Problemy te mogą występować nie tylko w systemach operacyjnych, ale
zawsze wtedy, gdy kilka maszyn i urządzeń jest powiązanych z komputerami. Dlatego przy
wszystkich programach uŜytkowych juŜ w stadium projektu naleŜy zwracać dokładną uwagę
na moŜliwe zakleszczenia. Do tego nadaje się między innymi sieci Petri’ego.
-
-
-
5
Rodzaje systemów operacyjnych
Przyporz
ą
dkowanie do generacji komputera
Systemy operacyjne, zasługujące na tę nazwę, pojawiły się po raz pierwszy w komputerach drugiej genera-
cji, a więc od roku 1958. Zawierały one:
-
szeregowe, automatycznie sterowane rodzaje pracy z jednym procesorem i jednym programem,
-
części systemu operacyjnego ciągle w pamięci roboczej (resident partition), oraz
zleceniowe sterowanie dla procesów wejścia-wyjścia.
Wraz z trzecią generacją komputerów (od roku 1968) dochodziły do tego stopniowo następujące elementy:
-
koncepcja kanałowa,
-
koncepcja przerwań,
-
koncepcja kolejek oczekiwania wejścia-wyjścia,
-
koncepcje skutecznego podziału pamięci,
-
nieprzerywalność biegnących programów,
-
obszerne rutyny szukania błędów, oraz
dzienniki (log book) do wykrywania czasów liczenia itd.
Dziś równieŜ systemy operacyjne komputerów osobistych mają prawie wszystkie te elementy. Prostsze sys-
temy operacyjne stosuje się głównie w sterowaniach maszyn i urządzeń.
Dla obszaru komputerów osobistych najbardziej rozpowszechnionym w „świecie IBM” jest system opera-
cyjny MS-DOS.
Charakterystyczne jest to, Ŝe większość systemów operacyjnych powiązana jest z określonymi wytwórcami.
JeŜeli zdecydujemy się na określony system operacyjny, to z reguły wiąŜemy się zarówno z wytwórcą (czy
grupą wytwórców) jak równieŜ z określonym „klockami” sprzętowymi. „Sławetnym” wyjątkiem jest system
operacyjny UNIX a ostatnio LINUX.
Przykład UNIX-a
UNIX był pierwszym i długi czas jedynym rzeczywiście przenośnym i niezaleŜnym od producenta syste-
mem operacyjnym. Przenośność dotyczy kodu źródłowego, to znaczy tylko teksty programu napisane są w
wyŜszym języku programowania dają się przenosić bez kłopotu. Trzeba je jednak na kaŜdym komputerze na
nowo tłumaczyć za pomocą właściwego kompilatora. Natomiast znany system operacyjny komputerów
osobistych MS-DOS jest przenośny w „świecie Intela” w postaci kodu binarnego. Gotowe, przetłumaczone
na kod maszynowy, programy są przenośne. Nie potrzebne jest Ŝadne nowe tłumaczenie. Ale działa to tylko
właśnie w świecie IBM/Intel.
System operacyjny UNIX powstał pod koniec lat 60-tych w firmie AT&T (porównaj rysunek ) i w wersji
V.4 rozwinął się do wariantu znormalizowanego na całym świecie. Do tej normalizacji przyłączyli się
wszyscy wytwórcy europejscy i amerykańscy. Było to w historii rozwoju komputerów zjawiskiem niespo-
tykanym.
Jądro (kernel) systemu operacyjnego UNIX składa się z około 10 000 linijek języka C i około 500 linijek
kodu maszynowego kaŜdorazowej maszyny. Jądro realizuje przede wszystkim interfejsy urządzeń peryfe-
ryjnych, system plików i zarządzanie procesami. UŜytkownik moŜe dotrzeć do funkcji UNIX-a zarówno
przez powłokę (
shell
), jak i przez wywołania systemowe wewnątrz programów uŜytkowych.
Historia rozwoju UNIX-a
Powłoka
(shell
) systemu operacyjnego UNIX jest
programem interpretuj
ą
cym
(opisującym) polecenia i le-
Ŝy, jak sama nazwa wskazuje, wokół systemu operacyjnego. Prowadzi ona dialog z uŜytkownikiem.
J
ę
zyk C
jest wśród zastosowań UNIX-a najbardziej rozpowszechnionym językiem programowania. Łączy
on właściwości wyŜszych języków programowania i języków bliskich maszynowym (na przykład asemble-
ra) i nie jest przy tym zaleŜny od maszyny. Jest on właściwie kluczem do przenośności UNIX-a.
-
-
[ Pobierz całość w formacie PDF ]