- Information Is Bits + Context
- 1.1 Information Is Bits + Context
- 1.2 Programs Are Translated by Other Programs to Different Forms
- 1.3 It Pays to Understand How Compilation Systems Work
- 1.4 Processors Read and Interpret Instructions Stored in Memory
- 1.5 Caches Matter
- 1.6 Storage Devices Form a Hierarchy
- 1.7 The Oprating System Manages the Hardware
- 1.8 Systems Communicate with Other Systems Using Networks
- 1.9 Important Themes
- Reference
Information Is Bits + Context
1.1 Information Is Bits + Context
Our hello program begins life as a source program (or source file) that the programmer creates with an editor and saves in a text file called hello.c. The source program is a sequence of bits, each with a value of 0 or 1, organized in 8-bit chunks called bytes. Each byte represents some text character in the program.
1.2 Programs Are Translated by Other Programs to Different Forms
#! /usr/bin/env bash
# cpp
gcc -E hello.c -o hello.i
# ccl
gcc -S hello.i -o hello.s
# as
gcc -c hello.s -o hello.o
# ld
gcc hello.o -o hello
1.3 It Pays to Understand How Compilation Systems Work
- Optimizing program performance.
- Understanding link-time errors.
- Avoiding security holes.
1.4 Processors Read and Interpret Instructions Stored in Memory
1.4.1 Hardware Organization of a System
- Buses
- I/O Devices
- Main Memory
- Processor
1.4.2 Runing the hello Program
1.5 Caches Matter
1.6 Storage Devices Form a Hierarchy
1.7 The Oprating System Manages the Hardware
1.7.1 Processes
1.7.2 Threads
1.7.3 Virtual Memory
1.7.4 Files
1.8 Systems Communicate with Other Systems Using Networks
1.9 Important Themes
1.9.1 Amdahl’s Law
1.9.2 Concurrency and Parallelism
- Thread-Level Concurrency
- Instruction-Level Parallelism
- Single-Instruction, Multiple-Data (SIMD) Parallelism