Kompatibelt tidsdelingssystem - Compatible Time-Sharing System

Kompatibelt tidsdelingssystem (CTSS)
Utvikler MIT Computation Center
Skrevet inn FAP -montering , MAD
Arbeidstilstand Utgått, simulator tilgjengelig
Kildemodell Åpen kilde
Første utgivelse 1961 ; 60 år siden ( 1961 )
Markedsføringsmål Bare MIT
Tilgjengelig i Engelsk
Plattformer IBM 7090 , IBM 7094
Kernel typen Monolitisk , beskyttet
Standard
brukergrensesnitt
Kommandolinjegrensesnitt
Tillatelse [ data ukjent/mangler ]
etterfulgt av Multics
Offesiell nettside www .cozx .com /dpitts /ibm7090 .html

Den Kompatibel Time-Sharing System ( CTSS ) var en av de første tidsdeling operativsystemer ; den ble utviklet ved MIT Computation Center . CTSS ble først demonstrert på MITs IBM 709 i november 1961; tjenesten til MIT -brukere begynte sommeren 1963 og ble operert til 1973. I løpet av en del av denne tiden drev MITs innflytelsesrike Project MAC også en CTSS -tjeneste, men systemet spredte seg ikke utover disse to nettstedene.

CTSS ble beskrevet i et papir som ble presentert på vårens felles datamaskinkonferanse i 1962 , og påvirket utformingen av andre tidlige tiddelingssystemer sterkt.

Eksperimentelt tidsdelingssystem

John Backus sa i sommersessionen i 1954 på MIT at "Ved tidsdeling kan en stor datamaskin brukes som flere små; det må være en lesestasjon for hver bruker". Datamaskiner på den tiden, som IBM 704 , var ikke kraftige nok til å implementere et slikt system, men i slutten av 1958 la MITs Computation Center likevel til en skrivemaskininngang til 704 med den hensikt at en programmerer eller operatør kunne "få ytterligere svar fra maskinen på en tidsdeling med andre programmer som bruker maskinen samtidig ".

I juni 1959 publiserte Christopher Strachey et papir "Time Sharing in Large Fast Computers" på UNESCOs informasjonsbehandlingskonferanse i Paris, der han så for seg at en programmerer feilsøker et program på en konsoll (som en teletype ) koblet til datamaskinen, mens et annet program kjørte på datamaskinen samtidig. Feilsøkingsprogrammer var et viktig problem på den tiden, for med batchbehandling tok det ofte en dag fra du sendte inn en endret kode, til du fikk resultatene. John McCarthy skrev et notat om det på MIT, hvoretter det ble opprettet en forstudiekomité og et arbeidsutvalg ved MIT, for å utvikle tidsdeling. Komiteene så for seg at mange brukere skulle bruke datamaskinen samtidig, bestemte detaljene for å implementere et slikt system på MIT, og startet utviklingen av systemet.

I juli 1961 hadde noen få tidskommandoer blitt operative på Computation Center's IBM 709, og i november 1961 demonstrerte Fernando J. Corbató på MIT det som ble kalt "Experimental Time-Sharing System". 3. mai 1962 publiserte FJ Corbató, MM Daggett og RC Daley et papir om dette systemet på Spring Joint Computer Conference . Robert C. Daley, Peter R. Bos og minst 6 andre programmerere implementerte operativsystemet, delvis basert på Fortran Monitor System .

Systemet brukte en IBM 7090 , modifisert av Herbert M. Teager , med 3 Flexowriters for brukerkonsoller og kanskje en timer . Hver av de 3 brukerne hadde to båndenheter , en for brukerens filkatalog og en for dumping av kjernen (program i minnet). Det var også en båndenhet for systemkommandoene, det var ingen diskstasjoner. Den hukommelse var 27 k-ord (36-bits ord) for brukere, og 5 k ord for leder (operativsystem). Inndataene fra konsollene ble skrevet til bufferne i veilederen, ved avbrudd , og da et returtegn ble mottatt, ble kontrollen gitt til veilederen, som dumpet løpekoden til båndet og bestemte hva som skulle kjøres videre. Konsollkommandoene som ble implementert på den tiden var pålogging, logg ut, input, rediger, fap, mad, madtrn, last inn, bruk, start, skippm, listf, printf, xdump og xundump .

Dette ble den første versjonen av det kompatible tidsdelingssystemet. Dette var tilsynelatende den første offentlige demonstrasjonen av tidsdeling ; det er andre påstander, men de refererer til systemer for spesielle formål, eller uten at noen kjente artikler er publisert. "Kompatibiliteten" til CTSS var med bakgrunnsjobber som ble kjørt på samme datamaskin, som vanligvis brukte mer av beregningsressursene enn tidsdelingsfunksjonene.

Funksjoner

  • CTSS hadde et av de første datastyrte tekstformateringsverktøyene, kalt RUNOFF (etterfølgeren til DITTO).
  • CTSS hadde en av de første implementeringene av meldinger mellom brukere, og muligens oppfunnet e-post .
  • MIT Computation Center -medarbeider Louis Pouzin opprettet for CTSS en kommando kalt RUNCOM , som utførte en liste over kommandoer i en fil. (Han senere opprettet en design for Multics skallet som ble gjennomført av Glenda Schroeder som i sin tur er inspirert Unix shell-skript .) Runcom også tillatt parameter substitusjon.
  • CTSS hadde tekstredigereren QED , forgjengeren til ed , vi og vim , med vanlige uttrykk lagt til av Ken Thompson .
  • CTSS var det første datasystemet som implementerte passordpålogging.

Gjennomføring

Kjerne

CTSS brukt en modifisert IBM 7090 stormaskin som hadde to 32.768 (32K) 36-bit- ord bredden av lagerkjernen i stedet for den vanlige. Den ene banken var reservert for overvåkningsprogrammet for tidsdeling, den andre for brukerprogrammer. CTSS hadde en kjerne i beskyttet modus, veilederens funksjoner i A-kjernen (minnebank A) kunne bare kalles ved programvareavbrudd, som i de moderne operativsystemene. Årsak til avbrudd i minnebeskyttelse ble brukt til programvareavbrudd. Prosessor fordeling planlegging med et kvantesprang tidsenhet 200 ms, ble kontrollert av en flernivåtilbake kø . Den hadde også noen spesiell minnehåndteringsmaskinvare, et uravbrudd og muligheten til å fange visse instruksjoner.

Veileder subrutiner

  • RDFLXA - Les en inngangslinje fra konsollen
  • WRFLX - Skriv en utgangslinje til konsollen
  • DØD - Sett brukeren i død status, uten noe program i minnet
  • DORMNT - Sett brukeren i hvilemodus, med program i minnet
  • GETMEM - Få størrelsen på minnetildelingen
  • SETMEM - Angi størrelsen på minnetildelingen
  • TSSFIL - Få tilgang til CTSS -systemfilene på disken
  • USRFIL - Bytt tilbake til brukerens egen katalog
  • GETBRK - Få instruksjonsstedtelleren ved å avslutte

Programmerings språk

CTSS hadde først bare en assembler FAP og en kompilator MAD . Også Fortran II kan kode settes til en MAD-kode. Senere ble halvparten av systemet skrevet i MAD. Senere var det andre programmeringsspråk som LISP og en versjon av ALGOL .

Filsystem

Hver bruker hadde sin egen katalog , og det var også delte kataloger for grupper av mennesker med samme "problemnummer". Hver fil hadde to navn, den andre indikerte typen og utvidelsen i senere system. Først kan hver fil ha en av fire moduser: midlertidig, permanent, skrivebeskyttet klasse 1 og skrivebeskyttet klasse 2. Skrivebeskyttet klasse 1 tillot brukeren å endre filmodus. Filer kan også være symbolsk knyttet mellom kataloger. En katalogoppføring etter listf :

	10 FILES	20 TRACKS USED
DATE		NAME		MODE	NO. TRACKS
5/20/63		MAIN	MAD	P	15
5/17/63 	DPFA	SYMTB	P	1
5/17/63 	DPFA	BSS	P	1
5/17/63 	DPFA	FAP	P	2

Underkontroller for diskstyring

  • .DUMP - Dump en kontinuerlig blokk på filen
  • .LOAD - Last inn en kontinuerlig blokk fra filen
  • .ASIGN - Forbereder fil for skriving.
  • .APEND - Forbereder fil for vedlegg
  • .SEEK - Forbereder fil for lesing
  • .RELRW - Forbereder fil for lesing og skriving
  • .WRITE - Skriv data til en relativ plassering i filen
  • .READK - Les data fra en relativ plassering i filen
  • .FIL - Avslutt skriving av fil
  • .ENDRD - Avslutt lesing av filen
  • .DLETE - Slett en fil
  • .RENAM - Gi nytt navn til en fil og endre modusen
  • .FILDR - Skaff deg en kopi av brukerfilkatalogen
  • .FSTAT - Få informasjon om en fil

Konsollkommandoer

  • login - Logg inn på systemet
  • logout - Logg av systemet
  • listf - Liste over filer i katalogen
  • input - Inngangskildekode, linjer med fast størrelse
  • rediger - Rediger kildekoden i en BASIC -stil med linjenumre
  • printf - Skriv ut fil fra et linjenummer
  • fap - FAP -montør
  • gal - MAD -kompilator
  • madtrn - Fortran II til MAD oversetter
  • last - Last inn binære filer (kobling i minnet)
  • bruk - Last inn manglende binærfiler
  • start - Kjør programmet lastet inn i minnet.
  • lagre - Lagre programmet i minnet til fil
  • gjenoppta - Last ned lagret program og fortsett å kjøre det
  • pm-Få post-mortem informasjon om programmet i minnet
  • patch - Rediger minne
  • tra - Opprett overføring til en relativ plassering i et program
  • stopat - Opprett overføring for å stoppe programmet på et sted
  • gi nytt navn - Gi nytt navn til filen
  • chmode - Endre filmodus
  • slett - Slett fil, hadde * jokertegn
  • splitt - Del fil
  • kombinere - Koble sammen filer, også binære filer, lage biblioteker
  • cpu - Få gjeldende maskinforhold
  • octlk - Skriv ut minne
  • memo - Skriv inn tekstfiler, linjer med variabel størrelse
  • endre - Rediger tekstfiler, på samme måte som redigere
  • ditto - Skriv ut tekstfiler med formatering (fotnoter, sider)

Utstyr

Input-output-maskinvare var stort sett standard IBM- eksterne enheter . Disse inkluderte seks datakanaler som kobler til:

  • Skrivere, stansede kortlesere og slag
  • IBM 729 båndstasjoner, en IBM 1301 disklagring, senere oppgradert til en IBM 1302 , med 38 millioner ordkapasitet
  • Et IBM 7320 trommeminne med 186K ord som kan laste inn en 32K-ords minnebank på ett sekund (senere oppgradert til 0,25 sekunder)
  • To tilpassede høyhastighets vektorgrafikkdisplayer
  • En IBM 7750 -transmisjonskontrollenhet som kan støtte opptil 112 teleprinterterminaler , inkludert IBM 1050 Selectrics og Teletype Model 35s. Noen av terminalene var plassert eksternt, og systemet var tilgjengelig med offentlige Telex- og TWX -nettverk.

påvirkninger

Multics , som også ble utviklet av Project MAC, ble startet på 1960 -tallet som en etterfølger av CTSS - og inspirerte igjen utviklingen av Unix i 1969. En av de tekniske begrepene som disse systemene arvet fra CTSS er daemon .

Inkompatibelt Timesharing System (ITS), et annet tidlig, revolusjonerende og innflytelsesrikt MIT-tidsdelingssystem, ble produsert av mennesker som var uenige i retningen tatt av CTSS, og senere Multics; navnet var en parodi på "CTSS", ettersom navnet "Unix" senere var en parodi på "Multics".

Se også

Referanser

Videre lesning

Eksterne linker