OŚRODEK BADAWCZO-ROZWOJOWY INFORMATYKI mm.
BnV?iUt;icU!ei UUr»c« F»ió 1 L“'‘ic,I?*
G l i w i c e , ul. Chorzow ska 50
OPROGRAMOWANIE
SYSTEMOWE
OŚRODEK BADAWCZO-ROZWOJOWY INFORMATYKI
OPROGRAMOWANIE SYSTEMOWE
V
E3
Fiognam C iebo Ida
Wyłącznie do użytku na terenie PRL
W a r s z a w a 1975
Tytuł oryginału: Software - systems Document No. E 125 M
Przekład; Józef Niedźwiecki Redakcja: Zdzisław Zapolski
Komitet Redakcyjny
Mieczysław Gula, Andrzej Idźkiewicz, Janina Jerzykowska /sekre
tarz/, Jerzy Kisielnicki /zastępca przewodniczącego/, Stanisław Nelken, Krzysztof Skulski, Ryszard Terebus /przewodniczący/,
Zdzisław Zapolski
Opracowanie stylistyczne; Małgorzata Erontczak Opracowanie techniczne; Kazimierz Walczyński Korekta: Mirosława Gałecka-Guzik
Wydawca
OBRI - Dział Wydawnictw, 00-017 Warszawa, ul. Marszałkowska 104/122 Warszawa 1975. Nakład; 850 + 155 egz. Objętość; ark. wyd.2,25;
ark. druk. 6. Format A4. Papier offsetowy kl. III, 80g, 61x86
zam. 228/75 Cena zł 92.
S P IS TREŚCI
Streszczenie ... 5
I. Oprogramowanie systemowe ... 5
II. Oprogramowanie systemowe w latach 1970-1975 ... 15
III. Oprogramowanie systemowe w latach 1975-1980 ... 29
IY. Oprogramowanie systemowe w latach 1980-1989 ... 44
S T R E S Z C Z E N IE
Systemy komputerowe rozwinęły się poważnie od czasu, kiedy użytkownik musiał rozumieć i kontrolować każdy aspekt systemu, jeśli chciał za jego pomocą zrealizować niewielkie nawet, lecz przydatne dla siebie zadanie. Obecnie sprzęt i oprogramowanie wykonują automatycznie wiele powtarzających się funkcji, które dawniej wymagały najwięcej czasu i wysiłku od programistów i analityków systemów.
W początkowym okresie programowania użytkownik musiał wyra
żać swoje problemy w wewnętrznym języku maszyny, musiał stero
wać pracą wszystkich urządzeń wejścia/wyjścia, zajmować się przydzielaniem miejsc w pamięci oraz na innych nośnikach pamię
ciowych, tworzyć i utrzymywać zbiory danych, opracowywać własne programy usługowe. Jednakże, gdy wzrosła szybkość i złożoność komputerów stało się jasne, źe użytkownicy potrzebują nowych instrumentów do sterowania systemami i do skrócenia ozasu po
trzebnego na definiowanie problemów.
Jednym z rezultatów tej ciągłej ewolucji jest rozwój roz
maitych "pakietów programowych" /programów standardowych/ przy
stosowanych do realizacji wielu funkcji, które dawniej były wy
konywane przez personel zajmująoy się programowaniem u użytkow
nika. Te pakiety znane są pod wspólną nazwą "systemów operaoyj- nych"; tworzą one, jeśli idzie o ich złożoność, szeroki wach
larz od najprostszych systemów do systemów ezoterycznych.
W skład systemów operacyjnych wchodzą na ogół następujące elementy:
. system sterowania,
. system zarządzania danymi,
* translatory językowe /programy tłumaczące/, . programy usługowe,
. programy komunikacyjne /programy obsługujące teletransmisję danyoh/.
W niniejszym opracowaniu omówiono rozwój oprogramowania sys
temowego w trzech kolejnych okresach pięcioletnich; 1970—75»
5
1975-30 oraz 1930-85. Każdemu, z tych okresów poświęcony jest je
den rozdział, w którym opisane są przewidywane zmiany i rozwój oprogramowania systemowego w danym okresie czasu.
Okres 1970-75
W okresie 1970-75 nie nastąpiła poważniejsza zmiana w dzie
dzinie oprogramowania systemowego; zostały wprowadzone jedynie usprawnienia techniczne o mniejszym znaczeniu. Te usprawnienia w dziedzinie oprogramowania, które przede wszystkim dały korzyś
ci ekonomiczne, polegały na zastosowaniu znanych już technik, a w szczególności techniki pamięci wirtualnej. Koncepcja pamięoi wirtualnej nie jest nowa, jednakże jej wdrożenie odbywało się wyjątkowo wolno.
Okres 1975-80
W latach 1975-80 zacznie zanikać znana nam obecnie koncepcja '•centralnego procesora” , a wraz z nią także dzisiejsze systemy operacyjne. Dominująca stanie się koncepcja rozdzielonej archi
tektury jednostki centralnej, której zarysy zaczęły się kształ
tować już w latach 1970-75. Translatory językowe /programy tłu
maczące/, programy obsługujące zbiory itp. zostaną wbudowane do sprzętu. Wraz z rozszerzeniem się zakresu czynności inteligent
nych terminali upowszechni się stosowanie zdalnego przetwarza
nia oraz tzw. "rozdzielonej inteligencji” .
System automatycznego przetwarzania danych będzie miał całko
wicie modułową strukturę, a większość funkcji z zakresu oprogra
mowania będzie przejęta przez sprzęt. Ta k więc system APD stanie się systemem przystosowanym do teletransmisji danych i sterowa
nym przez dane.
Aktualnie prowadzone prace badawcze w dziedzinie oprogramowa
nia, których tematem jest sprawdzanie poprawności programów oraz automatyzacja programowania, umożliwią wdrożenie osiągnięć w tym zakresie do praktyki dnia codziennego. W związku z rozwojem
”proto-systemów” w sposób radykalny zmieni się rola programis
tów, zajmujących się opracowywaniem programów zastosowaniowych.
"Proto-systemy” będą zaopatrywały użytkowników w pomooe przydat
- 6 -
no przy rozwiązywaniu ich problemów w dziedzinie zastosowań.
Systemy te będą projektowane dla specyfioznych zastosowań lub funkcji i spełniać będą rolę właściwego pośrednika między u ż y t kownikiem a systemem. Umożliwią one użytkownikowi działającemu w ramach funkcji lub tematu, do których "proto-systera" będzie przystosowany, użyoie komputera do rozwiązania problemu, bez‘
formalnej znajomości programowania.
Architektura tzw. '’rozdzielonej inteligencji" doprowadzi do systemów "fail soft", a także do zdalnej naprawy jednostek, któ
re uległy awariom.
Okres 1980-85
Ten okres będzie można nazwać "erą konsolidacji", ponieważ wiedza nagromadzona w okresaoh poprzedzających zostanie wyko
rzystana do rozwinięcia systemu totalnego. Ten okres będzie świadkiem ewolucji systemu APD w kierunku systemu będącego uzu
pełnieniem rozumu ludzkiego, z właściwym mu przetwarzaniem in- formacj i .
I. OPROGRAMOWANIE SYSTEMOWE
Przegląd rozwoju oprogramowania systemowego
Systemy komputerowe rozwinęły się poważnie od czasu, kiedy użytkownik musiał rozumieć i kontrolować każdy aspekt systemu,
jeśli chciał za jego pomocą zrealizować niewielkie nawet, lecz przydatne dla siebie zadanie. Obecnie sprzęt i oprogramowanie wykonują automatycznie wiele powtarzających się funkcji, które dawniej wymagały najwięcej czasu i wysiłku od programistów i 'a- nalityków systemów.
W początkowym okresie rozwoju programowania użytkownik m u siał wyrażać swoje problemy w wewnętrznym języku maszyny, m u siał sterować pracą wszystkich urządzeń wejścia/wyjścia, zajmo
wać się przydzielaniem miejsc w pamięoi oraz na innych nośni
kach pamięciowych, tworzyć i utrzymywać zbiory danych, opraco
wywać własne programy usługowe. Jednakże, gdy wzrosła szybkość i złożoność komputerów, stało się jasne, że użytkownicy muszą mieć nowe instrumenty do sterowania systemem i dla skrócenia
czasu potrzebnego na definiowanie problemów.
Jednym z rezultatów tej ciągłej ewolucji jest rozwój rozmai
tych "pakietów programowych" /programów standardowych/ przysto
sowanych do realizacji wielu funkcji, które dawniej wykonywał personel zajmujący się programowaniem u użytkownika. Pakiety te znane są pod wspólną nazwą "systemów operacyjnych"; tworzą one jeśli idzie o ich złożoność, szeroki wachlarz od systemów naj
bardziej prostyoh do systemów ezoterycznych.
A. Rodzaje systemów operacyjnych
Systemy operacyjne są na ogół tak projektowane, aby działać w jednym lub kilku następujących układach:
- 8 -
. w układzie jednoprogramowym /Monoprogramming/ - jedno zadanie jest rozpoczynane i zrealizowane, po nim zostaje wprowadzone zadanie następne;
. w układzie wieloprogramowym /Multiprogramming/ - kilka zadań realizowanych jest równocześnie;
. w układzie wieloprocesorowym /Multiprocessing/ - zadanie zo
staje podzielone między dwa lub kilka procesorów. Umożliwia to szybsze przetwarzanie oraz pozwala na zastąpienie proceso
ra, który uległ awarii.
4 Jednoprogramowość
V/ warunkach jednoprogramowości występują dwie formy działa
nia;
. przetwarzanie partiowe /Batch Processing/ - wszystkie dane wejściowe niezbędne dla danego programu są zebrane przed przy
stąpieniem do jego realizacji. Dane wejściowe mogą być wpro
wadzone do komputera na miejscu lub w sposób zdalny, co ozna
cza, że urządzenie wejściowe może znajdować się fizycznie w tym miejscu, w którym znajduje się komputer lub może być po
łączone z systemem za pomocą publicznych środków łączności;
. transmisja danych /Communications/ - dane są w sposób oiągły przyjmowane od terminali wejścia/wyjścia, a następnie prze
twarzane i przesyłane z powrotem. Terminale mają bezpośrednie połączenia z komputerem poprzez publiczne środki łączności.
Wielopr o g r a m o w o ś ć / W i e l o p r o c a s o r o w o ś ć
V/ warunkach wieloprogramowośoi lub wieloprocesorowośoi można przetwarzać programy w obu układach, w układzie przetY/arzania partiowego oraz w układzie transmisji danych. W dodatku warunki te dopuszczają także programy interaktywne. W programie inter
aktywnym oddalony użytkownik prowadzi "dialog" z komputerem w tym sensie, że po każdym wejściu lub "zapytaniu" z terminalu, następuje odpowiedź lub potwierdzenie z komputera. Przetwarza
nie interaktywne stanowi poważne rozszerzenie systemu kompute
rowego, ponieważ dzięki niemu opracowywanie programów, rozwią
zywanie problemów, manipulowanie zbiorami oraz zadawanie pytań może odbywać się z oddalonych punktów, w odpowiednio krótszym
czasie i przy niższych kosztach.
B. Składniki systemu operacyjnego
Niezależnie od sposobu przetwarzania, systemy operacyjne za
wierają na ogół następujące składniki;
. system sterowania /control system/ - dla zapewnienia sprzęże
nia między biegnącym programem /producenta lub klienta/ a konfiguracją sprzętu. Zadaniem tego sprzężenia jest automa
tyczne planowanie, alokacja /przydzielanie/ oraz sterowanie urządzeniami wykorzystywanymi w systemie;
. system zarządzania danymi /Data management system/ - dla ste
rowania bazami danych masowych poprzez prowadzenie automa
tycznej alokacji obszarów zbiorów oraz przez wykorzystanie sprawnych technik przechowywania i vryszukiwania zapisów w tych zbiorach;
. translatory językowe /Language processors/ - dla tłumaczenia programów pisanych w języku symbolicznym, naukowym lub w ję
zyku typu angielskiego na język binarny maszyny;
. programy usługowe /service programs/ - dla realizacji powta
rzających się często ozynności usługowych /takich jak przeno
szenie danych z kart dziurkowanych na taśmę magnetyczną/;
. programy komunikacyjne /Communications programs/ - dla obsłu
gi publicznych linii łączności oraz oddalonych terminali.
System sterowania
Rozwój techniczny przyniósł w tych latach tak znaczne postę
py w zakresie szybkości działania sprzętu komputerowego, że wiele elementów tego sprzętu jest właściwie bezczynnych w cza
sie wykonywania pojedynczego programu. Wynika to stąd, że więk
szość programów zajmuje się głównie albo wykonywaniem obliczeń, albo wykonywaniem operacji wejściowych i wyjściowych. Tak więc w większości przypadków albo jednostka centralna jest zajęta a urządzenia peryferyjne są bezczynne, lub na odwrót.
W celu bardziej efektywnego wykorzystania sprzętu, niektórzy programiści próbowali, na poozątku, włączać elementy z różnych zadań do jednego programu. Ta metoda okazała się jednakże nie
praktyczna, była bowiem zbyt trudna dla większości programis
- 10 -
tów.-Prace badawcze w zakresie programowania, prowadzone u róż
nych producentów, doprowadziły w końcu do rozwoju metody, która pozwala na równoczesne i efektywne użytkowanie sprzętu kompute
rowego przez niezależne programy w procesie wieloprogramowym.
Wdrożenie tej metody wymagało wyłączenia z indywidualnych, pro
gramów elementów, zajmujących się planowaniem przetwarzania po- szczególnych zadań /programów/, sterowaniem pracą urządzeń wejś
cia/wyjścia, zarządzaniem pamięcią oraz przerywaniem biegu prze
twarzania, i ulokowania tych elementów vie wspólnym pakiecie
"kierowania ruchem" zwanym systemem sterowania. System sterowa
nia jest właśnie tym sposobem, który umożliwia, w oparciu o pro
gramy i za pomocą sprzętu, realizację tych zadań z zakresu sta
rowania, które nazywane są często "zarządzaniem środkami".
Kierowanie zadaniami /Task Management/
«
Jednostka pracy, która ma być wykonana przez komputer, o- kreślana jest jako zadanie /task/. Posługując się programami.
kierowania zadaniami system sterowania ustala porządek /kolej
ność./, w jakim poszczególne zadania będą wykonywane i steruje rozdziałem czasu przetwarzania pomiędzy współbieżne zadania, w oparciu o priorytety ustalone przez użytkownika. Dodatkowo, pro
gramy kierowania zadaniami realizują funkcje łączności między- zadaniowej, funkcje łączności z operatorem oraz funkcje z za
kresu rozliczenia wykorzystania zastosowanego sprzętu.
Kierowanie wejściem/wyjściem /input/Output Management/
Programy kierowania wejściem/wyjściem zajmują się przydzie
laniem urządzeń we/wy i planują porządek, w jakim rozkazy we/wy mają być realizowane. Do obowiązków programów kierowania wejś
ciem/wyjściem wchodzi także analizowanie wyników każdego rozka
zu we/wy, sprawdzanie czy operacje zostały wykonane bezbłędnie oraz poprawianie w razie potrzeby błędów.
Zarządzanie pamięcią /Memory management/
Programy zarządzania pamięcią zajmują się alokacją oraz de- alokacją obszaru pamięci komputera dla rozmaitych zadań, które mają być realizowane. Alokacja oznacza przydział miejsca w pa
11
mięci calem wykorzystania go przez określony program. Dealoka- cja oznacza zabranie przydzielonego programowi, a już mu nie
potrzebnego, miejsca w pamięci, po to aby je przydzielić innemu programowi.
Kierowanie przerywaniami /Interrupt Management/
Programy kierowania przerywaniami sterują reakcjami systemu na wymagania związane z obsługą programów. Analizują one różne
go rodzaju przerwania w pracy komputera /zakończenie wejścia/
wyjścia, błąd w programie, awaria sprzętu, itp./ i przekazują sterowanie temu elementowi systemu sterowania, który jest odpo
wiednio zaprogramowany, aby podjąć działanie w danej sytuacji.
System operowania danymi /Data Management System/
Użytkownicy komputerów domagali się zwiększenia roli systemu operacyjnego w operowaniu zbiorami danych, gdy zbiory te stawa
ły się coraz większe i bardziej złożone. Programy operowania danymi stworzyły użytkownikom możliwość jednorazowego przygoto
wania i przekazania danych, do dyspozycji komputera, po czym sys
tem operacyjny przejmuje całkowitą kontrolę nad tymi danymi.
Tak więc system operowania danymi przejmuje odpowiedzialność za umieszczanie zbiorów w pamięci, za udostępnianie ich zgodnie z wymaganiami użytkownika, za utrzymywanie zbiorów zastępczych /kopii zbiorów/ oraz za ostateczną eliminację zbiorów, gdy nie są one już potrzebne.
Translatory językowe /Language Processors/
Pisanie programów w języku wewnętrznym maszyny jest dla więk
szości ludzi bardzo trudne i wymaga długotrwałego specjalis
tycznego szkolenia. Z tego też powodu producenci komputerów wprowadzili do użytku klientów wiele specjalnych języków pro
gramowania. Języki te umożliwiają formułowanie problemów, które mają być rozwiązywane przez komputer, w postaci bardziej zrozu
miałej dla programistów niż dla komputera.
Pierwszym krokiem w tym kierunku było opracowanie języków
- 12 -
typu ASSEMBLERÓW, które przekształcały język symboliczny stoso
wany przez programistę na język maszynowy. Potem nastąpiło wpro
wadzenie kompajlerów COBOLu, FORTRANU, ALGOLu, P L 1 . Były to bardziej skomplikowane programy, które przekształcały wyrażenia angielskie lub wyrażenia matematyczne na kod maszynowy.
Wraz z rozwojem języków programowania wyższego rzędu, pro
gramowanie stało się w zasadzie niezależne od maszyny. Oznacza to, że programista może posiadać mniej technicznych, wiadomości dotyczących komputera, aby móc opracowywać programy, które mają być przez ten komputer realizowane.
Programy usługowe /service Programs/
Programami usługowymi są rutyny opracowywane dla wykonywa
nia, w sposób standardowy, czynności często powtarzających się.
Oto typowe przykłady rutyn usługowych:
. programy typowe /utility routines/,
. programy diagnostyczne /Diagnostic routines/,
. programy konwersyjne /konwersji zbiorów z jednego nośnika na inny/ /Conversion routines/,
. programy biblioteczne /Library maintenance routines/, . programy sortowania i łączenia /sort/merge routines/.
Programy obsługujące teletransmisję danych /Communications Pro
grams/
Możliwość podłączania odległych urządzeń wejścia/wyjścia bezpośrednio do komputera za pomooą linii telefonicznych, do
prowadziła do rozwinięcia- wyspecjalizowanych systemów obsługi jedynych w swoim rodzaju potrzeb użytkowników teletransmisji danych. Systemy te dzielone są na ogół.na trzy kategorie:
. Pytanie-Odpowiedź /ïnquiry-Response/
To zastosowanie jest przede wszystkim systemem przekazu wi a domości "jedna za jedną". Po każdej wiadomości przesłanej z oddalonego terminalu do komputera, następuje przesłanie odpo
wiedzi z komputera do terminalu;
. Zbieranie i rozprowadzanie danych /Data Collection-Dissemi- nation/
Te dwa rodzaje zastosowań są dzisiaj najbardziej wykorzysty
wane. Zbieranie danych zakłada wykorzystywanie oddalonych ter
m i n a l i , jako środków szybkiej i taniej transmisji danych do ośrodka komputerowego, dla przetwarzania. W systemach rozpro
wadzania danych informacje wychodzące z komputera /raporty, rachunki, itp./ rozsyłane są do odbiorców via obwody teleko
munikacyjne, dla zaoszczędzenia czasu i dla obniżenia kosztów transportowych i pocztowych;
. Przełączanie informacji /Message Switching/
W tego rodzaju systemach komputer wykorzystywany jest jako centrum przełącznikowe, przechowujące informacje przeznaczone dla wszystkich terminali przyłączonych do sieci teletransmi
syjnej i rozsyłające je do nich.
Ogólnie biorąc, oprogramowanie dla teletransmisji danych jest wysoce wyspecjalizowaną formą sterowania wejściem/wyjściem oraz zarządzania danymi. Różni się ono od konwencjonalnego przetwa
rzania danych głównie sposobem wprowadzania informacji do sys
temu i wyprowadzania ich z niego. Informacje mogą napływać z terminali w dowolnym porządku oraz w nieustalonych interwałach czasowych. Zależnie od rodzaju systemu, informacje te mogą często "zaprzątać uwagę" systemu w określonym okresie czasu.
Tak więc, w celu ułatwienia tego przepływu danyoh, niezbędna jest specjalna linia oraz urządzenia sterujące terminalem, aby zwiększyć normalne funkcje systemu w zakresie przetwarzania da
nych.
W dalszej części niniejszego opracowania omawiany zostanie rozwój oprogramowania systemowego w trzeoh następujących po 3 0- bie pięcioletnich okresach czasu: 1970-75» 1975-80 oraz 1980-85.
Każdemu z tych okresów poświęcony jest rozdział, w którym przed
stawione są przewidywane zmiany lub rozwój w dziedzinie opro
gramowania systemowego w danym okresie.
II. OPROGRAMOWANIE SYSTEMOWE W LATACH 1970-1975
W latach 1970-75 nie nastąpiła poważniejsza zmiana w dzie
dzinie oprogramowania systemowego; wprowadzone zostały jedynie usprawnienia techniczne o mniejszym znaczeniu. Te usprawnienia
I
w dziedzinie oprogramowania, które przyniosły w wyniku przede wszystkim korzyści ekonomiczne, polegały na zastosowaniu zna
nych już technik,a w szczególności techniki pamięci wirtualnej.
Koncepcja pamięci wirtualnej nie jest nowa,, jej wdrożenie odby
wało się jednakże wyjątkowo wolno. Nowością na tym odcinku jest fakt, źe pod koniec okresu 1973-75 będzie można nabywać systemy pamięci wirtualnej od każdego poważniejszego dostawcy wielkiego sprzętu komputerowego.
Wprowadzenie pamięci wirtualnej oznacza, że użytkownicy są w stanie po raz pierwszy wykorzystywać pakiety programowe, które przekraczają fizyczną pojemność pamięci wewnętrznej ich kompu
tera. Jest to szczególnie ważne dla posiadaczy niewielkich kom
puterów. Dzięki stosowaniu techniki pamięci wirtualnej nie za
chodzi konieczność opracowywania własnych pakietów programów, dostosowanych do systemu. Istnieją obecnie możliwości uzasad
nionego ekonomicznie zakupu lub dzierżawienia pakietów- progra
mów, które mogą być z łatwością przystosowane do systemu kompu
terowego, posiadanego przez użytkownika.
Oprócz powyższego, systemy pamięci wirtualnej będą stymulo
wały stosowanie przygotowanych z góry /prefabrykowanych/ pomooy do programowania, w wyniku czego wzrośnie wydajność pracy pro
gramistów. W tym samym czasie wzrośnie wykorzystanie programów interaktywnych.
Rysunek 1 przedstawia prawdopodobny koszt wiersza kodu, któ
ry będzie wynikiem tego rozwoju.
Doprowadzi to w końcu do uproszczenia płaszczyzny styku m i ę dzy użytkownikiem a systemem /po części drogą przejęcia funkcji programowych przez urządzenia/. Będzie to podstawą wzrostu v^y—
dajhości z punktu widzenia personelu zajmującego się rozwiązy-
6 6 72 76 8 0 Lota
R Y S . 1 . r t a s z t Ai/erszo Hodu
waniem problemów /nie programistów/, personelu zajmującego się programov7aniem, a także operatorów i konserwatorów.
A. Pamięć w i r t u a l n a
K o n c e p c j ę pamięci wirtualnej m o ż n a najłatwiej wyjaśnić przez p r zeciwstawienie s y s t e m ó w pamięci wirtualnej bardziej znanym systemom pamięci r z e c z y w i s t e j .
W obu p r z y p a d k a c h p r o g r a m zajmuje jakiś obszar programowy.
Przez obszar p r o g r a m u rozumie się całkowitą liczbę bajtów p a mięci komputera, która z o s t a ł a przj^dzielona dane m u programowi;
w o b s z a r z e .tym znajdują się instrukcje programu, stałe p r o g r a mowe, m i e j s c a danych i e w e n t u a l n i e jakieś m i e j s c a n i e w y k o r z y s
tane .
Obszar programowy rezyduje zawsze na jakimś fi z y c z n y m n o ś n i ku pamięci. O d r ó ż n i a m y dwa rodzaje fizycznych n o ś n i k ó w pamięci:
pamięć główną /na ogół rdzenie m a g n e t y c z n e / oraz pamięć p o m o c niczą /na ogół dysk lub bęben/. Określenie pamięć główna o z n a cza pamięć centralną komputera. W pamięci głównej m u s z ą z n a j d o wać się instrukcje realizowane przez jednostkę centralną oraz dane, do których te instrukcje się odwołują. Pamięć 'pomocnicza służy do p r z e c h o w y w a n i a p r o g r a m ó w oraz tych części systemu o p e racyjnego, które nie biorą aktualnie u d z iału w przetwarzaniu.
Program, który m a być przetwarzany, musi zostać w całości lub częściami p r z e n i e s i o n y z pamięci pomocniczej do pamięci g ł ó w nej. Program z n a jdujący się w pamięci głównej może być czasowo
zawieszony i oczekując na dalsze przetwa r z a n i e może być p r z e n i e s i o n y w całości lub częściami do pamięci pomocniczej.
Główne różriice pomiędzy systemami pamięci rzeczywistej a systemami pamięci wirtualnej p o l e g a j ą na metodach, które s t o s o wane są przy alokacji obszaru p r ogramowego i przy sterowaniu nim. W systemie pamięci rzeczywistej obszar p r o g r a m o w y o k r e ś l o nego programu zajmuje p r z y l e g a j ą c y /ciąg ł y / zespół miejsc w p a mięci głównej. Gdy p r o gram jest przetwarzany, cały obszar p r o gramowy musi rezydować w pamięci głównej i musi zajmować w niej
i zwarte miejsce.
W systemie pamięci wirtualnej obszar programowy określonego programu zajmuje nie sąsiadujące ze sobą m i e j s c a w obu p a m i ę ciach, tak w pamięci głównej jak i w pamięci pomocniczej. G d y dany program jest przetwarzany, znaczne jego części m o g ą się wciąż znajdować w pamięci pomocniczej. Części p r o g r a m u r e z y d u jące w o k r e ś l o n y m m omencie cz a s u w pamięci głównej, zawierają przeważnie tylko te elementy programu, w których z n a jdują się aktualnie p r zetwarzane instrukcje oraz dane, do których i n s truk
cje te odwołują się. Określenie pamięć w i r t u a l n a odnosi się do całości o b s z a r u programowego czy obszaru adresowego, którym p o tencjalnie dysponuje i n d y w i d u a l n y program.
Opracowano rozmaite m e t o d y sprzętowe i programowe, które u m o ż l i w i a j ą w s p ólne w y k o r z y s t a n i e b d y s p o n o w a n e j pamięoi przez kilka p r z e t w a r z a n y c h zadań. Ponieważ w y m a g a n i a odnośnie m i e jsca w pamięci z m i e n i a j ą się z p r o g r a m u na p r o g r a m / z m i e n i a j ą się one nawet w trakcie r e a l i z o w a n i a jednego programu/, dlatego a- lokacja pamięci powinna być r e a l i z o w a n a w sposób dynamiczny.
Ponadto, z p u n k t u w i d z e n i a użyt k o w n i k a czy programisty, system powinien wyglądać tak, jak gdy b y posiadał n i e o g r a n i c z o n ą pamięć główną i jak gdyby nie było o g r aniczeń odnośnie r o z miarów p i s a nych przez nie programów. W p r z e c i w n y m -bowiem p r z y p a d k u p r o g r a miści p o ś w i ę c a j ą wiele czasu na '»upychanie« p r o g r a m u lub na w y myślanie sposobów p o d z i a ł u p r o gramu na s e g m e n t y i składanie
tych s e g mentów w czasie realizacji programu. Pomysł pamięci wirtualnej usuwa to skrępowanie programistów, zwiększając tym
samym ich wydajność,
B. Pomoce dla p r o g r a m i s t ó w
Trzecia generacja komputerów zaznajomiła ś r o dowisko i n f o r m a tyków z o p r o g r a m o w a n i e m systemowym. W ś r ó d celów oprogramov;ania systemowego wymienić należy:
. u p r oszczenie płaszczyzny styku z użytkownikiem, . zwiększenie wydajności programisty,
. poprawienie stosunku koszty/wydajność w systemach.
Koszty oprogramowania trzeciej generacji komputerów o s i ą g n ę ły stałą wartość, z b l iżającą się do 10 d o l a r ó w za wiersz kodów.
- 18 -
I choć koszt w i e r s z a icodów pozostał bez zmian, bo jednak koszt program o w a n i a podniósł się znacznie, a działalność w dziedzinie automatycznego przetwa r z a n i a danych stała się pracochłonna.
Z drugiej strony zmniejszył się poważnie w z g l ę d n y koszt u r z ą dzeń.
A k c e p t a c j a pamięci wirtualnej stwarza u ż y t k o w n i k o m nowe m o ż liwości znacznego zwiększenia wydajności personelu, zajmującego się au t o m a t y c z n y m prz e t w a r z a n i e m danych. W i e l u użytkowników r o z w a ż a obecnie stosowanie prefabrykowanych pakietów programowych ze względu na konieczność u t r zymania kosztów programowania na ust a l o n y m poziomie, a także wobec konieczności zwiększenia opła
calności ekonomicznej nowych zastosowań. Ta tendencja umocni się, gdy z-jednej 3trony u ż ytkownicy n a b i o r ą zaufania do d o s tawców, a z drugiej nabiorą doświad c z e n i a w posług i w a n i u się p a m ięcią wirtualną. Powyższemu trendowi towarzyszy wzrastające stosowanie, niezależnie dostarc z a n y c h pomocy programowych, któ
rych zadaniem jest zwiększenie wydajności programistów. T e n d e n cja ta będzie się umacniała wraz z p r z e c h o d z e n i e m u ż y t k o w n i k ó w do stosowania systemów pamięci wirtualnej. Wzras t a j ą c e s t o sowa
nie pomocy programowych wiąże się z p r z e j ś c i e m u ż y t k o w n i k ó w do stosowania języków p r ogramowania wyższego rzędu, co samo przez się przyniosło wzrost wydajności pracy programistów. Przy p r z y zwyczajaniu się do s t o sowania programÓY/ usługowych, dostępnych w ramach s y s t e m ó w operacyjnych, przeszkodą w akceptacji pomocy programowych mo g ł y być jedynie w y m agania wewnętrznej pamięci komputera /pamięci na r d z eniach magnetycznych/. Ponieważ p r z e szkoda ta z o s tała skutecznie usunięta wraz z w p r o w a d z e n i e m p a mięci wirtualnej, należy się spodziewać znacznego wzrostu s t o sowania p o m o c y programowych oraz rozwoju p r o gramów w systemie o n - l i n e .
Rozwój programów pracujących w systemie on-line n a k ł a d a nowe w y m agania na oprogramowanie systemowe. W w a r unkach idealnego syśtemu d i alogowego p o ż ądanym staje się kompajler d z i ałający w sposób narastający. Takie kompajlery u k ł a d a j ą składnię a n a l i z u jąc i tłumacząc każdy napływający wiersz kodu. A k t u a l n i e kom
p a j l e r y te są niezmiernie powolne i nie stosuje się ich na w i ę k szą skalę. K o mpajlery dialogowe / i n t e r a k t y w n e / oraz programy redagujące teksty w u kładzie on-line b ę d ą jednakże coraz sze
rzej a k c e p t o w a n e . Obecnie w p o w s z e c h n y m u ż y c i u są interaktywne p r o gramy redagujące teksty, które pomagają w d o konywaniu zmian i p o p r a w e k w programach, w w y z n a c z a n i u n o w y c h n u m e r ó w s e k w e n cyjnych, w p r z e s y ł a n i u b l o k ó w kodów, we w p r o w a d z a n i u rutyn, itp.
Większość inte r a k t y w n y c h kompejlerów oraz programów r e d a g u j ą cych teksty w układzie on-line, d o starczanyoh jest przez p r o d u cent ó w komputerów, w kategorii p r o gramów tłumaczących, w ramach s ystemu operacyjnego. Podczas, gdy producenci komputerów d o s t a r czają interaktywne kompajlery oraz p r o g r a m y redagujące teksty, dodatkowe pomoce dla programistów, potrzebne przy o p r a c o w y w a n i u programów w układzie on-line, m o ż n a uzyskać od wyt w ó r c ó w
oprogramowania. Przygotowując się do op r a c o w y w a n i a p r o gramów w układzie on-line, należy zbadać przydatność tych pomocy jako dodatkowego środka, u m ożliwiającego u s prawnienie pracy p r o g r a mistów.
C. Diagn o s t y k a on-line - niezawodność s y s temu
Przy budowie o p r o g r a m o w a n i a systemowego musi się zwracać szczególną uwagę na trwałość systemu. Jest to warunek kluczowy zadowolenia użytkowników, tym bardziej, że coraz więcej s y s t e mów automatycznego p r zetwarzania danych staje się "mózgami"
korporacji. Jeśli pamięć lub u r z ądzenia zarządzające pamięcią dostosowane są do zadań, jak to m a miejsce w systemach pamięci w i r t u a l n e j , wówczas można uzyskać trwały system. T r w a ł y system powinien posiadać nastę p u j ą c e właściwości:
. detekcję i k o r ekturę błędów', . d i a gnostykę on-line,
. testy lokalizujące uszkodzenia, . możliwość izolacji,
. możliwość r e k o n f i g u r a c j i , . możliwość restartu,
. bezpieczeństwo systemu.
K a ż d y z w y m i e n i o n y c h wyżej el e m e n t ó w wyma g a nie tylko w y d a t ku na sprzęt i oprogramowanie, lecz także zmian technicznych, które pozwoliłyby uzyskać opłacalną ekonomicznie trwałość s y s
- 20 -
temu. Wymienione właściwości są obecnie technicznie osiągalne, przy zastosowaniu odpowiednich urządzeń i odpowiedniego oprogra
mowania. To oprogramowanie musiałoby jednakże być umieszczone w pamięci głównej, co podniosłoby w poważnej mierze leoszt systemu.
Tym niemniej, dwa osiągnięcia dają nadzieję uzyskania udosko
nalonej trwałości systemu; są nimi;
. zmniejszający się koszt urządzeń, . pamięć wirtualna.
Przy obniżającym się koszcie sprzętu, staje się obecnie eko
nomicznie opłacalne i możliwe wbudowanie do systemu komputerowe
go urządzeń dla detekcji i korektury błędów. Pierwsze kroki w tym kierunku zostały poczynione w systemach trzeciej generacji, w przyszłości dokona się w i ę c e j .
Wprowadzenie systemów pamięci wirtualnej usuwa skrępowanie związane z pojemnością pamięci głównej. W rezultacie, w bezpo
średniej już przyszłości będziemy świadkami szerokiego stosowa
nia testów lokalizujących uszkodzenia /PLT's/ oraz diagnostyki on-line, jako pomocy przy odnajdywaniu uszkodzonych elementów w systemie. Te testy lokalizujące uszkodzenia /FLT's/ oraz diag
nostyka on-line realizowane będą pod kontrolą systemu operacyj
nego. Metody restartu systemu także będą rozwinięte i znacznie usprawnione oraz wdrożone jako uzupełnienia systemu operacyjne
go. Jest to szczególnie ważnym problemem w instalacjach wielo
dostępnych, gdzie wielu użytkowników będzie korzystało równo
cześnie z jednego systemu.
W wyniku tego rozwoju wzrośnie dyspozycyjność systemu, obniży się średni czas jego reperacji i niższy będzie poziom fachowy wymagany od personelu, zajmującego 3ię konserwacją systemu.
Wzrost dyspozycyjności systemu przyniesie w rezultacie:
. zwiększoną wydajność,
. usprawnione planowanie przetwarzania, . przyspieszoną rotację zadań,
. uproszczenie zadań operatora, . zmniejszenie kosztów konserwacji,
. niższe wymagania kwalifikacyjne odnośnie personelu zajmującego się konserwacją.
Wymienione wyżej korzyści wynagrodzą użytkownikom wzrost w y datków, związany z uzyskaniem zwiększonej sprawności systemu. Te
narastające usprawniania są zresztą niezbędnym polem doświad
czalnym, prowadzącym do systemów typu "fail soft", które roz w i ną się w latach 1975-80.
D. Efekty sprzętowe /hardware * owe/ w oprogramowaniu systemowym
W komputerach trzeciej generacji producenci usiłowali p o ł ą czyć w jed n y m systemie wszel k i e m o ż l i w e funkcje oraz u d o g o d n i e nia. Te u s i ł o w a n i a dały dwa wyniki, a mianowicie;
. poważne opóźnienia w rozwoju oprogramowania,
. narażenie użytkowników na niepotrzebne wydatki, związane z wysokimi kosztami ogólnymi.
Usiłując rozwinąć systemy operacyjne przydatne dla systemów obsługujących wielu użytkowników, musiano podejmować nowe i skomplikowane zadania projektowe w oparciu o ograniczony zasób wiedzy. Spowodowało to opóźnienia w realizacji założonych ha r monogramów nowych opracowań, a także niewyprodukowanie na czas zapowiedzianych już na rynku urządzeń. Wynikająca stąd niska efektywność systemu okazała się także kosztowna dla użytkowni
ków.
Ostatnio proponuje się architekturę systemową, wprowadzającą specjalizowana "czarne skrzynki"; zespół takich "czarnych skrzy
nek" stanowi normalny system. Takie wyspecjalizowane elementy mają tę zaletę, że wprowadzane na bieżąco udoskonalenia tech
niczne w sprzęcie umożliwiają osiąganie wyższej wydajności przy niższych kosztach. Konwersja funkcji oprogramowania na funkcję sprzętu jest bardziej praktyczna z ekonomicznego punktu widze
nia. Zaleoane do szerszego stosowania piszące pamięci sterujące zapewniają niezbędną elastyoznośó.
Na rysunku 2 przedstawiono graficznie wzajemne zależności między cenami sprzętu, malejącymi kosztami ogólnymi systemu oraz osiągalną przez użytkowników mocą dysponowaną /przetwarzania/.
Można powiedzieć, że systemy najbliższej przyszłości będą się składały z następujących elementów;
. z wyspecjalizowanych procesorów dla wejścia/wyjścia, . z hierarchii pamięci,
- 22 -
¿om s/olouona m o c
procesora
K o sz ty ogoLne sy s te m u
Uysport o u ono m a c
p r o c e s o r a
% nie • efehtyu naści
. z wyspecjalizowanych procesorów dla teletransmisji danych, . z ultraszybkich procesorów dla arytmetyki oraz sterowania.
Zmiany w architekturze czy strukturze systemu także będą miały wpływ na organizację oprogramowania systemowego. Wymie
nione zmiany w architekturze systemu wywrą najmniejszy wpływ na następujące składniki systemu operacyjnego: na system sterowa
nia, system operowania danymi oraz na programy komunikacyjne.
Rozwój wyspecjalizowanego procesora dla wejścia/wyjścia przy
czyni się do tego, że umieszczenie w tym procesorze funkcji kierowania wejściem/wyjściem systemu sterowania, z ekonomiczne
go punktu widzenia stanie się praktyczne. Uprości to w efekcie system sterowania i umożliwi przejęcie niektórych funkcji kie
rowania wejściem/wyjściem przez sprzęt.
Funkcja systemu sterowania w zakresie kierowania pamięcią rezydować będzie w jednostce sterującej pamięcią. Jednostka ta będzie sterowała całą hierarchiczną strukturą p a m i ę c i , natomiast pamięci posiadać będą łączność z różnymi procesorami, wchodzą
cymi w skład konfiguracji systemu.
Funkcja operowania danymi, stanowiąca element dzisiejszych systemów operacyjnych, jest najczęściej złożonym systemem, wy
magającym wysokich nakładów. Rozwój wyspecjalizowanych proceso
rów do obsługi zbiorów umożliwi zmniejszenie złożoności funkcji operowania danymi. Dlatego więc dany przedział czasu będzie o- kresem, w którym prowadzone będą eksperymenty z wyspecjalizowa
nymi procesorami dla obsługi zbiorów.
Jesteśmy obecnie świadkami tendencji zmierzającej do stoso
wania specjalnych procesorów dla teletransmisji danych, wstęp
nie przygotowujących dane. Tendenoja ta pojawiła się wraz z przechodzeniem użytkowników do szerszego stosowania terminali.
Nie jest bowiem ekonomicznie uzasadnione stosowanie uniwersal
nego systemu APD do efektywnej obsługi dużej ilości terminali.
W związku z obniżeniem się kosztów sprzętu, bardziej . opłacalną obecnie jest instalacja procesora, zaprojektowanego specjalnie dla obsługi transmisji danych. Wobec tego, że takie procesory są obecnie osiągalne, realne stało się przeniesienie programów obsługujących teletransmisję danych z jednostki centralnej do specjalnego procesora komunikacyjnego, co przyczynia się dodat
kowo do uproszczenia systemu operacyjnego.
- 24 -
E. Modułowość ¿programowania systemowego
•."Gdy wzrasta ilość i doświadczenie użytkowników komputerów,, a także gdy'oprogramowanie obejmuje coraz bardziej złożone i odpowiedzialne funkcje, zdarza się często, że opracowywane przez producentów standardowe algorytmy nie nadają się dla określo
nych zastosowań. Obecne systemy operacyjne, dla przykładu, róż
nią się między sobą poważnie sposobem planowania kolejności rozpoczynania realizacji zadań w oczekującej kolejce tych za
dań.. W niektórych przypadkach zadania wykonywane są na zasadzie '-'pierwsze ?/eszło - pierwsze wyszło" /first in - first out/, w Innych - kolejność rozpoczynania zadań zdeterminowana jest przez priorytet zewnętrzny, w jeszcze innych - priorytet ten jest ustalany automatycznie w zależności od czasu jaki zadania te.straciły w kolejce, co znane jest ogólnie jako zasada pierw
szeństwa działania /priority aging/.
• Każdy' z powyższych algorytmów wymaga znacznej ilości opro
gramowania i może być bardzo kosztowny dla użytkownika, w szcze
gólności jeśli nie da każdemu użytkownikowi tego, czego on po
trzebuje dla swej ■ instalacji. Dlatego też wywierana jest presja na rynek w tym kierunku, aby stworzyć takie warunki użytkowni
kom, w których mogliby oni, zamiast korzystania z algorytmów standardowych, tworzyć potrzebne im algorytmy dla każdej możli
wej do określenia poważniejszej funkcji systemu operacyjnego, przez dobór oraz integrację gotowych elementów. Przykładem mogłyby tu być następujące funkcje: planowanie przetwarzania zadań, rozliczanie wykonanej pracy, sterowanie priorytetem w procesie przetwarzania wieloprogramowego, działanie na wypadek błędu, itp.
Jeśli użytkownik ma mieć możliwość doboru algorytmów stan
dardowych, czy też możliwość zastępowania algorytmów dostarcza
nych przez producentów swoimi własnymi, to system musi mieć strukturę modułową. Oznacza to, że każda funkcja i każdy algo
rytm powinny być dobrze zdefiniowane odnośnie tego co one wyko
nują, a także tego z czym współpracują. Wszyscy dostawcy opro
gramowania, tak producenci oprogramowania jak i producenci kom
puterów, notują zapotrzebowanie użytkowników na oprogramowanie o strukturze modułowej.
Przyczyną opóźnień w wytwarzaniu oprogramowania systemowego o strukturze modułowej był brak opracowanej i dostępnej metodo
logii, a więc takiej dyscypliny w zakresie oprogramowania, która spełniałaby rolę podobną do nauki o konstruowaniu. Tym niemniej dyscyplina ta rozwija się szybko. Dojdzie do takiej modułowości oprogramowania systemowego, że w efekcie powstanie jedyny system operacyjny, pozwalający użytkownikowi na wybór stopnia złożonoś
ci jego funkcji w oparciu o potrzeby operacyjne użytkownika. W y nika z tego, że każda instalacja do automatycznego przetwarzania danych będzie posiadała unikalne oprogramowanie systemowe, które będzie odpowiadało jej charakterystyce operacyjnej w każdym m o mencie czasu. Mogłoby to spowodować wzrost kosztów konserwacji
systemu.
Oto niektóre właściwości modułów oprogramowania:
. moduł wykonuje specyficzną, i jedyną funkcję, co znaczy, że jest on elementarną jednostką funkcyjną,
. moduł charakteryzuje się niewielką i określoną ilością wzajem
nych oddziaływań z innymi modułami,
. wyjście modułu jest całkowicie zależne od funkcji danego modu
łu i absolutnie niezależne od czynności innych modułów,
. zmiana w określonej funkcji systemu powinna wymagać zmiany w jednym tylko module,
. moduł posiada dwa punkty styczne; jeden dla wejścia, poprzez który inne moduły komunikują się z nim, oraz jeden dla wyjś
cia, poprzez który on komunikuje się z innymi modułami,
. moduł może być testowany automatycznie, bez wywierania wpływu na pozostały system.
Stosowanie oprogramowania o strukturze modułowej przynosi na
stępujące wyniki:
. daje więcej specjalizowanych, elastycznych systemów dla specy
ficznych użytkowników,
. łatwiejsze ustalanie błędów w systemie, . możliwość łatwiejszego umacniania funkcji,
. możliwość przekazywania funkcji oprogramowania sprzętowi /wmon- towywania funkcji oprogramowania do sprzętu/.
- 26 -
F. Przejmowanie funkcji o p r o g r amowania przez sprzęt /realizacja software*u w h a r d w a r e * r z e /
Koszt jednostki centralnej w stosunku do kosztu całego s y s temu obniżał się z generacji na generację; ten zniżkowy trend' będzie postępował dalej. Integracja wielkoskąlowa spowodowała, że stosowanie logiki w sprzęcie /hardware log i e / zamiast opro- grainowania / s o f t w a r e / jest coraz bardziej usprawiedliwione.
Z drugiej strony, oprogramowanie systemowe stało się b a r dziej skomplikowane bez jakichś poważniejszych pr z e ł o m ó w w z a kresie metodologii czy techniki oprogramowania. Gdy wzrosła zło
żoność oprogramowania systemowego, wzrosły także koszty oraz czas potrzebny na jego opracowywanie. Zanotowano tendencję zmie
rzającą, jak to przedstawiono w p o p rzednim rozdziale, do w p r o wadza n i a zmian funkcjonalnych w architekturze systemu, których celem jest obniżenie kosztów oprogramowania oraz podniesienie jego wydajności. W dodatku, wiele funkcji oprogramowania będzie przejętych przez sprzęt /ha r d w a r e / lub przez oprogramowanie techniczne /firmware/. Oto niektóre spośród funkcji opr o g r a m o wania systemowego, które będą p r awdopodobnie przejęte przez
sprzęt /które zostaną wmontowane do s p r z ę t u / :
. lokalizacja uszkodzeń lub logika detekcji i korektury błędów, . makrosy z zakresu zarządzania danymi,
. makr o s y z zakresu kompilacji, . zarządzanie pamięcią wirtualną, . bezpośrednie redagowanie tekstów, . funkcje zarządzania środkami, . funkcje dopasowywania styków, . makr o s y z zakr e s u zarządzania, . listy r o z k a z ó w specjalnych, . funkcje wejścia/wyjścia.
Możliwość opracowywania oprogram o w a n i a o strukturze m o d u ł o wej w połączeniu ze sprzętem o strukturze funkcjonalno-moduło- wej pozwala p r o d u c e n t o m na wmontowywanie o p rogramowania do sprzętu lub do oprogram o w a n i a technicznego /mikroprogramowanie/.
N a j w i ę k s z ą korzyścią, jaką daje stosowanie o p rogramowania tech
nicznego / f i r m w a r e / zamiast oprogramowania / s o f t w a r e / jest po-
prawa wydajności, szczególnie wówczas, gdy funkcje oprogramowa
nia :
• związane są z jednostką centralną i nie są zależne od wejś
cia/wyjścia. Możliwe jest stosowanie mikrokodów d l a .zwiększe
nia szybkości działania jednostki centralnej;
. dają wiele wyników pośrednich. Jeśli' funkcja oprogramowania generuje wiele wyników pośrednich, które są wykorzystywane dla przetwarzania, lecz nie muszą być zachowane po zakończe
niu przetwarzania, to istnieje możliwość przejęcia tej funk
cji przez mikrofcod. Eliminuje to potrzebę adresowania pamięci i zachowania niepotrzebnych wyników pośrednich;
. są funkcjami często powtarzalnymi. Jeśli jakaś funkcja opro
gramowania jest wielokrotnie powtarzana w programie, czy też w wielu programach, to funkcja ta nadaje się idealnie do prze
kształcenia jej na mikrokod, aby w ten sposób podnieść wydaj
ność przetwarzania;
• nie mogą być wykonywane za pomocą rozkazów. Funkcja, która albo jest trudno do wykonania, albo nie może być wykonana za pomocą istniejąoego zestawu rozkazów, może być wbudowana do sprzętu /może być przejęta przez sprzęt/ lub przekształcona w mi krokod;
. wymagają kosztownych rozkazów. Funkcja oprogramowania, która wykorzystuje rozkazy o wysokim stopniu zużycia czasu, może być włączona do mikrokodu dla poprawy wydajności. Rozkazami zuży
wającymi wiele czasu są te rozkazy, które odwołują się często do pamięci. Wewnętrzna szybkość działania komputera była za
wsze wyższa od szybkości działania pamięci głównej.
III. OPROGRAMOWANIE SYSTEM OWE W LATACH 1975-1980
W tym okresie czasu zacznie zanikać znana nam dzisiaj kon
cepcja '»centralnego procesora” , a wraz z nią także dzisiejsze systemy operacyjne. Wszechwładna stanie si*ę koncepcja rozdzie
lonej architektury jednostki centralnej, której zarysy zaczęły się kształtować już w latach 1970-75» Translatory językowe /pro
gramy tłumaczące/, programy obsługujące zbiory, itp. zostaną wbudowane do sprzętu. Wraz z rozszerzaniem się zakresu czynnoś
ci inteligentnych terminali upowszechni się stosowanie zdalnego przetwarzania oraz tzw. "rozdzielonej inteligencji” .
Rysunek 3 przedstawia graficzny obraz systemów w tym okresie czasu.
System automatycznego przetwarzania danych będzie miał cał
kowicie modułową strukturę, a większość funkcji z zakresu opro
gramowania będzie przejęta przez sprzęt. Tak więc 3ystera APD stanie się systemem przystosowanym do teletransmisji danych i sterowanym przez dane.
Aktualnie prowadzone prace badawcze w dziedzinie oprogramo
wania, których tematem jest sprawdzanie poprawności programów oraz automatyzacja programowania, umożliwią wdrożenie osiągnięć w tym zakresie do praktyki dnia codziennego. W związku z rozwo
jem "proto-systemów” zmieni się w 3posób radykalny rola progra
mistów, zajmujących się opracowywaniem programów zastosowanio
wych. "Proto-systemy” będą zaopatrywały użytkowników w pomoce przydatne przy rozwiązywaniu ich problemów w dziedzinie zasto
sowań. Te systemy będą projektowane dla specyficznych zastoso
wań lub funkcji i spełniać będą. rolę właściwego pośrednika m i ę dzy użytkownikiem a systemem. Umożliwią one użytkownikowi, dzia
łającemu w ramach funkcji lub tematu, do którego "proto-system”
jest przystosowany, użycie komputera do rozwiązania problemu, bez formalnej znajomości programowania.
Architektura "rozdzielonej inteligencji" doprowadzi do sys
temów "fail soft", a także do zdalnej naprawy jednostek, które
T e r m in a i
in te lig e n tn y te rm in a i
U iy th o u n ih
N/ed z d o ln y c h o d lic z e ń
u l e g ł y awariom. Powszechne staną się nie tylko pojedyncze kom
putery o strukturze .modułowej, lecz całe grupy k o mputerów o t a kiej strukturze b ę d ą łączone ra z e m w sieci v; tym celu, aby b a r dziej efektywnie wykorzystywać środki i w razie potrzeby w y m i e niać dane mię d z y systemami.
A. Przejmowanie funkcji oprogram o w a n i a przez sprzęt
W poprzednim okresie czasu /1970-75/ obserwowaliśmy rozwój funkcjonalnie rozdzielonej architektury sprzętu komputerowego oraz architektury oprogramowania. Poszczególne systemy kompute
rowe złożone są z;
. p3?ocesorów dla wejścia/wyjścia, . hierarchii pamięci,
. p r o cesorów dla teletransmisji danych, wstępnie przygotowują- . cych dane,
. p r o c e s o r ó w d l a arytmetyki i sterowania.
Oprogramowanie systemowe zostało także podzielone na s e g m e n ty i rezyduje częściami w różnych funkcjonalnych jednostkach sprzętu.
Ko n tynuując tę tendencję, okres 1975 do 1980 roku będzie św i a d k i e m rozwoju n a stępujących jednostek:
. p r o c e s o r ó w dla obsługi programów tłumaczących /translatorów językowych/,
. p r o c e s o r ó w dla obsługi zbiorów, . pro c e s o r ó w o strukturze m o d u ł o w e j ,
. sieci złożonych z procesorów o strukturze modułowej.
Pro c e s o r y d l a obsługi pr o g r a m ó w tłumaczących
K i e d y tylko p r o g r a m tłumaczący / k o m p a j l e r / pr z e k ł a d a w y r a ż e nia opisujące prob l e m na rozkazy maszynowe, to przetwarzanie p r z e b i e g a w sposób nieefektywny, ponieważ każde wyrażenie n a p i sane w języku p r o g r a m o w a n i a wyższego rzędu generuje około d z i e sięciu operacji wyrażonych w wewn ę t r z n y m języku maszyny. D o c h o dzi do tego jeszcze fakt, że wykonywanie p r o g r a m u nie może się rozpocząć przed z a k o ń c z e n i e m jego kompilacji. D l a tego też d a w —
nym marzeniem było zaprojektowanie takiej "maszyny", która m o g łaby wykonywać bezpośrednio instrukcje wyrażone w języku p r o gramowania wyższego rzędu. Pozwoliłoby to bowiem nie tylko na wyeliminowanie nisko efektywnych procesów przetwarzania oraz na podniesienie wydajności w stosunku do konwencjonalnych progra
mów tłumaczących, lecz także na zmniejszenie zapotrzebowania na miejsce w pamięci.
We wczesnych latach siedemdziesiątych, językiem programowa
nia wyższego rzędu, najbardziej powszechnie używanym w dziedzi
nie przetwarzania danych gospodarczych, był COBOL, za nim n a stępował FORTRAN i P L 1 . Zachętą do używania języków programowa
nia wyższego rzędu była dążność do zwiększenia wydajności pro
gramistów i do zwiększenia przydatności programów do ich ro z powszechniania. W związku z tym, że wielkie środki zostały z a inwestowane w istniejące programy pisane w COBOLu, pierwszymi procesorami dla obsługi programów tłumaczących, dostępnymi na rynku, będą procesory dla COBOLu, po nich przyjdą procesory dla FORTRANU i P L 1 , a także dla całej gamy będących w użyciu pro
gramów tłumaczących /translatorów językowych/.
Procesory dla obsługi zbiorów
Równocześnie z procesorami dla obsługi translatorów języko
wych pojawią się procesory dla obsługi zbiorów, realizujące funkcje zarządzania danymi, które dzisiaj spełniane są przez oprogramowanie systemowe. Większość tych funkcji zarządzania danymi zostanie przejęta przez sprzęt komputerowy oraz oprogra
mowanie techniczne /hardware/firmware/. Użytkownik nie będzie musiał troszczyć się o organizację swych zbiorów, ani gdzie te zbiory rezydują, ponieważ tymi sprawami zajmować się będzie sam system.
Prekursorem opisanych systemów jest istniejący już obecnie system SYMBOL. Pierwszym celem tego eksperymentalnego systemu było wykazanie, że można wmontować /włóczyć/ bezpośrednio do sprzętu komputerowego uniwersalny język programowania wyższego' rzędu, a także wyrafinowany system operacyjny, obsługujący w i e lodostępny system komputerowy i, że dzięki temu, można uzyskać znaczną poprawę w zakresie wydajności systemu. Drugim celem b y
- 32 -
ło doprowadzenie sprzętu komputerowego oraz oprogramowania do takiego rozwoju, aby mogły one okazywać bezpośrednie wsparcie użytkownikowi, gdy tym użytkownikiem jest programista, czy też projektant rozwiązujący problem. Filozofia architektury systemu doprowadziła także do wmontowania do sprzętu komputerowego /do przejęcia przez sprzęt/ pewnej ilości funkcji, które są reali
zowane przez oprogramowanie w systemach aktualnie stosowanych w dziedzinie gospodarczej. Oto niektóre spośród tych funkcji:
. dynamiczna alokacja pamięci,
. dynamicznie zmieniająca się długość pola oraz zmieniająca się struktura,
. automatyczne kierowanie pamięcią wirtualną, . automatyczna konwersja typu danych,
. bezpośrednie adresowanie symboliczne,
. bezpośrednia kompilacja realizowana przez sprzęt, . bezpośrednie redagowanie tekstów.
Językiem wewnętrznym maszyny jest sam język źródłowy wyż
szego rzędu. Cały system operacyjny komputera SYMBOL zawiera tylko 8000 bajtów, pozostałość wmontowana jest w sprzęt w po
staci oddzielnych sześciu modułów przetwarzania. Program dyry
gent systemu aktywizuje odpowiednie jednostki przetwarzania, zgodnie z wymaganiami programu.
Działający obecnie system SYMBOL wykazał, ż e :
. kompajler może być wmontowany w sprzęt komputerowy /sprzęt komputerowy może realizować funkcje kompajlera/,
. większość funkcji systemu sterującego może być wmontowana w sprzęt komputerowy /sprzęt komputerowy może realizować wi ę k szość funkcji systemu sterującego/,
. zarządzanie danymi może być wmontowane w sprzęt komputerowy /sprzęt komputerowy może realizować funkcje zarządzania dany
mi/,
. możliwa jest modułowa struktura sprzętu komputerowego oraz oprogramowania,
. wyspecjalizowane systemy wieloprocesorowe, w których poszcze
gólne procesory wykonują określone funkcje, dają w wyniku lepszy stosunek wydajności do kosztów.
E k s p e r y m e n t ten wykazał także, że przejęcie funkcji opro
gramowania przez sprzęt komputerowy daje w wyniku.