• Nie Znaleziono Wyników

Z agadnienia im plem entacji

Systemy czasu rzeczywistego -projektow anie i aspekty praktyczne

3. Z agadnienia im plem entacji

Im plem entow anie system ów czasu rzeczy­

w istego obejm uje trzy zasadnicze zagadnienia:

rolę ję z y k a program ow ania, jąd ro system u operacyjnego i architekturę sprzętu. Poniżej om ów iono krótko tę problem atykę.

3.1. Język program ow ania

Podstaw ow e konstrukcje języ k ó w progra­

m ow ania czasu rzeczyw istego są zw iązane ze w spółbieżnością oraz synch ron izacją i kom u­

nikacją. S ą one dobrze zrozum iane i szeroko stosow ane, ja k na przykład zadania (ang. task) i spotkania (ang. rendezvous) w języ k u Ada, dlatego nie m a potrzeby ich szczegółow ego om aw iania. W innych język ach pow szechnie używ anych, takich ja k C, C ++ lub Java, nie m a konstrukcji w spółbieżnych, dlatego korzysta się z bibliotek lub klas im plem entujących w ielow ątkow ość (ang.

multithreading) na poziom ie system u o pera­

cyjnego.

Spośród zagadnień szczegółow ych, m ają­

cych kluczow e znaczenie w łaśnie na poziom ie ję z y k a program ow ania, w arto w ym ienić

następujące:

( 1) dostęp do rejestrów bezpośrednio z ję z y k a w ysokiego poziom u

(2) obsługa przerw ań w języ k u w ysokiego poziom u

(3) m ieszanie kodu w różnych języ k ach program ow ania.

K rótkie przykłady na (1) i (3), dla ję z y k a C oraz C i asem blera procesora Spare, podano, odpow iednio, na rys. 5 i 6.

raain()

{ // Activate commented lines, if real device reg can't be accessed unsigned char * reg = (unsigned char *)0xF7FF0000;

// unsigned char x = 255; /* Simulates an I/O register */

// unsigned char * reg = &x;

// printf ("Legal address is: 7»x \n", &x);

printf("Reg contains = 7,d \n", *reg) ;

>

Rys. 5. Przykład odw oływ ania się do rejestru w ję z y k u C.

P O L S K IE T O W A R Z Y S T W O IN F O R M A T Y C Z N E — O D D Z I A Ł G Ó R N O Ś L Ą S K I

Janusz Zalewski Systemy czasu rzeczywistego - projektowanie i aspekty praktyczne

get first argument from call get second argument from call load first arg for mult

load second arg for mult

! return value in '/.iO

Rys. 6. Przykład podprogram u w yw oływ anego z ję z y k a C, dla procesora Sparc.

Program ując system y czasy rzeczyw istego, należy zw rócić szczególną uw agę na użycie powszechnej opinii, języki zorientow ane obiektow o nie są zbyt odpow iednie dla system ów czasu rzeczyw istego, ze w zględu na obecność konstrukcji w ykazujących niedeterm inistyczne zachow anie, takich ja k funkcje w irtualne, konstruktory i destruktory.

Projektant system u działającego w czasie rzeczyw istym musi gw arantow ać przew idyw alność je g o zachow a-nia podczas akcji, a tego nie da się dokładnie przew idzieć przy użyciu w ym ienionych kon-strukcji.

Dlatego nie m a w iększego sensu program ow anie system ów czasu rzeczyw iste­

go w językach takich ja k Sm alltalk. Ada

pozostaje nadal jed yny m prawdziwym ję z y ­ kiem do program ow ania tych system ów . 3.2. Jądro czasu rzeczyw istego

T radycyjne system y operacyjne nie nadaw ały się do pracy w czasie rzeczyw istym

niem czasu rzeczyw istego

• obsługa przerw ań uniem ożliw iająca w y w łaszczanie (ang. preemption) jąd ra operującego w system ow ej przestrzeni adresow ej

• organizacja system u plików oparta na przydzielaniu obszaru przy żądaniu zapisu, zam iast przy tw orzeniu pliku, uniem ożliw dająca utrzym yw anie d a­

nych w' sposób zw'arty (ang.

contiguous).

W zw iązku z tym , pod naciskiem najbardziej w ym agających zastosow ań, np. w fizyce w ysokich energii i w badaniach kosm icznych, na początku lat o siem dziesią­

tych pow stał cały szereg m ałych system ów operacyjnych, dostosow anych do pracy

P O L S K IE T O W A R Z Y S T W O IN F O R M A T Y C Z N E — O D D Z I A Ł G Ó R N O Ś L Ą S K I

Czternaste Jesienne Spotkania P T I M rągowo '98 16-20 listopada 1998 23

w czasie rzeczyw istym . Ich producenci i użytkow nicy doszli w krótce do w niosku, ze należy ujednolicić podstaw ow e konstrukcje i sposób operow ania nim i przez w yw ołania najw ażniejszą charakterystyką w spółczesnych system ów operacyjnych czasu rzeczyw istego, a szczególnie ich w ew nętrznej części zwanej

• szeregow anie procesów

• kom unikacja m iędzyprocesow a

• obsługa sygnałów czasu rzeczyw istego

• czasom ierze.

W ram ach jed n eg o artykułu, nie m ożna pośw ięcić w iele m iejsca na szczegółow e om ów ienie tej problem atyki, w ięc pozostaje mi odesłać czytelnika do odpow iedniej litera­

tury [4]. W arto tu jed n ak w spom nieć o zalece­

niach dotyczących szeregow ania procesów.

Posix.4 definiuje trzy reguły szeregow ania, określone przez następujące stałe system ow e:

• S C F IE D F IF O , proces w ykonuje się do (ang. deadline monotonie scheduling).

Szeregow anie m onotoniczne w edług okresów sprow adza się do przydzielania procesora zadaniu, które m a w danej chw ili najw yższy priorytet, o k reślon y statycznie na podstaw ie analizy zadań program u.

M etoda ta została opracow ana ju ż w latach siedem d ziesiątych , ale w eszła do pow szechne­

go użytku dopiero stosunkow o niedaw no. Jej praktyczna w artość polega na m ożliw ości statycznego spraw dzenia szeregow alności zadań (ang. schedulability), za p o m o cą niezbyt bardziej skom plikow any. Elem entarne om ów ienie obu w arunków , w raz ze szczegóło­

w ym i przyk ład am i, m ożna znaleźć w [21J.

Bardziej szczeg óło w a analiza szeregow alności w iąże się z koniecznością zapew nienia spełniającym i zarów no zalecenia norm aliza­

cyjne Posix.4, ja k rów nież um ożliw iającym i - w znacznym stopniu - spełnienie w ym agań szeregow ania m onotonicznego w edług okre­

sów lub term inów , do najpopularniejszych należy g ru p a czterech X: LynxO S, Q NX , VR TX i V xW orks [24]. W ybór najbardziej od po w iedniego system u operacyjnego zależy w dużym stopniu od zastosow ania, ale

POLSKIE T O W A R Z Y S T W O IN F O R M A T Y C Z N E — O D D Z I A Ł G Ó R N O Ś L Ą S K I

2 4 J an u sz Z alew skiS ystem y cza su rzeczyw istego -p r o je k to w a n ie i aspekty p ra k tyczn e

czas przełączania kontekstu

• czas utw orzenia/zniszczenia zadania

• czas zam knięcia i otw arcia sem afora (ang. lock/unlock)

• czasy zapełnienia i opróżnienia kolejki w iadom ości (ang. message queue fill/drain).

Interesujące porów nanie podstaw ow ych charakterystyk podano w pracy [15] i, opartej przeciw działającego inwersji priory­

tetów

• obsługa przerw ań nie spełnia silnych ograniczeń czasow ych i w niesprzyja­

jący ch okolicznościach m oże pow o­

dow ać m ilisekundow e opóźnienia (dzieje się tak na skutek m echanizm u działania odłożonych w yw ołań procedur (ang. deferred procedure calls)). dotyczącym jąd ra system u operacyjnego czasu rzeczyw istego je st pisanie handlerów urządzeń w ejścia-w yjścia. Elem entarne om ów ienie tej problem atyki zostało ostatnio opublikow ane w [12],

3.3. A rchitektury sprzętow e

Kluczowym elem entem w projektow aniu system ów czasu rzeczyw istego je s t dokładna znajom ość sprzętu. W niniejszym artykule, je s t m iejsce tylko na zasygnalizow anie w ybranych aspektów tej problem atyki. We w spółczesnych zastosow aniach, dw a zagadnie­

nia odgryw ają zn aczącą rolę, pod tym w zglę­

lizow ania charakterystyki sprzętu, przed ostatecznym podjęciem decyzji projektow ych, stosuje się dwa kom plem entarne podejścia:

• sym ulacja rozw iązań istniejących

• w prow adzanie nowych rozw iązań.

W śród rozw iązań stosow anych dotychczas, zdecydow anie dom inuje użycie m agistrali V M Ebus. Protokół tej m agistrali nie jed nak idealnie dostosow any do w ym agań system ó w czasu rzeczyw istego. Sym ulacja zachow ania m agistrali V M Ebus um ożliw ia w stępną ocenę jej dopasow ania do rodzaju zastosow ania pracującego w czasie rzeczyw istym . Przykładow o, z w ykresów przedstaw ionych na rys. 7. i 8, w ynika że V M Ebus działa spraw nie przy liczbie procesorów nie przekraczającej pięć, a arbitraż na zasadzie priorytetu opłaca się stosow ać w zasadzie tylko w tedy, gdy

P O L S K IE T O W A R Z Y S T W O IN F O R M A T Y C Z N E — O D D Z IA Ł G Ó R N O Ś L Ą S K I

Czternaste Jesienne Spotkania P T I M rągowo ’98 16-20 listopada 1998 25

należy bezw zględnie zapew nić spełnienie dłuższy czas dostępu do m agistrali niż przy ograniczeń czasow ych przez pierw szy arbitrażu cyklicznym ,

procesor [11]. Pozostałe procesory w ykazu ją

i i i \

0 5 10 15 20

Rys. 7. W ykorzystanie m agistrali w stosunku do liczby procesorów , dla arbitrażu priorytetow ego, przy różnych obciążeniach (duże D, średnic Ś i m ałe M).

W bardziej w ym agających zastosow aniach, m agistrale starego typu, takie ja k V M Ebus, m uszą być zastąpione przez now ocześniejsze rozw iązania. Jednym z takich rozw iązań, o param etrach przew yższających tradycyjne m agistrale, je s t m agistrala szeregow a IEEE Std 1394 (F ireW ire) [1], Jej przydatność do system ów czasu rzeczyw istego w iąże się

z w prow adzeniem tzw. transm isji izochroni- cznej. M ówiąc krótko, polega to na przydzieleniu z góry 80% pasm a na transm isje dla urządzeń o w ysokim priorytecie. Jeśli żadne z tych urządzeń nie zażąda obsługi w danym cyklu, to pasm o je s t w ykorzysty­

w ane na transm isję asynchroniczną.

1 2 3 4 5

Rys. 8. Porów nanie zw łoki dostępu do m agistrali (m s) w zględem liczby procesorów dla priorytetow ego (PR IO ) i cyklicznego (R ound-R obin - RR) arbitrażu, przy średnim obciążeniu.

Pam ięć podręczna m oże być znacznym utrudnieniem w zaprojektow aniu system u czasu rzeczyw istego, gdzie zasadniczą rolę odgryw a przew idyw alność zachow ania pod

w zględem czasow ym . Z naczna przypadko­

w ość w dostępie do tego typu pam ięci utrudnia analizę zachow ania system u. N a rysunku 9, podano przykład krótkiego program u

P O L S K IE T O W A R Z Y S T W O I N F O R M A T Y C Z N E — O D D Z I A Ł G Ó R N O Ś L Ą S K I

2 6 Jan usz Z a lew sk iS ystem y czasu rzeczyw istego - p rojekto w an ie i aspekty praktyczn e

ilustrującego trudności zw iązane z określe­

niem charakterystyk czasow ych użycia takiej pam ięci. R óżnica czasów w ykonania pętli (1) i (2) w ynosi ponad jeden rząd w ielkości na

korzyść wersji (2). M ożna to przew idzieć tylko przy znajom ości architektury procesora Sparc i sposobu optym alizacji funkcji m e m e p y ().

/* Time this program with /usr/5bin/time/a.out swapping (1) and (2)*/

ma i n O {

char sre [65536], dest[65536];

int i , j ;

for (j=0; j<100; j++) /* Replace one by another and re-run */

/* for (i=0; i<65536; i++) dest [i]=src [i]; */ /* (1) */

memepy(dest, sre, 65536); /* (2) */

>

Rys. 9. Przykład nieprzew idyw alności zachowania pam ięci podręcznej procesora Sparc.