DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦2c4dd668d⟧ TextFile

    Length: 135168 (0x21000)
    Types: TextFile
    Names: »specialetxt«

Derivation

└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
    └─⟦b2ec5d50f⟧ 
        └─⟦this⟧ »specialetxt« 

TextFile

mode list.yes
vko2=set 50 disc3
afs=set 50 disc3
scope user afs
scope user vko2
afs=typeset check.no  proof.vko2 machine.diablo
*se $* $pl ,30,235,,10$
$lw 160$$ld18$
$ps0$
$nl$
$sb ^,6$
Datalogisk Institut
$nl$
Sigurdsgade 7
$nl$
2100 København Ø
$nl17$
$ct$
Vurdering af et
oplysningssystem.
$nl7$
$qr$
_«bs»A_«bs»f_«bs»l_«bs»e_«bs»v_«bs»e_«bs»r_«bs»e_«bs»t__«bs»a_«bs»f_«bs»:
$nl$
Viggo Nis Kørst
$nl$
$rj$
$pn 5,2$
$rh 1,INDLEDNING$
$ps0$
$ns 1,4,_«bs»1_«bs»._«bs»I_«bs»n_«bs»d_«bs»l_«bs»e_«bs»d_«bs»n_«bs»i_«bs»n_«bs»g_«bs».$
$np$
Dette speciale er indenfor emnet præstationsvurdering. Specialet
tager udgangspunkt i vurderingen af et kørende EDB-system. Systemet
findes ved KTAS, er grundlaget for telefonnummeroplysningen,
og betegnes i det følgende OP-systemet.
Vurderingen  foretages ud fra målinger,
 ud fra simulering og ud fra teoretiske betragtninger.
$np$
Da det undersøgte OP-system kontinuerligt benyttes, har der været en del begrænsninger
i mulighederne for at måle på systemet. For at
kunne foretage en dyberegående undersøgelse i forbindelse med en
evaluering,
 har det været nødvendigt at konstruere en simulator
af systemet.
$np$
De fleste i litteraturen om præstationsvurdering opstillede
teoretiske modeller af datamatiske systemer er ret simple
og svære at anvende.  Derfor
har anvendelsen af disse teoretiske modeller fået en mindre central rolle
i forbindelse med vurderingen. Hovedvægten i specialet har således 
været at vurdere systemet ud fra målinger og ud fra simulering.
$np$
Dette speciale består af to opgaver. Denne opgave, som
er den vigtigste del indeholder vurderingen, og
en beskrivelse af, hvordan vurderingen er foretaget.
I den anden opgave findes beskrevet, hvorledes simulatoren af systemet
er udviklet, hvad den simulere, og hvor 
nøjagtig den er.
Opdelingen af specialet i to opgaver er kun foretaget i forbindelse med afleveringen
 på Datalogisk Institut. Denne opgave er udarbejdet af undertegnede, og
opgaven om simulatoren er udarbejdet i samarbejde med Sven Larsen. For at opnå en
fuld forståelse af vurderingen af OP-systemet, er det nødvendigt at have kendskab til
begge opgaver.
$np$
Denne opgave indeholder en introduktion til
præstatonsvurdering.(Afsnit 2) Heri beskrives de gængse termer og udtryk, der
anvendes i litteraturen om vurdering af datamatiske systemer.
Efter dette koncentreres opgaven udelukkende på det foreliggende
system. Afsnit 3 indeholder en systembeskrivelse. Afsnit 4 beskriver baggrunden og
formålet med vurderingen. Derefter beskrives i afsnit 5 de programmer som
udover simulatoren er anvendt til målinger. I afsnit 6
findes selve vurderingen af OP-systemet. Hele denne opgave afsluttes med at give
en kortfattet konklusion af vurderingen, og en beskrivelse af de erfaringer, der er
opnået under løsningen af opgaven.
$np$
På grund af opdelingen af hele analysen af systemet i to opgaver angives
det her, hvordan det største udbytte af opgaverne opnås. En naturlig måde at læse 
opgaverne på, er at læse afsnit 1-5 i denne opgave, derefter simulatoropgaven
og til sidst afsnit 6 og 7 i denne opgave.
$np$
Der er anvendt en vekselvirkning mellem en del
termer, som kort skal forklares her. En forspørgsel, en transaktion
og til dels et job er anvendt som betegnelse for et spørgsmål afsendt på
en terminal til oplysningssystemet. 
$rh 1,INTRODUKTION TIL PRÆSTATIONSVURDERING$
$ps0$
$ns1,4,_«bs»2_«bs»._«bs»I_«bs»N_«bs»T_«bs»R_«bs»O_«bs»D_«bs»U_«bs»K_«bs»T_«bs»I_«bs»O_«bs»N__«bs»T_«bs»I_«bs»L__«bs»P_«bs»R_«bs»Æ_«bs»S_«bs»T_«bs»A_«bs»T_«bs»I_«bs»O_«bs»N_«bs»S_«bs»V_«bs»U_«bs»R_«bs»D_«bs»E_«bs»R_«bs»I_«bs»N_«bs»G_«bs».$
$np15$
Nedenstående afsnit giver en kort indføring i, hvad der forstås ved
præstationsvurdering. Det beskrives, 
ud fra 
hvilke aspekter en datamaskines ydeevne kan vurderes.
Et studie i præstationsvurdering betegnes i det følgende også
med termen evalueringsstudium.
$np$
Afsnittet indeholder først en beskrivelse af, hvad formålet med en præstationsvurdering
er. Derefter beskrives, hvordan evalueringsstudier normalt opdeles, og
hvilke faser de gennemløber. Herefter anføres, hvilke målemetoder man kan anvende.
Afsnittet afsluttes af en beskrivelse af normalt anvendte præstationsindices,
og der gives kort en definition på en flaskehals.
$np$
Hele afsnittet bygger  på afsnit 1-3 i Ferr78, og derudover
benyttes Denn78, Ross78, Boys75 og Buze71.
$ns1,4,_«bs»2_«bs»._«bs»1_«bs»._«bs»F_«bs»o_«bs»r_«bs»m_«bs»å_«bs»l_«bs»e_«bs»t__«bs»m_«bs»e_«bs»d__«bs»p_«bs»r_«bs»æ_«bs»s_«bs»t_«bs»a_«bs»t_«bs»i_«bs»o_«bs»n_«bs»s_«bs»v_«bs»u_«bs»r_«bs»d_«bs»e_«bs»r_«bs»i_«bs»n_«bs»g_«bs».$
$np$
Når en datamaskine eller et datamatisk system skal vurderes, opstår
normalt 2 spørgsmål afhængig af,  hvilket syn
på evalueringen den vurderende person har.
Disse 2 spørgsmål er:
$sj$
    
     1.Fungere det datamatiske system korrekt ?

     2.Hvor godt fungere det ?

$rj$
Dette speciale beskæftiger sig kun med spørgsmål 2, og det forudsættes,
at det betragtede system fungerer korrekt.
Aspektet om at se på, hvor godt et system fungere kan betragtes,
som en måling af værdien af systemet.
Nedenstående vil indføre en del termer, der anvendes ved præstationsvurdering.
$np$
Et datamatsik system (her ofte forkortet system)
 er en sammensætning
af maskinelle dele (CPU, lager, pladelager o.l.) og programmeldele
(operativsystem, program o.l.). Disse komponenter betegnes fremover
systemets ressourcer eller enheder. Hver komponent har dets egne
attributter, som kaldes systemparametre. Nanc81 definerer
attributter til en model af et system, som størrelser, der beskriver en 
komponent og de kan være  af 2 typer:
$lm20$
$nl$
_«bs»a_«bs»._«bs»I_«bs»n_«bs»d_«bs»i_«bs»k_«bs»a_«bs»t_«bs»i_«bs»v_«bs»e_«bs».
$nl$
Beskriver aspekter om komponenten, dvs. giver oplysninger om komponenten.
$nl$
_«bs»b_«bs»._«bs»R_«bs»e_«bs»l_«bs»a_«bs»t_«bs»i_«bs»o_«bs»n_«bs»e_«bs»l_«bs»l_«bs»e_«bs».
$nl$
Beskriver hvordan komponenterne er forbundet med hinanden, dvs. 
giver oplysninger om komponenternes forbindelse.
$lm0$
$np$
Udover at have en grundig definition af det datamatiske systems systemprarametre,
er det ved en præstationsvurdering nødvendigt at betragte, hvad der normalt
betegnes belastningsparametre (eng. Work-load).
$np$
Ved belastningsparametre forstås de parametre, der beskriver, hvilken
belastning det datamatiske system udsættes for.
Belastningen af et system defineres, som mængden af alle job det modtager, dvs. programmer,
data og kommandoer.  Dermed afhænger belastningen dels af
hvilket tidspunkt belastningen betragtes og dels af jobs karakteristika.
 Til et jobs karakterisktika hører bl.a. hvor lang
tid det skal bruge, og hvilke ydre enheder det ønsker
at kommunikere med. Betegnelsen job kan i den her anførte
betydning både stamme fra en terminal direkte koblet til systemet
(jobbet kommunikere online) eller et job der afvikles som satsvis afvikling.

$np$
Udover den belastning et system udsættes for
afhænger ydeevnen  af de i systemet indgående enheders
karakteristika. Dvs. ydeevnen vil afhænge af både belastnings-   
og  systemparametre.
Belastnings-  og systemparametre betegnes i det følgende
samlet for installationsparametre.
$np$
Ved en præstationsvurdering kan man skelne mellem tekniske aspekter
og økonomiske aspekter.
Ved de tekniske aspekter er præstationsvurderingen mest rettet mod,
 hvordan det foreliggende system fungere. Man vil her være interesseret
i om f.eks. udnyttelsen af centralenheden er stor nok i forhold til
 belastningen den er udsat for.
$np$
Ved et økonomisk aspekt samler interessen sig i første række om
det datamatiske system er godt nok i forhold til, hvad man
eksempelvis havde inden man havde et datamatisk system. Dvs.
man er interesseret i den rationaliseringsgevinst man har
opnået ved systemet, og om denne er så stor som forventet.
$np$
 Spørgsmålet om
hvor godt et system er, er således et subjektivt spørgsmål.
 Forskellige personer vil benytte forskellige
størrelser (betegnes også indeks) ved en vurdering.
Disse indeks kaldes i det følgende præstationsindeks. Et præstationsindeks
kan så defineres som en størrelse, der benyttes til at beskrive  opførslen
eller andre aspekter om systemet.
$np$
En del præstationsindeks er umulige at kvantificere eksempelvis
hvor let benyttes systemet, anvendbarheden af et instruktionssæt og
rationaliseringsgevinsten ved et system.
 Disse størrelser betegnes fremover
funktionelle aspekter, hvorimod de størrelser der er interessante
fremover er størrelser, som kan kvantificeres ved f.eks. hvor hurtigt svarer
systemet på en given opgave eller hvor lang tid går inden en ydre hændelse
besvares.
$np$
De fremover interessante størrelser kan opdeles i 3 kategorier: (Ferr78 s13)
$lm20$
$nl$
_«bs»1_«bs»._«bs»P_«bs»r_«bs»o_«bs»d_«bs»u_«bs»k_«bs»t_«bs»i_«bs»v_«bs»e__«bs»i_«bs»n_«bs»d_«bs»e_«bs»k_«bs»s_«bs».
$nl$
Eks. Gennemstrømning, Kapacitet ( maksimal gennemstrømning)
Gennemstrømningen defineres som antallet af job, der kan  
behandles i f.eks. en time.
Kapaciteten defineres  som det maksimale antal job der kan passere i
timen. Man kan imidlertid også tale om kapacitet for de indgående
ressourcer og f.eks. et pladelagers kapacitet vil være antallet
af pladelageraksesser pladelageret kan klare i løbet af en tidsperiode.
$nl$
_«bs»2_«bs»._«bs»R_«bs»e_«bs»a_«bs»k_«bs»t_«bs»i_«bs»o_«bs»n_«bs»s__«bs»i_«bs»n_«bs»d_«bs»e_«bs»k_«bs»s_«bs».
$nl$
Eks. Svartid, gennemsnitlig svartid o.l.
Svartiden for et job defineres som afgangstiden minus ankomsttiden.
Dvs. den tid jobbet benytter i systemet.
$nl$
_«bs»3_«bs»._«bs»U_«bs»d_«bs»n_«bs»y_«bs»t_«bs»t_«bs»e_«bs»l_«bs»s_«bs»e_«bs»s__«bs»i_«bs»n_«bs»d_«bs»e_«bs»k_«bs»s_«bs».
$nl$
Eks. Maskinel udnyttelse ( CPU-udnyttelse ), Udnyttelsen af operativsystemet.
Udnyttelsen af en enhed defineres som tiden den er aktiv divideret med observationsperioden.
$lm0$
$nl$
$np$
Disse 3 type af præstationsindeks interesserer forskellige personer, og normalt
vil forskellige interessegrupper være interesseret i forskellige indeks.
F.eks. vil en bruger  være  interesseret i
lave reaktionstiden dvs.
kategori 2.
En driftleder derimod er formentlig mest interesseret i at udnyttelsen
af systemet er så stor som muligt dvs. kategori 1.
$np$
Udover at inddele præstationsindeks i de 3 ovenstående kategorier skelnes
mellem primære og sekundære præstationsindeks. Et primært præstationsindeks
er et indeks, som den vurderende person er interesseret i. Normalt
vil formålet med præstationsvurdering være at forbedre de primære indeks.
Et eksempel på et primært præstationsindeks er 
svartiden. Den vurderende person kan være interesseret i, at
formindske svartiden under betingelse af, 
at systemet herved udnyttes bedre.
$np$
Et sekundært indeks er et præstationsindeks, der bliver
bibragt af evalueringsstudiet. Det anvendes til at finde symptomer på,
at et datamatisk system er ineffektivt. Et eksempel på et sekundært
præstationsindeks er udnyttelsesgraden af centralenheden. I de fleste
tilfælde kan denne ikke måles direkte, men beregnes ud fra antallet af job og
disse jobs CPU-forbrug. En dårlig udnyttelse af centralenheden kan være årsag
til at systemets gennemstrømning er lille. 
$np$
Ved en præstationsvurdering skal værdierne af de primære og sekundære indeks
findes, ud fra et givent sæt af installationsparametre. Denne operation
kaldes præstationsanalyse eller præstationsvurdering. 
$ns 1,4,_«bs»2_«bs»._«bs»2_«bs»._«bs»O_«bs»p_«bs»d_«bs»e_«bs»l_«bs»i_«bs»n_«bs»g_«bs»e_«bs»n__«bs»a_«bs»f__«bs»e_«bs»t__«bs»e_«bs»v_«bs»a_«bs»l_«bs»u_«bs»e_«bs»r_«bs»i_«bs»n_«bs»g_«bs»s_«bs»s_«bs»t_«bs»u_«bs»d_«bs»i_«bs»u_«bs»m_«bs».$
$nl$
Præstationsvurdering kan klassificeres i 3 grupper:
$lm20$
$nl$
1.Udvælgelsesstudier.
$nl$
2.Forbedringsstudier.
$nl$
3.Designstudier.
$nl$
$lm0$
$np$
Kategori 1 drejer sig om problemer i forbindelse med valg
af f.eks. afviklingsmåde ( online-batch ), eller
udvælgelse af et datamatisk system ved indkøb. Samlet
er udvælgelsesstudier spørgsmålet om hvilke af  de tilstedeværende alternativer,
der er  bedst egnet til en given installation.
$np$
Forbedringsstudier beskæftiger sig med modificationer, som
skal/kan foretages ved en eksisterende installation for enten
at forøge dets ydeevne eller forbedre dets driftsomkostninger.
F.eks. trimning  falder indenfor denne kategori.
Ved trimning af et system forstås, at nogle installationsparametre
ændres således at   udnyttelsen  bliver bedre.
$np$
Designstudier er dem, som anvendes til besvarelse af spørgsmål, der
opstår
i forbindelse med design af maskiner, operativsystemer o.l.
$np$
Disse 3 grupper af præstationsvurdering skal ikke ses som 3 adskilte
grupper. Normalt kan et evalueringsstudium godt være en sammenblanding
af en eller 2 kategorier fra disse grupper.
$np$
Man kan eksempelvis tænke sig et forbedringsstudium kombineret med et
designstudium. Her kunne man under forbedringsstudiet opdage forskellige
uhensigtmæssigheder, således at f.eks. dele af et operativsystem
skal designes om.
$np$
 Dette speciale
 drejer sig kun om forbedringsstudier.
Det vil  ved hjælp af en simulator blive  illustreret,
hvilke konsekvenser en ændring af systemets design kan have.
$np$
 Når et evalueringsstudium 
foretages, er det normalt, at man gennemløber følgende 5 faser.
(Se Ferr78 side 10)
$lm20$
$nl$
1.Problemidentificering.
$nl$
2.Formålet med vurderingen.
$nl$
3.Forberedelse af en plan.
$nl$
4.Implementering af planen.
$nl$
5.Præstation af resultaterne.
$nl$
$lm0$
$np$
I de forskellige faser skal man i fase 2 og 3 være specielt 
interesseret i, hvad der ønskes opnået ved evaluerinsstudiet.
Hver beslutning om formålet med evalueringsstudiet
og om,
hvilke ressourcer der skal benyttes i forbindelse med et sådant
studium
  skal tages i forhold til, hvad man ønsker
at opnå med det.
Spørgsmålet om forbedringer af systemet kan relativt let
besvares ved afslutning af et vurderingsstudium, men er ret vanskelige
at besvare ved begyndelsen. Faserne 3,4 og 5 kan ses som
en iterativ procedure. En hypotese formuleres og testes, og
hvis testen falder negativt ud så modificeres hypotesen.
$np$
$ns1,4,_«bs»2_«bs»._«bs»3_«bs»._«bs»M_«bs»å_«bs»l_«bs»e_«bs»m_«bs»e_«bs»t_«bs»o_«bs»d_«bs»e_«bs»r_«bs».$
$np$
I planeringsfasen dvs. fase 3 af et evalueringsstudium er det essentielt
at bestemme, hvad der skal måles på systemet. Det kan ses som bestående
af 3 trin:
$lm20$
$nl$
_«bs»T_«bs»r_«bs»i_«bs»n__«bs»1_«bs».
$nl$
Beslutning om, hvad der skal måles.
$nl$
_«bs»T_«bs»r_«bs»i_«bs»n__«bs»2_«bs».
$nl$
Udvælgelse og konstruktion af måleredskab.
$nl$
_«bs»T_«bs»r_«bs»i_«bs»n__«bs»3_«bs».
$nl$
Designe eksperimentet og estimere dets værdi.
At estimere eksperimentets værdi vil sige at beskrive, hvilke fejlkilder
der findes, og beskrive under hvilke forudsætninger eksperimentet er foretaget.
Disse forudsætninger kan have indflydelse på forsøgets værdi, idet
nogle forudsætninger kan bevirke at eksperimentet ikke helt afspejler
det virkelige system,
 men kun dele af det.
 Derved begrænses
nøjagtigheden.
$nl$
$lm0$
$np$
Det vil i  det nedenstående blive beskrevet, hvilke måleredskaber man i teorien
har, og hvordan man kan betragte deres nøjagtighed.
$np$
Når et måleredskab betragtes bør man først betragte dets karakteristika.
Ved et måleredskabs karakteristika forstås, hvilke hændelser kan det måle,
hvor nøjagtigt kan det måle en hændelse, hvilke fejlkilder
findes ved målingerne med redskabet o.s.v.
$nl$
Ved målelinger på et system skelner man  mellem 3 forskellige
typer af måleredskab.
$lm20$
$nl$
_«bs»"_«bs»h_«bs»a_«bs»r_«bs»d_«bs»-_«bs»w_«bs»a_«bs»r_«bs»e__«bs»t_«bs»o_«bs»o_«bs»l_«bs»s_«bs»"
$nl$
Dette er maskinelle dele koblet til systemet f.eks. ved sonder  på
forskellige punkter, som ved hjælp af et måleinstrument
eksempelvis et ur, måler tidspunktet for hændelsen.
En sonde er en klemme beregnet til at sætte på et elektrisk
kredsløb, som derved kan  registrere om der løber strøm i en 
ledning eller ej.
$nl2$
_«bs»"_«bs»s_«bs»o_«bs»f_«bs»t_«bs»-_«bs»w_«bs»a_«bs»r_«bs»e__«bs»t_«bs»o_«bs»o_«bs»l_«bs»s_«bs»"
$nl$
Er målerutiner indsat i systemets programmel, som måler eksempelvis
om systemet kommer i en specifik status.
Kan også være et program der simpelthen måler, f.eks. hvor mange
pladelagertilgange et job benytter.
$nl2$
_«bs»"_«bs»h_«bs»y_«bs»b_«bs»r_«bs»i_«bs»d__«bs»t_«bs»o_«bs»o_«bs»l_«bs»s_«bs»"
$nl$
En kombination af de to typer.
$lm0$
$ns 1,4,_«bs»2_«bs»._«bs»4_«bs»._«bs»C_«bs»e_«bs»n_«bs»t_«bs»r_«bs»a_«bs»l_«bs»e__«bs»p_«bs»r_«bs»æ_«bs»s_«bs»t_«bs»a_«bs»t_«bs»i_«bs»o_«bs»n_«bs»s_«bs»i_«bs»n_«bs»d_«bs»e_«bs»k_«bs»s_«bs».$
$np$
Da formålet med et evalueringsstudium har stor indflydelse på, hvilke præstationsindeks
der anvendes,
 er det svært at angive nogle
præstationsindeks, som generelt
kan anvendes ved alle evalueringsstudier. Nedenstående angiver hyppigt anvendte
indeks, og i afsnit 4 bliver nøjagtigt præciseret, hvilke indeks, der anvendes ved denne vurdering.
$np$
I afsnit 2.1 er beskrevet at præstationsindeks, der benyttes ved et evalueringsstudium
afhænger af, hvem der betragter systemet. En anden betydende faktor er systemts
art. Her referes til om det er et interaktivt  eller et batchsystem.
De nedenstående eksempler på præstationsindeks følger opdelingen fra
afsnit 2.1, så først angives eksempler på belastningsindeks og
derefter systemindeks. Ved den endelige vurdering i denne opgave, vil 
der blive lagt stor vægt på at afklare,
hvordan systemindeks afhænger af belastningen.
$nl2$
_«bs»1_«bs»._«bs»B_«bs»e_«bs»l_«bs»a_«bs»s_«bs»t_«bs»n_«bs»i_«bs»n_«bs»g_«bs»s_«bs»i_«bs»n_«bs»d_«bs»e_«bs»k_«bs»s_«bs».
$nl$
Belastningsindeks refererer som før nævnt dels til en beskrivelse
af hvormange og hvordan job ankommer  og
dels til hvilke karakteristika disse job har. Eksempler på
belastningsindeks anføres nu i henhold til de to anførte
aspekter.
$nl2$
_«bs»A_«bs»n_«bs»t_«bs»a_«bs»l__«bs»a_«bs»n_«bs»k_«bs»o_«bs»m_«bs»m_«bs»e_«bs»n_«bs»d_«bs»e__«bs»j_«bs»o_«bs»b__«bs»p_«bs»r_«bs».__«bs»t_«bs»i_«bs»m_«bs»e__«bs»o_«bs»g__«bs»i__«bs»h_«bs»e_«bs»l_«bs»e__«bs»o_«bs»b_«bs»s_«bs»e_«bs»r_«bs»v_«bs»a_«bs»t_«bs»i_«bs»o_«bs»n_«bs»s_«bs»p_«bs»e_«bs»r_«bs»i_«bs»o_«bs»d_«bs»e_«bs»n_«bs».
$nl$
Et job er ved et interaktivt system er afsendelsen
af en transaktion. Ved et batchsystem er det en række hulkortbilleder,
dvs. fra et jobkort til et afslutningskort.
Dette indeks er afhængig af tidspunktet i døgnet.
$nl2$
_«bs»A_«bs»n_«bs»k_«bs»o_«bs»m_«bs»s_«bs»t_«bs»h_«bs»a_«bs»s_«bs»t_«bs»i_«bs»g_«bs»h_«bs»e_«bs»d
$nl$
Defineres som antal ankommende job pr. tidsenhed.
$nl$
Ud fra disse to indeks er det muligt at finde spidsbelastningen, og
gennemsnitlige tider mellem ankomsten af job.
$nl$
For et jobs karakteristika kan anføres følgende indeks:
$lm20$
$nl$
CPU-forbrug
$nl$
lagerforbrug
$nl$
ressourcekrav til ydre enheder f.eks. antal plade- og tromletilgange.
$lm0$$nl2$
Ved et interaktivt system betragtes udover de anførte normalt
også antallet af terminaler, og ankomsthastigheden
for transaktioner pr. terminal. 
$nl$
Ved et batchsystem betragtes f.eks. et jobs prioritet og antal hulkortbilleder.
$nl$
Samlet kaldes alle de ved et evalueringsstudium anvendte belastningsindeks
for en belastningsmodel. Hvordan den præcise belastningsmodel ser ud
ved dette evalueringsstudium beskrives i afsnit 4.
$nl2$
_«bs»2_«bs»._«bs»S_«bs»y_«bs»s_«bs»t_«bs»e_«bs»m_«bs»i_«bs»n_«bs»d_«bs»e_«bs»k_«bs»s_«bs».
$nl$
Specielt anvendligheden af systemindeks er meget afhængig af om et system
er batch eller interaktivt. De normalt vigtigste systemindeks er
følgende:
$nl2$
_«bs»G_«bs»e_«bs»n_«bs»n_«bs»e_«bs»m_«bs»s_«bs»n_«bs»i_«bs»t_«bs»l_«bs»i_«bs»g__«bs»s_«bs»v_«bs»a_«bs»r_«bs»t_«bs»i_«bs»d__«bs»f_«bs»o_«bs»r__«bs»e_«bs»t__«bs»j_«bs»o_«bs»b
$nl$
Dennes afhængighed af belastningen er interessant. Spørgsmål som
hvormeget forøges svartiden, når belastningen øges siger noget
om systemets evne til at behandle job.
$nl$
$nl$
_«bs»U_«bs»d_«bs»v_«bs»i_«bs»d_«bs»e_«bs»l_«bs»s_«bs»e_«bs»s_«bs»f_«bs»a_«bs»k_«bs»t_«bs»o_«bs»r__«bs»f_«bs»o_«bs»r__«bs»e_«bs»t__«bs»j_«bs»o_«bs»b_«bs».
$nl$
Defineres som svartiden for jobbet divideret med den ideele svartid. 
Den ideele svartid er den tid jobbet ville have brugt,
hvis det var alene i systemet.
Denne faktor siger noget om systemets evne til at behandle forskellige
job i forhold til jobbet karakteristika.
$nl$
$nl$
_«bs»G_«bs»e_«bs»n_«bs»n_«bs»e_«bs»m_«bs»s_«bs»t_«bs»ø_«bs»m_«bs»n_«bs»i_«bs»n_«bs»g_
$nl$
Definieres som antallet af job der kan færdigbehandle pr. tidsenhed.
$nl$
$nl$
_«bs»K_«bs»a_«bs»p_«bs»a_«bs»c_«bs»i_«bs»t_«bs»e_«bs»t_«bs».
$nl$
Defineres som maksimal gennemstrømning.
$nl$
I følge Kintchine-Pollaczek kan svartidens afhængighed af udnyttelsesgraden
findes ved følgende formler:
$nl4$
Her er ^^^ den gennemsnitlige svartid,^^^ er den gennemsnitlige
behandlingstid,^^^ er en konstant, der afhænger af det
betragtede systemet, og som 
angiver en koefficient for variationen på behandlingstiden. ^^^ er
udnyttelsesgraden af hele systemet.
Ved behandlingstiden for et job forstås summen af  tiden jobbet anvender ved de
indgående enheder. Behandlingstiden ved CPU-en er således den CPU-tid
jobbet bruger. 
 Nedenstående figur
viser, hvordan svartiden ud fra denne formel afhænger af udnyttelsesgraden.
$ps0$
$nl10$
$sj$
              figur 2.4.1
$rj$
Det viser sig, at kurven har en lodret asymptote, og denne asymptote
svarer til  kapaciteten. Udnyttelsesgraden som
indgår i formlen er defineret som den gennemsnitige behandlingstid
divideret med den gennemsnitlige ankomsthastighed. For nemmere
at kunne anvende formlen betragtes svartidens afhængighed af
ankomsthastigheden. Det viser sig her, at denne kurve også har
en lodret asymptote, og denne findes i opgaven.
$nl$
$nl$
_«bs»G_«bs»e_«bs»n_«bs»n_«bs»e_«bs»m_«bs»s_«bs»n_«bs»i_«bs»t_«bs»l_«bs»i_«bs»g__«bs»k_«bs»ø_«bs»l_«bs»æ_«bs»n_«bs»g_«bs»d_«bs»e_«bs».
$nl$
Ved de indgående enheder kan de tilhørende kølængder betragtes.
 Disse
siger noget om, hvilke enheder som kan være skyld i store svartider.
Den gennemsnitlige kølængde kan findes ved Little's lov( se side 185 i Ferr78)
Den siger at 
$nl4$
hvor N er den gennemsnitlige kølængde, ^^^ er ankomsthastigheden til enheden og
^^^ er den gennemsnitlige svartid ved enheden.
$nl2$
_«bs»3_«bs»._«bs»D_«bs»e_«bs»f_«bs»i_«bs»n_«bs»i_«bs»t_«bs»i_«bs»o_«bs»n__«bs»a_«bs»f__«bs»f_«bs»l_«bs»a_«bs»s_«bs»k_«bs»e_«bs»h_«bs»a_«bs»l_«bs»s_«bs».
$np$
Ferr78 anvender side 342 følgende definition på en flaskehals.
Lad S være et system, P et præstationsindeks og x1,...,xn være n
variable parametre. xi er både belastnings- og systemparametre. Det antages,
at en forøgelse i P angiver en forbedring i ydeevnen.
P(x1,...,xn) betragtes. Dette er normalt en ikke lineær funktion. Denne
ulinearitet angiver ofte flaskehalse.
 En flaskehals
defineres nu til at være den enhed forbundet til de parametre, der ved
en lille ændring bevirker er stor forøgelse i P.
Eksempelvis hvis xi er en pladelagerhastighed. Ved en lille forøgelse
i xi bliver P(x1,...,xn) væsentligt større. Dette betyder, at
pladelageret er flaskehalsen, og en forøgelse i pladelagerhastigheden,
vil bevirke et væsentlig forøgelse i systemets ydeevne.
$np$
Denne noget upræcise definition af en flaskehals bliver 
præciseret i afsnit 6.4.
$rh 1,SYSTEMBESKRIVELSE$
$ps 0$
_«bs»3_«bs»._«bs»S_«bs»Y_«bs»S_«bs»T_«bs»E_«bs»M_«bs»B_«bs»E_«bs»S_«bs»K_«bs»R_«bs»I_«bs»V_«bs»E_«bs»L_«bs»S_«bs»E_«bs».
$nl$
$np 15$
Nedenstående afsnit indeholder en beskrivelse af et oplysningssystem
(fremover forkortet OP-system) hos KTAS.
Systemet er udviklet af Jydsk Telefon. Det er grundlaget
for besvarelser af  spørgsmål,
 som  stilles til telefonnummeroplysningen.
$nl$
Spørgsmålene kan opdeles i 2 kategorier:
$nl$$lm15$
1.Hvilket tlfnr. har en given abonnent ?
(Betegnes fremover søgeforespørgsel)
$nl$
2.Hvilken abonnent har et givet tlfnr. ?
(Betegnes tlfnr.forespørgsel)
$nl$$lm 0$
$np15$
Disse spørgsmål (forespørgsler) kan bevirke, at der  skal stilles
supplerende spørgsmål for at  fremskaffe  den ønskede information.
De vigtigste typer af supplerende spørgsmål er en bladning og afdækning
af hemmeligt tlfnr.
Hvis en forespørgsel resulterer i mere end 21 forslag,  og dermed
fylder mere end et skærmbillede, er det muligt at bladre i skærmbillederne, og
dette betegnes en bladning.
 Hvis der spørges på en abonnent med hemmeligt tlfnr. vil
dette på skærmen blive 
skrevet som "HEMM.NR". Denne tekst kan afdækkes
( dvs. tlfnr. kommer frem på skærmen ) ved en speciel ordre.
$np 15$
OP-systemet er implementeret på maskinel fra Regnecentralen.
$np$
Konfigurationen for OP-systemet ændres efter tidspunktet i døgnet på
grund af en meget skiftende belastning. I en hårdt belastet
time findes der til systemet koblet 3 RC8000, 2 RC3500 af typen FP,
2 RC3500 af typen NP og omkring 15 RC3500 af typen TP. Det er antallet
af TP'er og RC8000 der formindskes, når belastningen af OP-systemet
er meget lille. Figur 3.1 viser, hvorledes principperne
i kommunikationen mellem disse maskiner foregår.
$ps0$
$sj$
                    figur 3.1
$rj$
$ps0$
 Forkortelser står
for følgende:
$sj$

        FP = Front-end Processor

        NP = Network Processor

        TP = Terminal Processor
$rj$$nl$
Terminalerne koblet til systemet er koblet til RC3500 betegnet TP.
Der til hver TP maksimalt er koblet 23 terminaler. 
Til hele OP-systemet er maksimalt koblet ca. 130 terminaler.
Hver RC8000 har 3 associerede diske og en RC8000 behandler alene
et antal forespørgsler.
$np 15$
$np 15$
Når der ringes ind til tlfnr.oplysningen bliver en forespørgsel indtastet
på en skærm.
Når forespørgslen er afsendt fra skærmen modtages den af TP.
 Denne RC3500 omsætter den
til en repræsentation, som kan forstås af resten af systemet. RC3500 sender derefter
transaktionen videre ved hjælp af en kommunikationslinie på figuren markeret 1 eller 2.
$np 15$
Forespørgslen sendes  ad linie 1, hvis dette er muligt ellers
sendes den ad linie 2. Kommunikationslinien mellem TP'en og de
RC3500'er der på figuren er betegnet NP er en 48 K bps (bit pr. sekund)
datatransmissionslinie. Transaktionen modtages af en af de 2 RC3500
betegnet NP  afhængig af, hvilken linie den er sendt
af.  NP  modtager og videresender forespørgslen
ud fra en speciel strategi til en af de to RC3500 betegnet FP. (Front-end
Processor). Strategien for, hvordan forespørgslerne fordeles mellem
de to RC3500 betegnet FP afhænger dels af hvormange RC8000 der er i
funktion og dels af deres belastning.
$np 15$
Transmissionslinien mellem NP og FP er en hurtig datatransmissionslinie. Skillelinien
mellem NP og FP udgør  et skel mellem hvilke former for
transmissionssystem, der benyttes. Transmissionssystemet der anvendes her til dette
skel er CATS35( Communication And Terminal System implementet on
RC3500. Findes beskrevet i RCSL.52-A188). Fra RC3500 på figuren betegnet FP benyttes
et specielt   udviklet system,
der kun anvendes ved OP-systemet.
 FP'ens opgave er, at transformere
forespørgslen så den kan modtages af RC8000. Derefter videresendes
transaktionen  og modtages i RC8000 af en terminaldriver.
$np 15$
Hvordan hele OP-systemet er implementeret i de 3 typer RC3500 er
ikke beskrevet i denne opgave. Begrundelsen for dette findes i afsnit 6,
og er, at denne del af systemet anvender forholdsvis lidt tid til
at behandle en forespørgsel.
Derimod findes i nedenstående en beskrivelse af, hvordan OP-systemet
er implementeret i RC8000.
Normalt vil der i hårdt belastede timer være 3 RC8000 koblet til OP-systemet.
Som angivet sker fordelingen af forespørgsler mellem disse 3 maskiner
ved hjælp af de 2 RC3500 på figuren betegnet FP. Det er tilstræbt at foretage
denne fordeling så hver RC8000 modtager ligemange transaktioner. 
Da fordelingen sker ved hjælp af 2 RC3500 er det imidlertid ikke helt simpelt
at foretage en ligelig fordeling. 
$np$
Dette kan yderligere anskueliggøres ved følgende argument. Når en forespørgsel
afsendes fra en skærm modtages den af en RC3500. Denne sender transaktionen
videre af linie 1 i langt de fleste tilfælde.
Dvs. at antallet af transaktioner den ene NP modtager afhænger af,
hvormange terminaler, der er koblet til de RC3500 der kommunikere med denne.
Det er derfor ikke sikkert, at de to NP'er modtager lige mange forespørgsler.
I de to FP'er er det derfor ret vanskeligt at fordele transaktionerne
ligeligt  mellem 3 RC8000. Fra KTAS's side menes, at fordelingen 
sker i forholdet 40,30 og 30 % af transaktioner til hver RC8000.
På baggrund af denne uligefordeling er det ved vurderingen nødvendigt
at betragte hver RC8000 for sig.

$np 15$
I nedenstående anvendes en del termer knyttet til en RC8000. Disse skal
kort forklares her. En dyberegående forklaring kan findes i Brin72.
$nl2$
Intern proces
$nl$
Defineres som udførelsen af et eller flere afbrydelige programmer i et 
givent lagerområde. Den er identificeret ved et entydigt navn.
$nl2$
Ekstern proces
$nl$
Refererer til input/output til en given enhed.
Dette betyder, at når en enhed er navngivet kan en intern proces kommunikere
med enheden gennem en ekstern proces uden at vide specielle karakteristika
om enheden.
$nl2$
Monitor
$nl$
Et program der aktiveres ved interrupts. Monitoren befinder sig permanent i lageret.
Monitoren kan opfattes som en programudvidelse af maskinelstrukturen. Derved
gøres maskinen mere attraktiv til multiprogrammering.
Monitorens funktion er:
$lm20$$nl$
1.at have en beskrivelse af alle processer.
$nl2$
2.at dele maskinen mellem interne og eksterne processer.
$nl$
3.at kunne oprette og nedlægge andre processer,
 
samt at kunne kommunikerer mellem processer. Dette er implementeret ved,
at nogle procedure i monitoren kaldes.
$lm0$
$nl2$
Message buffer
$nl$
En message buffer anvendes til at sende meddelser fra en proces til en anden.
Det angives eksempelvis i bufferen, at et segment på pladelageret ønskes
overført. Bufferen er  8 ord, der  bruges til en meddelse.
$nl$
$ns1,4,_«bs»3_«bs»._«bs»2_«bs»._«bs»R_«bs»C_«bs»8_«bs»0_«bs»0_«bs»0_«bs»'_«bs»d_«bs»e_«bs»l_«bs»e_«bs»n__«bs»a_«bs»f__«bs»O_«bs»P_«bs»-_«bs»s_«bs»y_«bs»s_«bs»t_«bs»e_«bs»m_«bs»e_«bs»t_«bs».$
$np 15$
Nedenstående figur viser, hvordan OP-systemet ser ud i RC8000.
Derefter  følger en  beskrivelse af de enkelte processer,
efterfulgt af en redegørelse for, hvordan de 5 processer kommunikerer
indbyrdes.
$ps0$

$ps0$
$np 15$
Figuren viser udover de 5 interne processer, nogle
eksterne processer, der fungere som
drivere til ydre enheder såsom pladelagre og terminaler.
De sorte pile på figuren angiver, at der sker overførsel af data.
Data er information om abonnenter i en intern repræsentation i form af kommunikationsblokke.
Disse kommunikationsblokke udskrives, når forspørgslen er færdigbehandlet  i en fil
kaldet logfilen på systemdisken.
De 5 processer ligger fast i lageret. Overførslen af data foregår ved,
at en kommunikationsblok kopieres fra en proces til   en anden proces.
$np$
En hvid pil svarer til, at der sker overførsel af meddelser.
En meddelse er eksempelvis at bede monitoren om at kopiere data.
$np$
De 5 interne processer beskrives nu mere udførligt. Det skal her anføres,
at de vigtigste og mest lagerforbrugende er søge- og opslagprocessen. Det er
i disse fremskaffelsen af information om telefonabonnenter sker.
De 5 processer er alle programmeret i ALGOL.
$ns1,4,_«bs»3_«bs»._«bs»2_«bs»._«bs»1_«bs»._«bs»O_«bs»P_«bs»-_«bs»p_«bs»a_«bs»r_«bs»e_«bs»n_«bs»t__«bs»p_«bs»r_«bs»o_«bs»c_«bs»e_«bs»s_«bs».$
$np 15$
Processens formål er at oprette og 
nedlægge de øvrige RC8000 processer i forespørgselssystemet,
samt at styre disse.
$np 15$
OP-parent processen anvendes, når en operatør ønsker at starte de andre
 processer. Opstart af systemet i RC8000 foregår ved at operatøren
sender en meddelse til parent-processen,
 og  denne proces starter så  processerne op.
Denne operation kaldes at opgradere systemet.
$np 15$
Udover at starte de øvrige processer benyttes parent-processen til at 
 degradere OP-systemet.
Ved en degradering af OP-systemet vil kun bladningsforespørgsler blive sendt
til inputprocessen.
Dette benyttes, når systemet skal lukkes ned. Her 
er det nødvendigt at degrade systemet, for derefter at vente
et vist stykke tid, så alle forespørgsler i systemet
er færdigbehandlet.
Først når alle forespørgsler er færdigbehandlet kan systemet stoppes.
$ns1,4,_«bs»3_«bs»._«bs»2_«bs»._«bs»2_«bs»._«bs»I_«bs»n_«bs»p_«bs»u_«bs»t_«bs»-_«bs»p_«bs»r_«bs»o_«bs»c_«bs»e_«bs»s_«bs»s_«bs»e_«bs»n_«bs».$
$np 15$
Inputprocessen modtager inputlinier fra terminaldriveren i RC8000
kaldet "terminput". Hver inputlinie, som modtages, er forsynet med 
kontrolinformation fra RC3500.
Dene kontrolinformation kan eksempelvis angive, at forespørgslen er en bladning.
Inputlinien (indeholdende en forespørgsel) analyseres. Dette
resulterer i, at transaktionen videresendes til enten søge-,
opslag- eller outputprocessen.
$nl$
$nl$
Processens forløb kan detaljeret beskrives på følgende måde:
$np$
Efter en analyse af  kontrolinformationen, gennemlæses linien tegn for
tegn. Derefter ændres inputlinien til en intern repræsentation, der
benyttes af de andre processer.
 En forespørgsel
 kan enten være en søge- eller
en tlfnr.forespørgsel. En søgeforespørgsel  indeholder
et eller flere felter efterfulgt af et feltindhold.
 De vigtigste felter (til hvert felt er angivet et eksempel på indholdet) er følgende:
$ps0$
$sj$
      FELT      INDHOLD       BETYDNING


      *b        Hellerup      by

      *n        Petersen      efternavn
 
      *f        Peter         fornavn

      *g        Stolpevej     gade
 
      *s        Arkitekt      stilling

      *h        14            husnr
$rj$
$np15$
En søgeforespørgsel skal indeholde feltet *b svarende
til et bynavn.
 Dette er eneste
felt, der altid skal forefindes,
derudover 
 skal mindst et andet felt findes i søgeforespørgslen. Hvad der
her er betegnet felter sammenholdt med feltindholdet,
 vil i det følgende også betegnes et søgekriterie.
$np 15$
Den anden type   tlfnr.forespørgsler
indeholder følgende felt:
$nl$
$sj$
            *t1753029 (et tlfnr)

$rj$
$np$
Udover disse to forespørgselstyper kan det forekomme, at inputlinien
 henføres til en kategori, der betegnes ukendt linietype eller fejllinie.
$np 15$
Til disse forespørgselstyper bemærkes, at inputprocessen foretager følgende
afhængig af linietypen:
$nl$$nl$
1.Søgeforespørgselslinie.
$np$
Søgelinien kontrolleres , herunder registreres eventuelle
alvorlige
fejl f.eks. fornavn uden efternavn, husnr. uden gade.
En nøjere undersøgelse af en søgeforspørgsel sker først i søgeprocessen.
Hvis linien er korrekt, sættes et låsefelt i linien. Findes et låsefelt
allerede i inputlinien ( dette indikere f.eks. en bladning),
så sendes forespørgslen direkte til outputprocessen, ellers sendes den til
søgeprocessen.
Et låsefelt fremkommer i en inputlinie  inden inputprocessen behandler forespørgslen
  ved, at der trykkes
på en speciel knap på terminalen.
$nl$$nl$
2.Telefonnummerforespørgsel.
$np$
I en sådan linie skal  *t (tlfnr.)
forekomme.
Linien kontroleres, herunder kan fejl registreres,
f.eks. antal cifre i et tlfnr. Hvis linien er korrekt
sendes inputlinien til opslagprocessen.
$nl$$nl$
3.Ukendt linietype eller fejllinie.
$np$
Der dannes en fejludskrift svarende til registrerede fejl og denne sendes
til outputprocessen.
$ns 1,4,3.2.2.Søgeprocessen.$
$np 15$
Denne proces modtager forespørgsler fra inputprocessen. 
Ud fra en forespørgsel er dens opgave at levere de mulige "kandidater" til opslagsprocessen.
En "kandidat" til en forespørgsel er et muligt svar.
Til søgeprocessen er koblet et pladelager, hvorpå der findes en  indekssekventiel
fil. En forespørgsel skal som omtalt under inputprocessen altid indeholde et stednavn,
hvilket kan opfattes som første indeks. Ud fra dette
findes et vist antal "kandidater". Hvis der er andre søgekriterier svarer dette til at søgeprocessen
ved hjælp af disse ( de kan opfattes som underindeks) indskrænker
antallet af mulige "kandidater". En "kandidat" til en forespørgsel er fra
søgeprocessens synspunkt  en pointer til en fil, der kaldes "abonnent-filen".
Abonnentfilen indeholder information om de enkelte telefonabonnenter.
I opslagprocessen fremfindes ud fra disse pointere den ønskede information om abonnenterne.
$np15$
Antallet af pladelagertilgange pr. søgeforespørgsel  i søgeprocessen afhænger af
antallet af søgekriterier.
$np15$
Hvis søgeprocessen ikke finder kandidater, sendes en fejludskrift til outputprocessen. 
Dette er også tilfældet, hvis der findes mere end 63 kandidater, hvilket
svarer til 3 skærmbilleder.
Da det ikke er muligt at måle, hvormange pladelagertilgange
der anvendes i søgeprocessen, angives her ud fra en artikel i Data (se bilag 1),
hvorledes antallet af pladelagertilgange i søgeprocessen findes.
$np$
I en tilføjelse til artiklen er en formel angivet. Formlen angiver, hvilke
størrelser i en søgeforespørgsel der anvendes til at finde antallet
af pladelagertilgange. Formlen har følgende udseende:
$sj$
      A = antal pladelagertilgange pr. gennemført 
          søgeforespørgsel
      B = antal opslag i stednavnsfilen pr. kriterie
      C = antal opslag pr. kriterie
      D = antal kriterier pr. forespørgsel
      E = antal AB-områder pr. forespørgsel
Med disse betegnelse gælder:

      A = B + ( C * D * E )
$rj$
$nl$
De angivne størrelser betyder  følgende:
$nl$
Stednavnsfilen er opdelt således, at hyppigt anvendte stednavne er placeret
i lageret. Derfor afhænger antallet af pladelagertilgange af,
hvor stor sandsynligheden er for at stednavnet findes i området
for hyppigt anvendte stednavne. Denne sandsynlighed kan findes
fra en statistik som er beskrevet i afsnit 5.1 og betegnes OPSTAT.
Fra en OPSTAT findes B til 0.18.
$nl$
Et opslag til et andet kriterie end stednavnet er en acces til
en fil, der findes på søgedisken. Dette vil altid være 2. (dvs. C = 2)
At det altid er 2 hænger sammen med den måde søgeprocessen er implementeret.
Antallet af kriterier pr. forespørgsel kan ligeledes findes fra en
OPSTAT. Den findes til 2.03 (= D). 
$nl$
Den sidste størrelse i formlen en antal AB-områder pr. forespørgsel.
Denne kan findes til 3.5 (= E). Et AB-område er en indikering
af de to første cifre i et tlfnr. Er eksempelvis stednavnet Østerbro,
så starter de to første cifre i tlfnr. i de fleste tilfælde
 med enten 26,29,32 eller 42.
38 er et AB-område.
$nl$
Fra den angivne formel findes så, at
$sj$
      A = 0.18+(2*2.03*3.5) = 14.39
$rj$
$nl$
Dette er pr. gennemført søgeforespørgsel. De eneste afviste søgeforespørgsel
som præcist kan angives at anvende et andet antal er en,
der afvises på grund af at stednavnet ikke findes. Disse vil kun anvende
1 pladelagertilgang.
$np$
Det angives nu, hvormange pladelagertilgange der er for samtlige
søgeforespørgsler. Tallene er hentet fra en OPSTAT ( fra d.25.04.81).
$sj$
   2753 afviste søgeforespørgsler, hvor stednavnet 
        ikke findes a 1 pladelagertilgang            =   2753
  79968 gennemførte søgeforespørgsler + afviste
        af anden grund a 14.39 pladelagertilgange    =1150739.5
  --------------------------------------------------------------
  82721 søgeforespørgsler med ialt antal plade.tilg. = 1153492.5

  Dermed 13.9 pr. søgeforespørgsel.

$rj$
$nl$
$np$
Da det ved vurderingen af OP-systemet viser sig, at
søgeprocessen er en meget vigtig proces, har det i afsnit 6.3 været
nødvendigt at beskrive denne nærmere.
$ns 1,4,3.2.4.Opslagprocessen.$
$np 15$
Denne proces foretager  opslaget i abonnentfilen.
Abonnentfilen indeholder data om samtlige abonnenter. Dvs.
filen indeholder eksempelvis navn, adresse tlfnr. o.l.
$np 15$
Programmet, der foretager  opslaget er delt i to hovedafsnit, hvor
det ene foretager opslag til besvarelse af tlfnr. forespørgsler,
og det andet foretager opslag til besvarelse af søgningsforespørgsler.
Sagt på en anden måde behandler det første hovedafsnit meddelser fra
inputprocessen, og det andet behandler kandidaterne, som eventuelt
modtages fra søgeprocessen.
$nl$$nl$
Svarende til de to dele udfører processen følgende:
$nl2$
1.Tlfnr.forespørgsel.
$np$
En tlfnr.forespørgsel bevirker, at opslagprocessen ud fra et tlfnr. finder
abonnenten i abonnentfilen. Det er en simpel operation, som normalt
kun benytter en pladelagertilgang.
$np 15$
Svaret på en tlfnr. forespørgsel fylder aldrig mere end et skærmbillede, og
det sendes til outputprocessen påsat betegnelsen "ABONNENT INFORMATION
SVARBILLEDE", hvis den forespurgte forespørgsel findes og 
typen "SIMPELT OUTPUT", hvis forespørgslen afvises.
$nl$$nl$
2.Søgeforespørgsel.
$np$
Denne programdel aktiveres, når der modtages en meddelse fra søgeprocessen af 
typen "KANDIDAT STAK".
$np 15$
Der opbygges en række tabeller til styring af opslagene i abonnentfilen og
opbygning af svarlinier. Derefter dannes
en svarlinie for hver kandidat modtaget fra søgeprocessen.
 Når alle svarlinier er dannet, sorteres de
og indsættes enkeltvis i en outputbuffer.
I denne outputbuffer dannes der færdige skærmbilleder med den oprindelige
inputlinie, som første linie. Hvis antallet af svarlinier fylder
mere end et skærmbillede anføres dette i outputbufferen.
 Derefter sendes denne til outputprocessen.
$np$
Antalpladelagertilgange i opslagprocessen afhænger af
forespørgselstypen. For en tlfnr.forespørgsel anvendes 2. For en
søgeforespørgsel anvendes 1 for hver kandidat. Dermed fås
$sj$

   48140 søgeforespørgsler a 7.5 kandidater     361050

   27070 tlfnr.forespørgsler a 2                 54140
  -----------------------------------------------------
   75210 forespørgsler med ialt antal plade.tilg.415190

   Dermed pr. forespørgsel i opslagsprocessen 5.5 plade.tilg.

$rj$$nl$
$ns1,4,_«bs»3_«bs»._«bs»2_«bs»._«bs»5_«bs»._«bs»O_«bs»u_«bs»t_«bs»p_«bs»u_«bs»t_«bs»-_«bs»p_«bs»r_«bs»o_«bs»c_«bs»e_«bs»s_«bs»s_«bs»e_«bs»n_«bs».$
$np 15$
Output processen modtager meddelser  fra de andre processer.
Den modtager fejludskrifter fra input- og søgeprocessen. Fra opslagsprocessen
ankommer en outputbuffer og fra inputprocessen kommer bladningsforespørgsler 
og forespørgsler om afdækning af hemmeligt tlfnr. 
Dens eneste formål er at videresende meddelserne til OP-skærmene og
at udskive de modtagne meddelser i en fil kaldet LOGFILEN.(beskevet i afsnit 3.4)

$np 15$
Alle af outputprocessen modtagne meddelser udskrives i en fil kaldet
LOGFILEN (beskrevet i afsnit 3.4). Efter at forespørgslen er udskrevet i logfilen bestemmes ud fra
typen, hvilken aktion der herefter skal tages.
$ns1,4,_«bs»3_«bs»._«bs»3_«bs»._«bs»K_«bs»o_«bs»m_«bs»m_«bs»u_«bs»n_«bs»i_«bs»k_«bs»a_«bs»t_«bs»i_«bs»o_«bs»n__«bs»m_«bs»e_«bs»l_«bs»l_«bs»e_«bs»m__«bs»d_«bs»e__«bs»5__«bs»p_«bs»r_«bs»o_«bs»c_«bs»e_«bs»s_«bs»s_«bs»e_«bs»r_«bs».$
$np 15$
Da det for forståelsen af OP-systemet er særdeles vigtigt at vide, hvordan forespørgsler
passerer gennem de 5 processer vil dette 
blive opsummeret i nedenstående.
$np 15$
Processen OP-parant benyttes, som før omtalt kun ved opstart og lukning af systemet,
så den vil ikke nøjere blive medtaget her.
$np 15$
Nedenstående figur viser en simplificeret udgave af OP-systemets RC8000-del.
$nl20$
$sj$
                 Figur 3.3.
$rj$
$np 15$
Alle forespørgsler går gennem inputprocessen og outputprocessen. Det interessante
er, hvordan de derudover passerer gennem systemet. Nedenfor er angivet
de mulige veje.
$nl$$nl$
input -> output :
$nl$
Forespørgsler med fejl i inputlinien, bladningsforespørgsler og
afdækning af hemmeligt tlfnr.
$nl$$nl$
input -> søge -> opslags -> output :
$nl$
En søgeforespørgsel, hvor der er mellem 1 og 63 kandidater.
$nl$$nl$
input -> søge -> output :
$nl$
En søgeforespørgsel, hvor der enten ikke findes kandidater eller
der findes mere end 63.
$nl$$nl$
input -> opslags -> output :
$nl$
En tlfnr.forespørgsel.
$ns1,4,_«bs»3_«bs»._«bs»4_«bs»._«bs»S_«bs»c_«bs»h_«bs»e_«bs»d_«bs»u_«bs»l_«bs»e_«bs»r_«bs»i_«bs»n_«bs»g_«bs»s_«bs»s_«bs»t_«bs»r_«bs»a_«bs»t_«bs»e_«bs»g_«bs»i_«bs»e_«bs»n_«bs».$
$np 15$
Scheduleringsstrategien, som benyttes på en RC8000, er en modificeret
form for ROUND-ROBIN.(se Brin72 s255). Den vil blive uddybet i følgende
afsnit.
$nl$
En proces kan være i 3 forskellige tilstande:
$lm20$
$nl$
1.Kørende
$nl$
2.Ventende (på at blive kørende)
$nl$
3.Passiv
$lm0$
$nl$
Processen der benytter CPU-en betegnes kørende. En ventende
proces skal benytte CPU-en, men da der er en anden proces, der
benytter CPU-en, må den vente på dens tur. En passiv
proces venter på en ydre hændelse som eksempelvis kan være at
pladelageret er færdigt med en overførsel.
$np$
Til disse 3 tilstande svarer kun een kø, hvori ventende processer og
den kørende proces findes. Køen er en dobbelthægtet liste og har for
de i OP-systemet indgående processer eksemplevis følgende udseende:
(Den betegnes fremover aktivkøen.)
$ps0$
$sj$
AKTIVKØEN:


   ----------     ----------    ----------
   !        !     !        !    !        !
   ! INPUT  !     ! SØGE   !    ! OUTPUT !
   ! PROCES !--->-! PROCES !-->-! PROCES !
   !        !---<-!        !--<-!        !
   ! KØRENDE!     !VENTENDE!    !VENTENDE!
   !        !     !        !    !        !
   ----------     ----------    ----------

PASSIVE PROCESSER:
                  
                  -----------    -----------
                  !         !    !         !
                  ! OPSLAGS !    ! OP-PA-  !
                  ! PROCES  !    ! RENT    !
                  !         !    ! PROCES  !
                  ! PASSIV  !    ! PASSIV  !
                  !         !    !         !
                  -----------    -----------

$rj$
$np$
At forklare, hvordan scheduleringsstrategien på en RC8000 virker,
er det samme som at forklare, hvordan en proces indsættes i aktivkøen. Dette
skyldes, at det altid er første proces i aktivkøen, der er kørende. 
En proces indsættes i aktivkøen på baggrund af en variabel
i procesbeskrivelsen, der betegnes TIMEQUANTUM. Denne størrelse må
absolut ikke forveksler med en tidsskive, der altid er 25.6 ms.
$nl$
Nedenstående er de 3 tilfælde, som opstår, når en proces afbrydes, og
der derved skal ændres i rækkefølgen i aktivkøen.
$nl2$
1.Processen afbrydes af klokken.
$nl$
Dette sker for hver 25.6 ms. Når processen
afbrydes bliver TIMEQUANTUM = den kørte tid + TIMEQUANTUM. Den
kørte tid angiver, den tid processen har været kørende uden afbrydelse.
Hvis TIMEQUANTUM derved bliver større eller lig 25.6 ms bliver
processen taget ud af aktivkøen og placeres bagest i køen.
TIMEQUANTUM bliver derefter sat til 0.
$nl2$
2.Processen afbrydes af et interrupt fra en ydre enhed.
$np$
Interruptet vil her altid være beregnet til en proces, der er ventende.
Denne ventende proces indsættes i aktivkøen foran den kørende
proces, hvis TIMEQUANTUM er større eller lig 25.6 ms ellers
indsættes den bagest i aktivkøen.
$nl2$
3.Processen ønsker eksempelvis en pladelagertilgang.
$nl$
TIMEQUANTUM sættes til tiden processen har været kørende uden
afbrydelser + TIMEQUANTUM. Processen tages derefter ud af køen og bliver ventende.
$nl2$
Formålet med denne ret komplicerede scheduleringsstrategi er, at hindre
at en proces monipolisere en ydre enhed, og at sikre en hurtig
kommunikation med ydre enheder.

$nl2$
Eksempel 3.4:
$nl$
Antag at der  i RC8000 findes 3 processer  fremover betegnet A,B og  C.
Til tiden 0 bliver proces A,B og C oprettet og startet. Dette bevirker,
at processerne bliver indsat i aktivkøen i rækkefølgen A,B,C. Da
 proces A er den første proces, bliver den kørende og
den får tildelt 25.6 ms (betegnes i det følgende også med en tidsskive)
 Imidlertid skal proces A efter 15 ms benytte
et segment fra pladelageret.
(Det antages, at denne pladelagertilgang tager 38.3 ms.)
 Dette bevirker, at proces A bliver passiv og B ( som er
ventende ) bliver kørende.
(Aktivkø: B,C) Størrelsen TIMEQUANTUM bliver for A 
sat til 15 ms. B bliver nu kørende i 25.6-15 ( = 10.6 ) ms, og
B bliver derefter afbrudt af klokken. TIMEQUANTUM for B bliver sat til
10.6 ms. Idet dette er mindre end en tidsskive, kommer B atter forrest i
aktivkøen. Den får nu tildelt en hel tidsskive. Da den ikke under denne
tidsskive kan nå at blive færdig, er den kørende under hele tidsskiven.
Når den har kørt en hel tidsskive, bliver B igen afbrudt af klokken.
TIMEQUANTUM for B bliver nu sat til 10.6+25.6 = 36.2 ms. Da dette er 
større end en tidsskive bliver B indsat bagest i aktivkøen, og TIMEQUANTUM
bliver derefter sat til 0. 
$np$
Proces C bliver nu kørende, og den får tildelt 25.6 ms. Når der er gået 2.1 ms
af denne tidsskive,
 vil pladelagertilgangen for proces A være færdig. Proces
C bliver så afbrudt.
Da A's tidskvant er mindre end 25.6 ms, vil denne  blive 
indplaceret forrest i aktivkøen.
(Aktivkø: A,C,B)
$np$
A får nu tildelt 25.6-2.1 ms, som er den tid der er tilbage af
en tidsskive.
Efter at proces A har kørt 25.6-2.1 = 23.5 ms bliver A afbrudt af klokken. 
A's TIMEQUANTUM bliver sat til 15.0+23.5= 38.5 ms. Dette er større end
en tidsskive og A bliver derfor sat bagest i køen. TIMEQUANTUM for A bliver
sat til 0.(Aktivkø: C,B,A) C kører så 25.6 ms og TIMEQUANTUM for C
bliver 25.6+2.1 = 27.7. Den tages derfor ud af aktivkøen og indsættes
bagest. (Aktivkø: B,A,C) TIMEQUANTUM for C bliver igen sat til 0.
Dette fortsættes på ækvivalent vis.
$nl$
På nedenstående tidslinier er angivet, hvordan de 3 processer kører.
En skravering af tidslinien angiver at processen er kørende.
$nl10$
$sj$
              Figur 3.4.
$rj$
$nl$
$np$
Ovenstående eksempel forudsætter, at processerne alle har
samme prioritet. Dette er tilfældet ved OP-systemet. Hvis
ikke alle processer har samme prioritet, kan man betragte det som om,
at der findes en aktivkø for hvert prioritetsniveau. En proces vil
så blive indplaceret i køen svarende til den prioritetskø, der har samme
prioritet som processen.
$ns 1,4,3.4.Beskrivelse af LOGFILEN.$
$np 15$
Når en forespørgsel passerer gennem OP-systemet, foregår dette ved,
at en vis mængde data i form af kommunikationsblokke
 transporteres mellem de i systemet indgående processer.
Disse kommunikationsblokke udskives i en fil på systemdisken kaldet logfilen.
 Dette foregår som tidligere beskrevet i outputprocessen.
$np 15$
Hver kommunikationsblok indeholder et blokhoved. Dette blokhoved
indeholder følgende information:
$sj$
      bloklængde
      bloktype
      løbenr.
      terminal identifikation
      fra A-omr.  til A-omr.
      abs. ankomsttid   input proces
      rel. afgangstid   input proces
      cpu tid           input proces
      rel. ankomsttid   søge proces
      rel. afgangstid   søge proces
      cpu tid           søge proces
      rel. ankomsttid   opslags proces
      rel. afgangstid   opslags proces
      cpu tid           opslags proces
      rel. ankomstid    output proces
      rel. afgangstid   output proces
      cpu tid           output proces
$rj$
$np 15$
Alle rel. tider er relative i forhold til den absolute ankomsttid til
inputprocessen, og alle tider er udtrykt i millisekunder.
$np$
Det er indholdet af dette blokhoved, der ved denne opgave læses i logfilen
og derved anvendes til at finde de i afsnit 4 beskrevne præstationsindeks.
Den udover blokhovedet eksisterende information i logfilen vil ikke blive beskrevet
her, men vedlægges som bilag 2. Grunden til at beskrivelsen ikke er
medtaget her, er for det første, at den indeholder en del intern
information, som det vil være for uoverskueligt at beskrive. For
det andet anvendes anvendes kun ovenfor nævnte information. Det
kan dog nævnes, at den ekstra information i logfilen eksempelvis
normalt
anvendes til at undersøge kriteriesammensætningen og f.eks. hvor
hyppigt et stednavn anvendes.
$ns 1,4,3.5.Pladelagerkanal.$
$np$
De 3 processer søge-, opslag- og outputprocessen kommunikerer med de tilkoblede
pladelagre gennem en "discdriver" og en pladelagerkanal. Det vil ikke
her blive beskrevet, hvordan "discdriveren" fungerer. Dette skyldes, at
den er indbygget i, hvad der betegnes monitoren på RC8000.
Det er derimod særdeles vigtigt at
forstå, hvordan pladelagerkanalen fungerer.
Dette skyldes, at
 der er tre processer om at kommunikere gennem samme datakanal,
og det kan derfor tænkes,
 at den begrænser systemetsydeevne.
$np$
Pladelagerkanalen (eng. "disccontroler") er en selvstændig enhed. Dvs. at den indeholder en
logisk enhed, og den kan kører parallelt med CPU-en på RC8000.
For at forstå hvordan pladelagerkanalen overfører data, er det nødvendigt at gøre sig klart
hvordan en pladelagertilgang helt nøjagtigt foregår.
$np$
Når en proces i RC8000 ønsker at benytte nogle data, der er lagret på pladelageret,
sendes en meddelse om dette til pladerlagerkanalen.
Pladelagerkanalen sørger derefter for at pladelageret
 positionere selve diskhovedet
hen til det spor, hvor dataene findes. Når hovedet
befinder sig på sporet, bliver diskkanalen reserveret( dette umuliggør at
andre kan benytte den). Når hovedet befinder sig over det ønskede data,
overføres dataene.
$np$
Det vigtigste at gøre sig klart er, at når hovedet befinder sig på det ønskede
spor er diskkanalen reserveret, og den kan ikke foretage sig andet før overførslen af data er færdig.
Derimod kan diskkanalen under en positionering af et hoved godt starte
en positionering på en anden disk.
En nøjere beskrivelse af pladelagerkanalen findes i afsnit 3 i simulatoropgaven.
$rh 1,PROBLEMIDENTIFISERING$
$ps0$
$ns 1,4,4.Problemidentifisering.$
$np$
Dette afsnit indeholder en præcisering af formålet med vurderingen
af OP-systemet. Det angives, hvilke præstationsindeks, der betragtes,
og hvad baggrunden for evalueringen er. Det kan virke
ejendommeligt først at medtage en problemidentifisering af
opgaven i afsnit 4. Dette er gjort, fordi mange problemstillinger
kræver et kendskab til det foreliggende system.
$ns 1,4,4.1.Baggrunden og formålet for vurderingen af OP-systemet.$
$np$
Det hos KTAS kørende OP-systems belastning er
afhængig af, hvormange mennesker, der ringer ind til
tlfnr.oplysningen. Imidlertid er dette ikke den eneste
faktor, der har indflydelse på belastningen. Det har vist sig, at kapaciteten
af de indgående telefonlinier ligeledes er en væsentlig faktor. Målinger
har vist, at omkring 30 % enten får optaget eller overhovedet ikke kommer
igennem.
Fra udvidelsen af disse linier kan forventes en forøgelse i belastningen.
 Da evalueringsstudiet startede kunne en forøgelse
af belastningen også forventes, idet de andre telefonselskaber
skulle kobles til systemet. Dette bevirker en forøges belastning på
ca. 4 %. 
$np$
Baggrunden for vurderingen er således, at der ønskes en undersøgelse
af dels om
hvor stor en forøget belastning kan OP-systemet klare med
de nuværende ressourcer,
 og dels
hvordan vil det klare denne forøgelse i belastningen.
$np$
Ud fra denne baggrund kan formålet med vurderingen identifiseres
ved følgende spørgsmål.
$nl2$
Hvordan er belastningen af OP-systemet ?
$nl$
Til dette skal belastningen beskrives, så det fremgår
hvormange forespørgsler der modtages dels i et helt
døgn og dels for hver time i døgnet. Ved denne beskrivelse
kan det så anføres, hvornår spidsbelastningen er. I forbindelse
med belastningen kræves også en analyse af, hvilke forespørgselstyper
OP-systemet modtager, og om mønsteret i disse forespørgselstyper
ændres i løbet af døgnet. Derudover skal det beskrives,
hvor store de enkelte forespørgselstyper ressourcekrav er. 
$nl2$
Hvordan klarer OP-systemet den nuværende belastning ?
$nl$
Til belysning af dette spørgsmål, skal følgende
synspunkter analyseres. Hvor stor er udnyttelsesgraden af systemet,
og hvordan udnyttes de indgående enheder. Derudover skal
svartiderne undersøges dels for de enkelte forespørgselstyper
og dels i forhold til den belastning OP-systemet udsættes for.
Det anførte spørgsmål om hvordan OP-systemet
klarer den nuværende belastning, skal ses som en vurdering af,
hvor godt systemet fungere dvs. beskrive dets evne til at behandle
forespørgsler.
$nl2$
Hvor stor en forøgelse i belastningen kan OP-systemet klare ?
$nl$
Dette spørgsmål skal ses i forbindelse med de komponenter systemet
består af. At angive om systemet kan klare en forøgelse
i belastningen skal ses i forhold til at der ikke må
komme en stor stigning i svartiden pr. forespørgsel.
$nl2$
Hvorledes forbedres OP-systemet ?
$nl$
Dette spørgsmål anses for det vigtigste. Ved hjælp
af målinger identifiseres de enheder, der anvender mest tid.
Ud fra dette skal det angives, hvordan disse forbedres. Besvarelsen
af dette spørgsmål bygger særdeles meget på den konstruerede
simulators pålidelighed.
$ns 1,4,4.1.Betragtede præstationsindeks.$
$np$
Ud fra de ovenfor anførte spørgsmål vil det blive beskrevet,
hvilke præstationsindeks, der betragtes ved vurderingen. Ved hvert
indeks angives, hvorfor det betragtes. Det vil således fremgå,
hvad der tænkes opnået ved den efterfølgende vurdering.
$nl2$
1.Belastningsindeks.
$nl2$
antal ankommende forespørgsler
$nl$
Dette indeks betragtes pr. time og i et døgn for at beskrive, hvordan forespørgslerne
fordeler sig. Herved kan spidsbelastningen og gennemsnitlige
ankomsttider findes.
$nl2$
Antal forespørgsler i hver proces.
$nl$
Antal bladninger, afdækninger af hemmelig tlfnr. og fejllinier.
$nl$
Ud fra disse indeks kan antallet af forespørgselstyper beregnes.
En beskrivelse, hvordan dette gøres findes i afsnit 5.2.
Disse indeks benyttes derfor til at beskrive forespørgselsmønsteret.
Hver indeks måles pr. time og for et døgn. Forespørgselsmønsteret
afhængighed af tidspunktet i døgnet kan derfor beskrives.
$nl2$
Gennemsnitlig CPU-tid pr. forespørgsel i hver proces.
$nl$
Fordelingen af CPU-tiden.
$nl$
Disse indeks kan sammenholdt med antallet af pladelagertilgange i de
enkelte processer, betragtes som en beskrivelse af forespørgslernes
ressourcekrav.
$nl$
Alle de anførte indeks kan måles i logfilen, og samlet danner
de den belastningsmodel, der anvendes ved vurderingen.
$nl$
Et alternativ til denne model kan anføres:
$nl$
I stedet for at betragte gennemsnitlige CPU-tider pr. forspørgsel og
fordelingen af CPU-tiden, kunne CPU-tiden pr. forespørgselstype være anvendt
som et mål. Det har imidlertid vist sig, at der ikke er væsentlig
forskel i CPU-tiden for de forskellige forespørgselstyper.
Dette kan bedst illustreres ved opslagprocessen. Denne proces behandler
både gennemførte søge- og tlfnr.forespørgsler. Den første type
skal i gennemsnit fremfinde 7.5 kandidater og den anden 1 kandidat.
Man kunne så forvente, at CPU-tiden havde en fordeling som
angivet på nedenstående figur.
$nl10$
$sj$
                  figur 4.1
$rj$$nl$
De to anførte "pukler" skulle stamme fra dels gennemførte søge-    
og dels tlfnr.forespørgsler. Det har imidlertid vist sig, at 
kurven ikke har det skitserede forløb, men derimod ligner
en eksponentialfordeling. Dvs. antallet af forespørgsler
falder jævnt i forhold til CPU-tiden. Dette er nøjere illustreret
i afsnit 6, hvor kurven for CPU-tidsfordelingen præcist
er angivet.
$nl3$
2.Systemindeks.
$nl$
$nl2$
Gennemsnitlig procestid pr. forespørgsel i hver proces.
$nl$
Procestiden defineres, som afgangstiden - ankomsttiden. Størrelsen
beskriver således, hvorlænge en forespørgsel befinder sig i processen.
Hvis indekset sammenlignes med CPU-tiden findes derved, hvor lang
tid forespørgslen  anvender både til
overførsel af information fra pladelageret og til tiden der stammer
fra at OP-systemet i RC8000 er multiprogrammeret.
Gennemsnitlig køtid pr. forespørgsel ved hver proces.
$nl$
Køtiden ved en proces defineres som afkomsttiden til processen -
afgangstiden fra forrige proces.
Køtiden anvendes til at undersøge om der eventuelt
sker en ophobning af forespørgsler ved en proces.
$nl2$
De indtil nu anførte indeks er alle primære indeks, som
kan måles direkte i logfilen. De betragtes for et døgn og
pr. time. 
$nl2$
Derudover betragtes følgende sekundære præstationsindeks.
$nl$
Gennemsnitlig svartid pr. forespørgsel. 
$nl$
Den gennemsnitlige svartid defineres som totalprocestid divideret
med antal behandlede forespørgsler.
$nl2$
CPU-udnyttelse.
$nl$
Defineres som samlet CPU-tid divideret med observationsperioden.
Den samlede CPU-tid er antalforespørgsler * gennemsnitlig CPU-tid pr. forespørgsel.
$nl2$
Diskkanaludnyttelse.
$nl$
Defineres som samlet diskkanaltid divideret med observationsperioden.
Der opstår her et problem. Når en overførsel fra pladelageret foretages, sker først en positionering af pladelagerhovedet, og først derefter overføres information fra pladelageret. Overførslen er særdeles hurtig. Imidlertid skal diskkanalen
reserveres, når hovedet befinder sig på det rigtige spor, og derved er den faktisk
optaget i 8.3 ms pr. pladelagertilgang. Kanalen vil dog kun være udnyttet en del
af denne tid helt eksakt 0.6 ms. Udnyttelsen  defineres dog
som den tid den er optaget og ikke kan benyttes af andre. Dvs.
$nl$$sj$
            8.3 * antalpladelagertilgange
            ______________________________
                 observationsperiode
$rj$$nl$
Kan ikke måles ved OP-systemet, men forsøges fundet ved simulatoren.
$nl2$
Pladelagerudnyttelse.
$nl$
Defineres som
$nl$$sj$
       (positioneringstid + overførselstid)*antaldisktilgange
       ______________________________________________________
                 observationsperiode
$rj$$nl$
$nl2$
Procesudnyttelse
$nl$
For de 4 processer i OP-systemet defineres udnyttelsen som
$nl$$sj$
       gennemsnitlig CPU-tid * antal forespørgsler
       ___________________________________________
                 observationsperiode
$rj$$nl$
Denne kan beregnes ud fra målinger på logfilen.
$nl2$
Monitorudnyttelse
$nl$
Defineres som
$nl$$sj$
        monitorskiftetid * antal processkift
        ____________________________________
                  observationsperiode
$rj$$nl$
Kan ikke måles på OP-systemet.
$nl2$
For hele OP-systemet dvs. med RC3500 delen betragtes kun den gennemsnitlige
svartid for en forespørgsel.
Figur 4.2 viser en simplificeret udgave af OP-systemet.
$nl10$
figur 4.2
$nl2$
En forespørgsel passerer 2 gange gennem 3 RC3500 og 1
gang gennem en RC8000.
$np$
Ved hjælp af logfilen er det muligt at måle, hvorstor den gennemsnitlige
svartid er i en RC8000, derimod findes denne mulighed ikke i de 3 RC3500.
Disse 3 maskiner er alle programmeret i et maskinsprog kaldet SLAM.
Der undersøgtes forskellige muligheder
for at finde svartiden i en RC3500.
$np$
Muligheden for at indsætte nogle "soft-ware"-tællere i RC3500 
 blev  overvejet. Dette
var særdeles tidskrævende og desværre resultatløst.
Dette skyldes følgende omstændighed:
$np$
Den tidskrævende faktor skyldes at opgaveløseren ikke kendte programmeringssporget
SLAM. Efter at et vist kendskab til dette var opnået, undersøgtes den kode,
der normalt findes i en  RC3500. Dette resulterede i et forsøg på at 
indsætte to tællere.
$np$
Disse tælleres opgave skulle være at finde den gennemsnitlige svartid for
en forespørgsel i en RC3500. Dette kan gøres ved at registrere
tiden for ankomsten og afgangen af en forespørgsel. Ved at summere
differencen mellem afgangen og ankomsten, vil den samlede tid som forespørgslen
benyttede i maksinen kunne registeres. Den anden tællers formål
er så at optælle antallet af forespørgsler.
Ved denne metode vil det være muligt at finde den gennemsnitlige svartid for en forespørgsel i RC3500.
$np$
Imidlertid viste dette sig umuligt at gennemføre af følgende grund.
Tælleren der skulle sammentælle differencen mellem afgangs- og ankomsttiden
skulle indsættes i en rutine i RC3500 kaldet "clock-driveren".
Det forventedes, at tiden kontinuerligt blev optalt i denne driver. Dette er
imidlertid ikke tilfældet, idet tiden kun tælles op, hvis der sker en 
"hændelse". Med en hændelse menes her, at RC3500 f.eks. modtager et
signal fra en anden enhed.
Da det var umuligt at overskue om tiden blev talt op for hver
hændelse, var det desværre nødvendigt at forkaste denne metode.
$np$
I stedet blev et "hard-ware tool" anvendt til at måle, den 
gennemsnitlige svartid for en forespørgsel for hele systemet.
Dette blev gjort ved på den i selve skærmen
eksisterende elektronik at påsætte nogle sonder. Disse kan 
registerer, når en forespørgsel sendes og modtages. Ved at koble et
ur i forbindelse med disse sonder, er det muligt at måle, hvor lang tid en
forespørgsel tager i hele OP-systemet.
$rh 1,ANVENDTE MÅLEPROGRAMMER$
$ps0$
$ns 1,4,5.Beskrivelse af anvendte målemetoder.$
$np$
Nedenstående afsnit beskriver, hvilke måleredskaber som anvendes ved
dette evalueringsstudium. Derudover anføres med begrundelse, hvilke eksperimenter, der på
denne baggrund er foretaget.
$np$
De programmelredskaber vurderingen anvender er den i afsnit 3.7
beskrevene logfil.
$np$
Da selve vurderingen af OP-systemet begyndte fandtes hos KTAS, et
program til læsning af centrale dele af logfilen.
Dette program kaldes i det følgende OPSTAT, og det kan udskrive en ret
detailjeret statistik om, hvordan OP-systemet fungerer.
Imidlertid er der efter min mening visse mangler ved denne statistik, som
jeg synes er meget centrale, når en vurdering af OP-systemet skal 
foretages. Nedenstående indeholder først en beskrivelse af OPSTAT, og derefter
følger en beskrivelse af mit udviklede program. Dette betegnes i det følgende
KTASSTAT. I afsnit om OPSTAT vil det endvidere blive begrundet, hvorfor
det var nødvendigt at udvikle et eget statistik program.
$ns 1,4,5.1.Beskrivelse af OPSTAT.$
$np$
Dette program, som er skrevet i ALGOL, benyttes normalt af KTAS til udskrivning
af statistik om OP-systemet. OPSTAT er derfor konstrueret så de spørgsmål
man har fra KTAS's side kan dækkes ved det.
Et eksempel på en OPSTAT er velagt som bilag 3.
Nedenstående afsnit  beskæftiger sig med hovedideerne for 
statistikken. Dette vil være nok til at forstå, hvorfor det var nødvendigt
at udforme et program til en egen statistik.
$np$
OPSTAT er opbygget således, at den giver information om følgende 3 punkter:
$lm30$
$sb^,6$
$nl$
1.Antallet forespørgsler opdelt i et antal forespørgselstyper.
$nl$
2.Svartiderne for forskellige forespørgselstyper.
$nl$
3.Kriteriesammensætningen.
$nl$
$lm0$
$np$
For de to første punkter gælder,
at statistikken her er opdelt efter områdenummeret i telefonnummeret, dvs
01,02 og 03. Udover denne opdeling findes en samlet statistik,
hvor resultaterne fra de 3 områder er summeret.
$np$
De vigtigste forespørgselstyper man opererer med i statistikken er søgeforespørgsler
og telefonnummer forespørgsler.
Disse adskiller sig væsentligt i svartiden, og det skyldes( se afsnit 3.2),
at de passere på forskellig måde gennem systemet.
$np$
$np$
Opsummerende kan siges, at hovedformålet med statestikken er at kunne svare på spørgsmål
om, hvor lang svartiden er for en speciel forespørgselstype.
$np$
De tabeller i OPSTAT der er af størst interesse, når en samlet vurdering af OP-systemet, skal foretages er følgende:
$nl1$$sj$
              svartid ms   procestid ms   køtid ms   cputid ms

input proces         25              25                    14

søge    -           566             375         191       145

opslag  -           267             225          42        80

output  -            24              11          13         8

IALT                884             636         247       248


                 Tabellen er fra en OPSTAT den.25.08.80

$rj$
Tabellen viser et billede af, hvordan svartiden for en søgeforespørgsel foregår
i de 4 processer. De i tabellen indgående størrelser defineres i afsnit 4.2
$np$
OPSTAT anvendes nu kun til dele af vurderingen, fordi
  ovenstående tabel
kun bygger på gennemførte søgeforespørgsler.
En tilsvarende tabel kan findes for tlfnr.forespørgsler, men
ovennævnte tabel kan kun findes for følgende forespørgsler:
$sj$


        19625  gennemførte søgeforespørgsler

        13101  telefonnummer forespørgsler
        _____________________________________
 
        32726  Ialt antal gennemførte forspørgsler
        ==========================================
$rj$
$nl$
Det samlede antalforespørgsler, som findes i logfilen svarende til den 25.08.80
er 55128.
Dvs. det er kun muligt at finde en tilsvarende tabel for ca. 60 % af samtlige
forespørgsler. Da f.eks. en størrelse som udnyttelsen af de indgående processer
gerne skulle findes, vil det være nødvendigt at have en tabel som bliver baseret på samtlige af systemet behandlede forespørgsler indenfor et givent tidsrum.
$np$
Udover denne grund fandtes en anden særdeles væsentlig grund til at konstruere
en egen statistik. For at afklare systemets ydeevne er det vigtigt at kende de målte
størrelsers afhængighed af belastningen. Belastningen af OP-systemet er næsten kun afhængig af på hvilket tidspunkt af dagen målingerne foretages. Det fra min
side udviklede program gennemløber således logfilen, og udskriver resultater som i ovenstående tabel
svarende til tidspunktet i døgnet.
$ns 1,4,5.2.Beskrivelse af KTASSTAT.$
$np$
Dette program, som er skrevet i ALGOL, er delvist udviklet af undertegnede og
dels af Bent Bæk Jensen. Programmets overordnede funktion bliver beskrevet i nedenstående.
Imidlertid vil der ikke blive lagt vægt på selve den programtekniske udformelse.
Dette skyldes, at det ligger udenfor denne opgave.
$np$
Hovedformålet med programmet er at besteme nogle centrale præstationsindeks som svartiden o.l. og bestemme deres afhængighed
af belastningen af systemet.
$np$
Programmet læser logfilen igenem og finder alle poster hørende til
det døgn, som er specificeret i programkaldet.
Programmet kan opdeles i 5 dele.
$np$$nl$
1.Oversigtstal for OP-systemets behandling af en forespørgsel.
$np$
Fromålet med denne del er at kunne beregne, hvormeget de enkelte
processer er belastet, og hvor lang tid de gennemsnitlig er om at behandle
en forespørgsel. Derudover er formålet at finde en for simulatoren
central overgangssandsynlighedsmatrix. (se afsnit 5.2.1.)
$nl2$
Ved denne del af programmet udskrives følgende størrelse for hver proces:
$sj$

ANTAL FORESPØRGSLER

SAMLET TID

GENNEMSNITLIG PROCESTID

VARIANCEN PÅ PROCESTIDEN

GENNEMSNITLIG CPUTID

VARIANCEN PÅ CPUTIDEN

GENNEMSNITLIG KØTID

VARIANCEN PÅ KØTIDEN

Derudover udskrives samlet for de 4 processer:

TOTAL PROCES TID

ANTALFEJL OG BLADNINGER

$rj$
$nl$
$nl$
Til beregning af gennemsnittet for de indgående størrelser er
følgende formel benyttet:
$nl3$
hvor n er antal observationer og ti er tiden for de enkelte observationer.
Til beregning af variancen benyttes følgende:
$nl3$
Når n er stor, som det er tilfældet her kan dette reduceres til
$nl20$
$nl$
$nl2$
2.CPU-tidsfordeling.
$np$
Ved simulatoren benyttes eksponentialfordelingen til at simulere variationen
i CPU-tiden for de enkelte forespørgselstyper. For at overskue hvor
nøjagtigt dette er udskrives for hver af de 4 processer, hvordan CPU-tiden
fordeler sig.
$nl2$
Eksempelvis ser denne udskrift ved inputprocessen ud på
følgende måde:
$sj$

CPU-TID i ms     antalforsp
0  -  5  :           0
5  -  6  :        1219
6  -  7  :       12802
7  -  8  :        5012
8  -  9  :        1820
9  - 10  :        1873
10 - 11  :         891
11 - 12  :        1356
12 - 13  :         652
13 - 14  :        1243
14 - 15  :         575
15 - 16  :         815
16 - 17  :         517
17 - 18  :          79
18 - 19  :          63
19 - ... :         115
$rj$
$nl2$
Den beregnes ved, at optælle antallet af forespørgsler der eksempelvis
har en CPU-tid mellem 6 og 7 ms.
$nl2$
3.Svartidsfordeling og udnyttelsesfordeling.
$np$
Formålet med denne del er præcist at se CPU-ens udnyttelsesgrads afhængighed af
belastningen.
Et udsnit af denne har eksempelvis følgende udseende:
$sj$

antalforsp        svartid i ms       udnyttelse af CPU
______________________________________________________

 2868               426.7                 14.4 %
 2869               441.3                 15.0 %
 3139               440.8                 16.0 %

$rj$
$nl$
Udskriften konstrueres så målingerne svarende til timerne i døgnet
udskives i stigende orden efter antallet af forespørgsler. For
hver observation, dvs. hver time udskives den gennemsnitlige svartid
og udnyttelsen af CPU-en. 
$nl2$
4.Svartidsfordeling.
$np$
Formålet med denne del af programmet er at dAnne sig et indtryk af, hvor
stor spredning, der er på svartiden. Ved mange vurderinger er man interesseret i
at en vis procentdel af samtlige forespørgsler har en svartid under et
fast antal ms. 
$nl$
Et udsnit af denne har eksempelvis følgende udseende:

$sj$

Svartid i ms       antalforsp    procent af alle    acc.procent
________________________________________________________________
0     -  249          44            40.00 %          40.00 %
250   -  499          17            15.45 %          55.45 %
500   -  749          11            10.00 %          65.45 %
750   -  999           8             7.27 %          72.73 %
1000  - 1249          10             9.09 %          81.82 %
1250  - 1499           7             6.36 %          88.18 %
1500  - 1749           3             2.73 %          90.91 %
1750  - 1999           5             4.55 %          95.45 %
2000  - 2499           2             1.82 %          97.27 %
2500  - 2749           1             0.91 %          98.18 %
2750  - 3000           1             0.91 %          99.09 %
3000  - 3249           1             0.91 %         100.00 %
3250  - 3500           0             0.00 %         100.00 %

$rj$
Denne uskrives for hver time i døgnet. Den beregnes ved at optælle
antallet af forespørgsler der eksempelvis har en svartid mellem 0 -249 ms.
Derefter beregnes, hvor stor en procentdel af alle forespørgsler dette udgør.
Kolonnen acc.procent er beregnet ved at summere antallet af forespørgsler
der har en mindre svartid, og derefter beregne, hvor stor en procentdel
af alle forespørgsler de består af.
$nl2$
5.Ydertilfælde.
$np$
Her udskrives de mindste og største værdier for den samlede svartid.
Dette gøres for hver time i døgnet og samlet for hele døgnet
$nl$
Eksempelvis har et udsnit af denne udskift følgende udseende.
$sj$
                        minimal   maksimal
mellem kl. 0. og kl. 1   38          1416

$rj$
De minimale og maksimale værdier er for svartiden.
Et eksempel på hele udskriften er vedlagt som bilag 4. Programteksten
til KTASSTAT er vedlagt som bilag 5.
$ns 1,4,5.2.1.Beregning af overgangssandsynlighedsmatrix.$
$np$
Ved konstruktionen af simulatoren er det særdeles vigtigt at kende, hvorledes
en forespørgsels vej gennem systemet er. Dvs. at følgende overgangssandsynlighedsmatrix skal findes:
$sj$


                  input   søge   opslag  output

        input       0    a(1,2)  a(1,3)   a(1,4)

        søge        0      0     a(2,3)   a(2,4)

        opslag      0      0       0      a(3,4)
   
        output      0      0       0        0

$rj$
Denne skal opfattes således at rækkeindekset angiver fra hvilken
proces forespørgslen kommer og søjle indekset angiver den modtagende proces. Dvs. at eksempelvis a(1,2) er sandsynligheden for at en forespørgsel passerer fra
inputprocessen til sogeprocessen. De i matricen indgående 0'er kan hurtigt placeres,
idet de angiver, at det er umuligt at passerer således. 
$np$
Derefter kan følgende størrelser findes direkte fra KTASSTAT.
Opsummerende kan nævnes, at de kendte størrelser er antal forespørgsler
i hver proces, og antal forespørgsler der passere fra input-  til
outputprocessen. Derudover kendes det totale antal forespørgsler.
$sj$

                    antal forespørgsler i søgeproces
        a(1,2) =    _________________________________
                      Total antal forespørgsler

                      Antalfejl og bladninger
        a(1,4) =    ___________________________________
                      Total antal forespørgsler
$rj$
$nl$
Derefter kan a(1,3) beregnes, idet summen af hver række skal være 1.
$sj$

         a(1,3) =    1 - ( a(1,2)+a(1,4))
På ækvivalent vis findes

         a(3,4) =     1
$rj$
Det er mere vanskeligt at finde a(2,3). Denne beregnes på følgende måde:
$nl$
Antallet af forespørgsler i opslagsprocessen er kendt(betegnes AO). En
forespørgsel kan kun være kommet i opslagsprocessen fra enten søgeprocessen eller input processen. Dette betyder (AS og AI betegner hhv. antal i søge og i input)
$sj$

        AO      =      a(2,3)*AS + a(1,3)*AI

og dermed er
    
                       AO  -  a(1,3)*AI
        a(2,3)  =     ____________________
                          AS
Når a(2,3) er kendt kan a(2,4) findes ved

        a(2,4)  =     1 - a(2,3).

$rj$
Eksempel:
$nl$
For tirdag den 24.03.81 gælder at
$sj$

   AI = 58832

   AS = 37716

   AO = 35422

   AOU= 58832
  
   ANTALFEJL OG BLADNINGER = 7386
Dermed får overgangssandsynlighedsmatricen følgende udseende:


           input    søge    opslag   output

   input     0      0.64     0.23      0.13

   søge      0      0        0.58      0.42

   opslag    0      0        0         1.0

   output    0      0        0         0
$rj$
$rh 1,VURDERING AF OP-SYSTEMET$
$ps0$
$ns 1,4,6.Vurdering af OP-systemet.$
$np15$
Dette afsnit indeholder vurderingen af OP-systemet. Afsnittet er disponeret så
afsnit 6.1 beskriver resultaterne opnået ved et elektronisk ur benyttet på 
hele systemet. Ud fra dette begrundes, hvorfor den egentlige vurdering drejer
sig om RC8000-delen af OP-systemet. Afsnit 6.2 giver en vurdering af OP-systemet ud fra målinger i logfilen.
Afsnit 6.3 beskriver derefter, hvilke resultater der er opnået ved hjælp af den konstruerede 
simulator. Afsnit 6.4 illustrerer de teoretiske modeller, der er betragtet.
$ns 1,4,6.1.Afgrænsning af evalueringsstudiet.$
$np$
Ved vurdering af OP-systemet er foretaget en del begrænsninger. Disse begrænsninger
foretages således, at evalueringen kan koncentreres om centrale enheder i systemet.
Begrænsningerne kommer dels fra at systemet indeholder mindre betydende enheder
og dels fra at de eksisterende måleredskaber kun kan anvendes på dele af systemet.
$np$
Ved OP-systemet eksisterer et måleredskab til RC8000-delen (logfilen), der er velegnet
til fremskaffelse af oplysninger om systemets opførsel. Ved RC3500-delen eksisterer
denne mulighed ikke. Da det endog viste sig umuligt at konstruere et anvendbart
program til at finde en forespørgsels svartid i RC3500, er mulighederne for
målinger på OP-systemets RC3500-del begrænset til maskinelredskaber.
$np$
Ved hjælp af et elektronisk ur kan en forespørgsels samlede svartid findes. Der
er derfor foretaget nogle målinger med dette ur. Ud fra disse målinger
kan beregnes, hvor meget tid de enkelte dele af OP-systemet anvender til
behandling af en forespørgsel.
$nl$
Nedenståedne tidslinie angiver, hvordan svartiden for en forespørgsel kan opdeles.
$sj$
  Forespørgslen afsendes.             Forespørgslen modtages.
  
  !---!---!---!------------------------------!---!---!---!
   TP   NP  FP         RC8000                  FP  NP  TP

                     Figur 6.1.1.
$rj$$nl$
De på figuren anførte forkortelser er betegnelser for de 3 RC3500, og betyder
følgende:
$sj$

       TP = Terminal Processor
       NP = Network Processor
       FP = Front-end Processor
$rj$$np$
Målingerne ved uret finder netop længden af denne tidslinie. I logfilen kan
svartiden i RC8000 findes. Ved at subtrahere disse størrelser beregnes,
hvor lang tid en forespørgsel benytter i de 3 RC3500 tilsammen.
$np$
Fra en OPSTAT fra samme tidsperiode findes den gennemsnitlige svartid for
de 5 mest benyttede forespørgselstyper. Disse er angivet i tabel 6.1.1. Ud
over den gennemsnitlige svartid for en forespørgselstype er antallet og
hyppigheden for forespørgselstyperne angivet.
$sj$

                     Antalforsp.   Hyppighed i %   Gnst. svartid

Gennemført søgeforsp.   19625         35.6 %          884 ms
Afvist søgeforsp.       15155         27.5 %          589 ms
Bladn.+Hemmnr.+Fejl      7247         13.1 %           57 ms
Gennemført tlfnrforsp.  12228         22.2 %          183 ms

Afvist tlfnrforsp.        873          1.6 %          141 ms
____________________________________________________________

Ialt                    55128         100.0 %         526 ms
=============================================================

                      Tabel 6.1.1.
$rj$$nl$
I tabellen er den gennemsnitlige svartid ved linien ialt vægtet efter
hyppighed af forespørgselstype.
$nl$
For hver af disse forespørgselstyper er nu foretaget 5 observationer. Hver
observation bygger på, at en forespørgsel er sendt 50 gange og svartiden er noteret.
$np$
Tabel 6.1.2 viser resultaterne, hvor den gennemsnitlige svartid for de 5 observationer er fundet.
Ligeledes her er den gennemsnitlige svartid ved linien ialt vægtet efter hyppighed
af forespørgselstypen. For hver linie i tabellen er angivet den procentvise fordeling
af svartiden i RC8000 og i RC3500.
$sj$
                Samlet svartid  Svartid i RC8000  Svartid i RC3500

Gennemført søgeforsp.  1027.4 ms      884 ms          143.4 ms
Procentlig fordeling    100 %          86.0 %          14.0 %

Afvist søgeforsp.       857.2 ms      589 ms          268.2 ms
Procentlig fordeling    100 %          68.7 %          32.3 %

Blad.+Hemmnr.+Fejl.     455.6 ms       57 ms          398.6 ms
Procentlig fordeling    100 %          12.5 %          87.5 %

Gennemført tlfnrforsp.  521.9 ms      183 ms          338.8 ms
Procentlig fordeling    100 %          35.0 %          65.0 %

Afvist tlfnrforsp.      435.5 ms      141 ms          291.5 ms
Procentlig fordeling    100 %          32.4 %          67.6 %
_______________________________________________________________

Ialt                    783.8 ms      526 ms           256.9 ms
Procentlig fordeling    100 %          67.0 %           33.0 %
================================================================

                      Tabel 6.1.2.
$rj$$nl$
Resultaterne viser ved det samlede gennemsnit for alle forespørgselstyper, at
den meste tid for en forespørgsel foregår i RC8000. For de hyppigst
forekommende forespørgsel(søgeforspørgsler) er dette endnu mere udpræget.
Tabellen viser at samlet for de 5 forespørgselstyper benyttes over
dobbelt så meget tid i RC8000 end i RC3500 til behandling af en forespørgsel.
På denne baggrund bør en evaluering af OP-systemet koncentreres om en RC8000.
Under evalueringen af en RC8000 har det vist sig at ovenstående tabel endda er ret
unøjagtig.
Målingerne ved det elektroniske ur er foretaget en hverdag mellem 9.30-14.30.
Dette er det tidspunkt på dagen, hvor OP-systemet er mest belastet. Fra
senere undersøgelser se figur 6.2.1 kan anføres, at antallet af forespørgsler pr time
i det anførte tidsrum er mindst 10.000. Målingerne er udført i efteråret 1980,
hvor der til OP-systemet anvendtes 2 RC8000. Det vil sige, der er mindst
5000 forespørgsler pr time til en RC8000. Ved dette antal vil den gennemsnitlige
svartid for en forespørgsel ikke være 526 ms, men mindst 650 ms (se figur 6.2.5).
$np$
Udover dette faktum er der en anden fejlkilde til den gennemsnitlige
svartid i RC8000. Tiden en forespørgsel står i kø til den første proces i RC8000
(inputprocessen) medregnes ikke i den gennemsnitlige svartid som måles i logfilen.
Denne størrelse kan ved en belastning på 5000 forespørgselr pr time og en monitorskiftetid på 1.5 ms, mindst sættes til 5 ms. Den gennemsnitlige svartid for samtlige
forespørgselstyper, svarende til tidspunktet, hvor målingerne er foretaget, kan
således mere præcist angives til 655 ms.
 Med denne svartid i RC8000 bliver den procentvise fordeling af
 svartiden i RC8000 og RC3500 en anden og den er vist i tabel 6.1.3.
$sj$
                  Samlet svartid    Svartid i RC8000 Svartid i RC3500

For samtlige forsptyper  738.8 ms       655 ms          128.8 ms
Procentlig fordeling     100 %           83.6 %          16.4 %

                         Tabel 6.1.3
$rj$$nl$
De i tabel 6.1.3 anførte svartider kan ikke findes for de enkelte forespørgselstyper.
Med de i tabellen anførte svartider i RC8000 og RC3500
betragtes nu hele OP-systemet som vist på figur 6.1.2. Forkortelserne anført på
figuren står for det samme som angivet ved tabel 6.1.1.
$nl15$
$sj$
                     Figur 6.1.2.
$rj$
$np$
Hele systemet betragtes i en hårdt belastet time for at finde udnyttelsesgraden af de indgående enheder.
Da de 3 RC3500 til sammen benytter 128.8 ms, antages at hver benytter 42.9 ms. Fra
en KTASSTAT den 24.04.81 kan udnyttelsen af de 3 RC8000 i den hårdest belastede 
time (mellem 10-11) findes til 66.9 %. Hvis det antages at forespørgselrne
fordeles ligeligt mellem de 3 RC8000 så fås at udnyttelsesgraden af hver til 22.3 %. Udnyttelses af de RC3500 betegnet FP og NP fås nu ved
$sj$

            13107 * 42.9
            ____________   *   1/2   =  7.8 %
              60*60*1000
$rj$
Der multipliceres med 1/2, idet der findes 2 af hver RC3500. For RC3500 betegnet
TP findes udnyttelsesgraden til 1.0 %, idet der mindst findes 15 af denne type.
$np$
Begrundelsen  for kun at betragte OP-systemets RC8000-del ved resten af evalueringen, kan nu på baggrund af ovenstående opsummeres i
 følgende punkter:
$sb ^,6$
$lm20$$nl$
$lt 1,^^^1)$
En RC8000 er den enhed med maksimal udnyttelsesgrad ( 3 gange så stor som 
andre enheder). 
$nl$
$lt 1,^^^2)$
RC8000 benytter mest tid til at behandle en forespørgsel.
$nl$$lt 1,^^^3)$
I RC8000 findes i modsætning til RC3500 et udmærket måleredskab (logfilen) til 
en evaluering.
$lm0$
$ns 1,4,6.2.Vurdering af OP-systemet ud fra målinger i logfilen.$
$np$
Dette afsnit indeholder vurderingen af en RC8000 koblet til OP-systemet.
Vurderingen i dette afsnit bygger på målinger foretaget i logfilen.
Afsnittet indledes med et beskrive, hvilke målinger der er foretaget. Derefter angives,
hvilken belastning en RC8000 udsættes for. Så følger en analyse af de betragtede præstationsindeks afhængighed af belastningen. Herefter undersøges, hvordan
de indgående programmel- og maskinelenheder udnyttes, Til sidst i afsnittet gives
en samlet vurdering af OP-systemet RC8000-del, hvori hovedvægten lægges på systemets opførsel i en hårdt belastet time.
$np$
Ud fra vurderingen i dette afsnit vil det fremgå, hvilke enheder, der bevirker en formindskelse i systemets ydeevne. På baggrund af disse betragtninger, vil en række forbedringsforslag til OP-systemet kunne opstilles. Disse forbedringsforslag
vil blive afprøvet ved hjælp af simulatoren, og det beskrives i afsnit 6.3, 
hvad der herved opnås.
$ns 1,4,6.2.1.De foretagne målinger.$
$np$
Målingerne i logfilen er foretaget ved hjælp af to programmer OPSTAT 
og KTASSTAT, de findes beskrevet i afsnit 5.
 Ved kørsler med programmet KTASSTAT 
har været en del problemer som skyldes følgende:
$nl$
Logfilen til RC8000 kan indeholde information for enten 3 eller en maskine. Når logfilen
gennemløbes er det ikke muligt at se på hvilken måde logfilen er dannet. Den 
normale brug af logfilen er, at den indeholder transaktioner fra 3 maskiner. En sådan 
logfil kan kun anvendes meget lidt ved denne vurdering. Dette
skyldes, at evalueringen bl.a. skal undersøge, hvordan RC8000 opfører sig, når
belastningen øges. I en logfil med transaktioner fra 3 maskiner kan det ikke ses
på hvilken maskine transaktionen er udført. Da transaktionerne ikke fordeles ligeligt
mellem de 3 RC8000 vil belastningen for hver maskine således være forskellig. 
Når en RC8000 undersøges, benyttes derfor kun oplysninger dannet fra transaktionerne
på en maskine.
$np$
Begrundelsen for, hvorfor fordelingen af transaktioner ikke sker, således at hver
RC8000 modtager lige mange forespørgsler er angivet i afsnit 3.
$np$
Den efterfølgende vurdering bygger på 6 kørsler med KTASSTAT foretaget på en logfil med en maskines transaktioner, 1 kæørsel med KTASSTAT og en OPSTAT på en logfil
med 3 maskiners transaktioner. De 6 første kørsler er fra mandag den 23.03.81-fredag den 27.03.81 og mandag den 30.03.81. De 2 sidste kørsler er fra fredag den 24.04.81.
$np$
Kørslerne fra logfilen med 3 maskiners transaktioner benyttes til at beskrive antallet af forespørgslers fordeling i timer af døgnet, og til at finde,
hvordan svartiden er for de forskellige forespørgselstyper.
$np$
De 6 kørsler anvendes til at beskrive en RC8000 opførsels afhængighed af belastningen. 
Det bemærkes, at ikke alle disse kørsler er fuldstændige. Ved nogle kørsler
findes timer, hvor ingen forespørgsler er registeret. Dette skyldes, at den 
RC8000 logfilen bygger på, har været ude af funktion i pågældende time.
$ns 1,4,6.2.2.Belastningen af en RC8000 til OP-systemet.$
$np$
I afsnit 5.2 er beskrevet, hvordan belastningen til en RC8000 betragtes. Opsummerende
kan her anføres, at belastningen består af et antal forespørgsler og disse
forespørgslers karakteristika. Forespørgslernes karakteristika beskrives
dels ved deres vej gennem systemet og dels ved deres CPU-forbrug. En forespørgsels
vej gennem systemet er en måde at angive forespørgselstypen.
$np$
Nedenstående analyse af belastningen opdeles på ækvivalent måde, dvs. først
betragtes, hvormange forespørgsler systemet modtager i løbet af døgnet, og derefter
beskives forespørgslernes art og tidsforbrug.
$np$
Figur 6.2.1 viser et histogram over forespørgslernes antal fordelt på et døgn.
Ud af X-aksen er angivet klokkeslet i døgnet, og Y-aksen angiver antallet af forespørgsler.
Eksempelvis kan ses, at mellem kl. 10.00-11.00 er ankommet 13107 forespørgsler.
Figuren bygger på KTASSTAT fra den 24.04.81. 
$np$
Figuren viser, at aktiviteterne  til OP-systemet i nattetimerne (23.00-7.00)
 er særdeles begrænset.
 Her ankommer aldrig mere end 500 forespørgsler i timen.
 Aktiviteterne i dag- og aftentimerne er derimod mere hyppig. Kurven viser, at
den hårdest belastede time (eng. Peak-time) er mellem kl.10.00-11.00, hvor
der til OP-systemet sendes 13107 forespørgsler. Dette svarer til, at hver tasteoperatør
i gennemsnit afsender en forespørgsel for hver 35 sekund. Når en person ringer
til telefonnummeroplysningen giver dette i gennemsnit anledning til 2.5 forespørgsler. Dvs. telefonnummeroplysningen i den mest belastede time behandler 4369
spørgsmål.
$np$
Kurven figur 6.2.1 viser endvidere at belastningen af systemet er størst i
tidsrummet mellem 9-16. I denne periode sker et lille fald i aktiviteterne
omkring forkost (12-13). Dette er ikke så tydeligt på figuren, men det vides
fra KTAS's egne statistikker at det normalt er mere udpræget.
$ps0$$ps0$
$np$
OP-systemets RC8000-dels reaktionsevne på dette antal
 forespørgsler afhænger nu udover transaktionernes antal af forespørgslers art.
 Til betragtning af deres art beregnes en overgangssandsynlighedsmatrix se afsnit 5.2.1. Matricen, som er fundet ud fra samtlige
forespørgsler (129185) den.24.04.81. har følgende udseende:
$sj$

              input  søge   opslag  output
   
    input      0      0.66   0.21    0.13

    søge       0      0      0.52    0.48

    opslag     0      0      0       1
 
    output     0      0      0       0
$rj$$nl$
Matricen skal nu opfattes på følgende måde: Rækkeindeks angiver fra hvilken proces
forespørgslen afsendes, og søjleindekset angiver, hvilken proces forspørgslen
modtages af.
$np$
Dvs. der har været 66 % søgeforespørgsler, hvoraf 58 % er gennemførte og
42 % afviste. Matricens afhængighed af antallet af forespørgsler pr time,
kan findes. Det viser sig, at matricen er særdeles konstant, hvilket egentlig
også kunne forventes. Spredningen for tallene i matricen er meget lille. Hvis
matricen beregnes for hver time i døgnet findes, at spedningen er følgende:
$sj$

      input -> søge  0.04
      input ->opslag 0.04
      input ->output 0.04
      søge  ->opslag 0.03
      søge  ->output 0.03
$rj$
At den maksimale spedning er 0.04 skyldes, at matricen for timer med mindre end
1000 forespørgsler variere en del. Hvis spedningen beregnes svarende til timer,
hvor antallet af forespørgsler er mere end 1000, så findes den maksimale spedning
til 0.016. Her bygger spedningen på 99.1 % af døgnets forespørgsler. Timerne
hvor antallet af forespørgsler er mindre end 1000 udgør således en meget lille
del af samtlige forespørgsler.
$np$
Konkluderende kan således siges, at forespørgselsmønsteret ikke afhænger af tidspunktet på dagen, og det er særdeles konstant.
$np$
Udover forespørgslernes art er den sidste faktor, der har indflydelse på belastningen
af en RC8000, forespørgslernes ressourcekrav. Nedenstående vil først belyse deres CPU-tidskrav i de enkelte processer, og derefter vil ressourcekrav
til ydre enheder blive belyst.
$np$
Det gennemsnitlige CPU-tidskrav for en forespørgsel kan findes direkte fra logfilen.
For de fire processer er den gennemsnitlige CPU-tid følgende:
$sj$

      CPU-tid i inputproces  = 16.3   spredning =    5.51
      CPU-tid i søgeproces   =179.74  spredning =  300.46
      CPU-tid i opslagproces = 68.08  spredning =  103.38
      CPU-tid i outputproces =  9.05  spredning =    6.23
$rj$$nl$
Det ses, at søgeprocessen benytter mest CPU-tid. CPU-tiden i input- og
outputprocessen udgør en lille procentdel af den samlede svartid ( hhv. 2.8 og
1.6 %).
$np$
Da der er særdeles stor spedning på CPU-tiden betragtes nøjere, hvordan CPU-tiden fordeler sig.
 Figur 6.2.2 viser, hvordan fordelingen af CPU-tiden er i input-  
og outputprocessen.
$np$
Fordelingen er fundet ved at optælle antallet af forespørgsler, hvis
CPU-tid er i et interval eks. 10-11 ms. På figuren angives ud af
X-aksen CPU-tiden og ud af Y-aksen anføres sandsynligheden for at
forespørgslens CPU-tid befinder sig i intervallet. Kurven viser
således fordelingsfunktionen fo CPU-tiden.
$ps0$$ps0$$ps0$
$np$
Kurven for inputprocessen viser, at de fleste forespørgsler har et
ret konstant CPU-forbrug. Således har 84.9 % af samtlige forespørgsler
en CPU-tid mellem 12 og 19 ms. Dette kendetegnes også ved, at der for
CPU-tiden i inputprocessen er en lille spredning.
$np$
Kurven for CPU-tiden i outputprocessen viser næsten samme billede. Her har
79.1 % af samtlige forespørgsler en CPU-tid mellem 5-10 ms. Det
bemærkes, at punktet i cirklen på kurven for outputprocessen stammer fra forespørgsler, hvis CPU-tid er større end 14 ms. 
$np$
For søge- og opslagprocesserne findes kurverne på figur 6.2.3. Kurven for
CPU-tiden i søgeprocessen ligger tæt på eksponentialfordelingen med samme
middelværdi(179.74). Denne er på figuren angivet som en stiblet linie.
Ud fra kurven kan ses, at 70.7 % af samtlige forespørgsler har en CPU-tid mindre end 180 ms. Det mest  iøjnefaldende for kurven er, at den har et faldende
forløb, og ikke afspejler at søgeprocessen behandler forskellige forespørgselstyper.
$np$
Kurven svarende til CPU-tiden for opslagprocessen viser ligeledes, at den ligger tæt
op ad eksponentialfordelingen. Dette kan undre en del, da opslagprocessen
både behandler gennemførte søgeforespørgsler og tlfnrforspørgsler. Disse to
forespørgselstyper adskiller sig ved, at tlfnrforspørgsler maksimalt kun har en kandidat og
gennemførte søgeforespørgsler i gennemsnit har 7.5 kandidater. Man kunne
derfor forvente, at kurven for CPU-tiden ville have
to toppunkter svarende til de to forespørgselstyper.
$np$
En samlet vurdering af CPU-forbruget er, at fordelingen af CPU-tiden i de enkelte
processer ikke viser, at de forskellige forespørgselstyper adskiller sig i
et specielt CPU-forbrug.
I resten af vurderingen,
 hvor nogle præstationsindeks afhængighed af belastningen betragtes,
 vil belastningen blive angivet ved antallet af forespørgsler pr.
time. Dette gøres, fordi det er eneste størrelse i belastningen, der direkte ændres.
$ps0$
$ps0$
Figur 6.2.4 viser en kurve over det gennemsnitlige CPU-forbrug for en forespørgsel. Ud af X-aksen er angivet antallet af forespørgsler pr time, og Y-aksen
angiver den samlede CPU-tid for en forespørgsel. (summen af CPU-tiden i de 4 processer.)
Kurven er fremkommet ved at samle antallet af timer, hvor antallet af 
forespørgsler er mellem 0-500, 500-1000 ovs. Ud fra disse timer findes, så
først det gennemsnitlige antal forespørgsler og derefter findes den gennemsnitlige CPU-tid. Figuren er tegnet på grundlag af KTASSTAT fra den 23.03 og 24.03.
Grunden til at kruven ikke er tegnet for hver proces er, at de viser same billede som på figuren. Punktet svarende til et gennemsnit på 70.3 forespørgsler pr time
er noget misvisende, idet variationen på målingerne her er særdeles stor. De
ligger i intervallet 176.0 - 588.2 ms.
$np$
Figuren viser, at der er særdeles stor variation i CPU-tiden. Derudover ses,
at CPU-tiden ikke afhænger af antallet af forespørgsler. Dette er således en
yderligere begrundelse for,
 at når præstationsindeks afhængighed af belastningen betragtes,
 angiver antallet af forespørgsler pr time et præcist mål 
for belastningen.
Udover en forespørgsels CPU-tid hører til deres ressourcekrav også, hvormange
pladelagertilgange de anvender. Denne størrelse er dog ikke målelig i logfilen.
I afsnit 3 er dog angivet en metode, hvor antallet af pladelagertilgang kan 
findes. For søgeprocessen er dette fundet til 13.9 og for opslagprocessen er
det  5.5. Det er ikke muligt at angive, hvor stor spedning der er på disse
tal.
$np$
Konkluderende om belastningen kan nu på baggrund af ovenstående anføres. Forespørgslernes art
er uafhængig af, hvormange forespørgsler, der modtages. Input- og outputprocessen er
de forespørgsler der benytter mindst CPU-tid. Søgeprocessen benytter mest CPU-tid. Den procentvise fordeling af CPU-tiden er input = 6 %, søge = 65.8 %, opslag = 24.9 % og output = 3.3 %. Når belastningen af systemet betragtes i det følgende,
vil den blive kvantificeret som antallet af forespørgsler ankommende i en time.
$ns 1,4,6.2.2.Præstationsindices afhængighed af belastningen.$
$np$
Først betragtes den gennemsnitlige svartids afhængighed af belastningen.
Derefter bliver den gennemsnitlige svartid opdelt, således at tidsforbruget
i de enkelte processer anskueliggøres.
$np$
Figur 6.2.4 viser, hvordan svartiden afhænger af antallet af forespørgsler.
Kurven er konstrueret på grundlag at samtlige kørsler med KTASSTAT på en maskine.
For ikke at få et uoverskueligt antal punkter er observationerne samlet således
at alle timer med et antal forespørgsler på mellem 0-249,250-499,ovs er samlet til et punkt.
Svarende til punktet med mellem 0 og 249 forespørgsler pr time er der særdeles
stor variation, så den gennemsnitlige svartid er her noget misvisende.
$np$
Kurven viser, at den gennemsnitlige svartid stiger i forhold til antallet af 
forespørgsler. Ved lave belastninger er variationen på svartiden stor.
Dette kommer ikke fra at forespørgselstyperne er forskellige ved denne belastning, men må komme fra at antallet af kandidater til forespørgslerne variere meget.
For yderligere at anskuelig gøre, at den gennemsnitlige svartiden stiger i timer, hvor
antallet af forespørgsler er stort er på figur 6.2.5 angivet, hvordan
svartiden fordeler sig ved to timer. Den ene time svarer til at der er modtaget
1210 forespørgsler. Ved denne belastning besvares 95 % af forespørgslerne
under 1250 ms. Den anden kurve svarer til en belastning på 5733 forespørgsler
i en time. Det ses at her besvares kun 82 % af forespørgslerne under 1250 ms.
$np$
Ved en belastning på over 5000 forespørgsler i en time vil 55 % af forespørgsler besvares indenfor 500 ms. Ved en belastning på under 1500 forespørgsler 
besvares 75 % af forespørgslerne under 500 ms. Det er således klart, at
svartiden stiger, når antallet af forespørgsler i en time forøges. Dette
er naturligvis også, hvad der kunne forventes, og det interesante er,
hvilke størrelser i svartiden der stiger kraftigt når belastningen til
systemet øges.
Fra afsnittet om belastningen vides, at CPU-tiden forøges ikke væsentligt.
Der er således to andre størrelser som bør betragtes. Dette er procestiden,
dvs. den tid en forespørgsel befinder sig under behandling i en proces, og
køtiden, den tid en forespørgsel opholder sig i kø til en proces.
$np$
Kurven figur 6.2.6 viser, hvordan procestiden i input- og outputprocessen
forløber når antallet af forespørgsler forøges. På figuren er ud af X-aksen
angivet antallet af forespørgsler pr time og Y-aksen angiver procestiden i ms.
$np$
For begge processer viser kurven et stigende forløb. At procestiden stiger
når antallet af forespørgsler stiger virker ret rimeligt. Når der er
ringe belastning til systemet vil en proces kunne behandle en forespørgsel,
uden at andre processer har nogle forespørgsler at behandle. Når derimod
belastningen øges, vil en anden proces kunne behandle en forespørgsel,
hvis pågældende proces skal anvende ydre enheder. Forøgelsen i
procestiden ved input- og outputprocessen stammer fra at de to andre processer
vil være aktive under behandlingen af en forespørgsel.
$np$
For både input- og outputprocessen gælder at procestiden forøges, men
deres indflydelse på den samlede svartid er stadig ringe. Det bemærkes, at
der ikke til inputprocessen er koblet et pladelager så forøgelsen af procestiden
stammer her kun fra at systemet er multiprogrammeret. 
$np$
Da procestiden i input- og outputprocestiden har særdeles ringe indflydelse på
den samlede svartid, er det mere interessant at betragte procestiden i søge- og
opslagsprocessen. Figur 6.2.7 viser således procestiden i hhv. søge- og
opslagprocessen. 
$np$
For søgeprocessen viser kurven ikke nogen speciel stigning i forhold til antallet 
af forespørgsler. Det første punkt, som ligger langt over de andre punkter
må anses for en statistisk tilfældighed. For opslagprocessen viser
kurven en noget mere udpræget stigende tendens.
$np$
Hele tendensen fra disse kurver på  figur 6.2.6 og 6.2.7  er, at processer der benytter lidt CPU-tid
input og output og delvist opslag viser en stigende tendens for procestiden
når antallet af forespørgsler forøges. For søgeprocessen har multiprogrammeringsgraden
ikke samme indflydelse på procestiden. Konklusionen af disse kurver  
er, at den forholdvis store forøgelse i svartiden ikke
kan forklares ved at procestiden  forøges.
$np$
Figur 6.2.7 viser, hvordan køtiden ved søge- og opslagprocessen afhænger af
belastningen. Kurven for køtiden ved søgeprocessen viser klart en stigende tendens. Køtiden bliver ved denne proces en betydende faktor i den gennemnsitlige svartid.
Ved en belastning på 6305 forespørgsler udgør køtiden 44.6 % af svartiden ved søgeprocessen.
Køtiden ved opslagprocessen stiger ligeledes, men tidmæssigt har denne størrelse
ikke så stor indflydelse på svartiden.
$np$
Ved en belastning på 6305 forespørgsler pr time er udnyttelsesgraden af CPU-en på 31.8 %, så det kan undre en hel del at det er nødvendigt at en forespørgsel står
så lang tid i kø til en proces. Det burde være muligt at udnytte CPU-en bedre til behandling af forespørgsler. For at kunne komme med nogle forslag til forbedring
af systemet vil udnytelsen af en RC8000 i en hårdt belastet time blive betragtet
nøjere.

En time hvor antallet af forespørgsler er 5733 betragtes nu. Her er udnyttelses af
de 4 processer følgende:
$sj$
        input     =  2.6 %
        søge      = 19.0 %
        opslag    =  6.8 %
        output    =  1.5 %
$rj$$nl$
For at kunne beregne den totale udnyttelse af CPU-en er det nødvendigt at
finde, hvor stor en del monitoren benyttes. Det vides ikke, hvor lang
tid monitoren er om at skifte mellem 2 processer.
Ved at betragte timer, hvor belastningen en ringe dvs. der kommer under 1000
forespørgsler i en time, er det muligt at angive, hvor lang tid
en forespørgsel er om at skifte mellem to processer. Dette kan ses på køtiden.
Ved en lille belastning skulle forventes, at køtiden er 0, men her må køtiden
kunne opfattes som den tid en forespørgsel er om at skifte mellem to processer.
Der opnås da følgende:
$sj$

      køtid ved søge  = ca. 4.2 ms
      køtid ved opslag= ca. 4.2 ms
      køtid ved output= ca. 7.0 ms
$rj$$nl$
Ved at beregne ud fra antallet af forespørgsler ved hver proces, hvor tit
en forespørgsel skifter mellem de enkelte processer fås da at udnyttelsen
af monitoren ved en belastning på 5733 er 1.8 %. Den samlede CPU-udnyttelse
findes derved til 31.7 %. Dette må siges at være særdeles lille i betragtning
af at den gennemsnitlige svartid ved denne belastning er 686.8 ms. Ved en
gennemsnitlig belastning på 2000 forespørgsler pr. time er den gennemsnitlige svartiden ca. 430 ms.
$np$
Ved belastningen på 5733 forespørgsler er den minimale svartid 11 ms og den maksimale
er 9.7 s. Derudover besvares 97 % af forespørgslerne under 2.5 s. 
$np$
Svarende til denne belastning vil det være interessant at finde udnyttelsen af
de ydre enheder koblet til RC8000. Ud fra at det gennemsnitlige antal
pladelagertilgange ved søgeprocessen i afsnit 3 er fundet til 13.9 er 
udnyttelsesgraden af søgedisken på 24.1 %. 

Dette tal er fundet ud fra at en pladelager tilgang i gennemsnit
benytter 8.3 ms til overførsel af data og 8 ms til positionering
af diskarm. 
For opslagdisken findes en udnyttelse på 9.0 % og outputdisken udnyttes 0.2 %.
Udnyttelsen af datakanalen er fundet til 16.1 %, dette under forudsætning
af en overførsel tager gennemsnitlig 8.3 ms.
$ns 1,4,6.3.Vurdering af OP-systemet ved hjælp af en simulator.$
$np$
Dette afsnit beskriver de resultater der er opnået i fobindelse
med kørsel med den udviklede simulator. Simulatoren er beskrevet
i en selvstændig opgave, som er vedlagt denne opgave som bilag.
Det kan her opsumeres, at det er lykkedes at gøre simulatoren ret
nøjagtig. Således er der ved en belastning på 2000 forespørgler en
afvigelse på den gennemsnitlige svartid på 0.1 %. Ved 6000 forespørgsler
er afvigelsen på den gennemsnitlige svartid på 4.9 %. Hvis en kurve for
konstrueres
svartiden udvikling når belastningen øges, har det derudover vist sig
at simulatorens resultater for den gennemsnitlige svartid ligger tæt
op ad resultaterne der er opnået ved målinger i logfilen.
$np$
Ud fra målinger i logfilen har det vist sig, at den
maksimale udnyttelsesgrad af en RC8000, er 31.8 %. Dette svarer til en belastning
på 6493 forespørgsler. Svarende til denne belastning findes en gennemsnitlig svartid på 739.5 ms.
I betragtning af den lave udnyttelsesgrad af RC8000 er denne svartid ret stor.
Specielt i forhold til at den gennemsnitlige svartid over et helt døgn er
574.5 ms.(Den 24.04.81) Ved hjælp af simulatoren vil det blive forsøgt afklaret, hvad
baggrunden er for at CPU-en ikke udnyttes bedre. Der er således foretaget en serie kørsler med simulatoren for at afklare, hvordan den gennemsnitlige svartid
afhænger af antallet af forespørgsler pr time. Ved disse kørsler er en RC8000
udsat for væsentlig større belastninger end den vil være ved OP-systemet. 
$np$
Svarende til at CPU-tidskravet og antallet af pladelagertilgange er det samme
som ved OP-systemet viser figur 6.3.1, hvordan den gennemsnitlige svartid forøges,
når antallet af forespørgsler i en time forøges. På figuren er antallet af forespørgsler angivet ud af X-aksen, og den gennemsnitlige svartid er anført op ad Y-aksen. 
Kurven viser, at den gennemsnitlige svartid stiger særdeles kraftigt,
når antallet af forespørgsler pr time er over 8000. Således er den gennemsnitlige
svartid svarende til 8000 forespørgsler = 868.9 ms. Når belastningen øges til
10.000 forespørgsler er svartiden 1528.7 ms. Fra dette punkt sker nærmest en eksposiv stigning, idet ved 11.605 forespørgsler pr time er svartiden 58.708.9 ms,
altså 58.7 s. 
$np$
Kurvens forløb viser derfor tydeligt, at der findes en lodret asymptote, der
ligger lidt over 12.000 forespørgsler pr time. Det er ikke muligt at undersøge dette
nærmere ved simulatoren, idet ved en belastning på 13.000 forespørgsler upstår
så lange kølængder, at simulatoren ikke kan køre. Dette skyldes, den begrænsede
lagermængde man får tildelt ved kørsler på RECKU. 
$np$
Ud fra kurven kan således påstås, at en RC8000 koblet til OP-systemet maksimalt 
kan behandle op til 12.000 forespørgsler. Ved denne belastning vil
svartiden i RC8000 være så stor, at det vil være til særdeles stor
irritation for tasteoperatørene.
$np$
Svarende til denne kurve vil det være særdeles interessant, at betragte
belastningen af CPU-en.
Figur 6.3.2 viser, hvordan CPU-udnyttelsen afhænger af antallet af forespørgsler.
Udnyttelsesgraden af CPU-en er fundet ved at summere CPU-udnyttelsen fra de
4 processer, og udnyttelsen af monitoren.
 Det bør her bemærkes, at udnyttelses
af monitoren er fundet under den forudsætning, at det tager 1.5 ms at skifte mellem
to processer. Det viste sig at med denne skiftetid blev resultaterne fra simulatoren
mest nøjagtig.
 Det bør her anføres,
Til dette bemærkes,
 at det ud fra målinger i logfilen ved meget
små belastninger kan ses at når en forespørgsler passerer mellem to processer, vil denne skiftetid være større. Antallet af gange en forespørgsel skifter
mellem to processer kan ved en belastning på 5733 findes til 12.931. Svarende til
en belastning på 6142 forespørgsler er antallet af processkift i simulatoren målt
til 131.893. Dvs. at antallet af processkift stammende fra, at monitoren skifter
den kørende proces på grund af enten processen ønsker pladelager eller processen
bliver afbrudt af et tidsinterrupt er dermed
 væsentligt større end processkift stammende fra
at en forespørgsel skifter mellem to processer. Det antages derfor at
udnyttelsesgraden af monitoren ved simulatoren beregnes rigtigt.
$np$
Kurven figur 6.3.2 viser nu ud af X-aksen antallet af forespørgsler og op ad
Y-aksen angives udnyttelsesgraden af CPU-en. Kurven tilnærmer sig en lineær
funktion. 
For at finde, hvilken linie der er tale om er den gennemsnitlige CPU-tid
for en forespørgsel samlet for de 4 processer beregnet. Dette er fra den
24.04.81 fundet til 209.8 ms. På figur 6.3.2
er den stiblede linie tegnet ud fra dette CPU-forbrug. Linien er
tegnet ud fra følgende formel:

$sj$
              antalforsp * 209.8 ms
              ______________________
                60 * 60 * 1000
$rj$
Svarende til denne linie vil en udnyttelse på 100 % af CPU-en opnås ved
17160 forespørgsler pr time. Det virker dog særdeles rimeligt at en RC8000
ikke kan behandle dette antal, da de indgående kølængder bliver for store.
Med den konstruktion som OP-systemet idag har på en RC8000, kan det således påstås,
at en udnyttelse på CPU-en på 100 % ikke kan forekomme.
$np$
For at komme med forbedringsforslag til OP-systemet er det nødvendigt at betagte
andre størrelsers afhængighed af belastningen.
Det viser sig, at køtiden ved søgeprocessen har den kraftigste stigning i forbindelse
med at belastningen øges. Figur 6.3.3 viser, hvorledes køtiden ved søgeprocessen
afhænger af belastningen. X-aksen angiver antallet af forespørgsler pr time og
Y-aksen angiver køtiden i ms. Køtiden er ved en belastning på 10048 forespørgsler
1791.2 ms. Dette er større end den gennemsnitlige svartid som ved samme belastning er 1653.4 ms. 
Til dette kan anføres, at ikke alle forespørgsler er søgeforespørgsler (kun 66 %), og andre forespørgselstyper vil ikke stå i kø til søgeprocessen. En tlfnrforespørgsel vil ved en tilsvarende belastning kun stå i kø til opslagsprocesen
i 35.5 ms.
 
Ved køtiden i opslagprocessen er
 simulatoren  ikke så nøjagtig som den 
burde. Målinger har vist køtiden ved opslagsprocessen skal være væsentlig
større. 
$np$
Til kurven på figur 6.3.3 kan tilføjes,
 at kølængden ved søgeprocessen stiger tilsvarende.
 Ved en belastning på 500 forespørgsler er den gennemsnitlige kølængde
til søgeprocessen
 på 1.8 og ved en belastning
på 11605 forespørgsler er kølængden 199.0. Et forbedringsforslag til systemet vil 
på baggrund af de indtil nu anførte kurver skulle være at forbedre søgeproccessen.
$np$
Inden egentlige forbedringsforslag anføres vil det blive beskrevet, hvorledes systemet præcist opfører sig ved en 
en belastning på hhv. 6000,8000 og 10.000 forespørgsler pr time.
Tabel 6.3.4 viser de mest betydende størrelser nå belastningen øges.
$sj$
                     6000      8000     10.000

procestid søge       452.2 ms  460.8 ms  466.9 ms
  -"-     opslag     176.1 ms  184.9 ms  193.2 ms
køtid     søge       318.1 ms  607.3 ms 1791.2 ms
 -"-      opslag      20.7 ms  26.5 ms    35.5 ms
Udnytg.   input        2.78 %   3.66 %     4.55 %
 -"-      søge        20.42 %   26.93 %   32.49 %
 -"-      opslag       6.92 %   9.17 %    11.26 %
 -"-      output       1.54 %   2.03 %     2.53 %
 -"-      monitor      5.50 %   7.19 %     8.75 %
 -"-      diskkanal   15.50 %  20.54 %    25.75 %
 -"-      søgedisk    22.53 %  29.65 %    36.21 %
 -"-      opslagdisk   7.16 %   9.12 %    11.04 %
 -"-      outputdisk   0.18 %   0.24 %     0.32 %
 -"-      CPU         37.16 %  48.99 %    59.75 %

kølængde  input        0.043    0.063      0.086
 -"-      søge         0.862    1.59       4.15
 -"-      opslag       0.203    0.233      0.380
 -"-      output       0.025    0.035      0.047
 -"-      diskkanal    0.160    0.212      0.262

minimal svartid       28.31 ms 28.31 ms   28.31 ms
maksiaml svartid    5137.66 ms 5949.3 ms 12147.3 ms

97 % af forsp.      2249 ms     2999 ms    6750 ms

                   table 6.3.4
$rj$$nl$
Den sidste linie i tabellen angiver, hvornår 97 % af forespørgslerne er 
besvaret.
Når denne tabel sammenlignes med resultater opnået ved målinger i logfilen viser
sig en god overenstemmelse mellem simulatoren og målingerne. Det kan bemærkes,
at udnyttelsen af søge- og opslagdisk er noget mindre end de målte. Dette skyldes
at antallet af diskaccesser ikke helt stemmer overens. Ved simulatoren er der således 12.5
diskaccesser ved søgedisken mod en beregnet størrelse på 13.9.
Når nogle forbedringsforslag skal opstilles, bør disse sigte mod at formindske
de størrelser, der har størst stigning 
ved en forøgelse af antallet af forespørgsler.
Dvs. køtiden ved søgeprocessen. 
Til en RC800 kan stilles nogle forslag som meget let kan implementeres ved en RC8000. Disse forslag går dels ud på at prioritere søgeprocessen højere end de
andre processer og dels ud på at dublere pladelagerkanalen. 
$np$
Ved at opprioritere søgeprocessen bevirker dette, at hver gang en forespørgsel
findes ved søgeprocessen vil denne blive behandlet. Ved hjælp af simulatoren har det
vist sig, at der ikke opnås nogen  væsentlig forbedring af udnyttelsen af en RC800 når søgeprocessen prioriteres højere. Det har endda vist sig at den gennemsnitlige
svartid stiger. At svartiden stiger kan forklares ved at de andre processer ikke
kan behandle forespørgslerne så hurtigt når søgeprocessen har højere prioritet.
Resultaterne fra kørslene er angivet i tabel  procestiden og køtiden
ved søge processen formindskes lidt, hvorimod køtiden og procestiden ved de andre processer forøges noget. Konkluderende må dog anføres at en prioritering
af søgeprocessen ikke bevirker at systemet opførsel bliver bedre.
$sj$
                   4000       4000      6000      60000
                  uden prio. med prio. uden prio. med prio.
procestid søge     432.8 ms   424.0 ms   452.2 ms  440.3 ms
  -"-     opslag   165.4 ms   171.0 ms    176.1 ms  184.9 ms
Køtid     søge     130.8 ms   128.6 ms    318.1 ms   254.1 ms
  -"-     opslag    12.5 ms    14.4 ms     20.7 ms    24.4 ms
gnst. svartid      516.5 ms   519.7 ms    657.8 ms   620.2 ms
Udnytg.             24.0 %     24.5 %      37.2 %     36.7 %

                          tabel 6.3.5

$rj$$nl$

$np$
Et andet forbedringsforslag, som specielt har interesse hos KTAS er at
dublere datakanalen. Dette skyldes at man ved KTAS har en ekstra datakanal
til rådighed og meget let vil kunne installere denne. Ved en belastning på
4000 og 6000 forespørgsler pr time er resultaterne fra kørsler med en dubleret
pladelagerkanalen vist i tabel 6.3.6.

$sj$
                   4000      4000      6000      6000
                 uden dub.  med dub.  uden dub. med dub.

procestid søge   432.8 ms    427.1 ms  452.2 ms   448.5 ms
  -"-     opslag 165.4 ms    166.8 ms  176.1 ms   174.6 ms

køtid     søge   130.8 ms    134.5 ms  318.1 ms   307.6 ms
  -"-     opslag  12.5 ms     11.2 ms   20.7 ms    18.8 ms

gnst svartid     516.5 ms    504.8 ms  657.8 ms   646.1 ms

Udnytg.diskkan1.               7.64 %              11.73 %
Udnytg.diskkan2.               2.59 %               3.86 %
Udnytg.diskkanal  10.21 %               15.59 %
Udnytg. CPU       23.93 %     24.06 %   37.16 %    37.39 %
$rj$
$nl$
Dubleringen af datakanalen er foretaget således at søgedisken er koblet
til den ene kanal og opslag- og outputdisken er koblet til den anden kanal.
Resultaterne viser, at gevinsten ved at have to datakanler er særdeles lille.
Den gennemsnitlige svartid formindskes lidt, ved at procestiden ved søgeprocessen formindskes lidt.
 Intuitivt er det  klart at en dublering af datakanalen ikke
vil give den helt store forbedring.
 Dette skyldes, at datakanalen ikke er udnyttet i mere end ca
 1/3 af tiden ved en stor belastning. Dermed vil der ikke ske en 
forsinkelse af en forespørgsel ved at den står i kø til datanalen.
$np$
For at komme med et forslag,
 der virkelig forbedre systemet,
 er det nødvendigt at betragte,
 hvordan tiden forløber i søgeprocessen.
 På figur 6.3.7 er angivet et tidsdiagram
over, hvordan tiden forløber i en RC8000.
 Til figuren er foretaget en del begrænsinger. Det
antages at den gennemsnitlige CPU-tid i søgeprocessen er 180 ms, og at der er
14 pladelagertilgange i søgeprocessen.
Mellem to pladelagertilgange  er så 180:15 =12 ms.
En pladelagertilgang antages at tage 18 ms,
 fordelt med 10 ms til positioneringstid og
8 ms til overførsel af data.
$np$
Hvis nu søgeprocessen var den eneste proces, der benyttede CPU-en ville
den maksimale udnyttelse være 41.6 %. (180 ms ud af 180+252=432 ms).
Med andre ord venter CPU-en i 58.4 % af tiden på en pladelagertilgang er
færdig.
Ved at programmere OP-systemet i form af 4 processor er det muligt at udnytte nogle
af disse 58.4 % til behandling af forespørgsler ved de andre processer. Hvis det
antages,
at en forespørgsel benytter 66 ms ved opslagprocessen, og systemet behandler en forespørgsel
ved opslagprocessen hver gang en forespørgsel behandles ved søgeprocessen så
når man op på en udnyttelse af CPU-en på 56.9 %. Hvis det derudover antages,
at input- og outputprocessen også behandler en forespørgsel indenfor tidsrummet 
og de benytter hhv 16 og 9 ms, så opnås en CPU-udnyttelse på 62.7 %. 
$np$
En forøgelse af udnyttelse af CPU-en kan nu kun foregå ved at opslagprocessen
behandler en tlfnrforespørgsel. Hvis det antages at den bruger 66 ms i opslagprocessen,
og hhv. 16 og 9 i input- og outputprocessen så opnås en maksimal udnyttelse
på 83.8 %. Dvs. den maksimale udnyttelse af CPU-en til en RC8000 til
 OP-systemet er omkring 
83.8 %.
$np$
Det er ikke muligt, at en så stor udnyttelse kan foregå over en længere periode,
idet dette kræver at der kommer lige så mange tlfnrforespørgsler som søgeforespørgsler.
$ns 1,4,6.3.2.Dublering af søgeproces.$
$np$
En drastisk forøgelse af udnyttelsen af CPU-en vil forekomme ved
at søgeprocessen behandler mere end en forespørgsel ad gangen. At
implementere at søgeprocessen skal kunne behandle mere end en forespørgsel
ad gangen vil formentlig være lettes ved at dublere søgeprocessen. Hver
søgeproces kan så behandle en forespørgsel på samme tid.
$np$
Ved en dublering af søgeprocessen er det naturligt, at der kun opnås
en fordel, når belastningen af systemet er over et vist punkt.
Svarende til en belastning på ca. 6000 forespørgsler pr time formindskes
den gennemsnitlige svartid fra 657.8 ms til 542.5 ms ved en dublering
af søgeprocessen.
$np$
Figur 6.3.8 viser, hvordan svartiden (angivet ud af Y-aksen) er en funktion
af antallet af forespørgsler(angivet ud af X-aksen). Kurven viser ikke en 
så stejl stigning ved foreøgelse af belastningen som uden dublering af søgeprocessen.
Når OP-systemet betragtes ved en belastning på 6000 forespørgsler vides,
fra målinger i logfilen at 97 % af samlige forespørgsler besvares under 2 s. 
Ved en dublering af søgeprocessen vil 97 % af forespørgslerne kunne besvares
under 2 s ved en belastning på 7959 forespørgsler.
Ved denne belastning vil den gennemsnitlige svartid være 663.2 ms.
$np$
Da der til OP-systemet i meget belastede timer anvendes 3 RC8000, svarende til
at de 3 maskiner behandler ca 13.000 forespørgsler. Forespørgslerne
fordeles således, at en RC8000 modtager omkring 6000 forespørgsler. Dette
bevirker en svartid der lige kan accepteres. Ved at dublere søgeprocessen vil det være
muligt med 2 RC8000 at behandle samme antal forespørgsler under samme betingelser
som forespørgslerne idag behandles med 3 maskiner.
$np$
Ved dubleringen af søgeprocessen viste det sig at udnyttelsen af søgedisken
blev ret stor. Det blev derfor fundet interessant at foretage kørsler, hvor
både søgeprocessen og datakanalen blev dubleret. Dette viste dog ikke at
den gennemsnitlige svartid herved kunne forbedres væsentligt.
Resultaterne er angivet i tabel 6.3.9.
$sj$
               
                       gennemsnitl svartid
              Dublering af søge.       Dublering af søge og diskkanal.
Ved ca.8000   forsp    665.2 ms              615.9 ms

Ved ca.10.000 forsp    822.1 ms              800.5 ms

Ved ca.12.000 forsp   1136.5 ms             1082.7 ms

                   tabel 6.3.9

$rj$$nl$
En nærmere undersøgelse af denne konstellation er ikke foretaget, idet
tidsgevinsten ikke er fundet stor nok.
$np$
Da søgeprocessen er den proces, der optager mest plad i RC8000, vil det
formentlig være en ret kostbar affære at dublere søgeprocessen. Det kræver
udover en programændring en udvidelse af lageret koblet til en RC8000. Et
andet forslag til forbedring af OP-systemets RC8000- del kan så gives
ud fra et dybere kendskab til søgeprocessen.
$np$
Søgeprocessen fungere således, at den ud fra hvert kriterie i en søgeforespørgsel
danner en mængde af kandidater. For at finde frem til eventuelle kandidater
findes fællesmængden af disse kandidater.
$nl2$
Eksempel
$nl$
Antag at følgende søgeforespørgsel bliver stillet
$sj$

   *bFrederikssund   *nLarsen   *fKnud
$rj$
$nl2$

Ud fra første kriterie *bFrederikssund slås op i en tabel
kaldet hypperboltabellen over stednavne. Her findes alle normalt
brugte stednavne. Fra en OPSTAT vides, at ca. 82 % af alle 
stednavne findes i denne tabel. I tabellen er der ved stednavnet
angivet en pointer til en tabel kaldet AB-tabellen og
to pointere til en fil kaldet navnesøgefil. I AB-tabellen
findes en pointer til abonnentfilen. Abonnentfilen indeholder information om
telefonabonnenter.
$np$
Ud fra andet søgekriterie *nLarsen findes ved hjælp af Larsen en pointer
i navneindeksfilen. Denne fil indeholder pointere til navnesøgefil
hvor navne findes opdelt efter område.
På nedenstående figur er de forskellige filer og pointere angivet.
$nl20$
$sj$
             figur 6.2.?
$rj$$nl$
Figuren er noget simplificeret, men det vigtigste
at observere er, at ud fra stednavnet opnås en pointer til
abonnentfilen og ud fra efternavnet opnås to pointere i abonnentfilen.
De kandidater som søgekriteriet giver adgang til bliver en mængde af pointere i abonnentfilen,
og ud fra denne dannes en fællesmængde svarende til de enkelte søgekriterier.
$np$
Undersøgelsen med en dubleret søgeproces viste, at dette bevirkede en bedre
udnyttelse af CPU-en. dette skyldes, at det var muligt at behandle mere
end en forespørgsel ved søgeprocessen. Formålet med ovenstående
beskrivelse er, at forsøge at afgøre om samme effekt kan opnås ved at opspalte
søgeprocessen i mere end en proces.
$np$
Dette kunne gøres ved at lave en proces, der svarer til et
eller to kriterier, og derefter en anden proces, der
svarer til resten af søgekriterierne. Ud fra en OPSTAT
kan kriteriesammensætningen findes. Det viser sig, at udover stednavnet er det mest
anvendte kriterie efternavnet.
$np$
Udfra dette vil jeg så foreslå følgende opdeling af søgeprocessen.
Der laves to søgeprocesser. En søgeproces behandler stednavnet og
et gadenavn og husnr. De sidste kriterier er søgekriterier, som
ikke er det mest anvendte, men det forekommer i omkring 53.3 % af
søgeforespørgsler. Tallet 53.3 % er opnået fra en OPSTAT. Den anden 
søgeproces skal derefter behandle resten af søgekriterierne.
Op-systemet i RC8000 vil derefter få følgende udseende:
$nl20$$sj$
                  figur 6.2.?
$rj$
$nl$
De nye veje for en forespørgsel er på
figuren markeret A,B,C og D.
Det er ikke muligt præcist at angive, hvor stor en procentdel der vil passere
gennem de enkelte veje. Ved at betragte en OPSTAT vides, at en søgeforespørgsel
i gennemsnit tager 703 ms. En forespørgsel, hvor stednavnet ikke findes
tager i gennemsnit 272 ms.
$np$
De forespørgsler, der behandles i søgeproces 1 er forespørgsler på
stednavn,gade og husnr.
Det er ikke muligt at angive, hvormeget tid søgeproces 1 skal anvende,
men  det vil formentlig
ligge omkring tiden for en afvist forespørgsel, hvor stednavnet ikke
findes.
Antallet af pladelagertilgange i søgeproces 1 kan ikke findes, men det kan
maksimalt være (0.18 +(2*2*3.5)= 12.68 pr. forespørgsel fundet
ud fra formlen angivet i afsnit 3). Da de to søgekriterier kun findes for
53.3 % af forespørgslerne antages, at antallet af pladelagertilgange
si søgeproces 1 da (53.3 * 12.68)#100= 6.8 pr. forespørgsel og
dermed omkring 7.2 i søgeproces 2. Formålet med opdelingen
er, at dele processerne således at de vil have samme arbejdsbyrde pr.
forespørgsel. Ved dette vil der opstå en vekselvirkning mellem CPU-behandling
i den ene proces og pladelagertilgange. Dette kan illustreres på nedenstående
figur.
$nl10$
$sj$
                figur 6.2.?
$rj$
$nl$
På figuren er forholdene beskrevet optimalt, men ved en opdeling
på tiæsvanrende måde vil en højere udnyttelse af CPU-en kunne opnås.

$np$
Det angivne skal således kun ses som et forslag til, hvordan en opdeling
kan gøres. Det vil dog kræve en meget dybtgående undersøgelse
af hvordan kriteriesammensætningen for en søgeforespørgsel
er og hvilket tidforbrug de enkelte søgekriterier har, før en 
anvendelig opdeling kan foretages godt.
$ns 1,4,6.3.3.Indførelse af hurtigere RC8000.$
$np$
Af de nævnte forbedringsforslag kan et sidste anføres, og det vil formentlig
også være det billigste. Efter konstruktionen af OP-systemet har RC udviklet
en hurtigere RC800. Denne RC8000 betegnes model 55. Forskellen fra den ved
OP-systemet benyttede RC8000 er at der til denne findes et "cache" lager. Dette
bevirker, at maskinen bliver dobbelt så hurtig. Anskaffelsesprisen for en
sådan maskine er ikke savrende til en ny, fordi det kun er nødvendigt
at anskaffe et "cache" lager.
$np$
Det har vist sig at en model 55 er omkring dobbelt så hurtig som den nu anvendte
RC8000. Ved at halvere tidsforbruget ved de enkelte processer og monitorskiftetiden
er der nu foretaget en række simulationskørsler. 
$np$
For at sammenligne, hvordan en model 55 kan behandle forespørgsler
er i tabel 6.3.10 vist de vigtigste indeks i en RC8000.
$sj$
                        model 45      model 55
antal forsp             6142           11952

Procestid søge           452.2 ms        325.4 ms
  -"-     opslag         176.1 ms        129.2 ms

Køtid     søge           318.1 ms        454.1 ms
 -"-      opslag          20.7 ms         17.9 ms

Gnst svartid             657.8 ms        619.0 ms

Udnyttelse af søgedisk    22.5 %          43.6 %
  -"-         opslagdisk   7.2 %          13.3 %
Udnyttelse af diskkanal   15.6 %          30.3 %

Udnyttelse af CPU         37.2 %          34.9 %

Kølængde  søge             0.86            1.7
         
               tabel 6.3.10

$rj$
$nl$
Tabellen viser, at en model 55 faktisk ved en belastning på
6000 forespørgsler til en model 45 kan klare ca. dobbelt så
mange forespørgsler med samme svartid. Dette giver anledning til en
del forundring. Man skulle tro at andre størrelse end
hastigheden af CPU-en har indflydelse på,
hvordan svartiden for forespørgslerne er. 
$np$
For nærmere at belyse om, hvordan svartiden anhænger af
belastningen, så er figur 6.3.11 anført. Den viser,
at den gennemsnitlige svartid stiger på tilsvarende måde som
ved en model 45. Der er her blot den forskel, at den maksimale
belastning ikke ligger på dobbelt så mange forespørgsler.
$ns 1,4,6.4.Teoretisk analyse af systemet.$
$np$
Nedenstående afsnit beskriver 2 normalt anvendte metoder til teoreisk analyse
af et datamatisk system. Den første tager udgangspunkt i at finde antallet
af terminaler, der kan kobles til systemet. Den anden angiver en metode, hvordan
en
flaskehals ved et system kan findes.
$nl2$
1.Vurdering af terminal system.
$nl$
En model svarende til nedenstående figur betragtes.
 Systemet består af n terminaler og en CPU. Ved terminalerne sendes et job (forespørgsel).

Tiden mellem to forespørgsler er en variabel størrelse og betegnes tænketiden.
 Dvs. en  person ved en terminal tænker et vist
stykke tid, når svaret på en sendt forespørgsel er modtaget
inden næste transaktion sendes.
$nl15$
$sj$
                    figur 6.4.1
$rj$
 Det forudsættes, at  tænketiden er eksponetial fordelt med middelværdi
1/^^.
En anden størrelse som skal kendes ved denne model
 er den gennemsnitlige behandlingstid for et
job under forudsætning af,
 at dette job befinder sig alene ved CPU-en. Behandlingstiden forudsættes ligeledes eksponentialfordelt med middelværdi 1/^^. 
Under disse forudsætninger kan det vises, at svartiden er en funktion af antallet
af terminaler, og dens forløb vil være som vist på nedenstående figur.
Ud af X-aksen er angivet antallet af terminaler og Y-aksen angiver den
gennemsnitlige svartid.
$nl15$
$sj$
                    figur 6.4.2
$rj$
$nl$
Kurven på figuren vil have to asymptoter en vandret og en skrå, og skæringspunktet
mellem disse asymptoter
betegnes systemets mætningspunkt. Dette mætningspunkt kan findes ud fra følgende
formel:
$nl3$
$nl$
Mætningspunktet skal ses som en angivelse af det største antal terminaler
der kan kobles til  systemet. Hvis 
et større antal kobles til, vil svartiden stige uforholdsmæssigt meget.
Ovenfor anførte betragtninger findes
 i Brin 73 side 214-221 og Ferr78 side 210-212.
 Her findes ligeledes beskrevet,
 hvordan man kommer frem til formlen for mætningspunktet.
$np$
Denne model vil nu blive anvendt til at finde mætningspunktet for en RC8000 ved OP-systemet.
 De to indgående størrelser findes efter følgende princip:
$nl2$
1.Gennemsnitlig behandlingstid.
$nl$
Denne størrelse skal findes under forudsætning af, at en forespørgsel befinder
sig alene i RC8000. Til dette findes fra KTASSTAT den time,
 der har været mindst
belastning. Ved en belastning på 22 forespørgsler er den gennemsnitlige svartid
i RC8000 501.3 ms. 
$nl2$
2.Gennemsnitlig tænketid.
$nl$
Antallet af terminaler koblet til systemet i en hårdt belastet time er 130, og den
hårdest belastede time svarer til,
 at der afsendes 13107 forespørgsler. Ud fra dette
kan den gennemsnitlige tænketid pr sekund beregnes til:
$sj$
                        130*60*60
                  =     _________    = 35.7
                          13107

$rj$
Ud fra dette beregnes mætningspunktet for en RC8000 til :
$sj$
               *            35.70
             N     =  1  +  ______   =   72 terminaler.
                            0.5013
$rj$
Ud fra disse betragtninger kan anføres, at de 3 RC8000 koblet til OP-systemet
kan klare 213 terminaler. Ved at koble 213 terminaler til systemet vil antallet
af forespørgsler pr time være 21479. Antallet af forespørgsler en RC8000 skal behandle
pr time vil så under forudsætning af, at forespørgslerne fordeles ligeligt være
7159.7 pr time. Med denne belastning vides fra simulatoren, at den gennensnitlige
svartid er  787.3 ms.
$nl2$
2.Kømodeller.
$np$
Det anføres her ud fra en teoretisk model, hvordan en flaskehals til systemet
kan findes. For at kunne gøre dette betragtes en kønetværksmodel af
systemet. Kømodellen er angivet på figur 6.4.3.
Den findes beskrevet i Buz71.
$nl15$
$sj$
                       figur 6.4.3
$rj$
Systemet har 1 CPU og L ydre enheder.
 I forbindelse med anvendelsen her er L = 3, og de ydre enheder er hhv. søge- , opslag- og outputdisk. Til
modellen anføres nogle sandsynligheder p0,...,pL. pi angiver sandsynligheden
for at et job, når det er færdigt ved CPU-en  skal behandles ved enhed i.
po angiver, at et job er færdigt ved CPU-en., og igen skal behandles ved CPU-en.
$np$
Et job består således af en række forløb bestående af
 et CPU-tidsinterval efterfulgt af en behandling ved en ydre enhed. 
Når jobbet  efter en CPU-behandling igen ønsker et CPU-tidsinterval er
jobbet færdigt, og angivelsen for at jobbet igen ønsker CPU-en kan opfattes
som et nyt job, der ankommer til systemet.

Summen af  pi'erne er 1.
$np$
Der er både til CPU-en og de ydre enheder knyttet en kø. Det antages, at antallet
af job, der befinder sig i systemet er konstant, og det betegnes N.
$np$
Behandlingstiden ved de indgående enheder antages at være eksponentialfordelt med 
middelværdi ui. Den gennemsnitlige behandlingstid ved enhed i er så 1/ui.
$np$
Inden en flaskehals  defineres vil en række
ting blive fremhævet.
$np$
Med Ai betegnes sandsynligheden for, at enhed i er aktiv.
 Dvs. at Ai kan opfattes,
som den del af observationsperioden, hvor enheden er optaget.
Ao er sandsynligheden for, at CPU-en er optaget.
$np$
Man er  interesseret i at beregne det forventede antal job, der færdiggøres
over en tidsperiode af længden T. CPU-en vil her være optaget i Ao*T.
$np$
Et job afvikles ved CPU-en i et antal tidsintervaller. Det gennemsnitlige
antal CPU-tidsintervaller pr job er 1/po, fordi sandsynligheden for at
et program vil afslutte efter et CPU-tidsinterval er po. Den gennemsnitlige
behandlingstid for et CPU-tidsinterval er 1/uo. Dvs. at et job i gennemsnit
benytter CPU-en i 1/uo*1/po= 1/uopo.
$np$
Dermed kan det gennemsnitlige antal afviklede job over tidsperioden T findes til
$sj$

               Ao*T*uopo
$rj$$nl$
Dermed vil afviklingen pr tidsenhed være
$sj$
   (1)         Ao*uo*po
$rj$$nl$
Hvert jobs sandsynlighed for at modtage behandling
ved enhed i er pi. Da Ao angiver sandsynligheden for, at CPU-en er optaget, og
1/uo angiver den gennemsnitlige behandlingstid pr job ved CPU-en, vil
Ao*uo være et mål for, hvor tit et job er færdig med et CPU-tidsinterval.
Det forventede antal job, som skal behandles ved enhed i er derfor 
$sj$
   Ao*uo*pi
$rj$
$np$
Omvendt er Ai sandsynligheden for, at enhed i er aktiv og ui er behandlingsraten
ved enhed i.

Dvs. Ai*ui er antallet af job afviklet ved enhed i. Da antallet af job afviklet ved
enhed i er det samme som antallet af ankommende job til enhed i, så gælder
$sj$
       Ao*uo*pi = Ai*ui
og dermed
       Ao*uo = Aiui/pi.
$rj$$nl$
Systemets gennemstrømning defineres som det gennemsnitlige antal job,
der færdiggøres pr tidsenhed.
Et udtryk for gennemstrømningen  kan nu opstilles ved brug af (1).
Derved fås
$sj$

       Ao*uo*po   =  Ai*ui*po / pi
$rj$$nl$
En flaskehals defineres i Buz71 som den enhed i systemet, der bevirker en alvorlig
formindskelse i systemets ydeevne. Denne definition kan nu omformuleres til:
$nl$
Hvis en lille forøgelse i en enheds gennemstrømning bevirker en stor forøgelse
i systemets gennemstrømning, så er pågældende enhed en flaskehals. 
$np$
Hele systemets gennemstrømning er Ao*uo*po og enhed i skaber en derfor en flaskehals,
hvis
^(Ao*uo*po)/^^ui er stor. Når en flaskehals skal findes skal den maksimale af
disse partielle afledede findes.
Ao er en funktion af uo,u1,...,uL,po,p1,...,pL, og N. Når de partielle
afledede skal findes  ved denne model, vil Ao,...,A3 angives ud
fra resultater opnået ved simulatoren.
$nl2$
De indgående størrelser findes ved en belastning på 
8000 forespørgsler pr time til:
$sj$

        Ao = udnyttelsesgraden af CPU-en      = 0.418

        A1 = udnyttelsesgraden af søgedisk    = 0.297

        A2 = udnyttelsesgraden af opslagdisk  = 0.0912
 
        A3 = udnyttelsesgraden af outputdisk   = 0.0024
$rj$$nl$
Derudover kendes det totale antal processkift og pladelagertilgange. Man
får da
$sj$
        T*Ao*uo = antal processkift          = 172622
        og dermed er uo = 0.117

        T*A1*u1 = antal søgediskaccesser    = 67015
        og dermed er u1 = 0.062
  
        T*A2*u2 = antal opslagdiskaccesser = 21618
        og dermed er u2 = 0.066

        T*A3*u3 = antal outputdiskaccesser =   550
        og dermed er u3 = 0.064
$rj$
Ud fra antallet af processkift kan de indgående sandsynligheder  findes
og de bliver:
$sj$

        po= 0.659
  
        p1= 0.256
 
        p2= 0.083

        p3= 0.0021
$rj$
Ud fra disse størrelser kan de partielle afledede findes, og der opnås nu :
$sj$
        Ao*po/ po  =  0.418

        A1*po/ p1  =  0.765

        A2*po/ p2  =  0.724

        A3*po/ p3  =  0.752
$rj$
Ud fra disse værdier af de parielle afledede er det ikke indlysende,
 hvilken enhed,
der er flaskehalsen. Dette skyldes,  at de indgående sandsynligheder
ikke er uafhængige.
Ved OP-systemet foregår behandlingen af forespørgsler ved en speciel rækkefølge
således at forespørgslen først behandles ved input så søge ovs.
 Dette er grunden til,
at de partielle afledede ved de tre diske er næsten  ens.
$np$ Imidlertid har målinger
vist, at en forøgelse i søgediskens hastighed bevirker en formindskelse i
den gennemsnitlige svartid jvf. tabel 6.4.4.
Tabellen er opnået ved at formindske behandlingshastigheden ved søgedisken 
med 25 %.
$sj$
                     Normal søgedisk     Hurtig søgedisk
                4000   6000    8000       4000   6000  8000
Procestid søge  432.8  452.2   460.8      382.5  395.5   406.9
  -"-     opsl. 165.4  176.1   184.9      168.7  176.6   185.6
Køtid     søge  130.8  318.1   607.3       94.9  218.2   386.2
 -"-      opsl.  12.5   20.7    26.5       11.3   18.6    26.0
Gnstl.svartid   516.5  657.8   868.9      451.7  552.3   684.5
CPU-udng.        24.0%  37.2%   49.0%      23.4%  36.4%   47.8%

                 tabel 6.4.4

$rj$
Tabellen viser, 
 at den gennemsnitlige svartid formindskes
ved en hurtigere søgedisk. Dette sker ved at proces- og køtiden
i søgeprocessen
formindskes. Det bemærkes, at udnyttelses af CPU-en ikke stiger.

$ef$

scope user vko2
finis
▶EOF◀