Les exercices pratiques sur les systèmes d’exploitation comportent des exercices théoriques et pratiques. Pour résoudre les exercices pratiques, vous avez besoin d’un shell UNIX. Un shell très populaire est Bash. Le terminal Apple Mac OS X est suffisant pour la plupart des exercices pratiques. L’invite de commande Windows et Windows PowerShell ne sont pas suffisants pour les exercices.
Pour vous préparer, l’idéal est d’installer sur votre système le système d’exploitation Linux. Une installation dans une machine virtuelle est suffisante. Les distributions faciles à utiliser sont, par exemple, Debian, Ubuntu et CentOS. VirtualBox est une solution de virtualisation gratuite.
Vous pouvez également travailler avec un système vivant sur CD, DVD ou lecteur de mémoire flash USB. Dans ce cas, aucune installation locale n’est nécessaire.
Exercice 1: Traitement par lots
1.1) Décrivez l’objectif du traitement par lots.
Dans un système d’exploitation, le traitement par lots vise à maximiser l’utilisation de l’unité centrale (CPU) en:
Exécutant des tâches en parallèle pour éviter les temps d’inactivité.
Organisant les tâches dans des files d’attente pour une exécution optimisée.
Allocant dynamiquement les ressources selon les besoins des tâches.
Minimisant les changements de contexte pour réduire les interruptions.
Cela permet à l’UC de rester occupée et d’améliorer l’efficacité globale.
1.2) Décrivez pourquoi le traitement par lots provoque un effet d’accélération lorsque plusieurs tâches sont exécutées.
Le traitement par lots provoque un effet d’accélération en:
Réduisant les frais généraux grâce à moins de transitions entre les tâches.
Optimisant les ressources par le partage de mémoire entre tâches similaires.
Planifiant intelligemment pour maximiser l’utilisation du CPU.
Minimisant les temps d’inactivité, gardant le CPU active.
Améliorant l’efficacité du cache en traitant des données similaires ensemble.
Ces éléments contribuent à une exécution plus rapide des tâches.
1.3) Nommez les conditions préalables qui doivent être remplies pour le traitement par lots avant que l’exécution d’une tâche ne puisse commencer.
Pour que le traitement par lots commence, chaque programme doit être fourni complètement, incluant toutes les données d’entrée nécessaires. Cela garantit que toutes les informations requises sont disponibles pour une exécution fluide et efficace des tâches.
1.4) Citez des tâches pour lesquelles le traitement par lots est bien adapté.
Le traitement par lots est bien adapté à l’exécution de tâches routinières, car il permet de gérer efficacement des opérations répétitives et prévisibles, optimisant ainsi le temps et les ressources nécessaires. Exemple:
Sauvegarde de données: Création de sauvegardes régulières de systèmes ou de bases de données.
Traitement de données massives: Analyse de grandes quantités de données, comme dans le big data.
Mise à jour de bases de données: Exécution de mises à jour régulières sur des ensembles de données.
1.5) Le traitement par lots est toujours ____________
A interactif
B non interactif
B
Le traitement par lots est généralement non interactif, ce qui signifie que les tâches sont exécutées sans intervention de l’utilisateur pendant le processus. Cela permet d’automatiser des opérations répétitives et de traiter des volumes importants de données sans nécessiter d’interaction en temps réel.
1.6) Citez une application du mode batch, qui est encore populaire aujourd’hui.
une application populaire du mode batch est l’utilisation de fichiers batch et de shell scripts pour automatiser des tâches dans les systèmes d’exploitation. Ces scripts permettent d’exécuter des commandes ou des programmes en série, facilitant ainsi la gestion des tâches répétitives, comme la sauvegarde de fichiers, la mise à jour de logiciels ou le déploiement d’applications.
1.7) Décrire ce qu’est le spooling.
Le spooling (Simultaneous Peripheral Operations On-Line) est un processus qui gère les opérations d’entrée/sortie en les déchargeant dans des fichiers temporaires ou des files d’attente. Cela permet au processeur de continuer à travailler sur d’autres tâches sans attendre la fin de l’opération I/O, optimisant ainsi l’utilisation des ressources. Un exemple courant est l’impression, où les documents sont d’abord mis en file d’attente avant d’être imprimés.
Exercice 2: Temps partagé
2.1) Décrire l’objectif du partage du temps (time sharing) dans les systèmes d’exploitation.
L’objectif du partage du temps dans les systèmes d’exploitation est de permettre à plusieurs utilisateurs ou tâches de partager efficacement les ressources d’un ordinateur, en donnant à chacun un accès équitable et interactif au processeur.
2.2) Décrire comment le partage du temps répartit le temps de calcul entre les processus.
Le partage du temps répartit le temps de calcul entre les processus en utilisant plusieurs techniques:
Tranches de temps: Chaque processus se voit attribuer une période fixe, appelée tranche de temps, durant laquelle il peut s’exécuter. Une fois la tranche écoulée, le système d’exploitation suspend le processus et passe au suivant.
Planification des processus: Un algorithme de planification détermine l’ordre d’exécution des processus, souvent en fonction de critères tels que la priorité ou le temps d’attente.
Changement de contexte: Lorsque le système d’exploitation passe d’un processus à un autre, il effectue un changement de contexte, sauvegardant l’état du processus en cours et chargeant l’état du prochain processus à exécuter.
Équité: Les processus sont généralement traités de manière équitable, permettant à chacun d’accéder au processeur sans être bloqué indéfiniment.
Grâce à ces mécanismes, le partage du temps permet une utilisation efficace du processeur et garantit que plusieurs processus peuvent s’exécuter de manière fluide et simultanée.
2.3) Donnez le nom du programme quasi-parallèle ou de l’exécution du processus.
Multitâche ou Multitasking. Cela désigne la capacité d’un système d’exploitation à exécuter plusieurs processus simultanément ou à les faire passer rapidement d’un état à un autre, donnant l’illusion d’une exécution quasi-parallèle.
2.4) Décrire l’objectif de l’exécution du programme ou du processus quasi-parallèle.
L’objectif de l’exécution quasi-parallèle (multitâche) est de maximiser l’utilisation des ressources système, améliorer la réactivité et l’efficacité, et permettre aux utilisateurs d’interagir avec plusieurs applications simultanément sans délai. Cela facilite également la gestion de tâches de fond sans interrompre les activités en cours.
2.5) Décrire ce qu’est l’ordonnancement (scheduling).
L’ordonnancement (scheduling) est le processus par lequel un système d’exploitation détermine l’ordre et la durée d’exécution des processus sur le processeur. Il optimise l’utilisation des ressources, gère les priorités, utilise différents algorithmes (comme FIFO et Round Robin) et vise à assurer équité et réactivité pour les tâches.
2.6) Décrire ce qu’est le swapping.
Le swapping est un processus dans les systèmes d’exploitation où des segments de mémoire (processus ou pages) sont temporairement déplacés entre la mémoire principale et le stockage secondaire (comme un disque) pour libérer de l’espace mémoire. Cela permet de gérer efficacement la mémoire en exécutant plus de processus que ce que la RAM peut contenir simultanément. Le swapping aide à maintenir les performances du système lorsque la mémoire est saturée.
2.7) Décrire comment fonctionne la protection de la mémoire.
La protection de la mémoire empêche les processus d’accéder à la mémoire des autres ou du système d’exploitation. Elle fonctionne par:
Segmentation et pagination: Division de la mémoire en segments ou pages pour chaque processus.
Table des pages: Mapping des adresses virtuelles aux adresses physiques.
Registres de protection: Définition des limites d’accès en mémoire pour chaque processus.
Gestion des exceptions: Déclenchement d’une erreur si un accès non autorisé est tenté.
Isolation des processus: Chaque processus fonctionne dans son propre espace mémoire.
Cela assure la sécurité et la stabilité du système.
2.8) Décrire le but de la protection de la mémoire.
Le but de la protection de la mémoire est de garantir la sécurité et la stabilité du système en empêchant les processus d’accéder à la mémoire d’autres processus ou du système d’exploitation. Cela protège contre les erreurs et les comportements malveillants, assurant l’intégrité des données et l’isolation des processus.
Exercice 3: Fichiers et répertoires
3.1) Créez un répertoire MyRep dans votre répertoire personnel.
$ mkdir ~/MyRep
La commande mkdir (make directory) est utilisée dans les systèmes d’exploitation de type Unix/Linux et Windows pour créer un nouveau répertoire (dossier).
3.2) Naviguez jusqu’au répertoire MyRep et créez à l’intérieur un fichier vide portant le nom File1.txt. N’utilisez pas d’éditeur pour créer le fichier, mais une ligne de commande.
$ cd ~/MyRep && touch File1.txt
cd ~/MyRep: Change le répertoire courant vers « MyRep » dans le répertoire personnel.
&&: Exécute la prochaine commande seulement si la première réussit.
touch File1.txt: Crée un fichier vide nommé « File1.txt » dans « MyRep ».
Si « MyRep » n’existe pas, le fichier ne sera pas créé.
3.3) Vérifiez la taille du fichier File1.txt.
$ ls -lh File1.txt
ls: Commande de base pour lister le contenu d’un répertoire.
-l: Affiche les détails en format long (permissions, propriétaire, taille, date de modification, etc.).
-h: Rend la taille des fichiers lisible par l’homme (par exemple, 1K, 234M, 2G).
3.4) Modifiez l’heure de modification du fichier File1.txt pour qu’elle corresponde à votre date de naissance.
$ touch -t XXXXYYZZAABB File1.txt
XXXX spécifie l’année.
YY spécifie le mois.
ZZ spécifie le jour du mois.
AA spécifie l’heure.
BB spécifie les minutes.
3.5) Créez un nouveau fichier dans l’interpréteur de commandes File2.txt et insérez dans le nouveau fichier un texte dont le contenu ne se limite pas à une seule ligne. N’utilisez pas d’éditeur pour insérer le texte dans le fichier, mais une ligne de commande.
$ echo -e "Ligne1\nLigne2" > File2.txt
echo -e: Affiche une chaîne de texte et active l’interprétation des caractères spéciaux grâce à -e.
\n: Représente un saut de ligne.
"Ligne1\nLigne2": La chaîne affichée contiendra « Ligne1 » sur une ligne et « Ligne2 » sur la ligne suivante.
>: Redirige la sortie de la commande vers un fichier.
File2.txt: Nom du fichier où le texte sera enregistré. Si le fichier existe, il sera écrasé.
3.6) Affichez la première ligne du fichier File2.txt dans l’interpréteur de commandes.
$ head -n 1 File2.txt
head: Affiche les premières lignes d’un fichier.
-n 1: Spécifie que l’on veut afficher seulement la première ligne.
File2.txt: Nom du fichier dont on souhaite afficher le contenu.
3.7) Ajoutez le contenu de File2.txt à File1.txt. N’utilisez pas d’éditeur, mais une commande en ligne.
$ cat File2.txt >> File1.txt
cat File2.txt: Lit et affiche le contenu du fichier « File2.txt ».
>>: Redirige la sortie vers un fichier, en ajoutant le contenu à la fin de celui-ci, sans écraser son contenu existant.
File1.txt: Nom du fichier cible où le contenu sera ajouté.
3.8) Créez dans votre répertoire personnel un répertoire portant le nom cours_university.
$ mkdir ~/cours_university
La commande mkdir (make directory) est utilisée dans les systèmes d’exploitation de type Unix/Linux et Windows pour créer un nouveau répertoire (dossier).
3.9) Copiez les fichiers File1.txt et File2.txt du répertoire MyRep dans le répertoire cours_university.
$ cp ~/MyRep/* ~/cours_university
cp: Commande utilisée pour copier des fichiers ou des répertoires.
~/MyRep/*: Sélectionne tous les fichiers et répertoires dans le répertoire « MyRep » situé dans le répertoire personnel de l’utilisateur.
~/cours_university: Destination où les fichiers seront copiés, qui est le répertoire « cours_university » dans le répertoire personnel.
3.10) Effacer le répertoire MyRep.
$ rm -rf ~/MyRep
rm: Commande utilisée pour supprimer des fichiers ou des répertoires.
-r: Indique une suppression récursive, permettant de supprimer des répertoires et leur contenu (fichiers et sous-répertoires).
-f: Force la suppression sans demander de confirmation, même si le fichier ou le répertoire est protégé en écriture.
~/MyRep: Chemin vers le répertoire « MyRep » situé dans le répertoire personnel de l’utilisateur.