• Nie Znaleziono Wyników

Oprogramowanie systemowe

N/A
N/A
Protected

Academic year: 2022

Share "Oprogramowanie systemowe"

Copied!
49
0
0

Pełen tekst

(1)

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

(2)
(3)

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

(4)

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.

(5)

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

(6)
(7)

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

(8)

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 -

(9)

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 .

(10)

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 -

(11)

. 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.

(12)

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 -

(13)

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

(14)

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 -

(15)

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/

(16)

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.

(17)

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-

(18)

6 6 72 76 8 0 Lota

R Y S . 1 . r t a s z t Ai/erszo Hodu

(19)

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.

(20)

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 -

(21)

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­

(22)

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 -

(23)

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

(24)

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 -

(25)

¿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

(26)

. 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 -

(27)

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.

(28)

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 -

(29)

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-

(30)

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.

(31)

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

(32)

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 ń

(33)

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 —

(34)

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 -

(35)

ł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.

Cytaty

Powiązane dokumenty

4 Oprogramowanie musi zapewniać tworzenie kopii zapasowych wszystkich systemów operacyjnych maszyn wirtualnych wspieranych przez vSphere i Hyper-V.. Całkowite

W przypadku, gdy Wykonawca zamierza zrealizować przedmiot zamówienia z udziałem podwykonawców, Zamawiający żąda wskazania przez Wykonawcę części zamówienia, której

2) udowodni, iż wada/usterka istniała przed upływem okresu gwarancji i rękojmi. Wykonawca nie może odmówić usunięcia wad/usterek ze względu na wysokość kosztów

Powinna wyposażona w minimum trzy sloty PCIE umożliwiające zamontowanie i jednoczesną pracę: jednej dwuslotowej karty PCIE Express x16 oraz dwóch kart jednoslotowych PCIE Express

w języku polskim i możliwość dokonywania poprawek systemu z podanej strony www przez Internet oraz przez centralny system zdalnej aktualizacji. System musi posiadać

serwisowych oraz posiadać autoryzacje producenta komputera – dokumenty potwierdzające załączyć do oferty... • gwarancja: minimum 36 miesięcy, świadczona na miejscu

System operacyjny: Windows® 7 Home Premium 64- bit lub równoważny współpracujący z oprogramowaniem EduSensus Matematyka – terapia pedagogiczna. MatŚwiat – program do

Zamawiający nie wyznacza szczegółowego warunku w tym zakresie. Ocena spełnienia warunków udziału w postępowaniu na podstawie złożonego przez Wykonawcę