{"product_id":"110398","title":"Analyse approfondie des systèmes informatiques ","description":"\u003ccenter\u003e\u003cdiv style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/tmgdisk01.cafe24.com\/images\/vs\/4172\/sv\/3jYEEJizif3pqNrXvMGYBOnulDwZqh.png?v=1765101606\" style=\"max-width:100%;max-height:10px\"\u003e\u003c\/div\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\n\n\u003cdiv style=\"width:95%\"\u003e\n\n\u003cdiv style=\"text-align:center;font-size:30px;font-weight:bolder;line-height:1.6em\"\u003e Analyse approfondie des systèmes informatiques \u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"border-bottom:1px;border-bottom-style:dotted;border-color:;padding-bottom:20px\"\u003e\u003ccenter\u003e\u003ctable align=\"center\" width=\"100%\"\u003e\u003ctbody style=\"border:0px\"\u003e\n\n\u003ctr\u003e\u003ctd align=\"center\" style=\"line-height:1.2em;text-align:center;font-size:18px;color:black;font-weight:bold;padding-bottom:20px;\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\u003ctr\u003e\u003ctd style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/image.yes24.com\/goods\/124301248\/XL\" style=\"max-width:100%;height:auto\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/center\u003e\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;{split_style6}padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e Description \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;word-break:break-all;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eIntroduction au livre\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e  \u003cdiv\u003e\n\u003cb\u003eUne exploration approfondie de la magnifique et fascinante architecture informatique qui se cache sous le code.\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e Un système informatique est comme un océan.\u003cbr\u003e De même que l'on pense que la vie moderne a pris naissance dans les profondeurs de l'océan primordial, la programmation moderne a également vu le jour dans les premières architectures informatiques.\u003cbr\u003e Les premiers programmeurs ont étudié les schémas matériels des premiers ordinateurs et ont créé les premiers programmes.\u003cbr\u003e Tout comme l'océan, qui peut paraître sombre et dangereux vu de la surface, révèle un monde magnifique et merveilleux sous la surface, explorons la magnifique et merveilleuse architecture informatique cachée sous le code.\u003cbr\u003e\u003cbr\u003e Ce livre couvre un large éventail de sujets liés aux systèmes informatiques, allant de la programmation en C aux principes fondamentaux de l'architecture, en passant par le langage assembleur et le multithreading. \u003cbr\u003eIl vous aide à comprendre comment les ordinateurs exécutent les programmes en présentant des sujets que les systèmes informatiques ont en commun, et en expliquant comment les programmes sont conçus pour fonctionner efficacement sur le système.\u003cbr\u003e Commençons notre voyage à la découverte des systèmes informatiques.\u003cbr\u003e\n\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003cul\u003e\u003cli\u003e Vous pouvez consulter un aperçu du contenu du livre.\u003cbr\u003e \u003cspan\u003eAperçu\u003c\/span\u003e\n\n\u003c\/li\u003e\u003c\/ul\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eindice\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e \u003cb\u003eChapitre 0 : Premiers pas\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _0.1 Qu'est-ce qu'un système informatique ?\u003cbr\u003e _0.2 À quoi ressemble un système informatique moderne ?\u003cbr\u003e _0.3 Ce que vous apprendrez dans ce livre\u003cbr\u003e _0.4 Avant de commencer ce livre\u003cbr\u003e __0.4.1 Compilateurs Linux, C et GNU\u003cbr\u003e __0.4.2 Autres notations et lignes descriptives\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePARTIE IC Langage de programmation\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 1 Principes fondamentaux de la programmation en C\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 1.1 Premiers pas avec la programmation en C\u003cbr\u003e __1.1.1 Compilation et exécution de programmes C\u003cbr\u003e 1.1.2 Variables et types numériques du langage C\u003cbr\u003e __1.1.3 Types de données C\u003cbr\u003e 1.2 Entrée et sortie\u003cbr\u003e __1.2.1 printf\u003cbr\u003e __1.2.2 scanf\u003cbr\u003e 1.3 Instructions conditionnelles et boucles \u003cbr\u003e1.3.1 Valeurs booléennes en C\u003cbr\u003e __1.3.2 Boucle de C\u003cbr\u003e _1.4 fonction\u003cbr\u003e __1.4.1 Pile\u003cbr\u003e 1.5 Tableaux et chaînes de caractères\u003cbr\u003e __1.5.1 Introduction aux tableaux\u003cbr\u003e __1.5.2 Méthode d'accès aux tableaux\u003cbr\u003e __1.5.3 Tableaux et fonctions\u003cbr\u003e __1.5.4 Introduction aux chaînes de caractères et à la bibliothèque de chaînes de caractères C\u003cbr\u003e structure _1.6\u003cbr\u003e 1.6.1 Définition des types de structures\u003cbr\u003e 1.6.2 Déclaration des variables de type structure\u003cbr\u003e __1.6.3 Accès aux valeurs des champs\u003cbr\u003e __1.6.4 Passage d'une structure à une fonction\u003cbr\u003e _1.7 Résumé\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 2 Programmation avancée en C\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _2.1 Mémoire et étendue du programme\u003cbr\u003e _2.2 Variables pointeurs en C\u003cbr\u003e __2.2.1 Variables de pointeur\u003cbr\u003e _2.3 Pointeurs et fonctions\u003cbr\u003e 2.4 Allocation dynamique de mémoire\u003cbr\u003e __2.4.1 Mémoire du tas\u003cbr\u003e __2.4.2 malloc et free\u003cbr\u003e __2.4.3 Tableaux et chaînes de caractères alloués dynamiquement\u003cbr\u003e __2.4.4 Mémoire du tas et pointeurs pour les fonctions\u003cbr\u003e _2.5 Tableau C\u003cbr\u003e __2.5.1 Tableau unidimensionnel\u003cbr\u003e __2.5.2 Tableau bidimensionnel\u003cbr\u003e _2.6 Chaînes de caractères et bibliothèques de chaînes de caractères\u003cbr\u003e __2.6.1 Chaînes de caractères allouées statiquement (tableaux de caractères)\u003cbr\u003e __2.6.2 Allocation dynamique de chaînes de caractères\u003cbr\u003e __2.6.3 Une bibliothèque pour la manipulation de chaînes et de caractères C\u003cbr\u003e _2.7 Structures C\u003cbr\u003e __2.7.1 Révision des types de structures C \u003cbr\u003e__2.7.2 Pointeurs et structures\u003cbr\u003e __2.7.3 Champs de pointeurs des structures\u003cbr\u003e __2.7.4 Tableau de structures\u003cbr\u003e __2.7.5 Structures autoréférentielles\u003cbr\u003e _2.8 Entrée\/Sortie C (Standard et Fichier)\u003cbr\u003e __2.8.1 Entrées\/Sorties standard\u003cbr\u003e __2.8.2 E\/S de fichiers\u003cbr\u003e __2.8.3 Utilisation des fichiers texte en C\u003cbr\u003e __2.8.4 Fonctions d'entrée\/sortie standard et de fichiers dans stdio.h\u003cbr\u003e 2.9 Certaines fonctionnalités avancées du langage C\u003cbr\u003e instruction switch __2.9.1\u003cbr\u003e __2.9.2 Arguments de la ligne de commande\u003cbr\u003e __2.9.3 void * type et conversion de type\u003cbr\u003e __2.9.4 Arithmétique des pointeurs\u003cbr\u003e __2.9.5 Bibliothèque C : Utilisation, compilation et liaison\u003cbr\u003e __2.9.6 Écriture et utilisation de votre propre bibliothèque C\u003cbr\u003e __2.9.7 Compilation de C en assembleur\u003cbr\u003e _2.10 Résumé\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 3 Outils de débogage C\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 3.1 Débogage avec GDB\u003cbr\u003e 3.1.1 Premiers pas avec GDB\u003cbr\u003e __3.1.2 Exemple GDB\u003cbr\u003e _3.2 Détails des commandes GDB\u003cbr\u003e __3.2.1 Raccourcis clavier GDB\u003cbr\u003e __3.2.2 Commandes GDB fréquemment utilisées\u003cbr\u003e _3.3 Débogage de la mémoire avec Balgrind\u003cbr\u003e 3.3.1 Exemple de programme avec erreur d'accès à la mémoire du tas\u003cbr\u003e 3.3.2 Comment utiliser Memcheck\u003cbr\u003e 3.4 Fonctionnalités avancées de GDB\u003cbr\u003e __3.4.1 GDB et make \u003cbr\u003e3.4.2 Attacher GDB à un processus en cours d'exécution\u003cbr\u003e 3.4.3 Suivre un processus dans une fourche\u003cbr\u003e 3.4.4 Commande de signalisation\u003cbr\u003e __3.4.5 Paramètres DDD et corrections de bugs\u003cbr\u003e 3.5 Débogage du code assembleur\u003cbr\u003e 3.5.1 Inspection du code binaire à l'aide de GDB\u003cbr\u003e 3.5.2 Débogage de l'assembleur à l'aide de DDD\u003cbr\u003e 3.5.3 Commandes et exemples de débogage d'assembleur GDB\u003cbr\u003e 3.5.4 Résumé des commandes fréquemment utilisées pour le débogage en assembleur\u003cbr\u003e 3.6 Débogage de programmes multithread avec GDB\u003cbr\u003e __3.6.1 GDB et Pthreads\u003cbr\u003e __3.6.2 Commandes GDB liées aux threads\u003cbr\u003e __3.6.3 Exemple\u003cbr\u003e 3.7 Résumé\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePARTIE II FONDEMENTS DES SYSTÈMES INFORMATIQUES\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 4 Représentation binaire et des données\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 4.1 Entiers sans base ni signe\u003cbr\u003e __4.1.1 Décimal\u003cbr\u003e __4.1.2 Binaire non signé\u003cbr\u003e __4.1.3 Hexadécimal\u003cbr\u003e 4.1.4 Limitations de l'espace de stockage\u003cbr\u003e _4.2 Conversion de base\u003cbr\u003e 4.2.1 Conversion binaire et hexadécimale\u003cbr\u003e 4.2.2 Convertir en décimal\u003cbr\u003e 4.2.3 Conversion des nombres décimaux\u003cbr\u003e _4.3 Entiers binaires signés\u003cbr\u003e 4.3.1 Numéros signés\u003cbr\u003e __4.3.2 Complément à deux\u003cbr\u003e 4.4 Opérations arithmétiques sur les entiers binaires\u003cbr\u003e __4.4.1 Addition\u003cbr\u003e __4.4.2 Soustraction \u003cbr\u003e4.4.3 Multiplication et division\u003cbr\u003e _4.5 Dépassement de capacité d'entier\u003cbr\u003e __4.5.1 Analogie avec l'odomètre total\u003cbr\u003e __4.5.2 Dépassement de capacité d'un entier binaire\u003cbr\u003e __4.5.3 Résumé du débordement\u003cbr\u003e __4.5.4 Résultats dus à un débordement\u003cbr\u003e _4.6 Opérateurs bit à bit\u003cbr\u003e __4.6.1 ET bit à bit\u003cbr\u003e __4.6.2 OU bit à bit\u003cbr\u003e __4.6.3 XOR bit à bit\u003cbr\u003e __4.6.4 NON bit à bit\u003cbr\u003e __4.6.5 Décalage de bits\u003cbr\u003e _4.7 Ordre des octets entiers\u003cbr\u003e 4.8 Nombres réels en binaire\u003cbr\u003e 4.8.1 Représentation à virgule fixe\u003cbr\u003e __4.8.2 Représentation en virgule flottante\u003cbr\u003e __4.8.3 Impact de l'Olympe\u003cbr\u003e _4.9 Résumé\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 5 Architecture des ordinateurs\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 5.1 Origines de l'architecture informatique moderne\u003cbr\u003e 5.1.1 Machine de Turing\u003cbr\u003e __5.1.2 Les premiers ordinateurs électriques\u003cbr\u003e __5.1.3 Alors, que savait von Neumann ?\u003cbr\u003e _5.2 Architecture de Von Neumann\u003cbr\u003e __5.2.1 Processeur\u003cbr\u003e __5.2.2 Unité de traitement\u003cbr\u003e 5.2.3 Unité de contrôle\u003cbr\u003e 5.2.4 Dispositif de mémoire\u003cbr\u003e __5.2.5 Dispositifs d'entrée et de sortie (E\/S)\u003cbr\u003e __5.2.6 Machine de Von Neumann\u003cbr\u003e _5.3 Portes logiques\u003cbr\u003e 5.3.1 Portes logiques de base\u003cbr\u003e 5.3.2 Autres portes logiques\u003cbr\u003e _5.4 Circuit\u003cbr\u003e __5.4.1 Circuits arithmétiques et logiques\u003cbr\u003e 5.4.2 Circuit de commande \u003cbr\u003e5.4.3 Circuit de stockage\u003cbr\u003e 5.5 Construction d'un processeur : synthèse des éléments\u003cbr\u003e __5.5.1 ALU\u003cbr\u003e __5.5.2 Fichier d'enregistrement\u003cbr\u003e __5.5.3 Processeur\u003cbr\u003e 5.6 Exécution des instructions du programme du processeur\u003cbr\u003e __5.6.1 Exécution pilotée par l'horloge\u003cbr\u003e 5.6.2 Résumé : Processeur dans un ordinateur complet\u003cbr\u003e 5.7 Pipeline : Accélérer le processeur\u003cbr\u003e _5.8 Considérations relatives aux commandes de pipeline avancées\u003cbr\u003e __5.8.1 Risques liés aux données\u003cbr\u003e 5.8.2 Maîtriser les risques\u003cbr\u003e 5.9 Perspectives d'avenir : les processeurs d'aujourd'hui\u003cbr\u003e 5.9.1 Parallélisme au niveau des commandes\u003cbr\u003e __5.9.2 Multicœur et multithreading matériel\u003cbr\u003e __5.9.3 Exemple de processeur\u003cbr\u003e _5.10 Résumé\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePARTIE III PROGRAMMATION D'ASSEMBLAGE\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 6 C Bas : Plongez dans l’assemblage\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 6.1 Avantages de l'apprentissage en groupe\u003cbr\u003e 6.1.1 Abstractions de haut niveau masquant des détails importants du programme\u003cbr\u003e __6.1.2 Systèmes informatiques aux ressources limitées qui ne permettent pas l'utilisation d'un compilateur.\u003cbr\u003e 6.1.3 Analyse de la vulnérabilité\u003cbr\u003e 6.1.4 Ordre critique du code dans les logiciels système\u003cbr\u003e 6.2 Ce que vous apprendrez dans les chapitres suivants\u003cbr\u003e \u003cbr\u003e\u003cb\u003eChapitre 7 Assembleur X86 64 bits (X86-64)\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _7.1 Aperçu de l'assemblage : Notions de base\u003cbr\u003e __7.1.1 Inscription\u003cbr\u003e __7.1.2 Notation avancée des registres\u003cbr\u003e 7.1.3 Structure de commande\u003cbr\u003e __7.1.4 Exemples avec opérandes\u003cbr\u003e __7.1.5 Suffixes de commandes\u003cbr\u003e 7.2 Commandes couramment utilisées\u003cbr\u003e __7.2.1 Un exemple plus précis\u003cbr\u003e _7.3 Commandes arithmétiques\u003cbr\u003e __7.3.1 Instructions de décalage de bits\u003cbr\u003e __7.3.2 Commandes bit à bit\u003cbr\u003e __7.3.3 Commande d'adresse d'effet de chargement\u003cbr\u003e _7.4 Contrôle conditionnel et boucles\u003cbr\u003e 7.4.1 Préparation préliminaire\u003cbr\u003e __7.4.2 instruction if dans l'assembleur\u003cbr\u003e 7.4.3 Boucle for en assembleur\u003cbr\u003e 7.5 Fonctions en assembleur\u003cbr\u003e 7.5.1 Paramètres de fonction\u003cbr\u003e __7.5.2 Exemple de traçage\u003cbr\u003e __7.5.3 traçage principal\u003cbr\u003e _7.6 Récursivité\u003cbr\u003e __7.6.1 Animation : Modifications de la pile d’appels\u003cbr\u003e _7.7 tableau\u003cbr\u003e matrice _7.8\u003cbr\u003e __7.8.1 Tableaux bidimensionnels contigus\u003cbr\u003e __7.8.2 Matrices discontinues\u003cbr\u003e 7.9 Structures dans l'assemblage\u003cbr\u003e 7.9.1 Alignement et structures des données\u003cbr\u003e 7.10 Cas concret : Dépassement de tampon\u003cbr\u003e __7.10.1 Exploitations célèbres de dépassement de tampon\u003cbr\u003e __7.10.2 Critique : Le jeu des devinettes\u003cbr\u003e 7.10.3 Examinez de plus près \u003cbr\u003e__7.10.4 Dépassement de tampon : Première tentative\u003cbr\u003e __7.10.5 Dépassement de tampon intelligent : deuxième tentative\u003cbr\u003e __7.10.6 Protection contre les dépassements de tampon\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 8 Assembleur X86 32 bits (Ia32)\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 9 Assemblage ARM\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 10 : Leçons clés d'assemblage\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _10.1 Fonctionnalités communes\u003cbr\u003e _10.2 Lire la suite\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePARTIE IV OPTIMISATION ET GESTION DES PERFORMANCES\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 11 : Hiérarchie du stockage et de la mémoire\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _11.1 Hiérarchie de la mémoire\u003cbr\u003e _11.2 Dépôt\u003cbr\u003e __11.2.1 Stockage principal\u003cbr\u003e 11.2.2 Stockage secondaire\u003cbr\u003e _11.3 Régionalité\u003cbr\u003e __11.3.1 Exemple de localité dans le code\u003cbr\u003e __11.3.2 De la localité au cache\u003cbr\u003e __11.3.3 Localité temporelle\u003cbr\u003e __11.3.4 Localité spatiale\u003cbr\u003e Cache du processeur _11.4\u003cbr\u003e __11.4.1 Cache mappé directement\u003cbr\u003e 11.4.2 Défauts de cache et conception associative\u003cbr\u003e __11.4.3 Définir le cache associatif\u003cbr\u003e _11.5 Analyse du cache et Balgrind\u003cbr\u003e __11.5.1 Analyse théorique et évaluation comparative\u003cbr\u003e __11.5.2 Analyse du cache en conditions réelles : CacheGrind\u003cbr\u003e _11.6 Prédiction : Mise en cache sur les processeurs multicœurs\u003cbr\u003e __11.6.1 Cohérence du cache \u003cbr\u003eProtocole MSI __11.6.2\u003cbr\u003e __11.6.3 Mise en œuvre du protocole de cohérence du cache\u003cbr\u003e __11.6.4 Informations complémentaires sur la mise en cache multicœur\u003cbr\u003e _11.7 Résumé\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 12 Optimisation du code\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 12.1 Première étape de l'optimisation du code : le profilage du code\u003cbr\u003e __12.1.1 Profilage à l'aide de Colgrind\u003cbr\u003e __12.1.2 Code invariant de boucle en déplacement\u003cbr\u003e _12.2 Autres optimisations du compilateur\u003cbr\u003e __12.2.1 Intégration de fonctions\u003cbr\u003e __12.2.2 Déroulement de boucle\u003cbr\u003e _12.3 Considérations relatives à la mémoire\u003cbr\u003e __12.3.1 Échange de boucles\u003cbr\u003e __12.3.2 Optimisations du compilateur améliorant la localité : Split et Fuse\u003cbr\u003e 12.3.3 Profilage de la mémoire avec Massif\u003cbr\u003e _12.4 Leçons clés\u003cbr\u003e __12.4.1 Choisir de bonnes structures de données et de bons algorithmes\u003cbr\u003e 12.4.2 Utilisation des fonctions de la bibliothèque standard lorsque cela est possible\u003cbr\u003e 12.4.3 Optimisation basée sur les données, et non sur le ressenti\u003cbr\u003e __12.4.4 Décomposer un code complexe en plusieurs fonctions\u003cbr\u003e 12.4.5 Prioriser la lisibilité du code\u003cbr\u003e __12.4.6 Faites attention à l'utilisation de la mémoire\u003cbr\u003e __12.4.7 Le compilateur continue de s'améliorer\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 13 Système d'exploitation\u003c\/b\u003e\u003cbr\u003e \u003cbr\u003e_13.1 Fonctionnement et exécution du système d'exploitation\u003cbr\u003e __13.1.1 Démarrage du système d'exploitation\u003cbr\u003e __13.1.2 Interruptions et pièges\u003cbr\u003e _13.2 Processus\u003cbr\u003e __13.2.1 Multiprogrammation et commutation de contexte\u003cbr\u003e __13.2.2 État du processus\u003cbr\u003e 13.2.3 Création et destruction de processus\u003cbr\u003e __13.2.4 fourche\u003cbr\u003e __13.2.5 exécu\u003cbr\u003e __13.2.6 Sortie et attente\u003cbr\u003e _13.3 Mémoire virtuelle\u003cbr\u003e __13.3.1 Adresse mémoire\u003cbr\u003e __13.3.2 Conversion des adresses virtuelles en adresses physiques\u003cbr\u003e __13.3.3 Pagination\u003cbr\u003e 13.3.4 Efficacité de la mémoire\u003cbr\u003e _13.4 Communication interprocessus\u003cbr\u003e __13.4.1 Signal\u003cbr\u003e __13.4.2 Transmission de messages\u003cbr\u003e __13.4.3 Mémoire partagée\u003cbr\u003e _13.5 Nettoyage et autres fonctionnalités du système d'exploitation\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePARTIE V PROGRAMMATION PARALLÈLE\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 14 : Utilisation de la mémoire partagée à l’ère multicœur\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _14.1 Programmation des systèmes multicœurs\u003cbr\u003e __14.1.1 Impact des systèmes multicœurs sur l'exécution des processus\u003cbr\u003e __14.1.2 Accélération de l'exécution des processus à l'aide de threads\u003cbr\u003e _14.2 Écrire votre premier programme multithread\u003cbr\u003e __14.2.1 Création et jonction de fils de discussion\u003cbr\u003e __14.2.2 Fonction de thread\u003cbr\u003e __14.2.3 Exécution du code\u003cbr\u003e __14.2.4 Retour sur la multiplication scalaire \u003cbr\u003e__14.2.5 Calculs de multiplication scalaire : arguments multiples\u003cbr\u003e _14.3 Synchronisation des threads\u003cbr\u003e 14.3.1 Exclusion mutuelle\u003cbr\u003e __14.3.2 Sémaphore\u003cbr\u003e 14.3.3 Autres structures de synchronisation\u003cbr\u003e 14.4 Mesure des performances des programmes parallèles\u003cbr\u003e __14.4.1 Performance des programmes parallèles\u003cbr\u003e __14.4.2 Sujets à approfondir\u003cbr\u003e _14.5 Cohérence du cache et faux partage\u003cbr\u003e 14.5.1 Mise en cache sur les systèmes multicœurs\u003cbr\u003e 14.5.2 Faux partage\u003cbr\u003e __14.5.3 Correction du faux partage\u003cbr\u003e _14.6 Sécurité du filetage\u003cbr\u003e __14.6.1 Traitement des problèmes de sécurité des filetages\u003cbr\u003e _14.7 Gestion implicite des threads avec OpenMP\u003cbr\u003e __14.7.1 Pragma\u003cbr\u003e __12.7.2 Hello Threading : Version OpenMP\u003cbr\u003e __14.7.3 Un exemple plus complexe : CountSort dans OpenMP\u003cbr\u003e __14.7.4 En savoir plus sur OpenMP\u003cbr\u003e _14.8 Résumé\u003cbr\u003e 14.8.1 Points clés\u003cbr\u003e __14.8.2 Lire la suite\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 15 Autres systèmes parallèles et modèles de programmation parallèle\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 15.1 Calcul hétérogène : accélérateurs matériels, calcul GPU à usage général, CUDA\u003cbr\u003e __15.1.1 Accélérateur matériel\u003cbr\u003e __15.1.2 Vue d'ensemble de l'architecture GPU\u003cbr\u003e __15.1.3 Calcul GPGPU\u003cbr\u003e __15.1.4 CUDA \u003cbr\u003e__15.1.5 Autres langages de programmation GPGPU\u003cbr\u003e 15.2 Systèmes de mémoire distribuée, passage de messages et MPI\u003cbr\u003e __15.2.1 Modèles de traitement parallèle et distribué\u003cbr\u003e __15.2.2 Protocole de communication\u003cbr\u003e __15.2.3 Interface de passage de messages\u003cbr\u003e __15.2.4 MPI Hello World\u003cbr\u003e __15.2.5 Multiplication scalaire MPI\u003cbr\u003e __15.2.6 Défis des systèmes distribués\u003cbr\u003e _15.3 Exascale et au-delà : informatique en nuage, mégadonnées et avenir de l’informatique\u003cbr\u003e 15.3.1 Informatique en nuage\u003cbr\u003e __15.3.2 MapReduce\u003cbr\u003e 15.3.3 Perspectives d'avenir : opportunités et défis\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eImage détaillée\u003c\/b\u003e \u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cdiv\u003e\u003cimg src=\"https:\/\/image.yes24.com\/momo\/TopCate4383\/MidCate003\/438225476.jpg\" border=\"0\" alt=\"Image détaillée 1\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eAvis de l'éditeur\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e \u003cb\u003eUn guide d'informatique pour les développeurs recherchant une programmation efficace\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e Ce livre traite principalement de sujets intermédiaires en informatique, tels que l'introduction aux systèmes informatiques ou à l'architecture des ordinateurs, afin de vous aider à comprendre comment les ordinateurs exécutent les programmes. \u003cbr\u003eDe la programmation en C à la compréhension profonde du fonctionnement des circuits, nous ne présentons ici que les connaissances informatiques essentielles à la conception de programmes efficaces.\u003cbr\u003e En décomposant l'ordinateur en ses différentes couches et en examinant comment il exécute les programmes dans les circuits, comment évaluer les performances des programmes et comment écrire des programmes parallèles, nous serons en mesure de créer des programmes plus efficaces.\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePublic cible\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e - Un programmeur débutant curieux de savoir comment le programme qu'il a écrit est exécuté.\u003cbr\u003e - Les étudiants universitaires qui souhaitent acquérir des connaissances de base liées à leur spécialisation, telles que la programmation système et les systèmes d'exploitation.\u003cbr\u003e - Développeurs juniors qui souhaitent concevoir des programmes plus efficaces\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCe que vous apprenez\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e - Comment les ordinateurs exécutent les programmes, des langages de haut niveau aux représentations binaires et aux niveaux des circuits.\u003cbr\u003e - Comment programmer en C et en langage assembleur \u003cbr\u003e- L'impact des systèmes informatiques sur les performances des programmes\u003cbr\u003e - Comment implémenter des programmes parallèles à mémoire partagée en utilisant pthreads \u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e SPÉCIFICATIONS DES PRODUITS \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eDate d'émission :\u003c\/strong\u003e 30 décembre 2023\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eNombre de pages, poids, dimensions :\u003c\/strong\u003e 788 pages | 183 × 235 × 40 mm\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN13 :\u003c\/strong\u003e 9791169211765\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN10 :\u003c\/strong\u003e 1169211763 \u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cspan\u003e\u003c\/span\u003e\n\n\u003c\/center\u003e\n\n\n\u003c\/center\u003e","brand":"LIBRAIRIE COREENNE","offers":[{"title":"Default Title","offer_id":43893796864042,"sku":"110398","price":60.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/2750\/5962\/files\/dc8db33b0d912fdd78819ae782c8b04d.jpg?v=1765417049","url":"https:\/\/librairie.coreenne.fr\/products\/110398","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}