zoukankan      html  css  js  c++  java
  • 《深入理解计算机系统》第一章读书笔记 20199321

    第一章 计算机系统漫游

    1.1 信息就是位+上下文

    • 系统中所有的信息——包括磁盘文件、存储器中的程序、存储器中存放的用户数据以及网络上传送的数据,都是由一串位表示的。区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。
    • 源程序实是一个由值0和1组成的位序列 。

    1.2 程序被其他程序翻译成不同的格式

    • 预处理阶段:预处理器(cpp)根据以字符#靠头的命令,修改原始的C程序。结果就得到了另一个C程序hello.i,通常是以.i作为文件扩展名。
    • 编译阶段:编译器(ccl)将文本文件hello.i翻译成文本文件hello.s,它包含了一个汇编语言程序。每条语句都以一种文本格式描述了一条低级机器语言指令。
    • 汇编阶段:汇编器(as)将hello.s翻译成机器语言指令,把这些这些指令打包成可重定位目标程序的格式,并将结果保存在目标文件hello.o中。
    • 链接阶段:每个c编译器都提供的标准c库,链接器负责处理函数于hello.o的合并,得到hello文件,它是一个可执行目标文件,可以被加载在内存中,由系统执行

    1.4 处理器度并解释存储在内存中的指令


    ( CPU:中央处理单元 ALU:算数/逻辑单元 PC:程序计数器 USB:通用串行总线)

    • 总线:它携带信息字节并负责在各个部件间传递,通常总线被设计成传送定长的字节块,也就是字。
    • I/O设备:是系统与外部世界的联系通道。每个I/O设备都通过一个控制器或适配器与I/O总线相连。
    • 主存:临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。从物理上,主存是由一组动态随机存取存储器(DRAM)芯片组成。从逻辑上 , 主存是一个线性的字节数组 , 每个字节都有其唯一的地址 ( 数组索引 ), 地址从零开始。
    • 中央处理器(CPU)。是解释执行存储在主存中指令的引擎,处理器的核心是程序计数器(PC)。PU 在指令的要求下可能会执行操作 :加载、存储、更新、I/O读、I/O写和转移。

    1.5高速缓存至关重要

    1.6存储设备形成的层次结构

    1.7操作系统管理硬件

    • 进程的虚拟地址空间:

      • 程序代码和数据:对于所有的进程来说,代码是从同一固定地址开始,紧接着的是和C全局变量相对应的数据位置。(大小固定)
      • :堆可以在运行时动态地扩展和收缩。
      • 共享库:用来存放像C标准库和数学库这样共享库的代码和数据的区域。
      • :编译器用其实现函数的调用,在程序执行期间可以动态地扩展和收缩。
      • 内核虚拟存储器:内核是操作系统的总是驻留在存储器的部分。地址空间顶部的四分之一为内核预留。
  • 相关阅读:
    关于js的语句类型运算符等
    关于flex的布局理解
    三天来都在写项目;今天开始学习了js
    12.13的学习内容
    Css多列语法笔记
    Css3关键帧动画
    codevs1085数字游戏(环形DP+划分DP )
    codevs1040统计单词个数(区间+划分型dp)
    POJ1062昂贵的聘礼
    POJ3687Labeling Balls
  • 原文地址:https://www.cnblogs.com/20199321zjy/p/11761001.html
Copyright © 2011-2022 走看看