Introduction à l’informatique Logiciels et Progiciels (software) Programmes Immatériel diffusion et durée illimitée Nécessaires pour faire fonctionner ordinateur Logiciels système et d’applications Exécuté par l ’Unité Centrale Produits programmes industrialisés= Progiciel Clés en main (fermé à l utilisateur) Evolution et maintenance Introduction à l’informatique Logiciels système Fournis avec machine ou indépendants En partie liés au matériel (processeur) Système d ’exploitation Utilitaires Outils de programmation Editeurs Interprète Compilateur Environnement système Introduction à l’informatique Logiciels Basés sur logique et algorithmique Production :Activité intellectuelle et créative Résout les problèmes décidables Exécutables sur ordinateurs (machine de Türing) Analyse + programmation +test+validation Ecrits dans langages de programmation Potentiellement éternels Architecture système d’un ordinateur Système d ’exploitation Architecture système d’un ordinateur Système d ’exploitation Système d’exploitation Machine de Von Neumann Système exploitation en mémoire (RAM et ROM) Système d’exploitation Fonctions : Gestion des ressources de l'ordinateur (UC) Gestion de la mémoire • Mémoire centrale et mémoire virtuelle Gestion des entrées sorties et fichiers Protection et gestion des erreurs Contrôle des programmes Gestion des utilisateurs • Langage de commande • Interface Homme machine Système d’exploitation Gestion Unité Centrale Mono-utilisateur Monotache ou Multi-taches Préemptif ou non Multi -utilisateurs Multiprogrammation Temps partagé Transactionnel (Réactivité terminaux) Par fournées (batch) Monoprocesseur ou multiprocesseur Système d’exploitation Gestion du Temps (UC): Multiprocessus Temps Partagé (Tranches de temps) Temps Réel (contrainte imposée par processus) Transactionnel Modèle Organisationnel Maître - Esclave Client - Serveur Middleware Système d’exploitation Gestion Mémoire Centrale Mono-utilisateur Mono partition ou Multi-partitions Mono applications ou plusieurs applications Multi -utilisateurs Partitions fixes ou variables (dynamiques) Swapping Mémoire virtuelle Utilisation disques pour étendre Mémoire centrale Système d’exploitation Gestion de l ’espace de la mémoire centrale Partition fixes • Blocs alloués à chaque programme • Simple mais rigide • Perte de place Partitions dynamiques • Bloc alloués à l’exécution • Plus difficile à gérer • Swapping (Disque Dur) Mémoire virtuelle • Recouvrement • Segmentation • Pagination Architecture d’un ordinateur Périphériques Beaucoup plus lents que UC+ MC Gestion en taches (drivers) Temps réel (Souris,Capteurs ...) Délégation (Imprimantes Postscript) De fond (moins prioritaires) Gestion en parallèle Multiprogrammation et/ou processeurs spécialisés Système d’exploitation Système de Gestion de Fichier (Disques) Annuaires (directory) Hiérarchie (disque, dossier, fichier) Type de fichier Séquentiel, indexé ,chaîné... Contenu :texte,tableaux ,numérique, image , vidéo Droits & Partage de fichiers Transferts Sauvegardes Système d’exploitation Langage de commande Permet d ’indiquer ce que l ’on veut faire Interprète de commandes • Mode impératif + paramètres • Mode terminal – Ligne /Ecran – Clavier Mode iconographique • Souris + fenêtres+icones • Clavier Système d’exploitation Gestion des communications Réseaux locaux ( Local Area Network) Ethernet (10 Mo à 100 Mo ,1 Go) Hertzien sans fil (Wifi , Bluetooth) Réseaux métropolitains (Metropolitan Area Network) Câble ADSL Hertzien (Satellite ..) Infra Rouge Réseau Internationaux (WAN) Modem +Téléphone ou Numéris Internet Système d’exploitation Interface Homme Machine Clavier Ligne Ecran Plein écran caractères (24 lignes 80 colonnes) Graphique + Bitmap (dessin) Multifenêtres Xerox PARC (78) Apple (84) X-Windows (Unix) Pointeur de sélection (Souris, Boule, manche ...) Métaphore du bureau Système d’exploitation Propriétaires Sur Gros ordinateurs OS IBM + Bull Mac OS 9 et X MS DOS MS Windows PC Micro de poche (Palm Win CE) Multiplateformes et/ou libres Unix Linux Système d’exploitation Mono-Utilisateur - Mono-tâche PC MS DOS Mono-Utilisateur - Multitâches Mac Intosh Windows Multi-Utilisateurs - Multitâches Unix Windows NT XP Système propriétaires Système d’exploitation Ouverture / Fermeture Systèmes fermés Ms DOS Windows Mac Os .. Interfaces pour applications Systèmes ouverts Unix (+/-) Linux (système libre) Portabilité des applications Interopérabilité Système d’exploitation Stations de travail et serveurs (Sun HP …) Multi-taches Multi-utilisateurs (Unix) Linux Micro-Ordinateurs PC PC MS DOS (Microsoft) Mono-utilisateur Windows 3.11 .... Windows 95… Windows 2000 Multitaches Windows NT XP (multi-utilisateurs) Mac OS (Apple) Jusqu ’à Système 9 Multitaches Power PC (DOS - Windows - Mac Os - Unix) Système X (Unix) Multi-utilisateurs Progiciels Traitements de Texte PC WordPerfect Word (95 6 7 8 2000….) Mac Intosh Macwrite Claris works Word Perfect Word (95 6 7 8 0 3….) Unix Open Office Star Office Progiciels Grapheurs Vectoriel MacDraw Claris Draw Harvard Graphics Dessin Bitmap (point par point) Niveaux de gris et couleurs MacPaint Paint PowerPoint Progiciels Tableurs Quattro Pro Multiplan Excel Claris Intégrés Traitement Texte Tableur Graphique Dessin Base de données Works AppleWorks i work Office (Word Excel PowerPoint) Open office Progiciels Présentation assistée (PréAO) Présentation type diapos Persuasion PowerPoint Keynote Publication assistée par ordinateur (PAO) Production document Page Maker Pages X-Press Progiciels Lecture de caractères à partir de numériseur(scanner) Deskscan (scanner image) Omnipage (transforme en texte Ascii) Multimedia PhotoShop DreamWeaver (Web) Statistiques SAS SPSS R/S+ Progiciels Messagerie Mail (Unix+Mac) Eudora Outlook Thunderbird (libre) Webmail (Horde) Navigateurs (web) Mosaic +Lynx Mozilla Firefox Netscape Explorer Introduction à l’informatique Langage est Une Nécessité Savoir communiquer avec l'ordinateur, (ie) savoir lui spécifier ce qu'il doit faire pour résoudre un problème donné Garder une trace de ce qui a été écrit Pouvoir le modifier, le réutiliser .. Il faut un langage de programmation Introduction à l’informatique Langages de programmation Basés sur logique et algorithmique Résout les problèmes décidables Exécutables sur ordinateurs (machine de Türing) Différentes phases Analyse + programmation +test+validation Différents niveaux de langages de programmation Programmation d’un ordinateur Niveaux de Langages de programmation Programmation d’un ordinateur Différentes phases Programmation d’un ordinateur Langage de programmation Un langage de programmation est l'ensemble des règles et des instructions qui peuvent être utilisées pour exprimer un programme Syntaxe et sémantique Eventail Théorique : • Langage Naturel ----> Langage programmation -----> Langage Machine • problème ----> algorithme----> écriture---> Exécution Programmation d’un ordinateur Programmation en langage naturel Langage trop flou, ambigu Langage trop riche Programmation en langage machine binaire Chaque mot est une succession de 0 et de 1 Ex: 0100 1111 (remettre l'accumulateur à 0) Le langage est spécifique de l'ordinateur Trop fastidieux et long, incompréhensible à la lecture Pour les programme très courts !!! Programmation d’un ordinateur Cas du langage assembleur 1 mnémonique +opérandes<----> 1 instruction binaire Traduction des mnémoniques en code machine par l'assembleur Programmes compacts, très efficaces Difficile à corriger, peu lisible, lié à l'ordinateur Utile pour gagner place mémoire ou temps exécution • Calculateurs embarqués ou miniaturisés • Temps réel Programmation d’un ordinateur Eviter d ’être dépendant d ’un processeur Solution = langages évolués Langage Evolués Encore appelés "universels" ou "de haut niveau" Un langage évolué est un langage dont les caractéristiques tendent à rapprocher la programmation du langage et du processus de pensée humains. Langages algorithmiques , impératifs ,logiques Programmation d’un ordinateur Langages évolués Avantages: • "En principe" indépendants de l'ordinateur • Une instruction équivaut à plusieurs instructions en langage machine • Beaucoup plus compréhensibles et plus concis • Rattachés à un conception générale de la programmation Inconvénients • Plus lents à l'exécution • Exigent plus de mémoire Programmation d’un ordinateur Les Langages Langages Universels analytiques Universels S'applique à tous les types de problème Analytiques Toutes les opérations accomplies par ordinateur doivent être spécifiées explicitement Langage machine Langage assembleur Programmation Classification des langages Langages symboliques spécialisés Utilisation de symboles pour présenter les actions et les structures Travaux scientifiques FORTRAN, ALGOL 60, BASIC, APL Gestion PL/I , COBOL Intelligence Artificielle • LISP, PROLOG, SMALLTALK Programmation Traduction en langage machine Une nécessité : Un langage évolué nécessite une traduction en langage machine Avant exécution • Traduction ,vérification de la syntaxe,Génération d'un code Classification selon le mode de traduction Compilateur Interprète Programmation Le compilateur Programme qui traduit les instructions du langage évolué en langage machine avant l'exécution du programme Traduction Programmation L’interprete Programme qui traduit les instructions du langage évolué et les exécute directement Traduction Programmation Caractéristiques des langages compilés Industrialisation Division du travail de production Efficacité, vitesse d'exécution Version objet protégée Structuration Composition de programme Maintenance + Evolution Langages compilés Fortran ,Pascal,Cobol ,C,C++,Java…. Programmation Caractéristiques des langages interprétés Moindre efficacité Plus de mémoire à l'exécution Interactivité dans le développement Développement plus rapide Pas de protection Langages interprétés APL,Basic, LISP, PROLOG,Perl ,Javasxript......