stringtranslate.com

Por Brinch Hansen

Per Brinch Hansen (13 de noviembre de 1938 - 31 de julio de 2007) fue un informático danés - estadounidense conocido por su trabajo en sistemas operativos , programación concurrente y computación paralela y distribuida .

Biografía

Temprana edad y educación

Per Brinch Hansen como estudiante en 1959
21 años en 1959

Per Brinch Hansen nació en Frederiksberg , un enclave rodeado por Copenhague , Dinamarca . Su padre, Jørgen Brinch Hansen, trabajó como ingeniero civil, convirtiéndose en un destacado experto en mecánica de suelos y, más tarde, aceptó una cátedra en la Universidad Técnica de Dinamarca . Su madre, Elsebeth Brinch Hansen (de soltera Ring), era hija del compositor danés Oluf Ring y trabajó como peluquera antes de casarse. [1]

Brinch Hansen asistió a Skt. Jørgens Gymnasium y luego estudió ingeniería eléctrica en la Universidad Técnica de Dinamarca, donde buscó un área que "todavía estaba en su fase pionera" con la creencia de que "si se estaba enseñando una materia, probablemente ya era demasiado tarde para hacer contribuciones fundamentales". ". [1] [2] Después de una pasantía estudiantil de siete semanas en el Laboratorio Hursley de IBM en Inglaterra, decidió dedicar su carrera a las computadoras. Inicialmente centrado en la construcción de computadoras, la lectura de un libro sobre el proyecto IBM 7030 Stretch que describía la organización de las computadoras desde el punto de vista de un programador [3] reenfocó su interés en convertirse en arquitecto de computadoras. [1]

Región central

Per Brinch Hansen a los 29 años, en el laboratorio de informática RC 4000 (1967)
A los 29 años, en el laboratorio de informática RC 4000 (1967)

Después de completar una Maestría en Ciencias en ingeniería electrónica en 1963, Brinch Hansen consiguió un trabajo en Regnecentralen , entonces una institución de investigación dependiente de la Academia Danesa de Ciencias Técnicas (Akademiet for de Tekniske Videnskaber), trabajando en el grupo de compiladores, dirigido por Peter Naur. y Jørn Jensen . [2] Allí, su primer proyecto importante fue escribir un analizador para un compilador COBOL para la computadora Siemens 3003.

Posteriormente, escribió un sistema de archivos para ser utilizado durante la ejecución de los programas COBOL compilados, observando posteriormente: [1]

Ahora entiendo que en realidad era un pequeño sistema operativo que yo había programado. Sin embargo, a mediados de la década de 1960, todavía no se entendía claramente la línea divisoria entre la implementación del lenguaje y los sistemas operativos.

En 1966, Brinch Hansen se trasladó al grupo de hardware de Henning Isaksson en Regnecentralen, que entonces era una empresa con accionistas. Junto con Peter Kraft, definió la arquitectura informática y el conjunto de instrucciones para la tercera computadora de Regnecentralen, la RC 4000, utilizando ALGOL 60 como lenguaje de descripción de hardware para producir una especificación formal .

Sin experiencia en multiprogramación , utilizó una copia de Cooperating Sequential Processes [4] que Edsger Dijkstra le había enviado para comprender la sincronización de procesos mediante semáforos , y luego implementó un monitor especializado en tiempo real RC 4000 para usarlo en la gestión de una planta de fertilizantes. Peter Kraft y Charles Simonyi , que todavía era un adolescente, escribieron un intérprete de código p y programas de tareas de registro de datos que se compilaron en código p. [1]

En el verano de 1967, Brinch Hansen dejó el grupo de hardware de Regnecentralen para convertirse en jefe de desarrollo de software RC 4000 , donde dirigió un equipo que incluía a Jørn Jensen, Peter Kraft y Søren Lauesen para definir un sistema de multiprogramación RC 4000 de uso general , con el objetivo de Evite desarrollar un sistema operativo de control en tiempo real personalizado para cada instalación de RC 4000 y admita también el procesamiento por lotes y el tiempo compartido . [1] El sistema resultante no fue un sistema operativo completo, sino un pequeño núcleo que proporcionaba los mecanismos sobre los cuales se podían construir sistemas operativos para diferentes propósitos. [5] En la primavera de 1969, se estaba ejecutando una versión confiable y bien documentada del sistema de multiprogramación RC 4000. [1]

Universidad de Carnegie mellon

A finales de 1970, Brinch Hansen se mudó a Pittsburgh y aceptó una invitación de Alan Perlis para visitar el departamento de informática de la Universidad Carnegie Mellon como investigador asociado, mientras escribía el primer libro de texto sistemático sobre los principios de los sistemas operativos. [1] [2] Durante este tiempo, en la Escuela de Verano de 1971 en Marktoberdorf y en un simposio en Belfast , Brinch Hansen, Tony Hoare y Dijkstra comenzaron a discutir ideas que evolucionaron hasta convertirse en el concepto de monitor . En la primavera de 1972, después de leer sobre el concepto de clase inventado por Ole-Johan Dahl y Kristen Nygaard para Simula 67, Brinch Hansen completó su texto con un capítulo sobre protección de recursos que proponía la primera notación de monitor, utilizando clases compartidas. [6] En 1973, se publicó Principios del sistema operativo , convirtiéndose en el primer libro de texto completo sobre sistemas operativos. [7]

Instituto de Tecnología de California

En el Taj Mahal, tras asistir a una conferencia en Bombay (1975)

En julio de 1972, Brinch Hansen se incorporó a la facultad del Instituto de Tecnología de California (Caltech) como profesor asociado de informática, donde comenzó a trabajar en la definición de un lenguaje de programación con procesos y monitores concurrentes. En abril de 1974, distribuyó un informe técnico sobre Concurrent Pascal . [1] [2] En enero de 1975 se publicó un compilador de Pascal concurrente para el PDP 11/45 , escrito por el estudiante de doctorado de Brinch Hansen, Al Hartmann. [8] Posteriormente, Brinch Hansen comenzó a escribir sistemas operativos modelo en Pascal concurrente, para evaluar el idioma. En mayo de 1975, completó Solo, un sistema operativo de usuario único para el desarrollo de programas Pascal concurrentes. A continuación, reescribió el programador en tiempo real RC 4000 original en Concurrent Pascal, y tardó tres días en escribirlo y tres horas de tiempo de máquina para probarlo sistemáticamente. [6]

Cuando el departamento de informática de Caltech cambió su enfoque hacia la ingeniería informática y se alejó de la programación, Brinch Hansen decidió irse, en lugar de buscar un puesto permanente allí. [1]

Universidad del Sur de California

En 1976, Brinch Hansen eligió la Universidad del Sur de California (USC) para su siguiente puesto, para que su familia pudiera permanecer en su casa de Altadena . Se unió a la facultad como profesor titular titular y primer presidente de un departamento de informática recién creado, y dirigió los esfuerzos para identificar y atraer profesores de primer nivel para construir un departamento de primer nivel. En 1980, el Consejo Nacional de Investigación clasificó el departamento de informática de la USC como uno de los diez mejores de Estados Unidos. [1]

Mientras estaba en la USC, Brinch Hansen escribió su segundo libro, La arquitectura de programas concurrentes, basado en su trabajo desarrollando sistemas operativos con Concurrent Pascal. [2] Publicado en 1977, fue el primer libro sobre programación concurrente. [9] En 1978, Brinch Hansen se convirtió en el primer científico informático en recibir el título de Doctor Technices, la más alta distinción académica dentro de la ingeniería y las ciencias tecnológicas en Dinamarca, [10] por el trabajo documentado en The Architecture of Concurrent Programs . Más tarde, en 1978, Brinch Hansen publicó el concepto de lenguaje de Procesos Distribuidos, proponiendo el uso de llamadas a procedimientos remotos para sincronizar procesos que se ejecutan a través de una red de microcomputadoras. [11]

También en 1978, LJ Sevins y Steve Goings de Mostek visitaron a Brinch Hansen en la USC, donde describió una arquitectura multiprocesador de bajo costo. Mostek inició un proyecto para implementar dicho multiprocesador, con Brinch Hansen trabajando como consultor. [1] Brinch Hansen desarrolló un nuevo lenguaje de programación concurrente, Edison, para el proyecto. [12] Al igual que con el proyecto RC 4000, Edison también se utilizó como lenguaje de especificación formal para el hardware. Mostek puso en funcionamiento un multiprocesador inicial de 4 nodos y Brinch Hansen escribió un compilador Edison portátil en un PDP 11/55, pero poco después, United Technologies adquirió Mostek [13] y canceló el proyecto. En 1982, Brinch Hansen trasladó el sistema Edison a una computadora personal (PC) IBM y luego publicó su tercer libro, Programación de una computadora personal . [14]

En 1982, Brinch Hansen fue nombrado el primer profesor Henry Salvatori de Ciencias de la Computación en la USC. [1]

Universidad de Copenhague

En 1984, sintiendo nostalgia por Dinamarca después de 14 años en el extranjero, Brinch Hansen dejó la USC y se unió a la facultad de la Universidad de Copenhague como profesor de datalogía . [1] En 1985, fue elegido miembro del Instituto de Ingenieros Eléctricos y Electrónicos (IEEE). [15] Más tarde, en 1985, se publicó su cuarto libro, Brinch Hansen sobre compiladores Pascal , que utilizó para su propio curso de compiladores. [dieciséis]

Mientras diseñaba un sistema operativo multicomputadora para la empresa danesa GN Elmi, Brinch Hansen concluyó que necesitaba un nuevo lenguaje, esta vez aprovechando el paradigma de transmisión de mensajes del CSP de Hoare . [1] El lenguaje resultante, Joyce , eliminó una limitación importante de CSP al introducir la recursividad paralela . [17] Brinch Hansen desarrolló una implementación portátil en una PC IBM. [1]

Universidad de Siracusa

Per Brinch Hansen de vacaciones en Washington, DC (1990)
De vacaciones en Washington, DC (1990)

Después de descubrir que ni él ni su familia se sentían como en casa en Dinamarca, Brinch Hansen decidió regresar a Estados Unidos, pero descubrió que su estatus migratorio les obligaba a hacerlo muy rápidamente. Brinch Hansen se puso en contacto con John Reynolds en la Universidad de Syracuse y en 1987 se incorporó a la facultad como profesor distinguido. [1]

Trabajando con su alumno Rangachari Anand, Joyce fue trasladado a un multiprocesador Encore Multimax 320 en el Centro de Arquitecturas Paralelas del Noreste de SU. Sin embargo, al reconocer las limitaciones de escala de los multiprocesadores, Brinch Hansen buscó una multicomputadora adecuada para seguir trabajando. Al adquirir una superficie de computación Meiko en 1989, comenzó a experimentar con aplicaciones científicas desarrollando programas paralelos para el método de Householder (reducción) y luego la simulación de n cuerpos como ejercicios de aprendizaje, y se sorprendió al descubrir que ambos programas tenían estructuras de control casi idénticas. Concluyendo que ambos se ajustan a un "paradigma de todos los pares", luego se centró en explorar estructuras de algoritmos paralelos reutilizables que denominó "paradigmas de programación" o "programas genéricos" (más tarde, conocidos popularmente como " patrones de diseño "). [1] En 1995, se publicó el quinto libro de Brinch Hansen, Studies in Computational Science: Parallel Programming Paradigms , [18] con programas reescritos en SuperPascal , un lenguaje de publicación completamente implementado que creó para algoritmos paralelos. [19]

Últimos años

En sus últimos años, Brinch Hansen publicó una retrospectiva de sus artículos más importantes, The Search for Simplicity (1996), [20] un texto para un curso de programación para no especialistas, Programming for Everyone in Java (1999), [21 ] una retrospectiva sobre la evolución de los sistemas operativos, Sistemas operativos clásicos: del procesamiento por lotes a sistemas distribuidos (2001), [22] y una retrospectiva sobre la evolución de la programación concurrente, El origen de la programación concurrente: de semáforos a llamadas a procedimientos remotos ( 2002). [23] Él mismo publicó unas memorias en 2004, A Programmer's Story: The Life of a Computer Pioneer , en su sitio web. [1]

En 2002, Brinch Hansen recibió el premio IEEE Computer Pioneer Award "Por el desarrollo pionero en sistemas operativos y programación concurrente, ejemplificado por el trabajo en el sistema de multiprogramación RC 4000, monitores y Pascal concurrente". [15]

El 31 de julio de 2007, Brinch Hansen murió, poco después de que le diagnosticaran un cáncer terminal. [24]

Vida personal

Brinch Hansen conoció a su esposa Milena (de soltera Hrastar) en un viaje de estudios a Yugoslavia en 1962. Se casaron en 1965 y tuvieron dos hijos, su hija Mette y su hijo Thomas. [1]

Contribuciones e influencia científica

En una carrera que abarca cinco décadas, Brinch Hansen hizo contribuciones fundamentales en las áreas de sistemas operativos, computación concurrente y computación paralela y distribuida que influyeron en la configuración del desarrollo de esos campos y su avance desde técnicas ad hoc hasta disciplinas de ingeniería sistemática. [15] La influencia de su trabajo se vio amplificada por su "búsqueda incesante de la simplicidad", [15] su insistencia en la claridad, escribiendo y reescribiendo sus artículos muchas veces antes de publicarlos, [20] convirtiéndose en "uno de los mejores explicadores del mundo". business" [25] y su compromiso de probar conceptos en sistemas de trabajo: Brinch Hansen implementó y distribuyó sistemas de trabajo para los nuevos conceptos que desarrolló, señalando:

No es raro que un informático haga una propuesta sin comprobar si es buena en la práctica. Después de pasar 3 días redactando la propuesta del monitor y 3 años implementándola, puedo entender muy bien esta tentación. Quizás también sea a veces una respuesta humana a la tremenda presión sobre los profesores universitarios para obtener financiación y reconocimiento rápidamente. Sin embargo, debemos recordar que en ingeniería sólo una cosa cuenta: ¿funciona (no "podría funcionar" o "no sería bueno si funcionara")? [26]

Sistemas operativos

El sistema de multiprogramación RC 4000 introdujo el concepto ahora estándar de núcleo de sistema operativo y la separación de mecanismo y política en el diseño del sistema operativo. Las arquitecturas de microkernel modernas tienen sus raíces en la arquitectura de núcleo extensible del RC 4000. [15] La mejora del rendimiento del microkernel fue un tema importante en la investigación de sistemas operativos durante tres décadas después del RC 4000.

El texto de Brinch Hansen, Principios del sistema operativo , fue el primer libro de texto completo sobre sistemas operativos. Finalmente se publicó en seis idiomas (inglés, japonés, alemán, checo, polaco y serbocroata), [1] permaneció impreso durante décadas, y años después de que el sistema RC 4000 que describía quedara obsoleto. En 1990, casi dos décadas después de su publicación inicial, PJ Plauger lo revisó y dijo:

Este libro está terriblemente anticuado. Describe muchos de los algoritmos del sistema operativo del RC4000. El RC4000 es lento, pequeño y carece de periféricos según los estándares actuales. Los algoritmos se presentan en un subconjunto de Pascal. ¿Por qué molestarse? La respuesta es que Brinch Hansen es uno de los mejores explicadores del sector. Explica las cosas claramente y al grano. Tiene buen ojo para el principio general detrás del ejemplo, pero logra evitar abstracciones innecesarias. Después de todos estos años, sigue siendo un placer leerlo. [25]

En 2005, los miembros de la Association for Computing Machinery (ACM) votaron Principios del sistema operativo como uno de los 25 libros clásicos principales, en una encuesta para elegir libros clásicos agotados para agregarlos a la Biblioteca digital ACM. Los Principios del Sistema Operativo ocuparon el puesto 15 en la encuesta, apareciendo en el 8,8% de las papeletas. [27] Ahora está disponible en la Biblioteca Digital ACM.

Utilizando Concurrent Pascal, Brinch Hansen demostró que era factible implementar completamente sistemas operativos en lenguajes de alto nivel y que al hacerlo se reducía el esfuerzo de desarrollo en uno o dos órdenes de magnitud. [28] Además, se podrían publicar sistemas operativos completos y comprenderlos en su totalidad. Brinch Hansen hizo precisamente eso en The Architecture of Concurrent Programs , lo que llevó a Roy Maddux y Harlan Mills a declarar:

La segunda parte del libro es realmente notable. Aquí se ve un sistema operativo completo, con cada línea de programa abierta a escrutinio. No hay ningún misterio oculto, y tras estudiar ejemplos tan extensos, el lector siente que podría abordar trabajos similares y que podría cambiar el sistema a su antojo. Nunca antes habíamos visto un sistema operativo mostrado con tanto detalle y de una manera tan susceptible de modificación. [29]

Programación concurrente

Brinch Hansen y Hoare desarrollaron el concepto de monitor. Brinch Hansen publicó la primera notación de monitor, adoptando el concepto de clase de Simula 67, [7] e inventó un mecanismo de cola. [30] Hoare refinó las reglas de reanudación del proceso. [31] Brinch Hansen creó la primera implementación de monitores, en Concurrent Pascal. [6] En 1990 se habían creado más de una docena de lenguajes adicionales basados ​​en monitores: Simone, Modula , CSP/k, CCNPascal, PLY, Pascal Plus, Mesa, SB-Mod, Concurrent Euclid , Pascalc, Concurrent C, Emerald, Real. -tiempo Euclides, Pascal-FC, Turing Plus , Predula. [6]

Concurrent Pascal fue el primer lenguaje de programación concurrente: [29] el primer lenguaje desarrollado específicamente para programación concurrente y, lo que es más importante, el primer lenguaje que demostró que era posible incorporar funciones seguras [32] de alto nivel para la concurrencia, donde el El sistema podría garantizar que los procesos accedan únicamente a conjuntos disjuntos de variables y no interfieran entre sí de manera dependiente del tiempo. [23] Hoare lo describió como "un ejemplo sobresaliente de lo mejor de la investigación académica en esta área". [33]

El código fuente y portátil para Concurrent Pascal y el sistema operativo Solo se distribuyó a al menos 75 empresas y 100 universidades en 21 países, lo que resultó en su adopción, portabilidad y adaptación generalizadas tanto en la industria como en el mundo académico. [6] Greg Andrews observó que Concurrent Pascal y sus monitores "influyeron mucho en la mayoría de las propuestas de lenguaje concurrentes posteriores". [6]

The Architecture of Concurrent Programs de Brinch Hansen fue el primer libro sobre programación concurrente [29] y finalmente se publicó en tres idiomas (inglés, japonés y alemán). [1] Más de una docena de años después de su publicación, PJ Plauger observó:

Sin duda, se han realizado mejoras en los últimos doce años. Tenemos mejores algoritmos de sincronización y lenguajes más sofisticados (si no necesariamente mejores) con control de concurrencia. Pero no encontrará una mejor descripción general de la programación concurrente que este libro. Al menos yo no he encontrado ninguno. [25]

En 2005, los miembros de ACM votaron La arquitectura de los programas concurrentes como uno de los 25 libros clásicos principales, ubicándolo en el puesto 18 en la encuesta y apareciendo en el 8% de las papeletas. [27] Ahora está disponible en la Biblioteca Digital ACM.

Computación distribuida y llamada a procedimiento remoto.

Las llamadas a procedimientos remotos utilizadas en los sistemas operativos modernos tienen sus raíces en el sistema de multiprogramación RC 4000, [15] que utilizaba un protocolo de comunicación de solicitud-respuesta para la sincronización de procesos. [34]

En su artículo de 1978 sobre procesos distribuidos, Brinch Hansen propuso un lenguaje para computación distribuida basado en solicitudes externas que consisten en llamadas a procedimientos entre procesos. [35] Esto más tarde se conoció en el contexto del sistema operativo como llamada a procedimiento remoto. [36]

Más tarde, Brinch Hansen desarrolló dos lenguajes que extendían el paradigma de paso de mensajes CSP de Hoare con recursividad paralela, [17] [19] y mostró cómo implementarlos de manera eficiente. [37]

Honores y premios

Lenguajes de programación

Cotizaciones

Publicaciones

Libros
Artículos seleccionados

Ver también

Referencias

  1. ^ abcdefghijklmnopqrstu contra Brinch Hansen, Per (2004). La historia de un programador: la vida de un pionero de la informática.
  2. ^ abcde Haigh, Thomas (19 de febrero de 2003). "Por Brinch Hansen" (PDF) . Anales IEEE de la historia de la informática . 25 : 80–83. doi :10.1109/MAHC.2003.1179888. S2CID  2279629.
  3. ^ Buchholz, Werner (1962). Planificación de un sistema informático: extensión del proyecto (PDF) . Archivado desde el original (PDF) el 3 de abril de 2017 . Consultado el 14 de diciembre de 2015 .
  4. ^ Dijkstra, Edsger (septiembre de 1965). "Procesos secuenciales cooperativos". Universidad Tecnológica, Eindhoven, Países Bajos .
  5. ^ Brinch Hansen, Per (abril de 1970). «El núcleo de un sistema de multiprogramación» (PDF) . Comunicaciones de la ACM . 13 (4): 238–241. CiteSeerX 10.1.1.105.4204 . doi :10.1145/362258.362278. S2CID  9414037. 
  6. ^ abcdef Brinch Hansen, Per (abril de 1993). «Monitores y Pascal Concurrente: una historia personal» (PDF) . 2do Congreso ACM sobre Historia de los Lenguajes de Programación .
  7. ^ ab Brinch Hansen, Per (1973). Principios del sistema operativo . Prentice Hall. ISBN 978-0-13-637843-3.
  8. ^ Hartmann, Alfred C. (1977). "Un compilador Pascal concurrente para minicomputadoras ". Apuntes de conferencias sobre informática. vol. 50. Heidelberg, Alemania: Apuntes de conferencias de Springer-Verlag sobre informática. doi :10.1007/3-540-08240-9. ISBN 978-3-540-08240-8. S2CID  2960929.
  9. ^ ab Brinch Hansen, Per (1977). La arquitectura de los programas concurrentes . Prentice Hall. ISBN 978-0-13-044628-2.
  10. ^ "El Grado Clásico en Técnicas Doctoras (Dr.techn.) - DTU". Universidad Técnica de Dinamarca . Consultado el 14 de diciembre de 2015 .
  11. ^ Brinch Hansen, Per (noviembre de 1978). "Procesos distribuidos: un concepto de programación concurrente" (PDF) . Comunicaciones de la ACM . 21 (11): 934–941. CiteSeerX 10.1.1.107.3108 . doi :10.1145/359642.359651. S2CID  11610744. 
  12. ^ Brinch Hansen, Per (abril de 1981). "El diseño de Edison" (PDF) . Software: práctica y experiencia .
  13. ^ Lueck, Thomas J. (18 de octubre de 1985). "Mostek, gran fabricante de chips, cállate". Los New York Times . ISSN  0362-4331 . Consultado el 15 de diciembre de 2015 .
  14. ^ Brinch Hansen, Per (1982). Programación de una computadora personal . Prentice Hall. ISBN 978-0-13-730267-3.
  15. ^ abcdef "Por Brinch Hansen". Computer.org . Sociedad de Computación IEEE . Consultado el 14 de diciembre de 2015 .
  16. ^ Brinch Hansen, Per (1985). Brinch Hansen sobre los compiladores Pascal . Prentice Hall. ISBN 978-0-13-083098-2.
  17. ^ ab Brinch Hansen, Per (enero de 1987). "Joyce: un lenguaje de programación para sistemas distribuidos" (PDF) . Software: práctica y experiencia .
  18. ^ Brinch Hansen, Per (1995). Estudios en Ciencias Computacionales: Paradigmas de Programación Paralela . Prentice Hall. ISBN 978-0-13-439324-7.
  19. ^ ab Brinch Hansen, Per (agosto de 1994). "SuperPascal: un lenguaje de publicación para computación científica paralela" (PDF) . Simultaneidad: práctica y experiencia .
  20. ^ abc Brinch Hansen, Per (1996). La búsqueda de la simplicidad . Prensa de la Sociedad de Computación IEEE. ISBN 978-0-81-867566-9.
  21. ^ Brinch Hansen, Per (1999). Programación para todos en Java . Springer-Verlag. ISBN 978-0-387-98683-8.
  22. ^ Brinch Hansen, Per (2001). Sistemas operativos clásicos: del procesamiento por lotes a los sistemas distribuidos . Springer-Verlag. ISBN 978-0-387-95113-3.
  23. ^ ab Brinch Hansen, Per (2002). El origen de la programación concurrente: de los semáforos a las llamadas a procedimientos remotos . Springer-Verlag. ISBN 978-0-387-95401-1.
  24. ^ "LC Smith lamenta el fallecimiento del profesor Per Brinch Hansen". SU Ingeniería e Informática . Archivado desde el original el 22 de diciembre de 2015 . Consultado el 14 de diciembre de 2015 .
  25. ^ abc Plauger, PJ (febrero de 1990). "Lo último". Programación de sistemas integrados .
  26. ^ Brinch Hansen, Per (abril de 1976). "Innovación y curiosidades en ingeniería de programas (Editorial invitada)". Software: práctica y experiencia .
  27. ^ ab Patterson, David (marzo de 2006). "Reviviendo sus libros de CS favoritos". Comunicaciones de la ACM . 49 (3): 31. doi :10.1145/1118178.1118213. S2CID  1537883.
  28. ^ Brinch Hansen, Per (abril de 1976). "El sistema operativo Solo: un programa Pascal concurrente" (PDF) . Software: práctica y experiencia .
  29. ^ abc Maddux, R. y Mills, H. (mayo de 1979). "Revisión de la arquitectura de programas concurrentes". Computadora . 12 (5): 102. doi :10.1109/mc.1979.1658762.
  30. ^ Brinch Hansen, Per (julio de 1972). "Multiprogramación estructurada (artículo invitado)". Comunicaciones de la ACM . 15 (7): 574–578. doi : 10.1145/361454.361473 . S2CID  14125530.
  31. ^ Hoare, CAR (octubre de 1974). "Monitores: un concepto estructurante del sistema operativo". Comunicaciones de la ACM . 17 (10): 549–557. CiteSeerX 10.1.1.24.6394 . doi :10.1145/355620.361161. S2CID  1005769. 
  32. ^ Hoare, COCHE (1974). "Consejos sobre el diseño de lenguajes de programación". En Confiabilidad de los sistemas informáticos, C. Bunyan, Ed. : 505–534.
  33. ^ Hoare, COCHE (1976). "Consejos sobre el diseño de un lenguaje de programación para comando y control en tiempo real". En Software en tiempo real: Informe sobre el estado del arte internacional, JP Spencer, Ed. : 685–699.
  34. ^ Brinch Hansen, Per (1969). Software informático RC 4000: Sistema de multiprogramación (PDF) . Copenhague, Dinamarca: Regnecentralen.
  35. ^ Brinch Hansen, Per (noviembre de 1978). "Procesos distribuidos: un concepto de programación concurrente" (PDF) . Comunicaciones de la ACM . 21 (11): 934–941. CiteSeerX 10.1.1.107.3108 . doi :10.1145/359642.359651. S2CID  11610744. 
  36. ^ Andrews, Greg (1991). Programación concurrente: principios y práctica . Redwood City, California: Benjamin Cummings. ISBN 978-0-80-530086-4.
  37. ^ Brinch Hansen, Per (diciembre de 1995). "Recursividad paralela eficiente" (PDF) . Avisos SIGPLAN .

enlaces externos