|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 192256 (0x2ef00) Types: TextFile Names: »D19«
└─⟦3d57f1d87⟧ Bits:30005867/disk03.imd Dokumenter (RCSL m.m.) └─⟦this⟧ »D19«
\f i F_O_R_O_R_D_ Første udgave: RCSL Nr. 31-D632. Der findes følgende tre muligheder for at teste skærmen: - indbygget test - rulleskærms-modulet - SIO og CRT test. Den indbyggede test kører hver gang der tændes for skærmen. Den foretager beregning og kontrol af checksum for ROM-lageret der indeholder basis software, simpel kontrol af CPU'en samt test af ROM-lageret. Rulleskærmsmodulet anvender keyboard og displaydriver samt DMA. Ved hjælp af dette modul kan man visuelt kontrollere at disse drivere og basis softwaren virker. (RC special linien anvendes dog ikke). SIO test kører direkte på SIO'erne, hvorved man kan konstatere om det er driverne eller SIO'en der er fejlramt. CRT testen viser alle de mulige karakterer og attributter på skærmen. Henrik Sierslev A/S REGNECENTRALEN af 1979, oktober 1981 \f ii \f iii I_N_D_H_O_L_D_S_F_O_R_T_E_G_N_E_L_S_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _S_I_D_E_ 1. BESKRIVELSE AF DEN INDBYGGEDE TEST ..................... 1 1.1 Kontrol af checksum ............................... 1 1.2 Test af CPU ....................................... 1 1.3 Test af lager ..................................... 1 2. RULLESKÆRM ............................................. 2 2.1 Loop i indbygget test ............................. 2 3. SIO OG CRT TEST ........................................ 3 4. OMSKIFTERE TIL VALG AF TEST ............................ 4 \f iv \f F_ 1_._ _ _ _ _ _ _ _ _B_E_S_K_R_I_V_E_L_S_E_ _A_F_ _D_E_N_ _I_N_D_B_Y_G_G_E_D_E_ _T_E_S_T_ 1. Når der tændes for skærmen vil denne starte med at gennemløbe en indbygget test som udfører følgende: - kontrol af checksum i ROM-lager - simpel test af CPU - lagertest af RAM-lageret. Hvis basis software er placeret i ROM lager vil dette og de tilhørende drivere blive startet, ellers aktiveres en bootloader. 1_._1_ _ _ _ _ _ _ _K_o_n_t_r_o_l_ _a_f_ _c_h_e_c_k_s_u_m_ 1.1 ROM-lageret er genereret således at en addition af samtlige bytes vil give summen 0. Dette kontrolleres. 1_._2_ _ _ _ _ _ _ _T_e_s_t_ _a_f_ _C_P_U_ 1.2 Alle registre i CPU'en testes idet der sættes en enkelt bit i re- gistrene som skiftes igennem alle 8 positioner. Efter hvert skift sammenlignes registrene. Dette foretages med begge sæt registre. 1_._3_ _ _ _ _ _ _ _T_e_s_t_ _a_f_ _l_a_g_e_r_ 1.3 Hele lageret gennemskrives idet der i hver lagercelle skrives et datamønster bestående af de to adressedele XOR'et sammen. \f F_ 2_._ _ _ _ _ _ _ _ _R_U_L_L_E_S_K_Æ_R_M_ 2. Ved at anvende RC851 programmet (udskifte ROM'en) kan man visuelt teste skærmen. Man kan enten tilslutte skærmen en host maskine eller man kan forsyne skærmen med et blindstik på linieudgangen. 2_._1_ _ _ _ _ _ _ _L_o_o_p_ _i_ _i_n_d_b_y_g_g_e_t_ _t_e_s_t_ 2.1 Ved hjælp af select funktionen (kommando: test) kan man angive at lagertesten skal køre i uendelig løkke. Hvert gennemløb afsluttes med udskrift af startbillede. Der anvendes en udvidet lagertest idet testen gennemløbes 8 gange hvor der ved hvert gennemløb ændres en enkelt bit i hvert ord. Herved får man undersøgt om alle bit i hvert ord kan sættes til både nul og et. Med loop er gennemløbstiden for testen ca. 35 sek. med maksimalt lager. \f F_ 3_._ _ _ _ _ _ _ _ _S_I_O_ _O_G_ _C_R_T_ _T_E_S_T_ 3. Disse ligger i en selvstændig ROM. SIO udgangene til V.24 linie, printer og keyboard skal forsynes med blindstik. Testen sender et ASCII tegn ud på SIO'en, modtager det igen, og sammenligner det med det afsendte tegn. Samtidig med at tegnet sendes, skrives det ud på skærmen. Dette gentages med alle ASCII tegn på alle udgange. SIO-testen kører som en driverproces under basissoftware. CRT-testen danner et skærmbillede hvor alle tegn og alle atribut- ter er anvendt. Den samlede test loopes, idet den først tester de fire SIO ud- gange n for n, hvorefter billedet fra CRT-testen vil stå på skærmen i ca. 30 sek. \f F_4_._ _ _ _ _ _ _ _ _O_M_S_K_I_F_T_E_R_E_ _T_I_L_ _V_A_L_G_ _A_F_ _T_E_S_T_ 4. Floppy interface kortet er forsynet med 12 omskiftere der kan be- nyttes til at vælge mellem de fire SIO tests, CRT test og loop i indbygget test. Ready skal altid være 0 og switch skal altid være 1. (Rød prik synlig = 1). De øvrige fortolkes på følgende måde: bit værdi betydning 0 1 vælg test ud fra omskiftere 1 1 SIO test V.24 linie 2 1 SIO test printer 3 1 SIO test keyboard 4 1 SIO test circuit 5 1 CRT test 6 1 Stop efter fejl 7 x Hvis maxi = 0 og mini = 1 vil testen køre i uendelig løkke i checksum, CPU og lagertest. Efter hvert gennemløb udskrives even- tuelle fejl, eller "selftest ok". Der anvendes den udvidede lagertest beskrevet under loop i ind- bygget test. Hvis maxi = 1 og mini = 0 vælges de tests der er sat med bit 1-5. Hvis bit 6 er sat, vil testen stoppe efter en fejludskrift. Hvis bit 0 er 0, eller floppy kortet ikke er monteret, vil testen anvende følgende værdier: bit 0 6 maxi mini værdi 0 1 1 1 1 1 0 1 0 \f E_k_s_e_m_p_l_e_r_ Loop i checksum, CPU og lagertest bit 0 6 maxi mini værdi 1 x x x x x x 0 1 Circuit test; stop efter fejl bit 0 6 maxi mini værdi 1 0 0 0 1 0 1 1 0 \f F_ \f INDHOLDSFORTEGNELSE REFERENCER side 8 1 FORORD 9 2 INDLEDNING 10 3 BOSS12 3.1 Operativsystem12 3.1.1 Ressourceadministration13 3.1.2 Jobafvikling13 3.1.2.1 Account file 13 3.1.3 Privilegeret funktion 14 3.2 Et job 15 3.3 Brugerkatalog19 3.4 Jobfil 20 3.4.1 Annullationstegn 20 3.4.2 Rettelseskommandoer 20 3.4.2.1 Indsættelse 21 3.4.2.2 Sletning 21 3.4.2.3 Modificer 21 3.4.3 Udskrivning 22 3.4.3.1 VERIFY 22 3.4.3.2 LIST 23 3.4.3.3 NOTATION 23 3.4.4 Jobfilhåndtering 24 3.4.4.1 GET 24 3.4.4.2 CLEAR 24 3.4.4.3 SAVE 25 3.4.5 Eksempler 25 3.4.5.1 Linienummerering 25 3.4.5.2 Den sidste linie 26 3.4.5.3 NO ROOM 26 3.4.5.4 Overførsel til basisfilen 27 3.4.6 Opgaver 27 3.5 Ressourcer 28 5.1 Ressourcebestilling 28 3.5.2 Primær lager 29 3.5.3 Regnetid 30 3.5.4 Ydre enheder 30 3.5.5 Læser 31 3.5.5.1 Mode 33 3.5.6 Printer 33 3.5.7 Perforator 34 3.5.8 Båndstation 35\f 3.6 BOSS-kommandoerside 35 3.6.1 Jobfilmanipulation 36 3.6.2 Jobtilmelding 36 3.6.3 Ressourcebestilling37 3.6.4 Udskrivning37 3.6.5 Orientering38 3.6.6 Baggrundslager39 3.6.7 Operatørindgreb39 3.6.8 Restriktioner40 3.6.9 Opgaver40 3.7 Meddelelser fra BOSS40 4 BAGGRUNDSLAGER43 4.1 Område43 4.2 Katalog45 4.2.1 Katalogindgang45 4.2.2 Kataloghåndtering46 4.3 Scope47 4.4 Kataloget og BOSS51 4.4.1 Oprettelse52 4.4.2 Ændring53 4.4.2.1 SCOPE53 4.4.2.2 RENAME53 4.4.3 Sletning54 4.4.4 Udskrivning54 4.5 Kataloget og hjælpeprogrammer55 4.5.1 Oprettelse55 4.5.2 Ændring55 4.5.2.1 SCOPE56 4.5.2.2 RENAME56 4.5.3 Sletning57 4.5.4 Udskrivning57 4.5.5 Opgaver58 4.6 Katalogindgang58 4.6.1 Første slice59 4.6.2 Navnenøgle60 4.6.3 Katalognøgle60 4.6.4 Base60 4.6.5 Navn61 4.6.6 Størrelse61 4.6.7 Dokumentnavn62 4.6.8 Dato62 4.6.9 Diverse62 4.7 Flere pladelagre63 4.8 Ressourcer65 4.8.1 TEMP65\f 4.8.2 PERMside 65 4.9 Eksempler 66 5 MONITOR68 5.1 Proces69 5.1.1 Intern proces69 5.1.1.1 Proces hierarki69 5.1.1.2 Procestilstand71 5.1.2 Perifer proces72 5.1.3 Arealproces72 5.1.4 Proceshåndtering73 5.2 Intern kommunikation73 5.3 Ressourcer75 5.3.1 Intern proces75 5.3.2 Perifer proces75 5.3.3 Arealproces75 5.3.4 Message buffer76 5.4 Kataloget76 5.5 Arbejdsdeling77 5.5.1 CPU-tid77 5.5.2 Overvågning77 5.5.3 Ressourcer78 5.5.4 Dataoverførsel78 5.5.5 Politik78 6 FILE PROCESSOR79 6.1 Programafvikling79 6.2 FP-kommando81 6.2.1 Simpel FP-kommando81 6.2.2 Sammensat FP-kommando83 6.3 Filer84 6.3.1 CURRENT INPUT FILE85 6.3.2 CURRENT OUTPUT FILE86 6.3.3 Zonerne IN og OUT86 6.3.4 Opgaver87 6.3.5 PRIMOUT88 6.4 Jobprogrammering88 6.4.1 Tilstandsvariable88 6.4.2 Programmering89 6.4.3 Opgaver90 6.5 Hjælpefunktioner92 6.6 Fejludskrifter92 7 HJÆLPEPROGRAMMER94 7.1 Jobkontrol94 7.2 Kataloghåndtering95\f 7.3 Datahåndteringside 95 7.4 Konventioner96 7.5 Modekind97 7.6 Fildescriptorer97 8 JOBKONTROL99 8.1 Styring af CURRENT INPUT/OUTPUT99 8.1.1 I99 8.1.2 END100 8.1.3 O100 8.1.4 Opgave101 8.1.5 ONLINE102 8.2 Jobprogrammering103 8.2.1 MODE103 8.2.2 IF104 8.2.3 REPEAT105 8.2.4 Opgave106 8.3 Dialog med BOSS106 8.3.1 Job106 8.3.1.1 Jobtilmelding106 8.3.1.2 REPLACE107 8.3.1.3 NEWJOB108 8.3.1.4 Jobafslutning109 8.3.2 Printer109 8.3.3 Disc110 8.3.4 Magnetbånd111 8.3.4.1 MOUNT113 8.3.4.2 RELEASE114 8.3.5 Operatør115 8.3.5.1 OPCOMM115 8.3.5.2 OPMESS116 9 KATALOGHÅNDTERING117 9.1 SET117 9.2 RENAME118 9.3 SCOPE119 9.4 CLEAR121 9.5 Udskrivning122 9.5.1 LOOKUP123 9.5.2 SEARCH124 9.6 Opgaver125 10 DATAHÅNDTERING127 10.1 Dataoverførsel127 10.1.1 COPY128\f 10.1.2 MOVEside 129 10.1.3 Opgaver130 10.1.4 SAVE131 10.1.5 LOAD133 10.1.6 Opgaver135 10.2 Udskrivning135 10.2.1 HEAD135 10.2.2 HEADPUNCH136 11 AFSLUTNING138 11.1 Virtuelt lager138 11.2 Flere operativsystemer140 11.3 Flere datamater141 12 OPGAVELØSNINGER144 INDEX \f F_ REFERENCER 1. BOSS 2 USER>S MANUAL RCSL 42-i 0952 2. BOSS 2 OPERATOR>S MANUAL RCSL 31-D498 3. SYSTEM 3 UTILITY PROGRAMS PART ONE RCSL 31-D364 4. SYSTEM 3 UTILITY PROGRAMS PART TWO RCSL 31-D494 5. SYSTEM 3 UTILITY PROGRAMS PART THREE RCSL 31-D379 6. MONITOR 3 RCSL 31-D300 7. MULTIPROGRAMMING SYSTEM RCSL 55-D140 8. OPERATING SYSTEM PRINCIPLES PER BRINCH HANSEN PRENTICE HALL ISBN 0-13-637843-9 9. ALGOL 6. USER>S MANUAL RCSL 31-D322 10. RC FORTRAN RCSL 31-D392 11. SLANG ASSEMBLER RCSL 42-i 0785 12. RC NET RCSL 43-r 1635 \f 1 FORORD I lang tid har det været et ønske for A/S Regnecentralen at råde over lærebøger i Regnecentralens basisprogrammelsystemer, så der fandtes mulighed for indføring i systemerne på en måde der var mere overskuelig, end den, læsning af manualer kan give. Dette behov er blevet stadig mere presserende i takt med at Regnecen- tralen har fået flere og flere administrative kunder. Det er derfor en meget stor glæde for Regnecentralen med den fore- liggende bog, at have startet udgivelsen af en lærebogsserie. Bogen er skrevet af programmør Kjeld Christensen fra Handelshøj- skolens datacenter i Århus. Kjeld Christensen skal have megen tak for godt og konstruktivt samarbejde i forbindelse med arbejdet på denne bog, ligesom der skal lyde en tak til Handelshøjskolens datacenter for en positiv holdning til projektet. Bogen er tænkt anvendt i forbindelse med Regnecentralens kursus- program, men det er samtidig tilstræbt, at den skal kunne læses som selvstudium. Der er derfor i lærebogen anført løsningsforslag til opgaverne. Det skal understreges, at denne bog er en lærebog og ikke en manual. Dvs. at bogen ikke beskriver basisprogrammellets samlede muligheder, men tværtimod kun en begrænset og overskuelig del. Det må derfor tilrådes, at man tidligst muligt efter studiet af bogen tvinger sig selv til at anvende de relevante manualer i det daglige arbejde, så man ikke får en for stor binding til lærebo- gen. Er der forhold, man er i tvivl om, har man jo altid mulighed for at gå tilbage og læse et enkelt afsnit i lærebogen. Vi håber med denne udgivelse at have dækket det aktuelle behov indenfor operativsystemer og at vi med senere udgivelser vil få dækket øvrige hovedområder. November 1978 A/S Regnecentralen \f F_ 2 INDLEDNING Basisprogrammellet på RC 8000 opdeles i følgende grupper: . OPERATIVSYSTEM . FILE PROCESSOR . HJÆLPEPROGRAMMER. Denne opdeling af basisprogrammellet i 3 grupper er værd at lægge mærke til af flere grunde. For det første afstikker opdelingen helt klare grænselinier i basisprogrammellet, hvorved vedligehol- delse og udbygning forenkles. For det andet må man ved brugen af datamaten gøre sig klart, hvilke dele af basisprogrammellet man ønsker at henvende sig til. For det tredje kan en række funktio- ner udføres af forskellige dele af basisprogrammellet. For det fjerde udveksles der oplysninger mellem de forskellige program- mer. B_O_S_S_ _-_ _P_r_i_v_i_l_e_g_e_r_e_t_ _f_u_n_k_t_i_o_n_ _-_ _M_O_N_I_T_O_R_ T_ RC 8000 er sædvanligvis udstyret med operativsystemet BOSS. BOSS har til opgave at gøre datamaten attraktiv og let at anvende samt &_ at sikre en god udnyttelse af maskinressourcerne. BOSS varetager herved et operativsystems traditionelle opgaver som ressource- administration, jobafvikling og overvågning. Dette indebærer, at en række funktioner kun kan udføres af operativsystemet. Disse funktioner kaldes privilegerede og kan kun udføres af den cen- trale del af operativsystemet. Denne del udgør en selvstændig enhed, der kaldes MONITOR. Blandt de privilegerede funktioner kan nævnes input/output operationer. Når en sådan operation ønskes udført, kan det kun ske ved at bede MONITOR om at udføre funk- tionen. BOSS må således i lighed med andre programmer henvende sig til MONITOR, når en privilegeret funktion ønskes udført. Ud- skillelsen af operativsystemets kerne i en selvstændig enhed, be- virker at det er forholdsvis let at implementere nye operativsy- stemer til erstatning for eller supplement til BOSS, da MONITOR kan understøtte ethvert operativsystem. \f T_ F_I_L_E_ _P_R_O_C_E_S_S_O_R_ FILE PROCESSOR anvendes under jobafviklingen til at læse og fortolke styrekommandoer samt at starte de ønskede programmer. FP, som FILE PROCESSOR sædvanligvis benævnes, indeholder endvidere en række hjælpefunktioner, man kan anvende ved assemblerprogrammering. T_ H_J_Æ_L_P_E_P_R_O_G_R_A_M_ Hjælpeprogrammerne (UTILITY PROGRAMS) opdeles i 3 grupper i over- ensstemmelse med deres funktioner: . Jobkontrol Programmer, der påvirker jobbets afvikling . Katologhåndtering Programmer, der modificerer eller udskriver kataloget. . Datahåndtering. Programmer, der modificerer eller udskriver data. Oversættere henregnes også til denne gruppe. I denne bog omtales kun de hyppigst anvendte hjælpeprogrammer og deres almindeligste anvendelsesmåder. En behandling af de for- skellige programmeringssprog (ALGOL, FORTRAN og SLANG) og de for- skellige filhåndteringssystemer (INDEXSEQUENTIAL FILES og CONNEC- TED FILES SYSTEM) falder ligeledes udenfor rammerne af denne bog. T_ A_P_P_L_I_K_A_T_I_O_N_S_P_R_O_G_R_A_M_ Programmer, der udarbejdes af brugerne, placeres i programmel- strukturen på samme niveau som hjælpeprogrammerne. Det er således &_ let at supplere denne gruppe programmer med nye. \f F_ 3 BOSS Dette kapitel indledes med et kort redegørelse for, hvilke opga- ver et operativsystem normalt forventes at varetage. Da denne redegørelse er generel, betragtes operativsystemet som en helhed, og den specielle fordeling af opgaverne i RC 8000 mellem MONITOR og BOSS berøres derfor ikke, men gemmes til kapitel 5. I den re- sterende del af kapitel 3 behandles BOSS-kommandoer og afviklin- gen af job. Terminalkørslen indtager en central plads. 3.1 OPERATIVSYSTEM Ved et operativsystem forstås et styre- og overvågningsprogram, der har til opgave at lette og effektivisere brugen af datamaten. Disse opgaver kræver, at operativsystemet permanent må befinde sig i det primære lager, hvorved der naturligvis bliver til- svarende mindre plads til rådighed for brugerprogrammerne. T_ PRIMÆR LAGER O.S. &_ Figur 3.1 \f Blandt operativsystemets vigtigste opgaver kan nævnes: Administration af datamatens ressourcer Overvågning og afvikling af job Udførelse af privilegerede funktioner - herunder Udførelse og overvågning af datatransporter. T_ 3.1.1 R_e_s_s_o_u_r_c_e_a_d_m_i_n_i_s_t_r_a_t_i_o_n_ Denne administration omfatter samtlige datamatens ressourcer, &_ hvoraf følgende kan nævnes: REGNETID PRIMÆR LAGER BAGGRUNDSLAGER YDRE ENHEDER. Samtlige datamatens ressourcer ejes af operativsystemet, men de kan enkeltvis udlånes. Et job behøver altid forskellige ressour- cer. Regnetid er således altid nødvendig. J_o_b_s_p_e_c_i_f_i_k_a_t_i_o_n_ _-_ _b_r_u_g_e_r_k_a_t_a_l_o_g_ _-_ _s_t_a_n_d_a_r_d_v_æ_r_d_i_ De nødvendige ressourcer må jobbet rekvirere hos operativsystemet. Dette gøres normalt i en såkaldt JOBSPECIFIKATION. Udelades det- te, tildeles jobbet alligevel ressourcer, men det sker da på grundlag af oplysninger, der findes i et BRUGERKATALOG. BRUGER- KATALOGET indeholder oplysning om alle, der må anvende datamaten. Der findes endvidere oplysninger om hvilke ressourcer, der skal tildeles, såfremt det ikke explicit anføres i JOBSPECIFIKATIONEN. Denne udeblivelsesværdi benævnes STANDARDVÆRDI i manualerne. I BRUGERKATALOGET er der endvidere beskrevet maximalværdier for, hvor mange ressourcer den enkelte kan rekvirere. T_ 3.1.2 J_o_b_a_f_v_i_k_l_i_n_g_ 3.1.2.1 A_c_c_o_u_n_t_ _f_i_l_e_.Operativsystemet bestemmer på grundlag af en priori- teringsalgoritme i hvilken rækkefølge, de forskellige tilmeldte &_ job skal afvikles. Under afviklingen overvåger operativsystemet jobbet og forhindrer det i at foretage sig noget ulovligt så som at forsøge at bruge ressourcer, der ikke er rekvireret, eller at\f genere andre job. Operativsystemet bogfører endvidere ethvert jobs ressourceforbrug i en konteringsfil (ACCOUNTFILE). Sammen- holdes oplysningerne i konteringsfilen med oplysningerne i BRU- GERKATALOGET, foreligger det nødvendige grundlag til betalings- beregning for afbenyttelse af datamaten samt til udarbejdelse af kørselsstatistikker. T_ 3.1.3 P_r_i_v_i_l_e_g_e_r_e_t_ _f_u_n_k_t_i_o_n_ For at operativsystemet kan udøve den fulde kontrol over data- maten, er det nødvendigt, at visse funktioner kun kan udføres af operativsystemet. Input/output udførelse er som nævnt en privi- &_ legeret funktion. Dette belyses yderligere i kapitel 5. T_ O_p_g_a_v_e_ _3_._1_:_ I en datamat hvor operativsystemet er i stand til at afvikle to jobs samtidigt, afgives ordre til at afvikle 5 job. De 5 job &_ kræver følgende ressourcer: T_ JOB KØRETID I MIN. BÅNDSTATIONER 1 15 0 2 180 1 3 3 2 4 3 0 &_ 5 1 1 Bestem en hensigtsmæssig prioriteringsalgoritme. Bestem række- følgen for jobafviklingen, når datamaten er udstyret med 2 båndstationer. Under afvikling af et enkelt job med en estimeret køretid på en time, modtager operativsystemet besked om at afvikle følgende job: T_ JOB KØRETID I MIN. BÅNDSTATIONER 6 5 0 &_ 7 10 0 \f Bestem afviklingsrækkefølgen for jobbene i følgende situationer. T_ 1. Det kørende job har forbrugt 179 min. af den estimerede køretid. T_ 2. Det kørende job har forbrugt 30 min. af den estimerede &_ køretid. Modificer om nødvendigt, den foreslåede prioriteringsalgoritme. Flere job kan tænkes at rekvirere nøjagtig de samme ressourcer. Hvilke job bør da afvikles først? Modificer om nødvendigt pri- oriteringsalgoritmen. T_ 3.2 ET JOB Ved et job forstås en afgrænset arbejdsopgave, som det pålægges datamaten at udføre. Dette indebærer, at et eller flere program- mer skal benyttes. Før det kan ske, må jobbet tilføres datamaten. &_ Det kan f.eks. gøres ved en terminal. Eksempel 3.1 viser, hvorledes et meget simpelt job kan indtastes og bringes til afvikling under operativsystem BOSS. Jobbet består blot i at oversætte og køre et lille ALGOL-program. For at tyde- T_ liggøre den nødvendige terminalkonversation er indtastede linier markeret med en pil. &_ -' T_ Kontakt med operativsystemet opnås indledningsvis med at sende et ATTENTION-signal, hvilket er markeret ved følgende symbol: &_ x \f T_ E_k_s_e_m_p_e_l_ _3_._1_ x ATT -' boss type user name and project number -'kc 1234 in: 1977.09.15 13.10 &_ boss2 operating system T_ L_O_G_I_N_-_r_u_t_i_n_e_ Denne indledende konversation kaldes LOGIN-rutinen. Ved at angive &_ en brugeridentifikation opnås tilladelse til at benytte termina- len, hvorved der stilles en såkaldt JOBFIL til rådighed for ter- minalbrugeren. Selve jobbet kan nu indtastes til JOBFILEN, og det gøres ved linievis at indtaste de forskellige oplysninger. Hver linie skal indledes med et linienummer, der adskilles fra det egentlige indhold med mellemslag. T_ -' 10 p=algol -' 20 begin integer a,b; -' 30 read(in,a,b); -' 40 write(out,a,b); &_ -' 50 end T_ -' 60 p -' 70 3 4 &_ -' 80 finis Jobbet består af en styrekommando (linie 10), der aktiverer AL- GOL-oversætteren. Programmet, der skal oversættes, findes i de følgende 4 linier. Det er et beskedent program, der blot kan indlæse 2 tal og udskrive de samme 2 tal. Linie 60 indeholder en styrekommando, der aktiverer det oversatte program. Inddata til dette er anført på den følgende linie. Linie 80 består af en styrekommando, der fortæller, at jobbet skal af- sluttes. Efter indtastning af linierne 10-80 foreligger selve jobbet, og det skal nu bringes til afvikling. \f -' go &_ finis kc0 at 13.12 T_ G_O_ GO-kommandoen fortæller BOSS, at jobbet skal overføres til JOB- &_ KØEN. BOSS vil herved foretage en prioritetsberegning (analog til opgave 3.1) for samtlige job i JOBKØEN og udvælge de job, der først skal afvikles. Et forventet afslutningstidspunkt bliver endvidere beregnet og udskrevet til terminalbrugeren. T_ J_O_B_N_A_V_N_ Af udskriften fremgår endvidere under hvilket navn jobbet afvik- &_ les, nemlig KC0. Tilbage er blot at vente på udskrifterne, der produceres af jobbet, idet nye job ikke kan indtastes før det tilmeldte job er afsluttet. I sammenhæng vil hele terminalkonver- T_ sationen se således ud: x att -'boss LOGIN-rutine type user name and project number -'kc 0 1234 in:1977.09.15 13.10 &_ boss2 operating system T_ -' 10 p=algol JOBFIL -'20 begin integer a,b; -'30 read(in,a,b); -'40 write(out,a,b); -'50 end -'60 p -'70 3 4 &_ -'80 finis -' go JOBTILMELDING finis kc0 at 13.12 \f T_ 1: begin Kørselsudskrifter fra 2: end ALGOL algol end 17 3 4 Udskrifter fra end 9 programmet end 2 sec job kc0 log op date 1977.09.15 13.11.10 '' Udskrift fra BOSS -' logout Afsluttende BOSS- &_ logged in 3 min operations 3 kommando og udskrift. Vi ser, at terminalbrugen afsluttes med LOGOUT-kommandoen. BOSS besvarer denne kommando ved at udskrive, hvor længe terminalen er blevet benyttet og hvor mange operationer, der er blevet udført. Disse oplysninger gemmes endvidere i konteringsfilen. T_ F_P_-_K_o_m_m_a_n_d_o_ I eksempel 3.1 blev der anvendt forskellige kommandoer. Styre- &_ kommandoerne, der indgik i selve jobbet, kaldes FP-kommandoer, da de tolkes af FP. Konventionerne for programkald og dataangivelse i JOBFILEN findes derfor først beskrevet i kapitel 6, der omhand- ler FP og FP-kommandoer. T_ B_O_S_S_-_K_o_m_m_a_n_d_o_ Adskillige BOSS-kommandoer omtales i dette kapitel. Ved en BOSS- &_ kommando forstås et direktiv til BOSS om at udføre en given hand- ling. Handlingen vil omgående blive udført. BOSS-kommandoer anvendes til mange forskellige formål. GO tilmel- der et job, og LOGOUT afslutter terminalbrugen, som vi allerede har set i eksempel 3.1. T_ K_I_L_L_ &_ KILL-kommandoen afbryder et tilmeldt job. \f T_ E_k_s_e_m_p_e_l_ _3_._2_ x '' -'kill Tilladelse til at indtaste kommandoen opnås ved at sende ATTEN- TION-signal. Det tilmeldte job vil straks blive afbrudt. En række BOSS-kommandoer vil blive behandlet i dette og de føl- gende kapitler. T_ 3.3 BRUGERKATALOG P_r_o_j_e_k_t_ _-_ _b_r_u_g_e_r_n_a_v_n_ _-_ _b_e_s_k_y_t_t_e_l_s_e_ Samtlige brugere, der kan benytte datamaten, er registreret i &_ BRUGERKATALOGET. Brugerne er opdelt i grupper, der kaldes projek- ter, og som identificeres ved et projektnummer. Hver bruger er udstyret med et brugernavn, der sammen med projektnummeret må an- føres ved LOGIN-rutinen. Tilhørsforholdet til et projekt bestem- mer brugerens adgang til magnetbånd og baggrundslager. Medlemmer i det samme projekt kan således anvende hinandens magnetbånd, mens andre kan udelukkes fra dette. På baggrundslageret er et projekts ressourcer endnu stærkere beskyttet, idet kun medlemmer i projektet har adgang til ressourcerne. T_ R_e_s_s_o_u_r_c_e_r_ For hvert projekt indeholder brugerkataloget oplysning om hvilke &_ ressourcer, der er til rådighed for projektets medlemmer. For- skellige andre oplysninger vedrørende restriktioner i ressource- forbruget eller standardtildeling af ressourcer, kan yderligere være specificeret såvel for hele projektet, som for de enkelte medlemmer. Foruden at hindre misbrug bidrager BRUGERKATALOGET således også til at lette brugen af datamaten. \f T_3.4 JOBFILEN A_n_v_e_n_d_e_l_s_e_:_ &_ JOBFILEN anvendes primært, som det fremgår af navnet, til at rumme et job. Under indtastningen (jvf. eks. 3.1) kan der let begås fejl. Skaden herved er imidlertid begrænset, da der er rettelseskommandoer til rådighed, hvorved det er muligt at modificere indholdet af JOBFILEN. Denne facilitet kan benyttes til flere formål, thi det er muligt at overføre indholdet af et område til JOBFILEN, ligesom overfør- sel den modsatte vej kan finde sted. T_ 3.4.1 A_n_n_u_l_l_a_t_i_o_n_s_t_e_g_n_ Fejl, der opdages i indtastningsøjeblikket, kan rettes med annul- lationstegn. T_ Linieannullation - tegnannullation: % sletter en linie &_ & sletter det sidst tastede tegn. T_ E_k_s_e_m_p_e_l_ _3_._3_:_ 10 denne linie annulleres% 30 p=ag&lgol &_ 40 bigin&&&&egin I den sidste linie i eksempel 3.3 er tegnannullationen anvendt flere gange i træk. Annullationstegnet sletter de oprindelige tegn på linien successivt fra højre mod venstre. T_ 3.4.2 R_e_t_t_e_l_s_e_s_k_o_m_m_a_n_d_o_e_r_. Det er muligt: . at indsætte . at slette . at modificere &_ linier i JOBFILEN. Samtlige linier i JOBFILEN er forsynet med et linienummer. Under indtastning kan linienummereringen vælges frit af terminalbruge-\f T_ ren. Linierne lagres i stigende linienummerorden uanset indtast- ningsrækkefølgen. 3.4.2.1 I_n_d_s_æ_t_t_e_l_s_e_._ Indtastningen af jobbet i eksempel 3.1 bestod i at indsætte en række linier i en tom JOBFIL. Nye linier indsættes altså ved at indtaste linienummeret og linieindholdet adskilt med mellemslag. T_ E_k_s_e_m_p_e_l_ _3_._4_35 a:=a+b; &_ Hvis der i forvejen findes en linie med det anførte linienummer, vil den sidst tastede linie erstatte den oprindelige linie. T_ O_p_g_a_v_e_ _3_._2_ Bestem JOBFILENS indhold, når følgende indtastning har fundet &_ sted: 10 p=algol 20 integer sum,a,b; 30 write(out,sum); 15 begin 40 end 10 u=algol list.yes 25 read(in,a,b); 26 sum:=a+b; Indsæt en tom linie umiddelbart efter linie 10. T_ 3.4.2.2 S_l_e_t_n_i_n_g_._ Indtastning af et linienummer alene bevirker, at den anførte linie slettes i JOBFILEN. &_ E_k_s_e_m_p_e_l_ _3_._5_:_ 40 T_ 3.4.2.3 M_o_d_i_f_i_c_e_r_._ En linie kan modificeres og følgende må da anføres: . Linienummeret. . Det grafiske billede, der skal erstattes. &_ . Det nye grafiske billede, der skal indgå i stedet. \f Oplysningerne skal adskilles med det samme skilletegn. Skilleteg- net må naturligvis ikke indgå i de grafiske billeder. T_ E_k_s_e_m_p_e_l_ _3_._6_:_ 50 sum:=a+b; 50/sum/beløb Det grafiske billede "sum" erstattes af "beløb" i linie &_ 50. / er anvendt som skilletegn. S_k_i_l_l_e_t_e_g_n_:_ Skilletegnet kan frit vælges under hensyntagen til følgende re- striktioner: T_ 1. Et mellemslag anført umiddelbart efter linienummeret bevirker indsættelse af hele linie, og mellemslag kan derfor ikke an- &_ vendes. T_ 2. Skilletegnet må ikke indgå i de grafiske billeder. &_ / > " kan f.eks. vælges som skilletegn. T_ F_u_n_k_t_i_o_n_:_ Det først anførte grafiske billede opsøges fra venstre mod højre på linien. Første gang det mødes, foretages rettelsen, og modifi- &_ kationen er gennemført. O_p_g_a_v_e_ _3_._3_ JOBFILEN fra opgave 3.2 ønskes rettet så variabelnavnet "a" over- alt bliver erstattet af "salg". T_ 3.4.3 U_d_s_k_r_i_v_n_i_n_g_ Hele JOBFILEN eller dele af den kan udskrives ved anvendelse af &_ forskellige kommandoer. T_ 3.4.3.1 V_E_R_I_F_Y_._ Den sidst indtastede linie eller den senest modificerede linie kan udskrives med VERIFY-kommandoen. &_ E_k_s_e_m_p_e_l_ _3_._7_:_ verify \f En given linie kan udskrives ved yderligere at anføre linienumme- ret. T_ E_k_s_e_m_p_e_l_ _3_._8_:_ verify 10 En afgrænset liniegruppe kan udskrives ved yderligere at tilføje &_ antallet af linier, der skal udskrives. T_ E_k_s_e_m_p_e_l_ _3_._9_:_ verify 10 4 &_ Linie 10 samt de 3 efterfølgende linier bliver udskrevet. T_ 3.4.3.2 L_i_s_t_. Hele JOBFILEN kan udskrives med LIST-kommandoen. E_k_s_e_m_p_e_l_ _3_._1_0_:_ list Anføres yderligere et linienummer, vil den specificerede linie &_ samt alle linier med et højere linienummer blive udskrevet. E_k_s_e_m_p_e_l_ _3_._1_1_:_ list 30 Et linieinterval kan udskrives ved at anføre nedre og øvre grænse for intervallet. E_k_s_e_m_p_e_l_ _3_._1_2_:_ list 30 97 T_ 3.4.3.3 N_o_t_a_t_i_o_n_. De mulige anvendelser af LIST-kommandoen er i ref. 1 &_ beskrevet således: 1 1 list første linie' sidste linie' 0 0 T_ De forskellige symboler har følgende betydning: ' Indholdet mellem disse tegn består af en forklarende tekst. første linie' fortæller således, at linienum- &_ meret på den første linie i intervallet skal anføres. \f T_ 1 0 Indholdet mellem klammerne kan forekomme det specifice- rede antal gange. 0 viser at indholdet kan udelades. &_ 1 viser at indholdet højst må forekomme 1 gang. T_ M_e_l_l_e_m_s_l_a_g_ Skilletegn mellem de forskellige parametre er ikke anført, da &_ mellemslag altid anvendes i forbindelse med BOSS-kommandoer. T_ O_p_g_a_v_e_ _3_._4_ &_ Beskriv VERIFY-kommandoen ved hjælp af ovenstående notation. T_ 3.4.4 J_o_b_f_i_l_h_å_n_d_t_e_r_i_n_g_ &_ Et område på baggrundslageret kan overføres til JOBFILEN ved GET- kommandoen. Området udnævnes herved til BASISFIL. CLEAR-kommandoen frigiver en BASISFIL, hvorved området returnerer til normal status. Med SAVE-kommandoen overføres indholdet af JOBFILEN til et område. Områder er identificeret ved navne, og reglerne herfor findes beskrevet i kapitel 4. T_ 3.4.4.1 G_E_T_. E_k_s_e_m_p_e_l_ _3_._1_3_:_ get text &_ Området TEXT overføres til JOBFILEN. S_y_n_t_a_k_s_:_ get områdenavn' En mulig BASISFIL frigives, og det specificerede område gøres til BASISFIL, hvorved indholdet overføres til JOBFILEN. Linierne num- mereres, 10.20.30... etc. Denne sekvens afbrydes, når en side- skiftkarakter (FORM FEED) mødes. Det næste linienummer bliver det nærmeste højere multiplum af 1000 plus 10. T_ 3.4.4.2 C_L_E_A_R_. E_k_s_e_m_p_e_l_ _3_._1_4_:_ clear &_ Indholdet af JOBFILEN slettes og en evt. BASISFIL frigives. \f S_y_n_t_a_k_s_:_ clear Indholdet af JOBFILEN slettes og en evt. BASISFIL frigives. Kom- mandoen har flere anvendelsesmuligheder som beskrevet i kapitel 4. T_ 3.4.4.3 S_A_V_E_. E_k_s_e_m_p_e_l_ _3_._1_5_:_ save rctext &_ JOBFILEN overføres til området RCTEXT. S_y_n_t_a_k_s_:_ save områdenavn' Indholdet af JOBFILEN overføres til baggrundslageret i et område med det specificerede navn. Hvis der findes et LOGIN-område (jvf. kapitel 4) med det anførte navn, overføres indholdet til dette område. Hvis ikke oprettes et nyt LOGIN-område med det anførte navn, og indholdet overføres hertil. Et LOGIN-område er karakte- riseret ved, at det besvares, indtil terminalbrugeren fjerner det, evt. ved anvendelse af LOGOUT-kommandoen. T_ 3.4.5 E_k_s_e_m_p_l_e_r_ 3.4.5.1 L_i_n_i_e_n_u_m_m_e_r_e_r_i_n_g_. Et job indtastes således: 1 p=algol &_ 2 begin 3 write(out,:eksempel:'); 4 end 5 finis T_ Anvendes kommandoerne: save rcområde get rcområde &_ list \f T_ fremkommer følgende udskrifter: 10 p=algol 20 begin 30 write(out,:eksempel:'); 40 end 50 finis &_ De nye linienumre er herefter gældende. T_ 3.4.5.2 D_e_n_ _s_i_d_s_t_e_ _l_i_n_i_e_. Anvendes VERIFY-kommandoen umiddelbart efter, at en BASISFIL er tilknyttet, udskrives nummeret på den sidste &_ linie i JOBFILEN. T_ Kommandoerne: save rcområde get rcområde verify anvendt efter indtastningen i afsnit 3.4.5.1 vil således give ud- skriften: &_ 50 T_ 3.4.5.3 N_O_ _R_O_O_M_._ Udskriften NO ROOM fremkommer, når der ikke er kapacitet &_ til at gennemføre flere rettelser på en JOBFIL. For at komme vi- dere må JOBFILEN overføres til baggrundslageret, og det anvendte område gøres til BASISFIL. Anvendelsen af SAVE og GET løser således kapacitetsproblemet, og flere rettelser kan nu gennemføres. Kommandoen, der gav anledning til udskriften, blev ikke gennemført og må derfor gentages. Fremkommer udskriften under indtastning, sikrer VERIFY-kommandoen på bekvem måde den videre indtastning som vist i følgende sekvens:\f T_ . . . -' 136 begin -' 137 integer NO ROOM -' save rcjob -' get rcjob verify 510 -' 510 integer &_ . . . T_ 3.4.5.4 O_v_e_r_f_ø_r_s_e_l_ _t_i_l_ _B_A_S_I_S_F_I_L_E_N_. Når et LOGIN-område er BASISFIL vil indholdet af JOBFILEN blive slettet efter, at det er ført tilbage til BASISFILEN med SAVE-kommandoen. T_ Den sidste kommando i serien get rctext save rctext &_ save rctext overfører således en tom JOBFIL tilbage til RCTEXT, og det oprin- delige indhold er forsvundet. T_ 3.4.6 O_p_g_a_v_e_r_ O_p_g_a_v_e_ _3_._5_:_ I området PROGRAMTXT findes følgende ALGOL-tekst: begin write(out,endnu et eksempel:'); &_ end Modificer området, så det sluttelig rummer et job, der kan oversætte og køre det lille program. T_ O_p_g_a_v_e_ _3_._6_:_ Et område TEXT ønskes udskrevet på terminal. Skriv de nødvendige &_ BOSS-kommandoer. \f T_ O_p_g_a_v_e_ _3_._7_:_ ALGOL-oversætteren læser kildeteksten fra området TEXT, ved føl- gende programkald: u=algol text Gem et lille ALGOL-program i området PROGRAMTEXT og lav herefter &_ en JOBFIL, der kan oversætte og afvikle programmet. T_ 3.5 RESSOURCER I de hidtige jobeksempler findes ingen ressourcebestillinger, og jobbene har fået en standard tildeling af ressourcer (jvf. 3.3). &_ Et job behøver bl.a. følgende: . Primær lager . Regnetid . Baggrundslager. T_ Muligvis ønsker et job også adgang til ydre enheder: . Læser (Strimmel/kort) . Printer . Båndstation &_ . Perforator. De følgende afsnit beskriver, hvorledes de nævnte ressourcer kan rekvireres. Undtaget er baggrundslager, der findes beskrevet i kapitel 4. De nævnte ressourcer er blot et udvalg, og i kapitler- ne 5, 6 og 7 findes yderligere eksempler. T_ 3.5.1 R_e_s_s_o_u_r_c_e_b_e_s_t_i_l_l_i_n_g_ Rekvirering af ressourcer anføres i JOBFILEN. Denne del kaldes &_ JOBSPECIFIKATIONEN og består af følgende: . Jobidentifikation . Optionliste . Loadspecifikation. \f Jobidentifikationen indleder JOBSPECIFIKATIONEN og består af or- det JOB og BRUGERIDENTIFIKATIONEN kendt fra LOGIN-rutinen. T_ E_k_s_e_m_p_e_l_ _3_._1_6_:_ 10 job kc 1234 .... Optionlisten beskriver de forskellige ressourcer, der ønskes rek- vireret. Til hver ressource svarer en OPTION, der må anføres ved &_ rekvirering. E_k_s_e_m_p_e_l_ _3_._1_7_:_ 10 job kc 1234 size 20000 Loadspecifikationen specificerer anvendelse af læseren (jvf. 3.5.5). E_k_s_e_m_p_e_l_ _3_._1_8_:_ 10 job kc 1234 size 20000 load trf data JOBSPECIFIKATIONENS 3 dele skal anføres i den beskrevne rækkeføl- ge, og de enkelte elementer adskilles som vist med mellemslag. T_ E_k_s_e_m_p_e_l_ _3_._1_9_:_ 10 job kc 1234, 20 size 2000, &_ 30 load trf data Komma tilkendegiver, at JOBSPECIFIKATIONEN fortsætter på næste linie. For ressourcer, der ikke anføres i JOBSPECIFIKATIONEN, foretages standardtildelingen. JOBSPECIFIKATIONEN er kun effektiv, såfremt jobbet tilmeldes med RUN-kommandoen. T_ E_k_s_e_m_p_e_l_ _3_._2_0_:_ 10 job kc 1234 load trf data 20 scope login data 30 finis &_ run T_ 3.5.2 P_r_i_m_æ_r_ _l_a_g_e_r_ Det primære lager består af et antal 24 bit ord. Et 12 bit halvord er den mindst adressable enhed, og denne størrelse kaldes\f i ældre manualer en BYTE. Det primære lager rekvireres med op- tionen SIZE. S_y_n_t_a_k_s_:_ size antal halvord' E_k_s_e_m_p_e_l_ _3_._2_1_:_ size 50000 T_ 3.5.3 R_e_g_n_e_t_i_d_ Med regnetid menes den totale køretid og ikke blot CPU-tiden. &_ TIME-optionen specificerer tidskravet. 11 S_y_n_t_a_k_s_:_ time timer' 0 minutter' 0 sekunder' T_ time 3600 time 60 0 &_ time 1 0 0 T_ Det samme tidskrav er specificeret i: sekunder minutter og sekunder &_ timer, minutter og sekunder. Ved overskridelse af den rekvirerede tid, vil BOSS normalt (in- stallationsafhængigt) afbryde jobbet, så det er vigtigt at speci- ficere tilstrækkelig tid. Vedrørende tidskravets indflydelse på jobprioriteten se opgave 3.1. T_ 3.5.4 Y_d_r_e_ _e_n_h_e_d_e_r_ En ydre enhed identificeres enten ved et enhedsnummer (device &_ number) eller ved et navn. For at effektivisere datamatudnyttelsen kan BOSS simulere for- skellige enheder, således at overførsel til disse enheder kun foregår via et mellemlager håndteret af BOSS. Denne teknik kaldes SPOOLING. Ved anvendelse af printer og læser kan det angives, om jobbet\f selv ønsker at kontrollere anvendelsen, eller om det skal ske af BOSS. Man skelner således mellem anvendelsesformerne: . BOSS-kontrolleret . JOB-kontrolleret. Ved jobkontrolleret anvendelse er enheden reserveret jobbet i hele køretiden, uanset om enheden benyttes eller ej. Ved BOSS- kontrolleret anvendelse optages enheden kun i funktionsperioden. T_ 3.5.5 L_æ_s_e_r_ BOSS-kontrolleret indlæsning angives ved LOAD-specifikationer. E_k_s_e_m_p_e_l_ _3_._2_3_:_ load tro data1 &_ load crc data2 Indlæsning af en strimmel og en kortstak til hhv. DATA1 og DATA2. S_y_n_t_a_k_s_:_ load modeangivelse' områdenavn' For hver strimmel eller kortstak, der ønskes indlæst, anføres en LOAD-specifikation. MODE-angivelsen specificerer strimmel- eller korttypen. Inddata lagres i et temporært område med det anførte navn. Da temporære områder fjernes ved jobafslutning, er det nød- vendigt for at bevare inddata i længere tid at gøre de anvendte områder permanente. Eksempel 3.24 illustrerer dette. T_ E_k_s_e_m_p_e_l_ _3_._2_4_:_ 10 job kc 1234 load tro data1 load trf data2 20 scope user data1 data2 &_ 30 finis FP-kommandoen i linie 20 gør områderne DATA1 og DATA2 permanente, hvorved de bevares. Samtlige LOAD-specifikationer udføres før det egentlige job påbe- gyndes, så færrest mulige ressourcer beslaglægges under indlæs- ningen. \f T_ T_A_P_E_S_ Jobkontrolleret indlæsning kræver reservation af læseren. E_k_s_e_m_p_e_l_ _3_._2_5_:_ tapes 3 &_ device cardreader Med TAPES-optionen reserveres strimmellæseren i hele jobbets ud- førelsestid og bør derfor kun benyttes, hvor det er strengt nød- vendigt. S_y_n_t_a_k_s_:_ tapes antal strimler' Strimmellæseren reserveres, og det specificerede antal strimler kan indlæses. Jobbet må selv håndtere behandlingen af strimlen. T_ E_k_s_e_m_p_e_l_ _3_._2_6_:_ job kc 1234 tapes 1 data = copy tro scope user data &_ finis T_ job kc 1234 load tro data scope user data &_ finis De to job udfører det samme, men det sidste anbefales. T_ D_E_V_I_C_E_ &_ Med DEVICE-optionen kan kortlæseren rekvireres. S_y_n_t_a_k_s_:_ device cardreader Jobbet må selv håndtere behandlingen af kortene. E_k_s_e_m_p_e_l_ _3_._2_7_:_ job kc 1234 device cardreader data = copy crc scope user data &_ finis T_ job kc 1234 load crc data scope user data &_ finis \f T_ De to jobs udfører det samme. Det bør bemærkes, at kortlæseren kun kan benyttes af job, der selv er indlæst på kortlæseren. For en nøjere beskrivelse af kortlæseren, f.eks. om skillekort, hen- vises til BOSS User>s Manual, (ref. 1). T_ 3.5.5.1 M_O_D_E_. Nedenstående liste indeholder de almindeligste MODE-angi- &_ velser. T_ trf Strimmel i f_lexowriter-kode. tre Strimmel i iso-kode. Lige paritet. (E_ven parity). tro Strimmel i iso-kode ulige paritet. (O_dd parity). &_ trn Strimmel uden paritet. (N_o parity). T_ crb B_inære kort &_ crc EBCDIC_ kort. T_ 3.5.6 P_r_i_n_t_e_r_ Anvendelsen af printeren kan ske BOSS-kontrolleret eller jobkon- &_ trolleret. Ved BOSS-kontrolleret udskrivning må jobbet sende besked til BOSS, når et område ønskes udskrevet. De afsendte oplysninger gemmes i en såkaldt CONVERT-buffer, og når printeren bliver ledig vil området blive udskrevet. For hvert område, der ønskes udskrevet, må jobbet råde over en CONVERT-buffer. T_ E_k_s_e_m_p_e_l_ _3_._2_8_:_ cbuf 17 &_ Med CBUF-optionen rekvireres CONVERT-buffere. S_y_n_t_a_k_s_:_ cbuf antal' De specificerede antal CONVERT-buffere rekvireres. For hvert om- råde, der ønskes udskrevet, benyttes en CONVERT-buffer til at gemme områdenavn og papirtype.CBUF-option anvendes sjældent, da T_\f standardtildelingen sædvanligvis giver et tilstrækkeligt antal CONVERT-buffer. E_k_s_e_m_p_e_l_ _3_._2_9_:_ job kc 1234 cbuf 1 load tro data convert data &_ finis En strimmel indlæses og udskrives på printeren. T_ D_E_V_I_C_E_ Printeren reserveres til jobkontrolleret udskrivning med DEVICE- &_ optionen. E_k_s_e_m_p_e_l_ _3_._3_0_:_ device printer S_y_n_t_a_k_s_:_ device printer navn' Ved jobkontrolleret udskrivning er den specificerede printer til rådighed for jobbet og kan ikke benyttes af andre. T_ E_k_s_e_m_p_e_l_ _3_._3_1_:_ job kc 1234 tapes 1 device printer lp = copy tro &_ finis En strimmel indlæses og udskrives. Man bør dog i stedet udføre det som vist i eksempel 3.29. T_ 3.5.7 P_e_r_f_o_r_a_t_o_r_ Perforatoren kan kun anvendes jobkontrolleret og reserveres med &_ DEVICE-optionen. E_k_s_e_m_p_e_l_ _3_._3_2_:_ device punch S_y_n_t_a_k_s_:_ device perforator-navn' T_ E_k_s_e_m_p_e_l_ _3_._3_3_:_ job kc 1234 device punch load tro data tpo = copy data finis \f T_ En strimmel kopieres. 3.5.8 B_å_n_d_s_t_a_t_i_o_n_ Forskellige typer båndstationer kan tilsluttes RC 8000, og man &_ skelner mellem standard båndstationer og special båndstationer. T_ D_E_V_I_C_E_ Special stationer rekvireres enkeltvis med DEVICE-optionen. &_ E_k_s_e_m_p_e_l_ _3_._3_4_:_ device 8 S_y_n_t_a_k_s_:_ device enhedsnummer' E_k_s_e_m_p_e_l_ _3_._3_5_:_ job rc 8000 device 8 T_ S_T_A_T_I_O_N_S_ Fra puljen af standard båndstationer rekvireres et antal med STA- &_ TIONS-optionen. Ved tildelingen udvælges de ledige båndstationer. E_k_s_e_m_p_e_l_ _3_._3_6_:_ stations 4 S_y_n_t_a_k_s_:_ stations antal' Konventionerne vedrørende båndlabel etc. vedrører ikke reserva- tionen og behandles derfor først i kapitel 8. T_ 3.6 BOSS-KOMMANDOER BOSS-kommandoer findes i ref. 1 og ref. 2 beskrevet under navnet &_ ONLINE-kommandoer. Terminalbrugere kan indtaste direktiver til BOSS ved hjælp af BOSS-kommandoer, og BOSS vil øjeblikkelig ud- føre de specificerede handlinger. Efter funktion kan BOSS-komman- doerne opdeles gruppevis til håndtering af: \f . JOBFILEN . Jobtilmelding . Udskrivning . Orientering . Baggrundslager . Operatørindgreb. De følgende afsnit beskriver blot et udvalg. T_ 3.6.1 J_o_b_f_i_l_m_a_n_i_p_u_l_a_t_i_o_n_ SAVE, GET, LIST, VERIFY samt editeringskommandoer er velkendte. &_ Til automatisk linienummergenerering findes AUTOLINE-kommandoen. T_ E_k_s_e_m_p_e_l_ _3_._3_7_:_ autoline autoline 10 &_ autoline 10 10 11 S_y_n_t_a_k_s_:_ autoline første linie' intervalbredde' 0 last 0 Efter anvendelse af AUTOLINE-kommandoen forsynes hver linie auto- matisk med et linienummer, som derfor ikke skal indtastes. Ved anvendelse af AUTOLINE alene nummereres linierne 10, 20, 30 etc. Alternativt kan der specificeres begyndelsesnummer og interval- bredde. LAST angiver, at linienummerene skal genereres i fort- sættelse af de eksisterende. Nummergenereringen ophører, når et ATTENTION-signal sendes. T_ E_k_s_e_m_p_e_l_ _3_._3_8_:_ autoline 30 7 &_ linierne nummeres 30, 37, 44...etc. E_k_s_e_m_p_e_l_ _3_._3_9_:_ get data autoline last T_ 3.6.2 J_o_b_t_i_l_m_e_l_d_i_n_g_ &_ GO- og RUN-kommandoerne er velkendte. Med NEWJOB-kommandoen tilmeldes et job, der skal være beskrevet i et permanent område. \f E_k_s_e_m_p_e_l_ _3_._4_0_:_ newjob rcjob S_y_n_t_a_k_s_:_ newjob områdenavn' Et job tilmeldes med NEWJOB-kommandoen, og det specificerede om- råde gøres til JOBFIL. Jobbet vil ikke være tilknyttet termina- len, og jobbets uddata leveres på printeren. Terminalen frigives øjeblikkelig. Jobtilmelding findes yderligere beskrevet i afsnit 8.3.1.1. T_ 3.6.3 R_e_s_s_o_u_r_c_e_b_e_s_t_i_l_l_i_n_g_ De forskellige optioner beskrevet i afsnit 3.5 foreligger også &_ som BOSS-kommandoer. T_ 3.6.4 U_d_s_k_r_i_v_n_i_n_g_ &_ Med CONVERT-kommandoen kan et område udskrives. T_ E_k_s_e_m_p_e_l_ _3_._4_1_:_ convert område37 1 1 &_ S_y_n_t_a_k_s_:_ convert områdenavn' papirtype' 0 På printeren udskrives det specificerede område på den anførte papirtype. Type 0 anvendes, når intet er anført. CONVERT-komman- doen må ikke forveksles med FP-kommandoen CONVERT (jvf. eks. 3.43). E_k_s_e_m_p_e_l_ _3_._4_2_:_ convert rcdata T_ RCDATA udskrives på printeren ved hjælp af BOSS-kommandoen CONVERT. Papirtype 0 anvendes. E_l_s_e_m_p_e_l_ _3_._4_3_:_ 10 job kc 1234 cbuf 1 20 convert rcdata 30 finis &_ run \f T_ I det lille job anvendes CONVERT-programmet til udskrivning af RCDATA. 3.6.5 O_r_i_e_n_t_e_r_i_n_g_ Terminalbrugerne kan orientere sig om datamatens aktivitet ved at &_ anvende DISPLAY-kommandoen. T_ E_k_s_e_m_p_e_l_ _3_._4_4_:_ display display login &_ display kc0 T_ S_y_n_t_a_k_s_:_ login1 &_ display jobnavn'0 Anvendes DISPLAY-kommandoen alene udskrives en liste over samt- lige job i JOBKØEN. Med DISPLAY LOGIN produceres en liste over samtlige aktive terminalbrugere. Ved at anfører JOBNAVNET kan man få oplysninger om et specifikt job. For at forstå den producerede udskrift må man kende følgende ka- rakteristika ved jobbene: T_ J_O_B_N_A_V_N_ Brugernavn og index bestemmer JOBNAVNET. &_ E_k_s_e_m_p_e_l_ _3_._4_5_:_ type user name and project number kc 5 1234 &_ Denne LOGIN-rutine medfører, at jobbene afvikles under navnet KC5. T_ J_O_B_K_L_A_S_S_E_ For at udelukke tidskrævende job fra at bruge alle ressourcer, opdeles jobbene i 4 klasser. Korte job placeres i klasse 0, lidt mere tidskrævende job placeres i klasse 1 etc. Tidsgrænserne, der bestemmer indplaceringen, er installationsbestemt. T_ K_O_N_T_R_O_L_P_U_N_K_T_ Et job kan være tilknyttet kontrolpunkt A eller kontrolpunkt B. I hvert kontrolpunkt kan der afvikles eet job ad gangen. \f T_I_L_S_T_A_N_D_ Følgende tilstande er mulige: loading Jobbets LOAD-specifikationer er under ud- førelse. reservering Jobbet venter på ressourcer. swopped out Jobbet er "swopped" (jvf. opgave 3.1) in core Jobbet kører. &_ waiting Jobbet venter f.eks. på båndmontering. I hvert kontrolpunkt kan der således kun være 1 job i tilstanden "in core", mens adskillige kan befinde sig i de øvrige tilstande. T_ DISPLAY-udskriften har følgende format: jobnavn'klasse'kontrolpunkt'prioritet'tilstand' &_ afslutningstidspunkt' T_ 3.6.6 B_a_g_g_r_u_n_d_s_l_a_g_e_r_ BOSS-kommandoer, der berører baggrundslageret, findes beskrevet i &_ kapitel 4. T_ 3.6.7 O_p_e_r_a_t_ø_r_i_n_d_g_r_e_b_ BOSS kræver kun operatørindgriben i følgende situationer: Ved tilmelding af et OFF-LINE job. &_ Ved papirskift, båndmontering og lignende. Operatøren kan dræbe et job og forhindre nye job i at blive tilmeldt. Endvidere kan operatøren sende orienterende meddelelser til ter- minalbrugerne, ligesom jobbene kan kommunikere med operatøren. Til disse formål findes en række BOSS-kommandoer (se ref. 2). \f T_ 3.6.8 R_e_s_t_r_i_k_t_i_o_n_e_r_ For at hindre misbrug kan der opstilles restriktioner for den &_ enkelte terminalbruger, så vedkommende kun kan benytte en del- mængde af de eksisterende BOSS-kommandoer. Det er således nor- malt, at en række kommandoer er forbeholdt operatøren. T_ 3.6.9 O_p_g_a_v_e_r_ &_ O_p_g_a_v_e_ _3_._8_:_ Udskriv JOBFILEN på printeren. O_p_g_a_v_e_ _3_._9_:_ Området TEKST indeholder følgende: T_ u=algol begin integer a; read(in,a);write(out,a); end 12' u 7 &_ finis T_ 12' markerer tilstedeværelsen af en sideskiftkarakter. Bestem &_ linienumrene, når området gøres til BASISFIL. T_ 3.7 MEDDELELSER FRA BOSS Af afsnit 3.2 fremgår, at BOSS leverer forskellige orienterede udskrifter til terminalbrugeren. Fejlagtig betjening kan lige- &_ ledes give anledning til forskellige meddelelser. Nedenstående liste indeholder blot et udvalg af de mulige med- delelser. T_ END JOBNAVN' Denne meddelelse afslutter et job. FILE IN USE &_ Området er tilknyttet som BASISFIL. \f T_ FILE NOT PERMANENT NEWJOB-kommando blev ikke accepteret. FILE PROTECTED Det er ulovligt at ændre området. FINIS ... &_ Meddelelsen viser det forventede afslutningstidspunkt. T_ FORBIDDEN En BOSS-kommando blev ulovligt indtastet. Et kørende job skal afsluttes forinden. ILLEGAL IDENTIFICATION &_ Forkert projektnummer eller brugernavn. T_ IN ... &_ Viser tidspunktet for LOGIN-rutinen. T_ KILLED BY OPERATOR &_ Jobbet blev afbrudt af operatøren. T_ KILLED BY USER Jobbet blev afbrudt med KILL-kommandoen. LAST INPUT LINE SKIPPED Den sidst tastede linie blev ikke modtaget og må derfor &_ gentages. T_ LOGGED IN Meddelelsen viser, hvad der konteres ved LOGOUT. LOGIN CLAIMS EXCEEDED &_ Ingen LOGIN-ressourcer er til rådighed. T_ NO RESOURCES Der er ikke tilstrækkelige ressourcer på baggrundslage- ret. Flere må rekvireres. NO ROOM JOBFILENS kapacitet er udtømt. Anvendelse af SAVE og &_ GET giver fornyet kapacitet. T_ NOT FOUND Det angivne grafiske billede findes ikke på linien. OPTION UNKNOWN OPTION' &_ Den viste OPTION findes ikke, og jobbet tilmeldes ikke. T_ OUTPUT EXCEEDED Jobbet har overskredet grænsen for uddata og afbrydes. PARAM &_ En kommando er ledsaget af forkerte parametre. \f T_ PARAM AT OPTION' Jobbet tilmeldes ikke, da en OPTION er ledsaget af forkerte parametre. SYNTAX &_ En ukendt BOSS-kommando er forsøgt indtastet. T_ SYNTAX AT OPTION' En ukendt OPTION er anført i JOBSPECIFIKATIONEN, og jobbet tilmeldes ikke. TEMP EXCEEDED ... Jobbet blev afbrudt på grund af for få ressourcer på &_ baggrundslageret. T_ TEMPLATE TOO LONG &_ Det anførte grafiske billede er for langt. T_ TIME EXCEEDED Jobbet blev afbrudt, fordi den rekvirerede køretid blev &_ overskredet. T_ TYPE USER NAME AND PROJECT NUMBER &_ Fremkommer i LOGIN-rutinen. T_ USER INDEX CONFLICT Fremkommer oftest, når et job tilmeldes med NEWJOB-kom- mandoen, og det nye job anvender samme index, som blev anvendt i LOGIN-rutinen. WHAT? &_ En ukendt kommando blev indtastet. \f F_ 4 BAGGRUNDSLAGER Baggrundslageret på RC 8000 er et fælles lager, hvorpå de for- skellige brugere kan gemme data. Det kan bestå af et eller flere pladelagre (discs), men indledningsvis vil vi dog nøjes med at betragte det simpleste tilfælde, nemlig et baggrundslager bestå- ende af een disc. 4.1 OMRÅDE Oplysninger, der gemmes på baggrundslageret, lagres i såkaldte områder på disckittet (discpack). Figur 4.1 viser et kit, hvorpå der findes 5 forskellige områder. T_ Figur 4.1 ALGOL DEBITORER UDSPROG RC JOB WORK &_ O_M_R_Å_D_E_N_A_V_N_ Af figur 4.1 ses, at hvert område er forsynet med et navn. Navnet anvendes, når man skal benytte (læse/skrive) området. \f T_ P_R_O_G_R_A_M_N_A_V_N_ Når området indeholder et program, kaldes områdenavnet for pro- gramnavnet. Af kapitel 3 fremgik, at programnavnet blev anvendt i &_ programkaldet. E_k_s_e_m_p_e_l_ _4_._1_:_ p=algol text ALGOL-oversætteren aktiveres ved at anføre programnavnet ALGOL ledsaget af forskellige parametre. For navne gælder: . De må højst bestå af 11 tegn (bogstaver/cifre). . De skal indledes med et bogstav. . Der må kun indgå små bogstaver. T_ E_k_s_e_m_p_e_l_ _4_._2_:_ algol 9data fortran da ta rcjob debitorregister &_ data910 Data I venstre søjle er der anført korrekte navne, mens højre søjle rummer ukorrekte navne. O_p_g_a_v_e_ _4_._1_:_ Find fejlene i de ukorrekte navne i eksempel 4.2 Man skelner mellem 2 forskellige områdetyper. . Tekstområde . Binærområde. T_ T_E_K_S_T_O_M_R_Å_D_E_ Et tekstområde er læsbart og kan umiddelbart udskrives, da det rummer en tegnstreng. Som afslutning findes en END OF MEDIUM &_ karakter. \f T_ B_I_N_Æ_R_O_M_R_Å_D_E_ Oplysningerne i et binærområde består af en række dobbeltord, som ikke umiddelbart kan udskrives. Et oversat program gemmes f.eks. &_ i et binærområde. T_ 4.2 KATALOG Områderne er placeret forskellige steder på baggrundslageret, og de kan have forskellig størrelse. Disse oplysninger og flere er &_ samlet i et specielt katalog. T_ 4.2.1 K_a_t_a_l_o_g_i_n_d_g_a_n_g_ Figur 4.2 ALGOL K A DEBITORER T A L UD PROG O G RC JOB WORK &_ Figur 4.2 er en udbygning af figur 4.1, idet kataloget nu er indtegnet. I kataloget findes der for hvert område et individ (record), der beskriver området. Et individ i kataloget kaldes en katalogindgang (catalog entry), og den består af 2 dele, nemlig hoved og krop (head, tail). \f T_ Følgende oplysninger findes bl.a.: HOVED KROP Placering Størrelse Klasse &_ Navn. Placeringen angiver, hvor på baggrundslageret området begynder. K_L_A_S_S_E_/_S_C_O_P_E_ Katalogindgangene er delt i 5 klasser (SCOPE) med navnene: . SYSTEM . PROJECT . USER . LOGIN . TEMP. SCOPE-begrebet behandles yderligere i afsnit 4.3. N_A_V_N_ Områdenavnet er ækvivalent med navnet på katalogindgangen. T_ S_T_Ø_R_R_E_L_S_E_ Områdestørrelsen angives i segmenter. Et segment kan rumme: 768 tegn (tekstområde) &_ 128 dobbeltord (binærområde) T_ 4.2.2 K_a_t_a_l_o_g_h_å_n_d_t_e_r_i_n_g_ Oprettelse og sletning af katalogindgange er ensbetydende med op- rettelse og sletning af de beskrevne områder, og det kan ske i takt med behovet. Det er en privilegeret funktion at opdatere ka- &_ taloget (jvf. 5.4) \f T_ 4.3 SCOPE SCOPE-begrebet er nært tilknyttet projektopdelingen af brugerne i BRUGERKATALOGET, idet en katalogindgang er tilknyttet et projekt &_ eller en bruger i et projekt. T_ S_C_O_P_E_ _P_R_O_J_E_C_T_ Til hvert projekt findes en pulje katalogindgange, der er til- knyttet projektet. Katalogindgange i disse puljer karakteriseres &_ med SCOPE-betegnelsen PROJECT. T_ S_C_O_P_E_ _U_S_E_R_ Der er ligeledes tilknyttet en pulje katalogindgange til hver bruger i et projekt. Disse katalogindgange er karakteriseret med &_ SCOPE-betegnelsen USER. T_ S_C_O_P_E_ _L_O_G_I_N_ Til hver terminalbruger er der også tilknyttet en pulje katalog- indgange med SCOPE-betegnelsen LOGIN. Denne pulje slettes, når &_ terminalen forlades (LOGOUT). T_ S_C_O_P_E_ _T_E_M_P_ Under afviklingen af et job er der tilknyttet en pulje katalog- indgange til jobbet. SCOPE-betegnelsen er TEMP, og puljen slettes &_ ved jobafslutningen. T_ B_E_S_K_Y_T_T_E_L_S_E_ I tilknytningsforholdet er der indlagt en beskyttelsesmekanisme for at forhindre uønsket adgang til et område. Katalogindgange, &_ der er tilknyttet et fremmed projekt eller en anden bruger, er usynlige, hvilket indebærer, at såvel læsning som skrivning er umulig. \f T_ S_C_O_P_E_ _D_I_A_G_R_A_M_ Puljeopdelingen for 2 forskellige brugere tilknyttet det samme projekt er illustreret i SCOPE DIAGRAMMET, figur 4.3. SCOPE DIAGRAM SYSTEM PULJE PROJECT PULJE USER USER PULJE PULJE LOGIN TEMP TEMP LOGIN PULJE PULJE PULJE PULJE JOB JOB BRUGER X BRUGER Y PROJECT Z PROJECT Z &_ Figur 4.3 Ved at følge vejen, der udgår fra et job, i pilens retning pas- seres samtlige puljer, som jobbet har adgang til. Puljerne, der\f ikke passeres, er fuldstændig skjult for jobbet. Man ser at SYSTEM- og PROJECT-puljen er fælleseje. LOGIN-puljerne er indrammet for at anskueliggøre at disse puljer kun optræder hos job, der er tilmeldt med GO eller RUN. Figur 4.4 illustrerer puljeopdelingen yderligere, idet flere job og projekter er indtegnet. LOGIN-puljerne er dog udeladt. T_ SCOPE DIAGRAM Figur 4.4 SYSTEM PULJE PROJECT PROJECT PULJE PULJE USER USER USER PULJE PULJE PULJE TEMP TEMP TEMP TEMP PULJE PULJE PULJE PULJE JOB1 JOB2 JOB JOB BRUGER X BRUGER X BRUGER Y BRUGER W &_PROJECT Z PROJECT Z PROJECT Z PROJECT Q \f T_ O_p_g_a_v_e_ _4_._2_:_ Bestem ved hjælp af figur 4.4 de fælles puljer. 1. For brugere tilknyttet forskellige projekter. 2. For brugere tilknyttet samme projekt. &_ 3. For job tilknyttet samme bruger. T_ S_K_R_I_V_E_T_I_L_L_A_D_E_L_S_E_ Områder i en pulje, der er adgang til, er læsbare. Adgangen giver &_ ikke ubetinget skrivetilladelse, idet SYSTEM-puljen er beskyttet. T_E_M_P_O_R_Æ_R_ Katalogindgange med SCOPE TEMP kaldes temporære. T_ P_E_R_M_A_N_E_N_T_ Katalogindgange med SCOPE USER, SCOPE PROJECT eller SCOPE SYSTEM &_ kaldes permanente. O_p_g_a_v_e_ _4_._3_ En bruger tænkes at være medlem af 2 forskellige projekter. Hvil- ke SCOPE-puljer er der adgang til fra begge projekter? Følges ruterne i et SCOPEDIAGRAM passeres puljerne altid i række- følgen TEMP, LOGIN, USER, PROJECT og SYSTEM. SCOPE-klasserne fremkommer herved ordnet i stigende rækkefølge efter SCOPEBRED- DEN. Begrebet SCOPEBREDDE er belyst i opgave 4.9. I hver pulje i SCOPEDIAGRAMMET er navnene entydige, således at et navn kun kan forekomme een gang i hver pulje. Ligeledes kan det samme navn ikke forekomme i både TEMP- og LOGIN-puljen til et job. (se figur 4.5). \f T_ Figur 4.5 SYSTEM SYSTEM DATA DATA PROJECT PROJECT DATA DATA USER USER DATA DATA LOGIN TEMP TEMP LOGIN DATA DATA ALTERNATIV 1. ALTERNATIV 2. &_ T_ 4.4 KATALOGET OG BOSS Håndtering af registre omfatter 4 grundoperationer: . Oprettelse . Ændring . Sletning &_ . Udskrivning Da KATALOGET er et register over anvendelsen af baggrundslageret, er det klart, at grundoperationerne må kunne udføres på KATALO- GET. I de følgende afsnit beskrives, hvorledes BOSS understøtter\f disse operationer, og i afsnit 5.4 beskrives relationerne til MO- NITOR. T_ B_O_S_S_-_k_o_m_m_a_n_d_o_ Ved hjælp af forskellige BOSS-kommandoer specificeres operationen og navnet på katalogindgangen, der skal berøres. Håndteringen er naturligvis begrænset til katalogindgange, som terminalbrugeren &_ har adgang til, og SYSTEM-puljen kan kun udskrives. Da der kan optræde flere katalogindgange med de samme navne, gæl- der det, at katalogindgangen, der ved gennemløb af SCOPEDIAGRAM- MET befinder sig i den først passerede pulje, berøres. Dette er ensbetydende med, at katalogindgangen med det snævreste SCOPE berøres. T_ Figur 4.6 SYSTEM PROJECT USER LOGIN &_ T_ 4.4.1 O_p_r_e_t_t_e_l_s_e_ Ved hjælp af BOSS er det ikke explicit muligt at oprette katalog- indgange. Implicit sker det dog ved anvendelse af SAVE-kommandoen &_ og ved BOSS-kontrolleret indlæsning (LOAD). \f 4.4.2 Æ_n_d_r_i_n_g_. Ændringer foretages med SCOPE- og RENAME-kommandoerne. T_ 4.4.2.1 S_c_o_p_e_. Med SCOPE-kommandoen kan en katalogindgang overføres til en anden pulje i SCOPE DIAGRAMMET. E_k_s_e_m_p_e_l_ _4_._1_:_ scope user data &_ Katalogindgangen DATA anbringes i USER-puljen. S_y_n_t_a_k_s_:_ login scope user navn' project T_ F_U_N_K_T_I_O_N_ Katalogindgangen med det snævreste SCOPE og det specificerede navn anbringes i den anførte SCOPE-pulje. For at sikre overfør- slen til den nye pulje vil en eventuel katalogindgang med det &_ specificerede navn i denne pulje indledningsvis blive slettet. O_p_g_a_v_e_ _4_._4_ I hver af SCOPE-puljerne, LOGIN, USER og PROJECT findes en kata- logindgang med navnet DATA. Beskriv hvad der sker ved følgende indtastning: scope project data scope login data T_ 4.4.2.2 R_e_n_a_m_e_. Med RENAME-kommandoen omdøbes en katalogindgang. E_k_s_e_m_p_e_l_ _4_._2_:_ rename gammel ny &_ Katalogindgangen GAMMEL omdøbes til NY. S_y_n_t_a_k_s_:_ rename navn' nyt navn' F_U_N_K_T_I_O_N_ Med RENAME-kommandoen forsynes den specificerede katalogindgang med det nye navn. Kommandoen opererer på katalogindgangen med det snævreste SCOPE, og hvis der i denne SCOPE-pulje allerede findes\f en katalogindgang med det nye navn, gennemføres navneændringen ikke. O_p_g_a_v_e_ _4_._5_:_ I hver af SCOPE-puljerne LOGIN, USER og PROJECT findes en kata- logindgang med navnet DATA. Overfør katalogindgangen i USER-pul- jen til PROJECT-puljen. T_ 4.4.3 S_l_e_t_n_i_n_g_ CLEAR-kommandoen anvendes til sletning af katalogindgange. E_k_s_e_m_p_e_l_ _4_._3_:_ clear login data &_ Katalogindgangen DATA i LOGIN-puljen slettes. S_y_n_t_a_k_s_:_ login 1 clear user navn' project 0 F_U_N_K_T_I_O_N_ Den specificerede katalogindgang i den anførte SCOPE-pulje slet- tes. Udelades parametrene slettes indholdet af JOBFILEN og en eventuel BASISFIL frigives (jvf. 3.4.4.2). T_ 4.4.4 U_d_s_k_r_i_v_n_i_n_g_ Udskrivning af en katalogindgang kan foretages med LOOKUP-komman- doen. E_k_s_e_m_p_e_l_ _4_._4_:_ lookup data &_ Katalogindgangen DATA udskrives. S_y_n_t_a_k_s_:_ login 1 lookup user navn' project 0 F_U_N_K_T_I_O_N_ Når SCOPE-angivelsen er anført udskrives katalogindgangen med det specificerede navn i den angivne SCOPE-pulje. Udelades SCOPE-an- givelsen udskrives katalogindgangen med det specificerede navn og\f det snævreste SCOPE. Udskrivningen har følgende form: navn'=set krop';scopeangivelse' &_ ;hoved' T_ E_k_s_e_m_p_e_l_ _4_._5_:_ data=set 18 disc d.770415.1623 0 0 0 0 ; user &_ ; 100 17 3 100 109 I afsnit 4.6 findes en mere detaljeret beskrivelse af katalog- indgange. 4.5 KATALOGET OG HJÆLPEPROGRAMMER Til håndtering af KATALOGET findes en række programmer, så de forskellige job kan oprette, ændre, slette og udskrive katalog- indgange. Disse hjælpeprogrammer kaldes UTILITY-programmer og bærer ofte samme navn som en tilsvarende BOSS-kommando. Udførel- sen af et program kræver, at en JOBFIL skrives, og at jobbet af- vikles. De følgende programbeskrivelser er ikke udtømmende og viser blot et alternativ til de tidligere BOSS-kommandoer. T_ 4.5.1 O_p_r_e_t_t_e_l_s_e_ Med programmet SET oprettes temporære katalogindgange. E_k_s_e_m_p_e_l_ _4_._6_:_ 10 data=set 18 20 finis &_ Et temporært område DATA oprettes med størrelsen 18 segmenter. S_y_n_t_a_k_s_:_ navn'=set størrelse' F_U_N_K_T_I_O_N_ En temporær katalogindgang oprettes med det specificerede navn, og den anførte størrelse bestemmer områdestørrelsen i segmenter. \f T_ 4.5.2 Æ_n_d_r_i_n_g_ Med SCOPE- og RENAME-programmerne ændres indholdet af en katalog- indgang. 4.5.2.1 S_c_o_p_e_. En katalogindgang kan overføres til en anden pulje i SCOPEDIAGRAMMET med SCOPE-programmet. E_k_s_e_m_p_e_l_ _4_._7_:_ 10 scope user data 20 finis &_ Katalogindgangen DATA overføres til USER-puljen. S_y_n_t_a_k_s_:_ temp login scope user navn' project F_U_N_K_T_I_O_N_ Katalogindgangen med det snævreste SCOPE og det specificerede navn anbringes i den angivne SCOPE-pulje. For at sikre overførs- len til den nye pulje vil en eventuel katalogindgang med det spe- cificerede navn i denne pulje indledningsvis blive slettet. T_ 4.5.2.2 R_e_n_a_m_e_. Med RENAME-programmet omdøbes en katalogindgang. E_k_s_e_m_p_e_l_ _4_._8_:_ 10 rename gammel.ny 20 finis Katalogindgangen GAMMEL omdøbes til NY. &_ I programkaldet adskilles navnene med punktum (jvf. 6.3). S_y_n_t_a_k_s_: rename navn'.nyt navn' F_U_N_K_T_I_O_N_ Den specificerede katalogindgang omdøbes til det anførte navn. RENAME-programmet opererer på katalogindgangen med det snævreste SCOPE, og hvis der i SCOPE-puljen allerede findes en katalogind- gang med det nye navn, gennemføres navneændringen ikke. \f T_ 4.5.3 S_l_e_t_n_i_n_g_ Med CLEAR-programmet slettes katalogindgange. E_k_s_e_m_p_e_l_ _4_._9_:_ 10 clear user data 20 finis &_ Katalogindgangen DATA i USER-puljen slettes. S_y_n_t_a_k_s_:_ temp login clear user navn' project F_U_N_K_T_I_O_N_ Den specificerede katalogindgang i den anførte SCOPE-pulje slet- tes. T_ 4.5.4 U_d_s_k_r_i_v_n_i_n_g_ Katalogindgange kan udskrives med LOOKUP-programmet. E_k_s_e_m_p_e_l_ _4_._1_0_:_ lookup data &_ Samtlige tilgængelige katalogindgange med navnet DATA udskrives. S_y_n_t_a_k_s_:_ lookup name' F_U_N_K_T_I_O_N_ Samtlige tilgængelige katalogindgange med det specificerede navn udskrives. T_ Udskrivningen foretages på den velkendte form: navn'=set krop';scopeangivelse' &_ ;hoved' \f 4.5.5 O_p_g_a_v_e_r_ O_p_g_a_v_e_ _4_._6_ Undersøg hvor mange katalogindgange der findes med navnet RCDATA. 1. Med LOOKUP-kommandoen. 2. Med LOOKUP-programmet. O_p_g_a_v_e_ _4_._7_ Opret en katalogindgang og anbring den i LOGIN-puljen. T_ O_p_g_a_v_e_ _4_._8_ Et medlem i et projekt ønsker at gøre et temporært område DATA tilgængeligt for et andet medlem i projektet. Hvorledes kan det &_ gøres, og hvem har herefter adgang til området? T_ 4.6 KATALOGINDGANG Ved udskrivning med LOOKUP fremtræder samtlige oplysninger i ka- talogindgangen. E_k_s_e_m_p_e_l_ _4_._1_0_:_ lookup data data=set 18 disc d770415.1673 0 0 0 0 ; user &_ ; 100 17 3 100 109 T_ Oplysningerne er opdelt i 2 grupper, nemlig hoved og krop. HOVEDKROP Første slice (First slice) Størrelse Navnenøgle (Name key) Dokumentnavn Katalognøgle (Catalog key) Dato Base Diverse &_ Navn. \f T_ I udskriften eksempel 4.10 er oplysningerne anført i følgende rækkefølge: navn'=setstørrelse'dokumentnavn'dato'diverse';scope' &_ ;første slice'navnenøgle'katalognøgle'base' T_ 4.6.1 F_ø_r_s_t_e_ _s_l_i_c_e_ Baggrundslageret er opdelt i en række lige store enheder. En så- dan enhed kaldes en SLICE, og den udgør altid et helt antal seg- menter. Det aktuelle tal er installationsafhængigt. Figur 4.7 &_ Figur 4.7 viser baggrundslageret opdelt i SLICES. Foruden kata- loget er der integnet 2 områder, der er markeret med forskellige skraveringer. Af figuren ses: . Et område altid består af et helt antal SLICES. . Et område kan bestå af sammenhængende SLICES. . Et område kan bestå af usammenhængende SLICES. \f De enkelte SLICES er nummererede, og FØRSTE SLICE i katalogind- gangen udpeger nummeret på den første SLICE, der indgår i et om- råde. Sammenkædningen af de forskellige SLICES håndteres af MO- NITOR. En katalogindgang kan anvendes til forskellige formål, og beskri- ver ikke nødvendigvis et område som hidtil antaget. Fortolkningen af FØRSTE SLICE afhænger af anvendelsen af katalogindgangen (jvf. 4.6.6). 4.6.2 N_a_v_n_e_n_ø_g_l_e_. Oplysningen anvendes af MONITOR ved opslag i kataloget. T_ 4.6.3 K_a_t_a_l_o_g_n_ø_g_l_e_ SCOPE-angivelsen er bestemt af katalognøglen og basen (jvf. op- &_ gave 4.9). T_ 4.6.4 B_a_s_e_ Basen består af et talpar, der angiver den nedre basegrænse og den øvre basegrænse. SCOPE-angivelsen er bestemt af basen og &_ katalognøglen. T_ O_p_g_a_v_e_ _4_._9_:_ En bruger har udskrevet forskellige katalogindgange og opnået følgende resultat: data=set 36 disc 0 0 0 0 0 ; project ; 1207 72 3 5 154 data=set 18 disc 0 0 0 0 0 ; user ; 1199 72 3 15 24 data=set 18 disc 0 0 0 0 0 ; temp ; 1197 72 0 16 16; d100=set 36 disc 0 0 0 0 0 ; login &_ ; 1310 72 2 16 16 Hvorledes afspejles begreberne temporær, LOGIN og permanent i en katalogindgang? \f Find en sammenhæng mellem baserne i de 4 SCOPE-puljer. T_ En anden bruger i samme projekt udskriver ligeledes forskellige katalogindgange og opnår følgende resultat: data=set 36 disc 0 0 0 0 0 ; project ; 1207 72 3 5 154 data=set 72 disc 0 0 0 0 0 ; user ; 900 72 3 35 44 data=set 18 disc 0 0 0 0 0 ; temp &_ ; 501 72 0 40 40 Hvorledes fremgår det af baserne om en bruger har adgang til en katalogindgang? Hvorledes vil baserne til to forskellige projekter være placeret i forhold til hinanden? 4.6.5 N_a_v_n_ Navnet overholder følgende regler: . Det må højst bestå af 11 tegn (bogstaver/cifre). . Det skal indledes med et bogstav. . Der må kun anvendes små bogstaver. T_ I_D_E_N_T_I_F_I_K_A_T_I_O_N_ En katalogindgang identificeres ved sit navn og sin base, idet der ikke kan forekomme flere katalogindgange med det samme navn og den samme base. T_ 4.6.6 S_t_ø_r_r_e_l_s_e_ Når størrelsen er positiv, beskriver katalogindgangen et område, og størrelsen angiver antallet af segmenter. Ved alternativ an- vendelse er størrelsen negativ. En katalogindgang kan f.eks. &_ beskrive en fil på et magnetbånd. \f T_ 4.6.7 D_o_k_u_m_e_n_t_n_a_v_n_ Data befinder sig på fysiske dokumenter. Det kan f.eks. være et kit eller et magnetbånd. Dokumenter har også navne, der er un- derkastet de sædvanlige regler, og ved oprettelse af katalogind- gange kan det f.eks. specificeres på hvilket dokument, et område ønskes placeret. E_k_s_e_m_p_e_l_ _4_._1_1_:_ 10 data1=set 18 disc 20 finis &_ Et område DATA1 oprettes på kittet med navnet DISC. T_ En katalogindgang kan være en henvisning til et område, og områ- det betragtes da som et dokument. UTILITY = SET 126 DISC D.770227.0208 0 43 0 14.1024; SYSTEM LOOKUP = SET BS UTILITY D.770227.0206 0 43 2.1332 2474; SYSTEM &_ LOOKUP-programmet befinder sig i området (dokumentet) UTILITY, der er placeret på dokumentet DISC. T_ 4.6.8 D_a_t_o_ Denne oplysning kan rumme en dato og et klokkeslet, men gør det &_ ikke nødvendigvis. T_ 4.6.9 D_i_v_e_r_s_e_ I 4 helord (INTEGER) kan der indlægges oplysning af forskellig karakter. Fortolkningen af oplysningerne afhænger af programmer- ne, der læser katalogindgangen. Oplysningerne kan f.eks. fortæl- &_ le, at et område rummer et oversat program. \f T_ 4.7 FLERE PLADELAGRE Samtlige pladelagre, der er tilknyttet datamaten, er organiseret som beskrevet i de forrige afsnit. DISC Figur 4.8 B I KK AA TT AA LL OO GG 1 B B I I K K A A T T A A L L O O G G 2 3 &_ DK123456 DK789101 På et af kittene findes endvidere et hovedkatalog (CATALOG). Hovedkataloget rummer kopier af samtlige katalogindgange i de bikataloger, der er monteret. Kittet, der rummer hovedkataloget, kan ikke afmonteres og ønskes\f T_ dette må hovedkataloget først flyttes til et andet kit, hvilket kan ske på anfordring. SYSTEM DISC PRIVAT DISC B B I KI KAK ATA T1 AT2 ALA LOL OGO GG DISC DK123456 &_ Figur 4.9 T_ Kittet, der rummer basisprogrammellet, kaldes DISC og benævnes systemdiscen. De øvrige kit kaldes private og har navne på formen &_ DKxxxxxx. T_ Når der monteres et kit, vil samtlige katalogindgange, der findes i bikataloget blive inkorporeret i kataloget, så det rummer en fuldstændig beskrivelse af baggrundslageret. Ved demontering af et privat kit fjernes samtlige katalogindgange vedgørende kittet fra kataloget. E_k_s_e_m_p_e_l_ _4_._1_3_:_ 10 x= set 200 dk123456 20 scope user x &_ 30 finis Der oprettes en temporær katalogindgang X i kataloget på system- discen til beskrivelse af et område på kittet DK123456. \f Katalogindgangen anbringes herefter i USER-puljen, hvorved den samtidig inkorporeres i bikataloget på DK123456. Området kan nu overleve en demontering af kittet. O_p_g_a_v_e_ _4_._1_0_:_ Opstil en udvidet syntaks for SAVE-kommandoen, så flere pladelag- re kan benyttes. T_ 4.8 RESSOURCER På baggrundslageret skelnes mellem temporære ressourcer og perma- &_ nente ressourcer. T_ 4.8.1 T_E_M_P_ Med optionen/kommandoen TEMP rekvireres temporære ressourcer. E_k_s_e_m_p_e_l_ _4_._1_4_:_ temp disc 500 10 &_ job kc 1234 temp disc 500 10 S_y_n_t_a_k_s_:_ temp disc segmenter' katalogindgange' Det specificerede antal temporære segmenter og katalogindgange rekvireres på systemdiscen. Når en temporær ressource slettes, overføres den frigivne kapacitet til jobbet. Ved jobafslutning frigives alle temporære ressourcer. T_ 4.8.2 P_E_R_M_ Med optionen/kommandoen PERM rekvireres permanente ressourcer. E_k_s_e_m_p_e_l_ _4_._1_5_:_ perm dk123456 3000 30 &_ job kc 1234 perm dk123456 3000 20 S_y_n_t_a_k_s_:_ perm dokumentnavn' segmenter' katalogindgange' På det specificerede kit rekvireres det angivne antal permanente\f segmenter og katalogindgange. Den forbrugte del af ressourcerne overlever jobbet, og herved adskiller denne ressource sig fra alle øvrige. Når en permanent ressource slettes af et job overfø- res den frigivne kapacitet til jobbet. Det er tilladt at forbruge de permanente ressourcer til temporære eller LOGIN områder. T_ 4.9 EKSEMPLER Dette afsnit indeholder forskellige eksempler, der viser hyppigt forekommende anvendelser af BOSS-kommandoer til håndtering af ka- taloget. T_ E_k_s_e_m_p_e_l_ _4_._1_5_:_ Indtast et job og gem det i et permanent område. 10 job kc 1234 time 10 0 20 p = algol text 30 finis save rcjob &_ scope user rcjob T_ E_k_s_e_m_p_e_l_ _4_._1_6_:_ Det gemte job i eksempel 4.16 ønskes modificeret og atter gemt. get rcjob 15 p=set 50 dk791399 save rcjob clear &_ scope user rcjob Efter anvendelsen af SAVE-kommandoen findes 2 områder med navnet RCJOB. Da det permanente område RCJOB er basisfil, skal det fri- gives med CLEAR-kommandoen, før SCOPE-kommandoen kan anvendes til at overføre den modificerede JOBFIL til USER-puljen. \f T_ E_k_s_e_m_p_e_l_ _4_._1_7_:_ Når SCOPE-kommandoen anvendes, må de nødvendige ressourcer være til stede. perm disc 1000 10 scope user rcjob Ressourcer rekvireres med PERM-kommandoen, før SCOPE-kommandoen &_ anvendes. \f F_ 5 MONITOR For at operativsystemet kan udøve den fulde kontrol over datama- ten, er det nødvendigt, at visse funktioner kun kan udføres af operativsystemet. En række af disse funktioner vil være fælles uanset det valgte operativsystem, og man har derfor udskilt denne del i en selvstændig enhed og kaldt den MONITOR. Figur 5.1 viser placeringen af MONITOR og BOSS i det primære lager. PRIMÆR LAGER MONITOR BOSS T_ Figur 5.1 MONITOR indeholder foruden de nødvendige instruktioner forskel- lige variable og tabeller til beskrivelse af datamatens tilstand. Beskrivelsen foreligger i form af en række procesbeskrivelser, &_ idet datamatens aktivitet foregår i såkaldte processer. Det er ikke strengt nødvendigt at kende denne opdeling i processer, men da en del fejludskrifter forudsætter kendskab til procesbegrebet T_ kan det være nyttigt. Ved første læsning af bogen kan den reste- rende del af kapitel 5 evt. springes over. &_ \f T_5.1 PROCES Til varetagelse af forskellige opgaver findes forskellige proces- typer. En proces er forsynet med et navn, der er underkastet de velkendte regler. I de følgende afsnit behandles de 3 vigtigste procestyper. 5.1.1 I_n_t_e_r_n_ _p_r_o_c_e_s_ Ved en intern proces forstås et afgrænset område i det primære la- ger, hvor der afvikles programmer. Et job afvikles således i en intern proces, og jobnavnet er identisk med procesnavnet. Til hver intern proces findes en procesbeskrivelse, der bl.a. in- deholder følgende oplysninger: . Procesnavnet . Placering i det primære lager . Ressourcekrav . Tidsforbrug . Hierarkisk placering . Tilstand. Beskrivelsen indeholder både faste og variable oplysninger. Pro- cesnavnet er således en fast oplysning, mens f.eks. tidsforbruget løbende akkumuleres. Ajourføringen foretages af MONITOR. T_ 5.1.1.1 P_r_o_c_e_s_ _h_i_e_r_a_r_k_i_. Ved initialiseringen af RC 8000 indlæses MONITOR og et simpelt operativsystem S. S ejer på dette tidspunkt samt- lige ressourcer. Figur 5.1 illustrerer dette. \f T_ PRIMÆR LAGER MONITOR S Figure 5.2 &_ En delmængde af en proces, kan udlægges som en selvstændig pro- ces, og ressourcer kan overføres til den nye proces. Den nye proces kaldes CHILD PROCESS, mens den oprindelige kaldes PARENT PROCESS. Sædvanligvis anvendes operativsystemet S kun til at oprette BOSS, hvorved samtlige ressourcer overføres til BOSS. Figur 5.3 viser, at S er PARENT og BOSS er CHILD. T_ PRIMÆR LAGER MONITOR S BOSS Figur 5.3 &_\f T_ Når et job skal afvikles af BOSS, oprettes en intern proces, hvor afviklingen kan foretages. Figur 5.4 illustrerer afviklingen af 2 job samtidigt. PRIMÆR LAGER MONITOR JOB 1 S BOSS JOB 2 Figur 5.4 A_N_C_E_S_T_O_R_ BOSS er nu PARENT PROCES for de to CHILD-processer, og S kaldes ANCESTOR PROCES. Når et job er afviklet, fjernes den interne pro- ces. 5.1.1.2 P_r_o_c_e_s_t_i_l_s_t_a_n_d_. Procestilstanden afspejler processens øjeblikke- lige aktivitet. Man skelner mellem 2 hovedtilstande: . RUNNING . WAITING Samtlige processer, der befinder sig i tilstanden RUNNING, får tildelt CPU-tid på skift (ROUND ROBIN) af MONITOR. \f En proces kan befinde sig i tilstanden WAITING af flere grunde. En proces, der afventer datatransporter, befinder sig således i denne tilstand. En proces, der er "swopped" af BOSS er også i tilstanden WAITING. Ved tildelingen af CPU-tid indgår der således 2 faktorer: 1. BOSS>s prioriteringsstrategi 2. MONITOR>s ROUND ROBIN strategi. 5.1.2 P_e_r_i_f_e_r_ _p_r_o_c_e_s_ Dataoverførslen mellem ydre enheder og det primære lager vare- tages af de perifere processer. En perifer proces er en del af MONITOR. Til hver ydre enhed findes en perifer proces med til- hørende procesbeskrivelse, der bl.a. indeholder følgende op- lysninger: . Procesnavn . Enhedsnummer . Reservation . Potentielle brugere (interne processer) En potentiel bruger kan reservere en perifer proces, hvilket bl.a. kan være nødvendigt ved skrivning. De forskellige processer er beskrevet i ref. 13. 5.1.3 A_r_e_a_l_p_r_o_c_e_s_ Dataoverførsel mellem områder på baggrundslageret og det primære lager varetages af arealprocesser. Da antallet af områder er va- rierede, findes i MONITOR en pulje arealprocesser, der kan til- knyttes de ønskede områder. I procesbeskrivelsen indgår bl.a. følgende oplysninger: . Procesnavn . Periferproces . Reservation . Potentielle brugere (interne processer) \f Et område befinder sig på en ydre enhed (DISC), og i procesbe- skrivelsen henvises til den perifere proces. En potentiel bruger kan reservere en arealproces, hvilket bl.a. er nødvendigt ved skrivning. 5.1.4 P_r_o_c_e_s_h_å_n_d_t_e_r_i_n_g_ MONITOR understøtter proceshåndteringen ved et sæt privilegerede funktioner. Nedenstående liste giver et indtryk af mulighederne: CREATE INTERNAL PROCESS CREATE PERIPHERAL PROCESS CREATE AREA PROCESS RESERVE PROCESS RELEASE PROCESS REMOVE PROCESS START INTERNAL PROCESS STOP INTERNAL PROCESS T_ 5.2 INTERN KOMMUNIKATION I MONITOR findes en pulje MESSAGE BUFFERE, der anvendes til at overføre informationer mellem de forskellige processer. Informa- tionsudvekslingen må ske ifølge en veldefineret protokol, og føl- gende funktioner stilles bl.a. til rådighed af MONITOR: SEND MESSAGE WAIT MESSAGE SEND ANSWER &_ WAIT ANSWER En meddelelse overføres til en MESSAGE BUFFER ved anvendelse af SEND MESSAGE funktionen. Meddelelsen overføres herfra til den ønskede proces, når denne proces kalder funktionen WAIT MESSAGE. Besvarelsen af meddelelsen leveres tilbage i den samme MESSAGE BUFFER ved kald af SEND ANSWER. Ved kald af WAIT ANSWER funktio- nen overføres svaret fra MESSAGE BUFFEREN til processen. Neden- stående kommunikationsskitse illustrerer dette: \f T_ SENDER MODTAGER SEND MESSAGE WAIT MESSAGE SEND ANSWER &_ WAIT ANSWER En intern proces, der venter på en hændelse (MESSAGE, ANSWER), sættes af MONITOR i tilstanden WAITING indtil hændelsen oprinder. En mere avanceret kommunikation mellem processer understøttes med funktionerne: GET EVENT WAIT EVENT Oplysningerne, der udveksles mellem processer, aftales individu- elt. Ved input/output sendes der meddelelser til de relevante perifere/areal processer indeholdende de nødvendige oplysninger, og de leverer et svar tilbage angående forløbet af dataoverfør- slen. T_ E_k_s_e_m_p_e_l_ _5_._1_: begin integer a,b; read (in,a,b); write(out,a,b); &_ end I dette velkendte program foretages såvel indlæsning som udskriv- ning. Den nødvendige interne kommunikation afspejles ikke i pro- grammet, men varetages ubemærket af READ- og WRITE-procedurerne. En meddelelse vedrørende input/output indeholder typisk følgende oplysninger: 1. Operationskode 2. Databufferangivelse. Ved læsning overføres data fra enheden til den specificerede da- tabuffer, og ved skrivning overføres data fra databufferen til enheden.\f I svaret findes typisk følgende oplysninger: 1. Statusord 2. Antal overførte halvord. T_ 5.3 RESSOURCER Procesbeskrivelser og messagebuffere betragtes som ressourcer, og ved kørsel under BOSS må de nødvendige ressourcer derfor rekvire- &_ res i JOBSPECIFIKATIONEN eller ved BOSS-kommandoer. T_ 5.3.1 I_n_t_e_r_n_ _p_r_o_c_e_s_ Med kommandoen/optionen INTERNALS rekvireres interne procesbe- skrivelser. E_k_s_e_m_p_e_l_ _5_._2_:_ internal 1 &_ job kc 1234 internals 1 S_y_n_t_a_k_s_:_ internal antal' F_U_N_K_T_I_O_N_ Det specificerede antal interne procesbeskrivelser rekvireres. Ved skabelsen af en CHILD PROCES kræves en beskrivelse. 5.3.2 P_e_r_i_f_e_r_ _p_r_o_c_e_s_ Rekvireringen af ydre enheder (jvf. 3.5.4) er en rekvirering af de tilhørende perifere processer. T_ 5.3.3 A_r_e_a_l_p_r_o_c_e_s_ Med kommandoen/optionen AREA rekvireres arealprocesser. E_k_s_e_m_p_e_l_ _5_._3_:_ area 10 &_ job kc 1234 area 10 S_y_n_t_a_k_s_:_ area antal' \f F_U_N_K_T_I_O_N_ Det specificerede antal arealprocesser rekvireres. Hver proces kan tilknyttes et område ad gangen. Samtidig anvendelse af 2 om- råder kræver således 2 arealprocesser. Ved successiv anvendelse er een arealproces tilstrækkelig, idet arealprocessen i rækkeføl- ge kan tilknyttes områderne. T_ 5.3.4 M_e_s_s_a_g_e_ _b_u_f_f_e_r_ Med kommandoen/optionen BUF rekvireres MESSAGE BUFFERE. E_k_s_e_m_p_e_l_ _5_._4_:_ buf 7 &_ job kc 1234 buf 7 S_y_n_t_a_k_s_:_ buf antal' F_U_N_K_T_I_O_N_ Det specificerede antal MESSAGE BUFFERE rekvireres. Ved afsendel- se af et meddelse forbruges en MESSAGE BUFFER, ved modtagelsen af svaret returneres MESSAGE BUFFEREN, og en ny meddelse kan sendes. Antallet af MESSAGE BUFFERE bestemmer altså antallet af meddelelser, der samtidig kan sendes. T_ 5.4 KATALOGET Håndtering af kataloget er overladt til MONITOR, der bl.a. under- støtter dette med følgende funktioner: CREATE ENTRY LOOKUP ENTRY CHANGE ENTRY RENAME ENTRY REMOVE ENTRY PERMANENT ENTRY SET ENTRY BASE &_ LOOKUP HEAD AND TAIL \f Anvendelsen af de velkendte BOSS-kommandoer og FP-programmer (Kap. 4) resulterer således i kald af en eller flere af ovennævn- te funktioner. En MONITOR-funktion udføres fra ALGOL-programmer ved kald af pro- ceduren MONITOR. T_ 5.5 ARBEJDSDELING Arbejdsdelingen mellem MONITOR og BOSS forekommer måske en smule uklar, og dette forhold søges derfor belyst i de følgende afsnit &_ ved en række eksempler. T_ 5.5.1 C_P_U_-_t_i_d_ BOSS udvælger jobbene, der skal afvikles, og kan starte og stoppe CHILD PROCESSERNE. MONITOR tildeler CPU-tid til de aktive (RUN- NING) processer og kan ændre procestilstanden ved udførelsen af &_ visse funktioner (jvf. 5.2). T_ 5.5.2 O_v_e_r_v_å_g_n_i_n_g_ Lagerbeskyttelse udøves af MONITOR til sikring af de interne pro- cesser, så de ikke ulovligt kan generes ved uønsket skrivning i &_ procesområdet. Den forbrugte køretid overvåges derimod af BOSS, der ligeledes bestemmer, hvad der skal ske med et JOB, der overskrider tidskra- vet. T_ 5.5.3 R_e_s_s_o_u_r_c_e_r_ Rekvireringen af ressourcer sker ved henvendelse til BOSS, og de ønskede ressourcer overføres til CHILD PROCESSEN. MONITOR for- hindrer, at en proces forbruger flere ressourcer (MESSAGE BUFFER, AREALPROCESS, PERIFER PROCESS, KATALOGINDGANG, SLICE), end den er &_ tildelt ved oprettelsen. \f T_ 5.5.4 D_a_t_a_o_v_e_r_f_ø_r_s_e_l_ MONITOR varetager dataoverførsel, hvorimod BOSS bestemmer om &_ "spooling" skal finde sted. T_ 5.5.5 P_o_l_i_t_i_k_ Af de forrige afsnit fremgår, at de politiske beslutninger (job- prioritering, jobafbrydelse, ressourcetildeling og spoolstrategi) er overladt til BOSS. De upolitiske beslutninger træffes derimod &_ af MONITOR. \f F_ 6 FILE PROCESSOR Opmærksomheden har i de forrige kapitler næsten udelukkende været rettet mod reservation af ressourcer og kun i ringe grad mod an- vendelsen af de rekvirerede ressourcer. Vi har dog allerede set, hvorledes man i JOBFILEN kan aktivere programmer og derved få forskellige ting udført. Før en mere dybtgående behandling af dette emne, indeholder kapitel 6 en kort beskrivelse af hændel- sesforløbet ved afvikling af et job. T_ 6.1 Programafvikling Når BOSS har udvalgt et job, oprettes en intern process, hvori jobbet kan udføres. Fra baggrundslageret indlæser BOSS herefter et program, der varetager afviklingen af de ønskede programmer. Dette afviklerprogram kaldes en FILE PROCESSOR og har navnet FP. MONITOR FP B RC0 O S FP S RC1 &_ Figur 6.1 \f Figur 6.1 illustrerer simultan afvikling af jobbene RC0 og RC1. Hvert job afvikles i en intern proces, of i hver proces findes en kopi af FP. FP befinder sig permanent i det primære lager under hele jobaf- viklingen og kan understøtte programafviklingen på forskellige måder. FP varetager følgende: . Indlæser og tolker styrekommandoer (FP-kommandoer) . Aktiverer programmer . Opdaterer tilstandsvariable . Stiller hjælpefunktioner til rådighed. T_ E_k_s_e_m_p_e_l_ _6_._1_:_ 10 job kc 1234 temp disc 900 5 20 data = set 900 disc &_ 30 finis Når dette job skal udføres, læser BOSS indledningsvis JOBSPECIFI- KATIONEN, opretter herefter en intern proces og overfører de nød- vendige ressourcer til processen. FP indlæses, og den videre af- vikling af jobbet overlades til FP. Følgende sker: 1. FP indlæser den første FP-kommando fra JOBFILEN. 2. Kommandoen tolkes, og SET-programmet indlæses til den frie del af processen. 3. SET-programmet aktiveres og udføres. 4. Programudførelsen slutter med et kald af FP-hjælpefunktionen END PROGRAM. 5. Kontrollen er nu givet tilbage til FP, der ajourfører sine tilstandsvariable angående udførelsen af SET-programmet. 6. Den næste FP-kommando indlæses fra JOBFILEN. 7. Kommandoen tolkes og FINIS-programmet indlæses, hvorved SET bliver overskrevet. 8. FINIS-programmet udføres. FINIS sender et message til BOSS med besked om, at jobbet skal afbrydes, og kontrollen er givet tilbage til BOSS, der afbryder jobbet. \f T_ RC0 RC0 RC0 RC0 FP FP FP SET FINIS &_ Figur 6.2 Figur 6.2 illustrerer hændelsesforløbet, når jobbet i eksempel 6.1 afvikles. Man ser, at FP permanent optager plads i det pri- mære lager, men da FP udnytter det primære lager virtuelt, er det kun nogle få halvord (1536), der optages permanent. Det betyder således ikke så meget pladsmæssigt, at hvert job rummer en kopi af FP. Da FP således kun skal betjene eet job, er FP et forholds- vis simpelt program, der let kan erstattes af et andet. T_6.2 FP-KOMMANDO Der skelnes mellem simple FP-kommandoer og sammensatte FP-komman- &_ doer. T_ 6.2.1 S_i_m_p_e_l_ _F_P_-_k_o_m_m_a_n_d_o_ E_k_s_e_m_p_e_l_ _6_._2_:_ finis lookup data data = set 900 disc Med en simpel FP-kommando aktiveres et program, og forskellige &_ parametre kan herved overføres til programmet. T_ S_y_n_t_a_k_s_:_ 11 &_ resultatfil'= 0 programnavn' parameterliste' 0 FP læser en FP-kommando, udfører syntakskontrol, tolker kommandoen og aktiverer det specificerede program. Fortolkningen af de valg- frie dele af kommandoen overlades til det specificerede program.\f V_E_N_S_T_R_E_S_I_D_E_ Kommandodelen til venstre for programnavnet kaldes venstresiden og angiver sædvanligvis navnet på en katalogindgang. E_k_s_e_m_p_e_l_ _6_._3_:_ u=set 18 &_ u=algol txt SET opretter en katalogindgang med navnet U og ALGOL gemmer det oversatte program i dette område. T_ Parameterlisten til højre for programnavnet består af een eller flere parametre adskilt med mellemslag. N &_ parameterliste'::= s' parameter' 1 T_ Hver parameter består af et eller flere elementer adskilt med punktum. N &_ parameter' ::= element' .element' 0 T_ E_k_s_e_m_p_e_l_ _6_._4_:_ scope user data &_ u=algol txt list.yes xref.yes T_ Et element kan være et navn eller et heltal navn' &_ element' ::= heltal' Navnene, der anføres, er underkastet de velkendte regler. Heltallene er begrænset til intervallet 0 til 8388607. T_ E_k_s_e_m_p_e_l_ _6_._5_:_ save mt123456.1.mt471100 ud = copy ind 3 &_ u = algol text \f Fortolkningen af parameterlisten foretages individuelt af de enkelte programmer, men en fælles konvention følges dog, idet den første parameter ofte angiver en inputfil, såfremt den består af et navn. Et mellemslag i en FP kommando kan erstattes af komma og linie- skift, hvorved en kommando kan fordeles over flere linier. T_ E_k_s_e_m_p_e_l_ _6_._6_:_ u = algol, list.yes, &_ xref.yes Indholdet til højre for et semikolon betragtes som en kommentar. E_k_s_e_m_p_e_l_ _6_._7_:_ u = fortran txt list.yes ; aktiver FORTRAN O_p_g_a_v_e_ _6_._1_:_ Find fejlene 1. u.yes=fortran txt 2. 2 = algol txt 3. 3 list.yes 4. x = copy 9000000 5. u = algol programtekst T_ 6.2.2 S_a_m_m_e_n_s_a_t_ _F_P_-_k_o_m_m_a_n_d_o_ Ved en sammensat FP-kommando forstås en sekvens FP-kommandoer indesluttet i en parentes. E_k_s_e_m_p_e_l_ _6_._8_:_ (u=algol &_ u) T_ S_y_n_t_a_k_s_:_ sammensat kommando'::=N simpel kommando' &_ (simpel kommando' NL' sammensat kommando') 0 T_ E_k_s_e_m_p_e_l_ _6_._9_:_ (u=algol txt if warning.yes (u=algol list.yes finis) &_ ) \f FP læser altid een kommando ad gangen, uanset om det er en simpel eller en sammensat kommando. En kommando gemmes i kommandostakken, og først når samtlige simple kommandoer i kommandostakken er ud- ført, indlæses den næste kommando. O_p_g_a_v_e_ _6_._2_:_ Omform JOBFILEN i eksempel 3.1, så alle FP-kommandoer er samlet. Hvilke fordele opnås herved? T_ 6.3 Filer Ved en fil forstås en ubrudt streng af data såsom en hulstrimmel, en kortstak, et område eller en magnetbåndsfil. En fil er beskre- vet ved en katalogindgang. Når et job afvikles har det umiddelbar adgang til forskellige filer. Disse filer kaldes standardfiler og &_ omfatter følgende: 1. JOBFILEN rummer jobønskerne. På nær JOBSPECIFIKATIONEN udle- veres JOBFILEN til jobbet af BOSS, og den kaldes PRIMÆR INPUT FILE. 2. Fra CURRENT INPUT FILE læses FP-kommandoer og forskellige inddata. Under jobafviklingen kan der veksles mellem forskel- lige inputfiler. Ved jobstarten vælges PRIMÆR INPUT FILE til CURRENT INPUT FILE, så den første FP-kommando altid læses fra JOBFILEN. 3. På CURRENT OUTPUT FILE skrives uddata og fejludskrifter. Un- der jobafviklingen kan der veksles mellem de forskellige fi- ler. Den først valgte kaldes PRIMÆR OUTPUT FILE 4. Området PRIMOUT vælges af BOSS som PRIMÆR OUTPUT FILE. PRIM- OUT er et SPOOLOMRÅDE, og BOSS sørger for at viderebringe da- taene. PRIMÆR INPUT FILE og PRIMÆR OUTPUT FILE er beskrevet i kataloget med hhv. katalogindgangen V og katalogindgangen C, og disse navne\f bør derfor ikke anvendes til andre formål. T_ 6.3.1 C_U_R_R_E_N_T_ _I_N_P_U_T_ _F_I_L_E_ Med I-programmet vælges CURRENT INPUT FILE. E_k_s_e_m_p_e_l_ _6_._1_0_:_ 10 i kommandofil &_ 20 finis I-programmet gør KOMMANDOFIL til CURRENT INPUT FILE. De følgende kommandoer læses nu fra denne fil, og først når den er udtømt vendes tilbage til JOBFILEN. S_y_n_t_a_k_s_:_ i navn' T_ F_U_N_K_T_I_O_N_ Navnet på CURRENT INPUT FILE samt positionen gemmes, så læsningen senere kan genoptages fra filen i den rigtige position. Herefter vælges den specificerede fil til CURRENT INPUT FILE. Returinfor- mationen opbevares i en stak, der kan rumme et vilkårligt antal &_ elementer. T_ E_k_s_e_m_p_e_l_ _6_._1_1_:_ STAK. NAVN POSITION (i ind1 C - i ind2 ind1 - &_ i ind3) ind2 - Den sammensatte kommando vælger ny CURRENT INPUT FILE 3 gange, og hver gang gemmes den nødvendige returinformation i stakken. T_ A_F_S_T_A_K_N_I_N_G_ Når CURRENT INPUT FILE er udtømt, dvs. at en END OF MEDIUM karak- ter er læst, udtages det sidste element i stakken. Den beskrevne fil vælges til CURRENT INPUT FILE, og læsningen fortsætter i den angivne position. Der har herved fundet en afstakning sted. Når &_ stakken er tom returneres til PRIMÆR INPUT FILE. \f T_ E_N_D_ &_ Med END-programmet afstakkes CURRENT INPUT FILE. T_ E_k_s_e_m_p_e_l_ _6_._1_2_:_ end &_ CURRENT INPUT FILE afstakkes. S_y_n_t_a_k_s_:_ end T_ F_U_N_K_T_I_O_N_ END udfører samme funktion, som finder sted, når en END OF MEDIUM &_ karakter læses. T_ 6.3.2 C_U_R_R_E_N_T_ _O_U_T_P_U_T_ _F_I_L_E_ Med O-programmet vælges CURRENT OUTPUT FILE. E_k_s_e_m_p_e_l_ _6_._1_3_:_ 10 o ud 20 u=algol txt list.yes 30 o c 40 convert ud &_ 50 finis CURRENT OUTPUT FILE vælges, og udskrivningen fra ALGOL sker på den valgte fil. S_y_n_t_a_k_s_:_ o navn' T_ F_U_N_K_T_I_O_N_ Brugen af CURRENT OUTPUT FILE afsluttes ved skrivning af en END &_ OF MEDIUM karakter, og herefter vælges den specificerede fil til CURRENT OUTPUT FILE. Hvis der ikke findes en fil med det specifi- cerede navn oprettes et område med navnet, og det vælges til CUR- RENT OUTPUT FILE. Der foretages ingen skrivning af returinforma- tion. T_ 6.3.3 Z_o_n_e_r_n_e_ _I_N_ _o_g_ _O_U_T_ I ALGOL- og FORTRAN-programmmer er zonen IN tilknyttet CURRENT &_ INPUT FILE, og zonen OUT er tilknyttet CURRENT OUTPUT FILE. \f T_ 6.3.4 O_p_g_a_v_e_r_ O_p_g_a_v_e_ _6_._3_:_ &_ Hvorfor er linie 30 i eksempel 6.13 nødvendig? T_ O_p_g_a_v_e_ _6_._4_:_ Ret JOBFILEN i eksempel 3.1, så uddata skrives på printeren, og &_ inddata læses fra en fil med navnet INDDATA. T_ O_p_g_a_v_e_ _6_._5_:_ Områderne KOM1 og KOM2 indeholder følgende FP-kommandoer: K_O_M_1_ K_O_M_2_ u = algol txt o udfil i kom2 u data &_ convert udfil o c T_ Bestem udførelsesrækkefølgen, når følgende job tilmeldes: 10 i kom1 &_ 20 finis T_ O_p_g_a_v_e_ _6_._6_:_ Områderne FPKOM1 og FPKOM2 indeholder følgende FP-kommandoer: F_P_K_O_M_1_ F_P_K_O_M_2_ &_ u = algol txt1 p = algol txt2 T_ Forklar hvad der sker, når følgende to job tilmeldes: 1. 10 i fpkom1 20 i fpkom2 &_ 30 finis T_ 2. 10 (i fpkom1 20 i fpkom2) &_ 30 finis \f T_ 6.3.5 P_R_I_M_O_U_T_ Området PRIMOUT, der ved jobstarten vælges til PRIMÆR OUTPUT FILE, er en ressource, og størrelsen kan specificeres ved kom- mandoen/optionen OUTPUT. E_k_s_e_m_p_e_l_ _6_._1_4_:_output 768000 &_ job kc 1234 output 768000 S_y_n_t_a_k_s_:_ output antal karakterer' T_ F_U_N_K_T_I_O_N_ Det ønskede uddatamængde angives i karakterer, og området får &_ størrelsen karakterer/768 segmenter. T_ 6.4 Jobprogrammering Fra afsnit 6.1 erindres, at afslutningen på et program bestod i et kald hjælpefunktionen END PROGRAM. I kaldet af hjælpefunktio- &_ nen videregives der forskellige oplysninger vedrørende forløbet af programudførelsen til FP, der kan opbevare oplysningerne i forskellige tilstandsvariable. Værdier af tilstandsvariablene kan udnyttes til modifikation af jobafviklingen, og ved hjælp af for- skellige hjælpeprogrammer er det muligt at programmere i FP- KOMMANDOER. T_6.4.1 T_i_l_s_t_a_n_d_s_v_a_r_i_a_b_l_e_ FP har et helord til at registrere forskellige oplysninger. I &_ hver af de 24 bits kan der gemmes oplysning om en tilstand, der kan antage værdierne YES eller NO. Bittene kaldes MODEBITS, og 12 er reserveret til specielle formål, mens de 12 øvrige stilles til rådighed for jobbet. De 3 vigtigste bits er følgende: LIST Når LIST-bitten har værdien YES, udskrives hver FP-kom- mando på CURRENT OUTPUT FILE før udførelsen. \f OK Afspejler sammen med WARNING-bitten programudførelsen. WARNING Afspejler sammen med OK-bitten programudførelsen. Såvel OK-bitten som WARNING-bitten justeres efter hver program- udførelse. De øvrige bits ændres kun på anfordring. Med MODE-programmet kan MODEBITTENE tilskrives værdier. T_ E_k_s_e_m_p_e_l_ _6_._1_5_:_ mode list.yes &_ mode list.no T_ LIST-bitten tilskrives værdien YES ved det første programkald og NO ved det andet. yes &_ S_y_n_t_a_k_s_:_ mode bit'. no T_ F_U_N_K_T_I_O_N_ Den angivne værdi YES eller NO tilskrives den specificerede bit. &_ En bit kan enten være angivet ved et navn eller et nummer. T_ E_k_s_e_m_p_e_l_ _6_._1_6_: mode 8.no Bit 8 tilskrives værdien NO. &_ De frie bits er nummereret fra 0 til 11. T_ 6.4.2 P_r_o_g_r_a_m_m_e_r_i_n_g_ &_ Jobkontrolsproget består af følgende grundelementer: . Sætning. En simpel FP- KOMMANDO. . Sætningsparentesen ( ). . IF- sætning. . REPEAT- sætning. De 2 første elementer er velkendte. \f Med IF-programmet kan udførelsen af den næste FP-kommando gøres betinget af værdien af MODEBITTENE. T_ E_k_s_e_m_p_e_l_ _6_._1_7_: u=algol txt if ok.no finis u &_ finis Det første kald af FINIS udføres kun, såfremt OK-bitten har værdien NO. S_y_n_t_a_k_s_: yes if modebit'. no T_ F_U_N_K_T_I_O_N_ Den næste FP-kommando udføres, såfremt den specificerede MODEBIT har den angivne værdi. En MODEBIT kan identificeres med nummer eller navn. I modsætning til alle andre programmer opdateres &_ MODEBITTENE ikke efter udførelse af IF-programmet. R_e_p_e_a_t_ Med REPEAT-programmet kan en kommando bringes til ud- førelse flere gange. T_ E_k_s_e_m_p_e_l_ _6_._1_8_: (repeat 5 u) Kommandoen udføres 5 gange. T_ S_y_n_t_a_k_s_: (repeat antal' &_ kommando') Den specificerede kommando udføres det angivne antal gange. Repe- titionen skal anføres i en sammensat kommando. T_ 6.4.3 O_p_g_a_v_e_r_ Opgaveløsningerne forudsætter kendskab til kaldet af ALGOL, og &_ ALGOLs opdatering af WARNING- og OK-bittene. \f Med ALGOL oversættes en kildetekst til et objektprogram, der kan bringes til udførelse. Forskellige modifikationer kan specificeres i programkaldet. T_ S_y_n_t_a_k_s_: N yes 1 objektfil'=algol kildefil' 0 list. no0 &_ yes1 yes1 bossline. no0 xref.no0 Det oversatte program skrives i objektfilen. Fejludskrifter etc. skrives på CURRENT OUTPUT FILE. ALGOL-teksten læses fra de anfør- te kildefiler eller fra CURRENT INPUT FILE, når intet er anført. LIST.YES angiver, at ALGOL-teksten skal udskrives. BOSSLINE.YES angiver, at hver linje skal forsynes med et nummer, der kan anvendes ved editering med BOSS. XREF.YES angiver, at en krydsliste over anvendelsen af de variable skal udskrives. Værdierne af WARNING- OG OK-bittene har følgende betydning: T_ OK. YES Det oversatte program kan udføres, muligvis kun delvist. &_ NO Det oversatte program kan ikke udføres. T_ WARNING. YES Der er registreret syntaksfejl. &_ No Der er ikke registreret syntaksfejl. I opgaverne antages, at en ALGOL-tekst findes i området TEXT. T_ O_p_g_a_v_e_ _6_._7_:_ Skriv et job der kan oversatte programmet og afvikle det, såfremt &_ det er muligt. \f O_p_g_a_v_e_ _6_._8_:_ Udbyg jobbet fra opgave 6.7 så programteksten og en krydsliste &_ udskrives på printeren, hvis der registreres syntaksfejl. T_ O_p_g_a_v_e_ _6_._9_:_ Udbyg jobbet fra opgave 6.8 så det oversatte program kun udføres, &_ når der ikke er registreret fejl, og det skal da udføres 6 gange. T_6.5 Hjælpefunktioner Der findes forskellige hjælpefunktioner, som programmer kan benyt- &_ te. Dette udnyttes i særlig grad i assemblerprogrammer. T_6.6. Fejludskrifter De vigtigste fejludskrifter fra FP findes i følgende list: xxx BREAK forklaring' En alvorlig fejl bevirkede, at jobbet blev afbrudt. Det gen- startes ved indlæsning af FP og fortsætter med udførelsen af &_ den næste kommando i JOBFILEN. T_ xxx FP CALL program' &_ Det anførte navn er ikke et programnavn. T_ xxx FP NAME program' &_ Det anførte navn findes ikke i hovedkataloget. T_ xxx FP JOB TERMINATION &_ Jobbet blev afbrudt efter læsning af 10 syntaksfejl. T_ xxx FP REINITIALIZED &_ FP blev genindlæst pga. alvorlige fejl. T_ xxx FP SYNTAX nogle tegn' &_ Syntaksfejl i inddata til FP. De fejlagtige tegn udskrives. \f O_p_g_a_v_e_ _6_._1_0_ Forklar fejludskrifterne i følgende 3 job. 1. 10 testprograml 20 2 3 30 finis go &_ FINIS ... xxx FP SYNTAX TESTPROGRAM1 x READ FROM PRIMARY INPUT xxx FP REINITIALIZED xxx FP SYNTAX 2 x READ FROM PRIMARY INPUT xxx FP REINITIALIZED END ... 2. 10 testprogram 20 finis go FINIS xxx FP NAME TESTPROGRAM END ... 3. 10 testprogram 20 finis go FINIS ... xxx FP CALL TESTPROGRAM END ... \f F_ 7. HJÆLPEPROGRAMMER På datamaten findes en række hjælpeprogrammer, hvoraf en del er blevet omtalt i de foregående kapitler for at illustrere forskel- lige udnyttelsesmuligheder. I de 3 følgende kapitler findes mere omfattende beskrivelser af de vigtigste hjælpeprogrammer. Beskri- velserne er dog på ingen måde udtømmende, og kun de vigtigste (al- mindeligste) anvendelsesmuligheder beskrives. I dette kapitel gives en kortfattet oversigt over hjælpeprogram- merne, og forskellige fælles konventioner omtales. Hjælpeprogrammerne er på grundlag af deres funktioner delt i 3 grupper: . Jobkontrol. . Kataloghåndtering. . Datahåndtering. T_7.1 Jobkontrol Til denne gruppe henregnes programmer, der kan påvirke jobafvik- lingen på forskellige måder. Endvidere omfatter gruppen program- mer, der kommunikerer med BOSS (jvf.5.2.). P.t. omfatter gruppen 27 programmer. Jobkontrol programmerne opdeles naturligt i følgende grupper: . Styring af input/output. END, I og O. . Jobprogrammering. IF, MOD og REPEAT. . Printtilmelding. CONVERT. \f . Jobtilmelding NEWJOB og REPLACE . Operatørkommunikation. OPCOMM, OPMESS, KIT, MOUNT og RELEASE. De anførte programmer beskrives i kapitel 8. T_7.2 Kataloghåndtering Med de kataloghåndterende programmer udføres de velkendte opera- tioner på KATALOGET. Gruppen omfatter p.t. 22 programmer, hvoraf følgende omtales: CLEAR. LOOKUP. RENAME. SCOPE. SEARCH. &_ SET. T_7.3 Datahåndtering &_ Ved datahåndtering forstås: . Dataoverførsel. . Dataudskrivning. . Datamodifikation. Til løsning af disse opgaver findes en række programmer, hvoraf nogle har adskillige anvendelsesmuligheder. I den følgende grup- pering er programmerne indplaceret efter deres hovedfunktion. T_ . Dataoverførsel. &_ COPY, LOAD, MOVE og SAVE. \f . Dataudskrivning HEAD og HEADPUNCH . Datamodifikation EDIT De anførte programmer i første og anden gruppe beskrives i kapi- tel 10. EDIT er et tekstredigeringsprogram, der gør det muligt at modifi- cere programtekster og data. EDIT rummer flere faciliteter end BOSS-editor. Gruppen omfatter p.t. 13 programmer. T_ 7.4 Konventioner Samtlige hjælpeprogrammer arbejder ud fra et fælles sæt konventi- oner, således at fejludskrifter er standardiserede og leveres på samme fil, nemlig CURRENT OUTPUT FILE. T_ Fejludskrifter har følgende format: xxx programnavn' forklaring' E_k_s_e_m_p_e_l_ _7_._1_: xxx CLEAR CALL Ulovligt kald af CLEAR-programmet resulterer &_ i denne fejlmeddelelse. PRIMÆR OUTPUT FILE anvendes til fejludskrifter, når det ikke er muligt at anvende CURRENT OUTPUT FILE. En række forkortelser er fælles for de kataloghåndterende program- mer ved oprettelse og udskrivning af katalogindgange. Når stør- relsen er negativ henviser en katalogindgang til et dokument, og typen er bestemt ved en MODEKIND-angivelse, der erstatter stør- relsen. MODEKIND beskrives ved et talpar, men af bekvemmeligheds grunde kan den erstattes af forskellige MODEKIND-forkortelser. \f T_ 7.5 Modekind Den følgende list omfatter de mest anvendte MODEKIND-forkortelser. FORKORTELSE MODE KIND. FORKLARING. ip 0 0 Input/output via intern &_ process. bs 0 4 Baggrundslager. T_ tro 0 10 Strimmellæser, ulige &_ paritet. T_ tre 2 10 Strimmellæser, lige &_ paritet. T_ trf 6 10 Strimmellæser, flexo- &_ writercode. tpo 0 12 Perforator, ulige paritet. tpe 2 12 Perforator, lige paritet. T_ tpf 6 12 Perforator, flexowriter- &_ code. lp 0 14 Printer crc 10 16 Kortlæser, EBCDic. mto 0 18 Magnetbånd, ulige paritet. T_7.6 Fildescriptorer En række hyppigt anvendte dokumenter er beskrevet ved forskellige &_ permanente katalogindgange, der ofte har samme navn som MODEKIND-\f forkortelsen for dokumentet. Nedenstående liste er ikke udtøm- mende. T_ NAVN DOKUMENT MODEKIND-FORKORTELSE tro reader tro tre reader tre trf reader trf tpo punch tpo tpe punch tpe tpf punch tpf lp printer lp &_ crc cardreader crc \f F_ 8 JOBKONTROL Programmer, der øver indflydelse på jobafviklingen eller som kom- munikerer med BOSS, kaldes jobkontrollerende programmer. En del af disse programmer er allerede introduceret i kapitel 6, uden at der i den anledning er givet egentlige programbeskrivelse.I dette kapitel findes en række programbeskrivelser suppleret med forskel- lige eksempler og opgaver, der illustrerer hyppigt forekommende anvendelser af programmerne. Flere af programmerne omhandler nye aspekter og de nødvendige begreber indføres løbende. T_8.1 Styring af current input/output Til dette formål findes de tidligere omtalte programmer I, END og &_ O. I de følgende 3 afsnit findes for hvert program en mere fuld- stændig programbeskrivelse. Afsnittet afrundes med en beskrivelse af ONLINE- programmet, der gør det muligt at køre konverserende job. T_ 8.1.1 Med I-programmet vælges CURRENT INPUT FILE. E_k_s_e_m_p_e_l_ _8_._1_:_ i komfile Filen, der er beskrevet ved katalogindgangen &_ KOMFILE, vælges til CURRENT INPUT FILE. T_ P_R_O_G_R_A_M_K_A_L_D_:_ &_ i filnavn' T_ F_U_N_K_T_I_O_N_:_ CURRENT INPUT FILE stakkes, og der gemmes herved oplysninger om navnet og positionen. Når det er udført vælges filen, der er &_ specificeret i programkaldet, til CURRENT INPUT FILE. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx I CALL &_ Der optræder en venstreside i programkaldet. \f T_ xxx I PARAM &_ Der er parameterfejl i programkaldet. T_ xxx I filnavn' årsag' &_ Filen kan ikke tilknyttes af den anførte grund. T_ 8.1.2 E_n_d_:_ Med END-programmet afstakkes CURRENT INPUT FILE. &_ E_k_s_e_m_p_e_l_ _8_._2_:_ end T_ P_R_O_G_R_A_M_K_A_L_D_:_ &_ end T_ F_U_N_K_T_I_O_N_:_ CURRENT INPUT FILE afstakkes, og FP fortsætter læsningen fra den &_ forrige inputfil i den position, hvor filen blev forladt. T_ F_E_J_L_:_ &_ Ved forkert programkald afvikles END-programmet alligevel korrekt. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx END CALL &_ Venstreside optræder i programkaldet. T_ xxx END PARAM parameter' &_ Den anførte parameter må ikke forekomme. T_ 8.1.3 O_ Med O-programmet vælges CURRENT OUTPUT FILE. E_k_s_e_m_p_e_l_ _8_._3_:_ o uddata &_ Filen UDDATA vælges til CURRENT OUTPUT FILE. T_ P_R_O_G_R_A_M_K_A_L_D_:_ &_ o filnavn' \f T_ F_U_N_K_T_I_O_N_:_ En END OF MEDIUM karakter skrives på CURRENT OUTPUT FILE og brugen &_ afsluttes. Når det er gjort vælges filen, der er specificeret i programkaldet til CURRENT OUTPUT FILE. Hvis der ikke findes en fil med det anførte navn, oprettes et område med dette navn, og området vælges til CURRENT OUTPUT FILE. T_ F_E_J_L_:_ &_ Ved fejl vælges PRIMÆR OUTPUT FILE til CURRENT OUTPUT FILE. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx O CALL &_ Venstreside optræder i programkaldet. T_ xxx O PARAM parameter' &_ Den anførte parameter må ikke forekomme. T_ xxx O filnavn' årsag' Den specificerede fil kunne ikke tilknyttes af den angivne &_ grund. T_ 8.1.4 O_p_g_a_v_e_:_ Lad området TEXT have følgende indhold: begin integer i; read (in,i); write (out,i) end &_ 7 T_ Forklar hvad der sker, når følgende 2 job afvikles: 1. (i text u=algol ) u 5 &_ finis \f T_ 2. (i text u=algol end) u 5 &_ finis T_8.1.5 O_N_L_I_N_E_:_ Med ONLINE- programmet gøres jobbet konverserende, og terminalen vælges til CURRENT INPUT FILE. E_k_s_e_m_p_e_l_ _8_._4_:_ 10 online &_ go Terminalen vælges til CURRENT INPUT FILE, og den næste kommando kan tastes direkte på terminalen. T_ P_R_O_G_R_A_M_K_A_L_D_:_ &_ online T_ F_U_N_K_T_I_O_N_:_ PRIMÆR INPUT FILE omdefineres til terminalen, hvorfra jobbet blev tilmeldt. Terminalen vælges ligeledes til CURRENT INPUT FILE. De følgende FP-kommandoer kan nu tastes direkte, og de vil blive &_ udført i takt med indtastningen. T_ Den konverserende kørselsform kan kun benyttes, når der i BRUGER- KATALOGET er anført tilladelse hertil, da denne kørselsform er mere ressourcekrævende. Når tilladelsen er anført, kan ressourcen rekvireres med kommandoen/optionen ONLINE. E_k_s_e_m_p_e_l_ _8_._5_:_ online yes &_ job kc 1234 online yes T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx ONLINE CONNECT TERMINAL &_ Jobbet har ikke rekvireret ONLINE-ressourcen. \f T_ 8.2 Jobprogrammering Til dette formål findes de tidligere omtalte programmer MODE, IF og REPEAT. I de følgende 3 afsnit findes for hvert program en mere fuldstændig programbeskrivelse. T_ 8.2.1 M_O_D_E_:_ Med MODE-programmet kan tilstandsvariablene ændres. E_k_s_e_m_p_e_l_ _8_._6_:_ mode list.yes 0.no LIST-bitten tilskrives værdien YES, og 0- &_ bitten tilskrives værdien NO. T_ P_R_O_G_R_A_M_K_A_L_D_:_ yes N mode sp' modebit'. no 1 heltal' mode'::= list heltal'::= 0 - 11. &_ T_ F_U_N_K_T_I_O_N_:_ &_ De specificerede MODEBITS forsynes med de angivne værdier. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx MODE CALL Venstreside optræder i programkaldet. Programudførelsen &_ anfægtes ikke. T_ xxx MODE PARAM parameter' Den anførte parameter er ulovlig i programkaldet og ignoreres &_ derfor. De øvrige parametre behandles normalt. \f T_ 8.2.2 I_F_:_ Med IF-programmet gøres den næste FP-kommando betinget af værdien af een eller flere MODEBITS. E_k_s_e_m_p_e_l_ _8_._7_:_ if ok.no warning.no finis FINIS-programmet kaldes kun, såfremt både &_ OK- og WARNING bitten har værdien NO. T_ P_R_O_G_R_A_M_K_A_L_D_:_ yesN if sp' modebit'. no1 list modebit'::= ok warning heltal' &_ heltal'::= 0 - 23 T_ F_U_N_K_T_I_O_N_:_ Den næste FP-kommando udføres kun, såfremt værdierne af samtlige de specificerede MODEBITS er i overensstemmelse med de angivne &_ værdier. Da udførelsen af IF-programmet ikke påvirker MODEBITTENE, kan IF anvendes gentagne gange. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx IF CALL Venstreside optræder i programkaldet, hvilket dog ikke &_ påvirker programudførelsen. T_ xxx IF PARAM parameter' Den anførte parameter er ulovlig og ignoreres. &_ De øvrige parametre behandles normalt. \f T_ 8.2.3 R_E_P_E_A_T_:_ REPEAT-programmet gør det muligt at udføre en sekvens FP-komman- doer flere gange. E_k_s_e_m_p_e_l_ _8_._8_:_ u=algol txt (repeat 5 u) &_ Den sammensatte kommando udføres 5 gange. T_ P_R_O_G_R_A_M_K_A_L_D_:_ &_ repeat heltal' Programkaldet skal optræde i en sammensat kommando. T_ F_U_N_K_T_I_O_N_:_ Programmet ændrer i FP"s kommandostak, så FP-kommandoerne, der følger efter REPEAT i den sammensatte kommando, udføres det spe- &_ cificerede antal gange. T_ F_E_J_L_:_ &_ Ved fejl udføres de resterende kommandoer 1 gang. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ &_ Kun de almindeligste fejludskrifter er anført. T_ xxx REPEAT NO FACTOR &_ Gentagelsesparameteren mangler. T_ xxx REPEAT FACTOR 0. &_ Gentagelsesparameteren er 0. T_ xxx REPEAT NOTHING TO REPEAT &_ REPEAT indgår ikke i en sammensat kommando. \f T_ 8.2.4 O_p_g_a_v_e_:_ Tre programmer P1, P2 og P3 ønskes afviklet i den angivne række- følge. Skriv det nødvendige job, når P3 kun ønskes udført, såfremt både P1 og P2 er blevet afviklet korrekt. OK-bitten har værdien &_ YES efter korrekt programudførelse. T_ 8.3 Dialog med Boss Fra en intern proces kan der sendes meddelelser til en anden in- tern proces (jvf.5.2). En CHILD proces (job) under BOSS kan så- ledes sende meddelelser til BOSS, og i ref. 1 findes en beskri- &_ velse af de forskellige meddelelser, som BOSS vil akceptere. T_ Dialogen mellem et job og BOSS drejer sig hovedsagelig om følgende &_ forhold: . Job. . Printer. . Disc. . Båndstation. . Operatør. De følgende afsnit indeholder programbeskrivelser for de vigtigste programmer, der kan anvendes til dialog med BOSS. Programbeskrivel- serne er suppleret med beskrivelser af tilsvarende BOSS-komman- doer. T_ 8.3.1 J_O_B_:_ Fra et job kan der tilmeldes et nyt job, og et job må afsluttes &_ pænt med en FINIS-meddelelse. T_ 8.3.1.1 J_O_B_T_I_L_M_E_L_D_I_N_G_:_ Der skelnes mellem 3 jobtyper bestemt ved tilmel- &_ delsesformen. Et OFFLINE JOB tilmeldes af operatøren, og jobbet foreligger på en hulstrimmel eller en kortstak. \f Et ONLINE JOB tilmeldes med GO eller RUN fra en terminal, og job- bet foreligger i JOBFILEN. Et INTERNT JOB tilmeldes med NEWJOB-kommandoen eller fra et andet job. Jobbet foreligger på et permanent område. T_ J_O_B_S_P_E_C_I_F_I_K_A_T_I_O_N_:_ Et job beskrives altid på den velkendte måde som vist i de forrige kapitler. Jobspecifikationen kan kun udelades ved et ONLINE JOB, &_ og linienumre anføres kun ved terminalkørsel. T_ P_R_I_M_Æ_R_ _O_U_T_P_U_T_ _F_I_L_E_:_ PRIMÆR OUTPUT FILE (PRIMOUT) udskrives for et ONLINE JOB på &_ terminalen, hvorimod printeren anvendes ved de andre jobtyper. Det er dog således, at en bestemt printer kan vælges, hvis der er flere til rådighed. Når der tilmeldes et job fra et andet, kan det gøres på 2 forskel- lige måder ved hjælp af programmerne REPLACE og NEWJOB. T_ 8.3.1.2 R_E_P_L_A_C_E_:_ Med REPLACE-programmet sendes en jobtilmelding til BOSS. E_k_s_e_m_p_e_l_ _8_._9_:_ replace rcjob Et job, der er beskrevet i området RCJOB, &_ tilmeldes BOSS. T_ P_R_O_G_R_A_M_K_A_L_D_:_ &_ replace filnavn' T_ F_U_N_K_T_I_O_N_:_ En jobtilmelding indeholdende det specificerede filnavn sendes til BOSS. Det foreliggende job skal befinde sig i et permanent om- råde, og det vil først blive udført efter, at tilmelderjobbet er &_ afsluttet. REPLACE må ikke anvendes fra et ONLINE JOB. T_ F_E_J_L_:_ &_ I tilfælde af fejl tilmeldes intet job. \f T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx REPLACE CALL &_ Venstreside optræder i programkaldet. T_ xxx REPLACE parameterliste' PARAMETER ERROR. &_ Parameterfejl i programkaldet. T_ xxx REPLACE parameterliste' NOT ALLOWED FROM ONLINE JOB. &_ REPLACE kan ikke anvendes fra et ONLINE JOB. T_ 8.3.1.3 N_E_W_J_O_B_:_ Med NEWJOB-programmet sendes en jobtilmelding til BOSS. E_k_s_e_m_p_e_l_ _8_._1_0_:_ newjob rcjob Der tilmeldes et job til BOSS. Jobbet fore- &_ ligger i det permanente område RCJOB. T_ P_R_O_G_R_A_M_K_A_L_D_:_ 1 &_ newjob filnavn' printernavn' T_ 0 F_U_N_K_T_I_O_N_:_ Det foreliggende job i det specificerede område tilmeldes BOSS. Området skal være permanent. PRIMÆR OUTPUT FILE udskrives på den angivne printer. Såfremt intet er anført,anvendes den nærmeste. Det nye job indgår straks i den almindelige prioriteringsrutine. T_ F_E_J_L_:_ &_ I tilfælde af fejl tilmeldes intet job. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx NEWJOB CALL &_ Venstreside optræder i programkaldet. T_ xxx NEWJOB parameterliste' PARAMETER ERROR &_ Parameterfejl i programkaldet. T_ xxx NEWJOB filnavn' årsag' &_ Af den anførte grund kunne jobbet ikke tilmeldes. \f O_p_g_a_v_e_ _8_._3_:_ &_ Angiv den udvidede syntaks for NEWJOB-kommandoen. T_ 8.3.1.4 J_O_B_A_F_S_L_U_T_N_I_N_G_:_ Med FINIS-programmet sendes en afslutningsmeddel- else til BOSS. &_ E_k_s_e_m_p_e_l_ _8_._1_1_:_ finis T_ P_R_O_G_R_A_M_K_A_L_D_:_ &_ finis T_ F_U_N_K_T_I_O_N_:_ En afslutningsmeddelelse sendes til BOSS, der vil sørge for at &_ afbryde jobbet. T_ 8.3.2 P_R_I_N_T_E_R_:_ BOSS-kontrolleret udskrivning aktiveres ved at sende en meddel- else til BOSS med CONVERT-programmet. &_ E_k_s_e_m_p_l_e_ _8_._1_2_:_ convert data 1 T_ P_R_O_G_R_A_M_K_A_L_D_:_ 1 1 &_ convert områdenavn' printernavn' papirtype' 00 Papirtypen specificeres ved et heltal. T_ F_U_N_K_T_I_O_N_:_ En meddelelse indeholdende områdenavnet, printernavnet og papir- typen sendes til BOSS, der vil sørge for at udskrive området på &_ det ønskede papir og den ønskede printer. Udelades de valgfrie parametre udskrives på standardpapir (type 0), og den nærmeste printer vælges. Området må ikke høre til LOGIN-puljen. Temporære områder overtages straks af BOSS og bliver usynlige for jobbet. T_ F_E_J_L_:_ &_ I tilfælde af fejl udskrives området ikke. \f T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx CONVERT parameterliste' PARAMETER ERROR &_ Parameterfejl i programkaldet. T_ xxx CONVERT parameterliste' årsag' &_ Af den anførte grund kunne området ikke udskrives. T_ O_p_g_a_v_e_ _8_._4_:_ &_ Angiv den udvidede syntaks for CONVERT-kommandoen. T_ 8.3.3 D_I_S_C_:_ På en privat disc kan kittet udskiftes, og med KIT-programmet sendes meddelelse herom til BOSS. &_ E_k_s_e_m_p_e_l_ _8_._1_3_:_ kit 12 dk123456 T_ P_R_O_G_R_A_M_K_A_L_D_:_ &_ kit enhedsnummer' kitnavn' Hver discstation er forsynet med et enhedsnummer, og dette enheds- nummer anføres. T_ F_U_N_K_T_I_O_N_:_ En meddelelse indeholdende enhedsnummeret og kitnavnet sendes til BOSS, der vil sørge for, at det specificerede kit bliver monteret på den angivne discstation ved at udskrive de nødvendige oplys- &_ ninger til operatøren. For at kunne forlange kitskift må jobbet reservere discstationen med DEVICE-optionen. Der kræves endvidere, at jobbet har adgang til det ønskede kit, hvilket er anført i BRUGERKATALOGET: T_ E_k_s_e_m_p_e_l_ _8_._1_4_:_ job kc 1234 device 12 &_ kit 12 dk123456 \f T_ F_E_J_L_:_ I tilfælde af fejl udskrives den nødvendige operatørmeddelelse ikke. xxx KIT CALL &_ Venstreside optræder i programkaldet. T_ xxx KIT parameterliste' PARAMETER ERROR &_ Parameterfejl i programkaldet. T_ xxx KIT parameterliste' NOT AVAILABLE &_ Jobbet har ikke adgang til det specificerede kit. T_ 8.3.4 M_A_G_N_E_T_B_Å_N_D_:_ Magnetbånd er underkastet et sikkerhedssystem i lighed med bag- grundslageret, så uautoriseret adgang til magnetbånd kan forhind- &_ res. På hvert bånd findes på første fil en label, der indeholder et båndnummer, en tilgangskode, samt et projektnummer. Bånd- nummeret er et 6-cifret tal, der identificerer båndet, og BOSS giver adgang til båndet under dokumentnavnet mtbåndnummer', f.eks. mt123456. Tilgangskoden (accesskoden) bestemmer sammen med projektnummeret adgangen til båndet. Projektnummeret er velkendt fra BRUGERKATALOGET. Der findes 4 forskellige accesskoder og de har følgende betydning: W Båndet er et arbejdsbånd (scratch tape), der kan reserveres under jobafviklingen. P Samtlige job har adgang til at læse båndet. Skrivning kan kun foretages af et job, der tilhører det projekt, hvis nummer er påført båndet. R Kun et job, der tilhører projektet, hvis nummer er påført båndet, har adgang til båndet. \f space' Ethvert job kan benytte båndet. I figur 8.1 illustreres forskellige brugeres adgang til 2 magnet- bånd. Der ses, at job i projekt 8000 kan læse begge bånd, men kun skrive på båndet, der tilhører projektet. Job i projekt 7000 kan derimod kun benytte båndet, der tilhører projektet, da det andet bånd er beskyttet med accesscode R. T_ F_i_g_u_r_ _8_._1_:_ PROJECT NR PROJECT NR 8000 7000 ACCESSCODE ACCESSCODE R P &_ PROJECT PROJECT 80007000 T_ JOBJOB M_O_N_T_E_R_I_N_G_:_ Når et job behøver et bånd, må det sende en meddelelse til BOSS indeholdende båndnavnet på det bånd, der ønskes monteret, og BOSS &_ vil sørge for at viderebringe beskeden til operatøren. Denne dia- log behøver brugeren normalt ikke at tænke på, da alle hjælpepro- grammer og ALGOL/FORTRAN-programmer automatisk håndterer den. Ønsker brugeren selv at varetage dialogen kan MOUNT-programmet anvendes \f T_ A_F_M_O_N_T_E_R_I_N_G_:_ Et job, der har reserveret een båndstation, kan have behov for at få monteret en serie bånd i rækkefølge, og før hver ny båndmonte- ring må båndstation frigives. Dette kan ske ved anvendelse af &_ RELEASE-programmet, der sender den nødvendige besked til BOSS. T_ 8.3.4.1 M_O_U_N_T_:_ Med MOUNT-programmet sendes en MOUNT-meddelelse til BOSS. E_k_s_e_m_p_e_l_ _8_._1_5_:_ mount mt123456 Båndnavnet overbringes BOSS, der videregiver det til operatøren med besked om, at båndet &_ skal monteres. T_ P_R_O_G_R_A_M_K_A_L_D_:_ mount navn' &_ Navnet kan specificere et båndnavn eller en katalogindgang, der beskriver et bånd. T_ F_U_N_K_T_I_O_N_:_ Det specificerede båndnavn sendes til BOSS, der videregiver det til operatøren med besked om, at båndet skal monteres. Hvis det specificerede navn angiver en katalogindgang videresendes doku- &_ mentnavnet. T_ E_k_s_e_m_p_e_l_ _8_._1_6_:_ fil=set mto mt123456 0 1 mount fil &_ Dokumentnavnet MT123456 videresendes. Et uspecificeret arbejdsbånd vil blive monteret, når dokument- navnet er 0. Efter monteringen returneres det udleverede båndnavn, og MOUNT-programmet vil placere båndnavnet i katalogindgangen. T_ E_k_s_e_m_p_e_l_ _8_._1_7_:_ worktape=set mto 0 0 1 &_ mount worktape \f Et uspecificeret arbejdsbånd udleveres og dokumentnavnet i katalogindgangen WORKTAPE ajourføres, så den beskriver det udleverede &_ bånd. T_ F_E_J_L_:_ &_ I tilfælde af fejl sendes ingen meddelelse til BOSS. T_ F_E_J_L_M_E_D_D_E_L_E_L_S_E_R_:_ xxx MOUNT CALL &_ Venstreside optræder i programkaldet. T_ xxx MOUNT parameterliste' PARAMETER ERROR &_ Parameterfejl i programkaldet. T_ 8.3.4.2 R_E_L_E_A_S_E_:_ Når et bånd ikke længere skal benyttes, kan det frigives ved hjælp af RELEASE-programmet. E_k_s_e_m_p_e_l_ _8_._1_8_:_ release mt123456 &_release navn' Navnet kan specificere et båndnavn eller en katalogindgang, der beskriver et bånd. T_ F_U_N_K_T_I_O_N_:_ En meddelelse indeholdende det specificerede båndnavn sendes til BOSS, der så vil frigive båndet og stille båndstationen til rådig- &_ hed for andre. T_ F_E_J_L_:_ &_ I tilfælde af fejl sendes ingen meddelelse til BOSS. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx RELEASE CALL &_ Venstreside optræder i programkaldet. \f T_ xxx RELEASE parameterliste' PARAMETER ERROR &_ Parameterfejl i programkaldet. T_ xxx RELEASE navn' TAPE NAME MISSING &_ Den specificerede katalogindgang angiver intet båndnavn. T_ 8.3.5 O_P_E_R_A_T_Ø_R_:_ På operatørkonsollen udskrives orientering af forskellig art, så operatøren kan se, hvornår indgriben er påkrævet. Programmer sen- der automatisk de nødvendige meddelelser til BOSS, der videre- &_ bringer meddelelserne. T_ E_k_s_e_m_p_e_l_ _8_._1_9_:_ text=set mto mt123456 0 1 u=algol text Kildeteksten læses fra fil 1 på båndet MT123456, og ALGOL sørger for at sende meddel- &_ else om båndmontering, når jobbet udføres. I forskellige situationer kan en mere privat dialog mellem job og operatøren være hensigtsmæssig. Til det formål findes programmerne OPCOMM og OPMESS. T_ 8.3.5.1 O_P_C_O_M_M_:_ Med OPCOMM-programmet sendes en operatørmeddelelse til BOSS. &_ E_k_s_e_m_p_e_l_ _8_._2_0_:_ opcomm give mig et bånd T_ P_R_O_G_R_A_M_K_A_L_D_:_ &_ opcomm meddelelse' Meddelelser skal naturligvis overholde den generelle syntaks for FP-kommandoer. \f T_ F_U_N_K_T_I_O_N_:_ De først 21 tegn af den specificerede meddelelse sendes til BOSS, der viderebringer den til operatøren. Denne afkræves et svar, og først når det er afgivet, får afsenderjobbet atter tildelt &_ CPUTID. Svaret udskrives på CURRENT OUTPUT FILE. T_ F_E_J_L_:_ &_ I tilfælde af fejl sendes ingen meddelelse. T_ F_E_J_L_M_E_D_D_E_L_E_L_S_E_R_:_ xxx OPCOMM CALL &_ Venstreside optræder i programkaldet. T_ 8.3.5.2 O_P_M_E_S_S_:_ Med OPMESS-programmet sendes en operatørmeddelelse til BOSS. &_ E_k_s_e_m_p_e_l_ _8_._2_1_:_ opmess det går fint T_ P_R_O_G_R_A_M_K_A_L_D_:_ &_ opmess meddelelse' Meddelelsen skal naturligvis overholde den generelle syntaks for FP-kommandoer. T_ F_U_N_K_T_I_O_N_:_ De første 21 tegn af den specificerede meddelelse sendes til &_ BOSS, der viderebringer den til operatøren. T_ F_E_J_L_:_ &_ I tilfælde af fejl sendes ingen meddelelse. T_ F_E_J_L_U_D_S_K_R_I_F_T_:_ xxx OPMESS CALL &_ Venstreside optræder i programkaldet.\f «eof»