Введение

Пер Бринч Хансен (13 ноября 1938 – 31 июля 2007) — датско-американский учёный в области компьютерных наук, известный своими работами в области операционных систем, конкурентного программирования, а также параллельных и распределённых вычислений.

Ранние годы и образование

Пер Бринч Хансен родился в Фредериксберге, анклаве, окруженном Копенгагеном, Дания. Его отец, Йорген Бринч Хансен, работал инженером-строителем, став ведущим экспертом в области механики почв, а позже занял должность профессора в Техническом университете Дании. Его мать, Элсебет Бринч Хансен (урожденная Ринг), была дочерью датского композитора Олуфа Ринга и работала парикмахером до замужества. Бринч Хансен учился в гимназии Ск. Йоргенса, а затем изучал электротехнику в Техническом университете Дании, где искал область для исследований, которая "еще находилась на этапе первопроходчества", руководствуясь убеждением, что "если предмет уже преподают, вероятно, уже слишком поздно внести фундаментальный вклад". После семинедельной студенческой стажировки в лаборатории IBM в Англии он решил посвятить свою карьеру компьютерам. Изначально сосредоточившись на конструировании компьютеров, прочтение книги о проекте IBM 7030 Stretch, в которой организация компьютера описывалась с точки зрения программиста, переключило его интерес на архитектуру компьютеров. Эдсгер Дейкстра направил его на изучение синхронизации процессов с использованием семафоров, после чего он реализовал специализированный монитор реального времени RC 4000 для управления заводом по производству удобрений. Питер Крафт и Чарльз Симони, который тогда был подростком, написали интерпретатор p-кода и программы для регистрации данных, которые компилировались в p-код. К весне 1969 года была запущена хорошо документированная и надежная версия многопрограммной системы RC 4000.

Калифорнийский технологический институт

В июле 1972 года Бринч Хансен присоединился к факультету Калифорнийского технологического института (Кальтек) в качестве доцента компьютерных наук, где он начал работу над определением языка программирования с поддержкой параллельных процессов и мониторов. В апреле 1974 года он распространил технический отчёт о Concurrent Pascal. Впоследствии Бринч Хансен начал разрабатывать модельные операционные системы на Concurrent Pascal для оценки возможностей языка. В мае 1975 года он завершил разработку Solo – однопользовательской операционной системы для разработки программ на Concurrent Pascal. Затем он переписал исходный планировщик реального времени RC 4000 на Concurrent Pascal, потратив три дня на написание и три часа машинного времени на его систематическое тестирование. В 1978 году Бринч Хансен стал первым учёным в области компьютерных наук, удостоенным степени доктора техники – высшего академического звания в области инженерных и технологических наук в Дании – за работу, представленную в книге «Архитектура параллельных программ». Позднее, в 1978 году, Бринч Хансен опубликовал концепцию языка распределённых процессов, предложив использовать удалённые вызовы процедур для синхронизации процессов, работающих в сети микрокомпьютеров. Также в 1978 году Л. Дж. Севинс и Стив Гоингс из компании Mostek посетили Бринча Хансена в USC, где он представил архитектуру недорогого мультипроцессора. Mostek начал проект по реализации такого мультипроцессора, а Бринч Хансен работал консультантом. Как и в проекте RC 4000, Edison также использовался в качестве формального языка спецификаций для аппаратного обеспечения. Mostek создал первоначальный 4-узловой мультипроцессор, а Бринч Хансен написал переносимый компилятор Edison для PDP 11/55, но вскоре после этого United Technologies приобрела Mostek и закрыла проект. В 1982 году Бринч Хансен перенёс систему Edison на IBM Personal Computer (PC), а затем опубликовал свою третью книгу «Программирование персонального компьютера». В 1982 году Бринч Хансен был назначен первым профессором компьютерных наук имени Генри Сальватори в USC. При разработке многомашинной операционной системы для датской компании GN Elmi Бринч Хансен пришёл к выводу о необходимости нового языка, основанного на парадигме передачи сообщений CSP Хоара. Бринч Хансен разработал переносимую реализацию на IBM PC, с программами, переписанными на SuperPascal – полностью реализованном языке публикации, который он создал для параллельных алгоритмов.

Последние годы

В последние годы жизни Бринч Хансен опубликовал сборник своих наиболее важных работ под названием «Поиск простоты» (1996), учебник для курса программирования для студентов нетехнических специальностей «Программирование для всех на Java» (1999), ретроспективный обзор эволюции операционных систем «Классические операционные системы: от пакетной обработки до распределенных систем» (2001) и ретроспективный обзор эволюции параллельного программирования «Происхождение параллельного программирования: от семафоров до удаленных вызовов процедур» (2002). В 2004 году он самостоятельно опубликовал мемуары «История программиста: жизнь компьютерного пионера» на своем веб-сайте. 31 июля 2007 года Бринч Хансен скончался вскоре после постановки диагноза – рак в терминальной стадии.

Операционные системы

Многопрограммная система RC 4000 представила концепцию ядра операционной системы, ставшую впоследствии стандартной, и разграничение механизма и политики в проектировании операционных систем. Современные архитектуры микроядер восходят к расширяемой архитектуре ядра RC 4000. Теперь она доступна в цифровой библиотеке ACM. Используя Concurrent Pascal, Бринч Хансен продемонстрировал возможность полной реализации операционных систем на языках высокого уровня, что сокращало трудозатраты на разработку на один-два порядка. Более того, целые операционные системы могли быть опубликованы и поняты целиком. Бринч Хансен сделал именно это в книге "Архитектура параллельных программ", что побудило Роя Мэддукса и Харлана Миллса заявить:

Вторая часть книги поистине примечательна. Здесь представлена вся операционная система, и каждая строка программы открыта для изучения. Нет никаких скрытых аспектов, и после изучения столь обширных примеров читатель чувствует, что способен решать подобные задачи и изменять систему по своему усмотрению. Раньше мы никогда не видели операционную систему, представленную в такой детализации и в форме, столь удобной для модификации.