• [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.

  • 相关阅读:
    ReLu(Rectified Linear Units)激活函数
    转载 deep learning:八(SparseCoding稀疏编码)
    转载 Deep learning:一(基础知识_1)
    转载 Deep learning:二(linear regression练习)
    转载 Deep learning:三(Multivariance Linear Regression练习)
    转载 Deep learning:四(logistic regression练习)
    转载 Deep learning:五(regularized线性回归练习)
    转载 Deep learning:七(基础知识_2)
    转载 Deep learning:六(regularized logistic回归练习)
    Java环境的配置
  • 原文地址:https://www.cnblogs.com/KennyRom/p/6370576.html
Copyright © 2020-2023  润新知