💻nsi

Système d'exploitation en NSI : le guide complet

13 septembre 2026 9 min de lecture

Tu allumes ton ordinateur, tu ouvres ton navigateur, ta musique se lance, et tu passes d'une fenêtre à l'autre sans y penser. Derrière cette fluidité, il y a un logiciel invisible qui orchestre tout : le système d'exploitation. Au programme de NSI (Première et Terminale), cette notion est essentielle, car elle relie le matériel, les processus et la programmation. Dans ce guide, on va décortiquer ensemble ce qu'est un système d'exploitation en NSI, comment il gère les processus, et comment tu peux manipuler tout ça en Python.

Qu'est-ce qu'un système d'exploitation ?

Un système d'exploitation (en anglais Operating System, souvent abrégé OS) est un ensemble de programmes qui fait le lien entre le matériel (processeur, mémoire, disques, périphériques) et les applications que tu utilises. Sans lui, chaque logiciel devrait connaître les détails électroniques de ta machine : mission impossible.

Tu connais sûrement Windows, macOS, Linux, Android ou iOS. Tous remplissent les mêmes rôles fondamentaux :

  • Gérer les processus : lancer, arrêter et ordonnancer les programmes en cours d'exécution.
  • Gérer la mémoire : allouer de la RAM aux programmes et éviter que l'un écrase les données d'un autre.
  • Gérer les fichiers : organiser le stockage en dossiers et fichiers, avec des droits d'accès.
  • Gérer les entrées/sorties : communiquer avec le clavier, la souris, l'écran, le réseau.
  • Offrir une interface : graphique (fenêtres, icônes) ou en ligne de commande (terminal).

En NSI, on s'intéresse surtout à deux aspects : la notion de processus et l'ordonnancement. C'est ce que tu retrouveras dans les exercices et à l'épreuve du bac.

Les processus : le cœur du système d'exploitation en NSI

Un processus est un programme en cours d'exécution. Un programme sur ton disque est une suite d'instructions statiques ; quand tu le lances, le système d'exploitation crée un processus avec son propre espace mémoire, son compteur ordinal (l'adresse de la prochaine instruction), ses registres, etc.

Un même programme peut donner naissance à plusieurs processus. Par exemple, si tu ouvres trois fois le navigateur, tu as trois processus distincts. Le système d'exploitation leur attribue un identifiant unique, le PID (Process IDentifier).

États d'un processus

Un processus passe par plusieurs états :

  • Élu (ou running) : il s'exécute sur le processeur.
  • Prêt (ou ready) : il attend son tour pour utiliser le processeur.
  • Bloqué (ou waiting) : il attend une ressource, par exemple une entrée clavier ou une lecture disque.
  • Terminé : il a fini son exécution.

Le système d'exploitation fait passer les processus d'un état à l'autre. Comme un processeur ne peut exécuter qu'une instruction à la fois (par cœur), il faut choisir lequel exécuter : c'est le rôle de l'ordonnanceur.

Ordonnancement des processus

L'ordonnanceur applique une politique d'ordonnancement. Les algorithmes classiques au programme sont :

  • FIFO (First In, First Out) : premier arrivé, premier servi. Simple mais peut bloquer si un processus long arrive en premier.
  • Tourniquet (Round Robin) : chaque processus reçoit un quantum de temps, puis passe à la fin de la file. Équitable et adapté au temps partagé.
  • Priorités : chaque processus a une priorité ; le plus prioritaire s'exécute d'abord.
  • Plus court d'abord (Shortest Job First) : on exécute le processus dont le temps restant est le plus faible.

Ces algorithmes sont souvent illustrés par des diagrammes de Gantt. Tu peux les retrouver dans les cours NSI et les fiches de révision.

Un exemple concret en Python : simuler un ordonnanceur

Pour bien comprendre, rien ne vaut un peu de code. Voici une simulation simple d'un ordonnanceur tourniquet (Round Robin) en Python. Chaque processus a un nom et un temps d'exécution restant. On leur donne un quantum de 2 unités de temps.

def tourniquet(processus, quantum):
    """Simule un ordonnancement Round Robin.
    processus : liste de [nom, temps_restant]
    quantum : temps maximal alloué à chaque tour
    """
    file = [p[:] for p in processus]  # copie pour ne pas modifier l'original
    temps = 0
    while file:
        nom, restant = file.pop(0)
        duree = min(quantum, restant)
        temps += duree
        restant -= duree
        print(f"t={temps-duree} -> {nom} s'exécute pendant {duree}")
        if restant > 0:
            file.append([nom, restant])  # retour en fin de file
        else:
            print(f"   {nom} terminé à t={temps}")

# Exemple d'utilisation
processus = [["P1", 5], ["P2", 3], ["P3", 2]]
tourniquet(processus, 2)

En exécutant ce code, tu verras défiler l'ordre d'exécution. C'est exactement ce que fait un système d'exploitation, mais à une échelle bien plus rapide et avec des centaines de processus. Tu peux retrouver d'autres exemples Python sur la référence Python de nsi-lycee.fr.

Ce que fait ce code, étape par étape

  • On copie la liste des processus pour ne pas modifier l'original.
  • On prend le premier processus de la file (pop(0)).
  • On lui accorde le quantum ou ce qu'il lui reste (min).
  • On met à jour le temps global et le temps restant.
  • S'il n'a pas fini, on le replace à la fin de la file.
  • Sinon, on affiche qu'il est terminé.

Ce petit programme te permet de visualiser l'ordonnancement sans entrer dans les détails du noyau Linux. C'est exactement le niveau attendu en NSI.

Cas d'usage : le multitâche au quotidien

Quand tu écoutes de la musique, que tu télécharges un fichier et que tu écris un document en même temps, ton système d'exploitation jongle avec plusieurs processus. Sur un processeur monocœur, il alterne très vite entre eux : c'est le multitâche préemptif. Sur un processeur multicœur, plusieurs processus peuvent réellement s'exécuter en parallèle.

Les systèmes modernes utilisent des threads (fils d'exécution) à l'intérieur d'un même processus. Un thread partage la mémoire de son processus, ce qui permet une communication plus rapide, mais demande de la synchronisation pour éviter les conflits.

Autre cas concret : la gestion des fichiers. Le système d'exploitation maintient une table des fichiers ouverts, gère les droits (lecture, écriture, exécution) et assure la cohérence. En Python, quand tu fais open("fichier.txt", "r"), tu demandes au système d'exploitation d'ouvrir un fichier et de te renvoyer un descripteur.

Comment réviser cette notion pour le bac NSI

Le système d'exploitation est un chapitre qui tombe régulièrement à l'épreuve écrite et pratique. Voici quelques conseils :

  • Maîtrise le vocabulaire : processus, thread, ordonnanceur, quantum, PID, état d'un processus.
  • Entraîne-toi à simuler des ordonnancements FIFO, tourniquet et par priorités sur papier. Dessine des diagrammes de Gantt.
  • Code : sache écrire une petite simulation en Python, comme celle ci-dessus. Vérifie bien les indices et les copies de listes.
  • Relie cette notion aux autres chapitres : architecture matérielle, réseaux, bases de données.
  • Utilise les ressources : parcours les cours et les fiches pour t'auto-évaluer.

Si tu veux approfondir ou obtenir de l'aide personnalisée, tu peux aussi consulter Allolycee pour des ressources complémentaires, ou Allobac pour préparer sereinement les épreuves du bac.

Conclusion

Le système d'exploitation est bien plus qu'un simple logiciel : c'est le chef d'orchestre de ta machine. En NSI, tu dois retenir ses rôles principaux, la notion de processus et les algorithmes d'ordonnancement. Avec un peu de pratique en Python, ces concepts deviennent concrets et passionnants. Alors n'hésite pas à coder ta propre simulation, à tester différents quantums et à comparer les résultats. Tu verras, c'est en expérimentant qu'on progresse le plus vite. Bon courage et bonne programmation !

📚 Pour aller plus loin

Questions fréquentes

Qu'est-ce qu'un système d'exploitation en NSI ?

Un système d'exploitation est un ensemble de programmes qui gère le matériel (processeur, mémoire, périphériques) et fournit des services aux applications. En NSI, on étudie surtout la gestion des processus et l'ordonnancement.

Quelle est la différence entre un programme et un processus ?

Un programme est un fichier statique sur le disque, une suite d'instructions. Un processus est ce programme en cours d'exécution, avec son propre espace mémoire, son PID et son état.

Quels sont les états d'un processus ?

Un processus peut être élu (en cours d'exécution), prêt (en attente du processeur), bloqué (en attente d'une ressource) ou terminé.

Qu'est-ce que l'ordonnancement tourniquet (Round Robin) ?

C'est un algorithme où chaque processus reçoit un quantum de temps fixe. S'il n'a pas fini, il retourne à la fin de la file d'attente. Cela garantit une bonne répartition du temps processeur.

Comment simuler un ordonnanceur en Python ?

On peut utiliser une file (liste) de processus avec leur temps restant, prendre le premier, lui allouer un quantum, puis le remettre en fin de file s'il n'est pas terminé. Un exemple complet est donné dans cet article.

Le système d'exploitation est-il au programme du bac NSI ?

Oui, la notion de processus et d'ordonnancement fait partie du programme de Première et Terminale NSI. Elle peut être évaluée à l'écrit comme à l'épreuve pratique.

Bravo ! Tu as lu cet article
Inscris-toi pour sauvegarder ta progression et gagner des XP
Creer mon compte
système d'exploitation NSIOS processusordonnancement processusprogramme NSIbac NSI
Pixel