Passer au contenu

Logiciel

Informatique IGCSE · Sujet 4

Leçon vidéo pour ce sujet Ouvrir la page vidéo
13:11

Matériel et logiciel

Voici un ordinateur tout neuf. Chaque pièce physique fonctionne — le processeur, la mémoire, l'écran, le clavier. Allumez-le, et rien ne se passe. Pas de bureau…

Narration en anglais · sous-titres en anglais et en 中文 au choix

4.1

Matériel et logiciel

Un système informatique est composé de deux parties qui travaillent ensemble.

Le matériel correspond aux composants physiques (CPU, clavier) ; le logiciel correspond aux programmes (applications, OS)
Le matériel est les parties physiques ; le logiciel est les programmes
  • Le matériel désigne les éléments physiques de l'ordinateur — ceux que l'on peut toucher. Exemples : le processeur (CPU), la mémoire, le clavier, l'écran et le disque dur.
  • Le logiciel regroupe les programmes qui contrôlent l'ordinateur et ordonnent au matériel ce qu'il doit faire.

Le matériel ne peut rien faire d'utilisable tout seul. Le logiciel a besoin de matériel pour s'exécuter. Les deux sont nécessaires.

Une carte mère d'ordinateur avec ses puces, ses emplacements et ses connecteurs
La carte mère et les pièces qui lui sont rattachées constituent le matériel — les composants physiques que vous pouvez toucher
Un système d'exploitation de bureau à l'écran
Un système d'exploitation est un logiciel — les programmes qui disent au matériel quoi faire
Vocabulaire Entrainer
English Français
Hardware/ˈhɑːdweə/ matériel
physical/ˈfɪzɪkl/ physique
Software/ˈsɒftweə/ logiciel
programs/ˈprəʊɡræmz/ programmes
4.1

Types de logiciels

Programme
Les candidats doivent être capables de : Notes et orientations
1 Décrire la différence entre les logiciels système et les logiciels applicatifs et donner des exemples de chacun • Les logiciels système fournissent les services dont l'ordinateur a besoin, notamment le système d'exploitation et les logiciels utilitaires • Les logiciels applicatifs fournissent les services dont l'utilisateur a besoin
2 Décrire le rôle et les fonctions de base d'un système d'exploitation • Y compris : – gestion des fichiers – gestion des interruptions – fourniture d'une interface – gestion des périphériques et pilotes – gestion de la mémoire – gestion du multitâche – fourniture d'une plateforme pour exécuter des applications – sécurité système – gestion des comptes utilisateurs
3 Comprendre comment le matériel, le micrologiciel et le système d'exploitation sont nécessaires pour exécuter des logiciels applicatifs • Les applications s'exécutent sur le système d'exploitation • Le système d'exploitation s'exécute sur le micrologiciel • Le chargeur initial (firmware) s'exécute sur le matériel
4 Décrire le rôle et le fonctionnement des interruptions • Y compris : – la génération d'une interruption – son traitement via une routine de service d'interruption – ce qui se produit en conséquence • Les interruptions logicielles incluent la division par zéro et deux processus tentant d'accéder au même emplacement mémoire • Les interruptions matérielles incluent l'appui sur une touche du clavier et le déplacement de la souris

Source : Programme Cambridge International

Le logiciel est divisé en deux types.

Un arbre divisant le Software en system software (system operating system, utilities, drivers, compiler) et application software (word processor, spreadsheet, database, browser)
Le logiciel se divise en system software (qui fait tourner l'ordinateur) et application software (qui permet à l'utilisateur d'accomplir une tâche)

System software

Le logiciel système gère l'ordinateur lui-même et fournit une base sur laquelle d'autres programmes peuvent s'exécuter. Exemples :

  • un système d'exploitation (voir ci-dessous) ;
  • un compilateur et un lieur (outils qui transforment les programmes en une forme exécutable par l'ordinateur) ;
  • un pilote de périphérique — logiciel permettant au système d'exploitation de contrôler un composant matériel ;
  • des logiciels utilitaires — petits outils assurant l'entretien de l'ordinateur (par exemple antivirus, sauvegarde, nettoyage de disque).

Sous le système d'exploitation se trouve le micrologiciel — logiciel stocké en permanence sur ROM ou flash qui s'exécute dès l'allumage de l'ordinateur. Le BIOS et le chargeur de démarrage sont des micrologiciels : ils testent le matériel puis chargent le système d'exploitation. Ainsi, les couches s'empilent comme suit : matériel → micrologiciel → système d'exploitation → logiciels applicatifs, chaque couche s'appuyant sur celle située en dessous.

Application software

Les logiciels applicatifs permettent à l'utilisateur d'accomplir une tâche utile. Exemples :

  • des logiciels de traitement de texte (rédaction de documents) ;
  • des logiciels de tableur (manipulation de nombres dans une grille) ;
  • un système de gestion de bases de données (stockage et recherche de données) ;
  • un navigateur web (affichage de pages Web).
System software Application software
Job fait fonctionner et gère l'ordinateur aide l'utilisateur à accomplir une tâche
Used by l'ordinateur (en arrière-plan) l'utilisateur (directement)
Examples système d'exploitation, pilotes, utilitaires traitement de texte, navigateur, jeux
Vocabulaire Entrainer
English Français
System software/ˈsɪstəm ˈsɒftweə/ logiciel système
operating system/ˈɒpəreɪtɪŋ ˈsɪstəm/ système d'exploitation
compiler/kəmˈpaɪlə/ compileur
linker/ˈlɪŋkə/ lieur
device driver/dɪˈvaɪs ˈdraɪvə/ pilote de périphérique
utility software/juːˈtɪlɪti ˈsɒftweə/ logiciel utilitaire
firmware/ˈfɜːmweə/ firmware
bootloader/ˈbuːtləʊdə/ chargeur d'amorçage
Application software/ˌæplɪˈkeɪʃn ˈsɒftweə/ logiciel applicatif
word processing/wɜːd ˈprəʊsesɪŋ/ traitement de texte
spreadsheet/ˈspredʃiːt/ tableur
database management system/ˈdeɪtəbeɪs ˈmænɪdʒmənt ˈsɪstəm/ système de gestion de base de données
web browser/web ˈbraʊzə/ navigateur web
providing a user interface/prəˈvaɪdɪŋ ə ˈjuːzə ˈɪntəfeɪs/ fournir une interface utilisateur
user interface/ˈjuːzə ˈɪntəfeɪs/ interface utilisateur
managing peripherals/ˈmænɪdʒɪŋ pəˈrɪfərəlz/ gestion des périphériques
peripherals/pəˈrɪfərəlz/ périphériques
managing multitasking/ˈmænɪdʒɪŋ ˈmʌltitæskɪŋ/ gestion du multitâche
multitasking/ˈmʌltitæskɪŋ/ multitâche
providing a platform/prəˈvaɪdɪŋ ə ˈplætfɔːm/ fournir une plateforme
platform/ˈplætfɔːm/ plateforme
processor/ˈprəʊsesə/ processeur
priorities priorités
central processing unit/ˈsentrəl ˈprəʊsesɪŋ ˈjuːnɪt/ unité centrale de traitement
programming language/ˈprəʊɡræmɪŋ ˈlæŋɡwɪdʒ/ langage de programmation
4.1

Le système d'exploitation

Un système d'exploitation (OS) est le principal système logiciel. Il contrôle tout l'ordinateur et permet au matériel, au logiciel applicatif et à l'utilisateur de travailler ensemble. Sans OS, l'ordinateur est très difficile à utiliser.

Quatre couches empilées — utilisateur en haut, puis application software, puis système d'exploitation, puis hardware à la base
Le système d'exploitation se situe entre le matériel et le logiciel applicatif/utilisateur, leur permettant de travailler ensemble

L'OS remplit de nombreux rôles :

  • gérer les fichiers — sauvegarder, ouvrir, nommer, déplacer et supprimer des fichiers ;
  • gérer les interruptions (voir ci-dessous) ;
  • fournir une interface utilisateur afin que l'utilisateur puisse contrôler l'ordinateur ;
  • gérer la mémoire — décider ce qui est conservé dans la RAM et où ;
  • gérer les périphériques et leurs pilotes — contrôler des appareils comme les imprimantes ;
  • gérer la multitâche — permettre à plusieurs programmes de s'exécuter simultanément ;
  • fournir une plateforme pour exécuter des logiciels applicatifs.
  • gérer la sécurité — comptes utilisateurs, mots de passe et droits d'accès.

Exemple corrigé. Identifiez la fonction du système d’exploitation dans chaque cas : (a) un élève enregistre une dissertation dans un dossier nommé Histoire ; (b) un pilote d’imprimante envoie un document à l’imprimante ; (c) la musique continue de jouer pendant que l’élève navigue sur le Web ; (d) un élève doit se connecter avant d’utiliser un ordinateur de l’école.

(a) gestion des fichiers ; (b) gestion des périphériques et de leurs pilotes ; (c) gestion du multitâche (le système d’exploitation partage le temps processeur et la mémoire entre les deux programmes) ; (d) gestion de la sécurité (comptes utilisateurs et droits d’accès). À l’examen, nommez la fonction et reliez-la à l’exemple donné.

Vocabulaire Entrainer
English Français
interrupt/ˈɪntərʌpt/ interruption
4.1

Interruptions

Une interruption est un signal envoyé au processeur pour lui indiquer qu'il doit traiter une tâche immédiate.

Une interruption peut provenir de trois sources :

  • matériel — par exemple une touche est pressée, ou une imprimante manque de papier ;
  • logiciel — par exemple un programme essaie de diviser par zéro ;
  • l’utilisateur — par exemple, l’utilisateur appuie sur une touche « annuler ».

Lorsqu'une interruption arrive, le processeur stoppe ce qu'il est en train de faire, sauvegarde son emplacement, et traite (gère) l'interruption. Une fois celle-ci traitée, il retourne à ce qu'il faisait auparavant. Cela permet à l'ordinateur de réagir rapidement aux événements importants.

Un cycle : programme principal en cours d'exécution, puis lors d'une interruption, le CPU sauvegarde son état, exécute le routine de service d'interruption, restaure l'état et reprend
Lors d'une interruption, le CPU sauvegarde son emplacement, exécute le routine de service d'interruption, puis restaure son emplacement et continue

Les interruptions ont des priorités différentes. Le processeur vérifie la présence d’interruptions à la fin de chaque cycle de recherche-exécution. Si une interruption a une priorité supérieure à celle de la tâche en cours, le processeur sauvegarde la tâche en cours et exécute la routine de traitement de l’interruption (ISR) correspondante. Une interruption de priorité inférieure attend dans une file jusqu’à ce que le processeur soit disponible.

Exemple corrigé. Un élève saisit un document pendant son impression et l’imprimante manque de papier. Décrivez comment l’ordinateur gère cette situation.

  1. L’imprimante envoie une interruption matérielle au processeur.
  2. À la fin de son cycle en cours, le processeur vérifie la priorité de l’interruption. Celle-ci est supérieure à celle de la tâche en cours : le processeur sauvegarde donc l’état de cette tâche (les valeurs de ses registres).
  3. Il exécute la routine de traitement de l’interruption de l’imprimante, qui amène le système d’exploitation à afficher un message tel que « Plus de papier ».
  4. Il restaure ensuite l’état sauvegardé et reprend le traitement de texte, afin que l’élève puisse continuer à saisir son document.
  5. Lorsque du papier est ajouté, l’imprimante envoie une autre interruption et l’impression reprend.
Explorer

Comment le CPU gère une interruption

Étape par étape d'une interruption. Le CPU pause ce qu'il fait, traite l'événement urgent, puis reprend exactement là où il s'était arrêté — c'est ainsi qu'un processeur gère simultanément le clavier, l'imprimante et la minuterie.

4.2

Langages de programmation

Programme
Les candidats doivent être capables de : Notes et orientations
1 Expliquer ce que signifie un langage de haut niveau et un langage de bas niveau, y compris les avantages et inconvénients de chacun • Les avantages et inconvénients incluent : – facilité de lecture et d'écriture du code, par exemple le langage de bas niveau est difficile à lire – facilité de débogage du code – indépendance de la machine – manipulation directe du matériel
2 Comprendre que le langage assembleur est une forme de langage de bas niveau utilisant des mnémoniques, et qu'un assembleur est nécessaire pour traduire un programme en langage assembleur en code machine
3 Décrire le fonctionnement d'un compilateur et d'un interpréteur, y compris la traduction du langage de haut niveau par chacun et la signalisation des erreurs • Un compilateur traduit tout le code en une fois avant de l'exécuter, produisant un fichier exécutable • Un interpréteur traduit et exécute le code ligne par ligne • Un compilateur fournit un rapport d'erreurs pour l'ensemble du code si des erreurs sont détectées • Un interpréteur arrête l'exécution lorsqu'une erreur est trouvée
4 Expliquer les avantages et inconvénients d'un compilateur et d'un interpréteur • Inclure la compréhension selon laquelle un interpréteur est principalement utilisé lors du développement d'un programme et un compilateur est utilisé pour traduire le programme final
5 Expliquer le rôle d'un IDE dans l'écriture de code de programme et les fonctions courantes fournies par les IDE • Y compris : – éditeurs de code – environnement d'exécution – traducteurs – diagnostics d'erreur – complétion automatique – correction automatique – mise en forme automatique

Source : Programme Cambridge International

Tous les ordinateurs traitent les données à l'aide de l'unité centrale de traitement (UCP). Pour faire exécuter des tâches à l'UCP, on écrit des programmes dans un langage de programmation. Il en existe deux catégories.

High-level languages

Un langage de haut niveau utilise du texte ressemblant à l'anglais (par exemple Python). Il se caractérise par :

  • d'être facile à lire, écrire et corriger par les humains;
  • d'être indépendant de l'ordinateur — le même programme peut s'exécuter sur différents types d'ordinateurs.

Langages de bas niveau

Un langage de bas niveau correspond directement aux fonctionnalités matérielles. Il comprend :

  • le code machine — instructions écrites en binaire (0s et 1s), exécutées directement par l'UCP;
  • le langage assembleur — code machine représenté par des mnémoniques (codes mots courts) au lieu du binaire.

Un langage de bas niveau est lié à un type de processeur spécifique, ce qui signifie qu'un programme conçu pour un processeur peut ne pas s'exécuter sur un autre. Il est utilisé lorsque le programmeur nécessite un contrôle total du matériel ou souhaite obtenir du code très rapide et compact.

Trois couches empilées : langage de haut niveau en haut, puis assembleur, puis code machine en bas
Les langages de haut niveau sont proches du langage humain et fonctionnent sur n'importe quel ordinateur ; les langages de bas niveau (assembleur et code machine) sont proches du matériel et liés à un type de CPU spécifique
Explorer

Laboratoire de concepts informatiques

Classez les exemples concrets selon le concept informatique qu'ils illustrent.

Vocabulaire Entrainer
English Français
high-level language/haɪ ˈlevl ˈlæŋɡwɪdʒ/ langage de haut niveau
low-level language/ləʊ ˈlevl ˈlæŋɡwɪdʒ/ langage de bas niveau
machine code/məˈʃiːn kəʊd/ code machine
assembly language/əˈsemblɪ ˈlæŋɡwɪdʒ/ langage assembleur
specific/spəˈsɪfɪk/ spécifique
translator/trænˈsleɪtə/ traducteur
4.2

Traducteurs

L'UCP ne peut exécuter que du code machine. Un programme en haut niveau doit d'abord être converti en code machine. Le logiciel effectuant cette conversion est un traducteur. Il en existe trois types : un compilateur et un interpréteur (pour le code haut niveau), ainsi qu'un assembleur (pour le code bas niveau).

Compilateur

Un compilateur traduit le programme entier en code machine avant son exécution. Une fois traduits, les codes machines peuvent être exécutés plusieurs fois sans avoir besoin de recompiler.

  • la traduction a lieu une seule fois, en intégralité;
  • il génère un rapport d'erreur couvrant l'ensemble du code source, listant les erreurs de traduction détectées;
  • le programme final s'exécute rapidement et ne nécessite pas la présence du compilateur pour tourner.

Interprète

Un interpréteur traduit et exécute le programme ligne par ligne.

  • il s'arrête à la première erreur rencontrée, ce qui facilite le débogage;
  • le programme s'exécute plus lentement, car il est traduit à chaque lancement;
  • l'interpréteur doit être présent à chaque exécution du programme.

Utilisez un compilateur lorsque vous souhaitez distribuer un programme final rapide. Utilisez un interpréteur lors de l'écriture et du test d'un programme pour repérer facilement les erreurs.

Comparaison expliquée — quand a lieu l'exécution ?

À vous. Utilisez les modèles du syllabus : compilation de tout le programme et interprétation ligne par ligne. Examinez cette courte description de source ; il ne s'agit pas d'un programme dans un langage particulier.

Ligne Description de la source
1 Une instruction valide affiche Start
2 Une addition incomplète manque une valeur après le signe plus
3 Une instruction valide affiche Done

La ligne 2 contient une erreur de traduction. Que s'affiche-t-il avant que cette erreur ne soit signalée par chaque traducteur ? La ligne 3 sera-t-elle exécutée ? Expliquez l'ordre de la traduction et de l'exécution.

Tracé du compilateur. Tout le code source est traduit avant l'exécution. L'erreur dans la ligne 2 provoque l'échec de la compilation. Un rapport d'erreur est fourni pour l'ensemble du code source. Le nouveau programme n'est pas exécuté, donc ni Start ni Done ne s'affichent.

Tracé de l'interpréteur. La ligne 1 est traduite et exécutée, affichant Start. L'interpréteur rencontre ensuite l'erreur dans la ligne 2 et interrompt l'exécution à cet endroit. La ligne 3 n'est jamais atteinte, donc Done ne s'affiche pas.

Ces tracés illustrent le modèle du syllabus ; les outils de langage réels peuvent combiner ces approches. Un traducteur signale uniquement les erreurs qu'il peut détecter, et non toutes les fautes logiques possibles dans le programme.

Transfert — développement et publication. Une équipe souhaite localiser les erreurs lors du test de courts extraits. Plus tard, les clients doivent exécuter le programme fini plusieurs fois sans installer son traducteur. Choisissez un traducteur pour chaque étape et expliquez pourquoi. Dans l'environnement de développement intégré (EDI), nommez un outil pour saisir le code source et un outil pour investiguer une erreur signalée. Enfin, décidez si une traduction réussie prouve qu'un total calculé est correct.

Réponse corrigée. Selon le modèle syllabique, un interpréteur convient au développement : la traduction et l'exécution ligne par ligne s'arrêtent à l'erreur rencontrée, aidant l'équipe à la localiser. Un compilateur convient à la publication : une compilation réussie crée un fichier exécutable qui peut être exécuté plusieurs fois sans le compilateur. Le code source inchangé ne nécessite pas de retranslation pour chaque exécution. Un éditeur de code saisit et modifie le code source ; les diagnostics d'erreurs aident à localiser et expliquer les erreurs signalées ; l'environnement d'exécution permet à l'équipe de tester le programme. Un mauvais total peut résulter d'une logique défectueuse après une traduction réussie. Testez avec des entrées connues, comparez les résultats réels et attendus, et investiguez le calcul.

Assembleur

Un assembleur traduit un programme en langage assembleur de bas niveau (écrit en mnémotechniques telles que LDA, ADD) en code machine. Chaque mnémonique devient une instruction machine — une traduction directe un-à-un, contrairement à un compilateur ou un interpréteur, qui traitent du code de haut niveau.

Un compilateur traduisant un programme entier une fois en code machine exécuté plusieurs fois, contre un interpréteur traduisant et exécutant ligne par ligne
Un compilateur traduit le programme entier une fois en code machine ; un interpréteur traduit et exécute ligne par ligne

Exemple corrigé. Une équipe écrit un programme. Pendant son développement, elle souhaite trouver et corriger rapidement les erreurs ; lors de sa distribution, elle veut que les clients puissent l’exécuter rapidement sans voir le code source. Quel traducteur convient à chaque étape ? Pendant le développement, utilisez un interpréteur : il traduit et exécute une ligne à la fois et s’arrête à la première erreur, ce qui permet de la localiser facilement. Pour la distribution, utilisez un compilateur : il traduit une fois tout le programme en code machine, qui s’exécute ensuite rapidement sans traducteur, et le client ne reçoit que l’exécutable plutôt que le code source. Les deux ne sont pas rivaux : nommez l’étape et donnez la raison, car dire seulement « un compilateur est plus rapide » ne rapporte aucun point.

Vocabulaire Entrainer
English Français
interpreter/ɪnˈtɜːprɪtə/ interpréteur
integrated development environment/ˈɪntɪɡreɪtɪd dɪˈveləpmənt enˈvaɪrənmənt/ environnement de développement intégré (EDI)
code editor/kəʊd ˈedɪtə/ éditeur de code
error diagnostics/ˈerə ˌdaɪəɡˈnɒstɪks/ diagnostic d'erreur
run time environment/rʌn taɪm enˈvaɪrənmənt/ environnement d'exécution
assembler/əˈsemblə/ assembleur
auto-completion/ˈɔːtəʊ kəmˈpliːʃn/ complétion automatique
auto-correction/ˈɔːtəʊ kəˈrekʃn/ auto-correction
prettyprinting/ˈpretɪprɪntɪŋ/ mise en forme de sortie
4.2

Environnement de développement intégré (IDE)

Un environnement de développement intégré (EDI) est un logiciel qui aide à écrire des programmes. Il regroupe de nombreux outils utiles dans un seul endroit :

  • un éditeur de code — pour taper votre programme;
  • un environnement d'exécution — pour exécuter le programme afin de le tester;
  • un traducteur — un compilateur ou un interpréteur pour convertir votre code en code machine;
  • les diagnostics d'erreurs — des messages qui aident à trouver et comprendre les fautes;
  • l'autocomplétion et l'autocorrection — l'EDI termine ou corrige le code à mesure que vous tapez;
  • l'esthétique du code — présenter le code proprement avec des couleurs et des retraits pour faciliter sa lecture.
Code source dans un éditeur : un IDE combine éditeur, débogueur et outils d'exécution dans un seul endroit
Code source dans un éditeur : un IDE combine éditeur, débogueur et outils d'exécution dans un seul endroit
4.2

Conseils d'examen

  • Le matériel (Hardware) désigne les composants physiques ; le logiciel (Software) désigne les programmes. Le logiciel système fait fonctionner l'ordinateur (Système d'exploitation, pilotes, utilitaires) ; le logiciel applicatif effectue une tâche pour l'utilisateur.
  • Un compilateur traduit le programme entier d'un coup (le programme final s'exécute vite et toutes les erreurs sont signalées à la fin) ; un interpréteur traduit ligne par ligne (il s'arrête à la première erreur, s'exécute plus lentement et est requis à chaque lancement).
  • Les langages de haut niveau sont proches de l'anglais et fonctionnent sur tout ordinateur ; les langages de bas niveau (assembleur, code machine) sont liés à un type de CPU spécifique.
  • Une interruption (interrupt) est un signal qui force le CPU à s'arrêter, sauvegarder sa position, traiter l'événement, puis reprendre là où il était arrêté.
  • Apprenez les rôles du système d'exploitation : gestion des fichiers, de la mémoire, des périphériques, du multitâche, de la sécurité et de l'interface utilisateur.

Leçons interactives sur ce sujet

Traversez-le étape par étape, avec des exercices à vérification instantanée.

Épreuves Passées

Plus de sujets dans Informatique IGCSE

Se connecter ou créer un compte

IGCSE, A-Level & AP