|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 29952 (0x7500) Types: TextFile Names: »txtktasstat«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦this⟧ »txtktasstat«
ktasstat=algol list.yes xref.no blocks.no begin message ktasstat 1981.01.25 ; real array kitnavn(1:2); integer init_segmnr,status,i,j,k,startsegment,topsegment, log_bloklengde,totalantaltrans,accepttrans,søjlehøjde; zone init(128,1,opstderror); integer field startsegm_field,topsegm_field,log_bloklengde_field; boolean nl,sp,ff,logslut,test; comment erklæringer vedrørende behandling; integer array antal_trans(0:24),terminal_ids(0:24,1:400); integer startdag,startmd,startaar,slutdag,slutmd,slutaar, antal_terminaler; \f procedure error(errno); value errno;integer errno; begin write(out,nl,2,<: **** :>); case errno of begin write(out,<:fejl ved montering af kit :>); write(out,<:param fejl - trans/termi forventet:>); write(out,<:param fejl - dato angivet forkert:>); write(out,<:param fejl - dato mangler:>); write(out,<:param fejl - tid angivet forkert:>); write(out,<:param fejl - andet end tid/dato angivet:>); write(out,<:param fejl - aar skal være dette år:>); end; write(out,nl,2); goto exit; end proc error; \f procedure log_bloc_proc(z,s,b); zone z; integer s,b; begin integer array sh_arr(1:12),z_arr(1:20); if (s extract 1 = 1) then opstderror(z,s,b); getzone6(z,z_arr); getshare(z,sh_arr,z_arr(17)); if sh_arr(7) = topsegment then begin integer array field ia; ia:=0; z.ia(1):=8; z.ia(3):=4; z.ia(4):=0; log_slut:=true; end; end proc log_bloc_proc; \f <* konstanter *> søjle_højde:=20; antal_terminaler:=0; for i:= 0 step 1 until 24 do antal_trans(i) := 0; for i:=0 step 1 until 24 do for j:=1 step 1 until 400 do terminal_ids(i,j):=0; logslut:=false; startsegm_field:=8; topsegm_field:=10; log_bloklengde_field:=6; test:=true; sp:= false add 32; nl:= false add 10; ff:= false add 12; textassign(kitnavn,<:logkit:>,i); init_segmnr:= opglobals(<:kitindexsegmadr:>); igen: i:=monter_kit(kitnavn,7,status,4); if i>0 then error(1) else if i<0 then goto igen; i:=1; open(init,4,string kitnavn(increase(i)),0); setposition(init,0,init_segmnr); inrec6(init,512); startsegment:=init.startsegm_field; topsegment:=init.topsegm_field; log_bloklengde:=init.log_bloklengde_field; close(init,opglobals(<:opkitreleasemode:>)=1); begin <*indreblok*> <*dimensionering er bestemt af parametre fra logkittet*> zone logfil((log_bloklengde//4)*2,2,log_bloc_proc); integer array logblok(1:2048); integer field bloklengde,bloktype,termid,terminalens_a_omr,afg_inp,cpu_inp, ank_søg,afg_søg,cpu_søg,ank_ops,afg_ops,cpu_ops, ank_out,afg_out,cpu_out; integer array antal_forsp(1:4,0:25); integer tael,hour; long array totaltid(0:25); integer array antalfejl(0:25); real snit,var; real array svartid(0:25); integer array svarfor(0:25,0:32); integer array totalcputid(0:24); integer array minsvartid,maxsvartid(0:25); long samtid; integer array fordelinput(7:28), fordelsøge(2:41), fordelopslags(1:32), fordeloutput(5:20); real array snit_forsp,var_forsp(1:4,1:3,0:25); boolean termi,trans,all,single,print,allstat; real field ank_inp; integer startdato,starttid,slutdato,sluttid; \f procedure les_logfil; begin integer array field logrec; integer field reclengde; reclengde:=2; logrec:=4; invar(logfil); if logfil.reclengde = 4096 then les_logfil; tofrom(logblok,logfil.logrec,logfil.reclengde-4); end proc les_logfil; \f procedure parameterlist; begin integer sep,paramno; real r,time; real array param(1:2); sep:=system(4,1,param); paramno:=2; if param(1) = real <:termi:> then termi:=true else if param(1) = real <:trans:> then trans:=true else if param(1) = real <:print:> then print:=true else error(2); sep:=system(4,paramno,param); if param(1) = real <:all:> then begin systime(1,0,time); slutdato:= systime(4,time,r); all:=true; slutdag:=slutdato mod 100; slutmd:= (slutdato mod 1000 - slutdag)//100; slutaar:=slutdato // 10000; end else single:=true; paramno:=paramno+1; sep:=system(4,paramno,param); if param(1) <> real <:dato:> then error(4) else for i:=paramno+1,i+1,i+1 do begin sep:=system(4,i,param); if (sep shift (-12))extract 12 <> 8 <*punktum*> then error(3); case i-paramno of begin startdato:=param(1); startdato:=startdato +100*param(1); startdato:=startdato + 10000*param(1); end; end; paramno:=paramno+4; if all then begin startdag:= startdato mod 100; startmd:=(startdato mod 1000 - startdag)// 100; startaar:= startdato//10000; if startaar <> slutaar then error(7); end; sep:=system(4,paramno,param); if sep = 0 then begin <*ingen tid angivet*> starttid:=0; sluttid:=2300; end else if param(1) <> real <:tid:> then error(6) else begin for i:= paramno+1,i+1,i+1,i+1 do begin sep:=system(4,i,param); if sep shift (-12) <> 8 then error(5); case i-paramno of begin starttid:=param(1); starttid:=starttid*100+param(1); sluttid:=param(1); sluttid:=sluttid*100+param(1); end; end; paramno:=paramno+4; sep:=system(4,paramno,param); if param(1) <> real <:stat:> then allstat:=false else allstat:=true; end; end proc paramliste; \f procedure listfordeling(proc,nedre,øvre,typ); integer proc,nedre,øvre,typ; begin write(out,<:<12>:>); case proc of begin write(out,nl,1,<:CPU-TIDSFORDELING I INPUTPROCES:>); write(out,nl,1,<:CPU-TIDSFORDELING I SØGEPROCES :>); write(out,nl,1,<:CPU-TIDSFORDELING I OPSLAGSPROCES:>); write(out,nl,1,<:CPU-TIDSFORDELING I OUTPUTPROCES:>); end; write(out,nl,1,<:________________________________:>); write(out,nl,2,<:CPU-TID I MS:>,sp,5,<:antalforsp:>); write(out,nl,2); for i:=nedre step 1 until øvre do begin if i = nedre then write(out,<: 0:>) else write(out,<<ddd>,if typ = 1 then (i-1) else (i-1)*10); write(out,<: - :>); if i=øvre then write(out,<:...:>) else write(out,<<ddd>,if typ = 1 then i else i*10); write(out,<: ::>); case proc of begin write(out,sp,10,fordelinput(i),nl,1); write(out,sp,10, fordelsøge(i),nl,1); write(out,sp,10,fordelopslags(i),nl,1); write(out,sp,10,fordeloutput(i),nl,1); end; end; end; \f procedure akumstat; begin real array snit1forsp(1:10,1:4,1:3); integer array antalobs(1:10,1:4),antal1forsp(1:10,1:4); integer antaltusind,nrforsp; for i:=1 step 1 until 10 do for j:=1 step 1 until 4 do begin antalobs(i,j):=0; antal1forsp(i,j):=0; for tael:=1 step 1 until 3 do snit1forsp(i,j,tael):=0.0; end; for tael:=0 step 1 until 23 do begin for i:=1 step 1 until 4 do begin nrforsp:=antal_forsp(i,tael); antaltusind:=1; nrforsp:=nrforsp-1000; while nrforsp > 0 do begin antaltusind:=antaltusind+1; nrforsp:=nrforsp-1000; end; if antaltusind < 10 then begin antalobs(antaltusind,i):=antalobs(antaltusind,i)+1; antal1forsp(antaltusind,i):=antal1forsp(antaltusind,i)+ antal_forsp(i,tael); for j:=1 step 1 until 3 do snit1forsp(antaltusind,i,j):=snit1forsp(antaltusind,i,j)+ snit_forsp(i,j,tael); end; end; end; comment *********************************** * * * Udskrift af akumuleret stat * * * *********************************** ; for i:=1 step 1 until 4 do begin write(out,<:<12>:>); case i of begin write(out,<:<10>I N P U T P R O C E S:>); write(out,<:<10>S Ø G E P R O C E S:>); write(out,<:<10>O P S L A G S P R O C E S:>); write(out,<:<10>O U T P U T P R O C E S:>); end; write(out,nl,2); write(out,<:Antalforsp:>,sp,5,<:Antalobs:>, sp,5 ,<:Snit :>, sp,5,<:Procestid:>, sp,5,<:CPU-tid:>, sp,5,<:Køtid:>); for tael:=1 step 1 until 10 do begin if antalobs(tael,i)>0 then begin write(out,nl,1); write(out,sp,1,<<dddd>,(tael-1)*1000,<: - :>,tael*1000); write(out,<: : :>,sp,4,<<dddd>,antalobs(tael,i)); write(out,sp,3,<<dddd.d>, antal1forsp(tael,i)/antalobs(tael,i)); if antal1forsp(tael,i) > 0 then begin write(out,sp,7,<<dddd.dd> ,snit1forsp(tael,i,1)/antal1forsp(tael,i)); write(out,sp,4,<<dddd.dd>, snit1forsp(tael,i,2)/antal1forsp(tael,i)); write(out,sp,3,<<dddd.dd>, snit1forsp(tael,i,3)/antal1forsp(tael,i)); end; end; end; end; end akumstat; \f procedure svarfordel; begin real procent,accprocent; integer i,j; integer array antal(0:25); for i:=0 step 1 until 25 do antal(i):=antal_forsp(4,i); for i:=0 step 1 until 25 do begin if i <> 24 and i>5 then begin accprocent:=0.0; write(out,<:<12>:>); write(out,<:<10>Svartidsfordeling.:>); write(out,<:<10>------------------:>); write(out,<:<10><10>:>); if i = 25 then write(out,<:<10>Samlet statistik :>) else write(out,<:<10>Statistik fra kl. :>,<<dd>,i, <: til kl. :>,<<dd>,i+1); write(out,<:<10>---------------------------------:>); write(out,<:<10><10>:>); write(out,<:<10>Svartid i ms antalforsp. procent af alle acc.procent:>); write(out,<:<10>----------------------------------------------------------:>); write(out,<:<10>:>); for j:=0 step 1 until 32 do begin if j = 32 then write(out,<:<10> over 7999:>) else write(out,<:<10> :>,<<dddd>,j*250, <: - :>,<<dddd>,((j+1)*250)-1); write(out,<: :>,<<ddddd>,svarfor(i,j)); if antal(i) > 0 then procent:=(svarfor(i,j)/antal(i))*100 else procent:=0; accprocent:=accprocent+procent; write(out,<: :>,<<ddd.dd>,procent); write(out,<: :>,<<ddd.dd>,accprocent); end for j; end if i; end for i; end svarfordel; \f procedure listsvar; begin integer i,j,mindst,mindsti; integer array antalsvar(0:23); real array udnyt(0:23); long udnyttelse,tottid; for i:=0 step 1 until 23 do antalsvar(i):=antal_forsp(4,i); for i:=0 step 1 until 23 do udnyt(i):=(totalcputid(i)/3600000)*100; write(out,<:<12>:>); write(out,<:<10>Svartidsfordeling og udnyttelsesfordeling:>); write(out,<:<10>-----------------------------------------:>); write(out,<:<10>:>,<:<10>:>); write(out,<:<10>Antalfosp Svartid i ms Udnyttelses af CPU:>); write(out,<:<10>------------------------------------------------:>); write(out,<:<10><10>:>); for i:=0 step 1 until 23 do begin mindst:=100000; mindsti:=0; for j:=0 step 1 until 23 do begin if antalsvar(j) <> -1 then begin if antalsvar(j) < mindst then begin mindst:=antalsvar(j); mindsti:=j; end; end; end; write(out,<:<10>:>,<<dddd>,antalsvar(mindsti), <: :>,<<dddd.d>,svartid(mindsti), <: :>,<<dd.d>,udnyt(mindsti),<: % :>); antalsvar(mindsti):=-1; end; tottid:=86400000; udnyttelse:=(samtid/tottid)*100; write(out,nl,2); write(out,<:<10>Total for hele døgnet:>); write(out,<:<10>:>,<<ddddd>,antal_forsp(4,25), <: :>,<<dddd.d>,svartid(25), <: :>,<<dd.d>,udnyttelse,<: % :>); end; \f procedure ydertilf; begin write(out,<:<12>:>); write(out,<:<10>Ydertilfælde for svartider.:>); write(out,<:<10>--------------------------:>); write(out,<:<10><10>:>); write(out,<:<10> minimal maksimal :>); for i:=0 step 1 until 23 do begin write(out,<:<10>mellem kl. :>,<<dd>,i, <: og kl. :>,<<dd>,i+1); write(out,<: :>,<<ddddd>,minsvartid(i), <: :>,<<ddddd>,maxsvartid(i)); end; write(out,nl,2); write(out,<:<10>Samlet for hele døgnet:>); write(out,<: :>,<<ddddd>,minsvartid(25), <: :>,<<ddddd>,maxsvartid(25)); end ydertilf; \f procedure liststat; begin procedure beregnsnit(l);integer l; begin if antal_forsp(i,tael) <> 0 then snit:=snit_forsp(i,l,tael)/antal_forsp(i,tael) else snit:=0.0; end; procedure beregnvar(l);integer l; begin if antal_forsp(i,tael) <> 0 then var:= var_forsp(i,l,tael)/(antal_forsp(i,tael))- ((snit**2)) else var:=0.0; end; procedure skrivproc; begin integer j,k; j:=1; k:=write(out,string procesname(increase(j))); write(out,sp,7-k); end; real array procesname(1:2); integer i; write(out,ff,1); write(out,nl,1,<:Udvidet statestik: :>); write(out,nl,1,<:------------------ :>); for tael:=0 step 1 until 25 do begin if tael <> 0 then write(out,<:<12>:>); if tael <> 24 then begin if tael <> 25 then write(out,<:statestik for kl. :>,tael, <: til kl. :>,tael+1) else write(out,<:<10> samlet statestik :>); for i:=1 step 1 until 4 do begin case i of begin <*1*> begin procesname(1):= real <:input:>; procesname(2):= real <::>; end; <*2*> begin procesname(1):=real <:søge:>; procesname(2):=real <::>; end; <*3*> begin procesname(1):=real <:opsla:> add 103; procesname(2):=real <:s:>; end; <*4*> begin procesname(1):=real <:outpu:> add 116; procesname(2):=real <::>; end; end; write(out,nl,2,<:Antal forespørgsler til :>); skrivproc; write(out,<: proces = :>, antal_forsp(i,tael)); write(out,nl,1,<:samlet tid i :>);skrivproc; write(out,<: process =:>,<<dddddd.dd>,snitforsp(i,1,tael)); beregnsnit(1); write(out,nl,1,<:gennemsnitlig procestid for :>); skrivproc; write(out,<: process=:>, <<dddd.dd>,snit); beregnvar(1); write(out,nl,1,<:variancen på procestid for :>); skrivproc; write(out,<: process=:>, <<dddddd.dd>,var); beregnsnit(2); beregnvar(2); write(out,nl,1,<:gennemsnitlig cputid for :>); skrivproc; write(out,<: process = :>, <<dddd.dd>,snit); write(out,nl,1,<:variancen på cputid for :>); skrivproc; write(out,<: process = :>, <<dddddd.dd>,var); beregnsnit(3);beregnvar(3); write(out,nl,1,<:gennemsnitlig køtid for :>); skrivproc; write(out,<: process = :>, <<dddd.dd>,snit); write(out,nl,1,<:variancen på køtid for :>); skrivproc; write(out,<: process =:>, <<dddddd.dd>,var); end; write(out,nl,2,<:total process tid = :>,totaltid(tael)); write(out,nl,2,<:antalfejl og bladninger =:>,antalfejl(tael)); if antal_forsp(4,tael) > 0 then svartid(tael):=totaltid(tael)/antal_forsp(4,tael) else svartid(tael):=0; end; end for tael; listfordeling(1,7,28,1); listfordeling(2,2,41,2); listfordeling(3,1,32,2); listfordeling(4,5,20,1); akumstat; end proc list stat; \f procedure stat; begin integer i,tid,indeks,point; integer field ankomst,afgang,cputid; integer procestid,køtid; ankomst:=14;afgang:=16;cputid:=18; tid:=0; for i:=1 step 1 until 4 do begin if i <> 1 then procestid:=log_blok.afgang-log_blok.ankomst else procestid:=log_blok.afgang; if i = 1 then begin køtid:=0; totalcputid(hour):= totalcputid(hour)+log_blok.cputid; samtid:=samtid+log_blok.cputid; end else if i=2 then begin tid:=log_blok.cputid; køtid:=log_blok.ankomst-log_blok.afg_inp; end else if i=3 then begin tid:=tid+log_blok.cputid; if log_blok.cpu_søg > 0 then køtid:=log_blok.ankomst-log_blok.afg_søg else køtid:=log_blok.ankomst-log_blok.afg_inp; end else if i=4 then begin totalcputid(hour):= totalcputid(hour)+tid+log_blok.cputid; samtid:=samtid+ tid+log_blok.cputid; if log_blok.cpu_ops > 0 then køtid:=log_blok.ankomst-log_blok.afg_ops else begin if log_blok.cpu_søg > 0 then køtid:=log_blok.ankomst-log_blok.afg_søg else køtid:=log_blok.ankomst-log_blok.afg_inp; end; end; if log_blok.cputid > 0 then begin if i = 1 then begin indeks:= log_blok.cputid; if indeks < 8 then fordelinput(7):= fordelinput(7)+1 else begin if indeks > 27 then fordelinput(28):= fordelinput(28)+1 else fordelinput(indeks):=fordelinput(indeks)+1; end; end else if i = 2 then begin indeks:= entier ( log_blok.cputid/10); if indeks < 3 then fordelsøge(2):= fordelsøge(2)+1 else begin if indeks >40 then fordelsøge(41):= fordelsøge(41)+1 else fordelsøge(indeks):=fordelsøge(indeks)+1; end; end else if i=3 then begin indeks:= entier (log_blok.cputid/10); if indeks < 2 then fordelopslags(1):=fordelopslags(1)+1 else begin if indeks > 31 then fordelopslags(32):=fordelopslags(32)+1 else fordelopslags(indeks):=fordelopslags(indeks)+1; end; end else if i= 4 then begin if minsvartid(hour) > log_blok.afgang then begin minsvartid(hour):=log_blok.afgang; if minsvartid(25) > log_blok.afgang then minsvartid(25):=log_blok.afgang; end; if maxsvartid(hour) < log_blok.afgang then begin maxsvartid(hour):=log_blok.afgang; if maxsvartid(25) < log_blok.afgang then maxsvartid(25):=log_blok.afgang; end; point:=log_blok.afgang//250; if point > 32 then begin svarfor(hour,32):=svarfor(hour,32)+1; svarfor(25,32):=svarfor(25,32)+1; end else begin svarfor(hour,point):=svarfor(hour,point)+1; svarfor(25,point):=svarfor(25,point)+1; end; totaltid(hour):=totaltid(hour)+log_blok.afgang; totaltid(25):=totaltid(25)+log_blok.afgang; indeks:= log_blok.cputid; if indeks < 6 then fordeloutput(5):=fordeloutput(5)+1 else begin if indeks > 19 then fordeloutput(20):=fordeloutput(20)+1 else fordeloutput(indeks):=fordeloutput(indeks)+1; end; end; antal_forsp(i,hour):=antal_forsp(i,hour)+1; antal_forsp(i,25):=antal_forsp(i,25)+1; snit_forsp(i,1,hour):=snit_forsp(i,1,hour)+procestid; snit_forsp(i,1,25):=snit_forsp(i,1,25)+procestid; snit_forsp(i,2,hour):=snit_forsp(i,2,hour)+ log_blok.cputid; snit_forsp(i,2,25):=snit_forsp(i,2,25)+log_blok.cputid; snit_forsp(i,3,hour):=snit_forsp(i,3,hour)+køtid; snit_forsp(i,3,25):=snit_forsp(i,3,25)+køtid; var_forsp(i,1,hour):=var_forsp(i,1,hour)+procestid**2; var_forsp(i,1,25):=var_forsp(i,1,25)+procestid**2; var_forsp(i,2,hour):=var_forsp(i,2,hour)+ log_blok.cputid**2; var_forsp(i,2,25):=var_forsp(i,2,25)+log_blok.cputid**2; var_forsp(i,3,hour):=var_forsp(i,3,hour)+køtid**2; var_forsp(i,3,25):=var_forsp(i,3,25)+køtid**2; end; ankomst:=ankomst+6;afgang:=afgang+6; cputid:=cputid+6; end; if tid = 0 then begin antalfejl(25):=antalfejl(25)+1; antalfejl(hour):=antalfejl(hour)+1; end; end proc stat; \f procedure transaktion; begin integer transdato,transtid,t1,term; boolean found; real r; transdato:=systime(4,log_blok.ank_inp,r); transtid:=r/100.0; if (transdato = startdato) and (( transtid >= starttid) and (transtid <= sluttid)) then begin <*transaktion godkendt *> if trans then begin <*opsamling af transaktion *> i:= abs(transtid/100); hour:=i; antal_trans(i):=antal_trans(i)+1; stat; accepttrans :=accepttrans+1; end else if termi then begin <*identification af terminaler *> term:=logfil.term_id; t1:=transtid//100; found:=false; i:=1; while -,found do begin if terminal_ids(t1,i) = term then begin <*kendt terminal*> terminal_ids(t1,i+1):=terminal_ids(t1,i+1)+1; found:=true; end else if terminal_ids(t1,i) = 0 then begin <*ny terminal*> terminal_ids(t1,i):=term; terminal_ids(t1,i+1):=1; terminal_ids(t1,i+2):=logblok.terminalens_a_omr; found:=true; antal_terminaler:=antal_terminaler+1; end else i:=1+3; end end else if print then begin <*print trans raat*> write(out,nl,2); for i:=1 step 1 until 50 do write(out,i*2,logblok(i),nl,1); end; end; end proc transaktion; \f procedure nestedag; begin for i:=0 step 1 until 24 do antal_trans(i):=0; for i:=0 step 1 until 24 do for j:=1 step 1 until 400 do terminal_ids(i,j):=0; antal_terminaler:=0; logslut:=single:=false; if all then begin startdag:= startdag+1; if (startdag > slutdag ) and (slutmd = startmd) then begin all:=false; goto endnestedag; end; i:= startmd; if ((startdag = 30) and ((i=2) or (i=4) or (i = 6) or (i=9) or (i=11))) or ((startdag=31) and ((i=1) or (i=3) or (i=5) or (i=7) or (i=8) or (i=10) or (i=12))) then begin startmd:=startmd+1; startdag:=1; end; startdato:=startaar*10000+startmd*100 +startdag; end; endnestedag: end proc nestedag; \f procedure outputterminal; begin integer t1,t2; t1:=starttid//100; t2:=sluttid//100; write(out,ff,1); for i:= t1 step 1 until t2 do begin write(out,nl,3,<: aktive terminaler fra kl. :>,<<dddd>,i*100, <: til kl. :>,(i+1)*100,<: den :>,<<dddddd>,startdato, nl,1); write(out,<: terminal id transaktioner :>,nl,2); j:=1; while terminal_ids(i,j) <> 0 do begin write(out,<<ddddddddddd>,terminal_ids(i,j),<: :>, terminal_ids(i,j+1)); write(out,terminal_ids(i,j+2) shift (-12),terminal_ids(i,j+2) extract 12, nl,1); j:=j+3; end; end; write(out,ff,1); end proc outputterminal; \f procedure outputtrans; begin integer array a(0:25,0:75); integer max,t1,t2,kryds,l,k; for i:= 1 step 1 until 25 do for j:=1 step 1 until 75 do a(i,j):=32; for i:=1 step 1 until 25 do a(i,1):=73 <*i*>; for i:=1 step 1 until 74 do a(25,i):=45;<*-*> a(25,75):=62; t1:= starttid//100; t2:= sluttid//100; max:= antal_trans(t1); for i:= t1+1 step 1 until t2 do if max < antal_trans(i) then max:=antal_trans(i); kryds:=max//søjlehøjde; if kryds=0 then kryds:=1; <*udfyld diagram med krydser*> l:=4; for j:=t1 step 1 until t2 do begin i:=antal_trans(j)//kryds; if i<>0 then for k:=24 step -1 until 25-i do a(k,l):=120 <* X *>; l:=l+3; end; <* UDSKRIV *> write(out,ff,1,nl,5,<:tabel over transaktioner den :>,<<dddddd>, startdato); write(out,<: fra kl. :>,<<dddd>,starttid,<: til kl. :>,sluttid,nl,4); if max = 0 then begin write(out,<: ingen transaktioner i det angivne dato interval:>,nl,2); goto endoutput; end; write(out,<:antal<10>trans.:>,nl,1); for i:=1 step 1 until 25 do begin if (i>1) and (i<25) then write(out,<<ddddd>,kryds*(25-i),<: :>) else write(out,<: :>); for j:=1 step 1 until 75 do outchar(out,a(i,j)); write(out,nl,1); end; write(out,<: :>); for i:=t1 step 1 until t2 do write(out,<<ddd>,i); write(out,false add 32,75-(t2-t1+1)*3,<: tid :>); write(out,nl,4,<: antal transaktioner ialt i logfilen: :>, <<dddddd>,totalantaltrans,nl,2); write(out,<: accepterede transaktioner ialt for denne kørsel: :>, <<dddddd>,accepttrans,nl,2); write(out,<:<12>:>); endoutput: end proc transoutput; allstat:=true; all:=single:=false; termi:=trans:=false; parameterlist; bloklengde:=2; bloktype:=4; term_id:=8; terminalens_a_omr:=10; ank_inp:=14; afg_inp:=16; cpu_inp:=18; ank_søg:=20; afg_søg:=22; cpu_søg:=24; ank_ops:=26; afg_ops:=28; cpu_ops:=30; ank_out:=32; afg_out:=34; cpu_out:=36; comment ******************************** * * * I N I T I A L I S E R I N G * * * ******************************** ; for i:=0 step 1 until 25 do begin for j:=0 step 1 until 32 do svarfor(i,j):=0; end; for i:=0 step 1 until 25 do svartid(i):=0.0; for i:=0 step 1 until 25 do begin minsvartid(i):=10000; maxsvartid(i):=0; end; samtid:=0; for i:=0 step 1 until 24 do totalcputid(i):=0; for tael:=0 step 1 until 25 do begin antalfejl(tael):=0; for i:=1 step 1 until 4 do antal_forsp(i,tael):=0; for i:=1 step 1 until 4 do for j:=1 step 1 until 3 do snit_forsp(i,j,tael):= var_forsp(i,j,tael):=0.0; totaltid(tael):=0; end; for i:=7 step 1 until 28 do fordelinput(i):=0; for i:=2 step 1 until 41 do fordelsøge(i):=0; for i:=1 step 1 until 32 do fordelopslags(i):=0; for i:=5 step 1 until 20 do fordeloutput(i):=0; i:=1; open(logfil,4,string kitnavn(increase(i)),1 shift 1); while single or all do begin setposition(logfil,0,startsegment); <* H O V E D L Ø K K E *> les_logfil;totalantaltrans:=1; accepttrans:=0; while -, logslut do begin if log_blok.bloktype > 0 and log_blok.bloktype <> 5 then begin <*behandling*> transaktion; totalantaltrans:=totalantaltrans+1; end; les_logfil; end; <* output fra behandlingsmoduler*> nestedag; end; liststat; listsvar; svarfordel; ydertilf; close(logfil,true); end; exit: system(10,0,<:ktas stat. afsluttet:>); end; ▶EOF◀