Obsluga wejscia wyjscia KIA PRz

background image

Obs

Obs

ł

ł

uga wej

uga wej

ś

ś

cia/wyj

cia/wyj

ś

ś

cia

cia

• Cele podsystemu wejścia/wyjścia:

– udostępnienie jednakowych metod dostępu do urządzeń
– niezależność programów od urządzenia we/wy
– zwiększenie wydajności

• Podstawowe właściwości urządzeń:

– jednostki przesyłania danych (bajty, bloki)
– sposób dostępu (sekwencyjny, swobodny)
– organizacja przesyłu (synchroniczna lub asynchroniczna)
– współdzielenie (dostęp wyłączny lub wspólny)
– prędkość przesyłu danych
– operacje uprzywilejowane (odczyt, zapis, inne)
– błędy przy wykorzystaniu urządzeń
– kody znaków

Niskopoziomowa obs

Niskopoziomowa obs

ł

ł

uga urz

uga urz

ą

ą

dze

dze

ń

ń

we/wy

we/wy

• W starszych systemach przesyłanie danych związane z pracą

urządzeń zewnętrznych było sterowane przez jednostkę
centralną (polling). Uniemożliwiało to wykonywanie w tym
samym czasie obliczeń programu i operacji wejścia/wyjścia

• Typowe sposoby koordynowania pracy jednostki centralnej i

urządzeń wejścia-wyjścia:

– Przesyłanie danych sterowane przerwaniami

– Przesyłanie danych na zasadzie bezpośredniego dostępu do

pamięci (DMA)

background image

Systemy z obs

Systemy z obs

ł

ł

ug

ug

ą

ą

przerwa

przerwa

ń

ń

• Procedura przesyłania danych

1. Procesor ustawia odpowiednie rejestry kontrolera urządzenia, po czym

wznawia normalną pracę.

2. Kontroler bada zawartość rejestrów. Jeśli, na przykład zostanie

rozpoznane polecenie czytania, to sterownik zainicjuje przesyłanie
danych z urządzenia do swojego bufora.

3. Gdy przesyłanie danych zostanie zakończone, kontroler za pomocą

przerwania informuje CPU, że zakończył operację.

4. Procesor wstrzymuje bieżącą pracę i rozpoczyna procedurę obsługi

przerwania.

5. Procedura obsługi przerwania przesyła dane z lokalnego bufora

kontrolera do pamięci głównej.

6. Następuje pobranie zapamiętanego adresu powrotnego i wznowienie

przerwanych obliczeń, tak, jakby przerwania nie było.

Systemy z obs

Systemy z obs

ł

ł

ug

ug

ą

ą

przerwa

przerwa

ń

ń

(c.d.)

(c.d.)

procesor

wykonywanie
procesu

użytkownika

obsługa
przerwań
wejścia-wyjścia

bezczynne

przesyłające

urządzenie

wejścia-
wyjścia

zamówienie

wejścia-wyjścia

przesłanie

wykonane

zamówienie

wejścia-wyjścia

przesłanie

wykonane

background image

Bezpo

Bezpo

ś

ś

redni dost

redni dost

ę

ę

p do pami

p do pami

ę

ę

ci

ci

Przeznaczony dla blokowych urządzeń wejścia-wyjścia

DMA – Direct Memory Access

Kontroler urządzenia przesyła bezpośrednio cały blok danych między
własnym buforem a pamięcią – bez interwencji procesora.

• Przerwanie wypada jeden raz na cały blok danych, a nie po przesłaniu

każdego bajtu

Przebieg procedury przesłania danych:

1. Przy żądaniu przesłania danych ustalany jest bufor dla operacji. Może to być pusty

bufor wejściowy lub pełny bufor wyjściowy.

2. Adres bufora umieszcza się w rejestrach kontrolera DMA, po czym za

pośrednictwem rejestru kontrolnego kontroler dostaje polecenie wykonania operacji
wejścia-wyjścia.

3. Po zakończeniu kontroler wysyła przerwanie do procesora.

Struktura obs

Struktura obs

ł

ł

ugi WE/WY

ugi WE/WY

Użytkownik

Procedura obsługi urządzenia

Procedura we/wy

Programowy sterownik urządzenia

Sterownik urządzenia

Urządzenie

PROGRAMOWY

STEROWNIK URZĄDZENIA

ŻĄDANIE

WE/WY

PROCEDURA

WE/WY

PROCEDURA

OBSŁUGI

URZĄDZENIA

PROCEDURA

PRZERWANIA

PROCES

UŻYTKOWNIKA

SYSTEM

OPERACYJNY

background image

Niezale

Niezale

ż

ż

no

no

ść

ść

obs

obs

ł

ł

ugi

ugi

Programy realizują dostęp nie do rzeczywistych urządzeń, lecz
tzw. strumieni (urządzeń wirtualnych), bez uwzględniania
fizycznych charakterystyk konkretnych urządzeń.

Korzystanie ze strumienia:

otwarcie strumienia (wpis w tablicy strumieni wykorzystywanych
przez proces)

Wykonanie operacji we/wy

Zamknięcie strumienia

Przykład:

char buf[7]=”ABCDEF”;

FILE*str = fopen(”PRN:”,”wt”); /* lub ”C:\TEST.TXT” itp. */

if(!str) {

printf("Błąd otwarcia !");

return 0;}

fwrite(buf, 6, 1, str);

fclose(str);

Procedura wej

Procedura wej

ś

ś

cia/wyj

cia/wyj

ś

ś

cia

cia

Parametry:

– identyfikator strumienia
– rodzaj operacji (odczyt, zapis, formatowanie)
– ilość przesyłanych danych
– adres obszaru danych
– znacznik zakończenia

Niektóre systemy dopuszczają dwa rodzaje obsługi we/wy:

z blokowaniem (proces czeka na zakończenie operacji)

bez blokowania (proces kontynuuje działanie, zakończenie operacji jest sygnalizowane)

Algorytm procedury we/wy:

procedure ProceduraWEWY(strumień, operacja, ilość_danych,

adres_danych, znacznik_zakończenia)

begin

szukaj urządzenia w tablicy strumieni procesu;
sprawdź zgodność parametrów z deskryptorem urządzenia;
if złe parametry then zakończ z błędem;
umieść parametry w bloku zamówień WE/WY;
dołącz blok zamówień do kolejki zamówień urządzenia;

end;

background image

Procedura obs

Procedura obs

ł

ł

ugi urz

ugi urz

ą

ą

dzenia

dzenia

Realizacja zamówień z kolejki

Algorytm (

Operacja wejścia

)

forever

begin

repeat until są zamówienia;

wybierz blok z kolejki;

inicjuj operację WE na podstawie danych z bloku;

czekaj na wykonanie operacji;

sprawdź status błędu;

[konwertuj znaki]

[umieść dane pod adresem docelowym]

[ustaw znacznik zakończenia]

usuń

blok z kolejki

end;

IDENTYFIKATOR

LISTA ROZKAZÓW

STAN URZĄDZENIA

TABLICE

KONWERSJI

ZNAKÓW

KOLEJKA

ZAMÓWIEŃ

DOSTĘPU

DESKRYPTOR

URZĄDZENIA

BLOKI ZAMÓWIEŃ

WE/WY

OPERACJA
ILOŚĆ
ADRES
ID PROCESU
ZNACZNIK
ZAKOŃCZENIA

Buforowanie

Buforowanie

Dane wejściowe są pobierane przez system i umieszczane w buforze
wejściowym
, skąd mogą być pobrane przez proces użytkownika.
Faktyczny dostęp do urządzenia jest realizowany w momencie
opróżnienia bufora.

Dane wyjściowe umieszczane są w buforze wyjściowym, zaś
system operacyjny wysyła je do urządzenia dopiero po zapełnieniu
bufora

.

PROCES

UŻYTKOWNIKA


DANE

WEJŚCIOWE



DANE

WYJŚCIOWE

BUFOR

WEJŚCIOWY



URZĄDZENIE

WEJŚCIA/

WYJŚCIA

BUFOR

WYJŚCIOWY

Podwójne buforowanie

background image

Urz

Urz

ą

ą

dzenia podzielne i niepodzielne

dzenia podzielne i niepodzielne

Urządzenia podzielne to takie, do których dostęp może mieć jednocześnie
wiele procesów, zaś kolejka zamówień jest realizowana na bieżąco, zgodnie
z napływem zgłoszeń.

Urządzenia niepodzielne nie dopuszczają przeplatania przesyłanych
danych.

– Jeden proces ma do takiego urządzenia wyłączny dostęp od chwili otwarcia do

zamknięcia strumienia.

– Gdy urządzenie niepodzielne jest zajęte przez proces, zamówienia od innych

procesów nie są realizowane, zaś procesy te muszą oczekiwać na zwolnienie
urządzenia.

Spooling

Spooling

• Ogranicza skutki blokowania procesów korzystających z

urządzenia niepodzielnego

Dane nie są przesyłane wprost do urządzenia niepodzielnego, lecz do
urządzenia pośredniego.

Spooler obsługuje dane przechowywane na urządzeniu pośrednim i
wysyła je do urządzenia docelowego wtedy, kiedy jest ono wolne.

OperacjaWY

OperacjaWE

Dane gotowe

PROCES

PLIK

NA

DYSKU

SPOOLER

OperacjaWY


Wyszukiwarka

Podobne podstrony:
Porty wejścia wyjścia
12 uklad wejscia wyjscia 8255
WEJŚCIE WYJŚCIE
Układ uniwersalnego, równoległego portu wejścia wyjścia?55
Wybierz jedno z urządzeń wejścia wyjścia komputera i opisz je.(drukarka atramentowa), Studia, Inform
Wyklad 15, wejście-wyjście 2
systemy wejścia wyjścia
Urządzenia wejścia i wyjścia
11 wejscie wyjscie
Przekierowanie wejścia i wyjścia, materiały edukacyjne, SOISK(sys operacyjne i sieci komp )
Urzadzenia wejscia i wyjscia informatyka praca semestralna
Architektura i organizacja komuterów W7 Wejście Wyjście
PORTY WEJŚCIA WYJŚCIA, INFORMATYKA 001
Sprawozdanie(1), Studia, WAT Informatyka 2, semestr IV, systemy wejścia-wyjścia
JAVA 06 wejście i wyjście
Urządzenia wyjściowe do równoległego portu wejścia wyjścia?55
klawiatury monitory drukarki myszki, Studia, WAT Informatyka 2, semestr IV, systemy wejścia-wyjścia

więcej podobnych podstron