Informatique, Ordinateur &
Programme ...
– Selon le ROBERT : – Informatique
• Théorie et traitement de l ’information par des programmes mis en œuvre sur ordinateurs.
– Ordinateur
• Machine électronique de traitement de l ’information, exécutant des programmes.
– Programme
• Suite d’actions à accomplir pour arriver à un résultat.
Plan
Introduction à l’architecture (2 cours)
– Représentation de données – Architecture d’un ordinateur
Introduction au système LINUX (1 cours)
– Commandes
– Traitement de textes
Algorithmique et langage
– Programmation procédurale – Pascal
Représentation de données
Codage binaire
Changement de base
Codage des nombres entiers
Représentation de caractères
Représentation de nombres réels
Codage binaire
Informations de plusieurs types
– texte, nombre etc..
– Traitée comme suite de 0 et de 1.
– Unité d’information est le bit.
Codage de l’information
– Correspondance entre représentation externe et interne.
Pourquoi ?
– Systèmes à deux états : transistors.
Définition de bases
La base habituelle est la base 10.
En base b, on utilise b chiffres
– X=anan-1…a1a0
– b=10 ; ai {0,1,2,3,4,5,6,7,8,9}
– b=2 ; ai {0,1}
– b=16 ; ai
{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
Les nombres entiers
En base 10
– 2002=2 103+0 102 +0 101 +2 100
En base b, soit la suite : a
na
n-1…a
1a
0– Exemple : (101)2= 1 22 +0 21 + 1 20=5
n i i
i n
na a a a b
a
0 0
1 1...
Les nombres fractionnaires
• 12.346 = 1 101 +2 100+ 310-1+ 4 10-2 + 6 10 -3
• an an-1... a1 a0 a-1 a-2 …a-p=anbn + an-1bn-1+ ..
+a0b0+a-1b-1+.. + a-pb-p
Passage de la base 10 vers une base b - nombres entiers
Méthode
– On divise le nombre par la base, puis le quotient obtenu par la base et ainsi de suite jusqu’à l’obtention d’un quotient nul.
– La suite des restes obtenus correspond à : a0a1 … an-1an
Exemple
De la base 10 à la base 2
– 44 = 22 * 2 +0 ; a0=0 – 22 = 11 * 2 +0 ; a1=0 – 11 = 5 * 2 + 1 ; a2=1 – 5 = 2 * 2 +1 ; a3=1 – 2 = 1 * 2 + 0 ; a4=0 – 1 = 0 * 2 + 1 ; a5=1
(44)10=(101100)2
Passage de la base 10 vers une base b - nombres fractionnaires
Méthode
– On multiplie la partie fractionnaire par la base en répétant l’opération sur la partie fractionnaire du produit jusqu’à ce qu’elle soit nulle.
– La suite des parties entières obtenues
correspond aux chiffres dans la base b : a-
1a-2 ...
Exemple
– (54,25)10
– Partie entière
• (54)10=(110110)2
– Partie fractionnaire
• 0.25 x 2 = 0.50 ; a-1=0
• 0.50 x 2 = 1.00 ; a-2=1
• 0.00 x 2 = 0.00 ; a-3=0
Cas des bases 2, 8 et 16
– 8= 23 , 16= 24
– Base 8 est appelée notation octale.
– Base 16 est appelée notation hexadécimale.
– Un chiffre octal représente 3 bits.
– Un chiffre hexadécimal représente 4 bits.
– Un octet= 8 bits
• (10011011)2=(010 011 011)2=(233)8
• (10011011)2=(1001 1011)2=(9B)16
Opérations arithmétiques
– Les opérations s’effectuent en base quelconques b en utilisant les mêmes méthodes qu’en base 10.
– Une retenue est considérée quand on atteint ou dépasse b.
Codification des nombres entiers
– Problème : Limitation de la taille de codage – Entiers naturels (positif ou nul)
• un nombre fixe d’octets (1,2,4).
• n bits : 0 .. 2n-1
• un octet= 8 bits : 0 .. 28-1
– Entiers relatifs
• Problème : codage du signe
Les entiers relatifs - 1
Coder le signe
– Le bit le plus fort pour représenter le signe.
– Exemple
• Codage de -3 sur 4 bits.
• (-3)10=(1011)2
– Problèmes
• Le 0 !!
• La comparaison
– test de signe obligatoire avant addition.
Les entiers relatifs - 2
Complément à 1
– Pour un nombre négatif x
• On code en binaire sa valeur absolue sur n-1 bits.
• On inverse tous les bits et on ajoute 1.
– Exemple Soit à coder 2 sur 8 bits
• 00000010
• 11111101
– Problème
• 2 façons de représenter le 0.
Les entiers relatifs - 3
Complément à 2 - méthode par défaut
– Pour un nombre négatif x
• On code en binaire sa valeur absolue sur n-1 bits.
• On inverse tous les bits et on ajoute 1.
– Exemple Soit à coder 2 sur 8 bits
• 00000010
• 11111101
• 11111110
Les entiers relatifs - 4
– Soit x un entier positif représenté en base n-1
i {0,1}
• Soit y :
• x+y=2n-1 ; donc y=-x modulo(2n-1 )
,
2 2
0
n
i
i
x i
, 1 2
) 1
2 (
0
n
i
i
y i
Les entiers relatifs - 5
Remarques
• Le bit de poids fort d’un nombre négatif est 1
• Sur n bits, le plus grand entier positif est 2n-1 -1
• Sur n bits, le plus petit entier négatif est -2n-1
Représentation des caractères - 1
Symboles alphanumériques
– Lettres majuscules, minuscules, symboles de ponctuation (& . ~ , ; # - etc.)
– Texte = suite de caractères
– Code ASCII (American Standrad Code for Information Interchange)
• Une lettre sur 7 bits
• ASCII Etendu sur 8 bits
Représentation des caractères - 2
Table de correspondances
– Entre 0 et 31 : caractères de contrôle – Entre 65 et 90 : les lettres majuscules – Entre 97 et 122 : les lettres minuscules – Passage de majuscules en minuscules
• Ajout de 32 au code
• modifiant le 5ième bit
– Chiffres rangés dans l’ordre croissant
• 48 à 57 : les 4 bits de poids faibles définissent la valeur en binaire du chiffre.
Représentation des caractères - 3
Autres codages
– ANSI : ASCII + page adapté au pays
• 8 bits, DOS et Windows
– ISO : ASCII + caractères européens
• 8 bits, Windows, UNIX, Internet
– UNICODE
• 16 bits, 49194 caractères, 25 alphabets.
Représentation des nombres réels - 1
Norme IEEE 754 (simple précision)
– 3.25=(11,01)2
– 1, … x 2n ; 11.01=1.101 x 21 – Représentation IEEE
• Signe (+ ou -) est représenté sur le bit de poids fort.
• Exposant (n) est codé sur les 8 bits suivants (on code la valeur n+127).
• La mantisse (la suite après la virgule) est codée sur 23 bits de poids faibles.
Représentation des nombres réels - 2
Remarques
– Les exposants 00000000, 11111111 sont interdits
• Utilisations particulières :
– 00000000 : nombres dénormalisés.
– 11111111 : NAN.
– Les exposants entre -126 et +127
Représentation des nombres réels - 3
Norme IEEE 754 (double précision)
– Représentation IEEE
• Signe (+ ou -) est représenté sur le bit de poids fort.
• Exposant (n) est codé sur les 11 bits suivants (on code la valeur n+1023).
• La mantisse (la suite après la virgule) est codée sur 52 bits de poids faibles.
• Les exposants 00000000000, 11111111111 sont interdits.
Architecture de base d’un ordinateur
Principes de fonctionnement
La mémoire principale (MP)
Le processeur central
les bus
Ordinateur & Informatique
– Une machine de traitement de l’information capable de :
• Acquérir
• Stocker
• Transformer
– Informatique
• Information
• Automatique
Principe de fonctionnement
– Constituants
• Mémoire principale
– Données
– Programmes
• Processeur
– Exécute les instructions du programme
Notion de programme
– Une suite d’instructions élémentaires qui s’exécuteront par le processeur.
– Une instruction est codée en mémoire sur qq. octets.
– Le processeur est capable d'exécuter.
Unité d ’entrées/Sorties Clavier
Processeur Mémoire Principale Programme
Données U.A.L
Unité de commande
Données binaires Instructions
Informations binaires
Le processeur - 1
– Circuit électronique complexe qui exécute chaque instruction très rapidement
– Cycles d’horloges
• Fréquence en MHz
– Pour chaque instruction
• Lire en Mémoire l ’instruction
• Effectuer le traitement
• Instruction suivante
Le processeur - 2
– Unité de commande
• Lecture en mémoire
• Décodage de l ’instruction
– Unité de traitement (U.A.L)
• Exécute des instructions qui manipulent des données
La mémoire principale (MP)
– Emplacements de taille fixe
• Un octet
– Instructions + données
– La taille : nombre d ’emplacements
• 1 K = 210
• 1 M = 220
• 1 G = 230
• 1 T = 240
Opérations sur la mémoire
– Ecriture d’un emplacement
• Valeur, Adresse
– Lecture d’un emplacement
• Valeur d ’un emplacement indiqué par l’adresse.
– Unité de transfert
• Mot : suite d’octets contiguës
• 1 octet (Motorola 6502)
• 2 octets (Intel 8086)
Le processeur central
– CPU
• Registres
– Petites mémoires internes très rapides d ’accès
» Donnée, instruction adresse
» 8,16,32 bits
» De 10 à 100 – Accumulateur
» Résultats des opérations arithmétiques et logiques
Exemple
– Ajouter 5 au contenu de la case mémoire d ’adresse 180
• Lecture et décodage de l ’instruction
• Lecture du contenu numéro 180
• Stockage de la valeur dans l ’accumulateur
• UAL ajoute 5 au contenu de l ’accumulateur
• Ecriture du contenu de l ’accumulateur dans l ’emplacement 180
Contenu du processeur à accumulateur
– Bus internes
• Données, Instructions
– Registres
• ACC
• RTUAL : Un Opérande
• RI : Code Instruction
• IP : Prochaine Instruction
• RAT : Adresse d ’une donnée dans le mémoire
• Reg. Etat : ?
Bus
– Liaisons Processeur-Mémoire
• n fils conducteurs utilisés pour transporter n signaux binaires
• Bus Adresse
– unidirectionnel, le processeur envoie des adresses – a fils (0 à 2a-1)
• Bus Données
– bidirectionnels
» Lecture : Mémoire - Processeur
» Ecriture : Processeur - Mémoire
R/W
Bus Adresses
Bus Données
Processeur Mémoire
Principales
Présentation d’UNIX
– 1969, laboratoire Bell
– Systèmes multi-tâches multi-utilisateurs – Architecture
• Le noyau
– Gestion de la mémoire
– Partage du processeur entre différents tâches
• Le processeur
– Processus
» Actifs, Prêts Bloqués
Outils Unix
– Interpréteras de commandes
• shells
– Commande de manipulation de fichiers – Commande de gestion de processus – Editeurs de textes
– Outils de développements
Fichiers UNIX
– Répertoires
– Chemins absolus et relatifs – Répertoire de connexion – Droits d’accès
– Super utilisateur
– Commandes de manipulations de fichiers
Fichiers UNIX - 1
Répertoires
– Arborescence
• ls : Sous répertoires , fichiers
• Deux fichiers nommés
– référence le répertoire (.) – référence le parent (..)
• Répertoire courant
– pwd
• Changement de répertoire
– cd
Fichiers UNIX - 2
Chemin absolu
– /homee3/cpi1/dupont
Chemin relatif
– /home3/cpi1/dupont/TP1
• ../TD1
• /homee3/cpi1/dupont/TP1
– Répertoire de Connexion
• cd ~dupont
• /homee3/cpi1/dupont
Fichiers UNIX - 3
Droits d’accès
– ls -l
• fichiers : -rwxr--- nom1
• répertoires : drwxr--- nom2
• droits affichés pour
– utilisateur : Dupont – groupe : CP1
– Tout le monde
Commandes de base - 1
Schell
– Interpréter de commande en texte
• fenêtre xterm
• commande + touche (Entrée)
– pwd
– /home3/cpi1/Dupont
• commande = ligne
– nom
– les arguments (éventuellement)
Commandes de base - 2
Méta-caractères
– * : Suite de caractères – ? : Un seul caractère
– [ ] : L’un des caractères dans le croche
• un ensemble : [hg]
• un intervalle : [a-k]
Commandes de base - 3
Méta-caractères
– Exemples
• ls * : le contenu du répertoire courant.
• ls *.kwd : tous les fichier se terminant par *.kwd.
• ls ???? : tous les fichiers dont le nom est composé de 4 caractères exactement.
• ls [ct]* : tous les fichiers dont le nome commence par c ou par t.
• etc ..
Commandes de manipulation des fichiers - 1
– cat fichier1 fichier2
• recopie les deux fichiers (concaténation) sur la sortie standard.
• sortie standard est normalement l’écran.
– cd chemin
• change le répertoire courant.
• sans argument : répertoire au répertoire de connexion.
Commandes de manipulation des fichiers - 2
– chmod mode fichier
• changer les droits d’accès au fichier.
– chmod a+r fichier
» tout (a) le monde a le droit de lire, – chmod og-w fichier
» Les autres (o) et le groupe (g) n’ont pas le droite d’écrire,
– chmod u+x fichier
» L’utilisateur a le droit d'exécuter.
Commandes de manipulation des fichiers - 3
– cp [-ipr] source dest
• source : fichier
• dest
– fichier : renomage.
– répertoire : recopie dans dest.
• options
– -i : confirmation en cas d ’écrasement.
– -p : préserve les dates d'accès.
– -r : copie récursive.
Commandes de manipulation des fichiers - 4
– ls [-ald] chemin1 chemin2 ..
• chemini
– fichier : affiche description.
– répertoire : affiche contenu.
• options
– -a : tous les fichiers.
– -l : format long (taille, date, droits, etc.).
– -d : décrit le répertoire et son contenu.
Commandes de manipulation des fichiers - 5
– mkdir chemin
• chemin
– crée un répertoire.
– mv [-i] source dest
• source : fichier
• dest
– fichier : renomme et efface l’ancien.
– répertoire : déplace le source.
• options
– -i : confirme en cas d ’écrasement.
Commandes de manipulation des fichiers - 6
– pwd
• affiche le répertoire courant;
– rm [-ri] nom1 nom2 ..
• supprime les fichiers ou le répertoires : nomi
• options
– -i : confirme en cas d ’écrasement.
– -r : agit d ’une façon récursive pour un répertoire.
Redirections des entrées/sorties - 1
– Entrée standard, clavier, lecture – Sortie standard, écran, écriture – Redirection de la sortie
• >
• Exemple
– ls > resultats
– crée un fichier nommé resultats contenant le contenu du répertoire courant.
Redirections des entrées/sorties - 2
– Redirection de la sortie
• >>
• Exemple
– ls >> resultats
– ajoute à la fin du fichier résultats le contenu du répertoire courant.
– Redirection de l ’entrée
• <
• Exemple
– cat < fichier
– affiche le contenu du fichier.
Redirections - suites
– Redirection entrée sortie
• Exemple
– cat < fichier>>resultat
– ajoute au fichier resultat le contenu du fichier.
– Redirection vers des tubes
• |
• Exemple
– ls | sort
– affiche le contenu du répertoire courant trié.
Commandes diverses - 1
– compress fichier
• compresse le fichier et produit fichier.Z.
– date
• affiche date et heure.
– file fichier
• détermine le type du fichier
– uncompress fichier.Z
• décompresse le fichier.
Commandes diverses - 2
– head [-n] fichier
• affiche le n premiers lignes du fichier.
– tail [+n|-n] fichier
• +n : affiche à partir de la ligne numéro n.
• -n : affiche le n dernières lignes.
– more fichier
• affiche le fichier page par page.
– who
• liste des utilisateurs connectés au système.
Commandes diverses - 3
– head [-n] fichier
• affiche le n premiers lignes du fichier.
– tail [+n|-n] fichier
• +n : affiche à partir de la ligne numéro n.
• -n : affiche le n dernières lignes.
– more fichier
• affiche le fichier page par page.
– who
• liste des utilisateurs connectés au système.
Commandes diverses - 4
– uuencode fichier
• coder un fichier sur 7 bits.
– uudecode fichier
• décode un ficher codé avec uuencode.
– wc [-cwl] fichier
• -c : nombre de caractères
• -w : nombre de mots
• -l : nombre de lignes.
Commandes diverses - 5
– lpr [-PnomImprimante] fichier
• imprime le fichier.
– lpq [-PnomImprimante]
• file d ’attentes associée à l ’imprimante.
– lprm [-PnomImprimante] numjob
• annule l’impression.
– man commande
• aide en ligne.
Commandes diverses - 6
– find [options]
• permet de trouver dans une hiérarchie de répertoire les fichiers vérifiant certains
caractéristiques.
• Exemples
– find / -name charte -print
» trouver tous les fichiers dont le nome est charte à partir de la racine.
– find . -name *.kwd -print
» trouver à partir du répertoire courant tous les fichiers dont l ’extension est .kwd
Filtres de texte
– grep [options] motif fichier1 fichier2 ..
• trouve les lignes contenant le motif dans les fichiers
• options
– -c seulement le nombre de lignes.
– -n indique les numéros des lignes trouvés.
– -i ne distingue pas majuscule et minuscules
– sort [-r] fichier
• trie les lignes du fichier ou l’entrée standard.
• option
– -r renverse le tri.
Editeur de texte emacs - 1
– Emacs &
– <CTRL>-x <CTRL>- f nomfic
• ouvre le fichier nomfic
– <CTRL>-x <CTRL>-s
• sauvegarder
– <CTRL>- x <CTRL>-c
• quitter
Editeur de texte emacs - 2
– <CTRL> s motif
• recherche du motif dans le texte.
– <ESC> % motif1 <CR> motif2 <CR>
• remplacer la première occurrence de motif1 par motif2.
– <ESC> % motif1 <CR> motif2 <CR> !
• remplacer toutes les occurrences de motif1 par motif2.
Editeur de texte emacs - 3
– <META>-w
• copie ce qui est sélectionné par la souris.
– <CTRL>-y
• colle ce qui est copié au bon endroit
– <CTRL>-2 <CTRL>-b
• visualiser les deux buffers.