Os Course

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 95

SYSTÈMES

D'EXPLOITATION

Introduction au système d'exploitation


Introduction
Définition :
Un système d'exploitation (OS) est un programme qui
gère le matériel informatique.
Il fournit également une base pour les programmes
d'application et agit comme intermédiaire entre
l'utilisateur de l'ordinateur et le matériel informatique
Quelques systèmes d'exploitation couramment
utilisés sont Windows, Linux, Mac OS pour Apple
MacBook, ios pour Apple mobile, Android, etc…

 Composants d'un système d'exploitation


 Un système informatique peut être divisé en 4 composants :
1. Le matériel
2. Le système d'exploitation
3. Programmes d'application
4. Utilisateurs
Nous illustrons ces composants à l’aide du
schéma suivant. Il se compose de différents
niveaux. Chaque niveau représente un
composant du système informatique.
 Vue abstraite des composants d'un système informatique.

Utilisateur Utilisateur Utilisateur Utilisateur Utilisateur


1 2 3 4 5

Word Excel Web Adobe Text


Office Office Browser PS Editor

Système D'exploitation
Matériel informatique les ressources
informatiques
Au niveau le plus bas, nous avons le matériel informatique qui
comprend des ressources telles que le processeur, la mémoire, les
périphériques d'E/S (périphériques d'entrée-sortie I/O, par
exemple clavier, souris, micro, etc.) et d'autres éléments
tangibles. Au-dessus du matériel informatique, nous avons le
système d'exploitation qui fonctionne sur ces ressources et agit
comme un pont entre le niveau le plus bas et le niveau supérieur
(c'est-à-dire les logiciels ou programmes).
Les programmes peuvent être de deux types, à savoir les
programmes système et les programmes d'application.
Programmes Système
Les logiciels utilisés pour modifier directement ou donner des
commandes au matériel informatique sont appelés logiciels
système (ou programmes). Par exemple, tous les systèmes
d'exploitation, traducteurs de langage de programmation, etc…

Bref
Sont responsables de la gestion des ressources matérielles et
de l'interaction avec les programmes applicatifs.
 Voici quelques-uns des principaux programmes système et de leurs fonctions :

1. Noyau du système d'exploitation : Le noyau est le composant central d'un système


d'exploitation. Il gère la mémoire, les processus, les fichiers et les périphériques. Il
assure également la communication entre les logiciels et le matériel.

2. Gestionnaire de mémoire : Ce programme alloue et désalloue la mémoire système


aux programmes en cours d'exécution .

3. Planificateur de processus : Le planificateur de processus attribue du temps CPU


(Central Processing Unit) aux différents processus en cours d'exécution, en
fonction de leur priorité et de leur état.

4. Gestionnaire de fichiers : Il gère la création, la lecture, l'écriture et la suppression


de fichiers sur le système de fichiers. Il s'assure également de l'intégrité des
données stockées.
5. Gestionnaire de dispositifs : Ce programme gère l'accès aux périphériques matériels,
tels que les disques durs, les imprimantes, les claviers et les souris. Il fournit une
interface standard aux programmes applicatifs pour accéder aux périphériques.
Example : Imprimer un document dans Word

6. Gestionnaire de réseau : Il prend en charge les communications réseau en gérant


l'accès aux interfaces réseau, la configuration IP, les connexions et les transferts de
données.

7. Gestionnaire de fenêtres (dans les systèmes d'exploitation avec interface graphique) : Il


gère l'affichage des fenêtres, des icônes et des éléments de l'interface utilisateur
graphique.

8. Gestionnaire de sécurité : Il gère les mécanismes de sécurité du système d'exploitation,


tels que les autorisations d'accès aux fichiers et les niveaux de privilège des utilisateurs.

9. Gestionnaire de tâches : Il permet aux utilisateurs de gérer les processus en cours


d'exécution, de les surveiller et de les arrêter si nécessaire.
Définition : Un processus est une instance en cours d'exécution d'un
programme informatique. Il peut s'agir d'un programme simple, d'une
application complexe ou même d'un service système.
Programmes d'application
Les logiciels utilisés pour effectuer une tâche spécifique et pouvant
être directement utilisés par les utilisateurs sont appelés logiciels
d'application (ou programmes).
Les programmes d'application, souvent appelés simplement
"applications" ou "logiciels applicatifs", sont des programmes
informatiques conçus pour effectuer des tâches spécifiques ou
résoudre des problèmes particuliers pour les utilisateurs
Par exemple :
1. Word : logiciel utilisé pour créer et éditer des fichiers de
documents.
2. Excel : Feuilles de calcul utilisées pour créer ou modifier des
données tabulaires .
3. Éditeurs de texte : éditeurs utilisés pour modifier du texte,
comme WordPad, bloc-notes.
4. Navigateurs Web : logiciels utilisés pour naviguer sur le Web,
comme Mozilla Firefox, Safari, Chrome, etc…
5. VLC, Windows Media Player : permettent la lecture de
fichiers audio et vidéo.
Pourquoi le système d'exploitation ?
Pour avoir une idée plus claire du rôle que joue un système d'exploitation, prenons l'exemple d'un
logiciel d'application comme MS Word. Supposons que nous ayons un utilisateur qui souhaite saisir
quelque chose dans un fichier Word et l'enregistrer pour une utilisation ultérieure. S'il n'y avait pas de
système d'exploitation agissant au milieu, il aurait dû demander explicitement au matériel informatique
(via un morceau de code) de charger d'abord le MS Word dans la mémoire principale afin de pouvoir
l'utiliser. Ce n’est qu’après cette tâche initiale qu’il a pu commencer à taper, ce qui était bien sûr son
objectif principal au début. Maintenant, pour vérifier si ce qui est tapé est là ou non, il demanderait à
nouveau au matériel (explicitement) d'afficher tout le contenu. Vient ensuite la partie sauvegarde pour
laquelle, là encore, il faudrait accéder au matériel de l’extérieur !
Sans le système d'exploitation, chaque petite étape nécessite un accès direct aux composants
matériels, ce qui n'est pas une tâche facile puisque chaque opération nécessite un certain nombre
d'instructions (code) individuellement et il n'y a aucun moyen de savoir à quel point ces instructions
peuvent devenir lourdes et complexes.
Ainsi, pour une machine conçue à l’origine pour faciliter l’expérience humaine de calcul et de
traitement des données, un ordinateur deviendrait plutôt un fardeau. Tous nos problèmes sont résolus
par un autre logiciel système dont nous parlons, à savoir le système d'exploitation. Avec son aide, il
devient plus facile d'exécuter les fonctions qui autrement nécessiteraient notre intervention directe (de
l'utilisateur) et notre interaction (fastidieuse !) avec le matériel informatique.
Le système d'exploitation, ici dans le cas de MS Word, s'occupe de
tout, depuis le chargement des programmes nécessaires dans la mémoire
principale jusqu'à l'allocation de stockage pour le fichier. l'utilisateur ne
se soucie de rien, juste écrire + modifier + sauvegarder

???

C'est pourquoi on dit qu'il gère le matériel informatique et sert


d'intermédiaire entre l'utilisateur et le matériel.
Les Types de systèmes d'exploitation
Il existe plusieurs types de systèmes d'exploitation. Les plus courants sont
mentionnés ci-dessous :

• Batch operating system


• Time sharing operating system
• Distributed operating system
• Network operating system
• Real time operating system
• Multiprogramming/processing/tasking operating system
 Il existe plusieurs types de systèmes d'exploitation, chacun ayant ses caractéristiques et
son domaine d'application spécifiques. Voici les principaux types de systèmes
d'exploitation :
• Systèmes d'exploitation de bureau (Desktop OS) :

 Windows : Les systèmes d'exploitation Windows, développés par Microsoft, sont couramment utilisés
sur les ordinateurs personnels. Exemples : Windows 10, Windows 11.
 macOS : Les systèmes d'exploitation macOS, développés par Apple, sont spécifiques aux ordinateurs
Mac.
 Linux : Linux est une famille de systèmes d'exploitation open source, largement utilisée sur les
ordinateurs de bureau et les serveurs. Les distributions Linux populaires incluent Ubuntu, Fedora,
Debian, etc.

• Systèmes d'exploitation mobiles :

 Android : Android est un système d'exploitation open source développé par Google, principalement
utilisé sur les smartphones et les tablettes.
 iOS : iOS est le système d'exploitation exclusif d'Apple pour les iPhones et les iPads.
 Windows Mobile : Bien qu'il soit moins courant, Windows Mobile est utilisé sur certains appareils
mobiles.
• Systèmes d'exploitation temps réel (RTOS - Real-Time Operating Systems) :

Les RTOS sont conçus pour des applications où la réactivité et la précision temporelle sont essentielles. Ils
sont utilisés dans des domaines tels que l'automobile, l'industrie.

• Exemples : VxWorks, QNX, FreeRTOS.

• Systèmes d'exploitation embarqués :

Ces systèmes d'exploitation sont conçus pour des appareils électroniques embarqués, tels que les
systèmes de contrôle industriel, les appareils médicaux, les routeurs, les caméras de surveillance, etc.

• Exemples : Embedded Linux, Windows Embedded, RTLinux.

• Systèmes d'exploitation distribués :

Ces systèmes sont conçus pour gérer des environnements distribués où les ressources informatiques sont
réparties sur plusieurs ordinateurs.

• Exemples : Linux Cluster, Distributed UNIX, Microsoft Windows Cluster.


• Systèmes d'exploitation en temps partagé (Mainframes) :

Les systèmes d'exploitation en temps partagé sont conçus pour gérer simultanément de nombreuses
sessions d'utilisateurs sur des systèmes informatiques puissants.

• Exemples : IBM z/OS (anciennement appelé OS/390), Unisys MCP, VMS.

• Systèmes d'exploitation pour superordinateurs et grappes de calcul :

Ces systèmes sont conçus pour gérer des calculs intensifs sur des superordinateurs et des grappes de calcul.

• Exemples : Cray OS, AIX (pour les superordinateurs IBM).


Chacun de ces types de systèmes d'exploitation est adapté à
des besoins spécifiques, qu'il s'agisse d'un usage personnel,
professionnel, industriel ou scientifique. Le choix d'un système
d'exploitation dépend des exigences de l'utilisateur et de
l'application prévue.
Fonctions du système d'exploitation
Un système d’exploitation est chargé d’exécuter de nombreuses fonctions. Les principaux
sont listés ici :

• Il agit comme une interface entre l'utilisateur et le matériel.

• Il alloue les ressources, qu'il s'agisse de composants logiciels ou matériels.

• Il gère également l'utilisation de la mémoire et s'occupe des questions de


sécurité.

• Coordination entre les utilisateurs et les autres logiciels.

• Aides à la détection d’erreurs.


les objectifs du système d’exploitation.
 Commodité : le système d'exploitation facilite grandement le processus de
communication entre l'utilisateur et le matériel, ce qui est également
nécessaire.

 Efficacité : Par efficacité, nous entendons l’allocation adaptée des


ressources et la qualité du traitement des données. Un système
d’exploitation doit donc permettre une utilisation efficace du système.

 Les deux : de nombreux systèmes peuvent être conçus à des fins


individuelles de commodité ou d’efficacité. Mais la plupart des systèmes
de nos jours sont conçus pour répondre aux deux objectifs.
 Portabilité et fiabilité: Le système d'exploitation peut fonctionner sur
différentes machines avec différents processeurs et configurations de
mémoire. Cela rend le système d'exploitation plus fiable.

 Sécurité: Un système d'exploitation assure la sécurité des données entre


l'utilisateur et le matériel. Le système d'exploitation permet à plusieurs
utilisateurs de partager en toute sécurité un ordinateur (système), y
compris des fichiers, des processus, de la mémoire et un appareil
séparément.
Conclusion
un système d’exploitation est un composant essentiel de tout
système informatique. Il fournit une plate-forme pour l'exécution
d'applications logicielles, gère les ressources matérielles, fournit une
interface utilisateur et implémente diverses fonctionnalités de
sécurité et de gestion de fichiers.

L'objectif principal d'un système d'exploitation est de fournir un


environnement convivial et pratique à l'utilisateur.
Organisation du système informatique

Il est nécessaire de comprendre d’abord la structure de base


du système informatique avant d’entrer dans les détails de
son fonctionnement. Nous verrons donc comment un
système est organisé et comment il remplit certaines
fonctions.
Fonctionnement du système informatique
De nos jours, les ordinateurs à usage général sont des systèmes
multiprocesseurs (ayant plusieurs cœurs ou processeurs), dans lesquels un
certain nombre de contrôleurs de périphériques sont connectés via un bus
commun pour donner accès à la mémoire partagée.
Le diagramme suivant montre une idée très basique de la structure et de
l'organisation d'un système.
Nous avons différents appareils (ou périphériques) couramment utilisés, tous connectés à
leurs contrôleurs de périphériques respectifs, qui sont en outre connectés à une unité de
mémoire qui est apparemment partagée par tous. nous disposons également d’un CPU
(Central Processing Unit) en adéquation avec ces contrôleurs de périphériques. Comme
mentionné précédemment, les ordinateurs modernes peuvent avoir plusieurs processeurs.

 Examinons maintenant les composants distincts qui sont ici de la plus haute
importance.
 Unité centrale de traitement (CPU) : Nous connaissons très bien ce terme et il
est connu de culture générale qu'un CPU est considéré comme le cerveau d'un
ordinateur. Fondamentalement, il gère tous les traitements et calculs.
 Contrôleur de périphérique : il est responsable du mouvement aller-retour des
données entre la mémoire (stockage principal) et les périphériques. Chaque
contrôleur de périphérique est en charge d'un type spécifique de périphérique,
par exemple des lecteurs de disque, des périphériques audio ou des écrans
vidéo.
 Mémoire (RAM : Random-Access Memory ) : C'est l'unité de stockage où sont
stockées les données extraites de différentes sources. Il est partagé par tous les
autres composants et est connecté à toutes les ressources y compris le CPU via
un bus partagé.

Le contrôleur de mémoire : est un circuit numérique qui gère le flux


de données entrant et sortant de la mémoire principale de l'ordinateur

Le terme « Contrôleur de Mémoire" fait référence à un composant matériel


d'un ordinateur ou d'un système informatique qui gère l'accès à la mémoire
système (RAM) et la communication entre le processeur central (CPU) et la
mémoire. Le contrôleur de mémoire joue un rôle crucial dans les
performances globales d'un système informatique, car il détermine la vitesse
et l'efficacité avec lesquelles les données peuvent être lues ou écrites depuis
la mémoire.
Processeur (Processor : CPU)
RAM (Read Only Memory)
Très Important ??

 Chaque contrôleur d'appareil est en charge d'un type


spécifique d'appareil

 Le processeur et les contrôleurs de périphériques peuvent


s'exécuter simultanément

 Contrôleur de mémoire Gère le flux de données entrant et


sortant de la mémoire principale de l'ordinateur.
 Il existe certains termes importants liés au système informatique qu’il faut connaître afin
de bien comprendre son fonctionnement. Quelques-uns sont donnés ci-dessous :

1. Programme d'amorçage ( Bootstrap Program or bootloader)


• Lorsqu'un ordinateur est allumé ou redémarré, le premier programme à s'exécuter est
Le Programme d'amorçage ( Bootstrap Program ).

• Il initialise tous les aspects du système, depuis les registres du processeur jusqu'aux
contrôleurs de périphériques en passant par le contenu de la mémoire.

• Le chargeur d'amorçage charge les fichiers du système d'exploitation (c'est-à-dire le


noyau du système d'exploitation) dans la mémoire pour démarrer son exécution.

• Il réside dans la ROM (Read-Only Memory) puisque tous les fichiers permanents qui ne
sont pas censés être altérés ou modifiés
Voici comment fonctionne généralement un programme d'amorçage :

1. Initialisation : Lorsque vous allumez votre ordinateur, le processeur démarre à partir d'une adresse
prédéfinie, qui est généralement celle du programme d'amorçage.

2. Chargement du bootloader : Le processeur commence à exécuter les instructions du bootloader.


Le bootloader a pour tâche principale de charger le système d'exploitation en mémoire.

3. Sélection du système d'exploitation : Dans certains cas, en particulier sur les ordinateurs équipés
de plusieurs systèmes d'exploitation, le bootloader peut afficher un menu permettant à l'utilisateur
de choisir quel système d'exploitation démarrer (par exemple, Windows, Linux, macOS, etc.).

4. Chargement du noyau : Une fois le système d'exploitation sélectionné, le bootloader charge le


noyau du système d'exploitation en mémoire.

5. Exécution du système d'exploitation : Une fois que le noyau est en mémoire, le contrôle est passé
au système d'exploitation, qui commence son initialisation. Le système d'exploitation prend ensuite
en charge la gestion de l'ordinateur et des applications.
ROM : La ROM (Read-only memory) est un type de mémoire non volatile.
Cela signifie qu'il reçoit des données et les écrit en permanence sur une
puce, et cela même après que vous ayez éteint votre ordinateur. Les données
sont codées de manière à ne pas être écrasées, alors elles sont utilisées pour
des choses comme votre programme de démarrage.
Noyau : C'est le « cœur » d'un système d'exploitation. Il réside en
permanence dans la mémoire principale et constitue la véritable couche de
fonctionnement entre le système d'exploitation et le matériel.

Registres : les registres sont des petits emplacements de mémoire situés sur le
processeur (CPU) d'un ordinateur. Ces registres sont utilisés pour stocker des données
temporaires et des valeurs intermédiaires lors de l'exécution d'instructions par le CPU.
Les registres sont extrêmement rapides à accéder car ils se trouvent directement sur
le processeur. Ils jouent un rôle essentiel dans le fonctionnement de l'unité de
traitement central, permettant au CPU d'effectuer des calculs, de gérer les opérations
arithmétiques et logiques, et de stocker des adresses mémoire
ROM ( read only memroy )
2. Interruption ( Interrupt )
Une interruption est un signal émis par un matériel ou un logiciel lorsqu'un processus
ou un événement nécessite une attention immédiate. Il alerte le processeur d'un
processus hautement prioritaire nécessitant une interruption du processus de travail en
cours
 Les interruptions peuvent être de deux types, à savoir les interruptions déclenchées
par le matériel et les interruptions déclenchées par le logiciel.

• Interruptions déclenchées par le matériel ( Hardware-initiated interrupts )

Les interruptions déclenchées par le matériel, aussi connues sous le nom


d'interruptions matérielles en anglais, sont un mécanisme utilisé dans les
systèmes informatiques pour signaler à l'unité centrale de traitement (CPU)
qu'un événement matériel spécifique nécessite une attention immédiate. Ces
interruptions sont essentielles pour permettre aux dispositifs matériels
(Hardware) de communiquer avec le CPU et le système d'exploitation.
Voici comment fonctionnent les interruptions déclenchées par le matériel :

1. Demande d'interruption (IRQ : Interrupt Request) : Lorsqu'un périphérique matériel a


besoin d'attirer l'attention du CPU, il envoie un signal de demande d'interruption (IRQ). Ce
signal est généralement une ligne électrique dédiée ou un message spécifique envoyé via
un bus de communication, en fonction de l'architecture du système.

2. Contrôleur d'interruption : Dans la plupart des systèmes informatiques, il existe un


contrôleur d'interruption, un composant matériel chargé de gérer et de hiérarchiser les
interruptions provenant de divers périphériques. Le contrôleur d'interruption contribue à
garantir que les interruptions sont traitées de manière organisée et efficace.

3. Vecteur d'interruption : Chaque périphérique matériel ou événement est associé à un


vecteur d'interruption unique, qui est essentiellement un identifiant ou un numéro que le
CPU peut utiliser pour déterminer la source de l'interruption.
4. Routine de service d'interruption (ISR : Interrupt Service Routine) : Lorsqu'une
interruption se produit, le CPU suspend ses tâches actuelles et commence à exécuter
une Interrupt Service Routine

5. Routine de Service d'Interruption (ISR) spécifique à l'appareil ou à l'événement qui a


déclenché l'interruption. L'ISR est une petite section de code préalablement définie
qui gère l'interruption et effectue les actions nécessaires

6. Gestion des priorités : Certains contrôleurs d'interruption permettent de prioriser les


interruptions. Les interruptions de priorité plus élevée peuvent préempter celles de
priorité plus faible, garantissant ainsi que les tâches critiques reçoivent une attention
immédiate.

7. Reconnaissance de l'interruption : Une fois que l'ISR a terminé ses tâches, le CPU
Reconnaissance l'interruption, généralement en envoyant un signal de
Reconnaissance ou en écrivant dans un registre spécifique du contrôleur
d'interruption. Cette étape informe le matériel que l'interruption a été traitée, ce qui
Très Important ??
Les interruptions déclenchées par le matériel sont essentielles pour une
gestion efficace des événements matériels dans les systèmes
informatiques modernes. Elles permettent au CPU de réagir rapidement
aux événements externes
Des exemples d'interruptions déclenchées par le matériel comprennent :

 Un clavier générant une interruption lorsqu'une touche est enfoncée.

 Une carte réseau déclenchant une interruption lorsqu'elle reçoit des


données via le réseau.

 Un disque dur signalant une interruption lorsque le transfert de données est


terminé.
En Bref

La gestion efficace des interruptions est cruciale pour le


bon fonctionnement et les performances des systèmes
informatiques, car elle permet aux dispositifs matériels
de communiquer de manière transparente avec le CPU
et le système d'exploitation.
• Interruptions déclenchées par le logiciel ( Software-initiated interrupts )

Les interruptions déclenchées par le logiciel, également appelées interruptions logicielles


ou (logiciel-initiated interrupts) en anglais, sont des interruptions dans le fonctionnement
normal d'un programme ou d'un système d'exploitation qui sont générées par des
instructions ou des événements logiciels plutôt que par des événements matériels. Ces
interruptions sont utilisées pour gérer des tâches spécifiques, effectuer des transitions de
programme ou gérer des exceptions.

Voici quelques exemples d'interruptions déclenchées par le logiciel :

Appels Système (Syscalls) : Les appels système sont des interruptions logicielles
générées par les programmes utilisateur pour demander des services ou des
fonctionnalités spécifiques du système d'exploitation. Par exemple, un
programme peut générer une interruption logicielle pour lire ou écrire un fichier,
allouer de la mémoire, créer un processus, ou effectuer des opérations de gestion
de fichiers.
Gestionnaire d'Exceptions : Les exceptions sont des événements anormaux qui
surviennent pendant l'exécution d'un programme, tels que la division par zéro,
l'accès à une mémoire non allouée ou une instruction illégale. Lorsqu'une
exception se produit, elle génère une interruption logicielle qui peut être traitée
par un gestionnaire d'exceptions pour gérer l'erreur de manière appropriée ou
prendre des mesures correctives.

Les appels système ( system calls ) sont principalement de 5 types :


1. Contrôle de processus
2. Manipulation de fichiers
3. Gestion d'appareils
4. Gestion des informations
5. Communications
Remarque :
Les interruptions déclenchées par le matériel ont une priorité
inférieure à celle des interruptions déclenchées par le logiciel.

En Bref
Les interruptions déclenchées par le logiciel sont un mécanisme
essentiel pour la gestion des systèmes informatiques, permettant
aux programmes et au système d'exploitation de gérer
efficacement les tâches, les exceptions et les événements logiciels.
Elles facilitent également la communication et la coordination entre
les différents composants d'un système informatique.
Comment le processeur réagit-il aux interruptions?

Chaque processeur dispose d'un mécanisme spécial de gestion des interruptions.


Chaque fois qu'une interruption est déclenchée par le matériel ou le logiciel, le processeur
arrête immédiatement son exécution en cours. Il transfère ensuite immédiatement le
contrôle vers un emplacement fixe qui est l'adresse de départ de la routine de service
( service routine ) d'interruption ( ISR => interrupt service routine ). Par la suite, la
routine de service d'interruption est exécutée et une fois terminée, la CPU reprend sa tâche
précédente.

Emplacement Fixe ( fixed location )


Contient l'adresse de départ où se trouve la routine de service d'une interruption

ISR ( interrupt service routine )


Est un bloc de code spécial associé à une condition d'interruption spécifique.
Bases du système d'exploitation (Structure de Stockage)

La structure de stockage: Le stockage fait partie intégrante d’un


système informatique car toutes les données doivent être stockées
quelque part. Nous disposons de différents types de périphériques
de stockage qui sont utilisés en fonction des exigences spécifiques
du système.
Structure de stockage

Le CPU (Processeur) récupère les instructions du programme à


exécuter dans la mémoire. Ainsi, pour exécuter n’importe quel
programme ou exécuter n’importe quel fichier, il doit d’abord être
stocké dans la mémoire. Dans les ordinateurs à usage général, ces
programmes doivent être placés dans la mémoire principale ( main
memory ) pour être exécutés.
Tous les programmes en cours d'exécution sont conservés dans la
mémoire principale. Ces programmes n'y résident pas en
permanence puisque la mémoire principale est de taille limitée.
pour stocker les programmes ou les fichiers, nous utilisons la
mémoire secondaire à partir de laquelle les fichiers nécessaires
sont récupérés dans la mémoire principale chaque fois que le
besoin s'en fait sentir. Par exemple, lorsque nous installons un
logiciel, il est stocké dans la mémoire secondaire, mais lorsqu'il doit
être exécuté (c'est-à-dire lorsque nous l'ouvrons), tous les fichiers
liés à ce logiciel sont chargés dans la mémoire principale.
Mémoire Principale
La mémoire principale, également appelée mémoire centrale, est un
composant essentiel de tout ordinateur. Elle joue un rôle fondamental dans le
stockage temporaire des données et des instructions nécessaires au
fonctionnement des programmes et du système d'exploitation en cours
d'exécution.
Voici quelques caractéristiques importantes de la mémoire principale :

1- Stockage temporaire : La mémoire principale est utilisée pour stocker temporairement


les données et les programmes que l'unité centrale de traitement (CPU) de l'ordinateur
utilise pour effectuer des opérations. Elle sert de zone de travail pour le CPU.

2 - Vitesse : La mémoire principale offre un accès très rapide aux données, bien plus rapide
que la mémoire de stockage à long terme, comme les disques durs ou les SSD. Cela permet
au CPU d'accéder rapidement aux informations nécessaires pour exécuter des programmes.
3 - Volatile : La mémoire principale est volatile, ce qui signifie que les données qu'elle
stocke sont effacées lorsque l'ordinateur est éteint ou redémarré. Contrairement à la
mémoire secondaire, les données dans la mémoire principale ne sont pas conservées à
long terme.

4 - Capacité limitée : La mémoire principale a une capacité limitée par rapport à la


mémoire secondaire (disques durs, SSD, etc.). La quantité de RAM installée dans un
ordinateur varie, mais elle est généralement mesurée en gigaoctets (Go)

5 - Utilisations : La mémoire principale est utilisée pour stocker temporairement le système


d'exploitation, les programmes en cours d'exécution, les données en cours d'utilisation et
d'autres informations nécessaires au fonctionnement de l'ordinateur.

6 - Accès aléatoire : La mémoire principale est de type RAM (Random Access Memory), ce
qui signifie que le CPU peut accéder aux données de manière aléatoire, c'est-à-dire qu'il
peut accéder à n'importe quelle partie de la mémoire directement, sans avoir à lire
séquentiellement.
6 - Extensibilité : Dans de nombreux ordinateurs de bureau et ordinateurs portables, il est
possible de mettre à niveau la mémoire principale en ajoutant des barrettes (Ram Sticks)
de RAM supplémentaires ou en remplaçant celles déjà installées pour augmenter la capacité
de mémoire.
Voici quelques exemples de la mémoire principale :

1. DDR3 RAM : La DDR3 (Double Data Rate 3) est une génération précédente de mémoire RAM
qui était largement utilisée avant l'adoption de la DDR4. Bien que moins performante que la
DDR4, elle est encore présente dans de nombreux ordinateurs plus anciens.

2. DDR4 RAM : La DDR4 (Double Data Rate 4) est l'une des générations les plus courantes de
mémoire principale utilisée dans les ordinateurs modernes. Elle offre une performance rapide
et est utilisée dans de nombreux ordinateurs de bureau et ordinateurs portables.

3. DDR5 RAM : (Double Data Rate 5) est une technologie de mémoire RAM (Random Access
Memory) qui représente la dernière évolution des normes de mémoire DDR pour les
ordinateurs et autres dispositifs électroniques.
3. SO-DIMM : Il s'agit d'un format de mémoire RAM plus compact, principalement utilisé
dans les ordinateurs portables et certains ordinateurs de bureau compacts. Les SO-
DIMMs sont plus petits que les DIMMs (Dual In-Line Memory Module) standard et sont
conçus pour s'adapter à des espaces plus restreints.
4. ECC RAM : La mémoire ECC (Error-Correcting Code) est utilisée dans les serveurs et
les stations de travail où la fiabilité des données est essentielle. Elle est capable de
détecter et de corriger les erreurs de mémoire pour éviter les pannes de données.
5. LPDDR : La LPDDR (Low Power DDR) est une variante de la RAM conçue pour les
appareils mobiles tels que les smartphones et les tablettes. Elle offre une performance
énergétique plus efficace pour prolonger la durée de vie de la batterie.
6. HBM (High Bandwidth Memory) : Cette technologie de mémoire est utilisée dans les
cartes graphiques haut de gamme pour fournir une bande passante mémoire élevée, ce qui
est essentiel pour des performances graphiques supérieures.
7. XMP (Extreme Memory Profile) : Il s'agit d'un profil de performance pour la RAM qui
permet d'augmenter les fréquences de mémoire au-delà des spécifications standard,
offrant ainsi des performances accrues pour les utilisateurs qui souhaitent optimiser leur
système.
La mémoire principale joue un rôle essentiel dans la
performance globale de l'ordinateur, en permettant un accès
rapide aux données pour l'exécution des applications et du
système d'exploitation. Une quantité suffisante de mémoire
principale est importante pour garantir que l'ordinateur puisse
traiter efficacement les tâches et les programmes sans
ralentissement.

Remarque :

Pour la mémoire principale, il existe différents types de RAM, dont


certaines sont également non volatiles, par exemple la NVRAM (Non
Volatile RAM ).
Mémoire Secondaire
La mémoire secondaire est un autre type de mémoire informatique qui est
utilisé pour stocker des données de manière permanente, contrairement à la
mémoire vive (RAM) qui stocke des données de manière temporaire.
Contrairement à la RAM, la mémoire secondaire conserve les données même
lorsque l'ordinateur est éteint.

Voici quelques caractéristiques importantes de la mémoire secondaire :

Stockage permanent : La mémoire secondaire est utilisée pour stocker des


données de manière permanente, telles que des fichiers, des programmes, des
systèmes d'exploitation, et bien plus encore. Elle est essentielle pour conserver
les données même lorsque l'ordinateur est éteint ou redémarré.
Capacité : La mémoire secondaire a généralement une capacité beaucoup plus
élevée que la RAM. Vous pouvez stocker des quantités considérables de données
sur des supports de mémoire secondaire, tels que disques durs (HDD), disques
SSD (Solid State Drive), clés USB, cartes mémoire, disques optiques (comme des
CD ou des DVD), et d'autres supports de stockage.

Vitesse : En général, la mémoire secondaire est plus lente en termes d'accès aux
données que la RAM. Cela signifie que l'accès aux données depuis la mémoire
secondaire prend plus de temps que depuis la RAM. Cependant, les SSD sont
plus rapides que les disques durs mécaniques traditionnels.

Stockage non volatil : la mémoire secondaire est non volatile, ce qui signifie
que les données stockées restent intactes même en cas de coupure de courant.
Utilisations : La mémoire secondaire est utilisée pour stocker des fichiers, des
logiciels, des données utilisateur, des systèmes d'exploitation, des archives, des
sauvegardes et d'autres informations à long terme. Elle permet également
d'augmenter la capacité de stockage de l'ordinateur.

Supports de stockage : Les supports de mémoire secondaire peuvent prendre


diverses formes, y compris les disques durs internes ou externes, les SSD, les
clés USB, les cartes mémoire, les disques optiques et d'autres dispositifs.
Voici quelques exemples de dispositifs et de technologies de mémoire secondaire :

Disque dur (HDD) : Les disques durs sont des dispositifs de stockage courants dans les
ordinateurs. Ils utilisent des disques rotatifs pour stocker des données magnétiquement. Les
HDD offrent des capacités de stockage importantes mais sont généralement plus lents que
les disques SSD.

Disque SSD (Solid-State Drive) : Les SSD sont une alternative plus rapide et plus fiable aux
disques durs. Ils utilisent la mémoire flash pour stocker des données et se trouvent
couramment dans les ordinateurs portables, les ordinateurs de bureau et certains serveurs.

Clé USB : Les clés USB, ou clés USB, sont de petits dispositifs de stockage portables qui se
branchent sur un port USB d'un ordinateur. Elles sont utilisées pour le transfert de données,
la sauvegarde et le stockage supplémentaire.

Cartes mémoire : Les cartes mémoire, telles que les cartes SD et microSD, sont utilisées
dans des appareils comme les appareils photo numériques, les smartphones et certains
ordinateurs portables pour le stockage supplémentaire et le transfert de données.
CD et DVD : Les disques compacts (CD) et les disques polyvalents numériques (DVD) sont
des supports de stockage optiques utilisés pour la sauvegarde des données, la distribution
de logiciels et le stockage de contenu multimédia.

Disques Blu-ray : Les disques Blu-ray sont un support de stockage optique de grande
capacité utilisé pour la vidéo haute définition et le stockage de données. Ils offrent une
capacité de stockage supérieure à celle des DVD.

Disques durs externes : Il s'agit de disques durs autonomes qui se connectent à un


ordinateur via USB, Thunderbolt ou d'autres interfaces. Ils fournissent un stockage
supplémentaire et sont souvent utilisés pour la sauvegarde et l'archivage.

Stockage en nuage (Cloud Storage) : Les services de stockage en nuage, tels que Google
Drive, Dropbox et Microsoft OneDrive, offrent un stockage en ligne pour les fichiers et les
données. Les utilisateurs peuvent accéder à leurs données depuis n'importe quel appareil
connecté à Internet.
Différents types de disques durs | Disque dur SATA, SSD, NVMe, lequel choisir ?

Les SSD (Solid-State Drives) et les HDD (Hard Disk Drives) sont tous deux des types de
dispositifs de stockage, tandis que le SSD NVMe (Non-Volatile Memory Express) est un
protocole d'interface spécifique pour les SSD.

Voici les principales différences entre eux :

Technologie :
HDD : Les HDD utilisent des plateaux magnétiques en rotation et des têtes de
lecture/écriture mécaniques pour stocker et récupérer les données. Ce sont des dispositifs
mécaniques.
SSD : Les SSD utilisent de la mémoire flash NAND pour stocker les données. Ils n'ont pas de
pièces mobiles et sont entièrement électroniques.
Vitesse :
HDD : Les HDD sont nettement plus lents que les SSD. Les plateaux en rotation et les pièces
mobiles entraînent une latence dans l'accès aux données.
SSD : Les SSD sont beaucoup plus rapides que les HDD. Ils offrent un accès aux données
quasi instantané car il n'y a pas de pièces mobiles impliquées.

Durabilité :
HDD : Les HDD sont plus sensibles aux dommages physiques en raison de leurs composants
mécaniques.
SSD : Les SSD sont plus durables car ils n'ont pas de pièces mobiles, ce qui les rend plus
résistants aux chocs et aux vibrations.

Bruit :
HDD : Les HDD produisent du bruit lors de leur fonctionnement en raison des plateaux en
rotation et des têtes mobiles.
SSD : Les SSD sont silencieux car ils n'ont pas de pièces mobiles.
Taille :
HDD : Les HDD sont généralement plus grands et plus volumineux en raison de la nécessité
de composants mécaniques.
SSD : Les SSD sont plus petits et existent dans divers facteurs de forme, ce qui les rend
adaptés aux ordinateurs portables et aux appareils plus compacts.

Efficacité énergétique :
HDD : Les HDD consomment plus d'énergie en raison de la nécessité de faire tourner les
plateaux et de déplacer les têtes de lecture/écriture.
SSD : Les SSD sont plus économes en énergie et contribuent à améliorer l'autonomie de la
batterie des ordinateurs portables.
En ce qui concerne le SSD NVMe, NVMe est un protocole d'interface
spécialement conçu pour les SSD afin de tirer pleinement parti de leur vitesse
et de leur faible latence. Les SSD NVMe utilisent l'interface PCIe (Peripheral
Component Interconnect Express), beaucoup plus rapide que l'ancienne
interface SATA (Serial ATA : Serial Advanced Technology Attachment)
utilisée par les SSD traditionnels.

Principales différences entre SSD et SSD NVMe :

Vitesse :
SSD : Les SSD traditionnels utilisant l'interface SATA offrent des performances rapides par
rapport aux HDD, mais sont plus lents que les SSD NVMe.
SSD NVMe : Les SSD NVMe sont beaucoup plus rapides que les SSD standards. Ils offrent
des taux de transfert de données extrêmement élevés, en particulier pour les tâches
impliquant la lecture et l'écriture de fichiers volumineux.
Facteur de forme :
SSD : Les SSD existent dans divers facteurs de forme, y compris les disques 2,5 pouces et
les mSATA, compatibles avec l'interface SATA.
SSD NVMe : Les SSD NVMe utilisent généralement le facteur de forme M.2, qui est plus
petit et permet une connexion directe à la carte mère en utilisant le slot PCIe.

Latence :
SSD : Les SSD offrent une faible latence par rapport aux HDD, mais les SSD NVMe offrent
une latence encore plus faible grâce à la conception du protocole NVMe pour réduire les
temps d'attente.

En résumé, les SSD sont plus rapides et plus durables que les HDD, et les SSD
NVMe sont encore plus rapides que les SSD standard grâce au protocole
NVMe et à l'interface PCIe. Le choix entre ces options de stockage dépend de
vos besoins spécifiques, de votre budget et de la compatibilité avec votre
appareil ou votre système.
En résumé, la mémoire secondaire est un composant
essentiel de tout ordinateur, car elle permet de stocker
des données de manière permanente. Elle offre une
capacité de stockage élevée, tandis que la RAM fournit
une mémoire temporaire à haute vitesse pour le
traitement des données en cours d'utilisation. Les deux
types de mémoire, RAM et mémoire secondaire, sont
complémentaires et essentiels au bon fonctionnement
d'un ordinateur.
La mémoire cache

La mémoire cache, souvent appelée simplement "cache" est une forme de


mémoire informatique à haute vitesse utilisée pour stocker temporairement
des données fréquemment utilisées afin d'accélérer l'accès à ces données par
le processeur (CPU) d'un ordinateur. La mémoire cache agit comme un
tampon entre la mémoire principale (RAM) et le processeur, améliorant les
performances globales du système

Voici comment fonctionne la mémoire cache :


Stockage de données fréquemment utilisées : La mémoire cache conserve des copies de
données et d'instructions fréquemment utilisées, telles que des parties de programmes ou
des données en cours de traitement.
Hiérarchie de la mémoire : Les systèmes informatiques ont généralement plusieurs niveaux
de mémoire cache, notamment le cache de niveau 1 (L1), le cache de niveau 2 (L2), et
parfois le cache de niveau 3 (L3). Plus le cache est proche du processeur (L1 étant le plus
proche), plus il est rapide, mais il est également de plus petite capacité.

Accès plus rapide : L'utilisation de la mémoire cache permet d'accélérer l'accès aux
données couramment utilisées par le processeur. Comme la mémoire cache est plus rapide
que la mémoire principale (RAM), le CPU peut récupérer les données plus rapidement à
partir du cache, réduisant ainsi les temps d'attente.

Réduction des accès à la mémoire principale : En stockant des données fréquemment


utilisées dans la mémoire cache, le CPU peut éviter d'accéder à la mémoire principale, ce
qui peut être plus lent en termes d'accès. Cela améliore considérablement les
performances globales.
Remplacement de données : La mémoire cache est gérée par un algorithme de
remplacement de données qui détermine quelles données sont stockées en cache et quand
elles sont remplacées par de nouvelles données. Les données moins utilisées sont souvent
remplacées par de nouvelles données fréquemment utilisées.

En résumé, la mémoire cache est un composant clé pour améliorer


les performances d'un système informatique en réduisant les temps
d'attente du processeur. Elle permet au CPU d'accéder plus
rapidement aux données fréquemment utilisées en les stockant
temporairement dans un espace mémoire de haute vitesse. La
mémoire cache est présente à différents niveaux dans la hiérarchie,
de L1 à L3, et est essentielle pour les performances des processeurs
modernes.
Quelle la différence entre le cache et les registres
Le cache et les registres sont deux formes de mémoire utilisées dans les
ordinateurs pour améliorer les performances de traitement, mais ils diffèrent
par leur emplacement, leur capacité et leur fonction

Voici les principales différences entre le cache et les registres :


Emplacement :
Cache : Le cache est situé entre la mémoire principale (RAM) et le processeur (CPU)
dans la hiérarchie mémoire. Il agit comme un tampon pour stocker
temporairement des données fréquemment utilisées, améliorant ainsi l'accès aux
données depuis la mémoire principale.

Registres : Les registres sont des emplacements de mémoire situés directement à


l'intérieur du CPU. Ils sont les plus proches et les plus rapides de toutes les formes
de mémoire dans un ordinateur.
Capacité :
Cache : Le cache est plus grand que les registres, mais il reste limité en taille par
rapport à la mémoire principale. Il existe généralement plusieurs niveaux de cache,
avec des capacités progressives de L1 (la plus petite et la plus rapide) à L2, L3, etc.

Registres : Les registres sont extrêmement limités en nombre et en capacité. Un


CPU possède un petit ensemble de registres, souvent moins d'une douzaine,
chacun capable de stocker un petit morceau de données.
Usage :
Cache : Le cache stocke des données fréquemment utilisées ou des instructions qui
sont susceptibles d'être nécessaires par le CPU à court terme. Il réduit les temps
d'attente du CPU en fournissant un accès plus rapide aux données.

Registres : Les registres stockent des données en cours de traitement par le CPU. Ils
sont utilisés pour stocker des opérandes, des résultats intermédiaires et d'autres
données nécessaires pour l'exécution immédiate d'instructions.
Vitesse :
Cache : Le cache est rapide, mais il est plus lent que les registres. Il permet
d'accélérer l'accès aux données par rapport à la mémoire principale.

Registres : Les registres sont les plus rapides de toutes les formes de mémoire et
sont presque instantanément accessibles par le CPU.

En résumé, le cache et les registres sont deux types de mémoire utilisés pour
améliorer les performances des ordinateurs, mais ils diffèrent par leur
emplacement, leur capacité et leur rôle. Le cache agit comme une mémoire
tampon entre la mémoire principale et le CPU, tandis que les registres sont les
emplacements de mémoire les plus rapides, directement situés à l'intérieur du
CPU, utilisés pour stocker des données en cours de traitement. Les deux sont
essentiels pour optimiser les performances du processeur.
Le diagramme donné montre une structure hiérarchique des périphériques
de stockage :
La Gestion des Processus
Processus / Thread
Un processus

Un processus informatique est une instance d'un programme informatique


en cours d'exécution sur un système informatique. Il s'agit d'un concept
fondamental dans les systèmes d'exploitation et la gestion des ressources
informatiques. Chaque processus informatique a son propre espace mémoire,
ses données, son état d'exécution et son contexte d'exécution.

Un Processus peut être considéré comme un programme


en exécution
Voici quelques caractéristiques clés d'un processus informatique :
1. Isolation mémoire : Chaque processus a son propre espace mémoire, ce
qui signifie qu'il ne peut pas accéder directement à la mémoire d'autres
processus.

2. Multitâche : Les systèmes d'exploitation modernes prennent en charge


l'exécution simultanée de plusieurs processus. Cela permet à plusieurs
programmes de s'exécuter en même temps, offrant ainsi une expérience
multitâche à l'utilisateur.

3. Contexte d'exécution : Chaque processus conserve des informations sur


son état d'exécution, y compris les registres de processeur, le compteur de
programme, les données en mémoire, etc. Cela permet au système
d'exploitation de basculer rapidement entre les processus en cours
d’execution.
4. Communication entre processus : Les processus peuvent communiquer entre
eux en utilisant des mécanismes tels que les pipes, les files d'attente, les
signaux, les sockets, etc. Cela permet aux processus de coopérer et d'échanger
des informations.

5. Gestion des ressources : Les processus peuvent consommer des ressources


matérielles telles que le temps CPU, la mémoire, les fichiers, les E/S
(Input/Output), etc. Le système d'exploitation est chargé de la gestion
équitable de ces ressources entre les processus.

6. Création et terminaison : Les processus sont créés et terminés


dynamiquement. Les processus peuvent être créés à partir d'autres processus
et se terminent lorsqu'ils ont terminé leur exécution ou lorsqu'ils sont
explicitement arrêtés.
L'état du processus, en informatique et particulièrement dans le
contexte des systèmes d'exploitation, fait référence à la condition
actuelle d'un processus en cours d'exécution. Les processus
informatiques peuvent se trouver dans différents états, tels que :
 En cours d'exécution (Running) : Le processus est actuellement en train
d'utiliser le processeur.

 Prêt (Ready) : Le processus est prêt à s'exécuter, mais il attend sa part de


temps CPU dans la file d'attente.

 Bloqué (Blocked ou Waiting) : Le processus est momentanément


suspendu parce qu'il attend un événement ou une ressource, comme une
entrée/sortie (E/S) ou une réponse réseau. Il ne peut pas s'exécuter tant
que la condition bloquante n'est pas satisfaite.
• Nouveau (New) : Le processus a été créé mais n'a pas encore été admis
dans la file d'attente des processus prêts à s'exécuter.

• Terminé (Terminated) : Le processus a terminé son exécution et attend


d'être nettoyé par le système d'exploitation.

L'état du processus évolue au fil du temps à mesure que le système


d'exploitation planifie et gère l'exécution des différents processus
sur le système. La gestion des états du processus est essentielle
pour assurer le partage efficace des ressources du système et la
coopération entre les processus.
Remarque
Lorsqu'un processus termine son exécution ou est explicitement
supprimé, le système d'exploitation prend le relais pour nettoyer et
récupérer les ressources allouées au processus. Il s'agit d'une tâche
cruciale car elle garantit que les ressources du système sont
utilisées efficacement et sont disponibles pour d'autres processus.

La première étape de la fin du processus est généralement le


processus lui-même indiquant qu'il a terminé son exécution. Cela
peut être fait via un appel système de sortie, qui est une fonction
fournie par le système d'exploitation qu'un processus peut appeler
lorsqu'il a terminé ses tâches. Alternativement, un processus peut
être terminé par un autre processus via un appel système kill.
Diagramme d'état du processus
En Bref
Les processus informatiques jouent un rôle essentiel dans le
fonctionnement des systèmes d'exploitation et des
applications informatiques. Ils permettent une exécution
concurrente de programmes, ce qui est essentiel pour tirer
pleinement parti des ressources matérielles et offrir une
expérience utilisateur fluide.
Un Thread
Un thread (ou fil d'exécution) est une unité d'exécution de base
qui fait partie d'un processus plus large. Les threads permettent à
un programme informatique d'exécuter des tâches de manière
concurrente, c'est-à-dire en parallèle ou séquentiellement,

Un ou plusieurs threads s'exécutent dans le contexte du processus


Voici quelques points clés à retenir concernant les threads en informatique :

1. Unité d'exécution : Un thread est une unité d'exécution plus légère qu'un
processus. Les threads d'un même processus partagent généralement le
même espace mémoire et les ressources du processus parent.

2. Multithreading : Le multithreading est la pratique de créer et d'utiliser


plusieurs threads dans un même processus. Cela permet d'effectuer des
tâches concurrentes, ce qui peut améliorer les performances, l'efficacité et
la réactivité des applications.

3. Partage de ressources : Les threads partagent la mémoire et les ressources


du processus parent. Cela signifie qu'ils peuvent accéder aux mêmes
données et aux mêmes variables, ce qui facilite la communication entre les
threads.
1. Synchronisation : Les threads doivent souvent se synchroniser pour éviter les
conflits de données. permettent de coordonner l'activité des threads et
d'éviter les conditions de concurrence.

2. Parallélisme : Les threads peuvent être exécutés en parallèle sur des


processeurs multicœurs, ce qui permet de tirer parti de la puissance de calcul
des processeurs modernes.

3. Types de threads : Il existe généralement deux types de threads : les threads


au niveau du noyau (kernel threads) gérés par le système d'exploitation, et
les threads au niveau des utilisateurs (user-level threads) gérés par une
application.(Software)
 Un thread du noyau : est une entité du noyau, comme les processus et
les gestionnaires d'interruptions ; c'est l'entité gérée par le planificateur
système. Un thread du noyau s'exécute au sein d'un processus, mais peut
être référencé par n'importe quel autre thread du système

 Les threads de niveau utilisateur : également appelés threads utilisateur


ou threads verts, sont des threads entièrement gérés par une
bibliothèque ou un programme de niveau utilisateur sans prise en charge
du noyau.
4. Applications : Les threads sont couramment utilisés dans le
développement de logiciels pour des tâches telles que le traitement
parallèle de données, la gestion des E/S (IO) , la création d'interfaces
utilisateur réactives, les serveurs réseau, etc.

En Bref
Les threads offrent une flexibilité et une efficacité considérables dans
le développement de logiciels, mais ils peuvent également introduire
des défis de programmation, tels que la gestion de la synchronisation
pour éviter les problèmes de concurrence. Les développeurs doivent
être attentifs à ces questions lorsqu'ils travaillent avec des threads
pour garantir que leurs programmes fonctionnent correctement et
de manière fiable.
A thread is also known as a lightweight process. The idea is
to achieve parallelism by dividing a process into multiple
threads. For example, in a browser, multiple tabs can be
different threads. MS Word uses multiple threads: one
thread to format the text, another thread to process inputs,
etc
Pile de threads (thread stack)
En multithreading, chaque thread possède sa propre pile. La pile
d'un thread est utilisée pour stocker sa pile d'appels, qui
comprend les cadres d'appel de fonction, les variables locales et
d'autres informations nécessaires à l'exécution de la fonction. La
pile de chaque thread est séparée des piles des autres threads,
garantissant l'isolation des threads et permettant une exécution
simultanée.

Dll : Une Dynamic Link Library est une bibliothèque logicielle dont
les fonctions sont chargées en mémoire par un programme
illustration

Process
Thread
threads
threads
threads
threads
Différence entre processus et thread :
Processus Thread
Processus signifie que tout programme est en Thread signifie un segment d’un processus.
cours d’exécution.
Le processus prend plus de temps pour se Le thread met moins de temps à se terminer.
terminer.
Cela prend plus de temps pour la création. Cela prend moins de temps pour la création.

La multiprogrammation contient les concepts Nous n’avons pas besoin de plusieurs


de multi-processus programmes en action pour plusieurs threads
car un seul processus se compose de
plusieurs threads
Le processus est isolé. Les threads partagent la mémoire
Le processus ne partage pas de données Les threads partagent des données entre eux.
entre eux.

Vous aimerez peut-être aussi