Za Brinch Hansena - Per Brinch Hansen

Za Brinch Hansena
Per Brinch Hansen - 1999.jpg
Per Brinch Hansen w 1999 r.
Urodzić się ( 1938-11-13 )13 listopada 1938
Zmarł 31 lipca 2007 (2007-07-31)(w wieku 68 lat)
Alma Mater Uniwersytet Techniczny w Danii
Znany z
Małżonkowie Milena
Dzieci 2
Nagrody
Kariera naukowa
Pola Informatyka
Instytucje
Wpływy
Strona internetowa brinch-hansen .net

Za Brinch Hansen (13 listopada 1938 - 31 lipca 2007) był duńskim - amerykański informatyk znany ze swojej pracy w systemach operacyjnych , współbieżne programowanie i równoległe i rozproszone .

Biografia

Wczesne życie i edukacja

Per Brinch Hansen jako student w 1959 r.
21 lat w 1959 r.

Per Brinch Hansen urodził się w Frederiksbergu , enklawie otoczonej Kopenhagą w Danii . Jego ojciec, Jørgen Brinch Hansen , pracował jako inżynier budownictwa lądowego, stając się czołowym ekspertem w dziedzinie mechaniki gruntu, a później przyjął profesurę na Duńskim Uniwersytecie Technicznym . Jego matka, Elsebeth Brinch Hansen (z domu Ring), była córką duńskiego kompozytora Olufa Ringa i przed ślubem pracowała jako fryzjerka.

Brinch Hansen uczęszczał do Skt. Jørgens Gymnasium, a następnie studiował elektrotechnikę na Uniwersytecie Technicznym w Danii, gdzie szukał obszaru, który „nadal znajdował się w pionierskiej fazie”, wierząc, że „jeśli nauczano przedmiotu, prawdopodobnie było już za późno, aby wnieść fundamentalny wkład ”. Po siedmiotygodniowym stażu studenckim w IBM Hursley Laboratory w Anglii postanowił poświęcić swoją karierę komputerom. Początkowo koncentrował się na budowie komputerów, przeczytanie książki o projekcie IBM 7030 Stretch , opisującej organizację komputerów z punktu widzenia programisty, przekierowało jego zainteresowanie ku zostaniu architektem komputerowym.

Centralne reg

Per Brinch Hansen w wieku 29 lat w laboratorium komputerowym RC 4000 (1967)
29 lat w laboratorium komputerowym RC 4000 (1967)

Po uzyskaniu tytułu magistra inżynierii elektronicznej w 1963 roku Brinch Hansen dostał pracę w Regnecentralen , wówczas instytucji badawczej w ramach Duńskiej Akademii Nauk Technicznych (Akademiet for de Tekniske Videnskaber), pracując w grupie kompilatorów kierowanej przez Petera Naura i Jørn Jensen . Tam jego pierwszym znaczącym projektem było napisanie parsera dla kompilatora COBOL dla komputera Siemens 3003.

Następnie napisał system plików, który miał być używany podczas wykonywania skompilowanych programów w języku COBOL, obserwując później:

Teraz rozumiem, że to był naprawdę mały system operacyjny, który zaprogramowałem. Jednak w połowie lat 60. linia podziału między implementacją języka a systemami operacyjnymi wciąż nie była jasno rozumiana.

W 1966 Brinch Hansen przeniósł się do grupy sprzętowej Henninga Isakssona w Regnecentralen, wówczas firmy z udziałowcami. Razem z Peterem Kraftem zdefiniował architekturę komputera i zestaw instrukcji dla trzeciego komputera Regnecentralen, RC 4000, używając ALGOL 60 jako języka opisu sprzętu w celu stworzenia formalnej specyfikacji .

Niedoświadczony w multiprogramowaniu , wykorzystał kopię Cooperating Sequential Processes, którą Edsger Dijkstra wysłał mu, aby zrozumieć synchronizację procesów za pomocą semaforów , a następnie wdrożył wyspecjalizowany monitor RC 4000 w czasie rzeczywistym do wykorzystania w zarządzaniu zakładem nawozowym. Peter Kraft i Charles Simonyi , który był jeszcze nastolatkiem, napisali interpreter p-code i programy zadań do rejestrowania danych, które zostały skompilowane do p-kodu.

Latem 1967 roku Brinch Hansen opuścił grupę sprzętową Regnecentralen, aby objąć stanowisko szefa rozwoju oprogramowania RC 4000 , gdzie kierował zespołem składającym się z Jørna Jensena, Petera Krafta i Sørena Lauesena w definiowaniu uniwersalnego systemu programowania RC 4000 , mając na celu: unikaj opracowywania niestandardowego systemu operacyjnego do sterowania w czasie rzeczywistym dla każdej instalacji RC 4000, a także obsługi przetwarzania wsadowego i współdzielenia czasu . Powstały system nie był kompletnym systemem operacyjnym, ale małym jądrem dostarczającym mechanizmów, na których można było budować systemy operacyjne do różnych celów. Wiosną 1969 roku działała dobrze udokumentowana, niezawodna wersja wieloprogramowego systemu RC 4000.

Carnegie Mellon University

Pod koniec 1970 roku Brinch Hansen przeniósł się do Pittsburgha , przyjmując zaproszenie od Alana Perlisa do odwiedzenia wydziału informatyki na Uniwersytecie Carnegie Mellon jako współpracownik naukowy, podczas gdy napisał pierwszy systematyczny podręcznik o zasadach systemu operacyjnego. W tym czasie, podczas Letniej Szkoły w 1971 roku w Marktoberdorfie i sympozjum w Belfaście , Brinch Hansen, Tony Hoare i Dijkstra zaczęli omawiać pomysły, które przekształciły się w koncepcję monitora . Wiosną 1972 roku, po przeczytaniu o koncepcji klas wymyślonej przez Ole-Johana Dahla i Kristen Nygaard dla Simula 67, Brinch Hansen uzupełnił swój tekst rozdziałem o ochronie zasobów, w którym zaproponowano pierwszą notację monitorową, wykorzystującą współdzielone klasy. W 1973 roku opublikowano „ Zasady systemu operacyjnego” , stając się pierwszym obszernym podręcznikiem o systemach operacyjnych.

Kalifornijski Instytut Technologiczny

Per Brinch Hansen w Taj Mahal, po wzięciu udziału w konferencji w Bombaju (1975)
W Taj Mahal, po wzięciu udziału w konferencji w Bombaju (1975)

W lipcu 1972 Brinch Hansen dołączył do wydziału California Institute of Technology (Caltech) jako profesor nadzwyczajny informatyki, gdzie rozpoczął pracę nad zdefiniowaniem języka programowania z procesami współbieżnymi i monitorami. W kwietniu 1974 rozdał raport techniczny na temat Concurrent Pascal . Kompilator Concurrent Pascal dla PDP 11/45 , napisany przez doktoranta Brincha Hansena, Ala Hartmanna, został wydany w styczniu 1975 roku. Następnie Brinch Hansen zaczął pisać modele systemów operacyjnych w Concurrent Pascal, aby ocenić język. W maju 1975 ukończył Solo, system operacyjny dla jednego użytkownika do tworzenia programów Concurrent Pascal. Następnie przepisał oryginalny harmonogram czasu rzeczywistego RC 4000 w Concurrent Pascal, poświęcając trzy dni na jego napisanie i trzy godziny czasu maszynowego na systematyczne testowanie.

Kiedy wydział informatyki Caltech przeniósł się na inżynierię komputerową i odszedł od programowania, Brinch Hansen zdecydował się odejść, zamiast szukać tam etatu.

Uniwersytet Południowej Kalifornii

W 1976 roku Brinch Hansen wybrał University of Southern California (USC) na swoje następne stanowisko, aby jego rodzina mogła pozostać w domu w Altadena . Dołączając do wydziału jako profesor zwyczajny i pierwszy przewodniczący nowo utworzonego wydziału informatyki, kierował staraniami, aby zidentyfikować i przyciągnąć najlepszych wykładowców, aby zbudować wydział pierwszej klasy. W 1980 roku wydział informatyki USC został sklasyfikowany przez National Research Council jako jeden z dziesięciu najlepszych w USA.

Podczas pobytu w USC Brinch Hansen napisał swoją drugą książkę, The Architecture of Concurrent Programs, opartą na swojej pracy nad rozwojem systemów operacyjnych za pomocą Concurrent Pascal. Wydana w 1977 roku była pierwszą książką o programowaniu współbieżnym. W 1978 roku Brinch Hansen został pierwszym informatykiem, któremu przyznano stopień Doctor Technices, najwyższe wyróżnienie akademickie w dziedzinie inżynierii i nauk technicznych w Danii, za pracę udokumentowaną w The Architecture of Concurrent Programs . Później, w 1978 roku, Brinch Hansen opublikował koncepcję języka Distributed Processes, proponując użycie zdalnych wywołań procedur do synchronizacji procesów działających w sieci mikrokomputerowej.

Również w 1978 roku LJ Sevins i Steve Goings z Mostek odwiedzili Brinch Hansen w USC, gdzie nakreślili niedrogą architekturę wieloprocesorową . Mostek rozpoczął projekt wdrożenia takiego multiprocesora, a Brinch Hansen pracował jako konsultant. Brinch Hansen opracował na potrzeby projektu nowy, współbieżny język programowania, Edison. Podobnie jak w przypadku projektu RC 4000, Edison był również używany jako formalny język specyfikacji sprzętu. Mostek uzyskał początkowo działający 4-węzłowy wieloprocesor, a Brinch Hansen napisał przenośny kompilator Edisona na PDP 11/55, ale wkrótce potem United Technologies przejęło Mostek i anulowało projekt. W 1982 roku Brinch Hansen przeniósł system Edisona na komputer osobisty IBM (PC), a następnie opublikował swoją trzecią książkę, Programowanie komputera osobistego .

W 1982 roku Brinch Hansen został mianowany pierwszym Henry Salvatori profesorem informatyki na USC.

Uniwersytet w Kopenhadze

W 1984, tęskniąc za Danią po 14 latach spędzonych za granicą, Brinch Hansen opuścił USC i rozpoczął pracę na wydziale Uniwersytetu Kopenhaskiego jako profesor datalogii . W 1985 roku został wybrany na członka Instytutu Inżynierów Elektryków i Elektroników (IEEE). Później w 1985 roku ukazała się jego czwarta książka Brinch Hansen on Pascal Compilers , której używał do własnego kursu kompilatora.

Brinch Hansen, projektując wielokomputerowy system operacyjny dla duńskiej firmy GN Elmi, doszedł do wniosku, że potrzebuje nowego języka, tym razem wykorzystującego paradygmat przekazywania komunikatów CSP Hoare'a . Powstały język, Joyce , usunął główne ograniczenie CSP, wprowadzając rekurencję równoległą . Brinch Hansen opracował przenośną implementację na komputerze IBM PC.

Uniwersytet Syracuse

Per Brinch Hansen na wakacjach w Waszyngtonie (1990)
Na wakacjach w Waszyngtonie (1990)

Po stwierdzeniu, że ani on, ani jego rodzina nie czuli się w Danii jak w domu, Brinch Hansen postanowił wrócić do USA, ale odkrył, że ich status imigracyjny wymaga od nich tego bardzo szybko. Brinch Hansen skontaktował się z Johnem Reynoldsem na Uniwersytecie Syracuse iw 1987 roku dołączył do wydziału jako Distinguished Professor.

Pracując ze swoim uczniem Rangachari Anand, Joyce został przeniesiony na wieloprocesorowy Encore Multimax 320 w Northeast Parallel Architectures Center w SU. Dostrzegając ograniczenia skalowania wieloprocesorów, Brinch Hansen poszukiwał odpowiedniego multikomputera do dalszych prac. Nabywając Meiko Computing Surface w 1989 r., zaczął eksperymentować z aplikacjami naukowymi, opracowując programy równoległe dla metody Householder (redukcja), a następnie symulację n-ciał jako ćwiczenia edukacyjne. Ze zdziwieniem stwierdził, że oba programy mają prawie identyczne struktury kontrolne. Uznając, że oba pasują do „paradygmatu wszystkich par”, skupił się następnie na badaniu struktur algorytmów równoległych wielokrotnego użytku, które nazwał „paradygmatami programowania” lub „programami generycznymi” (później popularnie znanymi jako „ wzorce projektowe ”). W 1995 roku ukazała się piąta książka Brincha Hansena, Studies in Computational Science: Parallel Programming Paradigms , w której programy zostały przepisane w SuperPascal , w pełni zaimplementowanym języku publikacji, który stworzył dla algorytmów równoległych.

Ostatnie lata

W późniejszych latach Brinch Hansen opublikował retrospektywę swoich najważniejszych prac, The Search for Simplicity (1996), tekst kursu programowania dla nie-specjalistów, Programming for Everyone in Java (1999), retrospektywę ewolucji systemów operacyjnych, Klasyczne systemy operacyjne: od przetwarzania wsadowego do systemów rozproszonych (2001) oraz retrospektywę ewolucji programowania współbieżnego, The Origin of Concurrent Programming: From Semaphores to Remote Procedure Calls (2002). Opublikował na swojej stronie internetowej wspomnienia z 2004 roku, A Programmer's Story: The Life of a Computer Pioneer .

W 2002 roku Brinch Hansen otrzymał nagrodę IEEE Computer Pioneer Award „Za pionierski rozwój systemów operacyjnych i programowania współbieżnego, czego przykładem są prace nad systemem wieloprogramowania RC 4000, monitorami i Concurrent Pascal”.

31 lipca 2007 roku Brinch Hansen zmarł, wkrótce po zdiagnozowaniu nieuleczalnego raka.

Życie osobiste

Brinch Hansen poznał swoją żonę Milenę (z domu Hrastar) podczas wycieczki klasowej do Jugosławii w 1962 roku. Pobrali się w 1965 roku i mieli dwoje dzieci, córkę Mette i syna Thomasa.

Wkład i wpływ naukowy

W swojej karierze obejmującej pięć dekad Brinch Hansen wniósł znaczący wkład w obszarach systemów operacyjnych, obliczeń współbieżnych oraz obliczeń równoległych i rozproszonych, które miały wpływ na kształtowanie rozwoju tych dziedzin i przechodzenie od technik ad hoc do systematycznych dyscyplin inżynieryjnych. Wpływ jego pracy został wzmocniony przez jego „nieustanne poszukiwanie prostoty”, jego nacisk na przejrzystość, wielokrotne pisanie i przepisywanie swoich artykułów przed ich opublikowaniem, stając się „jednym z najlepszych tłumaczy w branży” oraz jego zaangażowanie w testowanie koncepcji w systemach roboczych – Brinch Hansen wdrażał i dystrybuował systemy pracy dla nowych koncepcji, które opracował, zauważając:

Często zdarza się, że informatyk składa propozycję bez sprawdzenia, czy jest ona dobra w praktyce. Po spędzeniu 3 dni na pisaniu propozycji monitora i 3 latach jej wdrażania, bardzo dobrze rozumiem tę pokusę. Być może czasami jest to także ludzka reakcja na ogromną presję wywieraną na profesorów uniwersyteckich, aby szybko uzyskać fundusze i uznanie. Niemniej jednak musimy pamiętać, że w inżynierii liczy się tylko jedno: czy to działa (nie „czy to działa” lub „czy nie byłoby fajnie, gdyby tak było”)?

System operacyjny

Wieloprogramowy system RC 4000 wprowadził standardową koncepcję jądra systemu operacyjnego oraz oddzielenie mechanizmu i polityki w projektowaniu systemu operacyjnego. Nowoczesne architektury mikrojądra mają swoje korzenie w rozszerzalnej architekturze jądra RC 4000. Poprawa wydajności mikrojądra była głównym tematem badań nad systemami operacyjnymi przez trzy dekady po RC 4000.

Tekst Brincha Hansena „ Zasady systemu operacyjnego” był pierwszym obszernym podręcznikiem o systemach operacyjnych. Ostatecznie opublikowana w sześciu językach (angielskim, japońskim, niemieckim, czeskim, polskim i serbsko-chorwackim), pozostawała w druku przez dziesięciolecia, a lata po tym, jak opisywany przez nią system RC 4000 stał się przestarzały. W 1990 roku, prawie dwie dekady po pierwszej publikacji, PJ Plauger zrecenzował go, mówiąc:

Ta książka jest strasznie przestarzała. Opisuje wiele algorytmów systemu operacyjnego RC4000. RC4000 jest powolny, mały i głodny urządzeń peryferyjnych według dzisiejszych standardów. Algorytmy są przedstawione w podzbiorze Pascala. Po co się męczyć? Odpowiedź brzmi, że Brinch Hansen jest jednym z najlepszych tłumaczy w branży. Wyjaśnia jasno i rzeczowo. Ma oko na ogólną zasadę stojącą za przykładem, ale udaje mu się uniknąć niepotrzebnej abstrakcji. Po tylu latach nadal czyta się go z przyjemnością.

W 2005 r. członkowie Association for Computing Machinery (ACM) wybrali „ Zasady systemu operacyjnego” jako 25 najlepszych klasycznych książek w ankiecie, aby wybrać klasyczne książki z wyczerpanych nakładów i dodać je do Biblioteki Cyfrowej ACM. Zasady systemu operacyjnego znalazły się na 15. miejscu w ankiecie, pojawiając się w 8,8% głosów. Jest teraz dostępny w Bibliotece Cyfrowej ACM .

Używając Concurrent Pascal, Brinch Hansen zademonstrował, że możliwe jest pełne zaimplementowanie systemów operacyjnych w językach wysokiego poziomu, co zredukowało wysiłek programistyczny o jeden do dwóch rzędów wielkości. Co więcej, całe systemy operacyjne mogą być publikowane i rozumiane w całości. Brinch Hansen zrobił dokładnie to w The Architecture of Concurrent Programs , skłaniając Roya Madduxa i Harlana Millsa do stwierdzenia:

Część druga książki jest rzeczywiście niezwykła. Tutaj widoczny jest cały system operacyjny, z każdą linią programu otwartą do przyjrzenia się. Nie ma żadnej ukrytej tajemnicy, a po przestudiowaniu tak obszernych przykładów czytelnik czuje, że mógłby zająć się podobnymi zadaniami i że mógłby dowolnie zmieniać system. Nigdy wcześniej nie widzieliśmy systemu operacyjnego pokazanego tak szczegółowo iw sposób tak podatny na modyfikację.

Programowanie współbieżne

Brinch Hansen i Hoare opracowali koncepcję monitora. Brinch Hansen opublikował pierwszą notację monitorową, przyjmując koncepcję klasy Simuli 67 i wynalazł mechanizm kolejkowania. Hoare udoskonalił zasady wznawiania procesów. Brinch Hansen stworzył pierwszą implementację monitorów w Concurrent Pascal. Do 1990 roku powstało kilkanaście dodatkowych języków opartych na monitorach: 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 był pierwszym językiem programowania współbieżnego: pierwszym językiem opracowanym specjalnie dla programowania współbieżnego, a co ważniejsze, pierwszym językiem, który zademonstrował, że możliwe było włączenie bezpiecznych, wysokopoziomowych udogodnień dla współbieżności, w których system mógł zagwarantować dostęp procesów tylko rozłączne zbiory zmiennych i nie kolidują ze sobą w sposób zależny od czasu. Hoare opisał to jako „wybitny przykład najlepszych badań akademickich w tej dziedzinie”.

Kod źródłowy i przenośny dla systemu operacyjnego Concurrent Pascal i Solo został rozesłany do co najmniej 75 firm i 100 uniwersytetów w 21 krajach, co zaowocowało jego powszechnym przyjęciem, przeniesieniem i adaptacją zarówno w przemyśle, jak i na uczelni. Greg Andrews zauważył, że Concurrent Pascal i monitory „w dużym stopniu wpłynęły na większość późniejszych propozycji języków współbieżnych”.

Architektura programów współbieżnych” Brincha Hansena była pierwszą książką o programowaniu współbieżnym i ostatecznie została opublikowana w trzech językach (angielskim, japońskim i niemieckim). Kilkanaście lat po publikacji PJ Plauger zaobserwował:

Jasne, ulepszenia zostały wprowadzone w ciągu ostatnich kilkunastu lat. Mamy lepsze algorytmy synchronizacji i bardziej wyszukane (jeśli niekoniecznie lepsze) języki z kontrolą współbieżności. Ale nie znajdziesz lepszego przeglądu programowania współbieżnego niż ta książka. Przynajmniej nie znalazłem.

W 2005 r. członkowie ACM wybrali „Architekturę równoległych programów” do 25 najlepszych klasycznych książek, zajmując w ankiecie 18. miejsce i pojawiając się w 8% głosów. Jest teraz dostępny w Bibliotece Cyfrowej ACM .

Przetwarzanie rozproszone i zdalne wywoływanie procedur

Zdalne wywołania procedur używane w nowoczesnych systemach operacyjnych wywodzą się z systemu wieloprogramowego RC 4000, który używał protokołu komunikacyjnego żądanie-odpowiedź do synchronizacji procesów.

W swoim artykule z 1978 r. na temat procesów rozproszonych Brinch Hansen zaproponował język przetwarzania rozproszonego oparty na żądaniach zewnętrznych składających się z wywołań procedur między procesami. Później stało się to znane w kontekście systemu operacyjnego jako zdalne wywołanie procedury.

Później Brinch Hansen opracował dwa języki rozszerzające paradygmat przekazywania wiadomości Hoare'a CSP o równoległą rekurencję i pokazał, jak skutecznie to zaimplementować.

Honory i nagrody

Języki programowania

Cytaty

  • Pisanie to rygorystyczny test prostoty: po prostu nie można pisać przekonująco o ideach, których nie można zrozumieć
  • Programowanie to sztuka pisania esejów w krystalicznie czystej prozie i robienia z nich wykonalnych

Publikacje

Książki
  • Zasady systemu operacyjnego (1973, ISBN  0-13-637843-9 )
  • Architektura programów równoległych (1977, ISBN  0-13-044628-9 )
  • Programowanie komputera osobistego (1983, ISBN  0-13-730267-3 )
  • Brinch Hansen o kompilatorach Pascala (1985, ISBN  0-13-083098-4 )
  • Studies in Computational Science: Parallel Programming Paradigms (1995, ISBN  0-13-439324-4 )
  • The Search for Simplicity: Eseje w programowaniu równoległym (1996, ISBN  0-81-867566-7 )
  • Programowanie dla wszystkich w Javie (1999, ISBN  0-387-98683-9 )
  • Klasyczne systemy operacyjne: od przetwarzania wsadowego do systemów rozproszonych (redaktor, 2001, ISBN  0-387-95113-X )
  • Geneza programowania współbieżnego: od semaforów do zdalnych wywołań procedur (redaktor, 2002, ISBN  0-387-95401-5 )
  • Historia programisty: życie pioniera komputerowego (2004, dostępne pod adresem http://brinch-hansen.net/ )
Wybrane artykuły

Zobacz też

Bibliografia

Zewnętrzne linki