{"product_id":"110398","title":"Computer Systems Deep Dive ","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 Computer Systems Deep Dive \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\u003eBook Introduction\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e  \u003cdiv\u003e\n\u003cb\u003eA grand exploration of the beautiful and amazing computer architecture hidden beneath the code.\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e A computer system is like an ocean.\u003cbr\u003e Just as the origins of modern life are believed to have begun in the depths of the primordial ocean, modern programming also had its beginnings in early computer architectures.\u003cbr\u003e The first programmers studied the hardware diagrams of the first computers and created the first programs.\u003cbr\u003e Just like the ocean, which may appear dark and dangerous from above, reveals a beautiful and wondrous world beneath the surface, let's explore the beautiful and wondrous computer architecture hidden beneath the code.\u003cbr\u003e\u003cbr\u003e This book covers a wide range of topics related to computer systems, from C programming to architecture fundamentals, assembly language, and multithreading. \u003cbr\u003eIt helps you understand how computers execute programs by introducing topics that computer systems have in common, and how programs are designed to run efficiently on the system.\u003cbr\u003e Let's take our first steps on a journey to explore computer systems.\u003cbr\u003e\n\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003cul\u003e\u003cli\u003e You can preview some of the book's contents.\u003cbr\u003e \u003cspan\u003ePreview\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\u003eindex\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e \u003cb\u003eChapter 0 Getting Started\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _0.1 What is a computer system?\u003cbr\u003e _0.2 What does a modern computer system look like?\u003cbr\u003e _0.3 What you will learn in this book\u003cbr\u003e _0.4 Before starting this book\u003cbr\u003e __0.4.1 Linux, C, and GNU Compilers\u003cbr\u003e __0.4.2 Other notations and description lines\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePART IC Programming Language\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 1 C Programming Fundamentals\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _1.1 Getting Started with C Programming\u003cbr\u003e __1.1.1 Compiling and running C programs\u003cbr\u003e __1.1.2 Variables and C's numeric types\u003cbr\u003e __1.1.3 C data types\u003cbr\u003e _1.2 Input and Output\u003cbr\u003e __1.2.1 printf\u003cbr\u003e __1.2.2 scanf\u003cbr\u003e _1.3 Conditional statements and loops \u003cbr\u003e__1.3.1 Boolean values ​​in C\u003cbr\u003e __1.3.2 C's loop\u003cbr\u003e _1.4 function\u003cbr\u003e __1.4.1 Stack\u003cbr\u003e _1.5 Arrays and Strings\u003cbr\u003e __1.5.1 Introduction to Arrays\u003cbr\u003e __1.5.2 Array access method\u003cbr\u003e __1.5.3 Arrays and Functions\u003cbr\u003e __1.5.4 Introduction to Strings and the C String Library\u003cbr\u003e _1.6 structure\u003cbr\u003e __1.6.1 Definition of structure types\u003cbr\u003e __1.6.2 Declaring variables of structure type\u003cbr\u003e __1.6.3 Accessing field values\u003cbr\u003e __1.6.4 Passing a structure to a function\u003cbr\u003e _1.7 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 2 Advanced C Programming\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _2.1 Program Memory and Scope\u003cbr\u003e _2.2 Pointer variables in C\u003cbr\u003e __2.2.1 Pointer variables\u003cbr\u003e _2.3 Pointers and Functions\u003cbr\u003e _2.4 Dynamic memory allocation\u003cbr\u003e __2.4.1 Heap Memory\u003cbr\u003e __2.4.2 malloc and free\u003cbr\u003e __2.4.3 Dynamically allocated arrays and strings\u003cbr\u003e __2.4.4 Heap memory and pointers for functions\u003cbr\u003e _2.5 C array\u003cbr\u003e __2.5.1 One-dimensional array\u003cbr\u003e __2.5.2 Two-dimensional array\u003cbr\u003e _2.6 Strings and String Libraries\u003cbr\u003e __2.6.1 Statically allocated strings (character arrays)\u003cbr\u003e __2.6.2 Dynamically allocating strings\u003cbr\u003e __2.6.3 A library for manipulating C strings and characters\u003cbr\u003e _2.7 C Structures\u003cbr\u003e __2.7.1 C struct type review \u003cbr\u003e__2.7.2 Pointers and Structures\u003cbr\u003e __2.7.3 Pointer fields of structures\u003cbr\u003e __2.7.4 Array of structures\u003cbr\u003e __2.7.5 Self-referential structures\u003cbr\u003e _2.8 C Input\/Output (Standard and File)\u003cbr\u003e __2.8.1 Standard Input\/Output\u003cbr\u003e __2.8.2 File I\/O\u003cbr\u003e __2.8.3 Using Text Files in C\u003cbr\u003e __2.8.4 Standard and file I\/O functions in stdio.h\u003cbr\u003e _2.9 Some advanced C features\u003cbr\u003e __2.9.1 switch statement\u003cbr\u003e __2.9.2 Command line arguments\u003cbr\u003e __2.9.3 void * type and type recasting\u003cbr\u003e __2.9.4 Pointer Arithmetic\u003cbr\u003e __2.9.5 C Library: Using, Compiling, and Linking\u003cbr\u003e __2.9.6 Writing and Using Your Own C Library\u003cbr\u003e __2.9.7 Compiling C to Assembly\u003cbr\u003e _2.10 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 3 C Debugging Tools\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _3.1 Debugging with GDB\u003cbr\u003e __3.1.1 Getting Started with GDB\u003cbr\u003e __3.1.2 GDB Example\u003cbr\u003e _3.2 Details of GDB commands\u003cbr\u003e __3.2.1 GDB Keyboard Shortcuts\u003cbr\u003e __3.2.2 Frequently used GDB commands\u003cbr\u003e _3.3 Memory Debugging with Balgrind\u003cbr\u003e __3.3.1 Example program with heap memory access error\u003cbr\u003e __3.3.2 How to use Memcheck\u003cbr\u003e _3.4 Advanced GDB Features\u003cbr\u003e __3.4.1 GDB and make \u003cbr\u003e__3.4.2 Attaching GDB to a running process\u003cbr\u003e __3.4.3 Following a process in a fork\u003cbr\u003e __3.4.4 Signal Control\u003cbr\u003e __3.4.5 DDD settings and bug fixes\u003cbr\u003e _3.5 Debugging Assembly Code\u003cbr\u003e __3.5.1 Inspecting binary code using GDB\u003cbr\u003e __3.5.2 Debugging Assembly Using DDD\u003cbr\u003e __3.5.3 GDB Assembly Debugging Commands and Examples\u003cbr\u003e __3.5.4 Summary of frequently used commands in assembly debugging\u003cbr\u003e _3.6 Debugging multithreaded programs with GDB\u003cbr\u003e __3.6.1 GDB and Pthreads\u003cbr\u003e __3.6.2 GDB thread-related commands\u003cbr\u003e __3.6.3 Example\u003cbr\u003e _3.7 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePART II COMPUTER SYSTEM FUNDAMENTALS\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 4 Binary and Data Representation\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _4.1 Integers without bases and signs\u003cbr\u003e __4.1.1 Decimal\u003cbr\u003e __4.1.2 Unsigned binary\u003cbr\u003e __4.1.3 Hexadecimal\u003cbr\u003e __4.1.4 Storage space limitations\u003cbr\u003e _4.2 Base conversion\u003cbr\u003e __4.2.1 Binary and Hexadecimal Conversion\u003cbr\u003e __4.2.2 Convert to decimal\u003cbr\u003e __4.2.3 Converting decimal numbers\u003cbr\u003e _4.3 Signed binary integers\u003cbr\u003e __4.3.1 Signed numbers\u003cbr\u003e __4.3.2 2's complement\u003cbr\u003e _4.4 Binary Integer Arithmetic Operations\u003cbr\u003e __4.4.1 Addition\u003cbr\u003e __4.4.2 Subtraction \u003cbr\u003e__4.4.3 Multiplication and Division\u003cbr\u003e _4.5 Integer Overflow\u003cbr\u003e __4.5.1 Total Odometer Analogy\u003cbr\u003e __4.5.2 Binary Integer Overflow\u003cbr\u003e __4.5.3 Overflow Summary\u003cbr\u003e __4.5.4 Results due to overflow\u003cbr\u003e _4.6 Bitwise Operators\u003cbr\u003e __4.6.1 Bitwise AND\u003cbr\u003e __4.6.2 Bitwise OR\u003cbr\u003e __4.6.3 Bitwise XOR\u003cbr\u003e __4.6.4 Bitwise NOT\u003cbr\u003e __4.6.5 Bit Shift\u003cbr\u003e _4.7 Integer byte order\u003cbr\u003e _4.8 Real numbers in binary\u003cbr\u003e __4.8.1 Fixed-point representation\u003cbr\u003e __4.8.2 Floating Point Representation\u003cbr\u003e __4.8.3 Impact of Olympus\u003cbr\u003e _4.9 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 5 Computer Architecture\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _5.1 Origins of Modern Computing Architecture\u003cbr\u003e __5.1.1 Turing Machine\u003cbr\u003e __5.1.2 Early Electrical Computers\u003cbr\u003e __5.1.3 So what did von Neumann know?\u003cbr\u003e _5.2 Von Neumann Architecture\u003cbr\u003e __5.2.1 CPU\u003cbr\u003e __5.2.2 Processing Unit\u003cbr\u003e __5.2.3 Control Unit\u003cbr\u003e __5.2.4 Memory Device\u003cbr\u003e __5.2.5 Input and Output (I\/O) Devices\u003cbr\u003e __5.2.6 Von Neumann Machine\u003cbr\u003e _5.3 Logic Gates\u003cbr\u003e __5.3.1 Basic logic gates\u003cbr\u003e __5.3.2 Other logic gates\u003cbr\u003e _5.4 Circuit\u003cbr\u003e __5.4.1 Arithmetic and Logic Circuits\u003cbr\u003e __5.4.2 Control circuit \u003cbr\u003e__5.4.3 Storage Circuit\u003cbr\u003e _5.5 Building a Processor: Putting It All Together\u003cbr\u003e __5.5.1 ALU\u003cbr\u003e __5.5.2 Register File\u003cbr\u003e __5.5.3 CPU\u003cbr\u003e _5.6 Processor program instruction execution\u003cbr\u003e __5.6.1 Clock-driven execution\u003cbr\u003e __5.6.2 Summary: CPU in a complete computer\u003cbr\u003e _5.7 Pipelining: Making the CPU Faster\u003cbr\u003e _5.8 Advanced Pipeline Command Considerations\u003cbr\u003e __5.8.1 Data Hazards\u003cbr\u003e __5.8.2 Control Hazards\u003cbr\u003e _5.9 Looking to the Future: Today's CPUs\u003cbr\u003e __5.9.1 Command-level parallelism\u003cbr\u003e __5.9.2 Multicore and Hardware Multithreading\u003cbr\u003e __5.9.3 Example Processor\u003cbr\u003e _5.10 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePART III ASSEMBLY PROGRAMMING\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 6 C Down: Dive into Assembly\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _6.1 Benefits of Learning Assembly\u003cbr\u003e __6.1.1 High-level abstractions that hide valuable program details\u003cbr\u003e __6.1.2 Computing systems with limited resources that do not allow the use of a compiler.\u003cbr\u003e __6.1.3 Vulnerability Analysis\u003cbr\u003e __6.1.4 Critical Code Order in System-Level Software\u003cbr\u003e _6.2 What you will learn in subsequent chapters\u003cbr\u003e \u003cbr\u003e\u003cb\u003eChapter 7 64-bit X86 Assembly (X86-64)\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _7.1 Assembly Overview: Basics\u003cbr\u003e __7.1.1 Register\u003cbr\u003e __7.1.2 Advanced Register Notation\u003cbr\u003e __7.1.3 Command Structure\u003cbr\u003e __7.1.4 Examples with operands\u003cbr\u003e __7.1.5 Command Suffixes\u003cbr\u003e _7.2 Commonly used commands\u003cbr\u003e __7.2.1 A more specific example\u003cbr\u003e _7.3 Arithmetic Commands\u003cbr\u003e __7.3.1 Bit shift instructions\u003cbr\u003e __7.3.2 Bitwise Commands\u003cbr\u003e __7.3.3 Load Effect Address Command\u003cbr\u003e _7.4 Conditional Control and Loops\u003cbr\u003e __7.4.1 Preliminary Preparation\u003cbr\u003e __7.4.2 if statement in assembly\u003cbr\u003e __7.4.3 For loop in assembly\u003cbr\u003e _7.5 Functions in Assembly\u003cbr\u003e __7.5.1 Function parameters\u003cbr\u003e __7.5.2 Example Tracing\u003cbr\u003e __7.5.3 main tracing\u003cbr\u003e _7.6 Recursion\u003cbr\u003e __7.6.1 Animation: Call Stack Changes\u003cbr\u003e _7.7 array\u003cbr\u003e _7.8 matrix\u003cbr\u003e __7.8.1 Contiguous two-dimensional arrays\u003cbr\u003e __7.8.2 Discontinuous matrices\u003cbr\u003e _7.9 Structures in Assembly\u003cbr\u003e __7.9.1 Data alignment and structures\u003cbr\u003e _7.10 Real-World Case: Buffer Overflow\u003cbr\u003e __7.10.1 Famous Buffer Overflow Exploits\u003cbr\u003e __7.10.2 Review: The Guessing Game\u003cbr\u003e __7.10.3 Take a closer look \u003cbr\u003e__7.10.4 Buffer Overflow: First Attempt\u003cbr\u003e __7.10.5 Smart Buffer Overflow: Second Attempt\u003cbr\u003e __7.10.6 Protecting from Buffer Overflows\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 8 32-bit X86 Assembly (Ia32)\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 9 ARM Assembly\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 10: Key Assembly Lessons\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _10.1 Common Features\u003cbr\u003e _10.2 Read more\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePART IV PERFORMANCE OPTIMIZATION AND MANAGEMENT\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 11 Storage and Memory Hierarchy\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _11.1 Memory Hierarchy\u003cbr\u003e _11.2 Repository\u003cbr\u003e __11.2.1 Primary storage\u003cbr\u003e __11.2.2 Secondary storage\u003cbr\u003e _11.3 Regionality\u003cbr\u003e __11.3.1 Locality Example in Code\u003cbr\u003e __11.3.2 From locality to cache\u003cbr\u003e __11.3.3 Temporal locality\u003cbr\u003e __11.3.4 Spatial locality\u003cbr\u003e _11.4 CPU cache\u003cbr\u003e __11.4.1 Direct Mapped Cache\u003cbr\u003e __11.4.2 Cache Misses and Associative Design\u003cbr\u003e __11.4.3 Set Associative Cache\u003cbr\u003e _11.5 Cache Analysis and Balgrind\u003cbr\u003e __11.5.1 Theoretical Analysis and Benchmarking\u003cbr\u003e __11.5.2 Real-World Cache Analysis: CacheGrind\u003cbr\u003e _11.6 Predicting: Caching on Multicore Processors\u003cbr\u003e __11.6.1 Cache Coherence \u003cbr\u003e__11.6.2 MSI Protocol\u003cbr\u003e __11.6.3 Implementing the Cache Coherence Protocol\u003cbr\u003e __11.6.4 More information about multicore caching\u003cbr\u003e _11.7 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 12 Code Optimization\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _12.1 The First Step in Code Optimization: Code Profiling\u003cbr\u003e __12.1.1 Profiling using Colgrind\u003cbr\u003e __12.1.2 Moving Loop-Invariant Code\u003cbr\u003e _12.2 Other compiler optimizations\u003cbr\u003e __12.2.1 Function Inlining\u003cbr\u003e __12.2.2 Loop Unrolling\u003cbr\u003e _12.3 Memory Considerations\u003cbr\u003e __12.3.1 Loop Interchange\u003cbr\u003e __12.3.2 Compiler Optimizations That Improve Locality: Split and Fuse\u003cbr\u003e __12.3.3 Memory Profiling with massif\u003cbr\u003e _12.4 Key Lessons\u003cbr\u003e __12.4.1 Choosing Good Data Structures and Algorithms\u003cbr\u003e __12.4.2 Using standard library functions where possible\u003cbr\u003e __12.4.3 Optimization based on data, not feeling\u003cbr\u003e __12.4.4 Split complex code into multiple functions\u003cbr\u003e __12.4.5 Prioritizing code readability\u003cbr\u003e __12.4.6 Be careful about memory usage\u003cbr\u003e __12.4.7 The compiler continues to improve\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 13 Operating System\u003c\/b\u003e\u003cbr\u003e \u003cbr\u003e_13.1 OS operation and execution\u003cbr\u003e __13.1.1 OS boot\u003cbr\u003e __13.1.2 Interrupts and Traps\u003cbr\u003e _13.2 Process\u003cbr\u003e __13.2.1 Multiprogramming and Context Switching\u003cbr\u003e __13.2.2 Process Status\u003cbr\u003e __13.2.3 Process Creation and Destruction\u003cbr\u003e __13.2.4 fork\u003cbr\u003e __13.2.5 exec\u003cbr\u003e __13.2.6 exit and wait\u003cbr\u003e _13.3 Virtual Memory\u003cbr\u003e __13.3.1 Memory address\u003cbr\u003e __13.3.2 Converting virtual addresses to physical addresses\u003cbr\u003e __13.3.3 Paging\u003cbr\u003e __13.3.4 Memory Efficiency\u003cbr\u003e _13.4 Interprocess Communication\u003cbr\u003e __13.4.1 Signal\u003cbr\u003e __13.4.2 Message passing\u003cbr\u003e __13.4.3 Shared Memory\u003cbr\u003e _13.5 Cleanup and other OS features\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePART V PARALLEL PROGRAMMING\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 14: Utilizing Shared Memory in the Multicore Era\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _14.1 Multicore System Programming\u003cbr\u003e __14.1.1 Impact of Multicore Systems on Process Execution\u003cbr\u003e __14.1.2 Accelerating process execution using threads\u003cbr\u003e _14.2 Writing Your First Multithreaded Program\u003cbr\u003e __14.2.1 Creating and Joining Threads\u003cbr\u003e __14.2.2 Thread Function\u003cbr\u003e __14.2.3 Code Execution\u003cbr\u003e __14.2.4 Revisiting Scalar Multiplication \u003cbr\u003e__14.2.5 Scalar Multiplication Calculations: Multiple Arguments\u003cbr\u003e _14.3 Thread Synchronization\u003cbr\u003e __14.3.1 Mutual Exclusion\u003cbr\u003e __14.3.2 Semaphore\u003cbr\u003e __14.3.3 Other synchronization structures\u003cbr\u003e _14.4 Measuring the performance of parallel programs\u003cbr\u003e __14.4.1 Performance of Parallel Programs\u003cbr\u003e __14.4.2 Topics to Explore Further\u003cbr\u003e _14.5 Cache Coherence and False Sharing\u003cbr\u003e __14.5.1 Caching on Multicore Systems\u003cbr\u003e __14.5.2 False sharing\u003cbr\u003e __14.5.3 False sharing fix\u003cbr\u003e _14.6 Thread Safety\u003cbr\u003e __14.6.1 Addressing Thread Safety Issues\u003cbr\u003e _14.7 Implicit Threading with OpenMP\u003cbr\u003e __14.7.1 Pragma\u003cbr\u003e __12.7.2 Hello Threading: OpenMP Version\u003cbr\u003e __14.7.3 A More Complex Example: CountSort in OpenMP\u003cbr\u003e __14.7.4 Learn more about OpenMP\u003cbr\u003e _14.8 Summary\u003cbr\u003e __14.8.1 Key Points\u003cbr\u003e __14.8.2 Read more\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 15 Other Parallel Systems and Parallel Programming Models\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e _15.1 Heterogeneous Computing: Hardware Accelerators, General-Purpose GPU Computing, CUDA\u003cbr\u003e __15.1.1 Hardware Accelerator\u003cbr\u003e __15.1.2 GPU Architecture Overview\u003cbr\u003e __15.1.3 GPGPU Computing\u003cbr\u003e __15.1.4 CUDA \u003cbr\u003e__15.1.5 Other GPGPU Programming Languages\u003cbr\u003e _15.2 Distributed Memory Systems, Message Passing, and MPI\u003cbr\u003e __15.2.1 Parallel and Distributed Processing Models\u003cbr\u003e __15.2.2 Communication Protocol\u003cbr\u003e __15.2.3 Message Passing Interface\u003cbr\u003e __15.2.4 MPI Hello World\u003cbr\u003e __15.2.5 MPI Scalar Multiplication\u003cbr\u003e __15.2.6 Challenges of Distributed Systems\u003cbr\u003e _15.3 Exascale and Beyond: Cloud Computing, Big Data, and the Future of Computing\u003cbr\u003e __15.3.1 Cloud Computing\u003cbr\u003e __15.3.2 MapReduce\u003cbr\u003e __15.3.3 Looking to the Future: Opportunities and Challenges\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eDetailed image\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=\"Detailed Image 1\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003ePublisher's Review\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e \u003cb\u003eA Computer Science Guide for Developers Pursuing Efficient Programming\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e This book primarily covers intermediate computer science topics, such as introduction to computer systems or computer architecture, to help you understand how computers execute programs. \u003cbr\u003eFrom the surface of programming in C to the deep-seated underpinnings of how circuits work, we present only the computer science knowledge essential for designing efficient programs.\u003cbr\u003e By breaking down the computer into its various layers and examining how the computer executes programs in circuits, how to evaluate the performance of programs, and how to write parallel programs, we will be able to create more efficient programs.\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003eTarget audience\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e - A programming beginner who is curious about how the program he or she wrote is executed.\u003cbr\u003e - College students who want to gain background knowledge related to their major, such as system programming and OS.\u003cbr\u003e - Junior developers who want to design more efficient programs\u003cbr\u003e\u003cbr\u003e \u003cb\u003eWhat you learn\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e - How computers execute programs, from high-level languages ​​to binary representations and circuit levels.\u003cbr\u003e - How to program in C and assembly language \u003cbr\u003e- The impact of computer systems on program performance\u003cbr\u003e - How to implement shared memory parallel programs using 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 GOODS SPECIFICS \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 of issue:\u003c\/strong\u003e December 30, 2023\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003ePage count, weight, size:\u003c\/strong\u003e 788 pages | 183*235*40mm\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\/en\/products\/110398","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}