Komputer a integralność systemu

Transkrypt

Komputer a integralność systemu
1
Józef Okulewicz
[email protected]
KOMPUTERY A INTEGRALNOŚĆ SYSTEMU
System wg aktualnej teorii systemów określa się jako zbiór elementów i relacji [2]. Są one
dobrane odpowiednio do celu, dla jakiego system funkcjonuje lub został utworzony. Oznacza to, że
zarówno elementy jak i relacje systemu są jednorodne względem celu, który przez to jest
warunkiem jego istnienia. Znajduje to wyraz w metodologii systemowej, której pierwszym etapem
jest określenie celu. Burzliwy rozwój teorii systemów dotyczył głównie jej zastosowań i przynosił
rozmaite konfiguracje elementów. Przesłoniło to w pewnym sensie poszukiwanie ogólnych
warunków jakie powinien spełniać system.
Dotyczy to w szczególności jego integralności, czyli zdolności realizowania celu w całym
okresie istnienia systemu. Nie wystarczy bowiem sformułowanie celu przed utworzeniem systemu,
a następnie określanie elementów i relacji ze względu jedynie na funkcjonowanie systemu.
Znajomość celu powinna być uzupełniona o kryteria, których spełnienie umożliwi osiągnięcie
celów za pomocą danego systemu.
Kryteria te uwidaczniają się szczególnie wyraźnie na przykładzie systemów transportowych
[5]. Dla funkcjonowania bowiem tych systemów niezbędne jest rozłączne istnienie ich głównych
dwóch składników, tj. infrastruktury i środków transportu. Z tego powodu konieczne jest
uszczegółowienie warunków integralności tego typu systemu.
Tak więc, aby możliwe było istnienie jakiegokolwiek systemu jako pewnej całości
realizującej lub umożliwiającej realizację założonych celów, składniki systemu i wiążące je relacje
powinny spełniać dodatkowe kryteria. Jeśli kryteria te są spełnione, to system jest nadal systemem
użytecznym. Zakres tego pożytku można określać w trakcie jego istnienia odpowiednio do potrzeb
użytkownika. Ponieważ potrzeby użytkownika zmieniają się w trakcie istnienia systemu, to
zmieniają się też aktualne cele jakim służy system. Cały czas jednak system powinien spełniać
kryteria, które przyjęto na samym początku jego funkcjonowania.
W celu określenia tych kryteriów przyjmujemy, że w stosunku do dowolnego systemu
odnoszą się trzy oczywiste kategorie, tj. przestrzeń, czas i cel działania. Dotyczą one obiektów, na
jakich są wykonywane operacje w systemie. Ponieważ kategorie te są wzajemnie niezależne, to na
ich bazie można utworzyć kratę logiczną wiążącą pojęcia dotyczące danego systemu (rys.1).
Stanowi ona źródło kryteriów, jakie system powinien spełniać w celu zachowania swej
integralności [5, 6].
Rys.1. Struktura logiczna pojęć systemowych
Źródło: opracowanie własne.
2
Można wskazać rozmaite przykłady intuicyjnego wykorzystania tych kryteriów w praktyce,
choć nie były one sformułowane. Szczególnie ważne są takie, które w świetle kryteriów
integralności można interpretować w ten sposób, że niemożność spełnienia jednego z kryteriów
zastąpiono przez odpowiednie wypełnienie dwóch pozostałych kryteriów. Są to np. systemy
nocnego lądowania na lotniskowcu, zrzucanie zaopatrzenia z samolotów przy braku łączności
radiowej, czy zdalne sterowanie samolotami (rys.2).
Rys. 2. Przykłady praktycznego wykorzystania kryteriów integralności.
Źródło: opracowanie własne.
3
Także linię ciągłą umieszczoną na drodze przed wzniesieniem można interpretować jako
wykorzystanie kryteriów „przejrzystości” i „dostępności” do wysłania sygnału o możliwości
pojawienia się pojazdu z przeciwnej strony, w sytuacji braku „łączności” pomiędzy zbliżającymi się
do siebie pojazdami.
Kryteria „dostępności” i „przejrzystości” wykorzystano także do zrealizowania kryterium
„łączności” w systemie sterowania pociągami powstałym na początku XIX w. Mimo braku
łączności radiowej z kierującym pociągiem powstał system zdalnego sterowania pociągami z
centrum dyspozytorskiego za pomocą przytorowych sygnalizatorów. Jest on stosowany do dziś1
mimo jego oczywistej archaiczności w sytuacji, gdy możliwa jest bezprzewodowa łączność
dyspozytora z maszynistą [5]. Znamienne jest, że tego sposobu sterowania nie zastosowano w
powstających później środkach transportu, gdyż po wynalezieniu łączności radiowej były już
dostępne techniczne środki niezbędne do realizacji kryteriów integralności.
Uwzględnienie kryteriów integralności daje też nowe możliwości interpretowania rozwoju
komputerów. W tym przypadku zaważyło przyjęcie założenia, że jest to techniczna realizacja
maszyny matematycznej. Z tego względu do obu systemów zastosowano bezwiednie taki sam
sposób zapewnienia integralności. Od czasu umieszczenia instrukcji programu razem z danymi w
tej samej pamięci komputera [7], program rezyduje na stałe w pamięci i każda instrukcja jest
przypisana do określonego miejsca w przestrzeni. W językach niskiego poziomu są oczywiste
wynikające z tego ograniczenia komputera. Są one traktowane jako jego ułomności i przesłaniane w
językach wysokiego poziomu. Dopiero w świetle kryteriów integralności można wyjaśnić dlaczego
takie rozwiązanie wywarło – sygnalizowany już od dawna [1, 4] – negatywny wpływ na dalszy
rozwój zarówno komputerów jak i języków programowania.
Jeśli bowiem integralność maszyny matematycznej jako tworu abstrakcyjnego jest spełniona
z definicji, gdyż inaczej nie mogłaby być pomyślana, to z jej techniczną realizacją jest inaczej.
Trzeba było zastosować specjalną konstrukcję komputera aby zniwelować przestrzenne i czasowe
ograniczenia w jego funkcjonowaniu. Przyjęto przy tym stosowaną w matematyce konwencję, że
liczba lub zmienna jest dostępna od chwili jej napisania, a ogólniej – pomyślenia. Ponadto
przyjmuje się, że liczby o tej samej wartości są nieodróżnialne, choć w komputerze różnią się
miejscem przechowywania, no i czasem występowania. Gdyby nie to przekonanie, to może
powstawałyby inne języki programowania, traktujące odrębność fizyczną komputerów jako atut
powstałego urządzenia. A tak, komputerowe obliczenia przypominają działania na kartce papieru
lub liczydle, bo tak jest najłatwiej zapewnić jego integralność (rys. 3).
Rys.3. Ilustracja spełnienia kryteriów jednorodności w przypadku komputera.
Źródło: opracowanie własne.
1
Aktualnie z wykorzystaniem komputerów.
4
Technicznym i organizacyjnym gwarantem takiej integralności jest przy tym licznik
rozkazów. Albowiem także nad sposobem wykonywania programu niekorzystnie zaważyło
traktowanie komputera jako maszyny matematycznej. Jedną z konsekwencji tego było traktowanie
nie tylko danych ale także instrukcji jako zawsze dostępnych, co w odniesieniu do obiektów
matematycznych jest oczywiście spełnione. Technicznie jednak założenie takie nie jest spełnione,
więc do przesłonięcia tej „ułomności” został użyty licznik rozkazów, do którego sekwencyjnie
pobiera się instrukcje z pamięci w celu ich wykonania. Stanowi to zasadnicze „wąskie gardło”
komputera. Mogło być ono przez lata niedostrzegane gdyż transmisje danych pomiędzy procesorem
a pamięcią trwały dłużej niż wykonywanie instrukcji. Ta wada wspólnego przetwarzania
programów i danych jest współcześnie łagodzona przez uprzedzające buforowanie zarówno danych
jak i instrukcji programowych.
Do tego dopasowano działanie programu komputerowego, dla którego sposobem na
integralność jest kartka papieru. Tym samym jednak zamknięto drogę do innych sposobów
konstruowania urządzeń liczący i innych metod ich programowanego sterowania.
W początkowym okresie powstawania maszyn matematycznych nie trzeba było zwracać
uwagi na kryteria integralności. Ponieważ komputer „udawał” maszynę matematyczną, to postulaty
integralności były spełnione, tak jak są one zawsze spełnione względem obiektów matematycznych.
Problemem było jedynie formułowanie odpowiednich poleceń do maszyny. W efekcie powstały
kompilatory i interpretery sztucznych języków programowania. W każdym z nich wykorzystywano
frazy z języka naturalnego, głównie w celu ułatwienia pisania programów. Towarzyszyło temu
nieuzasadnione oczekiwanie, że kiedyś powstanie uniwersalny język programowania, za pomocą
którego komunikacja z maszyną będzie przypominała kontakt z rozumną istotą.
Przy programowym sterowaniu urządzeniami nie zakłada się wprawdzie, że dane urządzenie
jest maszyną matematyczną, ale przejmuje się metody programowania stosowane w odniesieniu do
tych maszyn. W szczególności przyjmuje się założenie o sekwencyjnym wykonywaniu instrukcji
programu przez procesor.
W przeciwieństwie do tego, na bazie kryteriów jednorodności można zaproponować
odmienne podejście do programowania komputerów. Wymagałoby to zmiany perspektywy
postrzegania komputera jako uniwersalnej maszyny do realizowania specjalizowanych urządzeń za
pomocą programowania [3]. Celem byłoby raczej wzbogacanie za pomocą programowania
własności urządzeń specjalizowanych, aby stały się nieco bardziej uniwersalne2 (rys.4).
uniwersalne
urządzenie
specjalizowane
urządzenie
PROGRAMOWANIE
PROGRAMOWANIE
specjalizowane
urządzenie
uniwersalne
urządzenie
Rys.4. Ilustracja zmiany perspektywy postrzegania komputerów i programowania.
Źródło: opracowanie własne.
2
Co można obecnie obserwować na przykładzie telefonów.
5
Wymaga to oczywiście powstania odmiennych sposobów programowania i innego
postrzegania roli oprogramowania w komputerach.
1.
2.
3.
4.
5.
6.
7.
LITERATURA
Backus J.: The history of FORTRAN I, II, and III, ACM SIGPLAN Notices, VoI. 13, No. 8,
August 1978, s. 165-180. "History of Programming Languages", Wexelblat, 1981, s. 25-45.
BERTALANFFY v. L.: Ogólna teoria systemów. (ang. General Systems Theory, Braziller:
NewYork 1973), PWN Warszawa 1984.
DIJKSTRA E. W.: ACM South Central Regional Conference, 1984
GABRIEL R. P., Steele G. L. Jr. : What Computers Can’t Do (And Why), Lisp and Symbolic
Computation (LASC), vol. 1, n. 3-4. 1986.
OKULEWICZ J.: Kryteria analizy systemów transportowych. Międzynarodowa Konferencja
Naukowa “Transport XXI w.” Warszawa 2004, s. 479-488.
OKULEWICZ J.: Integralność systemu. http://spedycje.pl/logistyka/pod_znakiem_logistyka/
15413/integralnosc_systemu.html
TARGOWSKI A.: Informatyka – modele systemów i rozwoju. PWE Warszawa 1980.