Program Mati On System Ed Ji On A NG
Program Mati On System Ed Ji On A NG
Program Mati On System Ed Ji On A NG
Programmation Système
Berlin DJIONANG
Niveau 3
Art et Intelligence Artificielle
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Contents
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Administrateur système
Administrateur réseaux
Programmeur Système
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Organisation du Cours
EXPOSES (4H)
EXAMEN (2H)
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Vos questions..?
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Objectifs
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Système d’exploitation
Un système d’exploitation SE
(Operating System en anglais) est
un logiciel spécialisé qui sert
principalement à gérer le lien entre
les ressources matérielles d’un
ordinateur (RAM, CPU et
périphériques E/S) et les
applications informatiques de
l’utilisateur.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Système d’exploitation
Un système d’exploitation SE
(Operating System en anglais) est
un logiciel spécialisé qui sert
principalement à gérer le lien entre
les ressources matérielles d’un
ordinateur (RAM, CPU et
périphériques E/S) et les
applications informatiques de
l’utilisateur.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Programme
On distingue deux types de programme:
Programme d’application: programme réalisé pour répondre aux
besoins des utilisateurs et effectué lors de la programmation dite
classique.
Exemple:les applications développées en langage C;
Système d’exploitation
On distingue les systèmes d’exploitation suivant :
Le nombre de tâches qu’on peut exécuter à la fois : on parle de
systèmes mono-tâches et de systèmes multitâches ;
Composants d’un SE
Le système d’exploitation est composé d’un ensemble de logiciels
permettant de gérer les interactions avec le matériel. Parmi cet ensemble
de logiciels on distingue généralement les éléments suivants :
Le noyau (en anglais kernel ) représentant les fonctions
Noyau
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Appels Système
Appel système: L’invocation
de code privilégié par du code
non-privilégié se fait au moyen
d’un appel système. Un appel
système est semblable à un
appel de fonction, mais effectue
en plus deux changements de
niveau de privilège : une
transition vers le mode privilégié
lors de lappel, et une transition
vers le mode non-privilégié lors
du retour. De ce fait, un appel
système est lent, typiquement
entre 1 000 et 10 000 fois plus
lent quun appel de fonction sur
. . . . . . . . . . . . . . . . . . . .
du matériel moderne. . . . . . . . . . . . . . . . . . . . .
Appels Système
Appel système: L’invocation
de code privilégié par du code
non-privilégié se fait au moyen
d’un appel système. Un appel
système est semblable à un
appel de fonction, mais effectue
en plus deux changements de
niveau de privilège : une
transition vers le mode privilégié
lors de lappel, et une transition
vers le mode non-privilégié lors
du retour. De ce fait, un appel
système est lent, typiquement
entre 1 000 et 10 000 fois plus
lent quun appel de fonction sur
. . . . . . . . . . . . . . . . . . . .
du matériel moderne. . . . . . . . . . . . . . . . . . . . .
Outils
2 Le compilateur
3 L’éditeur de lien
4 Le Débogueur
5 D’utilitaires annexes
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Éditeur de Texte
Chaque programmeur a
généralement son éditeur
préféré, dans la suite de ce
cours nous utiliserons deux
éditeurs de texte à savoir Vi et
Gedit.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Éditeur de Texte
Chaque programmeur a
généralement son éditeur
préféré, dans la suite de ce
cours nous utiliserons deux
éditeurs de texte à savoir Vi et
Gedit.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
L’éditeur Vi
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
L’éditeur Vi
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
L’éditeur Gedit
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Interpréteur =! Compilateur
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Langage Compilé
Avantages
Programme immédiatement
disponible à démarrer;
Plus rapide, car il est optimisé
pour le CPU;
Code source privée.
Inconvénients
Non multi-plateforme;
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Langage Compilé
Avantages
Programme immédiatement
disponible à démarrer;
Plus rapide, car il est optimisé
pour le CPU;
Code source privée.
Inconvénients
Non multi-plateforme;
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Langage Interprété
Avantages
Multi-plateforme;
Simple à tester;
Facile à débugger;
Code source public.
Inconvénients
Requiert un interpréteur;
Pour chaque exécution, le
programme doit être interprété
préalablement
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Langage Interprété
Avantages
Multi-plateforme;
Simple à tester;
Facile à débugger;
Code source public.
Inconvénients
Requiert un interpréteur;
Pour chaque exécution, le
programme doit être interprété
préalablement
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Langage C
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Le gcc
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Le gcc
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Installation du gcc
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Compilation
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Exécution
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Compilation séparée
Assembler
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
-c : s’arrête au fichier .o
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Fichiers en-tête
#include <nom_fichier.h>
Pour #include "...", la recherche des fichiers .h s’effectue dans le
répertoire courant. Pour #include <...>, la recherche des fichiers .h
s’effectue dans les répertoires d’inclusion /usr/include. On peut aussi
spécifier des sous répertoires des répertoires d’inclusion. Par exemple,
#include <sys/types.h>
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Objectifs
Maîtriser le langage C;
Beaucoup de Pratique
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Programmer
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Hello Word
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Explication
Les #include<stdio.h> indiquent que le programme a besoin des
outils stdio.;
Pour afficher un message dans le terminal, on utilise la fonction
printf("message");
Séquence d’échappement
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Type
Les types disponibles:
pour les entiers :int, short, long, long long
pour les flottants :float, double
pour les caractères :char
Déclaration
int var1;
int var2, var3, var4;
int var5 = 42;
NB: Pour les entiers : possibilité de préfixer le type par unsigned. Les
variables sont alors non-signées (ie. positives). La taille d’une variable
entière (ie. le nombre de bits/octets) dépend de l’implémentation. Le
standard C ne spécifie que la taille minimum. Ainsi, un int doit faire au
moins 16 bits, alors que la plupart des implémentations modernes
utilisent 32 bits pour les int. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Affichage/lecture
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Opérateurs
Les opérateurs disponibles:
arithmétique :+, -, *, /, %
affectation :=, +=, -=, *=, /=, %=
incrémentation/décrémentation : ++, –
comparaison :<, <=, >, >=, ==, !=
logique : !, &&, ||
Aussi
sizeof qui donne le nombre d’octets qui constitue une variable/un
type
Les opérateurs bit à bit:
Opération sur les bits d’une variable décalage :«,»
OR :|, AND :&, XOR : , NOT :
affectation :«=, »=, |=, &=, =,
ˆ = . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Opérateurs
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Structures
do { ...; } while(cond);
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Exercice 1
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Travaux Dirigés
1 Ecrire un programme qui demande un nombre de départ, et qui
calcule la somme des entiers jusqu’à ce nombre
2 Ecrire un programme qui demande un nombre de départ, et qui
calcule sa factorielle.
3 On désire emballer N ufs dans NB boites de 12. Déterminer sans
effectuer de division de nombre NB ainsi que le nombre NR des ufs
restants (on simulera la division en effectuant des soustractions
successives)
4 Ecrire un algorithme qui calcule la somme des entiers saisis par
l’utilisateur jusqu’à ce qu’il saisisse -1 (qui ne doit pas être pris en
compte dans la somme)
5 Ecrire un algorithme permettant à l’utilisateur de saisir un entier n
puis calcule la somme des entiers saisis par l’utilisateur jusqu’à ce
qu’il saisisse -1 ou qu’il ait saisi n entiers.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Travaux Pratique
Faire une mini calculatrice en C permettant d’effectuer les opérations
suivantes:
Addition
soustraction
division
multiplication
modulo
puissance
racine carré
pgcd
ppcm
...etc
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Déclaration
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Type composé
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Déclaration
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Usage
Une structure peut aussi être composée à partir d’une autre structure,
comme dans cet exemple:
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Déclaration Tableaux
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Accès Tableau
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Tableau et Structure
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Initialisation
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Tableaux et Chaine
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
l’appelant
l’argument et sa copie sont deux variables différentes
Passage par référence : une référence vers l’argument de
l’appelant est donné à l’appelé
l’appelant et l’appelé partagent la même donnée
Par défaut :
Les tableaux sont passés par référence Un argument de type
tableau est déclaré avec type nom[], sans la taille
Les autres types sont passés par copie
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .