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.