Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Multiprogrammering i Danmark 1967-75 Søren Lauesen IT-University of Copenhagen December 2009.

Lignende præsentationer


Præsentationer af emnet: "Multiprogrammering i Danmark 1967-75 Søren Lauesen IT-University of Copenhagen December 2009."— Præsentationens transcript:

1 Multiprogrammering i Danmark 1967-75 Søren Lauesen IT-University of Copenhagen E-mail: slauesen@itu.dk http://www.itu.dk/people/slauesen/ December 2009

2 2. Interrupt - multiprogrammering Testes efter hver ordre. Ved interrupt: Gem registre. Hop til monitor. Vælg et passende program. Fortsæt med det. Programmerne kører tilsyneladende samtidig. Fx disktransport slut, tidssignal hver 20 ms. (Lauesen: Forelæsningsnoter 1969)

3 3. Udelelighed Typiske løsninger i processtyring: Og hvad så? Kig hver 20 ms. Eller spær for alle interrupts imens. Dijkstra's løsning 1965: Wait(semaphore). Se og opdater. Signal(semaphore). (Lauesen: Forelæsningsnoter 1969)

4 Priser ca. 1968 omregnet til nutidskroner ca. 2009: En computer:4.000.000 nutidskroner En computertime:6.000 nutidskroner 4. Formål med multiprogrammering Formål: 1.Udnyt disk-ventetid, etc. til at udføre et andet program. 2.Reagér på fysiske hændelser, fx temperatur for høj. 3.Time-sharing: mange brugere skiftes til en bid af kagen. Ordre fra Niels Ivar Bech, ca. 1968: Lav noget genialt af den slags. Så sørger jeg for at vi sælger det.

5 Danmark 1956:Dask (5 kB, add instr: 56  s) 1962:GIER (5 kB, add instr: 40  s) 1968:RC4000 (48-96kB, add instr: 4  s) Prototype: Overvågning af ammoniakfabrik i Pulawy. 1970:Monitor til RC4000. I praksis kørte kun ét program ad gangen. 1972:Boss2. Multiprogrammering, processtyring og time-sharing samtidig. 1974:Principperne brugt på BBC til styring af el-nettet. 5. Det historiske forløb USA 1946:ENIAC 1960:IBM 1400, PDP 1 1969:Unix (Thompson & Ritchie) 1970:Unix kører med to brugere. 1973:Unix omskrevet til C. 1978:Overført til VAX- computeren.

6 6. Compiler-gruppen, maj 1968

7 7. RC 4000 monitoren - proces-begrebet Begrebsmæssigt fundament manglede Pulawy-systemet: periodiske processer og simpel interruptspærring. Vi skulle: 1.Dele cpu-tid (multiprogrammering) 2.Allokere og beskytte lager mod programmeringsfejl 3.Allokere og beskytte disk, printer, tape, mv. Proces = Thread + beskyttet lagerområde (Brinch Hansen: Monitor manual, 1971)

8 (Brinch Hansen: Monitor manual, 1971) 8. RC 4000 monitoren - proceshierarkiet Skal allokeringsstrategien indbygges? Jamen så... Og hvis nu... ? Alle ideer kunne skydes i sænk. Idé: Lad os uddelegere det til under-processer.

9 9. Lav lige sådan et under-operativsystem Brølere i RC 4000 Message-answer: en dyr subroutine med et par simple parametre - ingen buffere, fx. Startede programmer kan ikke flyttes. Processer kan ikke dele data. Disk strategi kan ikke delegeres - og en fil har fast længde bestemt ved oprettelsen. Et operativsystem i Algol er 5 gange længere end assembler. (Prøvet i Boss 1). (Lauesen: Forelæsningsnoter 1976)

10 10. Boss 2 - efter nogle Monitor-ændringer (Lauesen: Comm.ACM, July 1975)

11 11. Inde i Boss 2: corutiner i stedet for processer Kø-semaforer Dijsktra's consumer- producer algoritme. Lagerdeling muliggør lange buffere. Program-segmenter på disk (paging). Reentrant kode. Ca. 50 terminaler. Ca. 100 "processer" (corutiner). Bevisligt deadlock-frit. (Lauesen: Comm.ACM, July 1975)

12 12. Boss 2: udviklingsprocessen Projektstart: 1970, august Kravspec 1:1970, oktober Tidsplan Kravspec 2:1970, november Corutiner, semaforer, pager virker:1971, februar Drift:1971, juli Metrikker LOC:7.000 (=algol compiler) Personmåneder:35 LOC/p.måned:200 26.000 115 226 Faktisk 1971, januar 1971, maj 1972, august Testsession, 4 programmører P1-P4 - alt styret manuelt Backup af driftssystem + load Boss: 3 min P1: Indlæs rettelser, compile, kør test, print testlog:1 min P2, P3, P4: Samme:3 min Reserve, typisk til 2 ekstra forsøg:6 min Backup af Boss, load driftssystem 2 min Samlet tid15 min Afleveringsprøve, Kemisk institut, ÅU. 1972, september, 3 ugers blandet drift, højst 4 driftsstop

13 13. Installationen på Kemisk Institut, sept 1972 Samlet lager: 96 k bytes (Lauesen: Data nr. 2-3/73)

14 14. Lagerforbrug, Kemisk Institut (Lauesen: Data nr. 2-3/73)

15 15. BBC, el-overvågning, vision okt 1973 (Jørgen Green: Indactic 33/20 System specification)

16 16. Skærmbilleder - semigrafisk med 8 farver (Jørgen Green: Indactic 33/20 System specification)

17 17. Specialbygget tastatur (Jørgen Green: Indactic 33/20 System specification)

18 18. Intern struktur, BBC, dec 1973 (Lauesen: Internal structure of Indactic 33/20, sept 1974)

19 19. Historier under udviklingen PDP-11: Vidunderlig at programmere, veldokumenteret, også disk-interface. Men: Strømsvigts-interrupt kan ikke disables. Hvad gør man så i en diskdriver: set start sector, set length, set mem.addr, set operation, go Strømmen kan slukkes nårsomhelst og vores system genstarter på 3 s når man tænder. Men: Nogle gange går det ned når man genstarter. Ca. 1200 indikationer (meldinger) fra driften om året. Fint. Vores system henter overlays, opdaterer skærmbilleder og logger på 1 s. No problem. Men: Der kommer en efterårsstorm og en højspændingsmast vælter. I løbet af 1974-75 sælges mange anlæg alle med skræddersyede tilføjelser. Men: Sælgerne begynder at sælge kunde A's tilføjelse til kunde B. Det havde ingen tænkt på.

20 20. Skærbæk-værket, 1976, efter ca. 1 års drift

21 21. RC4000 Filsystem, Monitor 3 (1972) (Lauesen: Forelæsningsnoter 1976)

22 22. RC4000 Filkatalog (1972) (Lauesen: Forelæsningsnoter 1976)

23 23. Lagerforbrug, BBC-system

24 24. Datavisning, BBC-system (Lauesen: Internal structure of Indactic 33/20, sept 1974)


Download ppt "Multiprogrammering i Danmark 1967-75 Søren Lauesen IT-University of Copenhagen December 2009."

Lignende præsentationer


Annoncer fra Google