Uit: IBM Kwartaalschrift, oktober 1969

TIME-SHARING SYSTEMEN

door ir P. H. Vilé, medewerker IBM Nederland N.V.

In 1959 werd het time-sharing concept voor het eerst gepubliceerd door de Britse wiskundige Cristopher Strachey. Vrijwel tegelijkertijd verscheen een artikel over hetzelfde onderwerp, geschreven door professor John MeCarthy van het Massachusetts Institute of Technology (MIT). Zoals met veel in Europa ontstane ideeën werd dit nieuwe concept voor het eerst in Amerika in praktijk gebracht in de vorm van het Compatible Time-Sharing System, dat door MIT werd ontwikkeld voor een IBM 7090/7050 systeem.

Sindsdien werden, zij het niet zonder grote moeilijkheden, time-sharing systemen ontwikkeld door andere universiteiten en computerleveranciers. Het feit dat er momenteel een groot aantal systemen bestaat, dat in mogelijkheden en implementatietechniek sterk van elkaar verschilt, geeft grond aan de verwachting, dat op dit terrein in de toekomst een verdergaande ontwikkeling zal plaatsvinden.

Volgens de definitie van IFIP (International Federation for Information Processing) is timesharing een techniek voor het dynamisch toewijzen van de faciliteiten van een informatieverwerkend systeem simultaan aan twee of meer gebruikers, zodanig dat ieder kan werken alsof het hele systeem tot zijn beschikking staat met voor ieder redelijke responsietijden.

Time-sharing is dus een manier waarop een computer kan worden gebruikt en is zo een onderdeel van een ontwikkeling, waarbij de organisatieproblemen rond het gebruik van een computer worden verschoven naar de computer zelf.

In de manier waarop computers de laatste twintig jaar worden gebruikt, is namelijk een duidelijke evolutie waar te nemen. Waren het in het begin de gebruikers zelf die de bedieningsfuncties verrichtten, later vervingen opgeleide operators hen. Omdat het nodig werd de beschikbare machines efficiënter te gaan gebruiken, werden de programma's bovendien voortaan groepsgewijze verwerkt (batchverwerking). Bij de tweede generatie computers werden de interne verwerkingssnelheden zeer hoog. Het gevolg was, dat de werkzaamheden van de operator teveel tijd gingen vragen in verhouding tot de verwerkingstijd in de computer. Om dit te ondervangen werden de besturingsprogramma's ontwikkeld. Het inlezen van de batchprogramma's, de uitvoering ervan en de programmawisseling kwamen onder supervisie van het besturingsprogramma. Bij de huidige computers van de derde generatie zijn deze bedrijfssystemen tot volle ontwikkeling gekomen. De grotere snelheid van de centrale verwerkingsorganen ten opzichte van randapparatuur maakt multiprogrammering mogelijk. De machine gebruikt dan de wachttijden, die optreden bij het in- en uitvoeren van gegevens bij het ene programma, om andere in het werkgeheugen aanwezige programma's uit te voeren. Na het voltooien van de in- of uitvoerbewerking wordt de uitvoering van het onderbroken programma weer voortgezet.

Multiprogrammering maakt een meer geavanceerde batchverwerking mogelijk. Daarbij maakt men gebruik van eindstations (terminals) voor de in- en uitvoer. Deze zijn via een telefoonlijn verbonden met de centrale computer en kunnen dienen voor het invoeren van een programma en het verkrijgen van de resultaten daarvan. Deze methode van verwerking wordt ook wel aangeduid met de term remote batch processing. Het bespaart de gebruiker de gang naar het rekencentrum voor het aanbieden van het programma en het verkrijgen van de uitvoer. Bovendien heeft dit in het algemeen een kortere omlooptijd tot gevolg. De eigenlijke verwerking van het programma vindt echter nog steeds groepsgewijze plaats. Het overgrote deel van de rekencentra, al dan niet voorzien van de mogelijkheid om de programma's via een in- en uitvoerstation aan te bieden maakt gebruik van batchverwerking. De volgende ontwikkelingsfase is, zoals in de definitie reeds werd aangegeven: het dynamisch toewijzen van de faciliteiten van het systeem aan verscheidene gebruikers. Met de term faciliteiten worden de verschillende computercomponenten, zoals het kernengeheugen en de randapparatuur bedoeld. Bij de groepsgewijze verwerking worden de benodigde faciliteiten beschikbaar gesteld voordat een programma begint en blijven zij gereserveerd totdat het programma is voltooid. Dit is een statische toewijzing. Een uitzondering vormt het toewijzen van tijd van bet centrale verwerkingsorgaan bij multiprogrammering. Dit geschiedt wel dynamisch. Timesharing veronderstelt echter een ander toewijzingsmechanisme.

De voorwaarde namelijk, dat voor ieder een redelijke responsietijd wordt bereikt, impliceert een verdeling van de tijd van het centrale verwerkingsorgaan over de verschillende gebruikers volgens een vast schema. Dit in tegenstelling tot een toewijzing volgens prioriteit bij multiprogrammering.

VOORTDURENDE COMMUNICATIE

De gebruiker van het time-sharing systeem heeft als in- en uitvoerstation een schrijfmachine of een beeldbuisstation tot zijn beschikking. Tijdens de uitvoering van het programma blijft hij via zijn in- en uitvoerstation verbonden met het systeem en dus met het in uitvoering zijnde programma. Dit is een essentieel verschil met remote batch processing. Bij time-sharing krijgt men door zeer snelle overschakeling tussen de programma's onderling de illusie, dat men het gehele systeem voortdurend tot zijn beschikking heeft. Dit biedt unieke mogelijkheden om tijdens alle fasen van het programma 'in gesprek' te blijven met het systeem. Dit zogenaamd 'conversationeel' werken met de computer is een wezenlijk kenmerk van time-sharing. Bij het programmeren met behulp van een in- en uitvoerstation kan men drie fasen onderscheiden.

Men begint met de invoering van de programmainstructies. Daarbij wordt de syntaxis onmiddellijk gecontroleerd, terwijl tegelijk een diagnose van eventuele fouten wordt gegeven. Bovendien heeft men demogelijkheid de geschreven programma's te corrigeren.

Voor sommige time-sharing systemen vormt de vertaling van het programma de tweede fase. In dat geval worden de fouten die bij het vertalen worden geconstateerd gemeld. Tevens wordt een diagnose gegeven. Ook bestaat de mogelijkheid fouten te corrigeren en de vertaling te hervatten. De laatste fase tenslotte is de invoering van het programma. Hieronder valt bijvoorbeeld de in- en uitvoer van gegevens, het selectief raadplegen van de door het programma weergegeven uitvoer en het onderbreken en weer hervatten van de uitvoer van het programma. Ook bestaat de mogelijkheid om fouten, die tijdens de uitvoering van het programma worden geconstateerd, vast te stellen en te corrigeren.

TIME-SHARING EN GROEPSGEWIJS VERWERKEN

Als men de eigenschappen van batchverwerkende systemen vergelijkt met time-sharing systemen, blijkt een belangrijk verschil in filosofie te bestaan. Bij groepsgewijze verwerking streeft men een zeer efficiënt gebruik van de tijd van het systeem na, terwijl bij time-sharing systemen juist de tijd van de gebruiker zo goed mogelijk wordt benut.

Deze opzet kan leiden tot een meer aan de mens aangepast gebruik van de computer. De voordelen die een time-sharing systeem biedt kan men illustreren aan de hand van een weliswaar oppervlakkige, maar verhelderende analogie tussen het maken en testen van een programma enerzijds en het lezen van dit artikel bij lamplicht anderzijds. Als een elektriciteitsmaatschappij pas bij voldoende aanvragen om netspanning ertoe zou overgaan spanning op het net te zetten gedurende de periode, nodig om één bladzijde van dit Kwartaalschrift te lezen, en vervolgens een spanningloze periode zou invoeren om te wachten tot er weer voldoende aanvragen zijn, dan kan men dit vergelijken met groepsgewijze verwerking. In deze vergelijking zou time-sharing betekenen, dat de spanningloze perioden en die waarin het net onder spanning staat, elkaar zo snel opvolgen, dat het oog van de lezer de donkere perioden niet waarneemt. Het is nu duidelijk dat de lezer in het eerste geval, waar langdurige perioden van licht en donker elkaar afwisselen, gefrustreerd zal raken en geneigd zal zijn het lezen te staken ofwel gebruik te maken van andere lichtbronnen. Tevens is het duidelijk, dat de lezer in het tweede geval eerder het lezen van het artikel zal hebben beëindigd en zijn tijd effectiever heeft gebruikt. Uiteraard is de hier geschetste analogie gebrekkig, hoewel de vergelijking aan waarde wint door de op een congres van deskundigen gedane voorspelling, dat omstreeks het jaar tweeduizend het gebruik van computers in onze huizen riet zo algemeen zal zijn als dat van telefoon en televisie.

VOORDELEN VAN TIME-SHARING

Behalve een effectiever gebruik van tijd biedt het time-sharing systeem ook andere voordelen. De 'conversatie' met het systeem en het feit dat men voortdurend kan ingrijpen bieden nieuwe mogelijkheden voor die problemen, waarvoor de supervisie van de mens bij het oplossen nodig is. De waarde van het systeem wordt niet alleen bepaald door betere en uitgebreidere mogelijkheden tot een actieve communicatie, maar ook door factoren als de responsietijd, het maximaal aantal gebruikers, de geheugengrootte per gebruiker, het beschikbaar stellen van externe geheugens en de keuzemogelijkheden voor wat betreft de in- en uitvoerstations.

Ondanks de voordelen die time-sharing biedt, wordt nog steeds veel gebruik gemaakt van groepsgewijze verwerking. De reden hiervan is dat nog steeds een groot aantal programma's met een sterk productief karakter wordt verwerkt, waarbij de mogelijkheden van directe communicatie met het systeem geen nut afwerpen. Tevens dient men er rekening mee te houden, dat hier slechts theoretisch de mogelijkheden van een time-sharing systeem zijn besproken. Dit is immers alleen te verwezenlijken met een ideaal informatieverwerkend systeem, voorzien van een onbegrensd geheugen en met te verwaarlozen verwerkingstijden.

De voordelen zullen het meest vrucht afwerpen als het accent ligt op programma-ontwikkeling en het directe en ononderbroken contact met het systeem leidt tot een beter en hoger rendement. Dit geldt in het bijzonder voor universiteit en hogeschool, waar relatief weinig productie wordt gevraagd, maar wel veel ontwikkelingsprogramma's worden verwerkt. In eerste instantie is het time-sharing systeem juist op de universiteiten in Amerika tot bloei gekomen. Ook in ons land is deze tendens af te leiden uit het gebruik van dit soort systemen in Leiden, Delft en Twente.

DE HUIDIGE PRAKTIJK

Als men niet over een dergelijk ideaal informatieverwerkend systeem beschikt, zal men in de praktijk een compromis moeten vinden. Er bestaat echter weinig eenstemmigheid over de richting waarin een dergelijk compromis zich dient te bewegen. Door IBM alleen al bijvoorbeeld zijn zeven verschillende systemen ontwikkeld.

Om de beschikbare verwerkingstijd over de verschillende gebruikers te kunnen verdelen, moeten hun programma's in het werkgeheugen aanwezig zijn. Het is duidelijk, dat dit niet is te verwezenlijken met een geheugen van beperkte omvang. Om nu de ideale toestand na te bootsen zijn drie verschillende technieken ontworpen.

De eerste daarvan is geheugensegmentering. Iedere actieve gebruiker heeft dan een gedeelte van het geheugen tot zijn beschikking. Deze methode vereist een zeer groot geheugen omdat alle gebruikersprogramma's tegelijk aanwezig zijn. Het grote voordeel is de voortdurende beschikbaarheid van alle programma's, waardoor wordt bereikt dat de gegevens vanuit het systeem snel beschikbaar zijn.

De tweede methode is die van 'swapping'. Nadat zijn toebedeelde tijd is verstreken wordt het programma van de ene gebruiker op een extern geheugen opgeslagen. Het programma van de volgende gebruiker wordt vanuit dit externe geheugen overgebracht naar het werkgeheugen en uitgevoerd. 'Swapping' vereist een ingewikkelder besturingsprogramma, terwijl het gebruik van externe geheugens tot langere responsietijden zal leiden.

De derde methode, die van 'paging' is het meest geavanceerd. Deze maakt gebruik van het feit, dat tijdens de uitvoering van het programma een groot gedeelte ervan niet in het werkgeheugen aanwezig behoeft te zijn. Het programma is verdeeld in blokken van een vaste grootte, 'pages' genaamd. Deze methode vereist speciale apparatuur, die onder meer aanwezig is in het Systeem/ 360 Model 67.

Bij het maken van een keuze zal de beschikbare apparatuur van doorslaggevende betekenis zijn. Daarnaast wordt men geconfronteerd met een grote keuze op het gebied van programmeertalen en correctiemogelijkheden. Juist deze diversiteit heeft geresulteerd in het ontstaan van verschillende time-sharing systemen. De ervaring die hiermee is opgedaan heeft het nut van deze systemen overtuigend aangetoond. Men verwacht in de toekomst dan ook een grote ontwikkeling op dit terrein.