CSAPP 2020-11-14
此文章的 撰写时间 可能有误
# CSAPP today: 1. 总线(传递字节)
2. IO桥和I/O设备通过控制器或适配器接入总线
3. CPU中有
* 总线接口
* ALU(逻辑算术单元)
* PC(程序计数器, 任何时刻都指向一条指令的地址), 寄存器文件(L0,
最小最快的存储单元)
CPU有(加载,存储,操作和跳转)操作
5. 可以通过DMA直接存储器存取技术直接交流磁盘和主存
4. 存储器有
* L0 寄存器;
* L1高速缓存;
* L2高速缓存;
* L3高速缓存;
* 主存(一组动态随机访问存储器DRAM的集合);
* 磁盘;
* 分布式文件系统/Web服务器文件;
---
从上到下, 每一层都更慢 每字节造价更低, 容量更大
- 操作系统(防止失控程序滥用硬件,
提供统一简单的接口抽象给应用程序), 有四个重要概念:
- 进程给程序一中独占访问cpu的假象, 多个进程互相跳转就是并发运行, 过程叫上下文切换; 上下文切换保存当前进程的上下文(各种状态 比如主存的内容);
- 虚拟内存给程序一种独占主存的假象, 通过虚拟地址空间实现,
由上至下依次是:
- 内核空间(程序不能调用内核空间定义的函数)->
- 用户栈(比如函数调用栈和递归栈, 随着函数进入增大, 函数返回变小)->
- 公共库(比如printf函数)->
- 动态开辟的内存 堆(new运算符或malloc函数,可以变大变小)->
- 读写数据-(全局变量)->
- 程序本身的内存(固定的)
- 文件是一个字节序列, 一切设备 I/O设备都可以看成文件; 通过这个概念可以方便的进行不同系统的操作, 如磁盘内容处理, 这一切通过unix I/O接口实现.
为什么不往下读了? 下面有数学