• CSAPP笔记(第一章 计算机系统漫游)


    看的书是第三版pdf版(2016年11月版次, 书号ISBN 978-7-111-54493-7), 第一章的内容为p37~p56

    第一章讲的比较浅显, 罗列一下

    • 源文件以文本文件的方式保存
    • 不同的上下文中, 同一个字节序列表示不同的意思
    • 源文件被编译系统编译成目标程序, 供系统上执行
    • C语言经过预编译, 编译器, 汇编器, 链接器, 生成目标程序
    • 了解编译原理, 可以帮助我们优化程序性能, 理解链接出错, 避免安全漏洞
    • 计算机内部包括CPU, 存储器, I/O桥, 外设, 他们之间用总线进行通信
    • CPU是个搬运工, 几乎所有的操作都需要CPU参与, 将数据从一个地方搬运到另一个地方
    • DMA可以不需要CPU参与, 直接将数据从磁盘运到主存
    • 各个设备间访问速度的巨大差异, 导致了缓存的诞生, CPU > L1 Cache > L2 Cache > L3 Cache > 内存 > 磁盘 > 网络
    • 操作系统连接应用和硬件, 给应用提供隔离的硬件抽象, 进程, 虚拟存储器和文件
    • 任何时刻, CPU只能执行一个进程, CPU在多个进程间切换来模拟多进程, 切换时需要把当前寄存器的值保存起来, 加载另一个进程的上下文信息到寄存器
    • 实际上, 一个进程由多个线程组成, 线程间共享上下文的代码和数据资源, 线程与CPU直接对应
    • 虚拟存储器使得每个进程都认为只有自己在操作内存, 包含程序代码和数据, 堆, 栈, 共享库, 内核虚拟存储器
    • Linux中, 所有I/O都是文件, 包括磁盘, 键盘, 显示器, 网络
    • 在计算机的发展历史, 有2个目标, 做的更多, 运行的更快
    • CPU单核, 多核, 超线程. 超线程是CPU的一个核同时拥有2套寄存器和高速缓存, 提供2个逻辑线程的抽象
    • CPU中使用流水线技术, 可以大大缩短任务的运行周期
    • 程序抽象的概念是伟大的, 人脑同时容纳的内容是有限的, 只有通过一层一层的抽象, 屏蔽底层细节, 才能做出更多庞大的系统
  • 相关阅读:
    判断IE浏览器的版本号
    解决下拉框第一行出现空格的问题
    Springboot整合log4j2日志全解
    Java NIO之Selector(选择器)
    ZooKeeper客户端 zkCli.sh 节点的增删改查
    Java API操作ZooKeeper
    ReentrantLock(重入锁)功能详解和应用演示
    MySQL高可用集群方案
    Redis高可用之集群配置(六)
    linux free命令详解
  • 原文地址:https://www.cnblogs.com/winwink/p/CSAPP_Note_Chapter1_Introduction.html
Copyright © 2020-2023  润新知