Jednym z najważniejszych zadań systemu wielodostępnego jest "utrzymanie w ruchu całego przedsięwzięcia". Deklaracje rozkazowe, dane i komunikaty diagnostyczne są przesyłane mię
dzy komputerem a terminalem użytkownika. Dane są wprowadzane i wyprowadzane z systemu poprzez urządzenia wejścia i wyjścia.
Jest jasną sprawą, że system musi zużywać dużą część czasu jako regulator tego ruchu, kontrolując strumienie informacji.
1. Zarządzanie terminalem
W zasadzie istnieją dwa rodzaje terminali: takie, które w jednej chwili przesyłają jeden znak /jak na przykład termi
nale wyposażone w dalekopis/ oraz takie, które w jednej chwi
li przesyłają jeden lub więcej wierszy /jak na przykład alfa
numeryczny monitor ekranowy/. Terminale wieloznakowe /tzn.
przesyłające jednocześnie większą liczbę znaków/ zwykle posia
dają wbudowany bufor, który automatycznie przechowuje kolejno wprowadzane znaki aż do momentu, kiedy się naciśnie klawisz
"przesyłanie". Wówczas zawartość buforu zostaje przesłana do komputera. Terminale jednoznakowe nie posiadają takiego bufo
ru i w nich każdy znak jest wysyłany z chwilą naciśnięcia kla
wisza. Wiele z terminali jednoznakowych pracujących na łączach pół względnie pełnych dupleksowych nie dokonuje automatycznie wydruku znaku za niciśnięciem klawisza. Zamiast tego komputer po otrzymaniu przesłanego znaku wysyła z powrotem zakodowany rozkaz, by terminal dokonał wydruku. Dzieje się to tak szybko, że użytkownikowi wydaje się,iż terminal dokonuje wydruku rea
gując na naciskanie klawiszy i nie przypuszcza on, że zachodzi proces typu: naciśnij klawisz - prześlij - odbierz - drukuj.
Tablica 5 PRZYKŁADY STRUKTUR ZBIORÓW REKORDÓW O STAŁEJ DŁUGOÓCI
7 0
-POŁOŻENIE Ł
L+lw L+2w
L+4-w
L+/n-3/v;
L+/n~2/w L+/n-1/w
a/
Zbiór
przechowywany sekwencyjnie
b/
Nieprzyległy' zbiór swobodny z łącznikami w przód
POŁOŻENIE L L+1w L+2w
M M+1w
N
P P+1w
"w” = długość rekordu /liczba słów lub znaków/
W tego rodzaju systemie bardzo szybko uwidaczniają się za
kłócenia na łączach transmisji, ponieważ, na przykład, użytkow
nik może nacisnąć klawisz "A" i na wydruku z klawiatury może zobaczyć "9". Wówczas nie trzeba się długo zastanawiać, by dojść do wniosku, że kod znaku został przekłamany gdzieś po drodze na łączu. Główną wadą tego systemu jest to, że procesor musi przechodzić w stan przerwania za każdym znakiem, a koszt ogólny przerwań jest tym większy, im jest wyższa częstotliwość przerwań.
Kiedy użytkownik wprowadza ze swojego terminala komunikat do systemu, system musi ten komunikat odebrać i sprawdzić;
może on także zawiadomić użytkownika o przyjęciu komunikatu, a nawet skierować go do odpowiedniego programu zastosowań.
W przypadku systemu z terminalem jednoznakowym odbiór komunika
tu polega na budowaniu całego komunikatu w buforze procesora, aż do momentu otrzymania od terminala sygnału zakończenia ko
munikatu /na przykład "powrót karetki"/. Sprawdzanie komunika
tu zwykle polega na wykrywaniu przekłamań w transmisji za po
mocą kontroli błędów parzystości. /W momencie, kiedy każdy ze znaków jest formowany celem jego przesłania, niektóre z ter
minali dodają jeden bit, by uczynić w zakodowanym znaku sumę jedynek zawsze parzystą albo nieparzystą. W miejscu odbioru układy elektroniczne określają, czy suma jedynek jest taka
sama jak w momencie wysłania znaku z terminala; jeśli nie, to znaczy, że wystąpił "błąd parzystości"/. 0 ile komunikat jest skierowany do programu wykonawczego, jak to ma miejsce w przy
padku dyrektyw, to wtedy program wykonawczy zajmie -się dal
szym przetwarzaniem komunikatu, by określić rodzaj reakcji ze strony systemu. Inne komunikaty, które po prostu mogą być
da-- 72 ~
nymi, zostaną naznaczone do dalszego przetwarzania przez odpo
wiedni program /kompilator, program zarządzający zbiorem lub program użytkowy/. Potwierdzenie komunikatu może polegać na wysłaniu z powrotem do terminala jednego lub kilku znaków, co może spowodować powrót karetki, wydruk odsyłacza, lub w jakiś
inny sposób zwrócić uwagę użytkownika, że system jest gotów do kolejnego wprowadzenia informacji, o ile nie było żądania wyprowadzenia informacji z systemu. Wiele systemów nie potwier
dza ?:omurikatu bezpośrednio przy pomocy programu wykonawczego.
Zamiast tego program docelowy, to jest taki, który rzeczywiś
cie odbiera komunikat,na podstawie ostatnio wprowadzonej in
formacji określa, czy ma być wprowadzona dalsza informacja i stosownie do tego przesyła komunikat zwrotny.
Zwykle kiedy program już przygotował komunikat, celem prze
słania do terminala, komunikat ten zostaje umieszczony w bufo
rze i program wykonawczy zostaje zawiadomiony, by rozpocząć transmisję oraz nadzorować ją, aż do uwieńczonego powodzeniem
.-.akończenia. Tam, gdzie stosuje się koncentratory komunikatów /małe komputery używane głównie do przełączania kierunku ruchu komunikatów - mogą one jednak wykonywać inne funkcje/ i wystą
pi awaria w transmisji między koncentratorem a systemem cen
tralnym, mogą być kilkakrotnie podejmowane usiłowania ponownej transmisji, przy czym każdy z komputerów zlicza nie uwieńczone powodzeniem usiłowania, aż osiągnie się pewną, z góry określo
ną, ich granicę-,
2« Zarządzanie We/w?/
Łączność z urządzeniami zewnętrznymi /czytniki kart, dziur
karko. kart, drukarki oraz jednostki taśmy magnetycznej/ nie
może być przeprowadzana przez każdy indywidualny program z oso
bna, jak to miało miejsce przed nastaniem systemów wielodostęp
nych. Program wykonawczy przeprowadza przesyłanie danych między buforami danych dla poszczególnych programów a pamięciami niż
szego szczebla. Mówiąc ogólnie, każdy program porozumiewa się z zespołem zbiorów poprzez program wykonawczy wielodostępu.
Ostatecznym przeznaczeniem wyprowadzanych danych może być, na przykład, drukarka na miejscu lub podłączona zdalnie, lecz pro
gram dla danego zastosowania przesyła je do zbioru /zwykle przechowywanego w pamięci masowej/, który zostanie przesłany do odpowiedniego urządzenia odbiorczego przy pomocy programu wykonawczego.
Ponieważ zwykle jednocześnie kilka programów żąda przesyła
nia danych, program wykonawczy musi ustawić kolejkę z tych żą
dań celem podjęcia kolejnych akcji, gdy zakończą się bieżące operacje We/Wy. Początkowo stosowane struktury kolejek dla wykonania tego zadania były w zasadzie typu "pierwsze zgłosze
nie - najpierw obsłużone" i na ogół nie optymalizowały one wy
korzystania pamięci pośrednich takich, jak dyski i bębny. Bie
żąco podjęte wysiłki są skierowane na lepsze wykorzystanie opóźnień wynikłych z postukiwania oraz z ruchu obrotowego po
przez tworzenie wielorakich kolejek żądań We/Wy. Zamiarem jest wprowadzenie każdego poszczególnego żądania We/Wy do jednej z
szeregu kolejek, przy czym każda z tych kolejek jest powiązana z położeniem urządzenia poszukującego w pamięci /wówczas każ
da poszczególna kolejka będzie przypisana do jakiegoś innego sektora na bębnie, lub cylindra na dysku/.
7 4
-Można sobie uzmysłowić pewnego rodzaju mechaniczne "ramię przełączające", które może wskazać każdą z kolejek, wybiera
jąc jedną z nich dla następnej operacji We/Wy. Jeśli urządze
niem pamięciowym jest bęben, wówczas obracamy ramię przełącza
jące z taką samą prędkością, z jaką bęben się obraca, wychwy
tując pierwsze żądanie z każdej kolejki, w trakcie ich prze
suwania się przed ramieniem; ta taktyka — żądanie o najkrót
szym czasie dostępu najpierw zmniejsza opóźnienie obrotowe przy dostępie do bębna. Jeśli urządzeniem jest pamięć dyskowa, to przy pomocy ramienia przełączającego przeglądamy tam i z powrotem cały zakres kolejek; taktyka ta zmniejsza straty cza
su powstałe z powodu ruchów poszukiwawczych ramienia przy dos
tępie do dysku. "W przypadku pamięci bębnowych ze stałymi gło-A wicami, ... łatwo uzyskać 20-krotny wzrost wykorzystania" „ Wzrost wykorzystania dla dysków .iestł>mnie.i okazały", lecz jest mimo to ulepszeniem.