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

⟦b171ee717⟧ TextFile

    Length: 136704 (0x21600)
    Types: TextFile
    Names: »specialtxt«

Derivation

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

TextFile

mode list.yes
vko2=set 200 disc3
scope user vko2
afs=set 200 disc3
afs=typeset check.no machine.diablo proof.vko2  

*se $* $pl ,30,235,,10$
$pn 0,0$$lw 160$ $ld 18$ 
$pn 5,1$
$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$
En datamaskines ydeevne vurderes normalt ved at betragte nogle størrelser,
der betegnes præstationsindeks. Da en del af disse indeks relaterer direkte til
det betragtede system, vil der først i afsnit 4 efter system beskrivelsen (afsnit 3) blive redegjort for, hvilke indeks der anvendes i denne opgave.
$np$
 Afsnit 2 afslutttes med kort at definere en flaskehals.
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. For at kunne vurdere om
et datamatisk system fungerer godt, dvs. foretage en præstationsvurdering
er det nødvendigt at beskrive en del termer, der benyttes i 
præstationsvurdering.
$np$
Et datamatisk 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 afhænger af, hvor mange job, der befinder sig i systemet.
Derudover afhænger den af de i systemet eksisterende jobs
karakteristika er. Til et jobs karakterisktika hører bl.a. hvor lang
tid det skal bruge i systemet, 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$
Et systems
 ydeevne  afhænger af belastningen af det.
Derudover
afhænger ydeevnen ligeledes af de i systemet indgående enheders
karakteristika. Dvs. ydeevnen vil afhænge af både belastnings-
 og  systemparametre.
Belastningsparametre 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
den belastning systemet 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 således et subjektivt spørgsmål.
 Forskellige personer vil benytte forskellige
størrelser (betegnes også indeks) for at vurdere systemet.
Disse indeks kaldes i det følgende præstationsindeks. Et præstationsindeks
kan så defineres som en størrelse, der benyttes til at beskrive systemets opførsel
eller andre aspekter om systemet.
$np$
En del præstationsindeks er umulige at kvantificere eksempelvis
hvor let benyttes systemet, strukturen af et program 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 identificeres 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 komme 
gennem systemet 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$
$np$
Disse 3 type af præstationsindeks interessere forskellige personer, og normalt
vil forskellige interessegrupper være interesseret i forskellige indeks.
F.eks. vil en bruger af et datamatisk system være  interesseret i
at have en lav svartid.
En driftleder derimod er formentlig mest interesseret i at udnyttelsen
af systemet er så stor som muligt.
Hilket synspunkt som har interesse her vil nøjere blive beskrevet
i afsnit 4.2.
$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$
Sekundære indeks bliver normalt bibragt af evalueringsstudiet. Deres 
værdier er betydningsfulde til at opdage symptomer på at systemet er
ineffektivt. Eksempler på sekundære indeks er af kategori 3 om
udnyttelsesgrader.
$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. 
$np$
Formålet med 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 af et system falder indenfor denne kategori.
Ved trimning af et system forstås, at nogle installationsparametre
ændres således at systemets  udnyttelse  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 dog ved hjælp af en simulator blive forsøgt at illustrere
hvilke konsekvenser en ændring af systemets design kan have.
$np$
Opsummerende kan siges, at et evalueringsstudiums formål er at
samle information om systemets primære præstationsindeks ud fra et
givent antal installationsparametre. Når et evalueringsstudium skal
foretages er det normalt man gennemløber følgende 5 faser.
$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$
Afsnit 4 giver en nøjere beskrivelse af, hvad der foretages i disse
5 faser. Derudover vil dette afsnit nøjere beskrive, hvad der
sker i de enkelte faser, og hvordan disse faser gennemløbes ved
dette evalueringsstudium.
$ns1,4,_«bs»2_«bs»._«bs»2_«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 de 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.
De vigtigste af disse karakteristika er følgende:
$lm0$
$nl2$
_«bs»I_«bs»n_«bs»d_«bs»b_«bs»l_«bs»a_«bs»n_«bs»d_«bs»i_«bs»n_«bs»g_«bs»s_«bs»f_«bs»a_«bs»k_«bs»t_«bs»o_«bs»r_«bs».
$nl$
Hermed menes har redskabet indflydelse på systemets præstation.
Eksempelvis hvis man betragter svartiden for et job, så kan dennes
værdi ændres, hvis man har indsat noget kode for at finde andre
eller netop dette
præstationsindeks.
$nl$
_«bs»N_«bs»ø_«bs»j_«bs»a_«bs»g_«bs»t_«bs»i_«bs»g_«bs»h_«bs»e_«bs»d_«bs».
$nl$
Hvor stor fejl er der på målingen af et givet præstationsindeks.
Bestemmelse af hvilke fejlkilder der er på et givet
præstationsindeks.
$nl$
_«bs»O_«bs»p_«bs»l_«bs»ø_«bs»s_«bs»e_«bs»l_«bs»i_«bs»g_«bs»h_«bs»e_«bs»d_«bs».
$nl$
Hvis f.eks. en hændelse skal tælles, er det så muligt at optælle
samtlige forekommende hændelser eller vil man miste
nogle fordi tælleren ikke kan følge med.
$nl$
_«bs»A_«bs»n_«bs»v_«bs»e_«bs»n_«bs»d_«bs»b_«bs»a_«bs»r_«bs»h_«bs»e_«bs»d_«bs».
$nl$
Relaterer til klassen af hændelser redskabet kan registrerer.
Mange måleredskaber kan kun anvendes til at måle en speciel
form for hændelser. Det ideelle ville være at konstruere et måleredskab
som kan benyttes på mange forskellige former for hændelser.
$nl$
$lm0$
$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»"
Dette er maskinelle dele koblet til systemet f.eks. ved prober  på
forskellige punkter, som ved hjælp af et måleinstrument
eksempelvis et ur, måler tidspunktet for hændelsen.
En probe 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.
$nl$
_«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$
$ns1,4,_«bs»2_«bs»._«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»e_«bs»n__«bs»f_«bs»l_«bs»a_«bs»s_«bs»k_«bs»e_«bs»h_«bs»a_«bs»l_«bs»s_«bs».$
$np$
Begrebet en flaskehals defineres normalt, som den enhed i et datamatisk 
system, der alvorligt formindsker hele systemets ydeevne. En enhed kan formindske et 
systems ydeevne, hvis den eksempelvis benyttes meget og er særdeles langsom.
Da de i systemet indgående enheder er meget forskelligartet, er det vanskeligt at anvende denne definition. En anden vanskelighed
i at anvende definitionen er, at det er svært at definere, hvad der forstås ved systemets
ydeevne. Et systems ydeevne kan defineres som antal af job der kan udføres pr. tidsenhed, men kan også defineres som udnyttelsesgraden af systemet.
$np$
Når en flaskehals skal findes er det derfor nødvendigt at specificere præcist,
hvilken definition af en flaskehals man vil benytte.
$np$
En anden definition på en flaskehals findes i Denn78. Her defineres en flaskehals til
at være den enhed, som har den største værdi af Vi*Si, hvor Vi er antal af job
der behandles og Si er den gennemsnitlige behandlingshastighed ved enhed i. Denne definition
er imidlertid heller ikke altid generel nok, da man kunne tænke sig at eksempelvis lagerstørrelsen ville have indflydelse på systemets ydeevne.
$np$
For at lægge sig fast på den definition af en flaskehals jeg mener er bedst
(buze71) er det nødvendigt at indføre en del begreber:
$nl2$
Systemet på nedenstående figur betragtes.
$nl20$
Figur 2.3.
Systemet består af en centralenhed og nogle ydre enheder, som eksempelvis
kan være plade- og tromlelagre.
$np$
Til figuren kan nu knyttes følgende kommentarer om de anførte betegnelser:
$nl$$lm20$
$nl$
N = antal job i systemet
$nl$
L = antal ydre enheder
$nl$
Pi = sandsynligheden for at et job fortsætter ved den i'te enhed
efter at have forladt centralenheden. Dvs i kan antage værdierne fra 0...L.
$nl$
Ui = Gennemsnitlig behandlingshastighed ved enhed i.
Dvs. 1/Ui er den gennemsnitlige tid enhed i skal bruge for at afslutte
en transaktion.
$lm0$
$nl$
 Buze71 foreslår nu følgende
definition:
$nl$
Hvis en lille forøgelse i en enheds ydeevne bevirker en stor forøgelse af systemets
ydeevne så siges denne enhed at være en flaskehals.
$np$
Med de indførte betegnelser kan denne definition nu uddybes på følgende :
$np$
Det forudsættes at en enheds ydeevne svarer til denne enheds behandlingshastighed
og systemets ydeevne svarer til centralenhedens udnyttelse. Centralenhedens
kapacitet kan udtrykkes ved AoUoPo, hvor Ao er sandsynligheden for at
systemet er i tilstnaden CPU-aktiv. Dermed bliver udstrækningen af om
en enhed skaber en flaskehals
vil være propotional med
dAoUoPo/dui.
Dette skyldes, at Ao kan udtrykkes ved hjælp af U0,U1,...,Un,Po,...,Pl
og N.
Hvis det gælder at
$nl4$
så svarer dette til at systemet ikke har nogen flaksehals og er, hvad
der kaldes et balanceret system. Hvis derimod en af størrelserne
$nl4$
er større end en af de andre så vil den tilsvarende enhed i skabe en flaksehals
.
En lille forøgelse i denne enhed i's afviklingshastighed vil bevirke en stor forøægelse af systemets ydeevne. Det vil sige, at når en flaskehals skal
findes i et system skal man finde den største værdi af
$nl4$
$np$
De betragtninger, som er foretaget i dette afsnit, vil blive uddybet i a
afsnit ??.?. Heri vil det ligeledes blive beskrevet, hvordan AoUoPo kan
opfattes. Derudover vil afsnittet nøjagtigere beskrive,
hvilke forudsætninger det er nødvendigt at foretage ved denne definition af
en flaskehals.
$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. OP-systemet 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$
Systemet er implementeret på maskinel fra Regnecentralen. Hovedbestandendelen er en 
RC8000. Derudover benyttes en del (mindst 3) RC3500
til kommunikationsled mellem terminaler og RC8000.
$np 15$
Hele OP-systemet har følgende udseende:
$ps0$
$sj$
                 Figur 3.1.
$rj$
$ps0$
$np 15$
Konfigurationen vist på figur 3.1., benyttes  til at
forklare, hvordan den overordnede funktionsmåde af systemet er.
 OP-systemet  pr. 1.5.1981 er mere kompliceret, men hovedprincipperne
i systemets virkemåde er  bevaret.
$np 15$
I de følgende afsnit vil del1 og del2 blive betegnet RC8000-delen og del3 og del 4 for
RC3500 delen. 
$np$
Del 4 er på figuren simplificeret en hel del. Ved denne del findes der
en RC3500 for hver ca. 20 terminaler. Da der normalt er koblet ca. 160 terminaler
til hele OP-systemet består del 4 af mindst 8 RC3500. Imidlertid er princippet om, hvordan
terminalerne er koblet til OP-systemet den samme som den på figuren angivne
del 4.
$np 15$
Når der ringes ind til tlfnr.oplysningen bliver en forespørgsel indtastet
på en skærm. Denne skærm er koblet til en RC3500. Denne RC3500 omsætter forespørgslen
til en repræsentation, som kan forstås af resten af systemet. RC3500 sender derefter
forespørgslen 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 denne RC3500 og de
RC3500'er der på figuren er betegnet NP er en 48 K bps (bit pr. sekund)
datatransmissionslinie. Forespørgslen modtages af en af de 2 RC3500
betegnet NP (Network-Processor) 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 om begge RC8000'er 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 endvidere et skel mellem hvilke former for
transmissionssystem, der benyttes. Systemet 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
forespørgslen  og modtages i RC8000 af en terminaldriver.
$np 15$
Hvordan hele OP-systemet er implementeret i de 3 typer RC3500 findes
 beskrevet i appendix 1, og begrundelsen for at en 
beskrivelse ikke er medtaget i dette speciale findes i afsnit 8.1.
Derimod findes i nedenstående en beskrivelse af, hvordan OP-systemet
er implementeret i RC8000.
$np 15$
 OP-systemet
er i RC8000 implementeret i form af 5 interne processer, der kører parallelt.
$np 15$
En intern proces (betegnes fremover kort proces) defineres ifølge
Brin73 s239-240, som udførelsen af et eller flere afbrydelige
programmer, der befinder sig et givent sted i lageret. En proces
er entydigt identificeret ved et navn. Scheduleringsstrategien for
tildelingen af tid til de enkelt processer beskrives udførligt 
i afsnit 3.4.
$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
drivere til ydre enheder såsom pladelagre og terminaler.
De sorte pile på figuren angiver, at der sker overførsel af data.
Da de 5 interne processer ligger fast i det indre lager, kopieres f.eks. svar
på en forespørgsel fra opslags- til outputprocessen. Dette kaldes overførsel af data.
En hvid pil svarer til, at der sker overførsel af meddelser.
En meddelse er eksempelvis at bede pladelageret om at læse et segment
på pladelageret.
$nl$
 Til
dette kan følgende kort bemærkes:
$np 15$
Kommunikation af meddelser mellem processer foregår ved hjælp af 
"message buffer". 
 En "message buffer"
benyttes til at sende data mellem to processer ved,
at der i bufferen er angivet eksempelvis, hvor afsendte data
 findes. "Message buffer" sendes så ved monitorproceduren
 "send message", hvor det er muligt at angive den
modtagende proces. Der findes i Brin73 s237-286 en særdeles
god beskrivelse af, hvad processer er, og hvordan kommunikationen
mellem dem foregår på RC4000. På RC8000 foregår det på næsten
ækvivalent vis, og forskellene har ingen betydning i forbindelse
med OP-systemet.
Driverne på figuren er implementeret, som eksterne processer, hvilket

vil sige, at de foretager input/output til enhederne de er bundet til.
$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
i systemet indgående processer. Opstart af systemet 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 en vis
kontrolinformation fra RC3500.
Dene kontrolinformation kan eksempelvis angive, at forespørgslen er en bladning.
Inputlinien (indeholdende en forespørgsel) analyseres. Dette
resulterer i, at forespørgslen videresendes til enten søgeprocessen,
opslagsprocessen eller outputprocessen.
$nl$
$nl$
_«bs»P_«bs»r_«bs»o_«bs»c_«bs»e_«bs»s_«bs»s_«bs»e_«bs»n_«bs»s__«bs»f_«bs»o_«bs»r_«bs»l_«bs»ø_«bs»b__«bs»k_«bs»a_«bs»n__«bs»d_«bs»e_«bs»t_«bs»a_«bs»i_«bs»l_«bs»j_«bs»e_«bs»r_«bs»e_«bs»t__«bs»b_«bs»e_«bs»s_«bs»k_«bs»r_«bs»i_«bs»v_«bs»e_«bs»s__«bs»p_«bs»å__«bs»f_«bs»ø_«bs»l_«bs»g_«bs»e_«bs»n_«bs»d_«bs»e__«bs»m_«bs»å_«bs»d_«bs»e_«bs»:
$nl$$nl$
Efter en analyse af en del kontrolinformation, 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øgeforespørgsel eller
en tlfnr.forespørgsel. En søgeforespørgsel  indeholder
et eller flere felter efterfulgt af et feltindhold. De vigtigste felter er følgende:
$ps0$
$sj$
     _«bs»F_«bs»E_«bs»L_«bs»T________«bs»I_«bs»N_«bs»D_«bs»H_«bs»O_«bs»L_«bs»D_________«bs»B_«bs»E_«bs»T_«bs»Y_«bs»D_«bs»N_«bs»I_«bs»N_«bs»G


      *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. Dette er eneste
felt, der skal forefindes, derudover kan de andre
felter forekomme, og de kan stå i vilkårlig orden.
Dog 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$
_«bs»1_«bs»._«bs»S_«bs»ø_«bs»g_«bs»e_«bs»f_«bs»o_«bs»r_«bs»e_«bs»s_«bs»p_«bs»ø_«bs»r_«bs»g_«bs»s_«bs»e_«bs»l_«bs»s_«bs»l_«bs»i_«bs»n_«bs»i_«bs»e_«bs».
$nl$$nl$
I en sådan _«bs»s_«bs»k_«bs»a_«bs»l altid forekomme feltet *b(by).
Søgelinien kontrolleres , herunder registreres eventuelle
fejl f.eks. fornavn uden efternavn, husnr. uden gade.
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$
_«bs»2_«bs»._«bs»T_«bs»e_«bs»l_«bs»e_«bs»f_«bs»o_«bs»n_«bs»n_«bs»u_«bs»m_«bs»m_«bs»e_«bs»r_«bs»f_«bs»o_«bs»r_«bs»e_«bs»s_«bs»p_«bs»r_«bs»ø_«bs»g_«bs»s_«bs»e_«bs»l_«bs»s_«bs»l_«bs»i_«bs»n_«bs»i_«bs»e_«bs».
$nl$$nl$
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 opslagsprocessen.
$nl$$nl$
_«bs»3_«bs»._«bs»U_«bs»k_«bs»e_«bs»n_«bs»d_«bs»t__«bs»l_«bs»i_«bs»n_«bs»i_«bs»e_«bs»t_«bs»y_«bs»p_«bs»e__«bs»e_«bs»l_«bs»l_«bs»e_«bs»r__«bs»f_«bs»e_«bs»j_«bs»l_«bs»l_«bs»i_«bs»n_«bs»i_«bs»e_«bs».
$nl$$nl$
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.
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 er 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".
Opslagsprocessen finder ud fra disse pointere abonnentinformationen.
$np15$
Ved denne beskrivelse er det vigtigt at bemærke, at da de indekssekventielle filer
findes på pladelageret, vil antallet af pladelagertilgange afhænge
af antallet af søgekriterier i en forespørgsel.
$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.
$np$
Da det ved vurderingen af OP-systemet viser sig, at
søgeprocessen er en meget vigtig proces, har det i afsnit 8.3 været
nødvendigt at beskrive denne nærmere.
$ns1,4,_«bs»3_«bs»._«bs»2_«bs»._«bs»4_«bs»._«bs»O_«bs»p_«bs»s_«bs»l_«bs»a_«bs»g_«bs»s_«bs»-_«bs»p_«bs»r_«bs»o_«bs»c_«bs»e_«bs»s_«bs»s_«bs»e_«bs»n_«bs».$
$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$
_«bs»S_«bs»v_«bs»a_«bs»r_«bs»n_«bs»d_«bs»e__«bs»t_«bs»i_«bs»l__«bs»d_«bs»e__«bs»t_«bs»o__«bs»d_«bs»e_«bs»l_«bs»e__«bs»u_«bs»d_«bs»f_«bs»ø_«bs»r_«bs»e_«bs»r__«bs»p_«bs»r_«bs»o_«bs»g_«bs»r_«bs»a_«bs»m_«bs»m_«bs»e_«bs»t__«bs»f_«bs»ø_«bs»l_«bs»g_«bs»e_«bs»n_«bs»d_«bs»e_«bs»:
$nl$$nl$
_«bs»1_«bs»._«bs»T_«bs»l_«bs»f_«bs»n_«bs»r_«bs».__«bs»f_«bs»o_«bs»r_«bs»e_«bs»s_«bs»p_«bs»ø_«bs»r_«bs»g_«bs»s_«bs»l_«bs»e_«bs»r_«bs».
$nl$$nl$
En tlfnr.forespørgsel bevirker, at opslagsprocessen 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$
_«bs»2_«bs»._«bs»S_«bs»ø_«bs»g_«bs»n_«bs»i_«bs»n_«bs»g_«bs»s_«bs»f_«bs»o_«bs»r_«bs»e_«bs»s_«bs»p_«bs»ø_«bs»r_«bs»g_«bs»s_«bs»e_«bs»l_«bs».
$nl$$nl$
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.
$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 kandidatstakke 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.
$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.
$sj$
                 Figur 3.3.
$rj$
$ps0$
$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 brin73 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$
Processerne indplaceres i aktivkøen på grundlag af en størrelse,
der betegnes tidskvant. Hvis tidskvant er mindre end en tidsskive
( 25.6 ms ), bliver processen placeret forrest i aktivkøen ellers
placeres den bagest.
Det bør her bemærkes, at tidskvant og tidsskive er to forskellige
størrelser, og de må absolut ikke forveksles.
$np$
Størrelsen tidskvant indeholder den del af tidsskiven processen har brugt indtil
den enten er færdig eller den bliver afbrudt.
$np$
En proces tages ud af aktivkøen, hvis den er kørende og f.eks. har bedt
om overførsler af data fra pladelageret. Den tages ligeledes ud, hvis
processen bliver færdig.
$nl$
 Scheduleringsstrategien kan
illustreres ved følgende eksempel:
$nl2$
_«bs»E_«bs»k_«bs»s_«bs»e_«bs»m_«bs»p_«bs»e_«bs»l__«bs»3_«bs»._«bs»4_«bs»._«bs»:
$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 et tidskvant. Imidlertid skal proces A efter 15 ms benytte
et segment fra pladelageret. (En sådan pladelagertilgang tager normalt
ca. 38.3 ms. se afsnit 4) Dette bevirker, at proces A bliver passiv og B ( som er
ventende ) bliver kørende. Størrelsen tidskvant 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. Tidskvant for B bliver sat til
10.6 ms. Idet dette er mindre end et 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.
Tidskvant 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 tidskvant
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. Imidlertid sker nu følgende:
$nl$
Da A's tidskvant er mindre end 25.6 ms, vil denne (dette sker først) blive 
indplaceret forrest i aktivkøen. Derefter vil proces C, idet dens tidskvant
er 2.1 ms og dermed mindre end et tidskvant, ligeledes blive indsat
forrest i aktivkøen. Da dette sker sidst vil den blive indsat foran A.
$np$
C får nu tildelt 25.6-2.1 ms, som er den tid der er tilbage af
en tidsskive.
$np$
Dette vil fortsætte på ækvivalent vis indtil processerne er færdige.
Nedenstående figur viser et tidsdiagram over, hvordan processerne
benytter CPU-en.
$nl5$
$sj$
              Figur 3.4.
$rj$
$nl5$
$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.
$ns1,4,_«bs»3_«bs»._«bs»4_«bs»._«bs»B_«bs»e_«bs»s_«bs»k_«bs»r_«bs»i_«bs»v_«bs»e_«bs»l_«bs»s_«bs»e__«bs»a_«bs»f__«bs»l_«bs»o_«bs»g_«bs»f_«bs»i_«bs»l_«bs»e_«bs»n_«bs».$
$np 15$
Når en forespørgsel passerer gennem OP-systemet, foregår dette ved,
at en vis mængde data transporteres mellem de i systemet indgående processer.
Af disse data bliver en del information udskrevet på en fil på systemdiscen
kaldet logfilen. Dette foregår som tidligere beskrevet i outputprocessen.
$np 15$
Logfilen benyttes til at lave statistikker om forespørgslerne. Der er bl.a.
mulighed for at finde, hvor hyppigt, der spørges på de stednavne som
er hovedindeks i den indekssekventielle fil på søgediscen koblet til
søgeprocessen. Af den information, der findes på logfilen er specielt følgende
interessant, idet de siger noget om, hvor meget tid der benyttes i de enkelte
processer. Det er i afsnit 5.2 beskrevet, hvordan disse data benyttes
men følgende størrelser forefindes:
$nl$
$sj$
      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.
$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. Hvordan monitoren
kan opfattes, er defineret i afsnit 4.4. Det er derimod særdeles vigtigt at
forstå, hvordan pladelagerkanalen fungerer og det vil derfor beskrives i nedenstående afsnit.
At det er vigtigt at forstå, hvordan pladelagerkanalen fungerer, skyldes at den skal indbygges i simulatoren. Derudover vil dens betydning skulle undersøgesforbindelse med vurderingen af systemet.
$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. En RC8000
til OP-systemet indeholder en pladelagerkanal, der styrer overførslen af data fra de 3 tilknyttede pladelagre.
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 "discdriveren". Denne beregner diskaddressen
og beder derefter pladelagerkanalen om at finde denne diskaddresse på en af de 3 diske.
Pladelagerkanalen sørger derefter for at positionere selve diskhovedet
hen til det spor på pladelageret, 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.
$rh 1,PLANLÆGNING AF ET EVALUERINGSSTUDIUM$
$ps0$
$ns1,4,_«bs»4_«bs»._«bs»P_«bs»l_«bs»a_«bs»n_«bs»l_«bs»æ_«bs»g_«bs»n_«bs»i_«bs»n_«bs»g__«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».$
$np$
Det er i afsnit 2.1 beskrevet, hvilke faser et evalueringsstudium normalt gennemløber
inden det er færdigt.
Dette afsnit beskriver i
 afsnit 4.1 til 4.3, hvilke overvejelser der er foretaget i de forskellige
faser.
$np$
Dette afsnit beskriver faserne 1-3 og
 afsnit 5 beskriver,  hvad
der er foretaget under fase 4 og fase 5 beskrives i afsnit 8.
 Opsummerende kan
nævnes, at fase 1-5 går ud på følgende:
$lm20$
$nl$
$nl$
        1.Problemidentifisering.
$nl$
        2.At afklare formålet med vurderingen.
$nl$
        3.Planlægge selve evalueringsstudiet.
$nl$
4.Implementering af planen.
$nl$
5.Præsentation af resultaterne.
$nl$
$lm0$
$nl$
I afsnit 4.4 beskrives, hvilke præstationsindeks der har været betragtet.
$ns1,4,_«bs»4_«bs»._«bs»1_«bs»._«bs»P_«bs»r_«bs»o_«bs»b_«bs»l_«bs»e_«bs»m_«bs»i_«bs»d_«bs»e_«bs»n_«bs»t_«bs»i_«bs»f_«bs»i_«bs»c_«bs»e_«bs»r_«bs»i_«bs»n_«bs»g_«bs».$
$np$
I forbindelse med at identificere evalueringsstudiets formål,
 vil det være rimeligt først at beskrive, hvorfor evalueringsstudiet
overhovedet foretages.
$np$
Det hos KTAS kørende OP-system's belastning er afhængig af, hvormange
mennesker der ringer ind til telefonnummeroplysningen. Imidlertid
er dette ikke den eneste faktor, der har indflydelse på belastningen.
Det har vist sig at kapaciteten af de indgående telefonlinier til
telefonnummeroplysningen ligeledes er en væsentlig faktor.( En del ringer ind og der er optaget. Hvor stor denne del er vides
ikke helt præcist). I forbindelse
med dette aspekt er problemmet om et evalueringsstudium opstået
på følgende måde:
$np$
Da evalueringsstudiet blev påbegyndt fandtes en given belastning til
OP-systemet.
En forøgelse
af belastningen på systemet forventes af følgende 2 grunde:
$lm20$
$nl$
$sb@,6$
$lt1,@@@@@1)$
Systemet skal udvides således, at der fra de to andre
store telefonselskaber Jydsk Telefon og Fynsk Telefon indkommer
forespørgsler til KTAS. Dette har indtil den 1.5.81 ikke været
muligt.
$nl$
$lt1,@@@@@2)$
Kapaciteten af de til telefonnummeroplysningen indgående linier
forøges, og dermed vil færre personer få optaget, når de ringer
til 0034.

$lm0$
$nl$$np$
Disse to faktorer bevirker, at en forøgelse af belastning af OP-systemet
kan forventes. Derfor opstod behovet for et evalueringsstudium af OP-systemet
til besvarelsen af følgende spørgsmål:
$lm20$
$nl$
$lt1,@@@@@a)$
Kan OP-systemet med de nuværende ressourcer klare en forøget belastning?
$nl$
$lt1,@@@@@b)$
Hvor stor belastning kan det klare ?
$nl$
$lt1,@@@@@c)$
Hvordan kan OP-systemet forbedres så det kan klare en forøget belastning ?
$lm0$
$nl$$np$
 Disse spørgsmål
er set ud fra et datamatisk synspunkt, centrale spørgsmål
i forbindelse med præstationsvurdering, og kan her omformuleres, så de benytter de i præstationsvurdering
benyttede termer til følgende spørgsmål:

$lm20$$nl$
$lt1,@@@@@1)$
Hvor godt fungere OP-systemet?
$nl$
Uddybende: Præstationsindeks som svartiden for en forespørgsel og udnyttelsen
af de indgående enheder betragtes. At besvare spørgsmål a) vil så være det
samme som at svare på, hvordan opfører disse præstationsindeks sig, når
belastningen øges ?
$nl2$
$lt1,@@@@@2)$
Kan og i givet fald hvordan forbedres systemet?
$nl$
Uddybende: Hvordan kan systemet ændres så f.eks. præstationsindekset
den gennemsnitlige svartid formindskes?
$nl2$
$lt1,@@@@@3)$
Hvor stor er spidsbelastningen ? 
$nl2$$lt1,@@@@@4)$
Hvilke transaktioner er særligt tidskrævende og hvad er deres svartid ?
$lm0$$nl$
$ns1,4,_«bs»4_«bs»._«bs»2_«bs»._«bs»F_«bs»o_«bs»r_«bs»m_«bs»å_«bs»l_«bs»e_«bs»t__«bs»m_«bs»e_«bs»d__«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»e_«bs»t_«bs».$
$np$
Det primære formål med dette evalueringsstudium er naturligvis at besvare
de ovenstående spørgsmål.
Imidlertid vil der ved besvarelsen af spørgsmålene kunne opstå forskellige aspekter 
om, hvordan skal spørgsmålene betragtes.
$np$
Det følgende afsnit vil nøjagtigt 
beskrive ud fra hvilke synspunkter  spørgsmålene skal besvares.
$nl$
Spørgsmål 1 kan besvares ud fra 2 hovedaspekter:
$lm20$
$nl$
$nl$
En brugers.
$nl$
En driftleders.
$nl$$lm0$
$nl$
Disse 2 aspekter behøver nødvendigvis ikke at være modstridende, men
i mange tilfælde vil de  være det. F.eks. vil en bruger
formentlig være interesseret i en så lille svartid som muligt. Derimod
vil en driftleder
 være mere interesseret i at systemet kan klare så
mange forespørgsler som muligt indenfor en given tid.
$np$
$np$
Spørgsmål 2) skal besvares både ud fra den interesse KTAS har i evalueringsstudiet
og ud fra en generel betragtning af systemet.
Dette kan belyses på følgende måde:
$nl$
For KTAS vil en forbedring af systemet først og fremmest skulle
foretages ud fra de i systemet eksisterende ressourcer. En besvarelse
af spørgsmålet ud fra en generel interesse vil f.eks. også 
være at angive, at med et hurtigere pladelager, vil den gennemsnitlige
svartid kunne formindskes.
$np$
Besvarelsen af spørgsmålet skal således foretages ud fra begge de
ovenfor anførte synspunkter.
$ns1,4,_«bs»4_«bs»._«bs»3_«bs»._«bs»P_«bs»l_«bs»a_«bs»n__«bs»f_«bs»o_«bs»r__«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»e_«bs»t_«bs».$
$np$
Når et evalueringsstudium skal planlægges, er det vigtigt at vide,
hvilke måleredskaber der er mulighed for at anvende, og dermed hvad der er
mulighed for at måle. Afsnittet bliver indledt med en beskrivelse af
de måleredskaber, som kan anvendes på OP-systemet. Derefter bliver selve planen
for evalueringsstudiet forelagt.
$np$
I afsnit 3.2 findes en beskrivelse af, hvilken information logfilen indeholder.
Til læsning af indholdet i logfilen er konstrueret et program, der er beskrevet
i afsnit 5.2. Heri er ligeledes beskrevet, hvad der måles, og hvorfor
dette gøres.
Nedenstående afsnit indeholder derfor primært en redegørelse for, hvad
der kan måles andre steder i systemet.
$np$
Det kan fra afsnit 3 opsummeres, hvordan en forespørgsel passerer gennem
de i OP-systemet indgående enheder:
$nl10$
figur 4.3
$nl2$
På figuren kan ses, at 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. Ved
påbegyndelsen af evalueringsstudiet undersøgtes forskellige muligheder
for at finde svartiden i en RC3500.
$np$
Her viste sig begrænsninger i at måle den gennemsnitlige svartid på 
grund af at det foreliggende system er et kørende system. Da de to 
RC3500  på figuren betegnet NP og FP er særdeles centrale i systemet,
er det under ingen omstændigheder muligt  ved  et
programmelredskab  at undersøge svartiden
i disse enheder. Dette skyldes, at hvis en af de 2 maskiner
ikke fungere så vil hele kapaciteten af OP-systemet være reduceret meget,
og det vil formentlig ikke kunne klare en spidsbelastning.
Derimod er der ved den sidste RC3500 mulighed for at indsætte noget kode,
idet man ved KTAS råder over en ekstra af disse maskiner.
$np$
Muligheden for at indsætte nogle "soft-ware"-tællere blev derfor 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 af denne type 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 prober. Disse kan 
rregisterer, når en forespørgsel sendes og modtages. Ved at koble et
ur i forbindelse med disse prober, er det muligt at måle, hvor lang tid en
forespørgsel tager i hele OP-systemet.
$np$
Ud fra disse overvejelser blev følgende plan for evalueringsstudiet
lagt.
$np$
Planens formål er at forsøge at afdække så mange aspekter indenfor 
præstationsvurdering som muligt. Den går
ud på at vurdere OP-systemet udfra følgende 3 aspekter:
$nl$
$lm20$
$nl$
1.Ved målinger på systemet.
$nl$
2.Ved simulering.
$nl$
3.Ved en analytisk model.
$nl$$lm0$
$nl$
Det er meningen ud fra målinger på systemet at afdække væsentlige dele
af systemet. Dvs de dele, hvor der foregår mest tid. Derefter skal en simulator konstrueres
til at simulere disse  dele af systemet. Ved denne simulator skal
det være muligt at variere på så mange installationsparametre som muligt.
$np$
Simulatoren skal også benyttes til at måle de størrelser, der ikke er
direkte målelige på det kørende system.
Udfra simulatoren skal ligeledes findes størrelser, der kan bruges
i forbindelse med en analytiske model af systemet.
Da de eksisterende analytiske modeller af datamatiske systemer er ret
simple og ikke kan afdække samtlige interessante aspekter ved systemet,
vil hovedvægten i evalueringsstudiet blive lagt på punkt 1 og 2.
Hvordan studiet foretages og planen måske ændres undervejs
beskrives mere udførligt undervejs.
$ns 1,4,4.2.Betragtede præstationsindeks.$
$np15$
Det følgende afsnit beskriver, hvilke præstationsindeks som anses
for væsentlige i forbindelse med dette evalueringsstudium. Ved beskrivelsen
af de enkelte indeks anføres med begrundelse, hvorfor de betragtes, og
hvordan de kan måles. For de præstationsindeks, der ikke benyttes, angives
en begrundelse for, hvorfor de ikke benyttes.
$np$
Præstationsindeksene kan som beskrevet i afsnit 2 opdeles i 2 hovedgrupper:
$nl$$sj$
         1.Belastningsindeks.

         2.Systemindeks.
$rj$
$nl$
Den nedenstående beskriver indeksene efter denne inddeling. Ved den samlede vurdering
af systemet er det der primært har interesse er, hvordan systemindeksene
afhænger af belastningsindeksene.
$np$
Til begge grupper af indeks, er det vigtigt inden eksperimenter udføres
i forbindelse med de anvendte indeks at beslutte længden af observationsperioden,
hvorunder indeksene betragtes.
Da det betragtede system opfører sig nogenlunde ækvivalent fra dag til dag, er det
besluttet, at den største observationsperiode skal være et døgn.
Termen "nogenlunde" ækvivalent er anvendt, idet der kan være afvigelser i systemets opførsel fra dag til dag, hvis helligdage o.l. betragtes.
Målingerne som jeg foretager vil dog kun blive foretaget på almindelige hverdage.
$ns 1,4,4.2.1.Belastningsindeks.$
$np$
Nedenstående beskriver, hvilke belastningsindeks der har været overvejet
at benytte. Ved de benyttede indeks anføres, hvilken mulighed, der findes
for at måle dem.
$nl2$
Antal ankommende job i observationsperioden.
$nl$
Dette indeks betragtes, da det i forbindelse definerer en væsentlig del af
belastningen. Belastningen af et datamatisk anlæg kan defineres ud fra to
spørgsmål:
$nl$$sj$
   1.Hvor mange benytter maskinen ?

   2.Hvad ressource krav har de ?
$rj$$nl$
Dette indeks er et udtryk for svaret af spørgsmål 1 ved denne evaluering.
Et andet indeks, der normalt ved online-systemer benyttes til besvarelse af
spørgsmål 1 er, hvor mange terminaler er koblet til maskinen. Dette indeks
betragtes ikke, da kun en del af hele OP-systemet betragtes. Ved denne del
vil antallet af ankommende job være et bedre indeks end aktive terminaler.
I det nedenstående benyttes ofte betegnelsen forespørgsel for job.
$nl2$
Ankomsthastighed.
$nl$
Dette indeks har direkte forbindelse med ovenstående og defineres
som (antal ankommende job)#observationsperioden. Begge de anførte
indeks er direkte målelige på OP-systemet ved hjælp af logfilen.
De anvendes som inddata  til simulatoren.
$nl2$
Overgangssandsynlighedsmatrix.
$nl$
Dette er en matrix, som beskriver en forespørgsels vej gennem systemet.
Hvordan den findes, og en nøjere beskrivelse af dens betydning findes
i afsnit 6.2.1. Det kan virke ejendommeligt at medtage denne matrix i
beskrivelsen af belastningsindeks. Dette skyldes imidlertid, at den sammen
med de enkelte forespørgslers CPU-tidskrav i de enkelte processer præcist
definerer svaret på ovenstående 2. spørgsmål.
$nl2$
Gennemsnitlig CPU-tid for en forespørgsel i en proces.
$nl$
Defineres som den tid en forespørgsel benytter CPU i en af de 4 processer.
Størrelsen kan måles i logfilen, og den benyttes som inddata til simulatoren
sammen med overgangssandsynlighedsmatricen.
$nl2$
Gennemsnitlig antal pladelagertilgange pr. forespørgsel.
$nl$
Angiver belastningen af de 3 pladelagre knyttet til OP-systemet.
Kan ikke måles ved logfilen. Forsøges fundet dels ud fra
dybere kendskab til OP-systemets konstruktion, og dels ud fra 
kendskab til accestiden til pladelageret sammenholdt med
tiden en forespørgsel befinder sig i en proces.
$nl1$$np$
Opsummerende giver de anførte størrelser en model for
belastningen af systemet. Denne model består således i,
hvormage forespørgsler der ankommer, og en beskrivelse
relateret til OP-systemet om disse forespørgslers
gennemsnitlige  ressourcekrav.
$np$
Et alternativ til denne belastningsmodel kan være istedet for at på
de gennemsnitlige ressourcekrav (CPU-tid og pladelagertilgange) beregnet
for samtlige forespørgsler, så at knytte ressourcekravene til
de enkelte forespørgsler i overgangssandsynlighedsmatricen.
Dette kan begrundes ved følgende argument:
$nl$
Det er for stor en simplificering at se på de gennemsnitlige ressourcekrav
for alle forespørgsler, idet der er meget stor forskel i de enkelte
forespørgslers ressourcekrav afhængig af, hvilken vej de passere gennem systemet.
$nl2$
Eksempel:
$nl$
En gennemført søgeforespørgsel passerer gennem OP-systemet ved følgende vej:
$nl$
input -> søge -> opslag -> output
$nl$
Forespørgslen vil benytte både mere CPU-tid og flere pladelagertilgange
end en forespørgsel, der afvises eksempelvis på at et kriterie ikke findes.
I opslagsprocessen vil denne forespørgsel ligeledes i gennemsnit skulle
finde 9.5 kandidater, i modsætning til en telefonnummerforespørgsel,
der kun skal finde en kandidat. Det kunne forventes, at CPU-tidens
fordeling i opslagsprocessen derved ville have følgende udseende:
$nl15$
Hvis CPU-tiden var fordelt som på ovenstående figur, ville den betragtede
belastningsmodel ikke være helt præcis. Imidlertid har målinger vist at
CPU-tiden er fordelt som på nedenstående figur.
$nl15$
Denne kurve tilnærmer sig eksponentialfordelingen, og ved at benytte denne
fordeling vil den betragtede belastningsmodel afgående CPU-tiden ikke
være en stor fejlkilde.
$np$
For antallet af pladelagertilgange vil forholdet muligvis være et andet, 
men da der ikke er mulighed for at måle dette antal, er det besluttet
at fastholde den beskrevne belastningsmodel.
$ns 1,4,4.2.2.Systemindeks.$
$np$
Dette afsnit indeholder en beskrivelse af, hvilke system(præstations)indeks,
det har været overvejet at benytte. I afsnittet vil den i afsnit 2.1 foretagne opdeling
af præstationsindeks i produktive-,reaktions- og udnyttelsesindeks blive fulgt
ved beskrivelsen. Ved hvert indeks anføres, hvordan det måles, og eventuelt
hvorfor det ikke benyttes.
$nl2$
Produktive indeks.
$nl$
Gennemstrømningshastighed.
$nl$
Defineres som antal job der forlader systemet pr. tidsenhed. Denne
størrelse betragtes ikke specifikt, da den ved dette system meget
gerne skulle være det samme som ankomsthastigheden. Normalt vil dette
indeks dog sige noget om systemets evne til at klare en forøget belastning.
$nl2$
Maksimal gennemstrømning.
$nl$
Dette indeks forsøges fundet ved hjælp af simulatoren. I Ferr78 side 190 
angives Kintchine-Pollaczek formel for svartidens afhængighed af
belastningen. På en figur kan svartiden's afhængighed af belastningen
aftegnes som på nedenstående figur. 
$nl15$
Denne kurve vil have en lodret asymptote som svarer til datamaskinens
maksimale gennemstrømning. Ved denne opgave vil belastningen
være tegnet ud af X-aksen, og være antallet af forespørgsler pr time.
Asymtotens skæring med X-aksen vil så være det maksimale antal
forespørgsler OP-systemet kan klare.
$nl2$
Trafik intensiteten.
$nl$
Denne størrelse defineres i følge Ferr78 s.182 som ankomsthastigheden divideret
med afviklingshastigheden. Afviklingshastigheden er 1# gennemsnitlig behandlingstid.
Det kan bemærkes at størrelsen normalt vil være mindre end 1. Denne
størrelse siger noget om hvor mange job der bliver afviklet pr tidsenhed.
Den kan beregnes ved målinger på systemet, men den betragtes ikke i forbindelse med
denne opgave. Dete skyldes at andre størrelser efter min mening udtaler
sig bedre om jobbenes afvikling.
$nl2$
Udvidelsesfaktor.
$nl$
Denne størrelse defineres normalt som svartiden divideret med den ideele
svartid. Den ideele svartid for et job er tiden jobbet befinder sig 
i systemet, hvis det var alene i systemet. Til en given belastning
vil svartiden være forøget, og udvidelsesfaktoren siger så noget om
hvor godt systemet er, når belastningen forøges. Denne faktor betragtes
ikke, da svartidens afhængighed af belastningen efter min mening udtaler
sig om det samme og på en bedre måde. Det vil også være vanskeligt at
beregne den ideele svartid for en forespørgsel ved OP-systemet.
$nl2$
Kølængder.
$nl$
Udover de 4 ovenfor beskrevne produktionsindeks, betragtes kølængde til
de i OP-systemet indgående processer. Disse kan dog ikke måles ved OP-systemet,
men kan kun findes dels ved hjælp af simulatoren og dels ved hjælp  af
Little's lov se Denn78 s235. Little's lov siger at
$nl$$sj$
          ni = XiRi
$rj$
$nl$
hvor ni er den gennemsnitlig kølængde ved enhed i, Xi er outputhastigheden ved
enhed i og Ri er svartiden ved enhed i. Udover kølængden ved de enkelte
processer måles ved hjælp af simulatoren kølængden af aktivkøen i RC8000 (se afsnit 3.4)
$nl2$
$np$
Det ville måske være rimeligt at betragte andre produktionsindeks end de ovenfor
anførte, men jeg har ikke fundet andre indeks der siger mere om systemets ydeevne.
$nl$
2.Reaktionsindeks.
$nl$
Den gennemsnitlige svartid.
$nl$
Dette indeks afhængighed af belastningen betragtes, derudover betragtes indeksets samlede værdi for et helt døgn. Når der foretages målinger
ved hjælp af logfilen ved OP-systemet, vil værdien af den gennemsnitlige svartid
ikke være helt nøjagtig. Svartiden defineres som afgangstiden - ankomsttiden, hbor begge størrelser betragtes i forhold til RC8000. Det er imidlertid ikke muligt
at måle ankomsttiden til RC8000, men derimod kun ankomsttiden til den første proces. Det vil sige køtiden for forespørgslen ved inputprocessen medregnes ikke
i svartiden. 
$np$
Ved simulatoren er der mulighed for at danne sig et billede af, hvor stor denne
fejl er. (Det er her muligt at finde køtiden for inputprocessen)
$np$
Udover gennemsnitlige værdier for svartiden måles også minimal, maksimal og fordelingen
af svartiden. Under fordelingen af svartiden, er det muligt at finde f.eks. hvor mange
procent af forespørgslerne der har en svartid mindre end eksempelvis 2 sekunder.
$nl2$
Procestid og Køtid
$nl$
Disse størrelser som er specifikt defineret i relation til dette evalueringsstudie er defineret i afsnit 6.2 og måles
både ved simulatoren og ved logfilen. De måles for samtlige 4 processer og samlet.
$nl2$
Pladelagertilgangstid
$nl$
Et reaktionsindeks der interesserer er den gennemsnitlige pladelagertilgangstid.
Denne størrelse kan desværre ikke måles i logfilen. Imidlertid kan den findes i en
karakteristik om selve pladelageret. Fra RCSL no 30-m43 (Peter Koch Anderson)
er følegende størrelser hentet:
$nl$
Pladelageret roterer således, at der er 3600 omdrejninger pr. minut. Dvs. at 1
omdrejning tager 16.6 ms. Positioneringstiden for en hovedflytning er mellem 7
og 55 ms. Den gennemsnitlige positioneringstid er ifølge ovenstående manual
fundet til 30 ms. Når hovedet befinder sig på det ønskede spor, skal pladen
normalt dreje 1#2 omgang i gennemsnit for at finde den ønskede sektor. Dette
tager så 8.3 ms. Dvs. den gennemsnitlige pladelagertilgangstid er 38.3 ms.
Overførselstiden af data fra pladelageret sker med en hastighed af 2.4 ord#mikrosekund. Da et segment indeholder 256 ord svarer dette til 0.6 ms pr segment.
$np$
Imidlertid vil en pladelagertilgang ved OP-systemet normalt ikke tage så lang
tid, idet man ved dette system foretager en fremtidig positionering se afsnit 8.2.
$nl2$
Monitor skiftetid.
$nl$
Dette indeks defineres som den tid monitoren er om at skifte mellem to processer.
Brin73 definerer s.241 en monitor som en programudvidelse af maskinstrukturen,
som gør en datamaskine mere attraktiv for multiprogrammering. Monitoren kontrollere input#output, lager beskyttelse og svarer på interrupts.
Størrelsen kan ikke findes i logfilen, og den er ret vanskelig at bestemme.
$nl2$
3.Udnyttelsesindeks.
$nl$
De betragtede udnyttelsesindeks kan opdeles i 2 kategorier:
$nl$$sj$
        1.Udnyttelsen af maskinelle ressourcer.

        2.Udnyttelsen af programmelenheder.
$rj$$nl$
De i litteraturen benyttede undersøgelser af samme art som ved dette speciale,
drejer sig i første række om opstilling af modeller (eks. Queuing Network Models) til undersøgelse af maskinelressourcer. Mun78 skriver direkte at der i litteraturen savnes modellen til undersøgelse af programmelenheder.
I forbindelse med dette speciale, vil indgå en undersøgelse af udnyttelsen af de
indgående enheder. Det vil dog ikke blive forsøgt at opstille en teoretisk model, istedet forsøges de normale modeller om maskinelressourcer anvendt.
$np$
Til beregning af de indgående enheders udnyttelse
 (både maskinelle og programmelle),
benyttes hvad Denn78 betegner udnyttelsesloven ("eng. Utilization law"). Denne
siger at
$nl$$sj$
        Ui = Xi*Si
$rj$$nl$
hvor Ui er udnyttelsesgraden, Xi er behandligshastigheden og Si er den gennemsnitlige behandlingstid. (i angiver at alle størrelser relaterer til enhed i).
$np$
For at beskrive, hvordan den gennemsnitlige behandlingstid opfattes er det nødvendigt at se på de modeller, der er forudsætningen for den ovenfor angivne lov.
Normalt betragtes følgende model:
$nl20$
$nl1$
hvor en CPU og L ydre enheder betragtes. Ved de indgående enheders behandlingstid
forstås den tid et job befinder sig i enheden. Da der kun er et job under udførelse ved hver enhed ad gangen, og hver enhed kan udføre job samtidig, vil jeg opfatte
behandlingstiden, som det jeg under reaktionsindeks har betegnet CPU-tid. Imidlertid
kan ovenfor anførte model ikke direkte anvendes på OP-systemet. Ved OP-systemet vil modellen have følegnde udseende:
$nl20$
$nl$
Den væsentlige forskel er diskkanalen. Dette er en intekligent enhed, der styrer
overførslen af data fra pladelageret til det indre lager. Denne overførsel kan ske
samtidig med, at CPU-en behandler et job. Da det synes intuitivt klart at benytte
samme beregningsformel for udnyttelsen af diskkanalen som ved de andre enheder vil ovenfor anførte formel dog også blive benyttet her,.
Det ovenfor angivne illustrere således, hvilke problemer der er, når teori
om præstationsvurdering skal anvendes i praksis. Dette sidste vil blive uddybet i afsnit 8.4.
$nl$
Helt eksakt betragtes følgende udnyttelsesindeks:
$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.
Kan måles på OP-systemet's logfil.
$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 pladelagerkanalen 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 af diskkanalen defineres dog
som den tid den er optaget og ikke kan benyttes af andre. Dvs.
$nl$$sj$
            8.3 * anatalpladelagertolgange
            ______________________________
                 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.
$rh 1,ANDVENDTE MÅLEREDSKABER$
$ps0$
$ns 1,4,5.Beskrivelse af anvendte målemetoder.$
$np$
Nedenstående afsnit beskriver, hvilke måleredskeaber som anvendes ved
dette evalueringsstudium. Derudover anføres med begrundelse, hvilke eksperimenter, der på
denne baggrund er foretaget. Til målinger på systemet er både anvendt såkaldte maskinel-
og programmelredskaber.
$np$
De programmelredskaber vurderingen anvender bygger på den i afsnit 3.7
beskrevene logfil. Derudover blev foretaget et ret tidskrævende eksperiment
for at finde den gennemsnitlige svartid for en forespørgsel i en RC3500.
Dette mislykkedes, som beskrevet i afsnit 4.3.
$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ølegende 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 skrvet 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. Det vil være for omfattende her at beskrive, hvordan hele statistikken ser ud. Dette kan ses i bilag ??.
Nedenstående afsnit vil således primært beskæftige 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 områder:
$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 ved de mest belastende forespørgselstyper.
$nl$
$lm0$
$np$
For de to første områder 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$
OPSTAT indeholder for disse to forespørgselstyper tal om, hvormange der har været og svartiderne for dem.
Indenfor begge forespørgselstyper opdeles forespørgslerne derudover afhængig af
dels deres kriteriesammensætning og dels af deres antal svar.
$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   afg - ank 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 6.2
$np$
At denne statistik ikke er god nok kan nu illustreres ved, at ovenstående tabel
kun bygger på gennemførte søgeforespørgsler. Fra OPSTAT svarende til samme dag
kan ovenstående tabel således 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, og der findes i programmet
indbygget en masse test af afviklingstekniske årsager.
$np$
De problemer der har været i forbindelse med afviklingen er kort, at
programmet skal udføres hos KTAS. Derudover skal det udføres på en maskine
der normalt benyttes som OP-maskine. Dette bevirker sammen med det faktum
at den normale afviklingstid er ca. 1#2 time, at programmet helst skal
være korrekt første gang. Med korrekt menes her, at programmet ikke må gå
i stå program af afviklingsfejl såsom at dividere med 0 eller lignende.
$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 6.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$
De ovenfor indgående størrelser defineres nu på følgende måde:
$nl2$
SVARTIDEN
$np$
Defineres som afgangstiden - ankomsttiden til kø til pågældende proces.
For inputprocessen gælder specielt, at dette er første proces der behandler
en forespørgsel i RC8000. Dette bevirker, at det ikke er muligt at finde,
hvor lang tid en forespørgsel stå i kø til denne proces.
Svartiden for inputprocessen vil således være det samme som procestiden.
$nl2$
PROCESTID
$np$
Defineres som afgangstiden - ankomsttiden. Her indikere ankomstiden det
tidspunkt, hvor selve processen påbegynder behandlingen af forespørgslen.
Procestiden kan således opfattes som den tid en forespørgsel befinder sig
inde i selve processen. Dvs. det er en sum af den CPU-tid forespørgslen benytter, den tid
der normalt betegnes "over-head"- tid, og den tid der benyttes til pladelagertilgange.
Ved "over-head"-tiden forstås den tid som går dels med at skifte mellem processerne og dels med at behandle forespørgsler ved de andre processer.
$nl2$
KØTID
$np$
Defineres som den tid der går fra en forespørgsel forlader en proces til den
begynder ved en anden proces. Dvs. størrelsen er afhængig af, hvilken vej forespørgslen
passerer gennem systemet.
Ved inputprocessen vil denne af ovenfor angivne årsag altid være 0.
$nl2$
CPUTID
$np$
Defineres som den tid en forespørgsel benytter til egentlig CPU-behandling.
$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$
Den samlede tid er procestiden, og den benyttes til at finde den gennemsnitlige svartid i processerne. Totalprocestid benyttes til at finde den gennemsnitlige ssvartid for en forespørgsel i hele RC8000. Antalfejl og bladninger benyttes til at
finde den ovenfor omtalte overgangssandsynlighedsmatrix.
$np$
De ovenfor angivne størrelser udskrives dels for hver time i døgnet og dels fDe ovenfor angivne størrelser udskrives dels for hver time i døgnet
og dels samlet for hele døgnet. Dette sidste bruges til at sammenligne tallene
med OPSTAT for at give et indtryk af om KTASSTAT finder de rigtige størrelser.
$np$
For bedre at kunne overskue disse 24 observationer hørende til hver time i døgnet
samles observationerne i 4 oversigtstabeller( en for hver proces).
I disse oversigtstabeller er observationerne samlet i grupper svarende til antaltusind forespørgsler. Eksempelvis udskrives, hvor mange
observationer, der havde mellem 0 og 1000 forespørgsler. Her udskrives
så antallet af observationer og gennemsnittet for disse.
$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$
3.Svartidsfordeling og udnyttelsesfordeling.
$np$
Formålet med denne del er præcist at se CPU-ens udnyttelsesgrads afhængighed af
belastningen.
$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. 
$nl2$
5.Ydertilfælde.
$np$
Her udskrives de mindste og største værdier for den samlede svartid.
$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(2,1)  a(3,1)   a(4,1)

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

        opslag      0      0       0      a(4,3)
   
        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(2,1) 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ølegende størrelser findes direkte fra KTASSTAT.
$sj$

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

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

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

         a(4,3) =     1
$rj$
Det er mere vanskeligt at finde a(3,2). 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(3,2)*AS + a(3,1)*AI

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

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

$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$
$sb ^,6$
$ps0$
$rh 1,VURDERING AF OP-SYSTEMET$
$ns 1,4,8.Vurdering af OP-systemet.$
$np15$
Dette afsnit indeholder vurderingen af OP-systemet. Afsnittet er disponeret så
afsnit 8.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 8.2 giver en vurdering af OP-systemet ud fra målinger i logfilen.
Afsnit 8.3 beskriver derefter, hvilke resultater der er opnået ved hjælp af den konstruerede 
simulator. Afsnit 8.4 illustrerer de teoretiske modeller, der er betragtet.
$ns 1,4,8.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 8.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 8.1.2. 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 8.1.2.
$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 8.1.3 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 8.1.3.
$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 8.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 8.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 8.1.4.
$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 8.1.4
$rj$$nl$
De i tabel 8.1.4 anførte svartider kan ikke findes for de enkelte forespørgselstyper. Begrundelsen for dette findes i afsnit 5.2. Med de i tabellen anførte svarider i RC3500 og RC8000
betragtes nu hele OP-systemet som vist på figur 8.1.5. Forkortelserne anført på
figuren står for det samme som angivet ved tabel 8.1.1.
$nl15$
$sj$
                     Figur 8.1.5.
$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.2 %, idet der mindst findes 13 af denne type.
$np$
Begrundelsen  for kun at betragte OP-systemets RC8000-del ved resten af evalueringen, kan nu på baggrund af ovenstående uddybes ved følgende:
$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.
$nl$$lt 1,^^^4)$
Det vil være særdeles kompliceret at implementere en simulator af hele systemet,
hvis også de indgående programmelenheder i de 3 RC3500 skal implementeres. 
(Se appendix 1)
$lm0$$np$
Til det sidste punkt kan anføres, at det meget tidligt ved evalueringsstudiet
blev besluttet, at en simulator skulle konstrueres til systemet. Denne skal
anvendes til at måle størrelser på systemet, som ikke kan måles på OP-systemet.
$ns 1,4,8.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 8.3, 
hvad der herved opnås.
$ns 1,4,8.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 KTASSTAThar 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 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 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,8.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ørgselstype.
$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 8.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 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 afsneder 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 8.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.
$np$
OP-systemets RC8000-dels reaktionsevne på dette antal forespørgsler afhænger nu udover antallet 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 8.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 snadsynligheden for at
forespørgslens CPU-tid befinder sig i intervallet. Kurven viser
således fordelingsfunktionen fo CPU-tiden.
$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 8.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 mellemUd 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 førespørgsler pr time. Dette gøres, fordi det er eneste størrelse i belastningen, der direkte ændres.
Figur 8.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.7 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.2. 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 snkommende i en time.
$ns 1,4,8.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 8.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 svartiden stiger i timer, hvor
antallet af forespørgsler er stort er på figur 8.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 8.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 8.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 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 på figur 
8.2.6 og 8.2.7 er, at den forholdvis store forøgelse i svartiden ikke
kan forklares ved at procestiden  forøges.
$np$
Figur 8.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ørgse 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 ikke vides, 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 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.7 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. (Hvordan disse størrelser er fundet er beskrevet i afsnit 3.7)
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,8.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 gennemsnitlie svartid på 4.9 %. Hvis en kurve for
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 8.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 amngivet 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 8.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, 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 ttil 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 væsentligt større end processkift stammende fra
at en forespørgsel skifter mellem to processer. Det antages derfor at
udnyttelsesgraden ved simulatoren beregnes rigtigt.
$np$
Kurven figur 8.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 8.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 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 8.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. Det bør dog her påpeges, at simulatoren her 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 8.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 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 8.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 8.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. Tabellen viser klart
at når nogle forbedringsforslag skal opstilles bør disse sigte mod at formindske
de størrelser, der har størst stigning når antallet af forespørgsler forøges.
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 datakanalen. 
$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 8.3.5. De viser at 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 8.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
datakan vis i tabel 8.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.
Det må dog siges at den forbedring der opnås er for lille til at det vil være umagen værd
at dublere datakanalen. Intuitivt er det også 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.
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 8.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 fra 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,8.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 8.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, og 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 8.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 8.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 fungerer således at den ud fra hvert kriterie i en søgeforespørgsel
danner en mængde af kandidater. Til sidst for at finde eventuelle kandidater til
forespørgslen dannes så fællesmængden af disse kandidater.
$np$
I stedet for at dublere søgeprocessen kunne en opdeling af søgeprocessen foretages. 
Dette kunne gøres ved at lave en proces som fremfandt kandidaterne svarende til
stednavnet. Stednavnet skal altid være med i en søgeforespørgsel. Hvis
der findes kandidater svarende til dette stednavn, så videresendes disse
kandidater til en anden søgeproces som behandler resten af søgekriterierne.
Ved dette vil næsten samme effekt opnås som ved en dublering af søgeprocessen.
Det væsentlige ved dette forslag er, at det bliver muligt at behandle mere
end en forespørgsel ved søgeprocessen.
$np$
Man kunne tænke sig en endnu større gevinst, hvis en yderlige opdeling af
søgeprocessen blev foretaget. Det er dog ikke oplagt at gøre dette
idet der er særdeles stor variation i de restende søgekriterier.
$np$
Det bør her anføres, at de ovenfor anførte overvejelser ikke er afprøvet
ved simulatoren, idet dette desværre kræver ret store ændringer i simulatoren.
$ns 1,4,8.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$
Figur 8.3.10 viser, hvordan svartiden udvikler sig når antallet
af forespørgsler forøges.
$ns 1,4,8.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 8.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 8.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 8.4.3.
Den findes beskrevet i Buz71.
$nl15$
$sj$
                       figur 8.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 8.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 8.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◀