Per Brinch Hansen - Per Brinch Hansen

Per Brinch Hansen
Per Brinch Hansen - 1999.jpg
Per Brinch Hansen i 1999
Født ( 1938-11-13 )13. november 1938
Døde 31. juli 2007 (2007-07-31)(68 år)
Alma Mater Tekniske Universitet Danmark
Kendt for
Ægtefælle Milena
Børn 2
Priser
Videnskabelig karriere
Felter Computer videnskab
Institutioner
Indflydelse
Internet side brinch-hansen .net

Per Brinch Hansen (13. november 1938 - 31. juli 2007) var en dansk - amerikansk computerforsker kendt for sit arbejde med operativsystemer , samtidig programmering og parallel og distribueret computing .

Biografi

Tidligt liv og uddannelse

Per Brinch Hansen som student i 1959
21 år i 1959

Per Brinch Hansen blev født på Frederiksberg , en enklave omgivet af København , Danmark . Hans far, Jørgen Brinch Hansen , arbejdede som civilingeniør, blev en førende ekspert i jordmekanik og accepterede senere et professorat ved Danmarks Tekniske Universitet . Hans mor, Elsebeth Brinch Hansen (født Ring), var datter af den danske komponist Oluf Ring og arbejdede som frisør, inden hun blev gift.

Brinch Hansen deltog i Skt. Jørgens Gymnasium og studerede derefter elektroteknik på Danmarks Tekniske Universitet, hvor han søgte et område at forfølge, der "stadig var i sin banebrydende fase" på troen på, at "Hvis et emne blev undervist, var det sandsynligvis allerede for sent at yde grundlæggende bidrag . " Efter en syv ugers studenterpraktik på IBM 's Hursley Laboratory i England besluttede han at dedikere sin karriere til computere. Oprindeligt fokuseret på computerkonstruktion ved at læse en bog om IBM 7030 Stretch -projektet, der beskrev computerorganisation fra en programmørs synsvinkel, fokuserede hans interesse på at blive computerarkitekt igen.

Regnecentralen

Per Brinch Hansen i en alder af 29 år i computerlaboratoriet RC 4000 (1967)
I en alder af 29 år i computerlaboratoriet RC 4000 (1967)

Efter at have afsluttet en Master of Science -grad i elektronisk teknik i 1963, fik Brinch Hansen et job på Regnecentralen , derefter en forskningsinstitution under Det Danske Tekniske Akademi (Akademiet for de Tekniske Videnskaber), der arbejdede i kompilatorgruppen, ledet af Peter Naur og Jørn Jensen . Der var hans første betydningsfulde projekt at skrive en parser til en COBOL -kompilator til Siemens 3003 -computeren.

Efterfølgende skrev han et filsystem, der skulle bruges under udførelsen af de kompilerede COBOL -programmer, og observerede senere:

Jeg forstår nu, at det virkelig var et lille operativsystem, jeg havde programmeret. I midten af ​​1960'erne blev skillelinjen mellem sprogimplementering og operativsystemer imidlertid stadig ikke klart forstået.

I 1966 flyttede Brinch Hansen til Henning Isakssons hardwarekoncern på Regnecentralen, dengang et selskab med aktionærer. Sammen med Peter Kraft definerede han computerarkitekturen og instruktionssættet til Regnecentralens tredje computer, RC 4000, ved hjælp af ALGOL 60 som et hardware -beskrivelsessprog til at producere en formel specifikation .

Uerfarne med multiprogrammering , brugte han en kopi af samarbejdende Sekventiel Processer Edsger Dijkstra havde sendt ham til at forstå processen synkronisering ved hjælp af semaforer , og derefter gennemført en specialiseret RC 4000 realtid skærm til brug i forvaltningen en plante gødning. Peter Kraft og Charles Simonyi , der stadig var teenager, skrev en p-kode- tolk og datalogningsprogrammer, der blev kompileret til p-kode.

I sommeren 1967 forlod Brinch Hansen Regnecentralens hardwaregruppe for at blive chef for RC 4000- softwareudvikling , hvor han ledede et team, herunder Jørn Jensen, Peter Kraft og Søren Lauesen, i at definere et universelt RC 4000-multiprogrammeringssystem med det formål at undgå at udvikle et brugerdefineret realtidskontroloperativsystem til hver RC 4000-installation, og også at understøtte batchbehandling og tidsdeling . Det resulterende system var ikke et komplet operativsystem, men en lille kerne, der tilvejebringer de mekanismer, hvorpå operativsystemer til forskellige formål kunne bygges. I foråret 1969 kørte en veldokumenteret, pålidelig version af RC 4000 multiprogrammeringssystemet.

Carnegie Mellon University

I slutningen af ​​1970 flyttede Brinch Hansen til Pittsburgh og accepterede en invitation fra Alan Perlis om at besøge instituttet for datalogi ved Carnegie Mellon University som forskningsassistent, mens han skrev den første systematiske lærebog om operativsystemprincipper. I løbet af denne tid begyndte Brinch Hansen, Tony Hoare og Dijkstra på sommerskolen i 1971 i Marktoberdorf og et symposium i Belfast at diskutere ideer, der udviklede sig til monitor -konceptet. I foråret 1972, efter at have læst om klassekonceptet opfundet af Ole-Johan Dahl og Kristen Nygaard til Simula 67, afsluttede Brinch Hansen sin tekst med et kapitel om ressourcebeskyttelse, der foreslog den første monitornotation ved hjælp af delte klasser. I 1973 blev operativsystemprincipper udgivet og blev den første omfattende lærebog om operativsystemer.

California Institute of Technology

Per Brinch Hansen på Taj Mahal, efter at have deltaget i en konference i Bombay (1975)
På Taj Mahal, efter at have deltaget i en konference i Bombay (1975)

I juli 1972 sluttede Brinch Hansen sig til fakultetet ved California Institute of Technology (Caltech) som lektor i datalogi, hvor han begyndte at arbejde med at definere et programmeringssprog med samtidige processer og skærme. I april 1974 distribuerede han en teknisk rapport om Concurrent Pascal . En Samtidig Pascal compiler til PDP 11/45 , som er skrevet af Brinch Hansens ph.d.-studerende, Al Hartmann, blev udgivet i januar 1975. Efterfølgende Brinch Hansen begyndte at skrive model operativsystemer i Concurrent Pascal, at vurdere sproget. I maj 1975 afsluttede han Solo, et enkeltbruger-operativsystem til udvikling af samtidige Pascal-programmer. Derefter omskrev han den originale RC 4000-realtidsplanlægger i Concurrent Pascal, og tog tre dage at skrive den og tre timers maskintid for systematisk at teste den.

Da Caltech datalogi -afdeling flyttede fokus mod computerteknik og væk fra programmering, besluttede Brinch Hansen at forlade stedet for at søge tid.

University of Southern California

I 1976 valgte Brinch Hansen University of Southern California (USC) til sin næste stilling, så hans familie kunne blive i deres Altadena -hjem . Tiltrådte fakultetet som fastansat fuld professor og første formand for en nyoprettet datalogisk afdeling, ledede han bestræbelser på at identificere og tiltrække førsteklasses fakulteter til at bygge en førsteklasses afdeling. I 1980 blev USC's datalogiske afdeling rangeret af National Research Council som en af ​​de ti bedste i USA.

Mens han var på USC, skrev Brinch Hansen sin anden bog, The Architecture of Concurrent Programs, baseret på hans arbejde med at udvikle operativsystemer med Concurrent Pascal. Udgivet i 1977, det var den første bog om samtidig programmering. I 1978 blev Brinch Hansen den første computervidenskabsmand, der blev tildelt Doctor Technices -graden, den højeste akademiske forskel inden for ingeniørvidenskab og teknologisk videnskab i Danmark, for arbejdet dokumenteret i The Architecture of Concurrent Programs . Senere i 1978 udgav Brinch Hansen sprogkonceptet Distribuerede processer og foreslog brug af fjernprocedurekald til at synkronisere processer, der kører på tværs af et mikrocomputernetværk.

Også i 1978 besøgte LJ Sevins og Steve Goings fra Mostek Brinch Hansen på USC, hvor han skitserede en billig multiprocessorarkitektur . Mostek startede et projekt for at implementere en sådan multiprocessor, hvor Brinch Hansen arbejdede som konsulent. Brinch Hansen udviklede et nyt samtidigt programmeringssprog, Edison, til projektet. Som med RC 4000 -projektet blev Edison også brugt som et formelt specifikationssprog for hardwaren. Mostek fik en indledende 4-node multiprocessor til at arbejde, og Brinch Hansen skrev en bærbar Edison-kompilator på en PDP 11/55, men kort tid efter købte United Technologies Mostek og annullerede projektet. I 1982 flyttede Brinch Hansen Edison -systemet til en IBM Personal Computer (PC) og udgav derefter sin tredje bog, Programming a Personal Computer .

I 1982 blev Brinch Hansen udnævnt til den første Henry Salvatori -professor i datalogi ved USC.

Københavns Universitet

I 1984 følte Brinch Hansen hjemve for Danmark efter 14 år i udlandet og forlod USC og sluttede sig til fakultetet ved Københavns Universitet som professor i datalogi . I 1985 blev han valgt til stipendiat ved Institute of Electrical and Electronics Engineers (IEEE). Senere i 1985 udkom hans fjerde bog Brinch Hansen om Pascal Compilers , som han brugte til sit eget kompileringskursus.

Mens han designede et multicomputer -operativsystem til det danske firma GN Elmi, konkluderede Brinch Hansen, at han havde brug for et nyt sprog, der denne gang udnyttede budskabets paradigme for Hoares CSP . Det resulterende sprog, Joyce , fjernede en større begrænsning af CSP ved at indføre parallel recursion . Brinch Hansen udviklede en bærbar implementering på en IBM PC.

Syracuse Universitet

Per Brinch Hansen på ferie i Washington, DC (1990)
På ferie i Washington, DC (1990)

Efter at have fundet ud af, at hverken han eller hans familie følte sig hjemme i Danmark, besluttede Brinch Hansen at vende tilbage til USA, men opdagede, at deres immigrationsstatus krævede, at de gjorde det meget hurtigt. Brinch Hansen kontaktede John Reynolds ved Syracuse University, og i 1987 sluttede han sig til fakultetet som en fremtrædende professor.

I samarbejde med sin elev Rangachari Anand blev Joyce flyttet til en Encore Multimax 320 multiprocessor på SU's Northeast Parallel Architectures Center. I erkendelse af skaleringsbegrænsningerne for multiprocessorer søgte Brinch Hansen imidlertid en passende multicomputer til videre arbejde. Han købte en Meiko Computing Surface i 1989 og begyndte at eksperimentere med videnskabelige applikationer ved at udvikle parallelle programmer til husstandens metode (reduktion) og derefter n-body simulering som læringsøvelser og blev overrasket over at opdage, at begge programmer havde næsten identiske kontrolstrukturer. Han konkluderede, at begge passer til et "parparadigme", og fokuserede derefter på at udforske genbrugelige parallelle algoritmestrukturer, han kaldte "programmeringsparadigmer" eller "generiske programmer" (senere populært kendt som " designmønstre "). I 1995 udkom Brinch Hansens femte bog, Studies in Computational Science: Parallel Programming Paradigms , med programmer omskrevet i SuperPascal , et fuldt implementeret publikationssprog, han skabte til parallelle algoritmer.

De sidste år

I sine senere år udgav Brinch Hansen en retrospektiv af sine vigtigste artikler, The Search for Simplicity (1996), en tekst til et kursus i programmering for ikke-majorer, Programming for Everyone in Java (1999), en retrospektiv om udviklingen af operativsystemer, Classic Operating Systems: From Batch Processing to Distributed Systems (2001), og et tilbageblik på udviklingen af ​​samtidig programmering, The Origin of Concurrent Programming: From Semaphores to Remote Procedure Calls (2002). Han udgav selv en memoar fra 2004, A Programmer's Story: The Life of a Computer Pioneer , på sit websted.

I 2002 blev Brinch Hansen tildelt IEEE Computer Pioneer Award "For banebrydende udvikling inden for operativsystemer og samtidig programmering eksemplificeret ved arbejde med RC 4000 multiprogrammeringssystemet, skærme og Concurrent Pascal."

Den 31. juli 2007 døde Brinch Hansen kort efter at have fået konstateret terminal kræft.

Personlige liv

Brinch Hansen mødte sin kone Milena (f. Hrastar) på en klasserejse til Jugoslavien i 1962. De giftede sig i 1965 og fik to børn, datteren Mette og sønnen Thomas.

Videnskabelige bidrag og virkninger

I en karriere på fem årtier ydede Brinch Hansen betydningsfulde bidrag inden for områderne operativsystemer, samtidige computere og parallelle og distribuerede computere, der havde indflydelse på at forme udviklingen af ​​disse felter og fremme dem fra ad hoc -teknikker til systematiske ingeniørdiscipliner. Virkningen af ​​hans arbejde blev forstærket af hans "ubarmhjertige søgen efter enkelhed", hans insisteren på klarhed, at skrive og omskrive sine papirer mange gange, før han udgav dem, blive "en af ​​de bedste forklarere i branchen" og hans engagement i at teste koncepter i arbejdssystemer - Brinch Hansen implementerede og distribuerede arbejdssystemer til nye koncepter, han udviklede, og bemærkede:

Det er ikke ualmindeligt, at en datalog kommer med et forslag uden at teste, om det er godt i praksis. Efter at have brugt 3 dage på at skrive monitorforslaget op og 3 år med at implementere det, kan jeg meget vel forstå denne fristelse. Det er måske også nogle gange en menneskelig reaktion på det enorme pres på universitetsprofessorer for hurtigt at få finansiering og anerkendelse. Ikke desto mindre skal vi huske, at kun én ting tæller inden for teknik: Virker det (ikke "kan det fungere" eller "ville det ikke være rart, hvis det gjorde det")?

Operativsystemer

RC 4000-multiprogrammeringssystemet introducerede det nu standardiserede koncept for en operativsystemkerne og adskillelse af mekanisme og politik i operativsystemdesign. Moderne mikrokernelarkitekturer sporer deres rødder til RC 4000's udvidelige kerne -arkitektur. Forbedring af mikrokernel -ydeevne var et vigtigt tema i operativsystemforskning i tre årtier efter RC 4000.

Brinch Hansens tekst, Operativsystemprincipper , var den første omfattende lærebog om operativsystemer. Til sidst udgivet på seks sprog (engelsk, japansk, tysk, tjekkisk, polsk og serbokroatisk) forblev det på tryk i årtier, og år efter at RC 4000-systemet, det beskrev, var blevet forældet. I 1990, næsten to årtier efter den første udgivelse, gennemgik PJ Plauger det og sagde:

Denne bog er frygtelig dateret. Den beskriver mange af RC4000's operativsystemalgoritmer. RC4000 er langsom, lille og sultet efter periferiudstyr efter nutidens standarder. Algoritmerne præsenteres i en delmængde af Pascal. Hvorfor bekymre sig? Svaret er, at Brinch Hansen er en af ​​de bedste forklarere i branchen. Han forklarer tingene klart og præcist. Han har øje for det generelle princip bag eksemplet, men formår at undgå unødvendig abstraktion. Efter alle disse år er han stadig en fornøjelse at læse.

I 2005 stemte medlemmer af Association for Computing Machinery (ACM) Operating System Principles til en top 25 klassisk bog i en undersøgelse for at vælge udgåede klassiske bøger, der skal tilføjes til ACM Digital Library. Operativsystemprincipper rangerede 15. i undersøgelsen og optrådte på 8,8% af stemmesedlerne. Det er nu tilgængeligt fra ACM Digital Library .

Ved hjælp af Concurrent Pascal demonstrerede Brinch Hansen, at det var muligt fuldt ud at implementere operativsystemer på sprog på højt niveau, og at det reducerede udviklingsindsatsen med en til to størrelsesordener. Desuden kunne hele operativsystemer udgives og forstås i deres helhed. Brinch Hansen gjorde netop det i The Architecture of Concurrent Programs , hvilket fik Roy Maddux og Harlan Mills til at erklære:

Anden del af bogen er virkelig bemærkelsesværdig. Her er et helt operativsystem synligt med hver programlinje åben for kontrol. Der er ikke noget skjult mysterium, og efter at have studeret så omfattende eksempler føler læseren, at han kunne tackle lignende job, og at han kunne ændre systemet efter behag. Aldrig før har vi set et operativsystem vist så detaljeret og på en måde, der er så modtagelig for ændringer.

Samtidig programmering

Brinch Hansen og Hoare udviklede skærmkonceptet. Brinch Hansen offentliggjorde den første monitornotation, der adopterede klassekonceptet Simula 67 og opfandt en kømekanisme. Hoare forfinede reglerne for procesgenoptagelse. Brinch Hansen skabte den første implementering af skærme i Concurrent Pascal. Mere end et dusin ekstra skærmbaserede sprog var blevet oprettet i 1990: Simone, Modula , CSP/k, CCNPascal, PLY, Pascal Plus, Mesa, SB-Mod, Concurrent Euclid , Pascalc, Concurrent C, Emerald, Real-time Euclid , Pascal-FC, Turing Plus , Predula.

Concurrent Pascal var det første samtidige programmeringssprog: det første sprog udviklet specifikt til samtidig programmering, og endnu vigtigere, det første sprog for at demonstrere, at det var muligt at indarbejde sikre faciliteter på højt niveau for samtidighed, hvor systemet kunne garantere, at processer adgang kun forskellige sæt variabler og forstyrrer ikke hinanden på tidsafhængige måder. Hoare beskrev det som "et fremragende eksempel på det bedste inden for akademisk forskning på dette område."

Kilde og bærbar kode til Concurrent Pascal og Solo -operativsystemet blev distribueret til mindst 75 virksomheder og 100 universiteter i 21 lande, hvilket resulterede i dens udbredte vedtagelse, overførsel og tilpasning i både industri og akademi. Greg Andrews bemærkede, at Concurrent Pascal og skærme "havde stor indflydelse på de fleste efterfølgende samtidige sprogforslag."

Brinch Hansens The Architecture of Concurrent Programs var den første bog om samtidig programmering og blev til sidst udgivet på tre sprog (engelsk, japansk og tysk). Mere end et dusin år efter offentliggørelsen observerede PJ Plauger:

Selvfølgelig er der foretaget forbedringer i de sidste snes år. Vi har bedre synkroniseringsalgoritmer og mere avancerede (hvis ikke nødvendigvis bedre) sprog med samtidighedskontrol. Men du finder ikke et bedre overblik over samtidig programmering end denne bog. Jeg har i hvert fald ikke fundet en.

I 2005 stemte ACM's medlemmer The Architecture of Concurrent Programs til en top 25 klassisk bog, der placerede den som 18. i undersøgelsen og optrådte på 8% af stemmesedlerne. Det er nu tilgængeligt fra ACM Digital Library .

Distribueret computing og fjernprocedurekald

Fjernprocedurekald, der bruges i moderne operativsystemer, sporer deres rødder tilbage til RC 4000-multiprogrammeringssystemet, der brugte en anmodning-svar-kommunikationsprotokol til processynkronisering.

I sit papir fra 1978 om distribuerede processer foreslog Brinch Hansen et sprog til distribueret computing baseret på eksterne anmodninger bestående af procedurekald mellem processer. Dette blev senere kendt i et operativsystem som en fjernprocedurekald.

Senere udviklede Brinch Hansen to sprog, der udvider Hoares CSP-meddelelsesformidlende paradigme med parallel rekursion og viste, hvordan man effektivt implementerer sådanne.

Hæder og priser

Programmeringssprog

Citater

  • At skrive er en streng test af enkelhed: Det er bare ikke muligt at skrive overbevisende om ideer, der ikke kan forstås
  • Programmering er kunsten at skrive essays i krystalklar prosa og gøre dem eksekverbare

Publikationer

Bøger
  • Operativsystemprincipper (1973, ISBN  0-13-637843-9 )
  • Arkitekturen for samtidige programmer (1977, ISBN  0-13-044628-9 )
  • Programmering af en personlig computer (1983, ISBN  0-13-730267-3 )
  • Brinch Hansen om Pascal Compilers (1985, ISBN  0-13-083098-4 )
  • Studier i computervidenskab: Parallelle programmeringsparadigmer (1995, ISBN  0-13-439324-4 )
  • The Search for Simplicity: Essays in Parallel Programming (1996, ISBN  0-81-867566-7 )
  • Programmering for alle i Java (1999, ISBN  0-387-98683-9 )
  • Klassiske operativsystemer: Fra batchbehandling til distribuerede systemer (editor, 2001, ISBN  0-387-95113-X )
  • Oprindelsen til samtidig programmering: Fra semaforer til opkald til fjernprocedurer (editor, 2002, ISBN  0-387-95401-5 )
  • A Programmer's Story: The Life of a Computer Pioneer (2004, tilgængelig på http://brinch-hansen.net/ )
Udvalgte papirer

Se også

Referencer

eksterne links