00 - Introduction
00 - Introduction
00 - Introduction
Spécialité NSI
INTRODUCTION
Dans cette introduction, nous découvrirons les principales caractéristiques d’un ordinateur et d’un système
d’exploitation. Nous verrons comment utiliser un environnement de développement pour ajouter des
applications.
ISN INTRODUCTION
1
ISN INTRODUCTION
La plupart des ordinateurs actuels (ordinateurs de bureau, tablettes, smartphones, etc .) sont bâtis autour du
même modèle théorique, l’architecture de Von Neumann1. Voici les composants essentiels de cette
architecture :
- la taille des données qu’il est capable de traiter (sur les ordinateurs actuels : 32 bits ou 64
bits).
La mémoire vive
La taille de la mémoire est généralement exprimée en agrégat de 8 bits appelés octets. Sur les
ordinateurs actuels quelques milliards d’octets. Elle s’exprime en giga octets (GO). Si l’adresse
d’une case est codée sur n bits, la taille de la mémoire peut atteindre 2n octets. Par exemple, les
adresses d’une mémoire de 1 GO sont codées sur 30 bits2, celles d’une mémoire de 4 GO sur 32 bits.
1
John Von Neumann (1903-1957) est un mathématicien et physicien américano-hongrois.
2
230 1073741824
2
ISN INTRODUCTION
La mémoire vive est volatile : elle perd ses données lorsque l’ordinateur n’est plus alimenté en
électricité, contrairement à la ROM3 ou au disque dur.
Les périphériques
L’écran, le clavier, la souris, le disque dur, la carte son, le lecteur/graveur de CD, la carte réseau
sont des exemples de périphériques. Les périphériques permettent au processeur d’échanger des
informations avec l’extérieur.
Le bus
Le processeur, la mémoire et les périphériques sont reliés un canal appelé bus de communication. On
distingue le bus de données qui permet l’échanger des données entre le processeur et la mémoire, et
le bus d’adresses qui permet d’accéder à une case mémoire. Le processeur dispose en outre des bus
d’entrées et de sorties qui permettent d’échanger des données avec les périphériques.
Carte mère
Le processeur d’un ordinateur possède une unité de contrôle et une unité de calcul.
L’unité de contrôle est chargée de lire les programmes enregistrés dans la mémoire et de fournir à l’unité de
calcul la séquence d’instructions à exécuter. Le processeur et la mémoire sont reliés par un bus d’adresses et
un bus de données.
La mémoire peut contenir des milliards de cases mémoire. Elle contient les données et les programmes.
Le processeur possède un très petit nombre de cases mémoires à accès très rapide, appelées registres. Ces
registres peuvent contenir des données ou des adresses.
3
En anglais : Read Only Memory. On trouve ce type de mémoire sur la carte mère où elle sert à stocker un
petit programme, le BIOS (Basic Input/Ouput System) qui est le premier programme exécuté au démarrage
de l’ordinateur.
3
ISN INTRODUCTION
Périphériques
Chaque processeur est associé à un jeu d’instructions. Les programmes sont organisés en une séquence
utilisant ce jeu instructions. Chaque instruction possède un code et un paramètre. Elle occupe un nombre fixe
de cases mémoire de sorte que le processeur sache où se trouve l’instruction suivante. Le jeu d’instruction
doit permettre par exemple d’effectuer les tâches suivantes :
Charger une donnée dans un registre. Cette donnée peut être passée en paramètre ou contenue dans
une case mémoire.
Écrire dans une certaine case mémoire une donnée située dans un registre.
Faire un calcul (logique ou arithmétique) avec les données contenues dans les registres et mettre le
résultat dans un registre.
Aller à une instruction située à une certaine adresse (branchement).
Aller à une instruction située à une certaine adresse si A contient zéro ou passer à l’instruction
suivante dans le cas contraire (branchement conditionnel).
Un système d’exploitation est un programme qui est chargé en mémoire vive au démarrage de l’ordinateur et
qui y reste jusqu’à son extinction. Un système d’exploitation effectue les tâches suivantes :
shell4. Il permet de lancer des commandes du système. Sur les ordinateurs modernes le shell se présente sous
la forme d’une interface graphique permettant, par des clics de souris par exemple, de lancer des applications
telles que des navigateurs Web, des jeux, des logiciels de traitement de texte, des explorateurs, etc. On peut
aussi lancer des commandes système à l’aide d’un shell en mode texte5. Sur les premiers ordinateurs, c’était
d’ailleurs la seule façon de faire.
Système de fichiers
Les fichiers sont organisés en arborescence. Cette organisation permet de classer et de retrouver facilement
les fichiers. En effet, au bout de quelques années d’utilisation, un utilisateur peut accumuler des dizaines,
voire des centaines de milliers de fichiers personnels.
Sous Windows, le disque dur est partitionné en plusieurs disques : C, D, etc. Chaque disque a son propre
système de fichiers. Le chemin d’accès d’un fichier est la liste des répertoires qu’il faut parcourir pour y
accéder depuis la racine qui porte le nom du disque. Les répertoires sont séparés par des \.
Exemple
C:\Users\JDUPOND\MesImages\photos2013\MesVacances\plage.jpg
est le chemin d’accès à un fichier correspondant à une photo de vacances de J. DUPOND. On constate que cet
utilisateur organise ses fichiers intelligemment de sorte à pouvoir retrouver facilement un fichier particulier. S’il cherche
la photo plage.jpg, il va dans le dossier MesImages, puis dans celui de l’année de la photo. Enfin il va dans le dossier
MesVacances, car c’est une photo qu’il a prise en vacances. On peut imaginer que cet utilisateur possède d’autres
dossiers, permettant de classer les fichiers relatifs à son travail, sa musique, ses jeux, ses vidéos, … On peut donc
modéliser cette organisation sous la forme d’un arbre :
Windows
Programmes
MaMusique
C
photos2013 MesVacances plage.jpg
MesImages
photos2012
JDUPOND
Travail
MesVideos
Utilisateurs
Jeux
XDURAND
Sous Unix, tous les fichiers sont organisés en une seule arborescence. La racine a le nom /. Ce dossier contient un sous
dossier nommé home qui contient les fichiers Les répertoires et les fichiers sont séparés par des /.
/home/JDUPOND/MesImages/photos2013/MesVacances/plage.jpg
4
Coquille en anglais
5
Sous Windows, cela se fait dans la fenêtre d’invite de commande
5
ISN INTRODUCTION
En pratique
Les fichiers sont codés en binaire. Ils se présentent sous la forme d’une suite d’octets sans signification a priori. Les
applications qui utilisent les fichiers décident de les interpréter (lorsque cela est possible) sous la forme de fichiers
images, sons, vidéo, programmes exécutables, etc. Les extensions telles que jpg, mp3, exe, donnent une indication
au système de l’application à utiliser.
Le système d’exploitation maintient à jour une table de fichiers dans un emplacement fixé du disque dur. Cette
table contient pour chaque fichier certaines informations dont :
la date de création, de dernière modification ;
la taille ;
l’emplacement ;
les droits d’accès (lecture, écriture, …).
Du point de vue du système d’exploitation, un dossier est un fichier comme les autres. Il contient la liste des noms
des fichiers ou des dossiers qu’il contient.
Le lancement d’applications
Pour lancer une application à partir du shell graphique, on clique sur l’icône correspondante. On peut aussi
lancer une application par le shell en mode texte.
Le système vérifie d’abord si l’utilisateur possède les droits d’accès à l’application. Si c’est le cas, il réserve
une partie de la mémoire vive au fichier exécutable de l’application et aux données nécessaires à celle-ci. Par
exemple, si on clique sur un fichier photo.jpg, le système lance l’application associée par défaut aux
fichiers possédant l’extension jpg ( Gimp, Microsoft Photo Gallery, …). Il charge ensuite en mémoire vive
le fichier exécutable de cette application, ainsi que le fichier photo.jpg. Pour lancer l’application, le
système effectue un branchement vers la première instruction du programme.
Le multitâche
Lorsqu’on utilise un ordinateur, on lance en général plusieurs applications : un éditeur de texte pour
travailler, le navigateur Web pour voir ses mails de temps en temps, le lecteur MP3 pour travailler en
musique, etc. Cependant, le processeur ne peut effectuer qu’une seule tâche à la fois. En pratique, grâce à un
mécanisme d’interruption, le système exécute à tour de rôle les applications lancées. Chaque fois qu’une
application est interrompue, le système reprend la main en gardant en mémoire les données courantes
nécessaires à l’exécution de cette l’application, puis lance une autre application en attente. Chaque
application dispose d’un temps d’exécution très court, de l’ordre de quelques dixièmes de milliseconde, ce
qui donne l’illusion de la multitâche.
Généralités
Pour ajouter de nouvelles applications à un ordinateur, qu’on veut programmer soi-même par exemple, on
doit pouvoir accéder aux ressources de l’ordinateur : processeur, clavier, souris, disque dur, écran, réseau etc.
Le processeur devra exécuter les instructions que l’on aura écrites. On ne peut pas en pratique utiliser le jeu
d’instructions propre au processeur, le langage machine. En effet, le langage machine est pratiquement
illisible. De plus, un programme élaboré sur un ordinateur ne pourra probablement pas s’exécuter sur un
autre ordinateur avec un processeur différent.
Pour ces raisons, on a recourt à des langages de programmation dont on peut distinguer deux familles :
6
ISN INTRODUCTION
Les programmes écrits dans ces langages sont traduits, grâce à un programme, appelé compilateur, dans le
langage machine.
Les programmes écrits dans ces langages sont interprétés et exécutés instruction après instruction sans être
traduits dans le langage du processeur. Un programme, appelé interpréteur, se charge de cette tâche. Les
programmes écrits dans ces langages ont l’avantage d’être portables. Ils peuvent être exécutés sur n’importe
quel ordinateur, pour autant que l’interpréteur du langage propre à la machine soit installé. Pour Java,
l’interpréteur est le JRE6 et pour le langage Python, c’est l’interpréteur Python.
Il existe des logiciels qui permettent d’écrire des programmes et de les exécuter. Ces logiciels s’appellent
Environnement de Développement Intégré (IDE). Des exemples sont : Eclipse, CodeBlocks, NetBeans, …
L’IDE standard de Python s’appelle l’IDLE. C’est celui qu’on utilisera dans le cadre de ce cours.
L’environnement Python est gratuit et téléchargeable sur le site officiel :
http://www.python.org/
Protections
Il faut se souvenir que c’est le système d’exploitation qui permet d’accéder aux ressources de l’ordinateur et
qu’il gère les droits des utilisateurs concernant les fichiers et les périphériques. Si un programme veut
accéder à des fichiers ou à des périphériques, il doit laisser la main au système qui vérifie les droits
nécessaires et donne sa réponse. Si les conditions d’accès à la ressource ne sont pas remplies, le programme
s’arrête. Les langages de programmation possèdent des fonctions qui permettent d’accéder à des commandes
du système. On parle d’appels système.
Exercices
Le but des exercices suivants est de prendre en main l’IDLE Python et n’a pas pour objectif d’acquérir un
savoir-faire concernant la manipulation des fenêtres et des fichiers sous Python. On écrira les programmes
donnés sans chercher, dans un premier temps, à en comprendre tous les détails.
Voici le programme avec les commentaires. Un commentaire est une ligne qui commence par le symbole #.
Cette ligne est ignorée par l’interpréteur. Elle sert aux programmeurs.
6
Java Runtime Environment, ce qui se traduit par : environnement d’exécution Java.
7
ISN INTRODUCTION
# affichage du bouton
bouton.pack()
1. Dans l’IDLE Python, ouvrir un nouveau fichier et l’enregistrer dans le dossier ExosPython, sous le
nom exo2 par exemple.
2. Recopier le petit programme suivant qui permet de créer et d’ouvrir un fichier texte nommé
essai.txt.
# création du fichier
fichier = open("essai.txt",mode ="w")
# fermeture du fichier
fichier.close()
3. Exécuter le programme. Quels fichiers sont maintenant présents dans le dossier ExosPython ?
Donner un autre moyen de créer le fichier essai à l’aide du Shell du système d’exploitation.