• Nie Znaleziono Wyników

Zagadnienie realizacji loglanowskiego modułu SIMULATION na bazie języka Turbo PASCAL

N/A
N/A
Protected

Academic year: 2022

Share "Zagadnienie realizacji loglanowskiego modułu SIMULATION na bazie języka Turbo PASCAL"

Copied!
19
0
0

Pełen tekst

(1)

S e r i a : TRANSPORT z. 16 Nr k o l. 110:

Roman KONIECZNY

ZAGADNIENIE REALIZACJI LOGLANOWSKIEGO MODUŁU SIMULATION NA BAZE JĘZYKA TURBO PASCAL

S t r e s z c z e n i e . W a r t y k u l e rozw ażone z a g a d n i e n i e r e a l i z a c j i odpow iednika lo g la n o w s k ie g o modułu SIMULATION na b a z i e Ję z y k a Turbo PASCAL.

Wyspecyfikowane z o s t a ł y e le m e n ty . J a k i e p o w in ien z a w ie ra ć moduł u m o ż liw ia ją c y budowę programów sy m u lacy jn y ch . W s z c z e g ó ln o ś c i rozważono: z a g a d n i e n i e z a s t ę p c z e j r e a l i z a c j i p r o c e s u w ję z y k u Turbo PASCAL C w ersja 5 . OD, r e k o r d s t a n u o r a z a k c j e p r o c e s u ; z a g a d n ie n ie s te r o w a n ia p rocesam i o r a z z a g a d n i e n i e r e p r e z e n t a c j i o s i c z a s u , d l a k tó r e g o p rz e d s ta w io n o d z ie w ię ć w arian tó w im p lem en tacy jn y ch . Zwrócono ró w n ież uwagę na a s p e k t s t r u k t u r y programu sy m u lacyjnego.

A rtykuł sta n o w i m a t e r i a ł w yjściow y do celów a n a l i z y p r z e d p r o je k to w e j budowy modułu SIMULATION d l a p o tr z e b sy m u la c ji systemów d y s k r e tn y c h z d a rz e ń w ję z y k u Turbo PASCAL.

1. Wpr ow adzenie

W c i ą g u o s t a t n i c h l a t można zaobserwować b a rd z o sz y b k i rozwój ję z y k a Turbo PASCAL - lic e n c jo n o w a n e g o p r z e z am erykańską f ir m ę B orland I n t e r n a t i o n a l Co C l , 23. Język t e n p o s ia d a z in te g ro w a n e środow isko programowe C e d y to r, k o m p i l a t o r , l i n k e r , debuggerD , możliwość r o z ł ą c z n e j k o m p ila c ji modułów, b o g a tą b i b l i o t e k ę p ro c e d u r pomocniczych o ra z możliwość program ow ania ob iek to w eg o .

P rz e d s ta w io n e z a l e t y s k ł a n i a j ą do ro z w a ż e n ia k w e s tii budowy na b a z i e Turbo PASCAL-a u n iw e rs a ln e g o modułu CUNIT-u SIMULATIOND, u ła tw ia ją c e g o s y m u la c ję systemów d y s k r e tn y c h z d a r z e ń . UNIT t a k i ju ż z o s t a ł , co prawda, z r e a liz o w a n y w ję z y k u LOGLAN C3 , 4 , 5 , 6 , 7 ] , Je d n ak że efek ty w n o ść t r a n s l a t o r a Turbo PASCAL-a j e s t w i e l o k r o t n i e wyższa od LOGLAN-u. Ponadto Turbo PASCAL powoli s t a j e s i e stan d ard em .

Mimo p o d o b ień stw a sk ła d n io w e g o LOGALN-u i PASCAL-a. b e z p o ś r e d n ie p r z e n i e s i e n i e 1 o g l anowski e j k l a s y SIMULATION na język Turbo PASCAL n ie wchodzi w ra c h u b ę z uwagi na brak w Turbo PASCAL-u mechani.iai1- współprogramów o r a z ze względu na z b y t vrrTal'inow ane p r e f ikscwar.j - lo g ia n o w s k ie . Można je d n a k ż e sk o n stru o w a ć s k u te c z n e równoważne mechanizm;

z a s t ę p c z e . Dowodem te g o może być moduł MT Cmui t i taskingD r e a l i z u -a-.

w ielo zad an io w o ść w Turbo PASCALu CS3. Moduł t e n ma jednak in n a s p e c y i i k e . n i ż lo g la n o w sk a k l a s a SIMULATION Cwzorowana na SI MULI -67D i d la ; • ‘ r

(2)

170 Ro m an Kon ie cz n y

•s y m u la c ji m us_ałby być j e s z c z e rozbudow any Cgłów nie c p r o c e d u r ę p o s tę p u c z a s u } .

Podstawowe zasoby* j a k i e p o w in ie n z a w ie r a ć UNIT SIMULATION, n a s t ę p u j ą c e :

- p ro c e d u ra o r g a n i z u j ą c a s y m u la c y jn ą oś c z a s u , - p r o c e d u r y s t e r o w a n i a p ro cesam i [A ,73 ,

- p ro c e d u r y o r g a n i z u j ą c e k o l e j k i p r o s t e o r a z p r i o r y t e t o w e TA,73, - p ro c e d u r y g e n e ra to ró w l i c z b p se u d o lo so w y ch ,

- p ro c e d u r y h isto g ram ó w ,

- p r o c e d u r y dodatkow e z w ią z a n e z o b s łu g ą w e j ś c i a - w y j ś c i a .

2. Z a g a d n ie n ie z a s t ę p c z e j r e a l i z a c l i p r o c e s u w języku Turbo PASCAL w. 5. O

Podstawowym o b ie k te m w p r o g ra m ie sym ulacyjnym j e s t " p r o c e s " . P ro c e s można ro zu m ieć ja k o pewną p r o c e d u r ę " o t w a r t ą " i m i t u j ą c ą z ach o w an ie p ro c e s u r z e c z y w is te g o . P ro c e s ma swe a t r y b u t y Czmienne s ta n u } o r a z p a ra m e try . Można p r z y j ą ć , ż e zm iana w a r to ś c i zm iennych s t a n u p r o c e s u Czmiana s t a n u procesu!) odbywa s i ę w pewnych O k re ślo n y c h d y s k r e tn y c h c h w ila c h czasow ych.

C Z a g a d n ie n ia z w ią z a n e z opisem form alnym sy stem u d y s k r e tn y c h z d a r z e ń z o s t a ł y omówione w p r a c y £93}.

O g ó ln ie można p r z y j ą ć , ż e p r o c e s P j e s t n a s t ę p u j ą c ą dwójką:

P = <ZZS, FPS>

g d z ie :

ZZS — j e s t z b io re m w s z y s tk ic h zm iennych s t a n u p r o c e s u , FPS - j e s t z b io re m w s z y s tk ic h f u n k c j i p r z e j ś c i a s t a n u .

F u n k c je p r z e j ś c i a s t a n u p ro c e s u o p e r u j ą na z b i o r z e ZSS, a t a k ż e na wybranych zmiennych s t a n u in n y c h pro cesó w Ci o d w ro tn ie : i n n e p r o c e s y mogą operować na z b i o r z e ZZS danego p r o c e s u } . FPS i m p l i c i t e z a w i e r a j ą ró w n ież s t r u k t u r ę pow iązań z o to c z e n ie m . P r o g r a m i s t y c z n i e r z e c z b i o r ą c , b ę d z ie rek o rd em , n a to m ia s t FPS b ęd ą i n s t r u k c j a m i r e a l i z u j ą c y m i p o s z c z e g ó ln e a k c j e p r o c e s u . Wykonanie k a ż d e j a k c j i prow adzi do zm iany s t a n u p ro c e s u .

Język Turbo PASCAL n i e p o s i a d a mechanizmów procesów Cjak MODULA-2}

c z y sim procesów Cjak LOGLAN}. Z a s tę p c z y model p r o c e s u z r e a liz o w a n o d l a Turbo PASCAL-a w module MT £63 , je d n a k ż e d o ty c z y on tam s p e c y f i k i w ie lo z a d a n io w o ś c i Cw o g ó ln o ś c i} i s i ę g a z b y t g łę b o k o do h ard w are* u kom putera CIBM PC}. D la te g o w a r t y k u l e n in i e j s z y m p r z y j ę t o b a r d z i e j k o n w en cjo n aln e r o z w ią z a n ie w s e n s i e p ascalo w sk im i m niej z a l e ż n e od k o n k r e tn e j maszyny.

(3)

2 .1 . Rekord s t a n u p r o c e s u

Rekordem s t a n u p r o c e s u można nazwać n a s t ę p u j ą c y dwójkę:

RS = <ZZS*.Z2P>

g d zi e:

ZZS* —- j e s t zb io re m zmiennych s t a n u o r a z parametrów»

ZZP - j e s t zb io rem zmiennych pomocniczych.

ZZP j e s t w pewnym s e n s i e "n arzu tem " inform atycznym uzależnionym od p r z y j ę t e g o ję z y k a programowania Cw je g o s k ł a d mogą wchodzić np. dodatkowe zm ienne w skaźnikowe, zm ienne in d ek so w e, zm ienne s t e r u j ą c e w p ę t l a c h , i t d . }.

P rzykładow a s t r u k t u r a re k o rd u s t a n u p ro c e s u może być n a s tę p u ją c a :

?-Ypę

Rekord S ta n u P ro c e s u Nrl = r e c o r d X:

Y:

z b i ó r d e k l a r a c j i zmiennych s ta n u o r a z param atrów CZSS }

I: •

J:

E: i n te g e r

z b i ó r d e k l a r a c j i zmiennych pomocniczych CZPPD

'ę n d ; RS1 = ^R ekord_S tanu_P rocesu_N r1;

CE - o z n a c z a e t y k i e t ę k o n ty n u a c ji p ro c e s u } .

Rekordy s t a n u procesów in n e g o ty p u można ró w n ież utw orzyć według powyższego schem atu. T w orzenie k o l e j n y c h . e g z e m p la rzy procesów danego ty p u p o le g a na wygenerowaniu odpow iednich rekordów s t a n u C p ro ced u rą NEW}. U su n ię c ie e g z e m p la rz a p r o c e s u odbywa s i ę p o p rz e z u ż y c ie p ro c e d u ry d e a l o k a c j i CDI SPOSE}.

2 .2 . A kcje p r o c e s u

P rz y jm u ją c , ż e p r o c e s w PASCAL-u b ę d z ie z a s tę p c z o r e a liz o w a n y w p o s ta c i p ro c e d u ry " o t w a r t e j " , n a le ż y ro zw aży ć, w j a k i sp o só b będą wykonywane a k c j e C i n s t r u k c j e } te g o p r o c e s u i ja k zapew niona b ę d z ie owa " o tw a r to ś ć " , c z y l i w y jś c ie o r a z powrót dc p r o c e d u r y w o k r e ś lo n e m ie js c e C a n a lo g ic z n ie ja k we współ p ro g ram ie} celem j e j k o n t y n u a c j i .

T r a k t u j ą c p r o c e s n a j b a r d z i e j t r y w i a l n i e , ja k o sekw encję i n s t r u k c j i , można zauw ażyć, ż e odpo w ied n ia p ro c e d u ra r e a l i z u j ą c a a k c j e p ro c e s u Ci z w iązan e z ok reślo n y m rekordem s ta n u } pracować b ę d z ie w tzw. p r z e p l o c ie ^ według schem atu:

(4)

172 R oman Ko ni ec z ny

- a k c j e początkow e program u sym ulacyjnego*

— p ro c e d u ra C proces 13

--- a k c j e p r o c e s u J

— » w y jś c ie ■ ■ ... .. a k c j e in n y c h procesów Coddanie s t e r o w a n i a )

— ■■■ * pow rót Cpo c z a s i e At!) d a l s z e a k c j e p r o c e s u 1

—* w y jś c ie ■ ■ » a k c j e in n y c h procesów

______________ I

d a l s z e a k c j e p r o c e s u 1

end;

W p ro g ra m ie sym ulacyjnym p rz e d w yjściem z p r o c e s u o k r e ś l a s i e o d s tę p czasowy At C czasu sym ulacyjnego!) do n a s t ę p n e j a k c j i p ro c e s u . Mimo ±e możliwe Ci sto so w a n e ) j e s t lo s o w a n ie c z a s u A t, p o s tę p o w a n ie t a k i e ma c ech y d e t e r mi n i zmu z d a r z e ń , poniew aż z g ó r y wiadomy j e s t c z a s z a j ś c i a n a s tę p n e g o z d a r z e n i a C ak ty w acji k o le jn e g o p r o c e s u j . O k r e ś l a n i e odstępów m iedzyzdarzeniow ych nazywane j e s t w s y m u la c ji planow aniem z d a r z e ń Cczyi i u k ład an iem k o l e j n o ś c i p r z y s z ł y c h z d a r z e ń na o s i c z a s u s y m u la c y jn e g o j.

K o le jn o ś ć p r z y s z ł y c h z d a r z e ń zw ykle j e s t przypadkow a, ac z k o lw ie k możliwe je s t . "wymuszenie" w y s t ą p i e n i a pewnych z d a r z e ń p rz e d C lub p o j innym. Może f eż być p r z y j ę t a t a k t y k a n a s t a w i a n i a czasów At na " n ie s k o ń c z o n o ś ć " CAt=ca), co o z n a c z a b i e ż ą c e z a w ie s z a n ie pro cesó w celem i c h p ó ź n i e j s z e g o u a k ty w n ie n ia w b l i ż e j n ie o k re ś lo n y m c z a s i e .

Warto ró w n ież w tym m ie js c u z w ró c ić uwagę na r ó ż n i c e w o b s łu d z e k la s y c z n e j w ie lo z a d a n io w o ś c i l u b w s p ó łb ie ż n o ś c i Cnp. w system ach operacyjnych!) a postępem c z a s u w s y m u l a c j i . P r z y współ b i e ż noś c i n i e s ą znane c z a s y w y s tą p ie n ia k o l e jn y c h z d a r z e ń . A ktyw acja procesów odbywa s i ę zazw yczaj c y k l i c z n i e p o p rz e z p r z y d z i a ł "kw antu" c z a s u p r o c e s o r a k olejnym procesom. Kwanty c z a s u , w k t ó r y c h p r o c e s y s ą aktyw ne C p r a k ty c z n ie je d e n

" b ie ż ą c y " p r o c e s j , s ą o d m ie rz a n e p r z e z u k ła d p rz e rw a ń p r z y w y k o rz y s ta n ie z e g a r a maszynowego.

W s y m u la c ji p ro c e s o r j e s t " a s y n c h r o n i c z n i e " o b c ią ż o n y p ro c e s a m i, a p r z y o b s łu d z e współ b i e ż noś c i " s y n c h r o n i c z n i e " . 2 p u n k tu " w id z e n ia " system u o p e ra c y jn e g o c a ł y program s y m u la c y jn y z e swoimi sym ulacyjnym i p rocesam i j e s t t a k ż e procesem Ca r a c z e j n a l e ż a ł o b y p o w ie d z ie ć "z a d a n ie m ", jednym a w ie lu , j e ż e l i sy ste m j e s t wi e l o z a d a n i owy!). W LOGLAN-ie b a r d z o s ł u s z n i e r o z r ó ż n i a s i ę p o j ę c i a " p r o c e s " i " s im p ro c e s " ( p r o c e s sym ulacyjny!).

(5)

P r a k t y c z n i e r z e c z b i o r ą c , w s y m u la c ji może z d a rz y ć s i ę s y t u a c j a , ź e k o l e j n e a k c j e b ie ż ą c e g o p ro c e s u p o c h ło n ą n ie s k o ń c z o n y c z a s p r o c e s o r a Cnp. możliwe j e s t z a p ę t l e n i e s i ę k tó r e g o ś p ro c e s u sy m u lacy jn eg o i n i e ma m ożliw ości

" s a n o o d w ie s z e n ia " ) , p o d czas gdy p r z y p r a c y w ie lo z a d a n io w ej o d w ie sz a n ie t a k i e odbywa s i ę a u to m a ty c z n ie p o p rzez u k ła d p rzerw ań . W p r a c y w ielo zad an io w ej z a p ę t l e n i e s i ę je d n e g o p r o c e s u Czadani a j n i e może wstrzymać a k c j i in n y ch procesów {zadań!). W s y m u l a c j i , n i e s t e t y J e s t t o m ożliwe, z a p ę t l e n i e jed n eg o p ro c e s u z a trz y m a c a ł y program sym u lacy jn y .

Dla pewnej g ru p y z a sto so w a ń możliwe j e s t prow adzenie sy m u la c ji p r z y w y k o rz y s ta n iu z e g a r a maszynowego. C zęściow e " p o d p a r c ie s i ę " zegarem maszynowym j e s t s to so w a n e ró w n ie ż , gdy wymagana j e s t w i z u a l i z a c j a wyników s y m u la c ji w c z a s i e rzeczy w isty m .

Powrót do p r o c e d u r y p ro c e s u w m ie js c e k o n t y n u a c j i , w t a k i c h ję z y k a c h , ja k : LOGLAN, MODULA-2, ADA, C o n c u rre n t PASCAL, c z y nawet C J e s t o rg an izo w an y a u to m a ty c z n ie . W Turbo PASCAL-u można t o z r e a liz o w a ć w sposób ko n w en cjo n aln y z a pomocą mechanizmu skoku i e t y k i e t y k o n ty n u a c ji.

P o n iż e j podano przykładow y p a s c a lo w s k i model p ro c e d u ry p ro cesu Csi m p ro c e s u j:

p r o c e d u r ę Proces_NrlCw: RS1 D ; c o n s t e t 1 _=1; e t ; e t 3_=3;

1a b e l e t l , e t 2 , e t 3 ; < e t y k i e t y k o n ty n u a c ji>

be cu n wi t h w" do

beai n

c a s e E gf_ <wymóg t e c h n i c z n y PASCALaJ e t i g o to e t l ;

eŁ2_: g o to e t 2 ; e t3 _ : g o to e t 3;

e l s e b e g in { b łą d k o n ty n u a c ji w P r o c e s i e N rl>; e x i t : e n d : e n d : ( c a s e )

e t l : < . . . > zmiana s ta n u

{początkow e a k c j e p r o c e s u ) ;

{. . . >

E: = et2 _ ; e x i t : e t 2: { . . . >

{ d a l s z e a k c j e p r o c e s u ) ;

{. . . >

E: = et 3_; e x l t : e t 3: { . . . >

{końcowe a k c j e p r o c e s u ) ;

{. . . >

E: = e t l : e x i t : e n d :

end; { P ro c e s _ N rl>

W przed staw io n y m modelu zastęp czy m c h a r ak t e r y s ty c z n e J e s t u ż y c ie i n s t r u k c j i skoku bezwarunkowego CGOTOJ i zw iązanych z tym e t y k i e t k o n t y n u a c j i . J e s t t o je d y n y w y jątek Cz p rz y c z y n te c h n ic z n y c h w PASCAL-u}, j a k i u c z y n io n o d l a i n s t r u k c j i GOTO. CNormalnie i n s t r u k c j e skoku bezwarunkowego n i e powinny być w p ro g ra m ie używane!). S t a ł e etl__. . . z w ią z a n e z e ty k ie ta m i k o n ty n u a c ji powinny mieć n ie p o w ta r z a ln e w a r to ś c i.

Aby u n ik n ą ć e fe k tó w n ie z a m ie rz o n y c h n i e n a le ż y przyryw ać procesów Cwychodzić z p r o c e d u r y p r o c e s u j w p ę t l a c h FOR. Z uwagi na z a s tę p c z y

w y jś c ie zmiana s ta n u

w y jś c ie zmiana s t a n u

w y jś c ie

(6)

i 76. Roman Koni e c zn y

c h a r a k t e r modelu p ro c e s u sy m u la c y jn e g o w PASCAL-u C k o n ieczn o ść s to s o w a n ia e t y k i e t o r a z wstawki c a s e j n a l e ż y z w ró c ić s z c z e g ó ln ą uwagę na c z y t e l n o ś ć z a p i s u a k c j i C i n s t r u k c j i j p r o c e s u i o d p o w ied n ie i c h komentowanie. E t y k i e t y k o n ty n u a c y jn e mogą mieć " s k o ja r z e n io w e " nazwy. np. START. KONIEC. ROZRUCH.

WYpIEG. HAMOWANIE i t d .

S to so w a n ie e t y k i e t k o n ty n u a c y jn y e h . a c z k o lw ie k J e s t n i e c o k ł o p o t l i w e d l a p r o g r a m i s t y , wymusza j e d n o c z e ś n i e na nim pewną z w ię k sz o n ą d y s c y p l i n ę , t j - k o n ie c z n o ś ć d o k ła d n e g o o z n a c z a n i a , s p e c y f ik o w a n ia w nagłówku o raz komentowania " m ie js c p rz e ry w a ją c y c h " p r o c e s u . D okładne o z n a c z e n ie t y c h

» e j s c j e s t n ie z w y k le ważne .w p r o g r a m ie , p o n i e w a ż 'd z i ę k i temu możliwe j e s t ł a t w i e j s z e o d n a l e z i e n i e “g r a n ic z n y c h " i n s t r u k c j i . g d z i e n a s t ę p u j e zm iana s t a n u p ro c e s u .

P rz e d w yjściem z p r o c e s u , t j . wykonaniem i n s t r u k c j i EXIT, n a l e ż y o k r e ś l i ć c z a s m ięd zy zd arzen io w y At o r a z n a s t ę p n ą ę t y k i e t ę k o n ty n u a c y jn ą , j e ż e l i p r o c e s ma być kontynuowany. N a le ż y t u t a j n a d m ie n ić . ż e w p rzed staw io n y m modelu Cw o d r ó ż n i e n i u od LOGLAN-tD n i e ma żadnych p r z e c i wskazań o d n o ś n ie do s a m o d e ą lo k a c ji p r o c e s u C tz n . p r o c e s może sam s i e b i e u s u n ą ć , t j . skasować swój — wybrany d l a danego e g z e m p la rz a - r e k o r d E t anu! .

3. Z a g a d n ie n ie s t e r o w a n i a pro cesam i

D la każdego w zorca C typu! p r o c e s u może i s t n i e ć w i e l e e g z e m p la rz y czynnych procesów . P r o c e s y mogą być z e s o b ą pow iązane. Na r y s . l pokazano i s t o t ę p a s c a l owsk i e g o s p o j r z e n i a na p r o c e s y sy m u la c y jn e .

PROCESY RÓWNOLEGLE Wzorce procesów C i n s t r u k c j e p ro c e d u ry !

TYP TYP TYP

1 2 N

c £

" . . .

Egzempl a r z e procesów C rek o rd y s ta n u }

R y s .l . Wzorce i e g z e m p la rz e procesów F i g . i . M asters and c o p i e s o f p r o c e s s e s

R óżnica w k o n s t r u k c j i p r o c e s u s y m u la c y jn e g o C sim procesu} między LOGLAN-em a PA3.uAL—em p o le g a na tym, ż e w LOGALN— l e p r o c e s ( s i m p r o c e s j J e s t -współprogr amem i j e d n o c z e ś n i e k l a s ą C współ programem pr e f i ksowanym k la s ą } . -Ciało p ro c e s u z a w ie ra i w zorzec p ro c e d u r y p r o c e s u , i je g o r e k o r d s t a n u . P o n ad to n i e w y s tę p u ją e t y k i e t y a n i i n s t r u k c j a GOTO, a k w e s tia "m ie js c p rz e ry w a ją c y c h " t k o n ty n u a c ji j e s t zautom atyzow ana C nie w y s tę p u je

(7)

e x p l i c i t e } . J e s t t o e w id e n tn a fo rm a ln a przew aga LOGLAN-u nad PÂSCAL-em.

C D latego w a r t v k u l e n i n ie js z y m mówi s i ę o z a s t ę p c z e j r e a l i z a c j i p ro c e su PASCAL-u}.

P ro c e d u ra p r o c e s u uw zględni aó musi w s z e lk ie możliwe wzorce zachowa:'»

p r o c e s u C w szelk ie możliwe zmiany stanów} w ró żn y ch s y t u a c j a c h . P ro c e s j e s t pow iązany z innymi procesam i , j e ż e l i p ro c e d u ra p r o c e s u o p e r u je na rekordach, s t a n u in n y c h procesów Club j e ż e l i p r o c e d u ry in n y c h procesów o p e r u ją na r e k o r d z i e s t a n u wybranego p ro c e s u } . “O perow anie" na r e k o r d z i e s ta n u d o ty c z y ć może zarówno o d c z y tu , Jak i zm iany w a r to ś c i wybranych zmiennych s ta n u .

P rz e d s ta w io n y w p . 2 z a s t ę p c z y u p ro sz c z o n y model p ro c e s u można z a p is a ć b a r d z i e j szczegółow o:

PROCES

U

WEJŚCIE e t l : e t y k i e t a

k o n ty n u a c ji

" m ie js c e pr z e r y w a ją c e "

e t y k i e t a e t 2:

k o n ty n u a c ji

" m ie js c e pr z e r y w ające

e t y k i e t a e t3 : k o n ty n u a c ji

r e a l i z a c j a i n s t r u k c j i f u n k c j i p r z e j ś c i a s t a n u C ak c je p r o c e ­ su}

ZMIANA STANU

p r z e j ś c i e z e s t a n u p o p rz e d n ie g o na s t a n " e t l "

o k r e ś l e n i e c z a s u At tr w a n ia w s t a n i e " e t l " j

o k r e ś l e n i e e t y k i e t y k o n ty n u a c ji C o k r e ś l e n i e n a s tę p n e g o s t a n u p ro cesu }

e x i t : WYJŚCIE —

r e a l i z a c j a i n s t r u k c j i f u n k c j i p r z e j ś c i a s t a n u C a k c je p r o c e ­ su}

ZMIANA STANU

p r z e j ś c i e z e s t a n u p o p rz e d n ie g o na s t a n " e t 2 "

o k r e ś l e n i e c z a s u At tr w a n ia w s t a n i e " e t 2"

o k r e ś l e n i e e t y k i e t y k o n ty n u a c ji C o k r e ś le n ie n a s tę p n e g o s t a n u p ro cesu }

e x l t : WYJŚCIE ---►

.jS* r e a l i z a c j a i n s t r u k c j i f u n k c j i ' p r z e j ś c i a s t a n u C a k c je p r o c e ­

s u j

ZMIANA STANU

p r z e j ś c i e z e s t a n u p o p rz e d n ie g o na s t a n " e t 3"

- o k r e ś l e n i e c z a s u At tr w a n ia w s t a n i e " e t 3 "

- o k r e ś l e n i e e t y k i e t y k o n ty n u a c ji C o k r e ś l e n i e n a s tę p n e g o s ta n u pro cesu }

- e x i t : WYJŚCIE --->

o p e r a c j e na r e k o r d z i e s t a n u

pr zygot owanie do o d d a n ia s te ro w a n ia

> o d d a n ie s te r o w a n ia

o p e r a c j e na r e k o r d z ie s ta n u

p rzy g o to w an ie do o d d a n ia s te r o w a n ia

} o d d a n ie s te r o w a n ia

o p e r a c j e na r e k o r d z i e s ta n u

p rz y g o to w a n ie do oddani a s t er owani a

} o d d a n ie s te r o w a n ia

" m i e j f c e p r z e r y ­ w ające

(8)

176 Roman Ko ni eczny

P ro c e s y p r a c u j a ró w n o le g le C q u a s i - r ównol e g l eD . Na r y s . 2 pokazano z rz u to w a n e na s y m u la c y jn a o£ c z a s u c z a s y t r w a n i a przykładow ych procesów w ró ż n y c h s ta n a c h o r a z c z a s y o b s ł u g i p r z e z kom puter a k c j i p o s z c z e g ó ln y c h procesów .

_P,

~ p )

P r o c e s

© © (D,

eL1l

© 2 1 eta_______________.

© _ X _____Z - _____

( D

© et12

©

eŁ22

T

I

1 : :

!

Programowe akcje procesów np.Jrns]

czas zegarowy (komputerowi»

\ \

\ N -

\

\

,

\ zdarzeń

Ł U U I 4.C I 1

N

\

w symulowanym\

system ie '

p

> - - u d zia ł procedury postępu czasu symulacyjnego oraz wyboru procesu

e t t l " -

et31*-

.et. 22

.eU 2 -

\ e t 3 2 -

np.

symulacyjna os czasu (czasy trwania procesów

v poszczególnych stanach)

Rys. 2. Q u a s i- r ó w n o le g ła p r a c a procesów i s y m u la c y jn a oś c z a s u F ig . 2. A q u a s i - p a r a l l e l work o f p r o c e s s e s and s i m u l a t i o n tim e a x i s

(9)

Obserw ując sy m u la c y jn ą oś c z a s u C r y s . 2 ) , można zauważyć, że np. c z a s p rzeb y w an ia p ro c e s u 1 w s t a n i e 1 p r z e b ie g a od c h w ili " e t l l " do c h w ili Me t l 2 " . W s y m u la c ji systemów d y s k re tn y c h z d a rz e ń z a k ła d a s i ę . ¿ e c z a s zmiany s t a n u p ro c e s u C t j . c z a s p r z e j ś c i a z e s t a n u p o p rz e d n ie g o na n a s tę p n y ) J e s t p o m i j a ł n i e mały w s to s u n k u do c z a s u tr w a n ia p ro c e s u w danym s t a n i e . K lasy czn ą i l u s t r a c j ą te g o problem u może być s y g n a l i z a t o r k o lejo w y , d la k tó r e g o i s t o t n - j e s t c z a s tr w a n ia ś w i a t ł a z i e l o n e g o lu b czerw onego, a n ie c z a s p r z e j ś c i a z e s t a n u "czerw one" na " z i e l o n e " , k t ó r y j e s t p o m ija ln y . Z p u n k tu w id z e n ia c z a s u zegarowego Cmaszynowego) w ła ś n ie t e zmiany stanów procesów a b s o r b u ją p r o c e s o r . To co na o s i c z a s u sy m u lacy jn eg o j e s t p o m ija ln e C ak c je p ro c e s ó w ), n i e j e s t p o m ija ln e na o s i c z a s u komputerowego.

Nie j e s t ró w n ież p o m ija ln y c z a s p r a c y p ro c e d u ry p o s tę p u c z a s u i wyboru p ro c e s u Cpunkty P r y s . 2 ) . Ponieważ p ro c e d u ra p o s tę p u c z a s u i wyboru p ro c e su j e s t n a j b a r d z i e j o b c ią ż o n ą p r o c e d u r ą C p ra c u je w p r z e p l o c i e czasowym między akcjam i p ro c e só w ), ważna j e s t o dpow iednia im p le m e n ta c ja t e j p ro c e d u ry Cmi ni mai i z a c j a kosztów czasow ych).

Z p u n k tu w id z e n ia p ro c e d u ry p o s tę p u c z a s u na oś c z a s u sym ulacyjnegc nożna s p o j r z e ć j e s z c z e i n a c z e j . Oś t a może być re p re z e n to w a n a ja k o uporządkowany ro s n ą c o Cwedług k lu c z a TA) z b i ó r t r ó j e k <TA,TYP,EGZ>, g d z ie TA o z n a c z a s y m u la c y jn y c z a s a k ty w a c ji p r o c e s u , TYP o zn acza ty p Cnazwę, a d r e s ) p ro c e d u ry w zorca p r o c e s u , a ÉGZ j e s t wskazaniem do re k o rd u s ta n u daneg_. e g z e m p la rz a p ro c e s u . Zeby w ie d z ie ć , k t ó r y p ro c e s n a le ż y w dan ej c h w i l i u a k ty w n ić , n a le ż y x ą n a ć n a j m n i e j s z e C a k t u a l n i e p ie rw s z e na o s i c z su sy m u la c y jn e g o ) TA, żeby w ie d z ie ć według j a k i e g o wzorca n a le ż y wykonać a k c je C i n s t r u k c j e ) p r o c e s u - n a le ż y znać nazwę p ro c e d u ry p r o c e s u , żeby w ied z ie ć od j a k i e g o m ie js c a we wzorcu n a l e ż y wykonać a k c j e C i n s t r u k c j e ) p ro c e s u - n a l e ż y znać w sk azan ie do je g o r e k o r d u s t a n u . Na r y s . 3 pokazano i l u s t r a c j ę s y m u la c y jn e j o s i c z a s u z p u n k tu w id z e n ia p o t r z e b p ro g ra m is ty .

CTA.TYP,EGZ) CTA,TYP.EGZ) . C TA,TYP,EGZ)

i---1 h 1---1---1---1*---1---1---1---1---> J L ,

O TA TA TA TA

i 2 t n

Rys. 3. Oś c z a s u sy m u la c y jn e g o z p u n k tu w id z e n ia p o tr z e b p r o g r a m is ty F ig . 3. A s i m u l a t i o n tim e a x i s from programmer p o in t o f view

C hw ile czasow e TA n a l e ż ą do z b i o r u < 0 ,. . . max INTEGER) lu b < 0 ,. . . , n\ax REAL).

P r a k t y c z n i e zak resem liczbowym d l a TA j e s t [ O, CZAS_SYMULACJI3, g d z ie w a r to ś ć zm iennej CZAS_SY MULACJI j e s t zw ykle dużo m n ie js z a od maksymalnej Cna danym s p r z ę c i e ) l i c z b y c a ł k o w i t e j l u b r z e c z y w i s t e j . Typy procesów TYP n a l e ż ą do z b i o r u <TYP_1 i . . . , TYP__maxTYP>. Wskazania EGZ n a le ż ą do z b io r u

<1 , . . . ,maxEGZ> d l a każdego ty p u . Zmienna TYP o d s y ła do danego wzorca o r o c e d u r y p r o c e s u . Zmienna EGZ J e s t r e f e r e n c j ą do wybranego egzem plarza C rek o rd u s t a n u ) p ro c e s u . R e f e r e n c ja t a musi być p rz e k a z a n a p ro c e d u rz e

(10)

176 R oman Ko ni eczny

p ro c e s u . Zmienne TA w ję z y k u LOGLAN o r a z SIMULA n o s z ą nazwę zawiadom ień procesów . O c z y w iśc ie , ta k ja k w LOGLAN - i e i SI MUL-i , każdy p r o c e s może mieć t y l k o je d n o za w ia d o m ie n ie na o s i c z a s u .

S te ro w a n ie p ro cesam i odbywa s i ę p o p rz e z wykonanie pewnych p r o c e d u r , k t ó r e od n o szą s i ę do o s i c z a s u s y m u la c y jn e g o . Na p r z y k ła d :

- o k r e ś l e n i e c z a s u t r w a n i a p r o c e s u w danym s t a n i e C lo g la n o w s k ie HOLD C73), zm iana w a r to ś c i TA C zaw iadom ienia) d l a danego p r o c e s u C lo g la n o w sk ie SCHEDULE).

- n aty c h m ia sto w e p r z e k a z a n i e s t e r o w a n i a wybranemu p ro ceso w i C lo g la n o w sk ie RUN) .

- z a w ie s z e n ie wy'branego p ro c e s u C lo g la n o w s k ie PASSIVATE o r a z CANCEL).

Z r e a liz o w a n ie wyżej wymienionych p ro c e d u r w ję z y k u Turbo PASCAL w module SIMULATION n i e powinno n a s t r ę c z a ć s p e c j a l n y c h t r u d n o ś c i .

4. Z a g a d n ie n ie r e p r e z e n t a c j i o s i c z a s u

Na o s i c z a s u z a c h o d z ą c z ę s t e zm iany. Pewne z a w ia d o m ie n ia s ą w staw iane na p o c z ą te k , na k o n ie c l u b w śro d e k g ru p y zaw iadom ień, i n n e s ą usuwane luL p rzesuw ane. N a jw a ż n ie js z e d l a p ro c e d u r y p o s tę p u c z a s u j e s t z i d e n t y f i k o w a n i e p r o c e s u o n a j m n i e j s z e j w a r t o ś c i z a w ia d o m ie n ia TA i p r z e k a z a n i e mu s t e r o w a n ia C k tó r e z k o l e i może być zw rócone do p ro c e d u r y p o s tę p u c z a s u lu b p r z e k a z a n e b e z p o ś r e d n io innemu p r o c e s o w i) .

P ro c e d u ra p o s tę p u c z a s u j e s t n a j c z ę ś c i e j używana w p r og ra mi e sym ulacyjnym , d l a t e g o wymaga s z c z e g ó ln e g o ro z w a ż e n ia ze względu na k o s z t a lg o ry tm u . Możliwy j e s t t u t a j wybór z p ewn e go wa ch larza wariantów: cd CSL-owskiego C n a jg o rs z e g o ) do lo g la n o w s k ie g o Cnaj1e p s z e g o ) . W wariantach t y c h o ś c z a s u j e s t re p re z e n to w a n a z a pomocą t a b l i c , l i s t lu b drzew.

P o n iż e j podano n i e k t ó r e z n ic h .

WARIANT I a * l a CSL

W ję z y k u CSL, bazującym na FORTRAN-ie Cze w szy stk im i t e g o negatywnymi k o n se k w e n c ja m i), k ażdy p r o c e s ma swój a t r y b u t c z a s u . A tr y b u ty p o s z c z e g ó ln y c h procesów pogrupowane s ą w t a b l i c a c h o s t a ł y c h ro z m ia ra c h .

P rz y jm u ją c , ż e n j e s t l i c z b ą w s z y s tk ic h czynnych procesów, trzeba p r z e j r z e ć w s z y s tk ie n a tr y b u tó w c z a s u i o k r e ś l i ć n a j m n i e j s z y , na s tę pn ie w a rto ś ć te g o a t r y b u t u o d ją ć od w a r to ś c i w s z y s tk ic h n a tr y b u tó w c z a s u ; z k o l e i n i e z a l e ż n a d ro g ą wyszukiwany j e s t p r o c e s o zero w ej w a r to ś c i a t r y b u t u c z a s u i J e s t on u ak ty w n ian y . K oszt a lg o ry tm u w p rz y p a d k u pesym istycznym wynosi oC 3 n ) .

■W CSL-u l i c z b a procesów sta n o w i s t a ł ą z a d e k la ro w a n ą p u lę . W arian tu te g o n i e d o ty c z ą z a g a d n i e n i a w s ta w ia n ia na p o c z ą te k , c z y t e ż g en e ro w a n ia bądź d e a lo k ow ania procesów . Oś c z a s u n i e w y s tę p u je e x p l i c i t e . J e s t ona

•‘schowana** w a t r y b u t a c h c z a s u .

(11)

WARIANT I I T a b l i c a so rto w a n a

Z a k ła d a s i ę s t a ł ą t a b l i c ę o wymiarach C l . . . MAX], w k t ó r e j elementami s ą t r ó j k i <TA,TYP,EGZ>, n j e s t l i c z b ą a k t u a l n i e czynnych procesów Cn* MAX' Każde nowe zaw ia d o m ie n ie w staw iane j e s t na k o n ie c , a n a s t ę p n i e tablica j e - ' so rto w a n a według k lu c z a TA, np. p r z y u ż y c iu sta n d a rd o w e j procedury QUICKSORT. Koszt alg o ry tm u wynosi oCnwiogn), g d z ie lo g n slo g ^ n .

WARIANT I I I T a b l i c a z e ześrodkow aniem

I s t o t ę t e g o w a r ia n tu można z i l u s t r o w a ć na n astę p u ją c y m schem acie:

i I p * Ik MAX

i 'ó iu " " - .- u r T H i x r s r x 'n t T --- s r s i n

N ie p u s te e le m e n ty , t z n . t r ó j k i <TA,TYP,EGZ> zgrupowane s ą w śro d k u t a b l i c y . I p o z n a c z a in d e k s e le m e n tu p ie rw s z e g o C pierw szy na o s i c z a s u ) , Ik o s t a t n i e g o . D o s ta w ie n ie ele m e n tu na p o c z ą te k zgrupow ania XXX. . . XXX lub na k o n ie c j e s t n aty ch m iasto w e. W staw ienie wymaga p r z e s u n i ę c i a c z ę ś c i obecnych Ju ż elem entów o 1 w prawo lu b w lewo. Koszt w yszukania in d e k s u Cmetoda p o d z i a ł u połówko\*ego) wynosi oC logn) , k o s z t p r z e s u n i ę c i a Cw przypadku pesym istycznym ) wynosi o C n /2 ). Łączny k o s z t alg o ry tm u : oC 1 o g n + n /2 ).

O c z y w iś c ie , zaw sze musi być s p e ł n i o n y warunek n<MAX, g d z ie n j e s t liczbą czynnych procesów .

WARIANT IV T a b l i c a z rozśrodkow aniem

R óżnica w s to s u n k u do w a r ia n tu I I I p o le g a na tym, ż e zgrupowane e le m e n ty z o s t a ł y rozśrodkow ane.

1 I P * Ik MAX

| --- 6 | « 1 ? T I ' K P ' 5 1 T |ó o | a | o | o |

P r z e s z u k iw a n ie t a b l i c y , celem w s ta w ie n ia lu b u s u n i ę c i a e le m e n tu , odbywa s i ę w z a k r e s i e indeksów I p . . I k . W w a r i a n c i e tym I k - I p j e s t dużo w ięk sze od n.

^ T z y ję c ie pewnych odstępów m iędzyeleraentowych ma na c e l u z m n ie js z e n ie u d z i a ł u s k ł a d n i k a n / 2 C w y stęp u jąceg o w w a r ia n c ie I I I ) w ogólnym k o s z c ie a lg o ry tm u , ponieważ* ewentualnem u

m

p r z e s u n i ę c i u u l e g n i e t y l k o n ie z n a c z n a

c z ę ś ć elem entów , a n i e połowa.

K oszt a lg o ry tm u d l a przy p ad k u p e sy m isty c z n e g o wynosi oClogMAX+K*n), g d z ie k j e s t pewną s t a ł ą m n ie js z ą od 0 .5 .

WARIANT V L i s t a je d n o s tr o n n a

Oś c z a s u re p re z e n to w a n a j e s t w p o s t a c i s t r u k t u r y dynam icznej - l i s t y je d n o s tr o n n e 1. J e s t t o k la s y c z n e r o z w ią z a n ie , o k o s z c ie a lg o ry tm u w przypadku pesym istycznym oCn).

(12)

180 R oman K o ni ec zn y

WARIANT VI Lii. t a d w ustronna

Oś c z a s u re p re z e n to w a n a j e s t w p o s t a c i l i s t y d w u s tro n n e j. J e s t t o ró w n ież k la s y c z n e r o z w i ą z a n i e , . k t ó r e g o ś r e d n i k o s z t a lg o ry tm u wynosi oCn/23.

WARIANT VII L i s t a d w u stro n n a " p r z y s p i e s z o n a ”

Wadą w arian tó w V i VI j e s t k o n ie c z n o ś ć sekw en cy jn eg o p r z e s z u k iw a n ia l i s t . Można p r z y j ą ć , ±e o p e r a c j a t a u l e g n i e pewnemu p r z y s p i e s z e n i u , j e ż e l i l i s t a z o s t a n i e s p r z ę ż o n a z pom ocniczą t a b l i c ą wskaźników , ja k na poniższym schemaci e:

oś c z a s u

□ ; n ; n r

pi e r wszy

T a b lic a pomocnicza ---

.

'

v..

...W ' 1

Ta TA TA "...T I ...

prawo PRAWO IP’RaWo

Lewć LfcWo LBK5 '

W - w skaźnik do e le m e n tu l i s t y , TA - c z a s a k ty w a c ji p r o c e s u ,

PRAWO,LEWO — l i c z b y elem entów w prawo l u b w lew o na l i ś c i e z a elem entem . do k t ó r e g o i s t n i e j e w sk a z a n ie w t a b l i c y p o m o c n ic z e j.

T a b l i c a pom ocnicza j e s t p rz e s z u k iw a n a według k lu c z a TA, a n a s t ę p n i e j e s t p rz e sz u k iw a n y odpow iedni f ra g m e n t l i s t y . Optymalny k o s z t a lg o ry tm u wynosi : oC 1 ogL+n/'SwLZ).

Aby k o s z t b i e ż ą c y był zaw sze z b l i ż o n y do o p ty m a ln e g o , p o tr z e b n e J e s t o kresow e korygow anie t a b l i c y p o m o c n ic z e j, ta k aby na p o s z c z e g ó ln e w sk a z a n ie p r z y p a d a ła mniej w ię c e j t a sama l i c z b a procesów obecnych na l i ś c i e Ctzn.

aby w a r to ś c i zmiennych PRAWO i LEWO n i e w i e l e r ó ż n i ł y s i ę od s i e b i e } . T a b l i c a pomocnicza d l a t e g o w a r ia n tu ró w n ie ż może być ześrodkow ana Ca n a l o g i c z n i e ja k oś c z a s u w w a r i a n c ie I I I } .

WARIANT V III N l i s t je d n o s tr o n n y c h

D a lsz e p r z y s p i e s z e n i e wykonywania o p e r a c j i na o s i c z a s u można uzyskać p o p rz e z z o rg a n iz o w a n ie j e j w p o s t a c i z b i o r u N l i s t je d n o s tr o n n y c h C "p o zi ornych*’} ja k na poniższym sc h em acie:

C L is ta d w u stro n n a )

o s t a t n i

(13)

OGOM-PiOtl

GLDWA..PIQN ł pierwszy

GŁOW\_POZ.

OGON-POZ KKST.PION

GŁ0¥&_P0Z

OGON.POZ

NdST.PION

ostatni

GL0WAi_P0Z

OGON-POZ

NIL

LISTA PIONOWA

elem ent najmniejszy

pierwszy l _

T _ .

U r

ostatni

r

LISTY POZIOME

Z b ió r l i s t poziomych j e s t ta k zo rg a n iz o w a n y , ż e e lem en t o n a jm n ie js z e j w a r to ś c i TA Cpi erw szy na o s i c z a s u ) z n a j d u j e s i ę zawsze j a k o p ie rw sz y na p ie r w s z e j l i ś c i e p o zio m ej. L i s t a "pionowa'* Cpomocniczaj z a w ie r a w skaźniki do l i s t poziomych Cdo p ie rw sz e g o e le m e n tu GŁOWA_POZ o ra z do o s t a t n i e g o OGON _POZD .

Po u s u n i ę c i u e le m e n tu n a jm n ie js z e g o u k ła d l i s t wymaga k o r e k c j i . P r z e s t a w i e n i e l i s t poziomych odbywa s i ę bez n a r u s z e n ia s t r u k t u r y l i s t y pionow ej C n a s tę p u je t y l k o p r z e s t a w i e n i e wskaźników!).

P rz e d s ta w io n a s t r u k t u r a j e s t w p e ł n i dynam iczna. Nowe e le m e n ty mogą być dopisyw ane t y l k o na p o c z ą te k lu b na k o n ie c o d p ow iedniej l i s t y poziom ej.

W yszukiwanie o d p o w ie d n ie j l i s t y d l a nowego e lem en tu odbywa s i ę wzdłuż l i s t y p io n o w ej. W przy p ad k u gdy nowy e le m e n t n i e może być d o p isa n y do ż a d n e j l i s t y - tw o rz o n a j e s t nowa l i s t a pozioma.

K oszt a lg o ry tm u d l a omawianego w a r ia n tu wynosi oCn*logn}.

(14)

182 Roman K o n i ec zn y

P o n iż e j podano przy k ład o w y u k ła d l i c z b e g z e m p lif ik u ją c y c h is to tę * w a r ia n tu z b i o r u l i s t :

5 7 13 17 99 8 10 16 18 9 13 14 10 12 11 >

- '{'&! . - ;. . 'i > j.. .y / • - ' ..,' ' •

B ie ż ą c y u k ła d l i s i poziomych u z a le ż n io n y j e s t od “r o z r z u t u " w a r to ś c i k o le jn y c h nowych elem entów .

WARIANT IX Drzewo b i n a r n e

S t r u k t u r y •* d r z e w i a s t e w c h w i l i o b e c n e j n a l e ż ą j u ż do k la s y c z n y c h dynam icznych s t r u k t u r danych. C h a r a k t e r y s t y c z n ą c e c h ą drzew b in a r n y c h J e s t l o g a r y tm ic z n a f u n k c j a k o s z t u oClognD w y n ik a ją c a n i e j a k o “z d e f i n i c j i " t e j s t r u k t u r y .

Możliwe s ą t u dwa w a r i a n t y budowy drzew a b in a rn e g o :

a3 e le m e n t n a jm n ie js z y z n a j d u j e s i ę w k o r z e n i u drzewa» ja k na sch em acie:

ROOT,FIRST

FIRST - pierwszy na

osi. czasu

ROOT- k o r z e ń drzew a

(15)

fcO e le m e n t n a jm n ie js z y z n a j d u j e s i ę w s k r a j n i e lewym w ę i l e . ja k na schem acie:

RCOT

Z p u n k tu w id z e n ia p r o g r a m is ty w a r ia n t fcO j e s t b a r d z i e j lo g ic z n y i >

ł a t w i e j s z y w r e a l i z a c j i .

5. S t r u k t u r a program u sy m u la c y jn e g o

S t r u k t u r a program u sy m u la c y jn e g o w Turbo PASCAL-u j e s t p r o s t a i p r z e j r z y s t a . I l u s t r u j e J ą r y s . 4,.

m o d u ł UNIT UNIT

główny MASTER : SYMULATION

moduł zasobów symulacyjnych

——---

m o d u łu procesów

UNIT UNIT

PROCES

PR0CES.N

Rys. 4. S t r u k t u r a program u s y m u la c y jn e g o w Turbo PASCAL-u F ig . 4. A s i m u l a t i o n program s t r u c t u r e i n Turbo PASCAL

(16)

184 R om an K o ni ec zn y

UNIT MASTER j e s t modułem wiążącym w s z y s tk ie i n n e moduły.

Budowa modułu MASTER może być n a s t ę p u j ą c a : PROGRAM MASTER;

USES SI MULATT ON, PROCES_l , . . . . PROCES_N.

<dek1a r ac j e zm iennych g lo b a ln v c h >

i n i c j a c j a s y m u l a c j i ;

END.

Moduł SIMULATION z a w ie r a w s o b i e p r o c e d u r ę p o s tę p u c z a s u o r a z wyboru procesów C sz c z e g ó ły im p lem en tacy jn e!). P ow inien on ró w n ie ż u d o s tę p n ia ć w s z e lk ie n ie z b ę d n e do p ro w a d z e n ia s y m u la c ji p r o c e d u r y - wymienione w p. 1 .

Wybór p r o c e s u może być z r e a l i z o w a n y p r z y w y k o r z y s ta n ie typów p r o c e d u r a ln y c h l u b ' p r o ś c i e j - t a b l i c y typów procesów - ja k p o n i ż e j :

CONST

max_i i czba_typów _pr ocesów TYPE

ta b lic a _ ty p ó w _ p ro c e s ó w - ARRAYC1. . raax__liczba__typów_procesów] OF . RECORD

ty p : INTEGER;

p : POINTER;

END;

VAR

p ro c e s y : t a b l i ca_ty p ó w _ p ro cesó w ;

PROCEDURE wybór _procesuC i : I NTEGER3;

BEGIN

CASE procesyC i ] . t y p OF

ty p _ p ro ces_ N : proces_NC procesyE i ] . p ) ;

ELSE n i e z i d e n ty f ik o w a n y p r o c e s ; END; <CASE>

END; -C wybór _pr o c e su )

Budowa modułu PROCES N może być n a s t ę p u j ą c a : UNIT PROCES_N

I NTERFACE

CONST ty p _ p ro ces_ N = . . . ; t u n i k a l n y numer ty p u p r o c e s u )

<r e k o r d s t a n u p ro c e s u ) IMPLEMENTATION

( p r o c e d u r a p r o c e s u )

(17)

END.

Rekordy s t a n u p o s z c z e g ó ln y c h procesów w ystaw ione s ą w s e k c j i INTERFACE. Oznacza t o n i e o g r a n ic z o n y wzajemny d o s tę p do atry b u tó w p o sz c z e g ó ln y c h procesów . J e s t t o czasem n i e b e z p ie c z n e i n i e zawsze c z y t e l n e w przypadku pow iązań wzajemnych.

J e ż e l i p r o c e s y wzajem nie s i ę g a j ą do sw oich a try b u tó w Czmiennych s ta n u ) wskazane j e s t u tw o r z e n ie dodatkow ej s p e c y f i k a c j i w module MASTER. P rz y k ła d z a p i s u może być n a s tę p u ją c y :

atr_proces__N: INTEGER; < + u s ta w ia n y w p r o c e s i e N p r z e z zm ienną N

* odczytyw any w p r o c e s i e K p r z e z zm ienną B>

6. Uwagi końcowe

P r z e s ta w io n e w a r t y k u l e z a g a d n i e n i a r e a l i z a c j i odpow iednika lo g ia n o w s k le g o modułu SIMULATION na b a z i e ję z y k a Turbo PASCAL m u s ia ły być z k o n ie c z n o ś c i n a ś w i e t l o n e o g ó l n i e i w pewnym s e n s i e p o b ie ż n ie . S zczeg ó ły im p le m e n ta c y jn e s ą bowiem zaw sze u z a l e ż n i o n e od z e s p o łu program ującego.

S z e re g z a g a d n ie ń szczegółow ych może być ro z w ią z a n y ch r ó ż n o r o d n ie - w z a l e ż n o ś c i od wyników eksperym entów z k o m p ila to re m o r a z z e sp rz ę te m . Zawsze jed n ak w f a z i e p r z e d p r o je k to w e j n ie z b ę d n a j e s t a n a l i z a w ariantów i d y s k u s ja k o n c e p c ji .

Przykładow o, d l a r e a l i z a c j i p r o c e d u r y p o s tę p u c z a s u , na p o d sta w ie wybranych d z i e w i ę c iu w arian tó w s t w i e r d z i ć można, że: w a r ia n ty ta b lic o w e będą ł a t w i e j s z e w r e a l i z a c j i , a l e b a r d z i e j c z a s o c h ło n n e C kosztow ne) i j e d n o c z e ś n i e b a r d z i e j p a rn ię c io c h ło n n e. W a ria n ty z drzewami z k o le i s ą m niej kosztow ne i p a rn ię c io c h ło n n e , a l e wymagają b a r d z i e j w yrafinowanych metod pr ogr ami s ty c z n y c h .

Wybór p o s z c z e g ó ln e g o w a r ia n tu j e s t zawsze kompromisem pomiędzy m ożliw ościam i z e s p o łu p ro g ra m u ją c eg o - z j e d n e j s t r o n y , a o g ra n ic z e n iem czasowym na wykonanie d a n e j im p le m e n ta c ji - narzuconym p rz e z z le c e n io d aw c ę - z dr ugi e j .

t Z a g a d n ie n ia r e a l i z a c j i k o l e j e k , g e n e ra to ró w l i c z b pseudolosow ych, histogram ów n i e z o s t a ł y w a r t y k u l e omówione, ponieważ n a l e ż ą one ju ż do k la s y c z n y c h tem etów l i t e r a t u r y k o m puterow ej).

LITERATURA

Cl] BIELECKI J : Turbo PASCAL 5 . 0 - w e r s ja p r o f e s j o n a l n a - Wydawnictwa Kom unikacji i Ł ą c z n o ś c i, Warszawa 1989.

1 2 1 CIRIC BOBBY, THIES KLAUS DIETER: Turbo PASCAL 5 . 0 / 5 . 5 - te - w i V erlag GmbH 1989.

[33 KONIECZNY R .: C h a r a k te r y s ty k a zasobów sym u lacy jn y ch ję z y k a LOGLAN r..i p o tr z e b y m odelowania systemów tra n s p o rto w y c h . Z e sz y t N aukcw P o l i t e c h n i k i Si ą s k i e j , s Tr a n s p o r t n r 9 , Gli wi c e 1989.

(18)

186 R om an K on i eczny

[43 KONIECZNY R. : Zasoby sy m u la c y jn e ję z y k a LOGLAN. Z e s z y t Naukowy P o l i t e c h n i k i Ś l ą s k i e j , s . T r a n s p o r t n r 1 3 , G liw ic e 1989.

153 KONIECZNY R. : P r z y k ła d y r o z w ią z a n ia problemów sy m u la c y jn y c h w ję z y k u LOGLAN. Z e sz y t Naukowy P o l i t e c h n i k i Ś l ą s k i e j , s . T r a n s p o r t n r 13, G liw ic e 1989.

163 KONIECZNY R. : Z a g a d n ie n ie r o z s z e r z e n i a lo g la n o w s k ic h zasobów sy m u lacyjnych. Z e s z y t Naukowy P o l i t e c h n i k i Ś l ą s k i e j , s . T r a n s p o r t nr 13, G liw ic e 1989.

1 7 1 KONIECZNY R. : Języ k program ow ania LOGLAN j a k o n a r z ę d z i e sym ulacj.i system u tr a n s p o r to w e g o . Z e s z y t Naukowy P o l i t e c h n i k i Ś l ą s k i e j , s . T r a n s p o r t n r 1 3 , G liw ic e 1989.

183 TISCHER: Turbo PASCAL i n t e r n . D ata Becker 1989.

193 ZEIGLER B.P. : T e o r i a m odelow ania i s y m u la c ji . PWN, Warszawa 1984.

PROBLEM OF SIMULATION LOGLAN MODULE APPLICATION WHICH I S BASED ON TURBO PASCAL

Summar y

Problem o f SIMULATION L o g lan module a p p l i c a t i o n which i s b a se d on Turbo PASCAL h a s b een p r e s e n t e d i n t h e p a p e r. M o d u le 's s p e c i f i e d e le m e n ts which a r e e s s e n t i a l f o r s i m u l a t i o n programmes d e s i g n h ave been d i s c u s s e d s u b s t i t u t i n g p r o c e s s r e a l i z a t i o n i n - T urbo PASCAL C 5.0 v e r s i o n ) i n p a r t i c u l a r . S t a t e r e c o r d , p r o c e s s a c t i o n s , p r o c e s s s t e a r l n g p ro b le m s , tim e a x i s a r e p r e s e n t a t i o n w ith 9 im p le m e n ta tio n a l t e r n a t i v e s h av e a l s o been p r e s e n t e d i n t h e p a p e r. A ll t h i s i s b a s i c f o r f u r t h e r p r e - d e s i g n a n a l y s i s o f SIMULATION module f o r D i s c r e t e E v e n ts SIMULATION s y s te m s i n Turbo PASCAL.

REALISIERUNGSPROBLEM DES LOGLANPROGRAMMODULS SIMULATION AUF DER GRUNDLAGE DER PROGRAMMIERSPRACHE TURBO PASCAL

Zusammen!a s s u n g

Im A u fs a tz wurde d a s R e a l i s i e r u n g s p r o b l e m d es G e g e n stü c k s zum LOGLAN - Programmodul SIMULATION a u f d e r G ru n d la g e d e r P ro g ra m m ie rsp ra c h e TURBO PASCAL b e t r a c h t e t . Es wurden E lem en te s p e z i f i e r t , d i e e i n den bau von S im ulatio n sp ro g ram m en e rm ö g lic h e n d e s Modul b e i n h a l t e n s o l l . Es wurde in s b e s o n d e r e b e t r a c h t e t : P roblem d e r E r s a t z r e a l i s i e r u n g d e s P r o z e s s e s i n der S p ra c h e TURBO PASCAL C V ersion 5 . 0 ) , Z u s ta n d s r e k o r d und P r o z e ß a k tio n e n , Problem d e r P ro z e ß S te u e ru n g und R e p r e s e n ta tio n s p r o b le m d e r Z e i t a c h s e , f ü r

(19)

w elch es neun I mpl em enti e r ungs V e rsio n e n v o r g e s t e l l t wurden. Es wurde»

e b e n f a l l s a u f d i e S t r u k t u r d es S im ulationsprogram m s h in g ew iesen . Der A u fs a tz s t e l l t A usgangsgedankengut d er V o r p r o j e k t i e r u n g s a n a l y s e beim Aufbau des SIMULATION-Programmoduls zum Zwecke d er Komputer s i mul a t i o n von System en m it d y s k r e t e n E r e i g n i s s e n i n d er S p rach e TURBO PASCAL.

nPOBJlEMA PEAJIM3AUHM JlOrJIAHOBCKOrO MOflYJW SIMULATTION C HCI10IIb30BAHMEM H3HKÀ TURBO PASCAL

Pe3»ne

B CTatbM paccMOTpeHO irpoßjieMbi cBX3aHHbie c peajuoauHevi 3K8UBa Jienra jior jiaHoBCKoro Moayjia SIMULATION Ha H3biKe Turbo PASCAL. üepeMHCJieHO cocTaBifsuomne KaKHe a o j i x h u e x o ü h t b cocTae MD/iy jisi mto6 B03MOXHoe öbino

nojiyMeHne nporpaiiM noaejiMpoBaHM*. PaccnoxpeHO Trpoöjieiiy 3aMetaawmeM

peajiH3auHM irpouecca Ha B3biKe Turbo PASCAL CsapnaHT 5 . 0 ) , peKopąa c o c t b s h m h

a TaKxe BeńcTBHe irpouecca; npoöjieribi ynpaBJieHHH npoueccatiM, rrpe/icTaBJieHHM och BpeneHH äjiji KOTopon paccMOTpeHO aeBsiT BapnaHTOB.

OópameHO BHMnaHMe Ha cTpyKTypy irporpaMM Mo/ienn. CiaTbii coaepacHT MCXOüHbiA naTepHan a n * npeąnpoeKTHboc aHajiH3 cTpoeHMsi no/iyjia SIMULATION Heofixo/iHMbix rrpH noüejiMpoBaHMM ene Ten /iHCKpeTHbix ąetfiCTBHM Ha 5i3biKe Turbo PASCAL.

Cytaty

Powiązane dokumenty

aresztowania i przekazania przez inne Państwo Członkowskie osoby, której wniosek dotyczy, celem przeprowadzenia postępowania karnego, bądź też wykonania kary

As clone detection is not able to reliably detect micro-clones in practice, we devised a different strategy to find them. Our RQs aim not at finding all possible micro-clones, but

Tomizm na konferencjach „W kręgu średniowiecznej antropologii” (2011) oraz „W kręgu średniowiecznej metafizyki” (2013).. organizowanych przez Sekcję Historii

Bitwa pod Legnicą oraz postać Henryka Pobożnego zostały przypomniane i nagłośnione w sposób szczególny w trakcie pielgrzymki Jana Pawła II do Le­ gnicy, która miała

Przykład szczytow ych osiągnięć w liryce świadczy o doskonałym zjednoczeniu tego, co estetyczne, z tym co życiowe... Słowo uległo des&amp;kralizacji, przestało

Warto zaznaczyć, że poszcze­ gólne tomy są w pew nym stopniu sam odzielne kompozycyjnie, co ważne dla osób, które nie zdołały zgromadzić kom pletu

T ekstów jeszcze znanych, już niknących w zapom nienia dali i całk iem zapom nianych. Być może Reduta w róci je naszej

Nie pozostaje to w sprzeczności z osmotycznym charakterem tekstu jako zasadniczą cechą stanowiska Bachtina i jego zwolenników, co zdaje się sugerować Profesor Kalaga, ale też