Please enable JavaScript.
Coggle requires JavaScript to display documents.
13-Systèmes d'exploitation - Coggle Diagram
13-Systèmes d'exploitation
Définition et Significance
1.1 Un système d'exploitation (OS) est un ensemble de programmes qui agit comme une interface entre les ressources matérielles d'un ordinateur et les applications utilisateur.
1.2 Il gère les ressources matérielles telles que le processeur, la mémoire, le stockage, et les périphériques d'entrée/sortie.
1.3 Objectifs principaux:
1.3.1 Abstraction du matériel pour fournir une interface simple aux applications.
1.3.2 Gestion efficace et équitable des ressources.
1.3.3 Isolation et protection des processus pour assurer la stabilité et la sécurité.
Structure d'un Système d'Exploitation
2.1 Noyau (Kernel)
2.1.1 Responsable de la gestion bas niveau des ressources.
2.1.2 Types de Noyaux:
2.1.2.1 Monolithique: Un gros bloc unique qui exécute toutes les fonctions du noyau.
2.1.2.2 Micro-noyau: Divise le noyau en plus petites parties, ne gardant que les fonctions essentielles dans le noyau principal.
2.1.2.3 Hybride: Combine les éléments des noyaux monolithiques et micro-noyaux.
2.1.3 Gestion de la Mémoire
2.1.3.1 Pagination: Division de la mémoire en pages de taille fixe pour la gestion de l'espace mémoire.
2.1.3.2 Segmentation: Division de la mémoire en segments de tailles variables selon les besoins logiques des processus.
2.1.4 Gestion des Processus
2.1.4.1 Ordonnancement des processus: Algorithmes pour déterminer l'ordre d'exécution des processus (ex: FCFS, SJF, Round-Robin).
2.1.4.2 Synchronisation: Mécanismes pour coordonner l'exécution entre différents processus (ex: sémaphores, moniteurs, verrous).
2.1.4.3 Communication inter-processus (IPC): Méthodes permettant aux processus de communiquer et de synchroniser leurs actions (ex: files de messages, segments de mémoire partagée).
2.2 Interfaces Utilisateur
2.2.1 Interface en Ligne de Commande (CLI)
2.2.1.1 Permet aux utilisateurs de taper des commandes textuelles.
2.2.1.2 Exemples: Bash sous Linux, CMD sous Windows.
2.2.2 Interface Graphique (GUI)
2.2.2.1 Permet une interaction utilisateur via des éléments graphiques (fenêtres, icônes).
2.2.2.2 Exemples: Windows Explorer sous Windows, GNOME sous Linux.
2.3 Services Système
2.3.1 Gestion de fichiers
2.3.1.1 Organiser les données en fichiers et répertoires.
2.3.1.2 Opérations: création, lecture, écriture, suppression de fichiers.
2.3.2 Gestion des périphériques
2.3.2.1 Pilotes de périphériques: Programmes spécifiques permettant au noyau de communiquer avec le matériel.
2.3.2.2 Gestion de périphériques comme les disques durs, imprimantes, claviers.
2.3.3 Sécurité et Protection
2.3.3.1 Gestion des utilisateurs et des permissions.
2.3.3.2 Mécanismes de protection: chiffrement, authentification, contrôle d'accès.
Types de Systèmes d'Exploitation
3.1 Selon le Type de Dispositif
3.1.1 OS pour Ordinateurs de Bureau
3.1.1.1 Exemples: Windows, macOS, Linux.
3.1.2 OS pour Serveurs
3.1.2.1 Exemples: Unix, Windows Server, Red Hat Enterprise Linux.
3.1.3 OS pour Appareils Mobiles
3.1.3.1 Exemples: Android, iOS.
3.1.4 OS pour Systèmes Embarqués
3.1.4.1 Exemples: VxWorks, Embedded Linux, RTOS.
3.2 Selon le Mode d'Utilisation
3.2.1 OS Monotâche
3.2.1.1 Gère un seul processus à la fois.
3.2.2 OS Multitâche
3.2.2.1 Permet l'exécution simultanée de plusieurs processus.
3.2.3 OS Temps Réel
3.2.3.1 Conçu pour des applications critiques (ex: systèmes de contrôle industriel).
Gestion des Ressources
4.1 Gestion de la Mémoire
4.1.1 Techniques:
4.1.1.1 Mémoire Virtuelle: Utilise le disque comme extension de la RAM.
4.1.1.2 Gestion de la Mémoire Physique: Allocation et libération d'espace mémoire.
4.1.2 Optimisations:
4.1.2.1 Algorithme de remplacement de pages (ex: LRU, FIFO).
4.1.2.2 Compaction et défragmentation de la mémoire.
4.2 Gestion du Processeur
4.2.1 Ordonnancement des Processus:
4.2.1.1 Priorité: Les processus avec une priorité plus élevée s'exécutent en premier.
4.2.1.2 Quantums de Temps: Temps alloué à chaque processus dans l'algorithme Round-Robin.
4.2.2 Gestion des Interruptions:
4.2.2.1 Interruptions matérielles et logicielles pour faciliter la communication avec le matériel.
4.2.2.2 Traitement des exceptions pour maintenir la stabilité du système.
4.3 Gestion des Entrées/Sorties
4.3.1 Bufferisation: Stockage temporaire des données pour optimiser l'accès au matériel.
4.3.2 Caching: Utilisation de mémoire rapide pour stocker temporairement des données fréquemment accédées.
4.3.3 Pilotes de Périphériques: Interface entre le système d'exploitation et le matériel.
Défis et Avancements
5.1 Sécurité
5.1.1 Menaces:
5.1.1.1 Virus et Malwares: Programmes malveillants visant à endommager ou infiltrer les systèmes.
5.1.1.2 Attaques par Déni de Service (DoS): Tentatives de rendre un service indisponible.
5.1.2 Solutions:
5.1.2.1 Pare-feu: Filtre le trafic réseau pour bloquer les accès non autorisés.
5.1.2.2 Antivirus et Anti-malware: Logiciels pour détecter et supprimer les menaces.
5.2 Performance et Efficacité
5.2.1 Optimisation de l'Ordonnancement: Amélioration des algorithmes pour une utilisation plus efficace du processeur.
5.2.2 Gestion énergétique: Techniques pour réduire la consommation d'énergie des dispositifs (ex: mise en veille, ajustement de la fréquence du CPU).
5.3 Support pour les Nouvelles Technologies
5.3.1 Virtualisation: Permet à un seul hôte d'exécuter plusieurs instances de systèmes d'exploitation.
5.3.2 Cloud Computing: Systèmes d'exploitation optimisés pour le fonctionnement dans des environnements de cloud.
5.3.3 Support pour les Architectures Multiprocesseurs et Multicoeurs: Optimisation pour tirer parti de plusieurs cœurs et processeurs.