19
System Czasu Rzeczywistego- urządzenie techniczne, którego wynik i efekt działania jest zależny od chwili wypracowania tego wyniku. Buduje się w oparciu o komputery. Cechą jest równoległość w czasie zmian w środowisku oraz obliczeń realizowanych na podstawie stanu środowiska. Z dwóch stanów: zewnętrznego i wewnętrznego, wynikają kryteria ograniczające czas wypracowywania wyniku.
Funkcja Zysku- funkcja zależna przede wszystkim od czasu i określa korzyść ze zrealizowania zadania przez system. Korzyść niekoniecznie jest wielkością wymiarowaną. Zadanie zostało przez system zrealizowane poprawnie, jeśli z chwilą zakończenia tego zadania wartość FZ jest >0.
Charakterystyczne Funkcje Zysku:
„twardy”
„stały”
„miękki”
Termin reakcji- w SCR przekształcanie danych przesyłanych do lub z zewnętrznego środowiska zachodzi w deterministycznie określonym czasie. Stosuje się pojęcie terminu (deadline), oznaczające najdłuższy dopuszczalny czas reakcji systemu na wystąpienie zdarzenia. System czasu rzeczywistego nie musi być szybki - istotne jest jedynie, aby jego działania spełniały narzucone ograniczenia czasowe.
Skład- w skład takiego systemu włącza się także jego niezbędne otoczenie, takie jak deterministyczne sieci transmisyjne, układy wejściowe i wyjściowe oraz urządzenia kontrolowane przez komputer (roboty).
Aby system był systemem czasu rzeczywistego, konieczne jest spełnianie wymogów systemu czasu rzeczywistego przez każdy z komponentów.
Podział SCR wynika z charakterystycznych FZ:
- systemy o ostrych ograniczeniach czasowych- gdy przekroczenie terminu powoduje poważne, katastrofalne skutki, przy czym nie jest istotna wielkość przekroczenia terminu a jedynie sam fakt jego przekroczenia,
- systemy o mocnych ograniczeniach czasowych- gdy fakt przekroczenia terminu powoduje całkowitą nieprzydatność wypracowanego przez system wyniku, jednakże nie oznacza to zagrożenia dla ludzi lub sprzętu;
- systemy o miękkich lub łagodnych ograniczeniach czasowych- przekroczenie pewnego czasu powoduje negatywne skutki- spadek funkcji zysku aż do osiągnięcia wartości 0 w chwili.
Zastosowanie: -w przemyśle do nadzorowania procesów technologicznych; -w medycynie;
-do nadzorowania eksperymentów naukowych;
-w urządzeniach powszechnego użytku, jak sterowniki układów wtrysku paliwa do silników samochodowych, urządzenia gospodarstwa domowego;
-w lotnictwie, zastosowaniach wojskowych;
-w kasach biletowych, oprogramowaniu bibliotek i podobnych systemach rozproszonych.
System Operacyjny Czasu Rzeczywistego - to komputerowy system operacyjny, który został opracowany tak, by spełnić wymagania narzucone na czas wykonywania zadanych operacji. Systemy takie stosuje się jako elementy komputerowych systemów sterowania pracujących w reżimie czasu rzeczywistego.
Zadaniem systemu jest wypracowywanie odpowiedzi na skutek wystąpienia pewnych zdarzeń. Podstawowym wymaganiem dla systemu operacyjnego czasu rzeczywistego jest określenie najgorszego (najdłuższego) czasu, po jakim urządzenie komputerowe wypracuje odpowiedź po wystąpieniu zdarzenia.
Podział SOCR: Twarde - takie, dla których znany jest najgorszy (najdłuższy) czas odpowiedzi, oraz wiadomo jest, że nie zostanie on przekroczony.
Miękkie - takie, które starają się odpowiedzieć najszybciej jak to możliwe, ale nie wiadomo jest, jaki może być najgorszy czas odpowiedzi.
Szeregowanie czasu- problemem jest algorytm szeregowania oraz podziału czasu. W systemie operacyjnym czasu rzeczywistego trzeba określić, któremu z procesów należy przydzielić procesor oraz na jak długi czas, aby wszystkie wykonywane procesy spełniały zdefiniowane dla nich ograniczenia czasowe. Pojawienie się systemów operacyjnych tego typu wiąże się z m.in. zapotrzebowaniem techniki wojskowej na precyzyjne w czasie sterowanie rakietami. Obecnie systemy operacyjne tego typu są wykorzystywane powszechnie w przemyśle cywilnym, sterują urządzeniami takimi jak na przykład: centrale telefoniczne, marsjańskie lądowniki NASA oraz samochodowy ABS.
21
Klasyfikacja architektur równoległych
Schemat klasyfikacji Flynna -sklasyfikował architektury komputerów, opierając się na liczbie strumieni rozkazów i strumieni danych. Zdefiniował 4 klasy:
1. SISD- pojedynczy strumień rozkazów - pojedynczy strumień danych. Opisuje architektury typu von Neumanna, gdzie szeregowo pobierany jest pojedynczy zestaw rozkazów operujący na pojedynczych danych.
2. SIMD- pojedynczy strumień rozkazów - wiele strumieni danych. Opisuje systemy, takie jak procesory wektorowe, w których przez jeden procesor sterujący generowany jest pojedynczy strumień rozkazów, przekazywany do wielu procesorów arytmetycznych.
3. MIMD- wiele strumieni rozkazów - wiele strumieni danych. Klasa opisuje systemy wieloprocesorowe, w których co najmniej dwa procesory wykonują oddzielne strumienie rozkazów operujące na różnych danych.
4. MISD- czyli wiele strumieni rozkazów - pojedynczy strumień danych. Dodana została sztucznie do kompletu.
Schemat klasyfikacji Duncana- został opracowany jako próba objęcia klasyfikacją architektur, które nie mieszczą się w schemacie Flynna, oraz w celu wyłączenia architektur, które są w zasadzie szeregowe. Zachowano w nim terminologię Flynna, wprowadzając rozróżnienie architektur, które wykonują operacje równoległe synchronicznie oraz tych pracujących asynchronicznie.
Procesor wektorowy SIMD wykonuje obliczenia na dużych wektorach danych, które są często potrzebne przy obliczeniach naukowych, takich jak przetwarzanie obrazów. Procesor zawiera kilka identycznych elementów przetwarzających, z których każdy ma lokalną pamięć. Element sterujący pobiera rozkazy z pamięci głównej i dekoduje je. Jeśli są to rozkazy wektorowe, to przekazuje je do wszystkich elementów przetwarzających.
Komputery z przepływem danych (dataflow) nie mają licznika rozkazów i wykonują rozkazy wtedy, gdy ich argumenty staną się dostępne. Programy takich komputerów są reprezentowane przez grafy zależności danych.
Uniwersalne systemy MIMD zawierają wiele procesorów, które działają na oddzielnych strumieniach danych, wykorzystując oddzielne strumienie rozkazów. Modele:
1. Silnie powiązany- procesory uzyskują w nim dostęp do rozkazów i danych za pośrednictwem globalnej współdzielonej pamięci głównej.
2. Luźno powiązany- każdy procesor ma dużą pamięć lokalną, której może używać przy dostępie do większości swoich rozkazów i danych.
3. Z rozproszoną pamięcią wspólną.
Skalowanie systemów z pamięcią wspólną- architektury te są ograniczone przez liczbę procesorów, które mogą być dołączone do pamięci. Zwiększając przepustowość przez dodawanie kolejnych procesorów, zwiększamy współzawodnictwo o pamięć, co powoduje spadek wydajności. Powyżej pewnego pkt daje niewielki zysk.
Systemy MIMD z pamięcią rozproszoną oferują liniową skalowalność, ponieważ każdy procesor ma lokalną pamięć i procesory nie współdzielą zmiennych. Zamiast tego procesory wymieniają dane, przesyłając między sobą komunikaty za pośrednictwem pewnego typu sieci komunikacyjnej. Każdy węzeł zawiera procesor, pamięć lokalną i kilka łączy komunikacyjnych do wymiany komunikatów.
Transputery zostały zaprojektowane specjalnie do budowania systemów wieloprocesorowych z przesyłaniem komunikatów. Każdy transputer w jednym układzie VLSI zawiera procesor, trochę lokalnej pamięci i szybkie (20 Mbit/s), dwukierunkowe, bitowo-szeregowe łącza komunikacyjne.
Topologie połączeń transputerów:
Topologia potokowa jest często wykorzystywana, ponieważ do takiej organizacji może być dostosowanych kilka różnych rodzajów algorytmów. Jedną z głównych wad takiej konfiguracji jest to, że dla n-węzłowego potoku 2n połączeń pozostaje nie używanych.
Dwuwymiarowe (2-D) tablice są szeroko wykorzystywane przy algorytmach z dominującą komunikacją lokalną, takich jak przetwarzanie obrazów. Używanie może prowadzić do poważnego obniżenia wydajności, bo niektóre komunikaty muszą przechodzić przez 2(n— 1) połączeń. Całkowicie połączona sieć likwiduje problemy komunikacyjne między procesami pracującymi na różnych węzłach, ale z 4 łączami na węzeł max liczba węzłów w takiej sieci jest ograniczona do 5.
Hipersześcian w topologii N procesorów jest zorganizowanych w K-wymiarowy sześcian, przy czym N = 2k. Każdy węzeł zawiera procesor, pamięć lokalną i łącza komunikacyjne.
Systemy z rozproszoną pamięcią wspólną zapewniają wirtualną abstrakcję pamięci współdzielonej realizowanej na bazie systemu z pamięcią rozproszoną i przesyłania komunikatów.
Węzły obliczeniowe są związane w pierścień albo inny rodzaj sieci. Każdy węzeł składa się z jednego lub więcej procesorów połączonych z lokalną pamięcią za pośrednictwem magistrali z podziałem czasu, przełącznika krzyżowego albo innej sieci lokalnej. Dane są współdzielone między węzłami, a adresy wirtualne generowane przez procesory są tłumaczone sprzętowo bądź programowo na adresy fizyczne konieczne do zlokalizowania danych. Jeśli dane są przechowywane lokalnie, to są zwracane przez sieć lokalną w zwykły sposób. Jeśli dane znajdują się poza węzłem, to adres wirtualny musi być przekształcony na komunikat.
Sposób rozproszenia współdzielonych danych między węzły (struktura) i jednostka współdzielenia (granulacja) są ściśle związane ze sposobem implementacji systemu DSM.
Prawo Amdahla- przyspieszenie S , możemy zdefiniować jako: Czas wykonania zadania w systemie jednoprocesorowym /wieloprocesorowym.
Załóżmy, że zadanie obliczeniowe realizowane jest przez n procesorów. Jeśli s jest czasem spędzanym przez procesor w części szeregowej programu, a p jest czasem spędzanym w części programu, która może być podzielona między n procesorów i wykonana równolegle, to prawo Amdahla mówi, że przyspieszenie S jest dane wzorem: S = (s + p) / (s + p/n)
22
Neurokomputery można traktować jako nowoczesne systemy obliczeniowe, które przetwarzają informacje wzorując się na zjawiskach zachodzących w mózgu człowieka. Informacje te mają charakter danych numerycznych, na podstawie których sieć neuronowa może posłużyć jako model obiektu o zupełnie nieznanej charakterystyce. Typowe zastosowania neurokomputerów obejmują:
-Rozpoznawania rożnych obrazów , -Analizy i kompresji obrazów, -Klasyfikacji,
-Przyjmowanie decyzji, -Generowanie wiedzy.
1 — ciało komórki, 2 — akson, 3 — dendryty,
4 — synapsy
Funkcje progowe:
Perceptron- model najprostszej jednokierunkowej sieci neuronowej. Sieć taką zaproponował Rosenblatt na przełomie lat 50 i 60. R- receptory L- łączny A- aktywatory
W sieci rekurencyjnej- mogą występować dowolne rodzaje połączeń. W szczególności dopuszczalne są połączenia wsteczne, połączenia typu sprzężenia zwrotnego oraz połączenia pomiędzy neuronami nie znajdującymi się w warstwach sąsiednich.
Przykłady stosowania sieci neuronowych do problemów kombinatorycznych:
komiwojażera, n-hetmanów, podziału na klasy, znajdowania najkrótszej ścieżki w grafie
problem minimalnego pokrycia , problem kolorowania map, obliczanie wektorów i wartości własnych macierzy, rozwiązywanie zadań programowania liniowego.
Uczenie sieci: cykl działania sieci neuronowej podzielić można na etap nauki, kiedy sieć gromadzi informacje potrzebne jej do określenia, co i jak ma robić, oraz na etap normalnego działania, kiedy w oparciu o zdobytą wiedzę sieć musi rozwiązywać konkretne nowe zadania. Możliwe są dwa warianty uczenia:
1.Uczenie z nauczycielem polega na tym, że sieci podaje się przykłady poprawnego działania, które powinna ona potem naśladować w swoim bieżącym działaniu. Nauczyciel podaje konkretne sygnały wejściowe i wyjściowe, pokazując, jaka jest wymagana odpowiedź sieci dla pewnej konfiguracji danych wejściowych.
2.Uczenie bez nauczyciela polegają na podawaniu na wejście sieci wyłącznie szeregu przykładowych danych wejściowych, bez podawania jakiejkolwiek informacji dotyczącej pożądanych czy chociażby tylko oczekiwanych sygnałów wyjściowych. Sieć neuronowa potrafi wykorzystać same tylko obserwacje wejściowych sygnałów i zbudować na ich podstawie sensowny algorytm swojego działania.