icu.next-video

Contenu proposé par

France Télévisions

Regarde cette vidéo et gagne facilement jusqu'à 15 Lumniz en te connectant !

Il n’y a pas de Lumniz à gagner car tu as déjà consommé cet élément. Ne t'inquiète pas, il y a plein d'autres contenus intéressants à explorer et toujours plus de Lumniz à gagner.

->   En savoir plus
Techno09:21Publié le 19/06/2019

Comprendre ce qu'est un système d'exploitation

Le numérique et ses sciences dans le réel

Voir les entrailles matérielles et logicielles d'un objet numérique

Windows, Linux, Mac OS, Android, IOS, vous entendez ces noms régulièrement, vous les utilisez tous les jours, mais au final c'est quoi ?

Qu'est-ce qu'un système d'exploitation ?

Ce sont des logiciels spécialisés qui sont appelés systèmes d'exploitation. Un système d'exploitation, ça sert principalement à gérer le lien entre tous les mondes applicatifs, donc les logiciels, et le monde matériel comme les processeurs et ainsi de suite. Souvenons-nous, un ordinateur est composé de 3 éléments principaux.

  • Tout d'abord il y a la mémoire. Elle sert à stocker de l'information et à y a accéder quand on en a besoin. Un autre élément important des ordinateurs, ce sont les processeurs.
  • Les processeurs, ce sont les cerveaux de l'ordinateur, qui permettent de faire des calculs, exécuter des tâches sur la base d'informations qu'ils récupèrent en mémoire.
  • Et enfin, pour que l'ordinateur puisse communiquer avec le monde extérieur, il dispose de périphériques d'entrée-sortie. Comme par exemple une imprimante qui permet de sortir de l'information, un écran qui permet d'afficher une information ; un clavier, permet de rentrer une information dans l'ordinateur, ou même une souris. Internet est aussi un périphérique d'entrée et sortie.
  • Alors dans les ordinateurs, on fait tourner plusieurs applications. Par exemple, vous avez 3 applications différentes, qui tournent sur l'ordinateur. Chacune va exécuter une tâche bien particulière qui dépend de l'application que vous voulez faire. Pour que les applications puissent utiliser le matériel, on ne va pas leur autoriser directement l'accès aux différents éléments de l'ordinateur. A la place on met un système d'exploitation entre les 2, c'est-à-dire on va avoir le système d'exploitation typiquement, on dit un OS en anglais, un Operating System. Celui-ci il va faire le lien entre les applications et l'ordinateur.

3 composantes principales au niveau de l'ordinateur

  • Il y a 3 composantes principales au niveau de l'ordinateur : la mémoire, les processeurs et les entrées-sorties. Le système d'exploitation, il sert à faire le lien entre ces composantes.

La gestion de la mémoire

  • On peut imaginer la mémoire comme étant un grand tableau disposant de plusieurs entrées, on appelle ça des mots. Chaque mot dans ces tableaux-là correspond à une adresse. L'adresse 0, 1, 2, 3 et par exemple, dans ce cas-ci, on a possibilité d'écrire 4 mots en mémoire. Ces adresses, elles correspondent à où les mettre exactement dans la vraie mémoire physique.
  • Une application, ce qu'elle pourrait faire, par exemple, elle a envie d'écrire un mot en mémoire, elle veut écrire "toto", elle décide de l'écrire dans le mot 1, donc elle va écrire "toto" ici au mot 1, ce qui va avoir pour effet d'écrire ça dans la mémoire physique de l'ordinateur. Une fois qu'elle a écrit, normalement elle peut y accéder, mais imaginons que la deuxième application ici, elle écrive le mot "zut", mais aussi dans le mot mémoire 1, donc elle va écrire ici, ce qui va remplacer "toto" par "zut".
  • On voit qu'alors il y a un problème, parce que si cette application-ci décide de retourner en mémoire pour récupérer la dernière information qu'elle avait stockée dans le mot 1, elle va obtenir "zut" à la place de "toto", donc ça ne fonctionne pas. Le système d'exploitation va permettre d'éviter ce genre de choses grâce à la mémoire virtuelle.
  • L'idée de la mémoire virtuelle, c'est que le système d'exploitation va faire croire à chaque application qu'il dispose de toute la mémoire. Or, la mémoire va croire qu'elle a tout donc de nouveau, il aura ces 4 mots avec l'adresse 0, 1, 2 et 3, la même chose pour chaque application.
  • Maintenant, lorsqu'une application veut écrire en mémoire, elle ne va pas écrire directement dans celle-ci, donc elle ne fait pas cette action-ci. Donc à la place, ce qu'elle va faire, c'est qu'elle va écrire dans la mémoire virtuelle, par exemple, elle avait décidé d'écrire "toto" au mot 1. Ce que va faire le système d'exploitation quand il reçoit une instruction d'écriture de l'application dans la mémoire, il va convertir ça, il va trouver un espace où l'écrire dans la vraie mémoire. Par exemple, il va dire "ici le 1, je vais l'écrire dans le mot 3 en mémoire, donc toto". Ici il va en fait s'écrire en mémoire physique à cet endroit-ci, et le système d'exploitation retient que le 1 de cette application là, va en fait dans le mot mémoire 3.
  • Maintenant, si cette application-ci qui tout à l'heure écrivait aussi au mot 1 décide d'écrire toujours "zut" au mot 1, ce qui va se passer, c'est le système d'exploitation va trouver dans la mémoire physique un endroit où il peut le placer. Par exemple, cette fois-ci il va décider d'écrire "zut" au mot 1, donc il va l'écrire bel et bien ici, "zut", et il va retenir le mot 1 de cette application-ci qui correspond au mot 1 dans la vraie mémoire.
  • Dès lors maintenant, si la première application décide d'aller lire le mot qu'elle avait choisi en mot 1, le système d'exploitation va se souvenir qu'il l'avait écrit au mot 3. Le mot 3 permet de récupérer "toto", il n'y a plus de problèmes d'inconsistance entre les différentes applications qui pourraient écraser les autres. C'est le principe de la mémoire virtuelle.

La gestion du processeur

  • Alors, avec la mémoire virtuelle, on a plusieurs applications. Mais dans notre schéma, on voit aussi qu'on n'a qu'un seul processeur. Généralement un ordinateur a quelques processeurs ou en tout cas, beaucoup moins de processeurs que de nombres d'applications. Alors ce qu'il va faire, le système d'exploitation va servir d'arbitre entre les différentes applications pour partager le processeur, parce qu'un processeur c'est en réalité assez bête, ça fait juste des calculs, mais ça ne fait qu'une tâche à la fois. Donc s'il y a 2 applications qui veulent utiliser un processeur, c'est chacune son tour, un petit peu comme à l'école, quand un élève veut poser une question, il lève la main et il attend qu'on lui donne son tour. Le système d'exploitation va faire la même chose par l'intermédiaire de l'ordonnanceur.
  • L'ordonnanceur il va dire "voilà, cette application-ci, elle a fait suffisamment de calculs pour le moment sur le processeur, donc je vais la mettre en pause pour permettre à d'autres applications d'utiliser le processeur". Aussi, ce qui peut se passer, c'est, peut-être que cette application-là, elle fait un calcul et puis à un moment, elle doit lire sur un disque dur. Le disque dur, c'est beaucoup plus long que le processeur, donc elle ne va rien pouvoir faire en attendant d'avoir l'information.
  • Cette information, elle va donc aller la chercher sur le disque dur et pendant ce temps-là, elle se met en pause, ce qui permet de libérer le processeur pour une autre application. 

Les entrées-sorties : les appels système

Nous avons eu les 2 premiers éléments : le dernier élément c'est que les ordinateurs sont toujours très différents. Il y a plein de modes différents, un téléphone c'est un ordinateur, une carte à puces c'est un ordinateur, votre ordinateur personnel c'est un ordinateur, un gros serveur de Google, c'est toujours un ordinateur. A l'usage, ce qui est attendu c'est que les applications puissent les écrire sans avoir besoin de connaître comment est fait directement derrière le matériel. Et donc pour ça, le système d'exploitation fournit une couche d'abstraction par l'intermédiaire des appels système.

Les appels système, c'est quoi ?

C'est à chaque fois qu'une application veut faire une exécution sur l'ordinateur, il ne va pas directement aller dans la mémoire ou sur le disque dur, non il va demander au système d'exploitation de le faire pour elle. Et donc, par exemple, quand l'application ouverte va vouloir écrire un rectangle sur un écran parce que c'est un jeu, ce qu'il va se passer, c'est qu'elle va demander au système d'exploitation : "dessine-moi le rectangle sur l'écran".

  • Le système d'exploitation, la première chose qu'il va faire, il va regarder si oui ou non l'application a le droit de faire un dessin sur l'écran. Si elle a le droit, il va vérifier alors comment faire ce dessin et va exécuter le dessin à la place de l'application. La même chose par exemple, si vous voulez lire d'un microphone. Un microphone, il y a une application, celle-ci va dire : "Moi j'ai envie d'enregistrer le son qui passe, qui est récupéré par le microphone". Pour ce faire, ce qu'il va se passer, c'est que l'application va dire au système d'exploitation, "moi j'aimerais bien écouter le son par le microphone". Le système d'exploitation va donc se mettre à l'écoute sur le microphone, et dès qu'il va y avoir un événement sonore qui apparaît, le microphone va générer un signal à l'ordinateur, ça va générer une interruption au niveau du système d'exploitation et il va découvrir "j'ai un signal qui vient d'un microphone et cette application-ci, elle m'avait justement demandée que je lui envoie les signaux de microphones", et donc de ce fait, il va pouvoir envoyer le bon signal à la bonne application.

Pourquoi existe-t-il plusieurs systèmes d'exploitation ?

  • Donc là nous avons vu, le système d'exploitation. Il a 3 rôles principaux : il va gérer la mémoire avec la mémoire virtuelle, donc il va permettre d'équilibrer équitablement entre les applications, une manière sûre, la mémoire pour qu'une application ne puisse pas utiliser la mémoire d'une autre application.
  • Le deuxième rôle du système d'exploitation, ça va être par l'ordonnanceur : il va permettre de partager la charge des différentes applications sur les processeurs, et finalement il va permettre d'abstraire les détails techniques de l'ordinateur aux applications de sorte qu'on puisse écrire une application sans savoir exactement sur quel ordinateur ça va tourner.
  • Conceptuellement c'est la même chose. Ce qui se passe derrière, c'est au niveau de l'écosystème qui est livré avec, IOS est plutôt spécialisé vers le réseau, vers les développeurs, vers les utilisateurs finaux, vers les jeux, mais aussi les licences d'utilisation, certains systèmes d'exploitation sont fermés donc on ne peut pas les modifier, d'autres systèmes d'exploitation sont ouverts, on peut les modifier à notre besoin. En fait, en fonction des besoins, on va utiliser un système d'exploitation ou un autre, plus ou moins spécialisé par rapport à ce que l'on souhaite en faire.

A retenir

Comment une application peut-elle interagir avec les périphériques matériels ? Comment deux applications peuvent-elles tourner en même temps sur un seul processeur ? C'est grâce au système d'exploitation, une couche logicielle intermédiaire entre la couche applicative et la couche matérielle, que nous vous proposons de découvrir en trois concepts clé...

 

Auteur : Liliane Kahmsay / Florent Masseglia

Producteur : Inria

Publié le 19/06/19

Modifié le 19/10/22