Nuvola apps important.png Attention, suite à une faille de sécurité, les liens vers les serveurs d'exploration ont été désactivés. Des actions de régénération sont en cours et quelques serveurs sont à nouveau accessibles.

-

CHIR Rennes (2004) Bétourné

De Wicri Informatique
Révision datée du 13 juin 2011 à 08:05 par imported>Jacques Ducloy (Contexte institutionnel et naissance du projet)
logo travaux article en cours d'installation
Titre
Ésope : une étape de la recherche française en systèmes d'exploitation (1968-1972)
Auteurs
Claude Bétournéi, Jean Ferriéii, Claude Kaiseriii, Sacha Krakowiakiv et Jacques Mossièrev.
Affiliations
  • i - Université Paul Sabatier, IRIT
  • ii - Université des Sciences et Techniques du Languedoc, LIRMM
  • iii - Conservatoire National des Arts et Métiers, Cedric
  • iv - Université Joseph Fourier, IMAG-LSR et INRIA
  • v - Institut National Polytechnique de Grenoble, IMAG-LSR et INRIA
Résumé
Cet article retrace l'histoire d'Ésope, un projet de système d'exploitation en temps partagé, mené à l'IRIA entre 1968 et 1972. Il présente la place d'Ésope dans le contexte national et international de l'époque, résume et commente les principaux choix qui ont guidé sa conception et sa réalisation, et propose une analyse critique des aspects scientifiques du projet, de sa gestion, et de ses retombées.
Résumé (anglais)
This paper is a historical account of the Ésope project, an experimental time-sharing system developed at IRIA between 1968 and 1972. The following aspects are presented: the situation of Ésope in the national and international context of the period; a summary and comment of its main design and implementation decisions; and a critical assessment of the scientific and management aspects of the project, and of its follow-ups.
In
Article publié danns les Actes du 9ème Colloque sur l'histoire de l'informatique et des télécommunications (CHIR 2004), Rennes, 16-18 novembre 2004

Origines et contexte initial

Le projet Ésope a été lancé en mi-1968, dans une période marquée par une importante transformation du paysage informatique français et par une intense activité de recherche dans le domaine des systèmes d'exploitation. L'orientation du projet a été influencée par ces deux aspects de son contexte initial, que nous rappelons brièvement avant de développer ses motivations et ses objectifs.

Contexte scientifique

La période 1966-68 est une phase cruciale de l'histoire des systèmes d'exploitation. On peut dire qu'en l'espace de 2 ou 3 ans ce domaine passe d'un stade de savoir-faire technique (d'ailleurs fort développé) à celui de discipline scientifique. Pour la première fois, une conférence patronnée par l'ACM s'intitule en 1967 Symposium on Operating Systems Principles ; ce sera la première édition de la série SOSP, aujourd'hui conférence bisannuelle de grand prestige dont la vingtième édition aura lieu en 2005. Le numéro de mai 1968 des Communications of the ACM reprend les meilleures communications de ce symposium. Il contient entre autres l'article de Dijkstra sur le système THE [26], qui aura une influence profonde et durable.

Au cours de ces années auront été élaborés les principes de base de la synchronisation (notion de processus, mécanisme des sémaphores), de l'adressage (segmentation), de la protection (première ébauche des capacités), des systèmes de fichiers hiérarchiques. Les premières mémoires paginées sont apparues, et les déboires des premiers systèmes à mémoire virtuelle avec pagination à la demande (écroulement) commencent à être analysés. On connaît quelques prototypes de recherche : THE, déjà cité, à Eindhoven ; CTSS [19] au MIT, précurseur de Multics [20] en cours de développement ; Genie [39] à Berkeley, bientôt suivi de CAL/TSS, MTS à l'université de Michigan. Le domaine est donc foisonnant, et la mise en forme de ces connaissances nouvelles est elle-même une activité proche de la recherche (voir [22]).

La conception du système Ésope a été influencée par tous ces travaux. Nous y revenons en détail dans la section 2.

Les systèmes industriels qui vont intégrer certains de ces progrès n'auront en revanche pas d'influence sur Ésope : ils utilisent des architectures trop éloignées du Sigma 7 (notre machine, voir 2.1) comme le Burroughs B5500 ou ne sont pas encore dévoilés en 1968. IBM travaille sur CP/67, encore expérimental, qui introduit les concepts de machine virtuelle et d'hyperviseur, et qui sera le support du très populaire CMS, lui-même ancêtre de VM/370. BBN (Bolt Beranek and Newman Inc.) développe Tenex sur un DEC PDP-10 [7]. Bull, en France, prépare l'architecture HB 64 et le système GCOS 64 qui s'inspirent de Multics et qui seront annoncés en 1974. Les premiers Unix apparaissent en 1969 aux Bell Labs sur PDP-7 et PDP-9 ; sur PDP-11, Unix est opérationnel en 1971 dans une version va-et-vient (swapping) à la CTSS, mais nous ne devions le découvrir qu'en 1973, après la fin d'Ésope (SOSP 1973, puis CACM [44]).

Contexte institutionnel et naissance du projet

Le plan calcul avait été lancé en fin 1966, avec l'objectif de doter la France des capacités industrielles lui permettant d'être autonome dans le domaine des ordinateurs moyens. Outre son volet industriel, la Compagnie Internationale pour l'Informatique (CII) issue de la fusion des sociétés CAE et SEA, le plan calcul comportait un volet scientifique, l'Institut de Recherche en Informatique et Automatique (IRIA), qui avait pour mission de développer la recherche, la formation, et la diffusion de la connaissance scientifique et technique dans ses domaines de compétence. Mis en place courant 1967, l'IRIA était organisé en six "Directions de Recherche" largement autonomes. La Direction "Structure et Programmation des Calculateurs", sous la conduite de l'ingénieur en chef du génie maritime Henri Boucher, commençait à recruter ses membres en début 1968.

Le projet initial de la Direction de Recherche était de doter l'IRIA d'un système de calcul interactif (on disait alors "conversationnel") multi-utilisateurs. Il faut se souvenir que ce mode de travail était à l'époque relativement peu développé, et que les terminaux étaient essentiellement des télétypes ; les consoles graphiques étaient une ressource rare, coûteuse, difficile à programmer, et il était prévu que nous en recevions une. Le langage PL/1, considéré à l'époque comme "universel", avait été choisi comme langage unique d'interaction.

La mission étant ainsi fixée, il fallait définir un programme de travail. L'IRIA disposait en mi-1968 d'un ordinateur CAE 90-80, machine de conception ancienne, qui arrivait en bout de course. La machine qui nous était promise, la CII 10070, avait beaucoup plus d'attraits (voir 2.1) ; mais sa date de livraison était incertaine, et éloignée d'au moins un an (elle ne devait arriver en fait que 20 mois plus tard). Son environnement logiciel nous était également inconnu ; nous savions, sans plus de précisions, que la CII travaillait à un système multiprogrammé (mais non en temps partagé), MMP (futur Siris 7).

Les voies d'approche possibles étaient en gros les suivantes.

Références

[1] G. B. Anderson, K. R. Bertran, R.W. Conn, K.O. Malmquist, R.E. Millstein, and S. Tokubo. Design of a Time-Sharing System Allowing Interactive Graphics. In Proc. ACM National Conference, pages 1–6, 1968.
[2] B. W. Arden, B. A. Galler, T. C. O'Brien, and F. H. Westervelt. Program and Addressing Structurein a Time-Sharing Environment. Journal of the ACM, 13(1) : 1–16, January 1966.
[3] G. Baudet, J. Ferrié, C. Kaiser, and J. Mossière. Entrées-sorties dans un système à mémoire virtuelle. In Actes du Congrés AFCET, Grenoble, novembre 1972.
[4] Gérard Baudet. Étude du comportement d'un tambour soumis à des demandes de transfert groupées. Thèse de 3-ème cycle, Université Pierre et Marie Curie, Paris-6, 1973.
[5] Jacques Bellino. Mécanismes de base dans les systèmes superviseurs : conception et réalisation d'un système à accés multiples. Thèse de doctorat ès sciences appliquées, Université de Grenoble, 1973.
[6] F. Blaizot, L. Blaizot, B. Lorho, and M. Vatoux. Organisation du compilateur interpréteur Cpl/1. In Actes du Congrés AFCET, Paris, avril 1970.
[7] Daniel G. Bobrow, Jerry D. Burchfiel, Daniel L. Murphy, and Raymond S. Tomlinson. Tenex, a Paged Time Sharing System for the PDP-10. Communications of the ACM, 15(3) : 135{143, March 1972. [Version étendue d'une communication présentée au Third ACM Symposium on Operating Systems Principles, Stanford University (CA, USA), oct. 1971].
[8] J. Boulenger and M. Kronental. An Experience in System Programming Using a PL360-like Lan:guage. In Proceedings of the IFIP WG-2.4 Meeting, La Grande Motte, May 1974.
[9] P. Boullier, J. Gros, P. Janc�ene, A. Lemaire, F. Prusker, and �E. Saltel. Métavisu : A General Purpose Graphic System. In IFIP Working Conference on Graphic Languages, Vancouver, Canada, 1972. North-Holland.
[10] Alexandre Brandwajn. Équivalence et décomposition dans les modèles à files d'attente, et leur application à l'évaluation des performances des systèmes d'exploitation. Thèse de doctorat ès sciences, Université Pierre et Marie Curie, Paris-6, 1975.
[11] Barbara S. Brawn and Frances G. Gustavson. Program Behavior in a Paging Environment. In Proceedings of the AFIPS Fall Joint Computer Conference, pages 1019{1032, 1968.
[12] C. Bétourné, J. Boulenger, J. Ferrié, C. Kaiser, S. Krakowiak, and J. Mossière. Process Management and Resource Sharing in the Multiaccess System Esope. Communications of the ACM, 13(12) : 727{733, December 1970. [Version étendue d'une communication présentée au Second ACM Symposium on Operating Systems Principles, Princeton (NJ, USA), oct. 1969].
[13] C. Bétourné, J. Boulenger, J. Ferrié, C. Kaiser, S. Krakowiak, and J. Mossière. Trois articles : Présentation générale du système Ésope ; Espace virtuel dans le système Ésope ; Allocation de ressources dans le système Ésope. In Actes du Congrés AFCET, avril 1970.
[14] C. Bétourné, J. Ferrié, C. Kaiser, S. Krakowiak, and J. Mossière. System Design and Implementation using Parallel Processes. In W. H. Freeman, editor, Information Processing, Proceedings of IFIP Congress 71, TA-3, pages 31{36, Ljubljana, August 1971. North-Holland, 1972.
[15] C. Bétourné and S. Krakowiak. Simulation de l'allocation de ressources dans un système conversationnel à mémoire virtuelle paginée. Revue RAIRO-Informatique, B-1 : 5{10, février 1974. [Version étendue d'une communication présentée au Congrés AFCET, Grenoble, nov. 1972].
[16] C. Bétourné and S. Krakowiak. Mesures sur un système conversationnel. Revue RAIRO-Informatique, B-2 : 5{15, juillet 1975.
[17] Keith G. Calkins. The Computer That Will Not Die : The SDS Sigma 7, 1984.
http ://www.andrews.edu/~calkins/profess/SDSigma7.htm.
[18] R. Chevance. Le projet Y. In Quatrième Colloque sur l'histoire de l'informatique, Rennes, novembre 1995.
http ://www.feb-patrimoine.com/histoire/english/projet y.pdf.
[19] Fernando J. Corbat�o, Marjorie Merwin-Daggett, and Robert C. Daley. An Experimental Time-Sharing System. In Proceedings of the AFIPS Fall Joint Computer Conference, Part 1, pages 335{344, 1962. Reprinted in Programming Systems and Languages (S. Rosen, ed.), pages 683{698, McGraw-Hill, 1967.
[20] Fernando J. Corbat�o and Victor A. Vyssotsky. Introduction and Overview of Proceedings of the AFIPS Fall Joint Computer Conference, Part 1, volume 27, pages 185{196, 1965.
[21] Corna�on (nom collectif). Syst�emes informatiques r�epartis { concepts et techniques. Dunod, 1981.
[22] Crocus (nom collectif). Crocus, une �etape dans l'enseignement des syst�emes d'exploitation. In Troisi�eme Colloque sur l'histoire de l'informatique, Sophia Antipolis, octobre 1993.
http ://cnum.cnam.fr/RUB/histcrocus.pdf.
[23] Peter J. Denning. Thrashing : Its Causes and Prevention. In Proceedings of the AFIPS Fall Joint Computer Conference, pages 915{922, 1968.
[24] Jack B. Dennis. Segmentation and the Design of Multiprogrammed Computer Systems. Journal of the ACM, 12(4) : 589{602, October 1965.
[25] E. W. Dijkstra. Cooperating sequential processes. In F. Genuys, editor, Programming Languages : NATO Advanced Study Institute, pages 43{112. Academic Press, 1968. [Initialement publi�e comme EWD-123, Lecture notes, Eindhoven, 1965]
http ://www.cs.utexas.edu/users/EWD/ewd01xx/EWD123.PDF.
[26] E. W. Dijkstra. The Structure of the \THE" Multiprogramming System. Communications of the ACM, 11(5) : 341{346, May 1968.
[27] Jean Ferrié. La gestion des processus dans un système à partage de ressources. Thèse de docteur-ingénieur, Université Paul Sabatier, Toulouse, 1971.
[28] P. Freeman. Software Systems Principles : A Survey. Science Research Associates, 1975. cit�e pp. 541, 631.
[29] E. Gelenbe and C. Kaiser, editors. Operating Systems : Proceedings of an International Symposium, volume 16 of LNCS, IRIA, Rocquencourt, April 1974. Springer Verlag.
[30] C. Girault. Un des syst�emes de multiprogrammation r�ealis�es �a l'Institut de Programmation de la facult�e des sciences de Paris. RIRO, B-2 : 3{18, 1971.
[31] S. Guiboud-Ribaud and J. Briat. Espace d'adressage et espace d'ex�ecution du syst�eme GEMAU. In Gelenbe and Kaiser [29], pages 131{167.
[32] A. N. Habermann. Introduction to Operating System Design. Science Research Associates, 1976. 372 pp., cit�e pp. 84{85.
[33] C. Kaiser and S. Krakowiak. Analyse de quelques pannes d'un syst�eme d'exploitation. In Gelenbe and Kaiser [29], pages 188{207.
[34] C. Kaiser and S. Krakowiak. Design and Implementation of a Time-sharing System : A Critical Appraisal. In J. L. Rosenfeld, editor, Information Processing, Proceedings of IFIP Congress 71, pages 247{251, Stockholm, August 1974. North-Holland.
[35] Claude Kaiser. Conception et r�ealisation de syst�emes �a acc�es multiple : gestion du parall�elisme. Th�ese de doctorat �es sciences, Universit�e Pierre et Marie Curie, Paris-6, f�evrier 1973.
[36] Sacha Krakowiak. Conception et r�ealisation de syst�emes �a acc�es multiple : allocation de ressources. Th�ese de doctorat �es sciences, Universit�e Pierre et Marie Curie, Paris-6, f�evrier 1973.
[37] C. J. Kuehner and B. Randell. Demand Paging in Perspective. In Proceedings of the AFIPS Fall Joint Computer Conference, pages 1011{1017, 1968.
[38] B. W. Lampson. A Scheduling Philosophy for Multi-processing Systems. Communications of the ACM, 11(5) : 347{359, May 1968.
[39] B. W. Lampson, W. W. Lichtenberger, and M. W. Pirtle. A User Machine in a Time-sharing System. Proceedings of the IEEE, 54(12) : 1766{1774, December 1966. Reprinted in Computer Structures, ed. Bell and Newell, McGraw-Hill, 1971.
[40] A. Lemaire and F. Prusker. Principes de fonctionnement et langage de sp�eci�cation des interactions du syst�eme graphique M�etavisu. In Actes du Congr�es AFCET, Grenoble, novembre 1972.
[41] H. M. Levy and P. H. Lipman. Virtual Memory Management in the VAX/VMS Operating System. IEEE Computer, 15(3) : 35{41, March 1982.
[42] Stuart E. Madnick and John J. Donovan. Operating Systems. McGraw-Hill, 1974. 640 pp., cit�e p.:574.
[43] Jacques Mossi�ere. Allocation de ressources dans les syst�emes �a acc�es multiples. Th�ese de 3-�eme cycle, Universit�e Pierre et Marie Curie, Paris-6, juin 1971.
[44] Dennis W. Ritchie and Ken Thompson. The UNIX Time-Sharing System. Communications of the ACM, 17(7) : 365{375, July 1974. [Version �etendue d'une communication pr�esent�ee au Fourth ACM Symposium on Operating Systems Principles, Yorktown Heights (NY, USA), oct. 1973].
[45] Jean-Paul Rossiensky and Vincent Tixier. A Kernel Approach to System Programming : SAM. In J. T. Tou, editor, Software Engineering, volume 1, pages 205{224. Academic Press, New York, 1969.
[46] Jean-Paul Rossiensky and Vincent Tixier. LP70, a System Programming Language with Parallel Processes. In Proc. International Computing Symposium, pages 492{513, Bonn, Germany, 1970.
[47] M. Rozier, V. Abrossimov, F. Armand, I. Boule, M. Gien, M. Guillemont, F. Herrmann, C. Kaiser, P. L�eonard, S. Langlois, and W. Neuhauser. The Chorus Distributed Operating System. Computing Systems, 1(4) : 305{379, October 1988.
[48] J. H. Saltzer. Tra�c Control in a Multiplexed Computer System. Ph.D. thesis, MIT, July 1966. Tech. Report MAC-TR-30.
[49] Alan C. Shaw. The Logical Design of Operating Systems. Prentice Hall, 1974. 304 pp., cit�e p. 80.
[50] N. H. Shelness, P. D. Stephens, and H. Whit�eld. The Edinburgh Multi-Access System Scheduling and Allocation Procedures in the Resident Supervisor. In Gelenbe and Kaiser [29], pages 293{310.
[51] A. J. Shils. The load leveler. Technical Report RC 2233, IBM T. J.Watson Research Center, October 1968.
[52] Laurent Trilling and Jean-Pierre Verjus. An Attempted De�nition of an Extensible System. ALGOL 68 Implementation, pages 119{139, 1970.
[53] Gerald M. Weinberg. The Psychology of Computer Programming. Van Nostrand Reinhold, 1971.
[54] H. Whit�eld and A. S. Wight. EMAS : Edinburgh Multi-Access System. The Computer Journal, 4 : 331{346, 1974.
[55] Niklaus Wirth. PL360, a Programming Language for the 360 Computers. Journal of the ACM, 15(1) : 37{74, 1968.