SO wyklad cz5


Komunikacja miedzy procesami za
Komunikacja miedzy procesami za
pomocą gniazdek (1)
pomocą gniazdek (1)
W nowoczesnych systemach komputerowych
W nowoczesnych systemach komputerowych
potrzebny jest mechanizm komunikacji między
potrzebny jest mechanizm komunikacji między
całkowicie odrębnymi procesami, które są
całkowicie odrębnymi procesami, które są
Systemy operacyjne
Systemy operacyjne
realizowane na tych samych lub odrębnych
realizowane na tych samych lub odrębnych
komputerach połączonych w sieci.
komputerach połączonych w sieci.
cz. 5
cz. 5
W Unixie (Linuksie) istnieje sześć funkcji
W Unixie (Linuksie) istnieje sześć funkcji
sem. letni 2012/2013
sem. letni 2012/2013
systemowych dotyczących wejścia i wyjścia:
systemowych dotyczących wejścia i wyjścia:
open, creat, close, read, write oraz lseek 
open, creat, close, read, write oraz lseek 
Andrzej Jędruch
Andrzej Jędruch
byłoby wskazane ażeby interfejs umożliwiający
byłoby wskazane ażeby interfejs umożliwiający
korzystanie z właściwości sieciowych zachowywał
korzystanie z właściwości sieciowych zachowywał
styl właściwy dla systemu plików.
styl właściwy dla systemu plików.
Komunikacja miedzy procesami za Komunikacja miedzy procesami za
Komunikacja miedzy procesami za Komunikacja miedzy procesami za
pomocą gniazdek (2) pomocą gniazdek (3)
pomocą gniazdek (2) pomocą gniazdek (3)
Jednak sieciowy system wejścia wyjścia ma W trakcie komunikacji nazwy muszą być
Jednak sieciowy system wejścia wyjścia ma W trakcie komunikacji nazwy muszą być
więcej szczegółów i opcji niż system wejścia przekształcone w adresy  dziedzina, z której
więcej szczegółów i opcji niż system wejścia przekształcone w adresy  dziedzina, z której
wyjścia plików. brany jest adres nazywana jest domeną;
wyjścia plików. brany jest adres nazywana jest domeną;
Gniazdko (ang. socket) stanowi specjalny rodzaj Domena dla Unixa (Linuksa) oznaczana jest
Gniazdko (ang. socket) stanowi specjalny rodzaj Domena dla Unixa (Linuksa) oznaczana jest
pliku, który został zdefiniowany w systemie Unix, symbolem AF_UNIX, dla Internetu AF_INET.
pliku, który został zdefiniowany w systemie Unix, symbolem AF_UNIX, dla Internetu AF_INET.
a pózniej udostępniony także w systemie
a pózniej udostępniony także w systemie
Unixowe domeny nazw pozwalają na komunikację
Unixowe domeny nazw pozwalają na komunikację
Windows.
Windows.
między procesami, które działają w tym samym
między procesami, które działają w tym samym
W programach można tworzyć indywidualne systemie plików.
W programach można tworzyć indywidualne systemie plików.
gniazdka, nadawać im nazwy i przesyłać
gniazdka, nadawać im nazwy i przesyłać
Domeny internetowe pozwalają na komunikację
Domeny internetowe pozwalają na komunikację
komunikaty między nimi.
komunikaty między nimi.
między procesami realizowanymi na odrębnych
między procesami realizowanymi na odrębnych
komputerach połączonych siecią.
komputerach połączonych siecią.
Protokoły w komunikacji Protokoły w komunikacji
Protokoły w komunikacji Protokoły w komunikacji
sieciowej (1) sieciowej (2)
sieciowej (1) sieciowej (2)
Sieć komputerowa jest tworem niejednorodnym Podstawowe znaczenie dla komunikacji w
Sieć komputerowa jest tworem niejednorodnym Podstawowe znaczenie dla komunikacji w
 w jej skład wchodzą urządzenia fizyczne takie Internecie ma zestaw (rodzina) protokołów znany
 w jej skład wchodzą urządzenia fizyczne takie Internecie ma zestaw (rodzina) protokołów znany
jak karty sieciowe, kable itp. oraz jako TCP/IP.
jak karty sieciowe, kable itp. oraz jako TCP/IP.
oprogramowanie, które umożliwia wykorzystanie
oprogramowanie, które umożliwia wykorzystanie
Protokoły te są niezależne od topologii sieci (np.
Protokoły te są niezależne od topologii sieci (np.
możliwości tkwiących w sprzęcie.
możliwości tkwiących w sprzęcie.
magistralowej, pierścieniowej, gwiazdzistej) i
magistralowej, pierścieniowej, gwiazdzistej) i
Komunikacja w każdej sieci komputerowej musi mogą działać na różnych platformach.
Komunikacja w każdej sieci komputerowej musi mogą działać na różnych platformach.
być oparta na dokładnie określonych zasadach i
być oparta na dokładnie określonych zasadach i
normach, które muszą przestrzegać
normach, które muszą przestrzegać
komunikujące się ze sobą komputery.
komunikujące się ze sobą komputery.
Zasady i normy formułowane są w postaci
Zasady i normy formułowane są w postaci
dokumentów zwanych protokołami.
dokumentów zwanych protokołami.
1
Protokoły w komunikacji Protokoły w komunikacji
Protokoły w komunikacji Protokoły w komunikacji
sieciowej (3) sieciowej (4)
sieciowej (3) sieciowej (4)
Protokoły komunikacyjne są z reguły bardzo W systemach komputerowych poszczególne
Protokoły komunikacyjne są z reguły bardzo W systemach komputerowych poszczególne
złożone, więc w celu ułatwienia ich praktycznej protokoły zestawu są implementowane przez
złożone, więc w celu ułatwienia ich praktycznej protokoły zestawu są implementowane przez
realizacji dzieli się je na części  warstwy. odpowiadające im moduły oprogramowania.
realizacji dzieli się je na części  warstwy. odpowiadające im moduły oprogramowania.
Zbiór protokołów obowiązujących na różnych Moduły te komunikują się między sobą w sposób
Zbiór protokołów obowiązujących na różnych Moduły te komunikują się między sobą w sposób
warstwach i mogących stanowić podstawę dla ściśle sprecyzowany przez ustalenia zawarte w
warstwach i mogących stanowić podstawę dla ściśle sprecyzowany przez ustalenia zawarte w
użytecznej sieci nazywa się zestawem (rodziną) protokołach  w rezultacie struktura
użytecznej sieci nazywa się zestawem (rodziną) protokołach  w rezultacie struktura
protokołów (ang. protocol suite, protocol family). oprogramowania sieciowego stanowi odbicie
protokołów (ang. protocol suite, protocol family). oprogramowania sieciowego stanowi odbicie
wzajemnych powiązań między protokołami.
wzajemnych powiązań między protokołami.
Standardowym modelem podziału protokołów
Standardowym modelem podziału protokołów
komunikacyjnych na warstwy jest model OSI
komunikacyjnych na warstwy jest model OSI
(ang. open system interconnection).
(ang. open system interconnection).
Protokoły w komunikacji Protokoły w komunikacji
Protokoły w komunikacji Protokoły w komunikacji
sieciowej (5) sieciowej (6)
sieciowej (5) sieciowej (6)
Model OSI został określony przez Często model OSI przedstawiany jest w
Model OSI został określony przez
Często model OSI przedstawiany jest w
warstwa zastosowań
organizację ISO (International
organizację ISO (International
czterowarstwowej postaci uproszczonej:
czterowarstwowej postaci uproszczonej:
warstwa prezentacji
Standards Organization) i
Standards Organization) i
wykształcił się w latach 1977 
wykształcił się w latach 1977 
warstwa sesji
warstwa procesu warstwa procesu
1984 jako norma komunikacji
1984 jako norma komunikacji
protokoły: FTP, SMTP,... protokoły: FTP, SMTP,...
warstwa transportowa
komputerowej.
komputerowej.
Model OSI jest tylko zbiorem warstwa sieciowa warstwa transportowa warstwa transportowa
Model OSI jest tylko zbiorem
protokoły: TCP, UDP,... protokoły: TCP, UDP,...
wskazówek, a nie konkretną
wskazówek, a nie konkretną
warstwa łącza danych
specyfikacją sieci komputerowej
specyfikacją sieci komputerowej
warstwa sieciowa warstwa sieciowa
 należy go traktować jako
 należy go traktować jako
warstwa fizyczna
protokół IP protokół IP
punkt odniesienia, pamiętając
punkt odniesienia, pamiętając
jednak, że żadna sieć nie była
jednak, że żadna sieć nie była
warstwa łącza danych sieć warstwa łącza danych
realizowana w myśl zaleceń
realizowana w myśl zaleceń
interfejs sprzętowy fizyczna interfejs sprzętowy
sformułowanych w tym modelu.
sformułowanych w tym modelu.
Protokoły w komunikacji Protokoły w komunikacji
Protokoły w komunikacji Protokoły w komunikacji
sieciowej (7) sieciowej (8)
sieciowej (7) sieciowej (8)
Dane przekazywane są z warstwy do warstwy  Zatem tworzenie aplikacji użytkownika wymaga
Dane przekazywane są z warstwy do warstwy  Zatem tworzenie aplikacji użytkownika wymaga
każda warstwa ma możliwość komunikacji z tylko znajomości funkcji usługowych
każda warstwa ma możliwość komunikacji z tylko znajomości funkcji usługowych
warstwą znajdującą się bezpośrednio poniżej i udostępnianych przez warstwę niższą i nie
warstwą znajdującą się bezpośrednio poniżej i udostępnianych przez warstwę niższą i nie
bezpośrednio powyżej. wymaga zgłębiania szczegółów związanych z
bezpośrednio powyżej. wymaga zgłębiania szczegółów związanych z
zarządzaniem siecią czy programowaniem karty
zarządzaniem siecią czy programowaniem karty
Jeśli dwa komputery komunikują się między
Jeśli dwa komputery komunikują się między
sieciowej.
sieciowej.
sobą, to oprogramowanie na każdej warstwie
sobą, to oprogramowanie na każdej warstwie
jednego komputera komunikuje się z tą samą Do korzystnych cech projektowania warstwowego
jednego komputera komunikuje się z tą samą Do korzystnych cech projektowania warstwowego
warstwą innego komputera, np. warstwa należy konieczność dokładnego określenia
warstwą innego komputera, np. warstwa należy konieczność dokładnego określenia
transportowa jednego komputera komunikuje się interfejsu między warstwami  dzięki temu
transportowa jednego komputera komunikuje się interfejsu między warstwami  dzięki temu
z warstwą transportową innego komputera, przy zmiany wprowadzone w jednej z warstw nie mają
z warstwą transportową innego komputera, przy zmiany wprowadzone w jednej z warstw nie mają
czym warstwa transportowa nie ma wglądu w to wpływu na warstwy sąsiednie.
czym warstwa transportowa nie ma wglądu w to wpływu na warstwy sąsiednie.
co się dzieje w warstwach niższych.
co się dzieje w warstwach niższych.
2
Tryb połączeniowy i Tryb połączeniowy i
Tryb połączeniowy i Tryb połączeniowy i
bezpołączeniowy (1) bezpołączeniowy (2)
bezpołączeniowy (1) bezpołączeniowy (2)
Tryb połączeniowy polega na ustanowieniu W rodzinie protokołów TCP/IP obsługę
Tryb połączeniowy polega na ustanowieniu W rodzinie protokołów TCP/IP obsługę
logicznego połączenia między dwoma procesami; połączeniową reprezentuje protokół TCP (ang.
logicznego połączenia między dwoma procesami; połączeniową reprezentuje protokół TCP (ang.
w tym trybie można wyróżnić trzy etapy: transmission control protocol).
w tym trybie można wyróżnić trzy etapy: transmission control protocol).
" nawiązanie połączenia, Tryb bezpołączeniowy (nazywany również
" nawiązanie połączenia, Tryb bezpołączeniowy (nazywany również
datagramowym) charakteryzuje się wymianą
datagramowym) charakteryzuje się wymianą
" przesyłanie danych,
" przesyłanie danych,
datagramów, czyli komunikatów przesyłanych
datagramów, czyli komunikatów przesyłanych
" zakończenie połączenia.
" zakończenie połączenia.
niezależnie jeden od drugiego
niezależnie jeden od drugiego
Tryb połączeniowy stosuje się w sytuacjach, gdy
Tryb połączeniowy stosuje się w sytuacjach, gdy
Każdy komunikat jest adresowany indywidualnie
Każdy komunikat jest adresowany indywidualnie
między komunikującymi się obiektami ma być
między komunikującymi się obiektami ma być
 jeśli adres jest poprawny, to komunikat
 jeśli adres jest poprawny, to komunikat
przesłany pewien ciąg komunikatów (a nie
przesłany pewien ciąg komunikatów (a nie
zostanie odebrany przez inny proces (aczkolwiek
zostanie odebrany przez inny proces (aczkolwiek
pojedynczy komunikat).
pojedynczy komunikat).
nie jest to gwarantowane).
nie jest to gwarantowane).
Tryb połączeniowy i Tworzenie programów
Tryb połączeniowy i Tworzenie programów
bezpołączeniowy (3) wykonywalnych (1)
bezpołączeniowy (3) wykonywalnych (1)
W rodzinie protokołów TCP/IP obsługę W wielu środowiskach programowania
W rodzinie protokołów TCP/IP obsługę W wielu środowiskach programowania
bezpołączeniową reprezentuje protokół UDP (ang. wytworzenie programu wynikowego wykonywane
bezpołączeniową reprezentuje protokół UDP (ang. wytworzenie programu wynikowego wykonywane
user datagram protocol). jest w dwóch etapach:
user datagram protocol). jest w dwóch etapach:
Używając protokołu UDP trzeba być " kod zródłowy każdego modułu programu
Używając protokołu UDP trzeba być " kod zródłowy każdego modułu programu
przygotowanym, że pewne datagramy mogą nie zostaje poddany kompilacji  uzyskuje się plik
przygotowanym, że pewne datagramy mogą nie zostaje poddany kompilacji  uzyskuje się plik
dotrzeć do odbiorcy, inne mogą nadejść w w języku pośrednim (rozszerzenie .OBJ)
dotrzeć do odbiorcy, inne mogą nadejść w w języku pośrednim (rozszerzenie .OBJ)
zmienionej kolejności, a jeszcze inne mogą być
zmienionej kolejności, a jeszcze inne mogą być
" uzyskane pliki .OBJ poddaje się konsolidacji
" uzyskane pliki .OBJ poddaje się konsolidacji
powtórzone kilka razy. W praktyce jeśli
powtórzone kilka razy. W praktyce jeśli
czyli linkowaniu; w trakcie linkowania
czyli linkowaniu; w trakcie linkowania
odpowiedz nie pojawi się rozsądnym czasie, to
odpowiedz nie pojawi się rozsądnym czasie, to
dołączane są także wszystkie niezbędne
dołączane są także wszystkie niezbędne
komunikat jest wysyłany ponownie.
komunikat jest wysyłany ponownie.
programy biblioteczne.
programy biblioteczne.
UDP nadaje się szczególnie dobrze do
UDP nadaje się szczególnie dobrze do
przypadków, w których dane mogą być przesłane
przypadków, w których dane mogą być przesłane
w pojedynczym datagramie.
w pojedynczym datagramie.
Tworzenie programów
Tworzenie programów
Tworzenie programów
Tworzenie programów
wykonywalnych (3)
wykonywalnych (3)
wykonywalnych (2)
wykonywalnych (2)
Pliki .OBJ generowane przez różne kompilatory
Pliki .OBJ generowane przez różne kompilatory
(w danym środowisku) zawierają kod w tym
(w danym środowisku) zawierają kod w tym
samym języku, który możemy uważać za język
samym języku, który możemy uważać za język
pośredni, stanowiący jak gdyby "wspólny
pośredni, stanowiący jak gdyby "wspólny
mianownik" dla różnych języków programowania.
mianownik" dla różnych języków programowania.
W rezultacie zostaje wygenerowany plik
W rezultacie zostaje wygenerowany plik
zawierający program wynikowy z rozszerzeniem
zawierający program wynikowy z rozszerzeniem
.EXE. Plik ten zawiera kod programu w języku
.EXE. Plik ten zawiera kod programu w języku
maszynowym (czyli zrozumiałym przez procesor),
maszynowym (czyli zrozumiałym przez procesor),
aczkolwiek niektóre jego elementy wymagają
aczkolwiek niektóre jego elementy wymagają
korekcji uzależnionej od środowiska, w którym
korekcji uzależnionej od środowiska, w którym
program będzie wykonany. Korekcja ta następuje
program będzie wykonany. Korekcja ta następuje
w trakcie ładowania programu.
w trakcie ładowania programu.
3
Tworzenie programów Wykonywanie programów
Tworzenie programów Wykonywanie programów
wykonywalnych (4) na platformie .NET (1)
wykonywalnych (4) na platformie .NET (1)
Niektóre programy biblioteczne mają charakter .NET Framework składa się z dwóch głównych
Niektóre programy biblioteczne mają charakter .NET Framework składa się z dwóch głównych
uniwersalny i są wykorzystywane przez wiele elementów:
uniwersalny i są wykorzystywane przez wiele elementów:
programów użytkowych. " maszyny wirtualnej, nazwanej Common Language
programów użytkowych. " maszyny wirtualnej, nazwanej Common Language
Runtime (CLR);
Runtime (CLR);
Wygodniej byłoby więc dołączać te programy
Wygodniej byłoby więc dołączać te programy
" biblioteki klas podstawowych (Base Class Library  BCL).
" biblioteki klas podstawowych (Base Class Library  BCL).
dopiero w trakcie wykonywania programu, co
dopiero w trakcie wykonywania programu, co
Kompilatory .NET nie generują kodu
Kompilatory .NET nie generują kodu
pozwoliłoby na zmniejszenie rozmiaru pliku .EXE.
pozwoliłoby na zmniejszenie rozmiaru pliku .EXE.
maszynowego, a jedynie kod w języku pośrednim
maszynowego, a jedynie kod w języku pośrednim
W takim przypadku mówimy, że program
W takim przypadku mówimy, że program
(Intermediate Language  IL). Jest on podobny
(Intermediate Language  IL). Jest on podobny
korzysta z biblioteki dynamicznej (zapisanej w
korzysta z biblioteki dynamicznej (zapisanej w
do asemblera, ale nie jest zależny od procesora i
do asemblera, ale nie jest zależny od procesora i
pliku z rozszerzeniem DLL).
pliku z rozszerzeniem DLL).
systemu operacyjnego.
systemu operacyjnego.
Wykonywanie programów Wykonywanie programów
Wykonywanie programów Wykonywanie programów
na platformie .NET (2) na platformie .NET (3)
na platformie .NET (2) na platformie .NET (3)
Drugi etap kompilacji, polega na skompilowaniu Powstały w ten sposób kod nazywany jest kodem
Drugi etap kompilacji, polega na skompilowaniu Powstały w ten sposób kod nazywany jest kodem
kodu z języka IL na instrukcje języka zarządzanym (managed code), ponieważ .NET
kodu z języka IL na instrukcje języka zarządzanym (managed code), ponieważ .NET
maszynowego danego procesora głównego (np. Framework kontroluje w nim wszystkie procesy
maszynowego danego procesora głównego (np. Framework kontroluje w nim wszystkie procesy
Intel Core i7) oraz wybranego systemu związane z alokacją pamięci, czasem życia
Intel Core i7) oraz wybranego systemu związane z alokacją pamięci, czasem życia
operacyjnego, co pozwala na uruchomienie obiektów itp.
operacyjnego, co pozwala na uruchomienie obiektów itp.
napisanej aplikacji w wybranym środowisku.
napisanej aplikacji w wybranym środowisku.
Kod niezarządzany jest zwykłym kodem
Kod niezarządzany jest zwykłym kodem
Kompilatory uczestniczące w drugim etapie wykonywanym poza środowiskiem .NET, zatem
Kompilatory uczestniczące w drugim etapie wykonywanym poza środowiskiem .NET, zatem
kompilacji określone są skrótem JIT (just in określenie to oznacza aplikacje kompilowane w
kompilacji określone są skrótem JIT (just in określenie to oznacza aplikacje kompilowane w
time). tradycyjny, wcześniej opisany sposób.
time). tradycyjny, wcześniej opisany sposób.
Specyfika programów wykonywanych Specyfika programów wykonywanych
Specyfika programów wykonywanych Specyfika programów wykonywanych
w środowisku MS Windows (1) w środowisku MS Windows (2)
w środowisku MS Windows (1) w środowisku MS Windows (2)
Programy wykonywane w środowisku Windows są Problem ten sprawia kłopoty w przypadku, gdy
Programy wykonywane w środowisku Windows są Problem ten sprawia kłopoty w przypadku, gdy
zorganizowane w specyficzny sposób: program czas obsługi zdarzenia wymaga długich obliczeń,
zorganizowane w specyficzny sposób: program czas obsługi zdarzenia wymaga długich obliczeń,
składa się w wielu fragmentów kodu, które są trwających wielokrotnie dłużej niż 1/10 s.
składa się w wielu fragmentów kodu, które są trwających wielokrotnie dłużej niż 1/10 s.
uaktywniane w odpowiedzi na zdarzenia
uaktywniane w odpowiedzi na zdarzenia
O programie wykonywanym w środowisku
O programie wykonywanym w środowisku
przychodzące z zewnątrz  tymi zdarzeniami
przychodzące z zewnątrz  tymi zdarzeniami
Windows mówimy, że jest on sterowany przez
Windows mówimy, że jest on sterowany przez
mogą być: przesunięcie myszki, naciśnięcie
mogą być: przesunięcie myszki, naciśnięcie
zdarzenia.
zdarzenia.
klawisza na klawiaturze, upływ określonego
klawisza na klawiaturze, upływ określonego
Taki program po załadowaniu do pamięci
Taki program po załadowaniu do pamięci
odcinka czasu i wiele innych.
odcinka czasu i wiele innych.
zawiesza działalność i oczekuje na wystąpienie
zawiesza działalność i oczekuje na wystąpienie
Zazwyczaj fragmenty obsługujące poszczególne
Zazwyczaj fragmenty obsługujące poszczególne
określonych zdarzeń  w tym czasie procesor
określonych zdarzeń  w tym czasie procesor
zdarzenia wykonywane w czasie nie
zdarzenia wykonywane w czasie nie
wykonuje inne czynności.
wykonuje inne czynności.
przekraczającym 1/10 s, przy czym obsługa
przekraczającym 1/10 s, przy czym obsługa
kolejnego zdarzenia może nastąpić dopiero po
kolejnego zdarzenia może nastąpić dopiero po
zakończeniu obsługi poprzedniego.
zakończeniu obsługi poprzedniego.
4
Specyfika programów wykonywanych Specyfika programów wykonywanych
Specyfika programów wykonywanych Specyfika programów wykonywanych
w środowisku MS Windows (3) w środowisku MS Windows (4)
w środowisku MS Windows (3) w środowisku MS Windows (4)
Po wystąpieniu zdarzenia uaktywniany jest W takim ujęciu wykonywanie programu w
Po wystąpieniu zdarzenia uaktywniany jest W takim ujęciu wykonywanie programu w
odpowiedni fragment kodu, a po jego wykonaniu środowisku Windows sprowadza się do obsługi
odpowiedni fragment kodu, a po jego wykonaniu środowisku Windows sprowadza się do obsługi
program ponownie zawiesza działalność. komunikatów.
program ponownie zawiesza działalność. komunikatów.
Omawiane tu zdarzenia generują komunikaty, Wykonywanie programu rozpoczyna się od kodu
Omawiane tu zdarzenia generują komunikaty, Wykonywanie programu rozpoczyna się od kodu
które po przetworzeniu przez różne moduły zawartego w funkcji WinMain  następuje tu
które po przetworzeniu przez różne moduły zawartego w funkcji WinMain  następuje tu
systemowe trafiają do wykonywanego programu utworzenie okien (za pomocą funkcji
systemowe trafiają do wykonywanego programu utworzenie okien (za pomocą funkcji
(aplikacji), który interpretuje go i podejmuje CreateWindow) i wykonanie innych czynności
(aplikacji), który interpretuje go i podejmuje CreateWindow) i wykonanie innych czynności
działania właściwe dla otrzymanego komunikatu. inicjalizacyjnych.
działania właściwe dla otrzymanego komunikatu. inicjalizacyjnych.
Zdefiniowano około 140 komunikatów, które
Zdefiniowano około 140 komunikatów, które
kodowane są w postaci liczb  dla wygody
kodowane są w postaci liczb  dla wygody
wprowadzono równoważne nazwy symboliczne,
wprowadzono równoważne nazwy symboliczne,
np. WM_QUIT (wartość liczbowa 18).
np. WM_QUIT (wartość liczbowa 18).
Specyfika programów wykonywanych Specyfika programów wykonywanych
Specyfika programów wykonywanych Specyfika programów wykonywanych
w środowisku MS Windows (5) w środowisku MS Windows (6)
w środowisku MS Windows (5) w środowisku MS Windows (6)
W trakcie inicjalizacji do Windows przekazywany Po wykonaniu czynności inicjalizacyjnych
W trakcie inicjalizacji do Windows przekazywany Po wykonaniu czynności inicjalizacyjnych
jest adres funkcji, która zajmować się będzie rozpoczyna się wykonywanie fragmentu kodu
jest adres funkcji, która zajmować się będzie rozpoczyna się wykonywanie fragmentu kodu
obsługą komunikatów  zazwyczaj funkcja ta znanego jako pętla komunikatów  pętla ta,
obsługą komunikatów  zazwyczaj funkcja ta znanego jako pętla komunikatów  pętla ta,
(tzw. funkcja okienkowa) realizuje podstawowe mimo krótkiego kodu, może być uważana za
(tzw. funkcja okienkowa) realizuje podstawowe mimo krótkiego kodu, może być uważana za
czynności programu. centralną część każdego programu:
czynności programu. centralną część każdego programu:
Funkcję okienkową tworzy programista, a w
Funkcję okienkową tworzy programista, a w
trakcie wykonywania programu jest ona
trakcie wykonywania programu jest ona
while (GetMessage (&msg, NULL, 0, 0))
while (GetMessage (&msg, NULL, 0, 0))
wywoływana przez Windows
wywoływana przez Windows
{
{
Ponieważ omawiana funkcja wywoływana jest z
Ponieważ omawiana funkcja wywoływana jest z
TranslateMessage (&msg) ;
TranslateMessage (&msg) ;
zewnątrz programu, określa się jako funkcję
zewnątrz programu, określa się jako funkcję
DispatchMessage (&msg) ;
DispatchMessage (&msg) ;
zwrotną (ang. callback).
zwrotną (ang. callback).
}
}
return msg.wParam ;
return msg.wParam ;
Specyfika programów wykonywanych Specyfika programów wykonywanych
Specyfika programów wykonywanych Specyfika programów wykonywanych
w środowisku MS Windows (7) w środowisku MS Windows (8)
w środowisku MS Windows (7) w środowisku MS Windows (8)
Całe funkcjonowanie programu pod Windows Wyjątkowo funkcja GetMessage zwraca zero,
Całe funkcjonowanie programu pod Windows Wyjątkowo funkcja GetMessage zwraca zero,
realizuje się w obrębie powyższej pętli, w której: gdy otrzyma komunikat WM_QUIT, sygnalizujący
realizuje się w obrębie powyższej pętli, w której: gdy otrzyma komunikat WM_QUIT, sygnalizujący
" funkcja GetMessage pobiera komunikaty z kolejki (i zakończenie obsługi okna, co jednocześnie
" funkcja GetMessage pobiera komunikaty z kolejki (i zakończenie obsługi okna, co jednocześnie
wprowadza je do struktury msg  pole messsage w tej
wprowadza je do struktury msg  pole messsage w tej
kończy pętlę while i zarazem program.
kończy pętlę while i zarazem program.
strukturze zawiera liczbę, która identyfikuje komunikat);
strukturze zawiera liczbę, która identyfikuje komunikat);
Komunikat zawiera także uchwyt okna, do
Komunikat zawiera także uchwyt okna, do
" jeśli kolejka komunikatów jest pusta, to program
" jeśli kolejka komunikatów jest pusta, to program
którego jest skierowany oraz dwa pola
którego jest skierowany oraz dwa pola
"drzemie" w pamięci komputera aż do otrzymania
"drzemie" w pamięci komputera aż do otrzymania
pomocnicze wParam i lParam, które mogą służyć
pomocnicze wParam i lParam, które mogą służyć
komunikatu (tj. zakończenie wykonywania funkcji
komunikatu (tj. zakończenie wykonywania funkcji
do przesyłania dodatkowych informacji.
do przesyłania dodatkowych informacji.
GetMessage następuje dopiero po nadejściu
GetMessage następuje dopiero po nadejściu
komunikatu);
komunikatu);
" funkcja TranslateMessage kontroluje i tłumaczy
" funkcja TranslateMessage kontroluje i tłumaczy
komunikaty pochodzące z klawiatury;
komunikaty pochodzące z klawiatury;
" funkcja DispatchMessage wysyła komunikat z
" funkcja DispatchMessage wysyła komunikat z
powrotem do systemu Windows, który przekazuje go
powrotem do systemu Windows, który przekazuje go
funkcji okienkowej.
funkcji okienkowej.
5
Funkcja okienkowa w Funkcja okienkowa w
Funkcja okienkowa w Funkcja okienkowa w
aplikacjach MS Windows (1) aplikacjach MS Windows (2)
aplikacjach MS Windows (1) aplikacjach MS Windows (2)
switch (komunikat)
switch (komunikat)
Funkcja okienkowa obsługuje nadchodzące
Funkcja okienkowa obsługuje nadchodzące
{
{
komunikaty i faktycznie realizuje podstawowe
komunikaty i faktycznie realizuje podstawowe
funkcje programu.
funkcje programu.
case WM_TIMER:
case WM_TIMER:
Funkcja okienkowa zawiera zazwyczaj instrukcję
Funkcja okienkowa zawiera zazwyczaj instrukcję
zegar++;
zegar++;
switch, pozwalająca na łatwy wybór dalszego
switch, pozwalająca na łatwy wybór dalszego
InvalidateRect (hwnd, NULL, TRUE) ;
InvalidateRect (hwnd, NULL, TRUE) ;
postępowania w zależności od przyjętego
postępowania w zależności od przyjętego
return 0 ;
return 0 ;
komunikatu  ilustruje to przykład:
komunikatu  ilustruje to przykład:
case WM_PAINT:
case WM_PAINT:
      
      
}
}
return DefWindowProc (hwnd, komunikat,
return DefWindowProc (hwnd, komunikat,
wParam, lParam) ;
wParam, lParam) ;
Funkcja okienkowa w Funkcja okienkowa w
Funkcja okienkowa w Funkcja okienkowa w
aplikacjach MS Windows (3) aplikacjach MS Windows (4)
aplikacjach MS Windows (3) aplikacjach MS Windows (4)
Komunikaty niezidentyfikowane (nieobsługiwane) Programowanie na poziomie funkcji API ma
Komunikaty niezidentyfikowane (nieobsługiwane) Programowanie na poziomie funkcji API ma
przez funkcję okienkową przekazywane są charakter niskopoziomowy, toteż w celu
przez funkcję okienkową przekazywane są charakter niskopoziomowy, toteż w celu
domyślnej funkcji okienkowej DefWindowProc. zwiększenia efektywności programowania
domyślnej funkcji okienkowej DefWindowProc. zwiększenia efektywności programowania
opracowano wiele narzędzi wspomagających
opracowano wiele narzędzi wspomagających
System Windows udostępnia ponad 1000 funkcji,
System Windows udostępnia ponad 1000 funkcji,
programowanie, jak np. Microsoft Visual Studio,
programowanie, jak np. Microsoft Visual Studio,
tworzących Windows API (ang. Application
tworzących Windows API (ang. Application
Borland C++ Builder czy Delphi.
Borland C++ Builder czy Delphi.
Program Interface), za pomocą których programy
Program Interface), za pomocą których programy
mogą pobierać dane, wyświetlać wyniki w postaci Wszystkie te techniki odwołują się jednak do
mogą pobierać dane, wyświetlać wyniki w postaci Wszystkie te techniki odwołują się jednak do
tekstowej i graficznej, wykonywać operacje na funkcji API, które można traktować jako funkcje
tekstowej i graficznej, wykonywać operacje na funkcji API, które można traktować jako funkcje
pierwotne.
pierwotne.
plikach, korzystać z zasobów systemu i
plikach, korzystać z zasobów systemu i
wykonywać wiele innych czynności.
wykonywać wiele innych czynności.
Maszyny wirtualne (1) Maszyny wirtualne (2)
Maszyny wirtualne (1) Maszyny wirtualne (2)
Maszyny wirtualne są oprogramowaniem Maszyna wirtualna stanowi oprogramowanie
Maszyny wirtualne są oprogramowaniem Maszyna wirtualna stanowi oprogramowanie
symulującym inną maszynę. znajdujące się pomiędzy użytkownikiem a
symulującym inną maszynę. znajdujące się pomiędzy użytkownikiem a
architekturą komputera. Uniezależnia ono pisane
architekturą komputera. Uniezależnia ono pisane
Uniezależniają one programy użytkowe od
Uniezależniają one programy użytkowe od
aplikacje od implementacji, konfiguracji oraz
aplikacje od implementacji, konfiguracji oraz
fizycznej maszyny, na której są uruchamiane.
fizycznej maszyny, na której są uruchamiane.
wykorzystywanych zasobów komputera.
wykorzystywanych zasobów komputera.
Wprowadzenie maszyn wirtualnych umożliwia by te
Wprowadzenie maszyn wirtualnych umożliwia by te
same programy mogły być wykonywane
same programy mogły być wykonywane
efektywnie przez różne systemy komputerowe, bez
efektywnie przez różne systemy komputerowe, bez
konieczności ingerencji w ich kod.
konieczności ingerencji w ich kod.
Maszyna wirtualna może posiadać swój system
Maszyna wirtualna może posiadać swój system
operacyjny, czy tez własny zestaw instrukcji
operacyjny, czy tez własny zestaw instrukcji
różniący sie od tego, który udostępnia fizyczny
różniący sie od tego, który udostępnia fizyczny
komputer znajdujący się warstwie niższej.
komputer znajdujący się warstwie niższej.
6
Maszyny wirtualne (3) Maszyny wirtualne (4)
Maszyny wirtualne (3) Maszyny wirtualne (4)
Maszyny wirtualne zapewniają: M
Maszyny wirtualne zapewniają: M
" kompatybilność różnych platform,
" kompatybilność różnych platform,
" bezpieczeństwo,
" bezpieczeństwo,
" wydajność,
" wydajność,
" prostotę migracji oprogramowania,
" prostotę migracji oprogramowania,
" łatwy dostęp aplikacji do sieci,
" łatwy dostęp aplikacji do sieci,
" uruchamianie starszych programów na nowych
" uruchamianie starszych programów na nowych
platformach  emulacja.
platformach  emulacja.
Maszyny wirtualne (5) Maszyny wirtualne (6)
Maszyny wirtualne (5) Maszyny wirtualne (6)
Korzyści stosowania maszyn wirtualnych Systemy komputerowe składają sie z trzech
Korzyści stosowania maszyn wirtualnych Systemy komputerowe składają sie z trzech
głównych części: sprzętu (hardware), systemu
głównych części: sprzętu (hardware), systemu
" Pełna ochrona zasobów systemowych
" Pełna ochrona zasobów systemowych
operacyjnego (SO) i aplikacji użytkowych.
operacyjnego (SO) i aplikacji użytkowych.
" Pełna izolacja maszyn wirtualnych.
" Pełna izolacja maszyn wirtualnych.
" Komunikacja w wirtualnej sieci (software)
" Komunikacja w wirtualnej sieci (software)
" Doskonała do badań nad SO. ($)
" Doskonała do badań nad SO. ($)
" Symulacja wielu SO na jednej maszynie ...
" Symulacja wielu SO na jednej maszynie ...
" Testowanie zmian (modyfikacji) rzeczywistych
" Testowanie zmian (modyfikacji) rzeczywistych
SO na maszynach wirtualnych
SO na maszynach wirtualnych
" Rozwiązanie problemu zgodności systemów
" Rozwiązanie problemu zgodności systemów
(np.. jak uruchomić DOS na  obcym CPU)
(np.. jak uruchomić DOS na  obcym CPU)
Maszyny wirtualne (7) Maszyny wirtualne (8)
Maszyny wirtualne (7) Maszyny wirtualne (8)
System operacyjny stanowi warstwę pośredniczącą Podane ograniczenia utrudniają migrację
System operacyjny stanowi warstwę pośredniczącą Podane ograniczenia utrudniają migrację
między sprzętem a programami użytkownika. oprogramowania i uniemożliwiają łączenie wielu
między sprzętem a programami użytkownika. oprogramowania i uniemożliwiają łączenie wielu
fizycznych maszyn w wirtualne platformy o
fizycznych maszyn w wirtualne platformy o
Do niektórych zasobów sprzętowych aplikacje mają
Do niektórych zasobów sprzętowych aplikacje mają
zwiększonej mocy obliczeniowej.
zwiększonej mocy obliczeniowej.
dostęp bezpośredni, z pominięciem systemu
dostęp bezpośredni, z pominięciem systemu
operacyjnego. Istnieją jednak takie obszary, do Innym problemem jest konieczność zachowywania
operacyjnego. Istnieją jednak takie obszary, do Innym problemem jest konieczność zachowywania
których program użytkownika ma dostęp tylko i zgodności z przestarzałymi standardami  nowe,
których program użytkownika ma dostęp tylko i zgodności z przestarzałymi standardami  nowe,
wyłącznie poprzez pośrednictwo systemu wydajniejsze oprogramowanie, czy też powstający
wyłącznie poprzez pośrednictwo systemu wydajniejsze oprogramowanie, czy też powstający
operacyjnego. w oparciu o nowe technologie sprzęt traci swoje
operacyjnego. w oparciu o nowe technologie sprzęt traci swoje
zalety na skutek konieczności implementacji go z
zalety na skutek konieczności implementacji go z
Istotnym ograniczeniem podanego modelu jest
Istotnym ograniczeniem podanego modelu jest
przestarzałymi standardami.
przestarzałymi standardami.
możliwość działania tylko w określonych
możliwość działania tylko w określonych
kombinacjach sprzętu i oprogramowania np. Przedstawione problemy mogą być rozwiązane
kombinacjach sprzętu i oprogramowania np. Przedstawione problemy mogą być rozwiązane
aplikacje napisane pod systemy firmy Microsoft nie poprzez zainstalowanie maszyny wirtualnej.
aplikacje napisane pod systemy firmy Microsoft nie poprzez zainstalowanie maszyny wirtualnej.
uruchomią sie na platformach z systemem Linux.
uruchomią sie na platformach z systemem Linux.
7
Maszyny wirtualne (9) Maszyny wirtualne (10)
Maszyny wirtualne (9) Maszyny wirtualne (10)
Maszyna wirtualna jest dodatkową warstwą
Maszyna wirtualna jest dodatkową warstwą
oprogramowania (maszyna abstrakcyjna), która
oprogramowania (maszyna abstrakcyjna), która
symuluje maszynę fizyczną.
symuluje maszynę fizyczną.
Maszyna wirtualna udostępnia dla aplikacji
Maszyna wirtualna udostępnia dla aplikacji
użytkowych i systemów operacyjnych inny zbiór
użytkowych i systemów operacyjnych inny zbiór
instrukcji niż ten, który udostępnia maszyna
instrukcji niż ten, który udostępnia maszyna
fizyczna maszyna, innymi słowy ukrywa warstwę
fizyczna maszyna, innymi słowy ukrywa warstwę
sprzętowa przed programami użytkowymi.
sprzętowa przed programami użytkowymi.
Maszyny wirtualne (11) Maszyny wirtualne (12)
Maszyny wirtualne (11) Maszyny wirtualne (12)
Można wyróżnić cztery konfiguracje komponentów
Można wyróżnić cztery konfiguracje komponentów
systemu, wśród których znajdują sie maszyny
systemu, wśród których znajdują sie maszyny
wirtualne  są to:
wirtualne  są to:
" maszyna wirtualna tłumacząca (emulująca)
" maszyna wirtualna tłumacząca (emulująca)
jeden zestaw instrukcji na inny;
jeden zestaw instrukcji na inny;
" optymalizacja istniejących aplikacji;
" optymalizacja istniejących aplikacji;
" replikacja, możliwość uruchamiania wielu
" replikacja, możliwość uruchamiania wielu
systemów równolegle na jednym komputerze;
systemów równolegle na jednym komputerze;
" kombinacje maszyn wirtualnych.
" kombinacje maszyn wirtualnych.
Klasyfikacja maszyn Klasyfikacja maszyn
Klasyfikacja maszyn Klasyfikacja maszyn
wirtualnych (1) wirtualnych (2)
wirtualnych (1) wirtualnych (2)
Systemowa maszyna wirtualna symuluje
Systemowa maszyna wirtualna symuluje
Kolejny, bardziej zaawansowany przykład tego
Kolejny, bardziej zaawansowany przykład tego
kompletne środowisko, w którym mogą być
kompletne środowisko, w którym mogą być
typu maszyn to systemy pozwalające na
typu maszyn to systemy pozwalające na
uruchamiane procesy. Symuluje system plików,
uruchamiane procesy. Symuluje system plików,
instalowanie wielu systemów operacyjnych na
instalowanie wielu systemów operacyjnych na
daje dostęp do urządzeń wejścia/wyjścia oraz
daje dostęp do urządzeń wejścia/wyjścia oraz
jednym komputerze, niezależnie od różnic w ich
jednym komputerze, niezależnie od różnic w ich
zapewnia mechanizmy do budowy interfejsu
zapewnia mechanizmy do budowy interfejsu
wymaganiach sprzętowych (VMWare). Na przykład
wymaganiach sprzętowych (VMWare). Na przykład
użytkownika.
użytkownika.
umożliwiają zainstalowanie systemu operacyjnego
umożliwiają zainstalowanie systemu operacyjnego
Systemy operacyjne są najprostszym rodzajem MacOS na platformie x86.
Systemy operacyjne są najprostszym rodzajem MacOS na platformie x86.
systemowych maszyn wirtualnych. Udostępniają
systemowych maszyn wirtualnych. Udostępniają
one wszystkie wspomniane wyżej funkcjonalności
one wszystkie wspomniane wyżej funkcjonalności
swoim aplikacjom(system plików, API do budowy
swoim aplikacjom(system plików, API do budowy
interfejsów użytkownika i wiele innych).
interfejsów użytkownika i wiele innych).
8
Klasyfikacja maszyn Klasyfikacja maszyn
Klasyfikacja maszyn Klasyfikacja maszyn
wirtualnych (3) wirtualnych (4)
wirtualnych (3) wirtualnych (4)
Procesowa maszyna wirtualna wspomaga Emulacja i translatory binarne
Procesowa maszyna wirtualna wspomaga Emulacja i translatory binarne
pojedyncze procesy, tzw. procesy goście (guests).
pojedyncze procesy, tzw. procesy goście (guests).
Ten rodzaj maszyn wirtualnych umożliwia
Ten rodzaj maszyn wirtualnych umożliwia
Jest tworzona wraz z procesem gościem i kończy
Jest tworzona wraz z procesem gościem i kończy
uruchomienie aplikacji stworzonych dla innego
uruchomienie aplikacji stworzonych dla innego
swoje działanie wraz z zakończeniem procesu
swoje działanie wraz z zakończeniem procesu
zestawu instrukcji niż ten, na którym są
zestawu instrukcji niż ten, na którym są
gościa.
gościa.
wykonywane. Ze względu na różnice pomiędzy
wykonywane. Ze względu na różnice pomiędzy
Do tej grupy maszyn wirtualnych należą standardem ISA, którego wymaga
Do tej grupy maszyn wirtualnych należą standardem ISA, którego wymaga
optymalizatory, translatory czy tez maszyny oprogramowanie a standardem, który udostępnia
optymalizatory, translatory czy tez maszyny oprogramowanie a standardem, który udostępnia
wirtualne z językiem wysokiego poziomu, których warstwa sprzętowa maszyna wirtualna pełni rolę
wirtualne z językiem wysokiego poziomu, których warstwa sprzętowa maszyna wirtualna pełni rolę
przykładem jest maszyna Java. tłumacza instrukcji dwóch różnych standardów
przykładem jest maszyna Java. tłumacza instrukcji dwóch różnych standardów
ISA.
ISA.
Klasyfikacja maszyn Klasyfikacja maszyn
Klasyfikacja maszyn Klasyfikacja maszyn
wirtualnych (5) wirtualnych (6)
wirtualnych (5) wirtualnych (6)
Drugim szybszym podejściem jest tłumaczenie bloków
Drugim szybszym podejściem jest tłumaczenie bloków
Tłumaczenie może odbywać się na zasadzie
Tłumaczenie może odbywać się na zasadzie
instrukcji na równoważne polecenia innego standardu ISA.
instrukcji na równoważne polecenia innego standardu ISA.
interpretacji instrukcji, które polega na pobraniu
interpretacji instrukcji, które polega na pobraniu
Jest to wydajniejsze rozwiązanie, raz przetłumaczone bloki
Jest to wydajniejsze rozwiązanie, raz przetłumaczone bloki
instrukcji jednego ISA zdekodowaniu i zamianie jej
instrukcji jednego ISA zdekodowaniu i zamianie jej
mogą być zapamiętywane i ponownie wykorzystywane. Takie
mogą być zapamiętywane i ponownie wykorzystywane. Takie
na równoważne instrukcje drugiego standardu ISA.
na równoważne instrukcje drugiego standardu ISA.
translatory określa się mianem dynamicznych translatorów
translatory określa się mianem dynamicznych translatorów
binarnych. Interpretacje cechuje niewielki narzut na starcie
binarnych. Interpretacje cechuje niewielki narzut na starcie
Jest to najprostsze i jednocześnie dość
Jest to najprostsze i jednocześnie dość
(start-up time) ale tłumaczenie każdej, pojedynczej instrukcji
(start-up time) ale tłumaczenie każdej, pojedynczej instrukcji
nieefektywne podejście ponieważ wymaga
nieefektywne podejście ponieważ wymaga
jest procesem dość powolnym. W przypadku translacji
jest procesem dość powolnym. W przypadku translacji
dopasowania dla jednej instrukcji wielu innych,
dopasowania dla jednej instrukcji wielu innych,
binarnej mamy do czynienia z dużym narzutem startowym,
binarnej mamy do czynienia z dużym narzutem startowym,
które dadzą ten sam rezultat w innym ISA.
które dadzą ten sam rezultat w innym ISA.
ale za to w pózniejszej fazie tłumaczenia możemy
ale za to w pózniejszej fazie tłumaczenia możemy
wykorzystywać zapamiętane i przetłumaczone wcześniej
wykorzystywać zapamiętane i przetłumaczone wcześniej
instrukcje.
instrukcje.
Klasyfikacja maszyn Klasyfikacja maszyn
Klasyfikacja maszyn Klasyfikacja maszyn
wirtualnych (7) wirtualnych (8)
wirtualnych (7) wirtualnych (8)
Dynamiczne optymalizatory nie tylko zajmują się Maszyny wirtualne wysokiego poziomu
Dynamiczne optymalizatory nie tylko zajmują się Maszyny wirtualne wysokiego poziomu
tłumaczeniem kodu ale również dokonują pewnych
tłumaczeniem kodu ale również dokonują pewnych
Zaprezentowane wyżej maszyny wirtualne
Zaprezentowane wyżej maszyny wirtualne
optymalizacji kodu dla platformy docelowej.
optymalizacji kodu dla platformy docelowej.
pozwalają na osiągnięcie przenośności między
pozwalają na osiągnięcie przenośności między
Znajdują zastosowanie w przypadku gdy proces
Znajdują zastosowanie w przypadku gdy proces
platformami, jednak jest ona w praktyce trudna do
platformami, jednak jest ona w praktyce trudna do
gościa i gospodarza posługują sie tym samym
gościa i gospodarza posługują sie tym samym
osiągnięcia. Wymaga stworzenia maszyn
osiągnięcia. Wymaga stworzenia maszyn
zestawem instrukcji, a ich celem jest wyłącznie
zestawem instrukcji, a ich celem jest wyłącznie
wirtualnych dla każdego rodzaju pliku binarnego i
wirtualnych dla każdego rodzaju pliku binarnego i
optymalizacja kodu albo pozyskiwanie danych o
optymalizacja kodu albo pozyskiwanie danych o
dla każdej platformy. Co sprowadza sie do
dla każdej platformy. Co sprowadza sie do
jego sposobie działania.
jego sposobie działania.
utworzenia liczby maszyn równej ilości kombinacji
utworzenia liczby maszyn równej ilości kombinacji
platform i rodzajów plików binarnych.
platform i rodzajów plików binarnych.
9
Klasyfikacja maszyn Klasyfikacja maszyn
Klasyfikacja maszyn Klasyfikacja maszyn
wirtualnych (9) wirtualnych (10)
wirtualnych (9) wirtualnych (10)
Przenośność między platformową jest dużo łatwiej W tradycyjnym podejściu kompilator tworzy kod
Przenośność między platformową jest dużo łatwiej W tradycyjnym podejściu kompilator tworzy kod
osiągnąć, przy zastosowaniu języka wysokiego pośredni, podobny do kodu maszynowego lecz
osiągnąć, przy zastosowaniu języka wysokiego pośredni, podobny do kodu maszynowego lecz
poziomu. Wiąże się to oczywiście z koniecznoscią nieco bardziej abstrakcyjny. Następnie z kodu
poziomu. Wiąże się to oczywiście z koniecznoscią nieco bardziej abstrakcyjny. Następnie z kodu
uwzględnienia przenośności w procesie pośredniego tworzony jest kod dla konkretnego
uwzględnienia przenośności w procesie pośredniego tworzony jest kod dla konkretnego
projektowania i tworzenia oprogramowania. ISA i systemu operacyjnego (object code). Tak
projektowania i tworzenia oprogramowania. ISA i systemu operacyjnego (object code). Tak
powstały kod jest następnie wykonywany na
powstały kod jest następnie wykonywany na
Aplikacje pisane w oparciu o HLL (High Level
Aplikacje pisane w oparciu o HLL (High Level
platformach z odpowiednia kombinacja ISA i
platformach z odpowiednia kombinacja ISA i
Language) są niezależne od platformy sprzętowej.
Language) są niezależne od platformy sprzętowej.
systemu operacyjnego.
systemu operacyjnego.
Klasyfikacja maszyn Klasyfikacja maszyn
Klasyfikacja maszyn Klasyfikacja maszyn
wirtualnych (11) wirtualnych (12)
wirtualnych (11) wirtualnych (12)
W celu wykonania go na innej platformie musi on W najprostszym przypadku maszyna wirtualna
W celu wykonania go na innej platformie musi on W najprostszym przypadku maszyna wirtualna
zostać ponownie skompilowany dla tej konkretnej zawiera interpreter, który po zdekodowaniu kodu
zostać ponownie skompilowany dla tej konkretnej zawiera interpreter, który po zdekodowaniu kodu
platformy. W podejściu wykorzystującym język pośredniego wykonuje go w oparciu o zestaw
platformy. W podejściu wykorzystującym język pośredniego wykonuje go w oparciu o zestaw
wysokiego poziomu etap dystrybucji kodu jest instrukcji danej platformy.
wysokiego poziomu etap dystrybucji kodu jest instrukcji danej platformy.
osiągany wcześniej niż w przypadku modelu
osiągany wcześniej niż w przypadku modelu
Możliwe jest również przekompilowanie kodu
Możliwe jest również przekompilowanie kodu
konwencjonalnego.
konwencjonalnego.
pośredniego do postaci wykonywanej na danej
pośredniego do postaci wykonywanej na danej
Efektem pracy kompilatora jest kod pośredni, platformie - tak czynią bardziej zaawansowane
Efektem pracy kompilatora jest kod pośredni, platformie - tak czynią bardziej zaawansowane
który może być przenoszony pomiędzy różnymi maszyny wirtualne, korzystające z kompilacji Just-
który może być przenoszony pomiędzy różnymi maszyny wirtualne, korzystające z kompilacji Just-
platformami i wykonywany na nich o ile są one In-Time (maszyna wirtualna Java, .Net
platformami i wykonywany na nich o ile są one In-Time (maszyna wirtualna Java, .Net
wyposażone w odpowiednia maszynę wirtualna. Framework).
wyposażone w odpowiednia maszynę wirtualna. Framework).
System operacyjny jako System operacyjny jako
System operacyjny jako System operacyjny jako
maszyna wirtualna (1) maszyna wirtualna (2)
maszyna wirtualna (1) maszyna wirtualna (2)
System operacyjny jest maszyną wirtualną
System operacyjny jest maszyną wirtualną
działająca bezpośrednio na realnej maszynie Dzięki umiejętnemu przydzielaniu czasu pracy
działająca bezpośrednio na realnej maszynie Dzięki umiejętnemu przydzielaniu czasu pracy
(procesorze, pamięci, układach we-wy). procesora możliwe jest współbieżne wykonywanie
(procesorze, pamięci, układach we-wy). procesora możliwe jest współbieżne wykonywanie
procesów  z punktu widzenia użytkownika
procesów  z punktu widzenia użytkownika
Tworzy on warstwę abstrakcji, która ukrywa
Tworzy on warstwę abstrakcji, która ukrywa
uruchomione aplikacje działają równolegle, chociaż
uruchomione aplikacje działają równolegle, chociaż
skomplikowanie funkcjonowanie sprzętu i pozwala
skomplikowanie funkcjonowanie sprzętu i pozwala
w danej chwili czasu procesor wykonuje kod tylko
w danej chwili czasu procesor wykonuje kod tylko
stosunkowo łatwo odwoływać się do zasobów
stosunkowo łatwo odwoływać się do zasobów
jednego procesu (jeśli w komputerze jest tylko
jednego procesu (jeśli w komputerze jest tylko
sprzętowych.
sprzętowych.
jedne procesor (rdzeń)).
jedne procesor (rdzeń)).
Dane zapisane w sektorach dysku twardego
Dane zapisane w sektorach dysku twardego
Uruchamianie procesów, zapis (odczyt) danych do
Uruchamianie procesów, zapis (odczyt) danych do
widziane są jako pliki z poziomu systemu
widziane są jako pliki z poziomu systemu
(z) pamięci zewnętrznej i układów we/wy odbywa
(z) pamięci zewnętrznej i układów we/wy odbywa
operacyjnego.
operacyjnego.
się poprzez funkcje systemowe.
się poprzez funkcje systemowe.
Z poziomu systemu operacyjnego układy we-wy są
Z poziomu systemu operacyjnego układy we-wy są
obsługiwane w jednolicie, niezależnie od ich
obsługiwane w jednolicie, niezależnie od ich
fizycznego działania.
fizycznego działania.
10
Zagadnienia przydziału Zagadnienia przydziału
Zagadnienia przydziału Zagadnienia przydziału
procesora (1) procesora (2)
procesora (1) procesora (2)
W prostym systemie proces wykonywany jest do Procesor stanowi jeden z zasobów systemu i
W prostym systemie proces wykonywany jest do Procesor stanowi jeden z zasobów systemu i
chwili, w której będzie musiał czekać, zazwyczaj na racjonalne planowanie jego przydzielania stanowi
chwili, w której będzie musiał czekać, zazwyczaj na racjonalne planowanie jego przydzielania stanowi
zakończenie operacji wejścia-wyjścia  procesor warunek efektywnej pracy systemu.
zakończenie operacji wejścia-wyjścia  procesor warunek efektywnej pracy systemu.
jest wtedy bezczynny, a czas oczekiwania jest
jest wtedy bezczynny, a czas oczekiwania jest
Zatem dzięki przełączaniu procesora do innych
Zatem dzięki przełączaniu procesora do innych
marnowany, procesor nie wykonuje żadnej
marnowany, procesor nie wykonuje żadnej
procesów system operacyjny może zwiększyć
procesów system operacyjny może zwiększyć
użytecznej pracy.
użytecznej pracy.
wydajność komputera.
wydajność komputera.
Poprzez wprowadzenie możliwości wykonywania
Poprzez wprowadzenie możliwości wykonywania
Gdy procesor zaczyna być bezczynny, system
Gdy procesor zaczyna być bezczynny, system
wielu procesów dąży się do produktywnego
wielu procesów dąży się do produktywnego
operacyjny musi wybrać do wykonywania jakiś
operacyjny musi wybrać do wykonywania jakiś
spożytkowania tego czasu  kiedy jakiś proces
spożytkowania tego czasu  kiedy jakiś proces
proces z kolejki procesów gotowych  wyboru
proces z kolejki procesów gotowych  wyboru
musi czekać, wtedy system operacyjny odbiera mu
musi czekać, wtedy system operacyjny odbiera mu
dokonuje planista krótkoterminowy, czyli planista
dokonuje planista krótkoterminowy, czyli planista
procesor i oddaje do dyspozycji innego procesu.
procesor i oddaje do dyspozycji innego procesu.
przydziału procesora  planista ten wybiera jeden
przydziału procesora  planista ten wybiera jeden
proces spośród przebywających w pamięci i
proces spośród przebywających w pamięci i
przydziela mu procesor.
przydziela mu procesor.
Zagadnienia przydziału Zagadnienia przydziału
Zagadnienia przydziału Zagadnienia przydziału
procesora (3) procesora (4)
procesora (3) procesora (4)
Decyzje o przydziale procesora mogą zapadać w W sytuacjach 1 i 4 nie ma wyboru  procesor musi
Decyzje o przydziale procesora mogą zapadać w W sytuacjach 1 i 4 nie ma wyboru  procesor musi
następujących sytuacjach: być przydzielony innemu procesowi, który oczekuje
następujących sytuacjach: być przydzielony innemu procesowi, który oczekuje
w kolejce procesów gotowych, natomiast w
w kolejce procesów gotowych, natomiast w
1. proces przeszedł ze stanu aktywności do stanu
1. proces przeszedł ze stanu aktywności do stanu
sytuacjach 2 i 3 można dokonać wyboru.
sytuacjach 2 i 3 można dokonać wyboru.
czekania (np. oczekując na zakończenie
czekania (np. oczekując na zakończenie
operacji wejścia-wyjścia); Jeśli przełączanie procesów następuje tylko w
operacji wejścia-wyjścia); Jeśli przełączanie procesów następuje tylko w
przypadkach 1 i 4, to mówimy, że stosowany jest
przypadkach 1 i 4, to mówimy, że stosowany jest
2. proces przeszedł od stanu aktywności do stanu
2. proces przeszedł od stanu aktywności do stanu
schemat planowania bez wywłaszczania (ang.
schemat planowania bez wywłaszczania (ang.
gotowości (np. wskutek wystąpienia
gotowości (np. wskutek wystąpienia
nonpreemptive)  w przeciwnym razie algorytm
nonpreemptive)  w przeciwnym razie algorytm
przerwania);
przerwania);
planowania jest wywłaszczeniowy (ang. preemptive).
planowania jest wywłaszczeniowy (ang. preemptive).
3. proces przeszedł od stanu czekania do stanu
3. proces przeszedł od stanu czekania do stanu
W planowaniu bez wywłaszczeń proces, który
W planowaniu bez wywłaszczeń proces, który
gotowości (np. wskutek zakończenia operacji
gotowości (np. wskutek zakończenia operacji
otrzyma procesor zachowuje go dopóty, dopóki nie
otrzyma procesor zachowuje go dopóty, dopóki nie
wejścia-wyjścia);
wejścia-wyjścia);
odda go z powodu swojego zakończenia lub
odda go z powodu swojego zakończenia lub
4. proces kończy działanie.
4. proces kończy działanie.
przejścia do stanu czekania.
przejścia do stanu czekania.
Wybrane algorytmy planowania Wybrane algorytmy planowania
Wybrane algorytmy planowania Wybrane algorytmy planowania
przydziału procesora (1) przydziału procesora (2)
przydziału procesora (1) przydziału procesora (2)
Metoda FCFS  pierwszy zgłoszony, pierwszy Metoda SJF  najpierw najkrótsze zadanie
Metoda FCFS  pierwszy zgłoszony, pierwszy Metoda SJF  najpierw najkrótsze zadanie
obsłużony (ang. First Come  First Served) (ang. Shortest Job First)
obsłużony (ang. First Come  First Served) (ang. Shortest Job First)
Proces, który pierwszy zamówi procesor, pierwszy SJF (shortest job first)  początkowe miejsca w
Proces, który pierwszy zamówi procesor, pierwszy SJF (shortest job first)  początkowe miejsca w
go otrzyma. kolejce zajmują procesy charakteryzujące się
go otrzyma. kolejce zajmują procesy charakteryzujące się
najkrótszym czasem wykonania.
najkrótszym czasem wykonania.
Algorytm ten implementuje się łatwo za pomocą
Algorytm ten implementuje się łatwo za pomocą
kolejki FIFO. Algorytm SJF może być wywłaszczający lub
kolejki FIFO. Algorytm SJF może być wywłaszczający lub
niewywłaszczający.
niewywłaszczający.
Algorytm ten należy do algorytmów
Algorytm ten należy do algorytmów
niewywłaszczających.
niewywłaszczających.
Wadą tego algorytmu jest długi średni czas
Wadą tego algorytmu jest długi średni czas
oczekiwania.
oczekiwania.
11
Wybrane algorytmy planowania Systemy czasu
Wybrane algorytmy planowania Systemy czasu
przydziału procesora (3)
przydziału procesora (3)
rzeczywistego (1)
rzeczywistego (1)
Systemy czasu rzeczywistego (ang. real-time)
Systemy czasu rzeczywistego (ang. real-time)
Planowanie priorytetowe
Planowanie priorytetowe
stanowią specjalizowany rodzaj systemów
stanowią specjalizowany rodzaj systemów
Każdy proces ma przypisany pewien priorytet.
Każdy proces ma przypisany pewien priorytet.
operacyjnych, w których występują surowe
operacyjnych, w których występują surowe
Procesor otrzymuje proces o najwyższym
Procesor otrzymuje proces o najwyższym
wymagania na czas wykonania operacji lub
wymagania na czas wykonania operacji lub
priorytecie.
priorytecie.
przepływu danych.
przepływu danych.
Algorytm planowania priorytetowego może być
Algorytm planowania priorytetowego może być
Systemy czasu rzeczywistego stosowane są do
Systemy czasu rzeczywistego stosowane są do
wywłaszczający lub niewywłaszczający.
wywłaszczający lub niewywłaszczający.
komputerowego sterowania procesami
komputerowego sterowania procesami
przemysłowymi, ruchem pojazdów, w urządzeniach
przemysłowymi, ruchem pojazdów, w urządzeniach
medycznych, wojskowych i wielu innych.
medycznych, wojskowych i wielu innych.
W systemach czasu rzeczywistego przetwarzanie
W systemach czasu rzeczywistego przetwarzanie
danych musi (!) zakończyć się przed upływem
danych musi (!) zakończyć się przed upływem
określonego czasu, w przeciwnym razie system nie
określonego czasu, w przeciwnym razie system nie
spełnia wymagań.
spełnia wymagań.
Systemy czasu Systemy czasu
Systemy czasu Systemy czasu
rzeczywistego (2) rzeczywistego (3)
rzeczywistego (2) rzeczywistego (3)
Istnieją dwie odmiany systemów czasu Systemy rygorystyczne, ze względu na ostre
Istnieją dwie odmiany systemów czasu Systemy rygorystyczne, ze względu na ostre
rzeczywistego: wymagania czasowe i konieczność ograniczenia
rzeczywistego: wymagania czasowe i konieczność ograniczenia
wszystkich opóznień w systemie, nie mają
wszystkich opóznień w systemie, nie mają
" rygorystyczny system czasu rzeczywistego (ang.
" rygorystyczny system czasu rzeczywistego (ang.
większości cech nowoczesnych systemów
większości cech nowoczesnych systemów
hard real time system) gwarantuje terminowe
hard real time system) gwarantuje terminowe
operacyjnych, a ponadto cechują je liczne
operacyjnych, a ponadto cechują je liczne
wypełnianie krytycznych zadań;
wypełnianie krytycznych zadań;
ograniczenia, np. pamięć pomocnicza jest bardzo
ograniczenia, np. pamięć pomocnicza jest bardzo
" łagodny system czasu rzeczywistego (ang. soft
" łagodny system czasu rzeczywistego (ang. soft
mała lub nie występuje wcale, nie używa się także
mała lub nie występuje wcale, nie używa się także
real-time system) jest mniej wymagający:
real-time system) jest mniej wymagający:
pamięci wirtualnej.
pamięci wirtualnej.
krytyczne zadanie do obsługi w czasie
krytyczne zadanie do obsługi w czasie
Żaden z istniejących, uniwersalnych systemów
Żaden z istniejących, uniwersalnych systemów
rzeczywistym otrzymuje pierwszeństwo przed
rzeczywistym otrzymuje pierwszeństwo przed
operacyjnych nie umożliwia działania w czasie
operacyjnych nie umożliwia działania w czasie
innymi zadaniami, przy czym pierwszeństwo
innymi zadaniami, przy czym pierwszeństwo
rzeczywistym w sensie rygorystycznym, jedynie
rzeczywistym w sensie rygorystycznym, jedynie
zostaje zachowane aż do chwili wykonania
zostaje zachowane aż do chwili wykonania
specjalizowane odmiany systemu Linux i Windows
specjalizowane odmiany systemu Linux i Windows
zadania.
zadania.
w pewnym stopniu mogą być brany pod uwagę.
w pewnym stopniu mogą być brany pod uwagę.
Systemy czasu Zadania systemu
Systemy czasu Zadania systemu
rzeczywistego (4) operacyjnego (1)
rzeczywistego (4) operacyjnego (1)
Systemy łagodne znajdują zastosowanie w mniej
Systemy łagodne znajdują zastosowanie w mniej
Zadaniem systemu operacyjnego jest tworzenie
Zadaniem systemu operacyjnego jest tworzenie
odpowiedzialnych rolach, np. w technice
odpowiedzialnych rolach, np. w technice
środowiska, w którym użytkownik może
środowiska, w którym użytkownik może
multimedialnej; większość uniwersalnych
multimedialnej; większość uniwersalnych
wykonywać programy w wygodny i wydajny
wykonywać programy w wygodny i wydajny
systemów operacyjnych spełnia wymagania
systemów operacyjnych spełnia wymagania
sposób.
sposób.
systemów łagodnych.
systemów łagodnych.
Dalej omawiane są składniki stanowiące zadania
Dalej omawiane są składniki stanowiące zadania
systemu operacyjnego. Wymienione składniki
systemu operacyjnego. Wymienione składniki
systemu, realizując swoje zadania, udostępniają
systemu, realizując swoje zadania, udostępniają
jednocześnie funkcje usługowe dla wykonywanych
jednocześnie funkcje usługowe dla wykonywanych
programów.
programów.
12
Zadania systemu Zadania systemu
Zadania systemu Zadania systemu
operacyjnego (2) operacyjnego (3)
operacyjnego (2) operacyjnego (3)
1. Zarządzanie procesami (własnymi i 2. Zarządzanie pamięcią operacyjną
1. Zarządzanie procesami (własnymi i 2. Zarządzanie pamięcią operacyjną
użytkowników):
użytkowników):
" zarządzanie pamięcią wirtualną;
" zarządzanie pamięcią wirtualną;
" tworzenie i usuwanie procesów (przydzielenie
" tworzenie i usuwanie procesów (przydzielenie
" utrzymywanie ewidencji zajętych aktualnie
" utrzymywanie ewidencji zajętych aktualnie
pamięci lokalnej procesu, wpisanie do tablic
pamięci lokalnej procesu, wpisanie do tablic
bloków pamięci głównej (operacyjnej) wraz z
bloków pamięci głównej (operacyjnej) wraz z
systemowych i związanie jej z kodem
systemowych i związanie jej z kodem
informacją przypisania ich do procesów;
informacją przypisania ich do procesów;
wykonywalnym programu procesu,
wykonywalnym programu procesu,
" podejmowanie decyzji o przydzieleniu wolnych
" podejmowanie decyzji o przydzieleniu wolnych
umieszczenie w kolejce oczekiwania na przydział
umieszczenie w kolejce oczekiwania na przydział
bloków pamięci głównej;
bloków pamięci głównej;
procesora, itp.);
procesora, itp.);
" dynamiczne przydzielanie i zwalnianie obszarów
" dynamiczne przydzielanie i zwalnianie obszarów
" wstrzymywanie i wznawianie procesów;
" wstrzymywanie i wznawianie procesów;
pamięci głównej w zależności od potrzeb.
pamięci głównej w zależności od potrzeb.
" dostarczanie mechanizmów synchronizacji i
" dostarczanie mechanizmów synchronizacji i
komunikacji procesów;
komunikacji procesów;
" dostarczanie mechanizmów obsługi blokad.
" dostarczanie mechanizmów obsługi blokad.
Zadania systemu Zadania systemu
Zadania systemu Zadania systemu
operacyjnego (4) operacyjnego (5)
operacyjnego (4) operacyjnego (5)
3. Zarządzanie pamięcią pomocniczą 4. Zarządzanie systemem wejścia/wyjścia,
3. Zarządzanie pamięcią pomocniczą 4. Zarządzanie systemem wejścia/wyjścia,
(najczęściej dyskową) składającym się z:
(najczęściej dyskową) składającym się z:
" zarządzanie wolnymi obszarami; " pamięci podręcznej i systemu buforów;
" zarządzanie wolnymi obszarami; " pamięci podręcznej i systemu buforów;
" przydzielanie pamięci; " interfejsu do programów obsługi urządzeń
" przydzielanie pamięci; " interfejsu do programów obsługi urządzeń
we/wy;
we/wy;
" planowanie przydziałów obszarów (porcji)
" planowanie przydziałów obszarów (porcji)
pamięci dyskowej. " programów obsługi poszczególnych urządzeń.
pamięci dyskowej. " programów obsługi poszczególnych urządzeń.
Zadania systemu Zadania systemu
Zadania systemu Zadania systemu
operacyjnego (6) operacyjnego (7)
operacyjnego (6) operacyjnego (7)
5. Zarządzanie plikami 6. Zarządzanie systemem ochrony 
5. Zarządzanie plikami 6. Zarządzanie systemem ochrony 
autoryzacja dostępu.
autoryzacja dostępu.
" tworzenie i usuwanie plików i katalogów;
" tworzenie i usuwanie plików i katalogów;
" dostarczanie podstawowych operacji do
" dostarczanie podstawowych operacji do
manipulowania plikami i katalogami; 7. Obsługa komunikacji sieciowej.
manipulowania plikami i katalogami; 7. Obsługa komunikacji sieciowej.
" odwzorowywanie plików na obszary (porcje)
" odwzorowywanie plików na obszary (porcje)
pamięci pomocniczej;
pamięci pomocniczej;
8. System interpretacji poleceń (shell 
8. System interpretacji poleceń (shell 
" składowanie plików w archiwach. powłoka).
" składowanie plików w archiwach. powłoka).
13
Ewolucja struktury systemu Struktura warstwowa
Ewolucja struktury systemu Struktura warstwowa
operacyjnego systemu operacyjnego (1)
operacyjnego systemu operacyjnego (1)
Powszechnie stosowanym modelem statycznym
Powszechnie stosowanym modelem statycznym
System operacyjny monolityczny stanowi zbiór
System operacyjny monolityczny stanowi zbiór
systemu operacyjnego jest struktura warstwowa,
systemu operacyjnego jest struktura warstwowa,
procedur systemowych nieposiadający w zasadzie
procedur systemowych nieposiadający w zasadzie
w której warstwy niższe oferują pewne funkcje i
w której warstwy niższe oferują pewne funkcje i
żadnej hierarchii. Oznacza to, że wywołanie
żadnej hierarchii. Oznacza to, że wywołanie
usługi warstwom wyższym.
usługi warstwom wyższym.
dowolnej procedury systemowej nie skutkuje
dowolnej procedury systemowej nie skutkuje
Najniższą warstwę SO stanowią programy niskiego
Najniższą warstwę SO stanowią programy niskiego
wywoływaniem innych procedur.
wywoływaniem innych procedur.
poziomu obsługi sprzętu, często wbudowane do
poziomu obsługi sprzętu, często wbudowane do
W systemie operacyjnym warstwowym istnieje
W systemie operacyjnym warstwowym istnieje
pamięci stałej (BIOS).
pamięci stałej (BIOS).
pewna hierarcha zadań, np. alokacja pamięci dla
pewna hierarcha zadań, np. alokacja pamięci dla
Kolejną warstwę stanowi jądro systemu (ang.
Kolejną warstwę stanowi jądro systemu (ang.
procesów ma miejsce dopiero po zakończeniu
procesów ma miejsce dopiero po zakończeniu
kernel), składające się ze zbioru funkcji i tablic
kernel), składające się ze zbioru funkcji i tablic
przydzielania czasu procesora. Wobec czego
przydzielania czasu procesora. Wobec czego
systemowych.
systemowych.
system przeprowadzając przydział pamięci do
system przeprowadzając przydział pamięci do
procesu nie musi się rozstrzygać czy udostępnić Głównym zadaniem jądra jest dostarczenie
procesu nie musi się rozstrzygać czy udostępnić Głównym zadaniem jądra jest dostarczenie
czas procesora dla danego procesu. narzędzi do zarządzania procesami, zarządzania
czas procesora dla danego procesu. narzędzi do zarządzania procesami, zarządzania
pamięcią i zarządzania systemem plików.
pamięcią i zarządzania systemem plików.
Struktura warstwowa Struktura warstwowa
Struktura warstwowa Struktura warstwowa
systemu operacyjnego (2) systemu operacyjnego (3)
systemu operacyjnego (2) systemu operacyjnego (3)
UŻYTKOWNIK
Kolejna warstwa dostarcza programistom narzędzi
Kolejna warstwa dostarcza programistom narzędzi
do odwoływania się do systemu operacyjnego z
do odwoływania się do systemu operacyjnego z
powłoka - shell polecenia programy użytkowe
wnętrza programów, a więc tzw. interfejs
wnętrza programów, a więc tzw. interfejs
programów użytkowych (API ang. Application
programów użytkowych (API ang. Application
interfejs programów użytkowych - odwołania do systemu
Program Interface); korzystają z niego również
Program Interface); korzystają z niego również
programy systemowe, jak np. programy powłok.
programy systemowe, jak np. programy powłok.
Pomiędzy warstwą API i użytkownikiem ulokowano
Pomiędzy warstwą API i użytkownikiem ulokowano
JDRO
zarządzanie procesami
w modelu warstwowym w/w programy powłok,
w modelu warstwowym w/w programy powłok,
zarządzanie pamięcią
programy poleceń systemowych i programy
programy poleceń systemowych i programy
zarządzanie systemem plików
użytkowe jako narzędzia bezpośrednio
użytkowe jako narzędzia bezpośrednio
wykorzystywane przez użytkownika.
PROGRAMY OBSAUGI SPRZTU wykorzystywane przez użytkownika.
SPRZT
Struktura warstwowa Struktura warstwowa
Struktura warstwowa Struktura warstwowa
systemu operacyjnego (4) systemu operacyjnego (5)
systemu operacyjnego (4) systemu operacyjnego (5)
Oprogramowanie użytkowe (narzędziowe) to Z modelem warstwowym związana jest koncepcja
Oprogramowanie użytkowe (narzędziowe) to Z modelem warstwowym związana jest koncepcja
różnego rodzaju edytory tekstowe, translatory hierarchii maszyn wirtualnych, tworzących
różnego rodzaju edytory tekstowe, translatory hierarchii maszyn wirtualnych, tworzących
(kompilatory) języków programowania, programy abstrakcyjny ciąg modeli systemów
(kompilatory) języków programowania, programy abstrakcyjny ciąg modeli systemów
łączące (konsolidatory, linkery), programy komputerowych  każda kolejna warstwa
łączące (konsolidatory, linkery), programy komputerowych  każda kolejna warstwa
uruchomieniowe, programy wspomagające lub wzbogaca sprzęt o nowe własności, dając ciekawe
uruchomieniowe, programy wspomagające lub wzbogaca sprzęt o nowe własności, dając ciekawe
wręcz tworzące interfejs użytkownika itp. implikacje w przypadku systemów
wręcz tworzące interfejs użytkownika itp. implikacje w przypadku systemów
wielozadaniowych (różne maszyny dla różnych
wielozadaniowych (różne maszyny dla różnych
Na ogół zakłada się, że każda warstwa może
Na ogół zakłada się, że każda warstwa może
zadań).
zadań).
komunikować się tylko z warstwami sąsiednimi
komunikować się tylko z warstwami sąsiednimi
(tzn. korzystać z usług warstwy niższej i
(tzn. korzystać z usług warstwy niższej i
udostępniać usługi warstwie wyższej)  jednak to
udostępniać usługi warstwie wyższej)  jednak to
założenie jest bardzo trudne w praktycznej
założenie jest bardzo trudne w praktycznej
realizacji i często stosuje się jedynie podejście
realizacji i często stosuje się jedynie podejście
przybliżone.
przybliżone.
14
Struktura warstwowa Struktura warstwowa
Struktura warstwowa Struktura warstwowa
systemu operacyjnego (6) systemu operacyjnego (7)
systemu operacyjnego (6) systemu operacyjnego (7)
Ze względu na potrzebę przenośności Implementacja poleceń systemowych za pomocą
Ze względu na potrzebę przenośności Implementacja poleceń systemowych za pomocą
oprogramowania użytkowego istotne jest programów wykonywalnych oraz łatwość
oprogramowania użytkowego istotne jest programów wykonywalnych oraz łatwość
korzystanie z mechanizmów systemowych na dodawania nowych poleceń stanowią o dużej
korzystanie z mechanizmów systemowych na dodawania nowych poleceń stanowią o dużej
określonym poziomie, np. wyłącznie za elastyczności systemu operacyjnego Unix.
określonym poziomie, np. wyłącznie za elastyczności systemu operacyjnego Unix.
pośrednictwem odwołań API (w wielu systemach
pośrednictwem odwołań API (w wielu systemach
System może być modyfikowany tak, by najlepiej
System może być modyfikowany tak, by najlepiej
operacyjnych, w tym w UNIXie, jest to jedyna
operacyjnych, w tym w UNIXie, jest to jedyna
wykonywał zadania, do których jest przeznaczony,
wykonywał zadania, do których jest przeznaczony,
możliwość uzyskania usług systemowych).
możliwość uzyskania usług systemowych).
oraz dobrze służył wspólnocie swoich
oraz dobrze służył wspólnocie swoich
użytkowników.
użytkowników.
Tryb uprzywilejowany i tryb Tryb uprzywilejowany i tryb
Tryb uprzywilejowany i tryb Tryb uprzywilejowany i tryb
użytkownika (1) użytkownika (2)
użytkownika (1) użytkownika (2)
Tryb uprzywilejowany zabezpiecza system
Tryb uprzywilejowany zabezpiecza system
Ze względów bezpieczeństwa system operacyjny w
Ze względów bezpieczeństwa system operacyjny w
operacyjny przed nieprawidłowo działającymi
operacyjny przed nieprawidłowo działającymi
pracuje w jednym z dwóch możliwych trybów:
pracuje w jednym z dwóch możliwych trybów:
aplikacjami, wykorzystuje przy tym sprzętowe
aplikacjami, wykorzystuje przy tym sprzętowe
" Tryb uprzywilejowany, w którym system
" Tryb uprzywilejowany, w którym system
wsparcie w procesorze.
wsparcie w procesorze.
wykonuje operacje zastrzeżone wyłącznie dla
wykonuje operacje zastrzeżone wyłącznie dla
Aplikacje działające w trybie użytkownika nie mogą
Aplikacje działające w trybie użytkownika nie mogą
jądra.
jądra.
wykonywać szkodliwych operacji:
wykonywać szkodliwych operacji:
" Tryb użytkownika  wykonywania wykonuje
" Tryb użytkownika  wykonywania wykonuje
" modyfikowanie pamięci innych procesów,
" modyfikowanie pamięci innych procesów,
operacje dozwolone z poziomu powłoki.
operacje dozwolone z poziomu powłoki.
" monopolizowanie procesora,
" monopolizowanie procesora,
" odczyt z dysku zabezpieczonych plików,
" odczyt z dysku zabezpieczonych plików,
" bezpośredni dostęp do urządzeń zewnętrznych.
" bezpośredni dostęp do urządzeń zewnętrznych.
Tryb uprzywilejowany i tryb
Tryb uprzywilejowany i tryb
użytkownika (3)
użytkownika (3)
Pewne instrukcje procesora mogą być wykonane
Pewne instrukcje procesora mogą być wykonane
tylko w trybie uprzywilejowanym
tylko w trybie uprzywilejowanym
Aplikacje nie wykonują operacji wejścia/wyjścia
Aplikacje nie wykonują operacji wejścia/wyjścia
" zgłaszają żądania do jądra systemu,
" zgłaszają żądania do jądra systemu,
" parametry żądania są weryfikowane,
" parametry żądania są weryfikowane,
" wykonywane tylko jeśli uznane za bezpieczne.
" wykonywane tylko jeśli uznane za bezpieczne.
Procesor przechodzi w tryb uprzywilejowany
Procesor przechodzi w tryb uprzywilejowany
poprzez wywołanie odpowiedniej funkcji
poprzez wywołanie odpowiedniej funkcji
systemowej.
systemowej.
15


Wyszukiwarka

Podobne podstrony:
SO wyklad cz3
Sieci komputerowe wyklady dr Furtak
Wykład 05 Opadanie i fluidyzacja
WYKŁAD 1 Wprowadzenie do biotechnologii farmaceutycznej
mo3 wykladyJJ
ZARZĄDZANIE WARTOŚCIĄ PRZEDSIĘBIORSTWA Z DNIA 26 MARZEC 2011 WYKŁAD NR 3
Wyklad 2 PNOP 08 9 zaoczne
Wyklad studport 8
Kryptografia wyklad
Budownictwo Ogolne II zaoczne wyklad 13 ppoz
wyklad09
Sporzadzanie rachunku przepływów pienieżnych wykład 1 i 2

więcej podobnych podstron