Quelques dates :
L'architecture de base de tout outil numérique s'appuie sur trois éléments :
L'interaction entre ces trois éléments est ce qui permet tous nos usages numériques. Les quatre étapes élémentaires d'un cycle d'exécution sont :
La mémoire utilise le magnétisme dans les disques durs (HDD pour Hard
Drive Disc) ou l'électricité pour la RAM, les clés USB, les SSD
(Solid-State Drive) pour stocker les bits d'information.
Elle peut être :
Dans un ordinateur, il existe plusieurs familles de mémoire que l'on peut hiérarchiser ainsi :
Un microprocesseur est un circuit intégré sur puce composé de milliards
de
transistors permettant
d'exécuter des instructions.
La taille des CPU est de plus en plus réduite grâce aux avancées
scientifiques qui permettent des techniques de gravures en-dessous de la
dizaine de nanomètres.
Selon la technologie utilisée, un
microprocesseur peut effectuer un jeu d'instruction prédéfinie lors de se
conception. Cela peut généralement être une opération arithmétique
(addition, multiplication ...) ou une opération logique (et, ou ...).
Historiquement, il existe deux familles de microprocesseurs :
Les évolutions technologiques actuelles tendent à faire disparaître cette distinction.
Un processeur fonctionne de manière cadencées. Il est caractérisé par la
fréquence à laquelle il réalise un cycle d'exécution. Pour les processeurs
d'aujourd'hui cette fréquence est de l'ordre du GigaHertz soit 1 milliards
d'opérations par seconde.
Il peut être constitué de plusieurs coeurs, ce qui lui permet d'exécuter
des instructions en parallèle, et d'augmenter encore ses performances.
Cette stratégie multicoeurs permet de compenser les limitations de
l'augmentation de la fréquence qui entraîne une plus forte consommation
électrique et donc un besoin de dissipation d'énergie thermique.
La miniaturisation des composants électroniques permet d'intégrer tous les
composants utiles à une fonction sur une même puce.
Un système intégré sur puce ou SoC (System On Chip) vise à effectuer
une tâche précise, de manière complète, robuste et rapide en regroupant
sur une unique puce les différents composants nécessaire à sa fonction.
Les composants qui peuvent être intégrés sont nombreux : CPU, mémoires, dispositifs de communication sans fil, dispositifs d'entrée/sortie, capteurs ... Ce phénomène d'intégration est apparue avec l'ère des smartphones et l'émergence de systèmes tout-en-un. Presque tout le contenu d'un ordinateur se retrouve intégré sur une seule puce dans un smartphone. Il en résulte que les composants sont bien plus interconnectés qu'ils ne le sont dans un ordinateur classique où chaque composant était plus ou moins indépendant et liés par une carte mère.
Les principaux concepteurs de SoC, aussi appelés «fondeurs», sont : AMD, Apple, Broadcom, Intel, Nvidia, Qualcomm, Samsung et Texas Instrument.
Par abus de langage, on appelle toujours "processeur", ce qui est en réalité des SoC. En effet, les CPU d'aujourd'hui intègre tous de la mémoire. C'est encore plus vrai pour les processeurs de téléphones portables qui intègre, sur une même puce, de plus en plus des composants supplémentaire tels que :
Avantages :
Inconvénients :
Exemples :
|
|
Quelques dates :
Souvent appelé l'OS (Operating System), le système d'exploitation
est un ensemble de programme qui permet d'utiliser les éléments
physiques d'un ordinateur pour exécuter les applications nécessaires
à l'utilisateur. L'élément fondamental du système d'exploitation est
son noyau, c'est lui qui permet l'accès aux ressources matérielles.
Toute machine est doté d'un OS qui a pour fonction :
Pour permettre le fonctionnement d'un ordinateur, un système
d'exploitation multitâche doit permettre l'exécution simultanée de
plusieurs applications par plusieurs utilisateurs. Pour cela, il crée et
gère l'exécution de nombreux processus. Attention à ne pas confondre
programme et processus.
Un processus est un programme en cours d'exécution. Un programme
exécuté/instancié plusieurs fois (dans le temps ou par plusieurs
utilisateurs simultanément) génère autant de processus. On dit que le
système d'exploitation exécute des instances d'un programme, chargées en
mémoire, dans des processus dédiés.
Chaque processus possède en mémoire les instructions à exécuter et ses
données. L'OS multitâche exécute chaque processus dans un environnement mémoire
cloisonnée et protégé. Par sécurité, un processus ne peut lire ou écrire les données en mémoire
que dans la zone que le système d'exploitation lui a dédié.
CTRL + ALT +
SUPR
et sélectionner "Gestionnaire des tâches" pour observer tous les
processus en cours sur votre machine.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
La commande ps
permet de visualiser les processus comme
dans le gestionnaire des tâches.
ps
. Utiliser l'émulateur du
Terminal Linux en ligne JSLinux pour tester cette commande. Un tableau apparait
avec plusieurs champs tels que PID
(Identifiant du processus), UID
ou USER
(Identifiant de l'utilisateur), TIME
(temps d'exécution)
et CMD
ou COMMAND
(nom de la commande du processeurs).
os
:
import os
print(os.popen('wmic process get description, processid').read())
L'OS doit permettre à toutes les applications et tous les utilisateurs de travailler en même temps, mais cette simultanéité n'est qu'illusion. En réalité, il va donner l'impression à chacun qu'il est seul à utiliser l'ordinateur et ses ressources physiques. Cela nécessite une gestion complexe des processus qui est réalisée par une partie spécifique du noyau du système d'exploitation, appelé : l'ordonnanceur (scheduler).
Un cœur de processeur ou un périphérique ne peuvent pas être partagés. Ce
qui est réellement partagé c'est leur temps d'utilisation. L'ordonnanceur
alloue la ressource à tour de rôle à chaque processus sur un intervalle de
temps très courts qui peut varié selon les besoin. Le plus petit
intervalle de temps allouable est appelé le
quantum de temps du latin quantum
qui prend ici le même
sens que celui utilisé en physique : plus petite mesure indivisible.
Généralement, un quantum de temps dure 20 à 50 ms suivant les OS et les
algorithmes d'ordonnancement utilisé.
Les objectifs de l'ordonnanceur sont :
En première on a vu qu'un microprocesseur possède des mémoires appelées registres. C'est dans ses registres que les instructions d'un processus en cours d'exécution sont copiées. Lorsqu'un processus est interrompu pour laisser la place à un autre processus, l'état des registres au moment de l'interruption, aussi appelée contexte d'exécution (execution context), doit être sauvegardé afin que lorsque ce sera de nouveau son tour d'être exécuté, son contexte d'exécution soit parfaitement rétabli et qu'il puisse poursuivre son exécution. Cette étape de remplacement d'un contexte d'exécution par un autre s'appelle un changement de contexte (context switching).
Tous les processus qui cohabitent en mémoire à un instant donné ne sont pas forcément en attente d'un quantum de temps processeur. Ils peuvent attendre d'avoir un accès à une autre ressource (périphérique d'entrée/sortie) ou bien ils peuvent également attendre le résultat d'un autre processus. Dans ces cas là, le processus n'est pas éligible à un quantum de temps processeur et on dit qu'il est dans l'état "bloqué". Au contraire quand un processus a tout ce qui lui faut et n'attend qu'un quantum de temps processeur, on dit qu'il est dans l'état "prêt".
Il existe plusieurs algorithmes d'ordonnancement de processus. Ils ont tous pour but de répartir les quantums de temps de façon optimale entre tous les processus.
Une situation d'interblocage se produit lorsque deux processus se bloquent mutuellement soit parce qu'ils monopolisent chacun une ressource que l'autre attend pour poursuivre son exécution, soit parce qu'ils attendent un résultat l'un de l'autre.
Pour éviter une situation d'interblocage, il y a l'utilisation de mutex ou l'algorithme du Banquier.
En anglais :
Bibliographie :
Ressources :