Cours algo1

62
Cours d’algorithme S.A Tabbone Université Nancy 2 Email: tabbone@univ- nancy2.fr

Transcript of Cours algo1

Cours d’algorithme

S.A TabboneUniversité Nancy 2

Email: [email protected]

Avant de parler d’algorithmique

Un peu de structure des ordinateurs utile pour la compréhension des programmes

Lien : http://www.commentcamarche.net/pc

/ http://www.histoire-informatique.org/

musee http://www.mon-ordi.com/ Et tous les cours en ligne sur internet

Définition d’un ordinateur

Machine qui saisit (périphériques d’entrée), stocke (mémoire), traite (programmes) et restitue (périphériques de sortie) des informations

Schéma fonctionnel

UCUCDonnéesDonnéesInstructionsInstructions RésultatsRésultats

SaisieSaisie RestitutionRestitutionTraitementTraitement

Périphériques de sortiePériphériques de sortie

Ecran Modem

ImprimanteHaut parleur

Périphériques d’entréePériphériques d’entrée

Modem

Micro

Clavier

Souris

CaméraCD-ROM

Joystick Scanner

Mémoires auxiliairesMémoires auxiliaires

Disquette

Disque dur

MémoireMémoire

Constituants

Composants matériels (Hardware) Tout ce qui compose l’ordinateur et ses

accessoires Chaque composant possède une

fonction particulière calcul stockage des données affichage vidéo gestion du clavier...

Logiciel (Software) immatériel (non tangible) ensemble de programmes exécutables par

l’ordinateur

Différents types de logiciels système d’exploitation (MS-DOS, Windows, Unix) logiciels standards comme Word, Excel... progiciels : logiciels spécifiques (paye,

comptabilité, ...)

Le logiciel pilote le matériel

Codage binaire

Le langage des ordinateurs

Toutes communications à l'intérieur de l'ordinateur sont faites avec des signaux électriques 0: éteint (absence de signal électrique) 1: allumé (présence de signal

électrique)

Un même nombre peut être représenté dans plusieurs bases 123 en base 10 (décimal) 1111011 en base 2 (binaire) 173 en base 8 (octale) 7B en base 16 (hexadécimale)

De la base 10 à la base 2 Il faut diviser le nombre par 2 puis réitérer

l'opération en considérant que le nouveau numérateur est l'ancien quotient jusqu'à ce que ce dernier soit nul. La suite inverse des restes représente le nombre binaire

Exemple

Ecrire 2006 en base 2?

De la base 2 à la base 10 Il faut additionner la multiplication du

nombre représenté par chaque chiffre avec la puissance de 2 correspondant au rang du chiffre:

Les opérations élémentaires en base 10 s’appliquent de la même façon en base 2 Exemple: Addition, soustraction,

multiplication, division

Transcodage binaire/hexadécimal

Un autre système, l'hexadécimal (base 16), est très souvent employé en informatique facilite la représentation des longues

séquences de bits représentation :

0 1 2 3 4 5 6 7 8 9 A B C D E F 101101100010000001100011010011 (binaire) 2d8818d3 (hexadécimale)

À l'aide d'un octet on peut représenter: Les nombres entiers compris entre 0 et 255 Les nombres entiers compris entre 0 et

65535 ou entre -32768 et 32767 (entiers signés)

Les nombres réels (représentation virgule flottante…)

Des instructions une table de correspondance entre nombre et

instruction Des caractères

une table de correspondance entre des nombres et des caractères (exemple ASCII (7 bits), ASCII étendu (1 octet), UTF8 (plusieurs octets)…)

Schéma fonctionnel

17

L’unité CentraleFonctions

Sélectionner et exécuter les instructions du programme en cours

Partie de l’ordinateur qui contient les circuits de base

la mémoire principale la mémoire vive (RAM) la mémoire morte (ROM)

la mémoire cache le microprocesseur

les circuits de calcul (UAL) l’unité de contrôle (ou de commande)

l’horloge système l’unité d’entrée-sortie

18

La Mémoire Définition

Dispositif capable d’enregistrer, de stocker et de restituer des informations

Trois types RAM ou mémoire vive ROM ou mémoire morte mémoire de masse ou secondaire

Unité de stockage: Un composant électronique capable de mémoriser des tensions:

BIT (Binary DigiT) : unité de stockage élémentaire Les informations sont codées en binaires

composés de 0 et de 1 Selon l’ordinateur, un mot mémoire est composé

de 2 (16 bits) ou 4 (32 bits) octets

19

La MémoireUnités de mesure

1octet = 8 bits

1Ko (kilo octet) 1 000 octets (exactement 210 octets)

1Mo (méga octet) 1 000 000 octets (220 octets)

1Go (giga octet) 1 000 000 000 octets (230 octets)

1To (téra octet) 1 000 000 000 000 octets (240 octets)

20

La Mémoire Structure

La mémoire est organisée en cellules (octets ou mots) Chaque cellule est repérée par son adresse qui permet à

l’ordinateur de trouver les informations dont il a besoin 2 Modes d’accès à la mémoire

En lecture : aucun effet sur le contenu En écriture : modifie son contenu

Caractéristiques Capacité : nombre d’octets Accès

direct : grâce à l’adresse, accès immédiat à l’information (on parle de support adressable)

séquentiel : pour accéder à une information, il faut avoir lu toutes les précédentes (ex : cassette audio)

Temps d’accès : temps écoulé entre l’instant où l’information est demandée et celui où elle est disponible (en ms)

21

La Mémoire

Le contenu de la mémoire est composé de données et d’instructions

code de l’opération élémentaire donnée(s) ou adresse des données

Programme Ensemble d’instructions et de données

Traduites en signaux électriques compréhensibles par le matériel

22

Différentes mémoiresLa mémoire vive ou RAM (Random Access Memory)

mémoire à accès direct à taille limitée son contenu est volatile, i.e. il est perdu à

chaque fois que l’ordinateur ne fonctionne pas : d’où le besoin d’utiliser de la mémoire auxiliaire rémanente

endroit où l’ordinateur stocke temporairement les données et instructions (programmes) qu’il est en train d’utiliser et d’exécuter

contient tous les programmes en cours d’exécution Capacité standard de 256 Mo à 1 Go

23

La mémoire morte (Read Only Memory)

mémoire permanente et inaltérable

contient des petits programmes écrits par le constructeur pour la mise en route de l’ordinateur BIOS (Basic Input/Output System)

identifie les différents composants de la machine et vérifie leur bon fonctionnement

24

Le mémoire cache

La transmission entre la RAM et le microprocesseur est plus lente que le potentiel de vitesse du microprocesseur

Mémoire cache (niveau L1 ou L2) zone de mémoire ultra-rapide où sont conservées

les données et instructions qui reviennent le plus souvent

mémoire interne de petite taille (dizaines de Ko) Type non-volatile (Flash)

Capacité standard : 256Ko ou 512Ko

25

Le microprocesseur Le cœur de l’ordinateur : il traite et fait circuler

les instructions et les données Composé des éléments suivants

Unité Arithmétique et Logique (UAL) Ensemble de circuits qui exécutent les opérations arithmétiques et logiques de base

Différents Registres (CO, Etat, Instruction…) Unité de contrôle (ou de commande)

Son rôle est d’extraire une instruction du programme en MC, de la faire exécuter par l’UAL ou un périphérique et de chercher l’instruction suivante

Elle décode les instructions et trouve les données pour l’UAL

27

L’horloge Elle contrôle et synchronise le microprocesseur

et les composants associés

Sa vitesse (fréquence) est exprimée généralement en mégahertz (MHz) c’est-à-dire en million de cycles par seconde

L’efficacité du microprocesseur est directement proportionnelle à la fréquence de l’horloge : une fréquence élevée est donc souhaitable

Exemples: Intel Pentium 4, environ 3 GHz

28

L’unité d’entrée-sortie

contrôle et gère le transfert d’informations entre l’UC et les périphériques

Exemples carte graphique (écran) carte contrôleur (disque dur) carte son (micro, haut-parleur)

29

Les Périphériques

DéfinitionTout ce qui gravite autour de l’UC c’est-à-dire l’écran, le clavier, la souris, les mémoires auxiliaires, l’imprimante, le scanner, le micro, les haut-parleurs....

3 Catégories de périphériquesd’entrée (clavier, souris, scanner, joystick)de sortie (écran, imprimante, haut-parleur)les mémoires auxiliaires (disque dur, disquette, CD-ROM)

30

Les périphériques d’entrée

Définition Recueillent les informations qui sont ensuite

transformées (numérisées i.e. codées en binaires) pour être utilisables par la machine et transférées en mémoire principale (mémoire de l’UC)

Exemples clavier souris : dispositif de pointage complémentaire du

clavier et de l’écran scanner : permet de numériser un document autres : écran tactile, lecteur de codes barres,

crayon optique, caméra, joystick...

31

Les périphériques de sortie

Définition Transmettent l’information binaire de l’UC

vers l’extérieur sous une forme compréhensible par l’utilisateur

Exemples écran imprimante haut-parleurs

32

La mémoire de masse (secondaire ou auxiliaire)

Définition Mémoire externe de grande capacité mais

d’accès moins rapide que la mémoire de l’UC

Utilisée pour stocker avant et après la mise en marche de l’ordinateur (support rémanent)

Exemples disquette : support magnétique amovible

adressable comporte 2 faces taille exprimée en pouces (3,5 pouces) capacité de 1,44 Mo temps d’accès de 15 à 100 ms pour être utilisable, une disquette doit

être formatée, c’est-à-dire préparée à recevoir des informations binaires

33

disque dur : support adressable amovible ou non

capacité : plusieurs Go accès plus rapide que les

disquettes

CD-ROM : support adressable amovible

non inscriptible (mode lecture uniquement)

capacité : environ 650 Mo Variante: inscriptible CD-RW

(lecture/écriture)

34

Exécution d’un programmeMCMCMicroprocesseurMicroprocesseur

HorlogeHorloge

Unité de ContrôleUnité de Contrôle

UALUAL

E/SE/S

11

22

33

44

4444

44

44

55

35

Exécution d’un programme

Chargement des instructions et des données en MC

À chaque top d’horloge, l’unité de contrôle ...récupère une instruction et les

données nécessaires et les analyse déclenche le traitement adapté en

envoyant un signal à l’UAL ou à l’unité des entrées-sorties

Exemple simplifié Pour calculer 12+5, il faut une suite

d'instructions Transférer:

le nombre 12 saisi au clavier dans la mémoire le nombre 5 saisi au clavier dans la mémoire le nombre 12 de la mémoire vers un registre du

microprocesseur le nombre 5 de la mémoire vers un registre du

microprocesseur demander à l'unité de calcul de faire l'addition Transférer:

le contenu du résultat dans la mémoire le résultat (17) se trouvant en mémoire vers l'écran de la

console (pour l'affichage)

Du point de vue matériel:carte mère

Carte électronique qui permet aux différents composants de communiquer via différents bus de communication

On enfiche ces composants sur des connecteurs

Connecteur E/S

Microprocesseur Pour effectuer le traitement de l'information, le microprocesseur possède un ensemble d'instructions, appelé « jeu d'instructions », réalisées grâce à des circuits électroniques. Plus exactement, le jeu d'instructions est réalisé à l'aide de semiconducteurs, « petits interrupteurs » utilisant l'effet transistor, découvert en 1947 par John Barden, Walter H. Brattain et William Shockley qui reçurent le prix Nobel en 1956 pour cette découverte.

Support pour le transistor le silicuim

Un processeur est composé de transistors permettant de réaliser des fonctions sur des signaux numériques. Ces transistors, assemblés entre eux forment des composants permettant de réaliser des fonctions très simples. A partir de ces composants il est possible de créer des circuits réalisant des opérations très complexes. L'algèbre de Boole (du nom du mathématicien anglais Georges Boole 1815 - 1864) est un moyen d'arriver à créer de tels circuits.

L'algèbre de Boole est une algèbre se proposant de traduire des signaux en expressions mathématiques. Pour cela, on définit chaque signal élémentaire

par des variables logiques et leur traitement par des fonctions logiques.

Des méthodes (table de vérité) permettent de définir les opérations que l'on désire réaliser, et à transcrire le résultat en une expression algébrique.

un circuit logique un circuit qui schématise l'agencement des composants de base (au niveau logique) sans se préoccuper de la réalisation au moyen de transistors (niveau physique).

Variables logiques

Un ordinateur ne manipule que des données binaires, on appelle donc variable logique une donnée binaire, c'est-à-dire une donnée ayant deux états possibles: 0 ou 1.

Fonction logique

On appelle «fonction logique» une entité acceptant plusieurs valeurs logiques en entrée et dont la sortie (il peut y en avoir plusieurs) peut avoir deux états possibles : 0 ou 1.

Les fonctions logiques de bases sont appelées portes logiques. Il s'agit de fonctions ayant une ou deux entrées et une sortie: La fonction OU (en anglais OR) positionne sa sortie

à 1 si l'une ou l'autre de ses entrées est à 1 La fonction ET (en anglais AND) positionne sa sortie

à 1 si ses deux entrées sont à 1 La fonction OU EXCLUSIF (en anglais XOR)

positionne sa sortie à 1 si l'une ou l'autre de ses entrées est à 1 mais pas les deux simultanément

La fonction NON (appelée aussi inverseur) positionne sa sortie à 1 si son entrée est à 0, et vice-versa

Tables de vérité

Exemple: additionneur 1 bit

LOI DE MOORE

Lors de la préparation de son discours en 1965, Gordon Moore (un des Présidents d'Intel) fit une remarque qui reste toujours d'actualité. le nombre de transistors des processeurs devrait

doubler tous les 18 mois et permettre ainsi une croissance exponentielle régulière des performances. Cette loi s'est vérifiée au fil du temps, et elle permet d'avoir un bon ordre de grandeur des performances des futurs processeurs.

Exemple 6000 mille transistors en 1974, 9,5M en1999

Mémoire Barrette qui s’enfichent sur la carte

mère

Type de mémoire Quatre types de mémoires:

la mémoire "EDO" (Extended Data Out), ce type de mémoire se trouve sur les ordinateurs déjà anciens.

la mémoire "SDRAM" (Synchronous Dynamic Random Access Memory), plus rapide que l'EDO, ce type de mémoire se trouve sur les ordinateurs récents.

la mémoire "SDRAM DDR" (SD RAM Double Data Rate), comme son nom l'indique, cette mémoire est deux fois plus rapide que la SDRAM. Ce type de mémoire se trouve de plus en plus dans les nouveaux ordinateurs.

la mémoire "RDRAM" (Rambus DRAM), cette mémoire permet un transfert de données à des vitesses beaucoup plus supérieures que les technologies précédentes (SDRAM, SDRAM DDR, etc.).

Le format Les barrettes SIMM à 72 connecteurs

(dont les dimensions sont 108x25mm): des mémoires capables de gérer 32 bits de données simultanément. Ces mémoires équipent des PC allant du 386DX aux premiers Pentium.

les barrettes au format DIMM (Dual Inline Memory Module) sont des mémoires 64 bits. Elles possèdent des puces de mémoire de part et d'autre du circuit imprimé.

les barrettes au format RIMM (Rambus Inline Memory Module, appelées également RD-RAM ou DRD-RAM) sont des mémoires 64 bits développée par la société Rambus.

Carte d’extension Permet d’ajouter des fonctionnalités

(souvent de communication) comme par exemple les cartes graphiques, son, modem, usb, etc.

Dans le PC et Mac, il existe aujourd’hui deux grandes catégories de carte qui se différencient par le bus utilisé : PCI et AGP

Exemple carte vidéo

Bus On appelle bus, en informatique, un

ensemble de liaisons physiques (câbles, pistes de circuits imprimés, etc.) pouvant être exploitées en commun par plusieurs éléments matériels afin de communiquer.

Les bus ont pour but de réduire le nombre de « voies » nécessaires à la communication des différents composants, en mutualisant les communications sur une seule voie de données.

Caractéristiques du bus Largeur du bus: nombre de bits

transmis simultanément fréquence (exprimée en Hertz): le

nombre de paquets de données envoyés ou reçus par seconde Exemple débit maximal du bus:

Un bus d'une largeur de 16 bits, cadencé à une fréquence de 133 MHz:

16 * 133.106 = 2128*106 bit/s = 266 Mo/s

Sous-ensemble de bus Le bus d'adresses (appelé parfois bus d'adressage

ou bus mémoire) transporte les adresses mémoire auxquelles le processeur souhaite accéder pour lire ou écrire une donnée. Il s'agit d'un bus unidirectionnel.

Le bus de données véhicule les instructions en provenance ou à destination du processeur. Il s'agit d'un bus bidirectionnel.

Le bus de contrôle (parfois bus de commandes) transporte les ordres et les signaux de synchronisation en provenance de l’unité de commande et à destination de l'ensemble des composants matériels. Il s'agit d'un bus directionnel dans la mesure où il transmet également les signaux de réponse des éléments matériels.

Principaux bus le bus système (appelé aussi bus interne). Le bus

système permet au processeur de communiquer avec la mémoire centrale du système

le bus d'extension (parfois appelé bus d'entrée/sortie) permet aux divers composants de la carte-mère (USB, série, parallèle, cartes branchées sur les connecteurs PCI, disques durs, lecteur/graveur de CD-ROM…) de communiquer entre eux mais il permet surtout l'ajout de nouveaux périphériques grâce aux connecteurs d'extension (appelés slots) connectés sur le bus d'entrées-sorties.

Slots: des prises qui sont présentes sur la

carte mère. Ces connecteurs sont prévus pour recevoir des cartes qui conviennent à ces différents standards.

Ce qui différencie ces trois types de cartes c'est leur rapidité. Dans l'ordre, du plus lent au plus rapide :

Les cartes au format ISA Les cartes au format PCI Les cartes au format AGP

Norme Largeur du bus (bits) Vitesse du bus (MHz) Bande passante (Mo/sec)

ISA 8-bit 8 8.3 7.9

ISA 16-bit 16 8.3 15.9

EISA 32 8.3 31.8

VLB 32 33 127.2

PCI 32-bit 32 33 127.2

PCI 64-bit 2.1 64 66 508.6

AGP 32 66 254.3

AGP(x2 Mode) 32 66x2 528

AGP(x4 Mode) 32 66x4 1056

AGP(x8 Mode) 32 66x8 2112

ATA33 16 33 33

ATA100 16 50 100

ATA133 16 66 133

Serial ATA (S-ATA) 1   180

Serial ATA II (S-ATA2) 2   380

USB 1   1.5

USB 2.0 1   60

Firewire 1   100

Firewire 2 1   200

SCSI-1 8 4.77 5

SCSI-2 - Fast 8 10 10

SCSI-2 - Wide 16 10 20

SCSI-2 - Fast Wide 32 bits 32 10 40

SCSI-3 - Ultra 8 20 20

SCSI-3 - Ultra Wide 16 20 40

SCSI-3 - Ultra 2 8 40 40

SCSI-3 - Ultra 2 Wide 16 40 80

SCSI-3 - Ultra 160 (Ultra 3) 16 80 160

SCSI-3 - Ultra 320 (Ultra 4) 16 80 DDR 320

SCSI-3 - Ultra 640 (Ultra 5) 16 80 QDR 640