[CSAPP] Chapter 1 Overview of Computer

Posted KennyRom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CSAPP] Chapter 1 Overview of Computer相关的知识,希望对你有一定的参考价值。

1.1 information is bits + context

All computer programs are just a sequence of bits, each with a value of 0 or 1, organized in 8-bit chunks called by bytes.

8 bits = 1 byte

 

All files is binary files.

 

1.2 Programs are translated by other programs into different forms

To compile a program, we have 4 phases.

 

Preprocessoring phases: The preprocessor modifies the original program acording to the character in the program.

                                    The result is another program. Just like how preprocessor deal with \'#\' in C program.

Compiler phases: translate high-level language into assembler language

Assembler phases: translate the program into machine language

Linker phases: link to the standard libary

 

1.4 Processors read and Interpret Instructions stored in memory

The shell is a command-line interpreter. If the first word does not correspond to a built-in shell command, then shell will assume that it\'s a executable file.

 

1.4.1 Hardware organization of a System 

 

Buses: running through the system, a collection of electrical conduits

           carry bytes of information between devices

I/O Devices: system\'s connection to the external world

                   Each I/O device is connected to the I/O bus by either a controlled or an adapter.

Main memory: a temporary storage device

Processor: CPU or simple processor, control the hold system

 

1.5 Caches Matter


A system spend a lot of time moving information from one place to another.

A major goal is decrease the copy time.

 

The major part of copy time is copying between processor and memory.

Between these two devices, we have processor-memory gap.

To solve this problem, we will use cache.

 1.6 storage devices form a hierarchy

  

 

1.7 OS manage the hardware

OS is a layer between the application program and the hardware.

 

purpose:

(1) protect hardware from misuse;

(2) make the hardware easy to use.

 

 

 1.7.1 Processes


A process is the operating system\'s abstraction for a running program.

Multiple processes can run concurrently on the same system, and each process appears to have exclusive use of hardware.

Single CPU can appear to execute multiple processes concurrently by having the processor switch among them.

This mechanism is called context switching.

 

 

1.7.2 Threads

Threads running in the context of the process and sharing the same code and global data

Multi-threading can make program run faster.

 

1.7.3 virtual memory 

Virtual memory is an abstraction that provides each process with the illusion that it has exclusive use of the main memory.

Each process -----> uniform view of memory -----> virtual address space

 

 

Program code and data:

Code begins at the same fixed address for all process followed by data locations.

 

Heap:

expand and contract dynamically at run time as a result of calls to standard C library routines such as malloc and free.

 

Shared libraries:

hold the codes and data for shared libraries such as C standard library and the math library

 

Stack:

compiler uses to implement functions call

expand and contract dynamically at run time

 

Kernel Virtual Memory:

the part of OS

 

1.7.4 files

A sequence of bytes

Every I/O devices is modeled as a file

 

1.8 Systems communicate with other systems using Networks

networks can be just viewed as an I/O device.

main memory ---> network adapter ----> network ----> another machine

 

 

 

 

1.9 Important Themes

1.9.1 Concurrency and Parallelism

Thread-level concurrency:

multiple programs execute at the same time

Hyperthreading = simultaneous multi-threading allows a single CPU to execute multiple flows of control.

 

 

 

Instruction-level Parallelism:

Processors execute multiple instructions at one time.

 

Single-instruction, Multiple-Data(SIMD) Parallelism:

special hardware allows a single instruction to cause multiple operations to be performed in parallel

 

1.9.2 The importance of abstractions in Computer System

formulate a simple application-program interface (API) for a set of functions that allows programmers to use the code without diving into its inner workings

 

 

1.10 summary

computer system = hardware + software

Information = groups of bits

Computer spends most of time copying data ----> the storage device is a hierarchy

3 fundamenta abstractions:

(1) Files are abstractions for I/O devices.

(2) Virtual memory is an abstraction for both main memory and disk.

(3) Processes are abstractions for the processor, main memory and I/O device.

 

以上是关于[CSAPP] Chapter 1 Overview of Computer的主要内容,如果未能解决你的问题,请参考以下文章

CSAPP

CSAPP-Revision-ch03

CSAPP-Revision-ch03

《深入理解计算机系统》关于csapp.h和csapp.c的编译问题(转)

《深入理解计算机系统》 CSAPP 入坑推荐

六星经典CSAPP笔记系列 - 作者:西代零零发