Systemy operacyjne od podstaw, aaaaaaaaRozne

[ Pobierz całość w formacie PDF ]
PRZEDMOWA
Systemy operacyjne są zasadniczą częścią systemu komputerowego. Analo-
gicznie, kurs systemów operacyjnych stanowi zasadniczą część edukacji in-
formatycznej. Niniejsza książka ma służyć jako podręcznik do podstawowego
wykładu z systemów operacyjnych dla studentów młodszych i starszych lat
studiów dyplomowych lub pierwszego roku studiów podyplomowych. Zawie-
ra przejrzystą prezentację wiedzy leżącej u podstaw systemów operacyjnych.
W tej książce nie kładziemy szczególnego nacisku na żaden konkretny
system operacyjny lub sprzęt. Omawiamy w niej natomiast fundamentalne
koncepcje odnoszące się do wielu różnych systemów. Przedstawiamy dużą
liczbę przykładów nawiązujących zwłaszcza do systemu UNIX, jak również
do innych, popularnych systemów operacyjnych. Odwołujemy się w szcze-
gólności do systemu operacyjnego Solaris 2 firmy Sun Microsystems - od-
miany systemu UNIX, który ostatnio został przekształcony w nowoczesny
system operacyjny, wyposażony w wątki na poziomie jądra i użytkownika,
symetryczne wieloprzetwarzanie i planowanie w czasie rzeczywistym. Inne
przykłady dotyczą systemów MS-DOS, Windows i Windows NT firmy
Microsoft, systemu Linux, IBM OS/2, Apple Macintosh Operating System,
systemu VMS firmy DEC oraz systemu TOPS.
Wymagane wiadomości
Przyjmujemy jako niezbędne założenie, że Czytelnik jest zaznajomiony
z ogólną budową komputerów oraz z językiem wysokiego poziomu, takim jak
Pascal. Zagadnienia dotyczące sprzętu, które są potrzebne do zrozumienia sy-
VIII
Przedmowa
stemów operacyjnych, przedstawiamy w rozdz. 2. Przykłady kodu wyrażamy
w języku pseudopascalowym, ale zrozumienie omawianych algorytmów nie
wymaga znajomości języka Pascal.
Zawartość książki
Książka jest podzielona na siedem głównych części:

Przegląd
(rozdz. od l do 3). W rozdziałach tych wyjaśniamy,
czym są
systemy operacyjne,
co robią, jak ^pomyślane
i
zbudowane.
Opisujemy,
jak rozwijała się koncepcja systemu operacyjnego, jakie są jego najbar-
dziej oczywiste cechy, co robi dla użytkownika, a co dla operatora syste-
mu komputerowego. Unikamy rozważań o tym, jak rzeczy mają się od
wewnątrz. Dzięki temu opisane tu problemy są przystępne dla słuchaczy
niższych lat studiów oraz dla indywidualnych Czytelników, którzy chcą
się dowiedzieć, czym jest system operacyjny, bez wnikania w szczegóły
wewnętrznych algorytmów. W rozdziale 2 omawiamy zagadnienia
sprzętowe, ważne do zrozumienia systemów operacyjnych. Czytelnicy
mający dobre rozeznanie w problematyce sprzętu, a w szczególności
w działaniu urządzeń wejścia-wyjścia, organizacji bezpośredniego dostę-
pu do pamięci (DMA) oraz w operacjach dyskowych, mogą
zapoznać
się
z treścią tego rozdziału pobieżnie lub wręcz go pominąć.

Zarządzanie procesami
(rozdz. od 4 do 7). Pojęcia procesu i współbież-
ności leżą w samym sercu nowoczesnych systemów operacyjnych.
Pro-
ces
stanowi cząstkę pracy w systemie. System jest zbiorem procesów
wykonywanych
współbieżnie, z
których część jest procesami systemo-
wymi (wykonującymi rozkazy kodu samego systemu), a reszta to procesy
użytkownika (wykonujące kod dostarczony przez użytkownika). W wy-
mienionych rozdziałach omawiamy rozmaite metody planowania proce-
sów, komunikacji międzyprocesowej, synchronizacji procesów oraz ob-
sługi ich zakleszczeń. W tej grupie zagadnień mieści się także przedsta-
wienie wątków.

Zarządzanie pamięcią
(rozdz. od 8 do 11). Podczas wykonywania pro-
ces, lub przynajmniej jego część, musi znajdować się w pamięci opera-
cyjnej (głównej). W celu polepszania stopnia wykorzystania procesora,
a także szybkości, z jaką odpowiada on swoim użytkownikom, komputer
musi przechowywać w pamięci wiele procesów. Istnieje znaczna liczba
różnych schematów zarządzania pamięcią operacyjną. Odzwierciedlają
one rozmaite podejścia do zarządzania pamięcią, przy czym efektywność
Przedmowa
IX
poszczególnych algorytmów zależy od konkretnej sytuacji. Pamięć głów-
na jest na ogół za mała, aby pomieścić wszystkie dane i programy; nie
można w niej również przechowywać danych nieustannie. Dlatego sys-
tem komputerowy musi rozporządzać pamięcią pomocniczą, aby składo-
wać w niej zawartość pamięci głównej. Większość nowoczesnych syste-
mów komputerowych używa dysków jako podstawowego nośnika maga-
zynowania informacji, umożliwiającego dostęp bezpośredni (zarówno do
programów, jak i do danych). Mechanizmy zawarte w systemie plików
umożliwiają bezpośrednie magazynowanie i dostęp zarówno w odniesie-
niu do danych, jak i do programów przebywających na dysku. W tych
rozdziałach zajmujemy się klasycznymi algorytmami wewnętrznymi
i strukturami zarządzania pamięcią. Umożliwiają one solidne, praktyczne
zrozumienie stosowanych algorytmów - ich własności, zalet i wad.
• Systemy wejścia-wyjścia
(rozdz. od 12 do 14). Urządzenia przyłączane
do komputera różnią się pod wieloma względami. W wielu przypadkach
są one także najwolniej działającymi elementami komputera. Z powodu
dużych różnic w urządzeniach system operacyjny musi udostępniać sze-
roki wybór funkcji, które umożliwiają aplikacjom wszechstronne stero-
wanie urządzeniami. W tej części książki omawiamy dogłębnie system
wejścia-wyjścia, poświęcając uwagę jego konstrukcji, interfejsom oraz
wewnętrznym strukturom i funkcjom. Ponieważ urządzenia są wąskim
gardłem wydajności, analizujemy też zagadnienia dotyczące optymaliza-
cji ich działania. Wyjaśniamy również kwestie związane z pamięciami
pomocniczymi i trzeciorzędnymi.

Systemy rozproszone
(rozdz. od 15 do 18).
System rozproszony
składa
się ze zbioru procesorów, które nie używają wspólnej pamięci ani zegara.
System taki zarządza najróżniejszymi zasobami, które udostępnia swoim
użytkownikom. Korzystanie z zasobów dzielonych przyspiesza oblicze-
nia oraz polepsza dostępność i niezawodność danych. System tego ro-
dzaju oddaje również do dyspozycji użytkownika rozproszony system
plików, w którym użytkownicy, serwery i urządzenia magazynowania in-
formacji znajdują się w różnych miejscach systemu rozproszonego. Sys-
tem rozproszony musi zawierać różnorodne mechanizmy do synchroniza-
cji i komunikacji procesów, obsługi zakleszczeń i rozlicznych błędów,
nie napotykanych w systemie scentralizowanym.

Ochrona i bezpieczeństwo
(rozdz. 19 i 20). Rozmaite procesy w syste-
mie operacyjnym należy chronić przed wzajemnym oddziaływaniem.
Z tego powodu istnieją mechanizmy, z których można skorzystać, aby
zapewnić, że pliki, segmenty pamięci, procesory i inne zasoby będą uży-
X
Przedmowa
wane tylko przez te procesy, które uzyskały właściwe upoważnienie od
systemu operacyjnego. Przez ochronę rozumie się mechanizm kontrolo-
wania dostępu programów, procesów lub użytkowników do zasobów zde-
finiowanych w systemie komputerowym. Mechanizm ten musi dostarczać
możliwości do określania wymaganej kontroli oraz środki jej egzekwo-
wania. Bezpieczeństwo ma na celu ochronę informacji przechowywanej
w systemie (zarówno danych, jak i kodu) oraz ochronę zasobów fizycz-
nych systemu komputerowego przed nieupoważnionym dostępem, zło-
śliwymi uszkodzeniami lub zmianami, a także przed przypadkowym
wprowadzaniem niespójności.

Przykłady
konkretnych systemów (rozdz. od 21 do 24). Różnorodne
koncepcje opisane w tej książce łączymy w całość, prezentując rzeczywi-
ste systemy operacyjne. Szczegółowo omawiamy trzy takie systemy:
wersję systemu UNIX 4.3BSD z Berkeley, system Linux oraz system
Microsoft Windows NT. System 4.3BSD z Berkeley oraz system Linux
wybraliśmy dlatego, że UNIX był w swoim czasie na tyle mały, że można
go było zrozumieć, a jednocześnie nie był „zabawkowym" systemem
operacyjnym. Większość jego wewnętrznych algorytmów dobrano ze
względu na ich
prostotą,
a nie szybkość lub wyrafinowanie. Zarówno
system 4.3BSD, jak i Linux są łatwo osiągalne na wydziałach informaty-
ki; wielu więc studentów ma do nich dostęp. System Windows NT wy-
braliśmy z tego powodu, że daje możliwość zapoznania się z nowocze-
snym systemem operacyjnym, który w konstrukcji i implementacji za-
sadniczo różni się od systemów uniksowych. W rozdziale 24 omawiamy
pokrótce kilka innych systemów, które miały wpływ na rozwój dziedziny
systemów operacyjnych.
0 piątym wydaniu książki *
W związku z poprzednimi wydaniami skierowano do nas wiele komentarzy
1 sugestii. Uwagi te, wraz z naszymi obserwacjami, skłoniły nas do opracowa-
nia niniejszego, piątego wydania. W szczególności dokonaliśmy zasadniczych
zmian w materiale dotyczącym systemów wejścia-wyjścia; dodaliśmy też dwa
nowe rozdziały poświęcone nowoczesnym systemom operacyjnym. Przepisa-
liśmy na nowo treść kilku rozdziałów, które dotyczą urządzeń pamięci (rozdz.
l, 2, 3 i 8), uaktualniając starszy tekst i usuwając te fragmenty, które przestały
być interesujące. Dodaliśmy nowe rozdziały o systemach wejścia-wyjścia
* Trzecie wydanie polskie jest przekładem piątego wydania amerykańskiego. - Przyp. tłum.
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • kfc.htw.pl