SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
SYSTEME D’EXPLOITATION II
Licence Fondamentale SMI, S4
Pr. Abdelkaher AIT ABDELOUAHAD
Département d’Informatique
Faculté des Sciences, Université Chouaib Doukkali
El Jadida
a.abdelkaher@gmail.com
10 Mars 2022
SEII
Préambule
Objectif
Comprendre le fonctionnement système, matériel et logiciel d’un
ordinateur dans son contexte de travail.
Pré-requis
Système d’exploitation I
Programmation en langage C
SEII
Contenu
Introduction générale de système d’exploitation
Les processus
L’ordonnancement des processus
La communication interprocessus
La gestion de la mémoire
Les systèmes de gestion de fichiers
L’introduction à la programmation système
SEII
Qu’est ce qu’un système d’exploitation
Pour définir ce qu’est un SE, il faut examiner l’histoire
=⇒ quels besoins / problèmes doit résoudre un SE ?
SEII
La première génération
En 1938, Konrad Zuse invente un ordinateur qui fonctionne grâce à
des relais électromécaniques : le Z3.
SEII
La première génération
En 1944, l’ordinateur Colossus fut construit par un groupe
d’ingénieurs de Bletchley Park en Angleterre.
SEII
La première génération
Mark I construit par Howard Aiken à Harvard
SEII
La première génération
l’ENIAC par le professeur William Mauchley avec l’un de ses
étudiants, J. Presper Eckert, à l’université de Pennsylvanie
SEII
La première génération
Les ordinateurs utilisaient des tubes à vide ou des relais mécaniques.
Tous étaient très primitifs et lents pour réaliser des calculs simples.
La même équipe concevait, construisait, programmait, administrait
et maintenait chaque machine.
Tout programme était conçu en langage machine absolu, souvent en
basculant des tableaux d’interrupteurs.
Les langages de programmation étaient inconnus (y compris le
langage d’assemblage).
On n’avait jamais entendu parler de système d’exploitation.
Le protocole classique d’utilisation.
Les problèmes codés étaient de simples calculs numériques, ex :
remplir des tables de sinus ou de logarithmes.
SEII
La première génération
Au début des années 1950, le protocole s’est amélioré quelque peu
avec l’introduction des cartes perforées.
Il était devenu possible d’écrire ses programmes sur des cartes et de
les faire lire par la machine au lieu d’utiliser les tableaux
d’interrupteurs.
SEII
La deuxième génération (1955-1965) : transistors et
traitement par lots
L’apparition du transistor au milieu des années 1950 a donné lieu
aux mainframes ou ordinateurs centraux
Enfermées dans des locaux spéciaux climatisés, accessibles
uniquement des opérateurs.
Une séparation nette entre concepteurs, constructeurs, opérateurs,
programmeurs et personnel de maintenance.
Soumission de job (un programme, ou un ensemble de programmes),
en FORTRAN ou en assembleur.
Quand l’ordinateur finissait un job, un opérateur récupérait sur une
imprimante la trace d’exécution correspondante et la stockait dans
la salle des résultats afin que le programmeur la récupère.
=⇒ réfléchir sur la façon de réduire cette perte de temps
SEII
La deuxième génération (1955-1965) : transistors et
traitement par lots
Solution : le système de batch ou de traitement par lots.
L’utilisation d’une machine intermédiaire peu onéreuse comme l’IBM
1401
Un calculateur performant comme le IBM 7094 execute les jobs,
grâce à un programme spécial (l’ancêtre des systèmes d’exploitation
actuels).
SEII
La deuxième génération (1955-1965) : transistors et
traitement par lots
Les gros ordinateurs de la seconde génération étaient utilisés
principalement pour des calculs scientifiques ou d’ingénierie, comme
la résolution d’équations aux dérivées partielles.
Seules les grandes firmes ou établissements publics pouvaient
investir les millions de dollars nécessaires à leur achat.
Ils étaient dans leur grande majorité programmés en FORTRAN et
assembleur.
Les systèmes d’exploitation de l’époque étaient notamment :
FMS (Fortran Monitor System)
IBSYS, le système d’exploitation de l’IBM 7094.
SEII
La troisième génération (1965-1980) : circuits intégrés et
multiprogrammation
Au début des années 1960, la plupart des constructeurs d’ordinateurs
proposaient deux lignes de produits totalement incompatibles :
des ordinateurs qui étaient destinés à des tâches de calculs
numériques scientifiques intensifs, comme le 7094
des ordinateurs orientés caractères qui étaient à vocation plus
commerciale, comme le 1401
Le développement et la maintenance de deux lignes de produits aussi
distinctes présentaient un surcoût important pour les constructeurs.
De nombreux clients demandaient rapidement une machine plus
performante, capable de faire tourner tous leurs programmes plus
rapidement.
SEII
La troisième génération (1965-1980) : circuits intégrés et
multiprogrammation
IBM a tenté de répondre simultanément aux deux types de
problèmes en présentant son system/360.
Le 360 consistait en une série de machines compatibles au niveau
logiciel
Ces machines différaient uniquement au niveau du prix et des
performances
Le 360 était conçu pour gérer aussi bien des applications
scientifiques que commerciales.
Les 360 ont été les premières machines à utiliser des circuits intégrés
IBM a continué de proposer des successeurs compatibles 360, en
utilisant des technologies plus évoluées : 370, 4300, 3080 et 3090 et
la série Z le plus récent descendant de cette ligne de produits
=⇒ Le succès a été immédiat, et l’idée d’une ligne de produits
compatibles a aussitôt été reprise par tous les principaux constructeurs.
SEII
La troisième génération (1965-1980) : circuits intégrés et
multiprogrammation
La plus grande force du concept de "famille unique" a aussi été sa
plus grande faiblesse.
Tout logiciel, y compris le système d’exploitation OS/360, devait
fonctionner sur tous les modèles
Il devait être performant pour des systèmes à faible, ou à très grand,
nombre de périphériques
Il devait bien fonctionner et être efficace dans des environnements
commerciaux comme auprès des scientifiques.
Le résultat a donné un système d’exploitation énorme et
extraordinairement complexe, de deux ou trois ordres de grandeur
au-dessus de FMS.
Il était constitué de millions de lignes d’assembleur écrites par des
milliers de programmeurs.
=⇒ OS/360 et les autres systèmes de troisième génération concurrents
ont globalement répondu à l’attente de leurs clients.
SEII
La troisième génération (1965-1980) : circuits intégrés et
multiprogrammation
L’apparition de certaines techniques fondamentales absentes des OS
correspondants de la génération précédente : la multiprogrammation.
Dans les applications de calcul intensif, les E/S sont peu fréquentes
et cette perte de temps est négligeable.
Dans les applications commerciales, le temps consacré aux E/S peut
représenter parfois 80 % à 90 % du temps total.
=⇒ un taux d’utilisation de l’UC voisin de 100 % en permanence.
SEII
La troisième génération (1965-1980) : circuits intégrés et
multiprogrammation
Une autre caractéristique importante des systèmes d’exploitation de
troisième génération est leur capacité à stocker sur le disque les jobs
écrits sur cartes au fur et à mesure de leur arrivée.
Dès qu’un job était terminé, le système d’exploitation pouvait en
charger un nouveau depuis le disque et l’exécuter sur la partition
libérée.
Cette technique est appelée spoulage ou spoule (de spool,
Simultaneous Peripheral Operation On Line) et est également
utilisée en sortie.
Avec le spoulage, le 1401 n’était plus nécessaire et la plupart des
manipulations de bandes disparurent.
=⇒ Bien que ces systèmes d’exploitation soient bien adaptés au calcul
intensif et au traitement de grandes masses d’informations commerciales,
ils n’étaient encore que des systèmes batch.
SEII
La troisième génération (1965-1980) : circuits intégrés et
multiprogrammation
Avec la troisième génération, la durée entre la soumission d’un job et
la récupération de ses résultats se chiffrait en heures
De nombreux utilisateurs regrettaient les beaux jours de la première
génération, où ils avaient la machine pour eux seuls pendant
quelques heures et pouvaient donc rapidement mettre au point leurs
programmes.
Ce désir de réponse rapide a conduit au temps partagé, une variante
de la multiprogrammation dans laquelle chaque utilisateur dispose
d’un terminal en ligne.
Le premier système réellement à temps partagé, CTSS (Compatible
Time Sharing System), a été développé au MIT sur un 7094 modifié.
SEII
La troisième génération (1965-1980) : circuits intégrés et
multiprogrammation
Devant le succès de CTSS, le MIT, Bell Labs et General Electric ont
décidé de travailler à la réalisation d’un « outil informatique ».
Les concepteurs de ce système, connu sous le nom de MULTICS
(MULTIplexed Information and Computing Service), voyaient une
seule énorme machine fournissant de la puissance de calcul à toute
la zone de Boston.
La percée des mini-ordinateurs est une autre caractéristique
importante de la troisième génération. Elle a commencé avec le DEC
PDP-1 en 1961.
Pour certaines tâches non scientifiques, il atteignait presque les
performances du 7094 et il a donné naissance à toute une nouvelle
industrie.
Il a rapidement été suivi de toute une famille d’autres PDP (qui, au
contraire des IBM, n’étaient pas compatibles entre eux), culminant
avec le PDP-11.
SEII
La troisième génération (1965-1980) : circuits intégrés et
multiprogrammation
L’un des informaticiens de Bell Labs, qui avaient travaillé sur le
projet MULTICS, Ken Thompson, est tombé sur un PDP-7 inutilisé
et a commencé à écrire une version allégée, mono-utilisateur de
MULTICS.
Ce travail a servi de base au système UNIX, qui est devenu célèbre
dans le monde académique, dans nombre d’administrations et
d’entreprises.
En raison de la publication du code source, plusieurs organismes ont
développé leurs propres versions (incompatibles), ce qui a conduit au
chaos.
Deux versions principales se sont développées, System V d’AT&T et
BSD (Berkeley Software Distribution) de l’Université de Berkeley, en
Californie.
l’IEEE a développé un standard appelé POSIX, auquel la plupart des
versions actuelles d’UNIX se conforment.
SEII
La troisième génération (1965-1980) : circuits intégrés et
multiprogrammation
A. Tanenbaum a proposé en 1987 un petit clone d’UNIX appelé
MINIX, dans un but pédagogique.
Le besoin d’une version de production, de MINIX a conduit un
étudiant finlandais, Linus Torvalds, à écrire Linux.
Ce système a été écrit à partir de MINIX et supportait au départ
plusieurs caractéristiques de ce système
Il a depuis été considérablement étendu mais conserve une bonne
part de sa structure de base commune avec MINIX et UNIX.
SEII
La quatrième génération (1980-aujourd’hui) : les ordinateurs
personnels
Avec le développement des circuits intégrés LSI (Large Scale
Integration circuits), l’âge des ordinateurs personnels était arrivé.
Les ordinateurs personnels n’étaient pas très éloignés des
mini-ordinateurs du type PDP-11.
En 1974, quand Intel a sorti le 8080, premier microprocesseur 8 bits
généraliste, il a cherché un système d’exploitation, ne serait-ce que
pour le tester.
Kildall a écrit un système d’exploitation orienté disque, appelé
CP/M (Control Program for Microcomputers), pour le lecteur de
disquettes 8 pouces de Shugart & associés.
Kildall a fondé une entreprise, Digital Research, pour développer et
commercialiser CP/M.
SEII
La quatrième génération (1980-aujourd’hui) : les ordinateurs
personnels
En 1977, Digital Research a récrit CP/M pour qu’il puisse
fonctionner sur les nombreuses plates-formes utilisant le 8080, le
Zilog Z80 et d’autres microprocesseurs.
De nombreuses applications ont été écrites pour CP/M, faisant de
lui l’acteur principal du marché de la microinformatique pendant
cinq ans.
Au début des années 1980, IBM a conçu l’IBM PC.
Des contacts ont été pris avec Bill Gates pour son interpréteur
BASIC, mais aussi pour un système d’exploitation pouvant tourner
sur le PC.
Digital Research, qui était devenue la plus grosse entreprise au
monde dans le domaine des systèmes d’exploitation a refusé la
demande d’IBM.
IBM s’est donc à nouveau tourné vers Gates et lui a demandé de
leur fournir un système d’exploitation.
SEII
La quatrième génération (1980-aujourd’hui) : les ordinateurs
personnels
Gates a appris qu’un petit constructeur de Seattle, Seattle Computer
Products, possédait un système qui pouvait convenir, DOS (Disk
Opera- ting System).
Il leur a proposé de l’acheter, Gates proposa à IBM un package
DOS/BASIC.
IBM souhaita quelques modifications, aussi Gates a-t-il engagé la
personne qui avait écrit DOS, Tim Paterson, dans sa toute nouvelle
entreprise, Microsoft.
La version modifiée a été baptisée MS-DOS (Microsoft Disk
Operating System) et a très vite dominé le marché de l’IBM PC.
SEII
La quatrième génération (1980-aujourd’hui) : les ordinateurs
personnels
Quand l’IBM PC/AT a vu le jour en 1983, équipé du processeur
Intel 80286, MS-DOS était solidement implanté et CP/M vivait ses
derniers moments.
MS-DOS a ensuite été largement utilisé avec le 80386 et le 80486.
Même si la première version de MS- DOS était très primitive, les
versions suivantes ont inclu des caractéristiques plus sophistiquées.
Certaines empruntées à UNIX (Microsoft n’ignorait rien du monde
UNIX, il a même vendu dans ses premières années une version pour
microprocesseur appelée XENIX).
CP/M, MS-DOS et les autres systèmes équipant les premiers
micro-ordinateurs étaient tous fondés sur une interface de type texte.
SEII
La quatrième génération (1980-aujourd’hui) : les ordinateurs
personnels
Ce schéma a changé suite aux recherches menées par Doug
Engelbart, de l’institut de recherches de Stanford, dans les années
1960.
Engelbart a inventé le concept d’IHM graphique (interface homme-
machine) ou GUI (Graphical User Interface) avec ses fenêtres, ses
icônes, ses menus et sa souris.
Ses idées ont été reprises par des chercheurs de Xerox PARC et
incorporées aux machines qu’ils produisaient.
Un jour, Steve Jobs (le co-inventeur de l’Apple) a visité le PARC et
s’est mis à construire un Apple pourvu d’une IHM graphique.
Ce projet a abouti à Lisa, qui était trop chère et a été un échec
commercial.
La seconde tentative, le Macintosh d’Apple, a été un énorme succès
SEII
La quatrième génération (1980-aujourd’hui) : les ordinateurs
personnels
Quand Microsoft a décidé de construire le successeur de MS-DOS, il
a grandement été influencé par le succès du Macintosh.
Il a présenté un système à base d’IHM graphique appelé Windows,
qui fonctionnait au départ comme une surcouche de MS-DOS.
Pendant une dizaine d’années, entre 1985 et 1995, Windows est
resté un environnement graphique au-dessus de MS-DOS.
En 1995, une nouvelle version de Windows, appelée Windows 95, a
été présentée.
En 1998, une version légèrement modifiée a vu le jour, appelée
Windows 98.
SEII
Qu’est ce qu’un système d’exploitation
Un système informatique est constitué de deux entités : le matériel
et le logiciel.
L’objectif d’un système informatique est d’automatiser le traitement
de l’information.
Côté matériel : un ordinateur est composé de :
L’Unité Centrale (UC) pour les traitements
La Mémoire Centrale (MC) pour le stockage
Les Périphériques : disque dur, clavier, souris, carte réseau...
accessibles via des pilotes de périphériques
SEII
Qu’est ce qu’un système d’exploitation
Côté logiciel : un système informatique est composé de deux niveaux
bien distincts :
le système d’exploitation et les applications
L’objectif du logiciel est d’offrir aux utilisateurs des fonctionnalités
adaptées à leurs besoins.
Le principe est de masquer les caractéristiques physiques du matériel.
La solution consiste à structurer en couches le logiciel, chacune
offrant des services de plus en plus évolués au niveau supérieur.
Cette abstraction logicielle du matériel s’appelle machine virtuelle.
SEII
La double fonction d’un système d’exploitation
Un système d’exploitation permet de répondre à deux besoins qui ne
sont pas forcément liés :
1 le système d’exploitation en tant que machine étendue (ou «
machine virtuelle »)
2 le système d’exploitation en tant que gestionnaire de ressources.
SEII
En tant que machine étendue
Le système d’exploitation correspond à « l’interface » entre les
applications et le matériel.
De ce point de vue le système d’exploitation peut être assimilé à une
machine étendue ou virtuelle plus facile à programmer ou à utiliser
que le matériel :
Un programmeur va utiliser le système d’exploitation par
l’intermédiaire “ d’appels système ”.
Un utilisateur peut lui aussi – dans une certaine mesure – manipuler
un système d’exploitation, sans pour autant avoir à créer un
programme (commandes shell).
SEII
En tant que gestionnaire de ressources
Les différents composants d’un ordinateur doivent coopérer et
partager des ressources.
Dans cette optique, le travail du système d’exploitation consiste à :
ordonnancer,
contrôler l’allocation des ressources : processeurs, mémoires,
périphériques d’E/S, ... entre les différents programmes qui y font
appel.
SEII
En tant que gestionnaire de ressources
Pour chacune des ressources d’un ordinateur, le système
d’exploitation doit :
connaître à tout moment l’utilisateur de la ressource,
en accorder l’usage de manière équitable,
éviter les conflits d’accès entre les différents programmes ou
utilisateurs.
Les deux tâches essentiels du Système d’exploitation en tant que
gestionnaire des ressources sont :
Le partage des ressources.
La protection de l’accès aux ressources.
SEII
Les fonctions de base d’un système d’exploitation
La gestion des processus
qui correspondent à l’exécution des programmes.
La gestion de la mémoire
qui permet de gérer les transferts entre les mémoires principale et
secondaire.
Le système de fichiers
qui offre à l’utilisateur une vision homogène et structurée des
données et des ressources : disques, périphériques.
Les entrées-sorties
qui correspondent aux mécanismes qu’utilisent les processus pour
communiquer avec l’extérieur.
SEII
Bibliographie
Andrew Tanenbaum, Systèmes d’exploitation, 2ème édition., Campus
Press, 2003
J.M. Rifflet, J.B. Yunès Unix, Programmation et communication, Dunod,
2003
Gary Nutt, Operating systems, a modern perspective, 3rd edition,
Addison-Wesley, 2003
Samia Bouzefrane, Les systèmes d’exploitation, Unix, Linux et Windows
XP avec C et Java, Dunod, 2003
D.P. Bovet, M. Cesati, Le Noyau Linux, O’Reilly, 2001
M. J. Bach, The design of the Unix operating system, Prentice-Hall, 1986.
SEII

Contenu connexe

Similaire à The supply chain is susceptible to market volatility, driven by changing consumer demand, trade wars, raw material shortages, climate change, stringent environmental regulations, economic uncertainties, policy changes, and industrial unrest.

Saga des ordis
Saga des ordisSaga des ordis
Saga des ordisjack51110
 
Composants hardware du mainframe
Composants hardware du mainframeComposants hardware du mainframe
Composants hardware du mainframeSoukaina Boujadi
 
Logiciels libres en milieu industriel
Logiciels libres en milieu industrielLogiciels libres en milieu industriel
Logiciels libres en milieu industrielChristian Charreyre
 
Cours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxCours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxAbdo Brahmi
 
resume-theorique-m104-2203-6246fb9f3e558 (2).pdf
resume-theorique-m104-2203-6246fb9f3e558 (2).pdfresume-theorique-m104-2203-6246fb9f3e558 (2).pdf
resume-theorique-m104-2203-6246fb9f3e558 (2).pdfFootballLovers9
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Siwar Haddad
Siwar HaddadSiwar Haddad
Siwar HaddadNET-INFO
 
recherche info
recherche inforecherche info
recherche infoNET-INFO
 
Historique de l'informatique et d'Internet
Historique de l'informatique et d'InternetHistorique de l'informatique et d'Internet
Historique de l'informatique et d'InternetD1clic
 
Cours sys 2PPT20.pdf
Cours sys 2PPT20.pdfCours sys 2PPT20.pdf
Cours sys 2PPT20.pdfC00LiMoUn
 
Les solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarquésLes solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarquésAlexandre LAHAYE
 
Histoire Dassault Systemes
Histoire Dassault SystemesHistoire Dassault Systemes
Histoire Dassault SystemesFernando Petre
 
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...DotRiver
 

Similaire à The supply chain is susceptible to market volatility, driven by changing consumer demand, trade wars, raw material shortages, climate change, stringent environmental regulations, economic uncertainties, policy changes, and industrial unrest. (20)

Saga des ordis
Saga des ordisSaga des ordis
Saga des ordis
 
Cours se chap1
Cours se chap1Cours se chap1
Cours se chap1
 
Composants hardware du mainframe
Composants hardware du mainframeComposants hardware du mainframe
Composants hardware du mainframe
 
systèmes distribues
systèmes distribuessystèmes distribues
systèmes distribues
 
Logiciels libres en milieu industriel
Logiciels libres en milieu industrielLogiciels libres en milieu industriel
Logiciels libres en milieu industriel
 
Cours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxCours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptx
 
Grid computing
Grid computingGrid computing
Grid computing
 
resume-theorique-m104-2203-6246fb9f3e558 (2).pdf
resume-theorique-m104-2203-6246fb9f3e558 (2).pdfresume-theorique-m104-2203-6246fb9f3e558 (2).pdf
resume-theorique-m104-2203-6246fb9f3e558 (2).pdf
 
Cours_Info_G1_Droit-
Cours_Info_G1_Droit-Cours_Info_G1_Droit-
Cours_Info_G1_Droit-
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Siwar Haddad
Siwar HaddadSiwar Haddad
Siwar Haddad
 
recherche info
recherche inforecherche info
recherche info
 
Historique de l'informatique et d'Internet
Historique de l'informatique et d'InternetHistorique de l'informatique et d'Internet
Historique de l'informatique et d'Internet
 
Cours sys 2PPT20.pdf
Cours sys 2PPT20.pdfCours sys 2PPT20.pdf
Cours sys 2PPT20.pdf
 
historique de l'informatique
historique de l'informatiquehistorique de l'informatique
historique de l'informatique
 
Les solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarquésLes solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarqués
 
Chap5 extrait
Chap5 extraitChap5 extrait
Chap5 extrait
 
Histoire Dassault Systemes
Histoire Dassault SystemesHistoire Dassault Systemes
Histoire Dassault Systemes
 
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
 

The supply chain is susceptible to market volatility, driven by changing consumer demand, trade wars, raw material shortages, climate change, stringent environmental regulations, economic uncertainties, policy changes, and industrial unrest.

  • 1. SYSTEME D’EXPLOITATION II Licence Fondamentale SMI, S4 Pr. Abdelkaher AIT ABDELOUAHAD Département d’Informatique Faculté des Sciences, Université Chouaib Doukkali El Jadida a.abdelkaher@gmail.com 10 Mars 2022 SEII
  • 2. Préambule Objectif Comprendre le fonctionnement système, matériel et logiciel d’un ordinateur dans son contexte de travail. Pré-requis Système d’exploitation I Programmation en langage C SEII
  • 3. Contenu Introduction générale de système d’exploitation Les processus L’ordonnancement des processus La communication interprocessus La gestion de la mémoire Les systèmes de gestion de fichiers L’introduction à la programmation système SEII
  • 4. Qu’est ce qu’un système d’exploitation Pour définir ce qu’est un SE, il faut examiner l’histoire =⇒ quels besoins / problèmes doit résoudre un SE ? SEII
  • 5. La première génération En 1938, Konrad Zuse invente un ordinateur qui fonctionne grâce à des relais électromécaniques : le Z3. SEII
  • 6. La première génération En 1944, l’ordinateur Colossus fut construit par un groupe d’ingénieurs de Bletchley Park en Angleterre. SEII
  • 7. La première génération Mark I construit par Howard Aiken à Harvard SEII
  • 8. La première génération l’ENIAC par le professeur William Mauchley avec l’un de ses étudiants, J. Presper Eckert, à l’université de Pennsylvanie SEII
  • 9. La première génération Les ordinateurs utilisaient des tubes à vide ou des relais mécaniques. Tous étaient très primitifs et lents pour réaliser des calculs simples. La même équipe concevait, construisait, programmait, administrait et maintenait chaque machine. Tout programme était conçu en langage machine absolu, souvent en basculant des tableaux d’interrupteurs. Les langages de programmation étaient inconnus (y compris le langage d’assemblage). On n’avait jamais entendu parler de système d’exploitation. Le protocole classique d’utilisation. Les problèmes codés étaient de simples calculs numériques, ex : remplir des tables de sinus ou de logarithmes. SEII
  • 10. La première génération Au début des années 1950, le protocole s’est amélioré quelque peu avec l’introduction des cartes perforées. Il était devenu possible d’écrire ses programmes sur des cartes et de les faire lire par la machine au lieu d’utiliser les tableaux d’interrupteurs. SEII
  • 11. La deuxième génération (1955-1965) : transistors et traitement par lots L’apparition du transistor au milieu des années 1950 a donné lieu aux mainframes ou ordinateurs centraux Enfermées dans des locaux spéciaux climatisés, accessibles uniquement des opérateurs. Une séparation nette entre concepteurs, constructeurs, opérateurs, programmeurs et personnel de maintenance. Soumission de job (un programme, ou un ensemble de programmes), en FORTRAN ou en assembleur. Quand l’ordinateur finissait un job, un opérateur récupérait sur une imprimante la trace d’exécution correspondante et la stockait dans la salle des résultats afin que le programmeur la récupère. =⇒ réfléchir sur la façon de réduire cette perte de temps SEII
  • 12. La deuxième génération (1955-1965) : transistors et traitement par lots Solution : le système de batch ou de traitement par lots. L’utilisation d’une machine intermédiaire peu onéreuse comme l’IBM 1401 Un calculateur performant comme le IBM 7094 execute les jobs, grâce à un programme spécial (l’ancêtre des systèmes d’exploitation actuels). SEII
  • 13. La deuxième génération (1955-1965) : transistors et traitement par lots Les gros ordinateurs de la seconde génération étaient utilisés principalement pour des calculs scientifiques ou d’ingénierie, comme la résolution d’équations aux dérivées partielles. Seules les grandes firmes ou établissements publics pouvaient investir les millions de dollars nécessaires à leur achat. Ils étaient dans leur grande majorité programmés en FORTRAN et assembleur. Les systèmes d’exploitation de l’époque étaient notamment : FMS (Fortran Monitor System) IBSYS, le système d’exploitation de l’IBM 7094. SEII
  • 14. La troisième génération (1965-1980) : circuits intégrés et multiprogrammation Au début des années 1960, la plupart des constructeurs d’ordinateurs proposaient deux lignes de produits totalement incompatibles : des ordinateurs qui étaient destinés à des tâches de calculs numériques scientifiques intensifs, comme le 7094 des ordinateurs orientés caractères qui étaient à vocation plus commerciale, comme le 1401 Le développement et la maintenance de deux lignes de produits aussi distinctes présentaient un surcoût important pour les constructeurs. De nombreux clients demandaient rapidement une machine plus performante, capable de faire tourner tous leurs programmes plus rapidement. SEII
  • 15. La troisième génération (1965-1980) : circuits intégrés et multiprogrammation IBM a tenté de répondre simultanément aux deux types de problèmes en présentant son system/360. Le 360 consistait en une série de machines compatibles au niveau logiciel Ces machines différaient uniquement au niveau du prix et des performances Le 360 était conçu pour gérer aussi bien des applications scientifiques que commerciales. Les 360 ont été les premières machines à utiliser des circuits intégrés IBM a continué de proposer des successeurs compatibles 360, en utilisant des technologies plus évoluées : 370, 4300, 3080 et 3090 et la série Z le plus récent descendant de cette ligne de produits =⇒ Le succès a été immédiat, et l’idée d’une ligne de produits compatibles a aussitôt été reprise par tous les principaux constructeurs. SEII
  • 16. La troisième génération (1965-1980) : circuits intégrés et multiprogrammation La plus grande force du concept de "famille unique" a aussi été sa plus grande faiblesse. Tout logiciel, y compris le système d’exploitation OS/360, devait fonctionner sur tous les modèles Il devait être performant pour des systèmes à faible, ou à très grand, nombre de périphériques Il devait bien fonctionner et être efficace dans des environnements commerciaux comme auprès des scientifiques. Le résultat a donné un système d’exploitation énorme et extraordinairement complexe, de deux ou trois ordres de grandeur au-dessus de FMS. Il était constitué de millions de lignes d’assembleur écrites par des milliers de programmeurs. =⇒ OS/360 et les autres systèmes de troisième génération concurrents ont globalement répondu à l’attente de leurs clients. SEII
  • 17. La troisième génération (1965-1980) : circuits intégrés et multiprogrammation L’apparition de certaines techniques fondamentales absentes des OS correspondants de la génération précédente : la multiprogrammation. Dans les applications de calcul intensif, les E/S sont peu fréquentes et cette perte de temps est négligeable. Dans les applications commerciales, le temps consacré aux E/S peut représenter parfois 80 % à 90 % du temps total. =⇒ un taux d’utilisation de l’UC voisin de 100 % en permanence. SEII
  • 18. La troisième génération (1965-1980) : circuits intégrés et multiprogrammation Une autre caractéristique importante des systèmes d’exploitation de troisième génération est leur capacité à stocker sur le disque les jobs écrits sur cartes au fur et à mesure de leur arrivée. Dès qu’un job était terminé, le système d’exploitation pouvait en charger un nouveau depuis le disque et l’exécuter sur la partition libérée. Cette technique est appelée spoulage ou spoule (de spool, Simultaneous Peripheral Operation On Line) et est également utilisée en sortie. Avec le spoulage, le 1401 n’était plus nécessaire et la plupart des manipulations de bandes disparurent. =⇒ Bien que ces systèmes d’exploitation soient bien adaptés au calcul intensif et au traitement de grandes masses d’informations commerciales, ils n’étaient encore que des systèmes batch. SEII
  • 19. La troisième génération (1965-1980) : circuits intégrés et multiprogrammation Avec la troisième génération, la durée entre la soumission d’un job et la récupération de ses résultats se chiffrait en heures De nombreux utilisateurs regrettaient les beaux jours de la première génération, où ils avaient la machine pour eux seuls pendant quelques heures et pouvaient donc rapidement mettre au point leurs programmes. Ce désir de réponse rapide a conduit au temps partagé, une variante de la multiprogrammation dans laquelle chaque utilisateur dispose d’un terminal en ligne. Le premier système réellement à temps partagé, CTSS (Compatible Time Sharing System), a été développé au MIT sur un 7094 modifié. SEII
  • 20. La troisième génération (1965-1980) : circuits intégrés et multiprogrammation Devant le succès de CTSS, le MIT, Bell Labs et General Electric ont décidé de travailler à la réalisation d’un « outil informatique ». Les concepteurs de ce système, connu sous le nom de MULTICS (MULTIplexed Information and Computing Service), voyaient une seule énorme machine fournissant de la puissance de calcul à toute la zone de Boston. La percée des mini-ordinateurs est une autre caractéristique importante de la troisième génération. Elle a commencé avec le DEC PDP-1 en 1961. Pour certaines tâches non scientifiques, il atteignait presque les performances du 7094 et il a donné naissance à toute une nouvelle industrie. Il a rapidement été suivi de toute une famille d’autres PDP (qui, au contraire des IBM, n’étaient pas compatibles entre eux), culminant avec le PDP-11. SEII
  • 21. La troisième génération (1965-1980) : circuits intégrés et multiprogrammation L’un des informaticiens de Bell Labs, qui avaient travaillé sur le projet MULTICS, Ken Thompson, est tombé sur un PDP-7 inutilisé et a commencé à écrire une version allégée, mono-utilisateur de MULTICS. Ce travail a servi de base au système UNIX, qui est devenu célèbre dans le monde académique, dans nombre d’administrations et d’entreprises. En raison de la publication du code source, plusieurs organismes ont développé leurs propres versions (incompatibles), ce qui a conduit au chaos. Deux versions principales se sont développées, System V d’AT&T et BSD (Berkeley Software Distribution) de l’Université de Berkeley, en Californie. l’IEEE a développé un standard appelé POSIX, auquel la plupart des versions actuelles d’UNIX se conforment. SEII
  • 22. La troisième génération (1965-1980) : circuits intégrés et multiprogrammation A. Tanenbaum a proposé en 1987 un petit clone d’UNIX appelé MINIX, dans un but pédagogique. Le besoin d’une version de production, de MINIX a conduit un étudiant finlandais, Linus Torvalds, à écrire Linux. Ce système a été écrit à partir de MINIX et supportait au départ plusieurs caractéristiques de ce système Il a depuis été considérablement étendu mais conserve une bonne part de sa structure de base commune avec MINIX et UNIX. SEII
  • 23. La quatrième génération (1980-aujourd’hui) : les ordinateurs personnels Avec le développement des circuits intégrés LSI (Large Scale Integration circuits), l’âge des ordinateurs personnels était arrivé. Les ordinateurs personnels n’étaient pas très éloignés des mini-ordinateurs du type PDP-11. En 1974, quand Intel a sorti le 8080, premier microprocesseur 8 bits généraliste, il a cherché un système d’exploitation, ne serait-ce que pour le tester. Kildall a écrit un système d’exploitation orienté disque, appelé CP/M (Control Program for Microcomputers), pour le lecteur de disquettes 8 pouces de Shugart & associés. Kildall a fondé une entreprise, Digital Research, pour développer et commercialiser CP/M. SEII
  • 24. La quatrième génération (1980-aujourd’hui) : les ordinateurs personnels En 1977, Digital Research a récrit CP/M pour qu’il puisse fonctionner sur les nombreuses plates-formes utilisant le 8080, le Zilog Z80 et d’autres microprocesseurs. De nombreuses applications ont été écrites pour CP/M, faisant de lui l’acteur principal du marché de la microinformatique pendant cinq ans. Au début des années 1980, IBM a conçu l’IBM PC. Des contacts ont été pris avec Bill Gates pour son interpréteur BASIC, mais aussi pour un système d’exploitation pouvant tourner sur le PC. Digital Research, qui était devenue la plus grosse entreprise au monde dans le domaine des systèmes d’exploitation a refusé la demande d’IBM. IBM s’est donc à nouveau tourné vers Gates et lui a demandé de leur fournir un système d’exploitation. SEII
  • 25. La quatrième génération (1980-aujourd’hui) : les ordinateurs personnels Gates a appris qu’un petit constructeur de Seattle, Seattle Computer Products, possédait un système qui pouvait convenir, DOS (Disk Opera- ting System). Il leur a proposé de l’acheter, Gates proposa à IBM un package DOS/BASIC. IBM souhaita quelques modifications, aussi Gates a-t-il engagé la personne qui avait écrit DOS, Tim Paterson, dans sa toute nouvelle entreprise, Microsoft. La version modifiée a été baptisée MS-DOS (Microsoft Disk Operating System) et a très vite dominé le marché de l’IBM PC. SEII
  • 26. La quatrième génération (1980-aujourd’hui) : les ordinateurs personnels Quand l’IBM PC/AT a vu le jour en 1983, équipé du processeur Intel 80286, MS-DOS était solidement implanté et CP/M vivait ses derniers moments. MS-DOS a ensuite été largement utilisé avec le 80386 et le 80486. Même si la première version de MS- DOS était très primitive, les versions suivantes ont inclu des caractéristiques plus sophistiquées. Certaines empruntées à UNIX (Microsoft n’ignorait rien du monde UNIX, il a même vendu dans ses premières années une version pour microprocesseur appelée XENIX). CP/M, MS-DOS et les autres systèmes équipant les premiers micro-ordinateurs étaient tous fondés sur une interface de type texte. SEII
  • 27. La quatrième génération (1980-aujourd’hui) : les ordinateurs personnels Ce schéma a changé suite aux recherches menées par Doug Engelbart, de l’institut de recherches de Stanford, dans les années 1960. Engelbart a inventé le concept d’IHM graphique (interface homme- machine) ou GUI (Graphical User Interface) avec ses fenêtres, ses icônes, ses menus et sa souris. Ses idées ont été reprises par des chercheurs de Xerox PARC et incorporées aux machines qu’ils produisaient. Un jour, Steve Jobs (le co-inventeur de l’Apple) a visité le PARC et s’est mis à construire un Apple pourvu d’une IHM graphique. Ce projet a abouti à Lisa, qui était trop chère et a été un échec commercial. La seconde tentative, le Macintosh d’Apple, a été un énorme succès SEII
  • 28. La quatrième génération (1980-aujourd’hui) : les ordinateurs personnels Quand Microsoft a décidé de construire le successeur de MS-DOS, il a grandement été influencé par le succès du Macintosh. Il a présenté un système à base d’IHM graphique appelé Windows, qui fonctionnait au départ comme une surcouche de MS-DOS. Pendant une dizaine d’années, entre 1985 et 1995, Windows est resté un environnement graphique au-dessus de MS-DOS. En 1995, une nouvelle version de Windows, appelée Windows 95, a été présentée. En 1998, une version légèrement modifiée a vu le jour, appelée Windows 98. SEII
  • 29. Qu’est ce qu’un système d’exploitation Un système informatique est constitué de deux entités : le matériel et le logiciel. L’objectif d’un système informatique est d’automatiser le traitement de l’information. Côté matériel : un ordinateur est composé de : L’Unité Centrale (UC) pour les traitements La Mémoire Centrale (MC) pour le stockage Les Périphériques : disque dur, clavier, souris, carte réseau... accessibles via des pilotes de périphériques SEII
  • 30. Qu’est ce qu’un système d’exploitation Côté logiciel : un système informatique est composé de deux niveaux bien distincts : le système d’exploitation et les applications L’objectif du logiciel est d’offrir aux utilisateurs des fonctionnalités adaptées à leurs besoins. Le principe est de masquer les caractéristiques physiques du matériel. La solution consiste à structurer en couches le logiciel, chacune offrant des services de plus en plus évolués au niveau supérieur. Cette abstraction logicielle du matériel s’appelle machine virtuelle. SEII
  • 31. La double fonction d’un système d’exploitation Un système d’exploitation permet de répondre à deux besoins qui ne sont pas forcément liés : 1 le système d’exploitation en tant que machine étendue (ou « machine virtuelle ») 2 le système d’exploitation en tant que gestionnaire de ressources. SEII
  • 32. En tant que machine étendue Le système d’exploitation correspond à « l’interface » entre les applications et le matériel. De ce point de vue le système d’exploitation peut être assimilé à une machine étendue ou virtuelle plus facile à programmer ou à utiliser que le matériel : Un programmeur va utiliser le système d’exploitation par l’intermédiaire “ d’appels système ”. Un utilisateur peut lui aussi – dans une certaine mesure – manipuler un système d’exploitation, sans pour autant avoir à créer un programme (commandes shell). SEII
  • 33. En tant que gestionnaire de ressources Les différents composants d’un ordinateur doivent coopérer et partager des ressources. Dans cette optique, le travail du système d’exploitation consiste à : ordonnancer, contrôler l’allocation des ressources : processeurs, mémoires, périphériques d’E/S, ... entre les différents programmes qui y font appel. SEII
  • 34. En tant que gestionnaire de ressources Pour chacune des ressources d’un ordinateur, le système d’exploitation doit : connaître à tout moment l’utilisateur de la ressource, en accorder l’usage de manière équitable, éviter les conflits d’accès entre les différents programmes ou utilisateurs. Les deux tâches essentiels du Système d’exploitation en tant que gestionnaire des ressources sont : Le partage des ressources. La protection de l’accès aux ressources. SEII
  • 35. Les fonctions de base d’un système d’exploitation La gestion des processus qui correspondent à l’exécution des programmes. La gestion de la mémoire qui permet de gérer les transferts entre les mémoires principale et secondaire. Le système de fichiers qui offre à l’utilisateur une vision homogène et structurée des données et des ressources : disques, périphériques. Les entrées-sorties qui correspondent aux mécanismes qu’utilisent les processus pour communiquer avec l’extérieur. SEII
  • 36. Bibliographie Andrew Tanenbaum, Systèmes d’exploitation, 2ème édition., Campus Press, 2003 J.M. Rifflet, J.B. Yunès Unix, Programmation et communication, Dunod, 2003 Gary Nutt, Operating systems, a modern perspective, 3rd edition, Addison-Wesley, 2003 Samia Bouzefrane, Les systèmes d’exploitation, Unix, Linux et Windows XP avec C et Java, Dunod, 2003 D.P. Bovet, M. Cesati, Le Noyau Linux, O’Reilly, 2001 M. J. Bach, The design of the Unix operating system, Prentice-Hall, 1986. SEII