CSAPP:第1章 计算机系统漫游

1.1 information=bit+context
  • 1.1主要传达的意思是所谓信息就是特定二进制(位)的排列组合(上下文),因此构成了不同的信息。
  • 另外,aside中提了一嘴C语言的起源,总的来说,C之所以可以成功,主要因为以下几个优势
    • C一开始就作为Unix的系统语言被开发出来的
    • C小、简单、易于移植
    • C是为实践目的设计的——other people found that they could write programs they wanted,也就是说C比较通用
1.2 程序翻译
  • 1.2 主要讲述程序编译过程

  • 围绕这一句命令开始讲述linux>gcc -o hello hello.c,主要分为四个步骤
    在这里插入图片描述

    • 1、预处理
      • hello.c–>hello.i
      • 主要工作是将# include 后<> 文件的内容插入到当前文件中,形成一个.i文件
    • 2、编译
      • hello.i–>hello.s
      • 这个工作是由编译器(CCL)完成的,其中hello.s是一个汇编程序
    • 3、汇编
      • hello.s–>hello.o
      • 这个工作是由汇编器(as) 完成的,其中hello.o是指令集文件(二进制文件,打开是乱码)
      • 这里需要注意一点的是,汇编是从汇编语言到机器指令,编译才是从高级语言到汇编语言
    • 4、链接
      • hello.o–>hello
      • 这个阶段是由链接器(ld)完成的,功能是将本文件和库函数(用到的)预编译的.o文件合并到一起,最终得到的是可执行文件(实际上还是二进制)
1.3 了解编译的好处
  • 优化程序新能(3、5、6)
  • 理解链接时出现的错误(7)
  • 避免安全漏洞(3)
1.4 CPU如何读取+解释命令
  • 主要讲了这么几件事
    • 1、描述shell执行的过程,这个就是命令行的机制,一般符合我们的直觉——即等待-〉输入-〉执行循环
    • 2、描述硬件的组成,这里是计算机的多总线(3总线)结构的模型,如下所示
      在这里插入图片描述
      • 3、如何运行Hello
        • 命令行读取与分析
        • 文件读取
        • 执行+显示
1.5 讲述Cache的重要性
  • 是常见的Cache-主存-辅存三级结构,不同的是,Cache分为三级Cache
1.6 存储设备的层次结构
  • 基本同1.5,放张图
    在这里插入图片描述
1.7 进程、线程、虚拟内存的概念
  • 1、进程

    • 进程是OS对一个正在运行程序的抽象
    • 进程转换有内核(kernel)管理的,内核不是一个独立的进程,而是系统管理全部进程所用代码和数据的集合。
  • 2、线程

    • 更容易共享数据(同一进程下)
    • 高效
  • 3、虚拟内存

    • 即虚拟地址空间——每个进程都独占主存的假象
      在这里插入图片描述
      • 程序代码数据
      • 堆——运行时堆,用于存放数据,类似malloc free是对此处操作
      • 共享库——放类似C语言标准库
      • 栈——用户栈,实现函数调用,动态伸缩
      • 内核虚拟内存——为内核保留
  • 4、文件=字节序列

1.8 系统之间网络通信
  • 介绍了telnet机制
    在这里插入图片描述
1.9 重要主题
  • Amdahl定律(有两道简单习题)
    在这里插入图片描述
    • 这个公式讲的是,加速(减速)后的时间= 部分原时间+部分加速后的时间,最后记一下加速比的公式是old/new即可
  • 并发和并行的概念(区分)
    • 所谓并发=同一段时间同时运行——单CPU进程/线程快速切换,看起来好像同时运行
    • 超线程——同时多线程,允许一个CPU同时控制多个流
    • 指令级并行
      • 多指流水线技术,其中现代的多为超标量流水线
    • 单指令、多数据并行(SIMD)
      • 运行一条指令产生多个可并行的操作
  • 抽象的重要性
1.10 小结
  • 上述总结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椰子奶糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值