System wejścia-wyjścia
System wejścia-wyjścia
Trzy rodzaje urządzeń wejścia
Trzy rodzaje urządzeń wejścia
-
-
wyjścia:
wyjścia:
Urządzenia pamięci (dyski, taśmy)
Urządzenia pamięci (dyski, taśmy)
Urządzenia przesyłania danych (karty sieciowe,
Urządzenia przesyłania danych (karty sieciowe,
modemy)
modemy)
Urządzenia komunikacji z człowiekiem (klawiatury,
Urządzenia komunikacji z człowiekiem (klawiatury,
myszy, monitory)
myszy, monitory)
Różnice między urządzeniami we-wy
Różnice między urządzeniami we-wy
Urządzenie znakowe
Urządzenie znakowe
-
-
przesyła bajty (znaki) z osobna jeden za
przesyła bajty (znaki) z osobna jeden za
drugim (terminal)
drugim (terminal)
Urządzenie blokowe
Urządzenie blokowe
-
-
przesyła jednorazowo całe bloki (dysk)
przesyła jednorazowo całe bloki (dysk)
Dostęp sekwencyjny
Dostęp sekwencyjny
-
-
dane przesyłane kolejno w sposób
dane przesyłane kolejno w sposób
uporządkowany (modem)
uporządkowany (modem)
Dostęp swobodny
Dostęp swobodny
-
-
można mieć dostęp do danych w różnych
można mieć dostęp do danych w różnych
miejscach, niekoniecznie kolejno (CD
miejscach, niekoniecznie kolejno (CD
-
-
ROM)
ROM)
Przesyłanie synchroniczne
Przesyłanie synchroniczne
-
-
taktowane zegarem (taśma)
taktowane zegarem (taśma)
przesyłanie asynchroniczne
przesyłanie asynchroniczne
-
-
w nieokreślonych chwilach
w nieokreślonych chwilach
czasu, sterowane startem i stopem (klawiatura)
czasu, sterowane startem i stopem (klawiatura)
Urządzenie dzielone
Urządzenie dzielone
-
-
przez kilka procesów (dysk)
przez kilka procesów (dysk)
Wyłączne
Wyłączne
-
-
tylko dla jednego użytkownika (taśma)
tylko dla jednego użytkownika (taśma)
Szybkość działania
Szybkość działania
-
-
od B/s do GB/s
od B/s do GB/s
Kierunek przesyłania
Kierunek przesyłania
-
-
czytanie, pisanie lub czytanie i pisanie
czytanie, pisanie lub czytanie i pisanie
Sterowanie urządzeniami wejścia-wyjścia
Sterowanie urządzeniami wejścia-wyjścia
Przekazywanie poleceń z procesora do sterownika:
Przekazywanie poleceń z procesora do sterownika:
Sterownik posiada rejestry do pamiętania danych i sygnałów
Sterownik posiada rejestry do pamiętania danych i sygnałów
sterujących. Procesor pisze i czyta do rejestrów w sterowniku.
sterujących. Procesor pisze i czyta do rejestrów w sterowniku.
Procesor posiada specjalne rozkazy do pisania i czytania
Procesor posiada specjalne rozkazy do pisania i czytania
portów,
portów,
Operacje we
Operacje we
-
-
wy odbywają się w pamięci
wy odbywają się w pamięci
-
-
rejestry są
rejestry są
odwzorowywane w przestrzeni adresowej procesora.
odwzorowywane w przestrzeni adresowej procesora.
W komputerach IBM PC zastosowane są obydwie metody:
Dla kontrolera grafiki
Dla kontrolera grafiki
-
-
ekran odwzorowany w pamięci
ekran odwzorowany w pamięci
Dla portów szeregowych
Dla portów szeregowych
-
-
rejestry we
rejestry we
-
-
wy i bufory
wy i bufory
Port wejścia-wyjścia
Port wejścia-wyjścia
Stan (czytane przez procesor: zakończenie wykonywania
Stan (czytane przez procesor: zakończenie wykonywania
polecenia, dostępność
polecenia, dostępność
bajtu
bajtu
do czytania, błąd urządzenia)
do czytania, błąd urządzenia)
Sterowanie (zapisywane przez procesor: rozpoczęcie polecenia,
Sterowanie (zapisywane przez procesor: rozpoczęcie polecenia,
zmiana trybu pracy urządzenia)
zmiana trybu pracy urządzenia)
Dane wejściowe (czytane przez procesor dane właściwe)
Dane wejściowe (czytane przez procesor dane właściwe)
Dane wyjściowe (zapisywane przez procesor dane dla
Dane wyjściowe (zapisywane przez procesor dane dla
urządzenia)
urządzenia)
Układ FIFO
Układ FIFO
-
-
„magazyn pośredni”
„magazyn pośredni”
-
-
buforuje dane, których
buforuje dane, których
komputer lub urządzenie nie może w danej chwili odebrać.
komputer lub urządzenie nie może w danej chwili odebrać.
STAN
STEROWANIE
DANE WE
DANE WY
FIFO
FIFO
Odpytywanie (polling)
Odpytywanie (polling)
Procedura obsługi co pewien czas testuje stan urządzenia w celu
sprawdzenia jego gotowości do transmisji danych.
Ma sens wtedy, gdy urządzenie jest często gotowe do wykonania
operacji.
Zaleta
Zaleta
–
–
natychmiastowe wykonanie operacji we
natychmiastowe wykonanie operacji we
-
-
wy
wy
Do uzgadniania pomiędzy procesorem a urządzeniem w prostym
Do uzgadniania pomiędzy procesorem a urządzeniem w prostym
schemacie producent
schemacie producent
-
-
konsument wystarczą dwa bity:
konsument wystarczą dwa bity:
od strony procesora
od strony procesora bit gotowości polecenia
w rejestrze pleceń
w rejestrze pleceń
-
-
sygnalizujący kompletne polecenie dla urządzenia
sygnalizujący kompletne polecenie dla urządzenia
od strony urządzenia
od strony urządzenia
bit zajętości (
bit zajętości (
w rejestrze stanu),
w rejestrze stanu),
sygnalizujący że urządzenie jest zajęte pracą.
sygnalizujący że urządzenie jest zajęte pracą.
Odpytywanie (polling)
Odpytywanie (polling)
Kolejność działań przy uzgadnianiu:
Kolejność działań przy uzgadnianiu:
Procesor realizuje aktywne czekanie, dopóki bit zajętości jest
Procesor realizuje aktywne czekanie, dopóki bit zajętości jest
ustawiony
ustawiony
Procesor ustawia bit pisania i wpisuje bajt danych do rejestru
Procesor ustawia bit pisania i wpisuje bajt danych do rejestru
danych wy.
danych wy.
Procesor ustawia bit gotowości polecenia
Procesor ustawia bit gotowości polecenia
Sterownik ustawia bit zajętości po zauważeniu bitu gotowości
Sterownik ustawia bit zajętości po zauważeniu bitu gotowości
polecenia
polecenia
Sterownik czyta rejestr poleceń, rozpoznaje polecenie pisania.
Sterownik czyta rejestr poleceń, rozpoznaje polecenie pisania.
Czyta bajt danych z rejestru i wykonuje na urządzeniu operację
Czyta bajt danych z rejestru i wykonuje na urządzeniu operację
wejścia
wejścia
-
-
wyjścia
wyjścia
Sterownik czyści bit gotowości polecenia, bit błędu, a na końcu
Sterownik czyści bit gotowości polecenia, bit błędu, a na końcu
bit zajętości
bit zajętości
I tak dla każdego
I tak dla każdego
bajtu
bajtu
danych
danych
Przerwania
Przerwania
Jeśli urządzenie jest rzadko gotowe do działania, odpytywanie st
Jeśli urządzenie jest rzadko gotowe do działania, odpytywanie st
aje się
aje się
nieefektywne ( procesor większość czasu poświęca na aktywne czek
nieefektywne ( procesor większość czasu poświęca na aktywne czek
anie.
anie.
Mechanizm przerwań:
Mechanizm przerwań:
procesor ma końcówkę (nóżkę) badającą stan linii zgłaszania
procesor ma końcówkę (nóżkę) badającą stan linii zgłaszania
przerwań po wykonaniu każdego rozkazu.
przerwań po wykonaniu każdego rozkazu.
Jeśli procesor wykryje wystąpienie przerwania, to wykonuje
Jeśli procesor wykryje wystąpienie przerwania, to wykonuje
operacje zachowania stanu bieżącego procesu i przechodzi do
operacje zachowania stanu bieżącego procesu i przechodzi do
procedur obsługi przerwań.
procedur obsługi przerwań.
Po wykonaniu niezbędnych operacji procesor wraca do
Po wykonaniu niezbędnych operacji procesor wraca do
wykonywania przerwanego zadania
wykonywania przerwanego zadania
W nowoczesnych architekturach komputerów możliwa
W nowoczesnych architekturach komputerów możliwa
zaawansowana obsługa przerwań:
zaawansowana obsługa przerwań:
-
-
opóźnianie obsługi przerwania podczas działań krytycznych,
opóźnianie obsługi przerwania podczas działań krytycznych,
-
-
maskowanie przerwań (dwie linie przerwań
maskowanie przerwań (dwie linie przerwań
-
-
maskowalna
maskowalna
i
i
niemaskowalna
niemaskowalna
)
)
-
-
przerwania wielopoziomowe o różnym priorytecie
przerwania wielopoziomowe o różnym priorytecie
Bezpośredni dostęp do pamięci
Bezpośredni dostęp do pamięci
Jest używany w celu uniknięcia transmisji bajt
Jest używany w celu uniknięcia transmisji bajt
-
-
po
po
-
-
bajcie
bajcie
(zwanego programowanym wejściem
(zwanego programowanym wejściem
-
-
wyjściem) dla urządzeń
wyjściem) dla urządzeń
transmitujących wielkie ilości danych (
transmitujących wielkie ilości danych (
np
np
dysk), co oszczędza
dysk), co oszczędza
wiele cykli procesora
wiele cykli procesora
Wiele procedur związanych z transmisją jest wtedy
Wiele procedur związanych z transmisją jest wtedy
wykonywana przez specjalizowany procesor
wykonywana przez specjalizowany procesor
-
-
sterownik
sterownik
bezpośredniego dostępu do pamięci (DMA
bezpośredniego dostępu do pamięci (DMA
controller
controller
)
)
Przed rozpoczęciem transmisji w trybie DMA, procesor
Przed rozpoczęciem transmisji w trybie DMA, procesor
zapisuje w pamięci blok sterujący DMA (wskaźnik do źródła,
zapisuje w pamięci blok sterujący DMA (wskaźnik do źródła,
adres docelowy, liczba bajtów do przesłania), następnie
adres docelowy, liczba bajtów do przesłania), następnie
przesyła do sterownika DMA adres tego bloku i przechodzi do
przesyła do sterownika DMA adres tego bloku i przechodzi do
wykonywania innych prac.
wykonywania innych prac.
Sterownik DMA wykonuje transmisję, przejmując w tym czasie
Sterownik DMA wykonuje transmisję, przejmując w tym czasie
sterownie szyną pamięci. Procesor nie ma wtedy dostępu do
sterownie szyną pamięci. Procesor nie ma wtedy dostępu do
pamięci, ale może korzystać z
pamięci, ale może korzystać z
cache
cache
i rejestrów.
i rejestrów.
Wejście-wyjście z blokowaniem
Wejście-wyjście z blokowaniem
Blokowanie uwalnia procesor od aktywnego czekania
Blokowanie uwalnia procesor od aktywnego czekania
-
-
proces
proces
przenoszony jest do kolejki procesów czekających. Po
przenoszony jest do kolejki procesów czekających. Po
zakończeniu we
zakończeniu we
-
-
wy proces przechodzi do kolejki procesów
wy proces przechodzi do kolejki procesów
gotowych.
gotowych.
Niektóre procesy wymagają wejścia
Niektóre procesy wymagają wejścia
-
-
wyjścia bez blokowania,
wyjścia bez blokowania,
np
np
proces w którym sygnały z klawiatury lub myszy przeplatają
proces w którym sygnały z klawiatury lub myszy przeplatają
się z przetwarzaniem i wyświetlaniem na ekranie, albo czytanie
się z przetwarzaniem i wyświetlaniem na ekranie, albo czytanie
z dysku z dekompresją danych.
z dysku z dekompresją danych.
W aplikacjach wielowątkowych można zablokować pewne
W aplikacjach wielowątkowych można zablokować pewne
wątki, a inne zostawić aktywne.
wątki, a inne zostawić aktywne.
Podsystem wejścia-wyjścia w jądrze
Podsystem wejścia-wyjścia w jądrze
Planowanie wejścia
Planowanie wejścia
-
-
wyjścia
wyjścia
ma na celu poprawę wydajności
ma na celu poprawę wydajności
systemu, polepszenie wspólnego korzystania z urządzeń przez
systemu, polepszenie wspólnego korzystania z urządzeń przez
procesy i zmniejszenie średniego czasu oczekiwania.
procesy i zmniejszenie średniego czasu oczekiwania.
Buforowanie
Buforowanie
-
-
dopasowanie prędkości „producenta” i
dopasowanie prędkości „producenta” i
„konsumenta” danych (podwójne buforowanie), dopasowanie
„konsumenta” danych (podwójne buforowanie), dopasowanie
urządzeń operujących na różnych wielkościach bloków danych
urządzeń operujących na różnych wielkościach bloków danych
(
(
np
np
pakiety sieci a bloki na dysku)
pakiety sieci a bloki na dysku)
Przechowywanie podręczne
Przechowywanie podręczne
(
(
caching
caching
)
)
-
-
zapamiętanie kopii
zapamiętanie kopii
danych w szybkiej pamięci podręcznej
danych w szybkiej pamięci podręcznej
Spooling
Spooling
-
-
użycie bufora do przechowywania danych
użycie bufora do przechowywania danych
przeznaczonych dla urządzenia, które nie dopuszcza
przeznaczonych dla urządzenia, które nie dopuszcza
przeplatania danych z różnych procesów (
przeplatania danych z różnych procesów (
np
np
drukarka)
drukarka)
Obsługa błędów
Obsługa błędów
Struktury danych jądra
Struktury danych jądra
-
-
jądro musi przechowywać
jądro musi przechowywać
informacje o stanie używanych składowych wejścia
informacje o stanie używanych składowych wejścia
-
-
wyjścia
wyjścia
Podsystem wejścia-wyjścia w jądrze, cd
Podsystem wejścia-wyjścia w jądrze, cd
Podsystem nadzoruje:
Podsystem nadzoruje:
zarządzanie przestrzenią nazw plików i urządzeń,
zarządzanie przestrzenią nazw plików i urządzeń,
przebieg dostępu do plików i urządzeń,
przebieg dostępu do plików i urządzeń,
poprawność formalną operacji,
poprawność formalną operacji,
przydzielanie miejsca w systemie plików,
przydzielanie miejsca w systemie plików,
przydział urządzeń,
przydział urządzeń,
buforowanie,
buforowanie,
caching
caching
oraz
oraz
spooling
spooling
,
,
planowanie operacji wejścia
planowanie operacji wejścia
-
-
wyjścia
wyjścia
doglądanie stanu urządzeń, obsługę błędów, czynności
doglądanie stanu urządzeń, obsługę błędów, czynności
naprawcze po awarii.
naprawcze po awarii.
konfigurowanie i wprowadzanie w stan początkowy modułu
konfigurowanie i wprowadzanie w stan początkowy modułu
sterującego
sterującego
Poprawianie wydajności wejścia-wyjścia
Poprawianie wydajności wejścia-wyjścia
Podsystem ma na celu:
Podsystem ma na celu:
zmniejszać liczbę przełączeń kontekstu,
zmniejszać liczbę przełączeń kontekstu,
zmniejszać liczbę kopiowań danych w pamięci podczas
zmniejszać liczbę kopiowań danych w pamięci podczas
przekazywania od urządzenia do aplikacji,
przekazywania od urządzenia do aplikacji,
zmniejszać częstość przerwań poprzez przesyłanie dużych
zmniejszać częstość przerwań poprzez przesyłanie dużych
porcji informacji, przez optymalizację sterowników i
porcji informacji, przez optymalizację sterowników i
stosowanie odpytywania, gdzie to korzystne,
stosowanie odpytywania, gdzie to korzystne,
zwiększać współbieżność poprzez stosowanie sterowników
zwiększać współbieżność poprzez stosowanie sterowników
pracujących w trybie DMA,
pracujących w trybie DMA,
realizować elementarne działania za pomocą sprzętu i pozwalać
realizować elementarne działania za pomocą sprzętu i pozwalać
na ich współbieżne wykonywanie w sterownikach,
na ich współbieżne wykonywanie w sterownikach,
równoważyć wydajność
równoważyć wydajność procesora, podsystemów pamięci,
szyny i operacji wejścia-wyjścia
Elementy od których zależy wydajność dysku
Elementy od których zależy wydajność dysku
Czytanie lub pisanie wymaga ustawienia głowicy nad określoną
Czytanie lub pisanie wymaga ustawienia głowicy nad określoną
ś
cieżką i na początku konkretnego sektora. Potrzebny na to jest
ś
cieżką i na początku konkretnego sektora. Potrzebny na to jest
czas dostępu
czas dostępu
-
-
suma czasu przeszukiwania i opóźnienia
suma czasu przeszukiwania i opóźnienia
obrotowego
obrotowego
czas przeszukiwania (
czas przeszukiwania (
seek time
seek time
)
)
-
-
czas potrzebny na ustawienie
czas potrzebny na ustawienie
głowicy nad ścieżką
głowicy nad ścieżką
opóźnienie obrotowe (
opóźnienie obrotowe (
rotational latency
rotational latency
)
)
-
-
czas potrzebny na
czas potrzebny na
obrót właściwego sektora pod głowicę,
obrót właściwego sektora pod głowicę,
Czas przeszukiwania
Czas przeszukiwania
ma duży wpływ na wydajność.
ma duży wpływ na wydajność.
Możemy go optymalizować, ponieważ system operacyjny
Możemy go optymalizować, ponieważ system operacyjny
zarządza kolejką żądań dysku
zarządza kolejką żądań dysku
Planowanie wejścia-wyjścia dla dysku
Planowanie wejścia-wyjścia dla dysku
FCFS
FCFS
-
-
(
(
first come
first come
,
,
first served
first served
)
)
żą
dania wejścia
żą
dania wejścia
-
-
wyjścia realizowane w kolejności zgłaszania. Algorytm
wyjścia realizowane w kolejności zgłaszania. Algorytm
sprawiedliwy, ale mało wydajny. Przy dużej liczbie zgłoszeń plan
sprawiedliwy, ale mało wydajny. Przy dużej liczbie zgłoszeń plan
owanie
owanie
zbliżone do losowego (najgorszego)
zbliżone do losowego (najgorszego)
t
r
Planowanie wejścia-wyjścia dla dysku, cd
Planowanie wejścia-wyjścia dla dysku, cd
PRI (
PRI (
priority
priority
)
)
-
-
krótkie zadania wsadowe i interakcyjne mają
krótkie zadania wsadowe i interakcyjne mają
wyższy priorytet i pierwszeństwo w dostępie do dysku.
wyższy priorytet i pierwszeństwo w dostępie do dysku.
Rozwiązanie nieefektywne dla baz danych.
Rozwiązanie nieefektywne dla baz danych.
LIFO (
LIFO (
last in
last in
-
-
first out
first out
)
)
-
-
minimalizuje ruch głowicy (żądania
minimalizuje ruch głowicy (żądania
korzystają z ograniczonego obszaru na dysku). Możliwość
korzystają z ograniczonego obszaru na dysku). Możliwość
głodzenia procesów
głodzenia procesów
SSTF (
SSTF (
shortest seek time first
shortest seek time first
)
)
-
-
najmniejszy ruch głowicy od
najmniejszy ruch głowicy od
pozycji bieżącej. Zawsze minimalny czas przeszukiwania.
pozycji bieżącej. Zawsze minimalny czas przeszukiwania.
Możliwe głodzenie.
Możliwe głodzenie.
Planowanie wejścia-wyjścia dla dysku, cd
Planowanie wejścia-wyjścia dla dysku, cd
SCAN
SCAN
głowica przesuwa się od jednej krawędzi dysku do drugiej,
głowica przesuwa się od jednej krawędzi dysku do drugiej,
lub do ostatniego
lub do ostatniego
żą
dania. Potem zmienia się kierunek przesuwania. Działa jak wind
żą
dania. Potem zmienia się kierunek przesuwania. Działa jak wind
a
a
-
-
najpierw
najpierw
zamówienia „w górę”, potem „w dół”. Najszybciej po sobie obsługi
zamówienia „w górę”, potem „w dół”. Najszybciej po sobie obsługi
wane żądania na
wane żądania na
skrajnych ścieżkach, a najpóźniej
skrajnych ścieżkach, a najpóźniej
-
-
po przeciwnej stronie dysku. Nie ma głodzenia
po przeciwnej stronie dysku. Nie ma głodzenia
t
r
Planowanie wejścia-wyjścia dla dysku, cd
Planowanie wejścia-wyjścia dla dysku, cd
C
C
-
-
SCAN (
SCAN (
circular scan
circular scan
)
)
po obsłużeniu ostatniego zamówienia na końcu dysku, głowic
po obsłużeniu ostatniego zamówienia na końcu dysku, głowic
a wraca na
a wraca na
początek i zaczyna od zera.
początek i zaczyna od zera.
N
N
-
-
step
step
-
-
SCAN
SCAN
-
-
podział kolejki na
podział kolejki na
podkolejki
podkolejki
o długości N. Kolejne
o długości N. Kolejne
podkolejki
podkolejki
obsługiwane metodą SCAN do końca.
obsługiwane metodą SCAN do końca.
FSCAN
FSCAN
-
-
dwie kolejki, jedna realizowana, nowe żądania przychodzą do
dwie kolejki, jedna realizowana, nowe żądania przychodzą do
drugiej
drugiej
t
r
Użytkowy interfejs we-wy
drivery urządzeń
Użytkowy interfejs we-wy
drivery urządzeń
Moduły sterujące
Moduły sterujące
-
-
wewnętrznie dostosowane są do
wewnętrznie dostosowane są do
konkretnych urządzeń, a zewnętrznie udostępniają pewien
konkretnych urządzeń, a zewnętrznie udostępniają pewien
standardowy interfejs
standardowy interfejs
standaryzacja pomaga producentom sprzętu tworzyć sterowniki
standaryzacja pomaga producentom sprzętu tworzyć sterowniki
do własnych urządzeń, widziane przez „obce” systemy
do własnych urządzeń, widziane przez „obce” systemy
operacyjne
operacyjne
Systemy muszą umożliwiać instalację sterowników do nowego
Systemy muszą umożliwiać instalację sterowników do nowego
sprzętu
sprzętu
Zegary i czasomierze
Zegary i czasomierze
Spełniają trzy podstawowe funkcje:
Spełniają trzy podstawowe funkcje:
podawanie bieżącego czasu,
podawanie bieżącego czasu,
podawanie upływającego czasu,
podawanie upływającego czasu,
powodowanie wykonania określonej operacji w określonej
powodowanie wykonania określonej operacji w określonej
chwili
chwili
c
c
zasomierz programowalny
zasomierz programowalny
-
-
służy do pomiaru upływającego
służy do pomiaru upływającego
czasu i powodowania wykonania operacji w zadanym czasie
czasu i powodowania wykonania operacji w zadanym czasie
można go zaprogramować na określony czas, po którym
można go zaprogramować na określony czas, po którym
generuje on przerwanie
generuje on przerwanie
jest to też zegar systemowy do taktowania kwantów czasu (dla
jest to też zegar systemowy do taktowania kwantów czasu (dla
przydziału procesora)
przydziału procesora)
Urządzenia sieciowe
Urządzenia sieciowe
Sieciowe wejście
Sieciowe wejście
-
-
wyjście różni się znacznie od dyskowego,
wyjście różni się znacznie od dyskowego,
pod względem wydajności i adresowania
pod względem wydajności i adresowania
Interfejs gniazda (
Interfejs gniazda (
socket
socket
)
)
-
-
aplikacje umożliwiają tworzenie
aplikacje umożliwiają tworzenie
gniazda, połączenie lokalnego gniazda ze zdalnym adresem,
gniazda, połączenie lokalnego gniazda ze zdalnym adresem,
nasłuchiwanie, przesyłanie i odbieranie pakietów za pomocą
nasłuchiwanie, przesyłanie i odbieranie pakietów za pomocą
połączenia
połączenia
funkcja
funkcja
wybierz
wybierz
zarządza gniazdami
zarządza gniazdami
W systemach Windows NT/2000
W systemach Windows NT/2000
-
-
interfejs do kontaktowania
interfejs do kontaktowania
się z kartą sieciową oraz interfejs do do protokołów sieciowych
się z kartą sieciową oraz interfejs do do protokołów sieciowych
W systemie
W systemie
Unix
Unix
-
-
półdupleksowe
półdupleksowe
potoki,
potoki,
pełnodupleksowe
pełnodupleksowe
kolejki FIFO,
kolejki FIFO,
pełnodupleksowe
pełnodupleksowe
strumienie, kolejki
strumienie, kolejki
komunikatów i gniazda
komunikatów i gniazda
Gniazdo (socket)
Gniazdo (socket)
Wg.
Wg.
Wikipedii
Wikipedii
:
:
Gniazdo
Gniazdo
-
-
pojęcie abstrakcyjne reprezentujące dwukierunkowy
pojęcie abstrakcyjne reprezentujące dwukierunkowy
punkt końcowy połączenia. Dwukierunkowość oznacza możliwość
punkt końcowy połączenia. Dwukierunkowość oznacza możliwość
wysyłania i przyjmowania danych. Wykorzystywane jest przez
wysyłania i przyjmowania danych. Wykorzystywane jest przez
aplikacje do komunikowania się przez
aplikacje do komunikowania się przez
sie
sie
ć
w ramach komunikacji
ć
w ramach komunikacji
międzyprocesowej
międzyprocesowej
.
.
Gniazdo posiada trzy główne właściwości:
Gniazdo posiada trzy główne właściwości:
1.
1.
typ gniazda identyfikujący
typ gniazda identyfikujący
protokół wymiany danych
protokół wymiany danych
2.
2.
lokalny adres (np. adres
lokalny adres (np. adres
IP (protokół)
IP (protokół)
,
,
IPX
IPX
, czy
, czy
Ethernet
Ethernet
)
)
3.
3.
opcjonalny lokalny numer
opcjonalny lokalny numer
portu
portu
identyfikujący
identyfikujący
proces
proces
,
,
który wymienia dane przez gniazdo (jeśli typ gniazda
który wymienia dane przez gniazdo (jeśli typ gniazda
pozwala używać portów)
pozwala używać portów)
Gniazdo może posiadać (na czas trwania komunikacji)
dwa dodatkowe atrybuty:
1. adres zdalny (np. adres IP (protokół), IPX, czy Ethernet)
2. opcjonalny numer portu identyfikujący zdalny proces
(jeśli typ gniazda pozwala używać portów)
Adres IP wyznacza węzeł w sieci,
numer portu określa proces w węźle,
a typ gniazda determinuje sposób wymiany danych.
Jeśli gniazdo używa numerów portów to lokalny numer portu
może zostać przydzielony automatycznie i nosi wtedy nazwę
efemerycznego numeru portu. Lokalny numer portu może też
zostać wymuszony przez wykonanie przypisania ( bind)
gniazdu numeru pożądanego przez twórcę aplikacji.
Wejście-wyjście w różnych systemach operacyjnych
Wejście-wyjście w różnych systemach operacyjnych
MS
MS
-
-
DOS
DOS
Nazwy urządzeń zakończone dwukropkiem, np. A:, C:, PRN:
Nazwy urządzeń zakończone dwukropkiem, np. A:, C:, PRN:
Odwzorowane są na określone adresy portów za pomocą
Odwzorowane są na określone adresy portów za pomocą
tablicy urządzeń.
tablicy urządzeń.
System operacyjny może przypisać każdemu urządzeniu
System operacyjny może przypisać każdemu urządzeniu
dodatkowych funkcji,
dodatkowych funkcji,
np spooling
np spooling
dla drukarki
dla drukarki
UNIX
UNIX
Nazwy urządzeń są pamiętane w przestrzeni nazw systemu
Nazwy urządzeń są pamiętane w przestrzeni nazw systemu
plików (katalog /
plików (katalog /
dev
dev
/
/
devices
devices
)
)
W strukturze katalogowej zamiast numeru I
W strukturze katalogowej zamiast numeru I
-
-
węzła jest zapisany
węzła jest zapisany
numer urządzenia w postaci pary <starszy,młodszy>.
numer urządzenia w postaci pary <starszy,młodszy>.
Starszy
numer urządzenia identyfikuje moduł sterujący, który
numer urządzenia identyfikuje moduł sterujący, który
trzeba wywołać dla obsługi we
trzeba wywołać dla obsługi we
-
-
wy, a
wy, a młodszy jest
przekazywany do modułu sterującego jako indeks do tablicy
urządzeń.
Wpis w tablicy urządzeń zawiera adres portu lub adres
sterownika odwzorowany w pamięci
Wejście-wyjście w różnych systemach operacyjnych
Wejście-wyjście w różnych systemach operacyjnych
UNIX
UNIX
-
-
cd
cd
Strumień
Strumień
-
-
kanał komunikacyjny pomiędzy procesem
kanał komunikacyjny pomiędzy procesem
użytkownika a urządzeniem
użytkownika a urządzeniem
Strumień składa się z:
Strumień składa się z:
-
-
głowy
głowy
-
-
interfejs z programem użytkownika,
interfejs z programem użytkownika,
-
-
zakończenia sterującego
zakończenia sterującego
-
-
interfejs z urządzeniem
interfejs z urządzeniem
-
-
modułów przetwarzających
modułów przetwarzających
-
-
filtrów na komunikatach
filtrów na komunikatach
płynących w strumieniu.
płynących w strumieniu.
Każdy ze składników strumienia zawiera co najmniej jedną
Każdy ze składników strumienia zawiera co najmniej jedną
parę kolejek: we i wy
parę kolejek: we i wy
Kontrola przepływu w strumieniu realizowana jest za pomocą
Kontrola przepływu w strumieniu realizowana jest za pomocą
buforów wejścia
buforów wejścia
-
-
wyjścia
wyjścia
We
We
-
-
wy na strumieniu jest asynchroniczne
wy na strumieniu jest asynchroniczne
Sterownik jest zawieszony do chwili pojawienia się danych
Gdy bufor jest pełny - utrata komunikatów
Wejście-wyjście w różnych systemach operacyjnych
Wejście-wyjście w różnych systemach operacyjnych
Windows NT/2000
Windows NT/2000
Cache
Cache
manager
manager
-
-
zarządza całym podsystemem wejścia
zarządza całym podsystemem wejścia
-
-
wyjścia
wyjścia
Podsystem we
Podsystem we
-
-
wy traktuje
wy traktuje
File
File
System
System
Drivers
Drivers
tak samo jak
tak samo jak
Device Drivers
Device Drivers
Network Drivers
Network Drivers
-
-
sterowniki sieci
sterowniki sieci
Hardware Device Drivers
Hardware Device Drivers
-
-
dostęp do rejestrów urządzeń
dostęp do rejestrów urządzeń
wejścia
wejścia
-
-
wyjścia
wyjścia
Wejście
Wejście
-
-
wyjście może być
wyjście może być
asynchroniczne
asynchroniczne
i
i
synchroniczne
synchroniczne
System ma wbudowane mechanizmy do sygnalizowania
System ma wbudowane mechanizmy do sygnalizowania
zakończenia asynchronicznego wejścia
zakończenia asynchronicznego wejścia
-
-
wyjścia
wyjścia