Os Course
Os Course
Os Course
D'EXPLOITATION
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 :
???
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.
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.
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.
Ces systèmes sont conçus pour gérer des environnements distribués où les ressources informatiques sont
réparties sur plusieurs ordinateurs.
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.
Ces systèmes sont conçus pour gérer des calculs intensifs sur des superordinateurs et des grappes de calcul.
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é.
• 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.
• 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.
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.).
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.
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 :
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.
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?
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.
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 :
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.
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.
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.
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.
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
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.
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
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.
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.