Systop9

background image

9. SYSTEMY OPERACYJNE DOS I WINDOWS

Systemy operacyjne wytwarzane przez firmę Microsoft bazują na procesorach

Intel i kompatybilnych

z nimi. Wyjątkiem od tej reguły jest system Windows NT, który posiada emulatory

listy rozkazów

32-bitowych procesorów Intel dla niektórych innych procesorów (w tym

procesorów o architekturze

RISC). Windows NT są zaprojektowane pod kątem zastosowań profesjonalnych w

zakładach pracy,

wszystkie pozostałe produkty (wcześniejsze i późniejsze) są zasadniczo

przeznaczone do zastosowań

amatorskich lub w niedużych, kilkuosobowych firmach.

Początkowe wersje systemów operacyjnych (w latach 80-tych) powstawały przy

współpracy z firmą

IBM. Najwcześniejszy produkt - DOS

(Disk Operating System)

, w wersji MS-DOS

1.00 powstał

w 1981 r. i był przeznaczony do pracy w komputerach zawierających procesor

Intel 8086 i nie

zawierających dysku twardego. Kolejne wersje DOS-a pojawiały się aż do

początków lat 90-tych,

osiągając numery 6.xx . Cały czas były to systemy jednozadaniowe, przeznaczone

do wykonywania

programów na komputerach klasy PC i wykorzystujących tryb rzeczywisty pracy

procesorów Intel.

Możliwości trybu chronionego udostępniane przez kolejne procesory Intel mogły

być pod DOS-em

wykorzystywane jedynie „niejawnie”. DOS mógł współpracować z prostym

protokołem sieciowym.

background image

Najwcześniejsza wersja systemu DOS dysponowała prostym, jednopoziomowym
systemem plików

wzorowanym na wykorzystywanym we wcześniejszym systemie operacyjnym
CP/M. W późniejszych

wersjach pojawiła się hierarchiczna, wielopoziomowa struktura systemu plików
wzorowana na rozwią-

zaniu istniejącym w systemie Unix. Pojawiła się też możliwość wydzielania
dysków logicznych,

zwanych również strefami i oznaczanych pojedynczymi literami alfabetu (A: , B: ,
C: , ... ).

Kolejnymi „zdobyczami” systemu DOS (również wzorowanymi na rozwiązaniach
systemu Unix) były

zestandaryzowane strumienie danych i możliwość ich przekierowywania oraz
przetwarzanie potokowe

(ale tylko w wersji sekwencyjnej).

Zasadniczym interfejsem użytkownika systemu DOS był zawsze interfejs
tekstowy, udostępniający

zestaw komend wykonujących typowe czynności na plikach i katalogach (dir, cd,
type, copy, ...
).

Po pewnym czasie został on wzbogacony o komendy sterujące przydatne przy
tworzeniu prostych

plików wsadowych (odpowiedników uniksowych skryptów) - for, if, goto, shift
oraz call.

Dopiero na poczatku lat 90-tych do zestawu sterowników urządzeń DOS-a
dodano sterownik myszy

umożliwiający obsługę prostego interfejsu graficznego (podobnego do nakładki
Norton Commander).

background image

Ponieważ DOS był oparty na trybie rzeczywistym pracy procesorów Intel, jego
obszar danych

i programów systemowych w pamięci operacyjnej nie był w żaden sposób
chroniony - użytkownik

mógł w każdej chwili dokonać odczytu lub zapisu w obszarze systemowym i
dowolnie zmodyfikować

lub uniemożliwić działanie systemu (co powodowało konieczność jego restartu).

System DOS rozpoczynając działanie korzystał ze zbioru podstawowych funkcji
obsługujących

urządzenia zewnętrzne zapisanych w pamięci stałej ROM, następnie uzupełniał
go o zbiór własnych

funkcji systemowych zapisywanych w pamięci RAM. Większa część funkcji
systemowych była

oficjalnie udostępniana programistom w postaci interfejsów do języków
Asembler, Basic, a nieco

później również Pascal i C (za podstawowy język był uważany Basic, którego
interpreter był

dołączany do każdej wersji DOS-a).

Niektóre istotne funkcje systemowe nie były oficjalnie opublikowane i
udokumentowane przez firmę

Microsoft (pod pozorem przewidywanych ich zmian w kolejnych wersjach
systemu), choć wiele firm

tworzących oprogramowanie znało je i wykorzystywało. Istniały też
nieudokumentowane struktury

danych systemowych (na przykład Lista List - LL).

background image

Mapa obszaru pamięci wykorzystywanego przez system DOS w trybie
rzeczywistym:

Adres pola Długość pola Zawartość

00000 - 003FF 1 KB Tablica wektorów przerwań ROM BIOS

00400 - 004FF 256 B Obszar roboczy BIOS
Pamięć

00500 - 005FF 256 B Obszar roboczy DOS
konwencjonalna

0F420 - 9FFFF Programy systemowe i użytkowe
640 KB

A0000 - FFFFF Pamięć ekranu kart graficznych,
Pamięć górna

udostępniona też dla innych sterowników
384 KB

Powyżej adresu 1 MB pamięć może być wykorzystywana przez procesory
pracujące w trybie

chronionym. Istnieje biblioteka funkcji systemowych DOS umożliwiająca
wymianę bloków pamięci

umieszczonych w obszarze powyżej adresu 1 MB z blokami umieszczonymi
poniżej tego adresu

(wiąże się to z chwilowym przełączaniem procesora do trybu chronionego i z
powrotem w sposób

niewidoczny dla programów pracujących w trybie rzeczywistym), co udostępnia
programom

DOS-owym coś w rodzaju bardzo szybkiej pamięci zewnętrznej, na przykład tak
zwany RAM-disk.

background image

Pierwsze graficzne interfejsy użytkownika oparte na systemie okien i
umożliwiające obsługę przy

użyciu wskaźnika (myszy) były opracowane przez firmę Xerox w 1981 r. i
przeznaczone dla terminali

dużych komputerów. Komputery osobiste były w tym czasie jeszcze zbyt ubogie
sprzętowo, aby

umożliwiać takie rozwiązania. Pierwszym systemem mikrokomputerowym
wyposażonym w interfejs

graficzny był Macintosh (1984 r.). W tym czasie Microsoft równolegle prowadził
własne prace nad

najwcześniejszą wersją systemu Windows (Windows 1.0 pojawił się w 1985 r. i miał
interfejs

graficzny, ale wykorzystywał tylko tryb rzeczywisty 8086) oraz, we współpracy z
IBM, nad systemem

operacyjnym OS / 2 (pojawił się w 1987 r. i wykorzystywał tryb chroniony 80286,
ale pierwotnie miał

tylko interfejs tekstowy, a graficzny uzyskał dopiero rok później).

Kolejne wersje systemu Windows pojawiające się pod koniec lat 80-tych
wykorzystywały już 16-bitowy

tryb adresowania procesorów Intel. Pierwszą wersją, która osiągnęła znaczący
sukces komercyjny, była

wersja 3.0 (pojawiła się w 1990 r.). W tym samym roku doszło do rozwiązania
współpracy pomiędzy

IBM (który przejął system OS / 2) i Microsoftem (który dalej rozwijał system
Windows). Windows 3.1

pojawiły się w 1992 r. i zawierały między innymi ulepszone sterowniki urządzeń
multimedialnych

oraz ulepszone programy biurowe (dysponujące różnymi zestawami czcionek i
mogące wymieniać

obiekty pomiędzy sobą).

background image

Wersje 3.x systemu Windows wykorzystywały 16-bitowy tryb adresowania
oferowany przez procesory

Intel 80286 i 80386, dodatkowo od wersji 3.1 w górę mogły wykorzystywać
mechanizm stronicowania

pamięci udostępniany przez Intel 80386.

Algorytm zarządzania procesami w systemach Windows 3.x był algorytmem
niewywłaszczeniowym.

Programy użytkowe dostarczane przez producenta wraz systemem były tworzone
w taki sposób, aby

dobrowolnie przekazywały procesor innym procesom po upłynięciu określonego
czasu, natomiast

programy tworzone przez użytkowników miały możliwość „zawłaszczania”
procesora na dowolnie

długi czas.

Wszystkie systemy Windows dostarczają dość bogaty interfejs programisty API

(Application Program

Interface)

, który poza podstawowymi funkcjami systemowymi udostępnia też

funkcje obsługujące

elementy interfejsu graficznego - przesuwalnych okien o zmiennych rozmiarach,
menu rozwijalnych,

przycisków, okien dialogowych itp. Dostarczają też tekstowy interfejs użytkownika,
który wzorowany

jest na pierwotnym interfejsie DOS-a i może być uruchamiany zarówno w trybie
pełnoekranowym

(czyli trybie tekstowym sterownika karty graficznej), jak również w wielu oknach
tekstowych

symulowanych w trybie graficznym.

background image

Procesory Intel o numerach 80286 i wyższych w ramach zapewniania
kompatybilności udostępniają

tryb rzeczywisty jako jeden ze swoich trybów pracy. Oznacza to, że programy
użytkowe przeznaczone

do wykonywania na procesorze 8086 mogą być wykonywane również na
procesorach o wyższych

numerach. Procesory te udostępniają również tak zwany tryb wirtualny 8086, w
którym wiele

programów przeznaczonych dla trybu rzeczywistego może być współbieżnie (z
podziałem czasu)

wykonywanych w oddzielnych przestrzeniach adresowych o pojemnościach 1 MB.

Własność tę wykorzystują systemy Windows, które umożliwiają wykonywanie (w
wielu oknach)

programów DOS-owych. Utrudnienie stanowi fakt, że niektóre programy DOS-
owe nie zawsze

korzystają z funkcji systemowych komunikując się z urządzeniami zewnętrznymi,
ale, w imię

przyspieszenia działania, bezpośrednio wykonują operacje na fizycznych portach
i lokatach pamięci

operacyjnej wykorzystywanych przez system. Takie programy nie mogą być
uruchamiane pod

systememami Windows, gdyż systemy te (jak wszystkie przeznaczone do pracy w
trybie chronionym)

zapewniają ochronę pamięci i sterowników urządzeń zewnętrznych.

background image

Windows NT w wersji 3.1 pojawił się w 1993 r. i był pierwszym spośród
systemów Windows, który

wykorzystywał 32-bitowy tryb adresowania udostępniany przez procesory Intel o
numerach 80386

i wyższych. Był też wyposażony w emulatory procesorów intelowskich dla
niektórych innych

procesorów. Posiadał interfejs graficzny Windows 3.x. Z założenia był
przeznaczony do pracy

w sieciach lokalnych niedużych firm i miał mniejsze wymagania sprzętowe, niż
system Unix. Dużo

rozwiązań jest „żywcem” przeniesionych z systemu Unix do Windows NT,
również większa część

kodu jądra została napisana w języku C (utworzonym specjalnie dla Uniksa) oraz
C++. Jednocześnie

wiele wewnętrznych struktur jądra systemu Windows i funkcji systemowych jest
źle udokumentowa-

nych (lub w ogóle nieudokumentowanych).

W 1995 r. pojawił się Windows 95 - pierwszy 32-bitowy system Windows
przeznaczony dla

komputerów osobistych. Został on wyposażony w nowy interfejs graficzny
użytkownika (ale oparty

na podobnych do dotychczasowych wywołaniach funkcji systemowych, co
umożliwia wykonywanie

pod nim programów „okienkowych” napisanych dla Windows 3.x). Interfejs ten
został przejęty przez

kolejną wersję Windows NT - 4.0, oraz wszystkie kolejne wersje Windows
przeznaczone dla

komputerów osobistych (98, 2000, Millenium, XP, ... ).

background image

Wszystkie wersje systemu Windows poczynając od Windows NT 3.1 oraz Windows
95 mają 32-

bitowy interfejs programisty Win32 API, ale umożliwiają też wykonywanie
programów napisanych

przy użyciu interfejsu DOS-owego i interfejsu 16-bitowego Win API (w takich
granicach, w jakich

pozwalają wymogi bezpieczeństwa - nie jest możliwe przełamywanie ochrony
pamięci i portów oraz

zawłaszczanie całego czasu procesora). W związku z poszerzeniem możliwości
adresowania

zwiększyły się też możliwości obsługi dużych plików na dysku i dysków o większej
pojemności.

Pomimo reorganizacji systemu plików nowe wersje Windows (poza NT) mogą
obsługiwać również

starsze systemy plików na wydzielonych dyskach logicznych. Pewnym problemem
stała się zmiana

DOS-owego interfejsu użytkownika tak, aby mógł obsługiwać dłuższe nazwy i
rozszerzenia nazw

plików (pod DOS-em nazwa mogła być co najwyżej 8-znakowa, a rozszerzenie - co
najwyżej

3-znakowe).

Wszystkie 32-bitowe systemy Windows implementują podział czasu i dysponują
wywłaszczeniowym

algorytmem szeregowania procesów. Gospodarowanie pamięcią operacyjną oparte
jest na mechanizmie

segmentacji stronicowanej.

background image

Jedną z różnic organizacyjnych pomiędzy Windows w wersjach 16-bitowych i
Windows w wersjach

32-bitowych jest to, że te pierwsze przechowywały parametry uruchamiania
programów użytkowych

w oddzielnych plikach konfiguracyjnych (rozszerzenie ini) związanych z
poszczególnymi programami,

natomiast te drugie przechowują ustawienia we wspólnym obiekcie nazywanym
Rejestrem. Jest to

związane z faktem, że Windows 32-bitowe rozróżniają swoich użytkowników
(którzy muszą mieć

przydzielone nazwy i hasła, i logować się na początku sesji pracy, a wylogowywać
się
na końcu).

Użytkownicy mogą mieć swoje indywidualne preferencje (wygląd ekranu, kolory,
czcionki itp.)

które system zapamiętuje i uwzględnia przy logowaniu i uruchamianiu programów
użytkowych.

Windows mogą korzystać z prostego protokołu komunikacyjnego Microsoft
Networking dla sieci

lokalnych (jest on protokołem nietrasowalnym i nie obsługuje systemu adresów
logicznych). Protokół

ten umożliwia wzajemne udostępnianie plików i urządzeń zewnętrznych w obrębie
sieci.

Dla wszystkich systemów operacyjnych firmy Microsoft zostały skonstruowane
programy obsługujące

protokół internetowy IP, jak również niektóre protokoły wyższego poziomu oparte
na IP. Nawet w trybie

rzeczywistym możliwe jest korzystanie (w trybie tekstowym) z usług ftp i telnet,
zaś pod Windows -

z przeglądarek internetowych oraz graficznych interfejsów ftp.

background image

Systemy Windows NT są wytwarzane w wersjach Server (serwer) i Workstation
(stacja robocza).

Serwery NT instalowane są na sprzęcie o większych możliwościach i na ogół
przeznaczone są do

dostarczania usług sieciowych (serwer stron domowych, serwer ftp, serwer
poczty elektronicznej itp.).

W przeciwieństwie do systemów uniksowych, serwery Windows NT (do wersji 4.0)
nie umożliwiają

otwierania zdalnych sesji pracy użytkownikom nieuprzywilejowanym (zatem są
przez nich postrzegane

głównie jako serwery plików).

Systemy Windows NT charakteryzują się większym stopniem niezawodności i
bezpieczeństwa od

systemów Windows przeznaczonych dla indywidualnych komputerów PC (poza
2000 i XP). Dotyczy to

zarówno odporności na ataki w sieci komputerowej, jak i ochrony przed wadliwym
oprogramowaniem

i przypadkowym zniszczeniem danych (na przykład utratą części danych na dysku
w przypadku awarii).

Struktura systemów Windows NT jest warstwowa i wyraźnie izoluje warstwę
zależną od sprzętu

(rodzaju procesora) od warstw wyższych (operujących na obiektach logicznych). W
celu umożliwienia

wykonywania programów przeznaczonych dla innych (kompatybilnych) systemów
operacyjnych,

w strukturze Windows NT wyodrębniono tak zwane podsystemy środowiskowe,
emulujące

środowiska OS / 2, Windows 16-bitowych, DOS-a i środowisko zgodne ze
standardem POSIX.

background image

Wszystkie wyżej wymienione podsystemy współpracują z podsystemem
środowiskowym Win32,

który jest najniższą warstwą wykonującą się w trybie użytkownika. Podsystem ten
komunikuje się

z wykonującym się w trybie uprzywilejowanym egzekutorem, który składa się z
modułów o nazwach:

- zarządca wejścia - wyjścia ;

- zarządca obiektów ;

- monitor bezpieczeństwa odwołań ;

- zarządca procesów ;

- zarządca pamięci wirtualnej ;

- udogodnienie wywoływania procedur lokalnych .

Pozostałymi (poza egzekutorem) częściami składowymi systemu wykonywanymi w
trybie uprzywile-

jowanym są:

- jądro systemu ;

- warstwa abstrakcji sprzętu

(Hardware Abstraction Layer, HAL)

.

Warstwa abstrakcji sprzętu umożliwia współpracę jądra z różnymi rodzajami
procesorów (w wersji

4.0 z układami zawierającymi nie więcej, niż 8 procesorów).

background image

Jądro systemu Windows NT jest tak zwanym mikrojądrem, czyli zawiera
jedynie najprostsze,

najbardziej podstawowe kody funkcji systemowych (wszystkie pozostałe są już
realizowane jako

procedury w wyższych warstwach systemu i nie mają zagwarantowanej
niepodzielności wykonania).

Strony przechowujące kod i dane jądra nigdy nie są usuwane z pamięci
operacyjnej, a procesy jądra

nigdy nie podlegają wywłaszczaniu.

Jądro ma organizację obiektową, co oznacza, że ze strukturami danych jądra
(atrybutami) są

jednoznacznie związane zbiory funkcji (metod) operujących na nich. Wyróżniane
są dwa rodzaje

obiektów jądra:

- obiekty dyspozytora ;

- obiekty sterujące .

Wśród obiektów jądra Windows NT są zarówno procesy (ciężkie), jak i wątki.
Każdy proces

dysponuje pewną przestrzenią adresową, w której wykonuje się pewna liczba
(jeden lub więcej)

wątków. Wątki mają priorytety będące liczbami naturalnymi z zakresu 0 - 31.
Priorytety z zakresu

16 - 31 określają klasę czasu rzeczywistego wątków, a priorytety z zakresu 0 -
15 - klasę zmienną

wątków (choć system nie gwarantuje wątkom czasu rzeczywistego żadnych
limitów czasowych).

background image

Obiekty dyspozytora są bezpośrednio związane z synchronizacją i zmianą
przydziału procesora. Są to:

- wątki (obiekty będące podstawowymi jednostkami szeregowania i wykonania);

- zdarzenia (obiekty odnotowujące fakt wystąpienia zdarzenia asynchronicznego);

- semafory, muteksy i mutanty (obiekty służące do synchronizacji wątków);

- czasomierze (obiekty mierzące czas wykonywania procedur i przerywające je w
razie potrzeby).

Do obiektów sterujących zaliczane są:

- procesy (obiekty zawierające informacje o właścicielu, priorytecie, przydziale
pamięci itp.);

- przerwania (obiekty kojarzące rodzaje zdarzeń z obsługującymi je
procedurami);

- obiekt stanu zasilania (odnotowuje, czy wystąpiła awaria) i obiekt informujący o
zasilaniu (wywołuje

procedurę obsługi w przypadku wystąpienia awarii);

- obiekty profilujące (mierzące czas wykonania wybranych fragmentów kodu - do
celów

diagnostycznych);

- asynchroniczne wywołania procedur (programowe przerwania wykonań
wątków).

background image

Algorytm szeregowania wątków stosowany przez jądro systemu NT przywiązuje
dość dużą wagę do

sprawności wątków interakcyjnych, czyli takich, które obsługują procesy
bezpośredniego komuniko-

wania się użytkownika z systemem. Z tego powodu priorytety takich wątków
oczekujących w kolejce

do wykonania przyrastają szybciej, niż na przykład priorytety wątków
obsługujących komunikację

z urządzeniami dyskowymi lub sieciowymi.

Priorytet wątku zawieszonego wskutek upłynięcia przydzielonego kwantu czasu
zostaje obniżony do

poziomu priorytetu podstawowego (związanego z jego procesem). Priorytety
wątków klasy czasu

rzeczywistego nie ulegają zmianie. Każdy wątek klasy czasu rzeczywistego
umieszczony w kolejce

wątków gotowych do wykonania powoduje wywłaszczenie wykonywanego wątku
klasy zmiennej.

W systemach wieloprocesorowych wątki mogą oczekiwać na przydział dowolnego
procesora lub

wybranego procesora. Jeżeli w pewnym momencie pewien procesor nie ma
żadnego wątku, który

mógłby wykonywać, dyspozytor przydziela mu do wykonania tak zwany wątek
bezczynny

(idle)

.

background image

Zarządzanie pamięcią stronicowaną bazuje na dwupoziomowej strukturze:

Katalog tablic stron procesu

Tablica stron nr 0 Tablica stron nr 1 Tablica
stron nr 1024

Strona Strona Strona
Strona Strona

4 KB 4 KB 4 KB 4 KB
4 KB

Zarówno katalog, jak i pojedyncza tablica stron mogą zawierać do 1024 wpisów.

Strona może przebywać w pamięci operacyjnej lub w pliku na dysku. Procesy
uprzywilejowane

mają prawo zabronić usuwania wybranych stron z pamięci do pliku. Strony
posiadają atrybuty, które

informują o stopniu ich ochrony (na przykład read-only).

Procesy mogą współdzielić obiekty pamięci, w których mogą mieć odwzorowane
fragmenty swoich

przestrzeni adresowych.

background image

Rdzennym systemem plików systemów operacyjnych Windows NT jest NTFS.
System jest logicznie

podzielony na tomy

(volume)

. Każdy tom zawiera hierarchiczną (drzewiastą)

strukturę katalogów.

Jednostką przydziału miejsca na dysku są nie pojedyncze sektory, lecz całe ciągi
przyległych sektorów

nazywane gronami

(cluster)

. Wielkość gron jest ustalana na etapie konfiguracji

systemu (mogą być

przyjęte wielkości domyślne).

System plików na dysku jest obsługiwany przez program FtDisk, którego
założeniem jest uzyskanie

dużej odporności na skutki awarii systemu. Stosuje on kilka wariantów
(skomplikowanego) zapisu

na dysku przy uwzględnieniu pewnej nadmiarowości, która w razie awarii
pozwala odtworzyć

przynajmniej część zapisu z pewnego momentu przed awarią. W skrajnym
przypadku program ten

stosuje zapis lustrzany

(mirroring)

dublujący zapis każdej informacji przy

użyciu dwóch niezależnych

sterowników.

System NTFS posiada również wbudowaną możliwość kompresji danych w
poszczególnych plikach

w celu zaoszczędzenia miejsca na dysku.


Document Outline


Wyszukiwarka

Podobne podstrony:
Systop2
Systop11
Systop14
Systop13
Systop8
Systop3
Systop5
Systop10
Systop1
Systop7
Systop2
Systop12
SystOper

więcej podobnych podstron