
CSAPP
EverlightGe
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入理解计算机系统第1章-计算机系统漫游
第1章 计算机系统漫游 1. 信息 源程序是由0和1组成的位(bit)序列,8个位组成一个字节。大部分现代系统都用ASCII标准来表示文本字符。 文本文件 二进制文件 2. 编译过程 为运行hello.c程序,每条C语句都需要转化为一系列低级机器语言指令。这些指令按照可执行目标程序的格式打好包,并以二进制磁盘文件的形式存放,目标程序也称为可执行目标文件。 unix> gcc -o hel...原创 2018-11-01 23:10:23 · 269 阅读 · 0 评论 -
深入理解计算机系统第3章-程序的机器级表示
第3章 程序的机器级表示 计算机执行机器代码。汇编代码是机器代码的文本表示。 过程: 过程调用需要栈来支持。 栈帧以两个指针界定,寄存器%ebp为帧指针,而%esp为栈指针。程序执行时,栈指针可以移动。 假设过程P(调用者)调用过程Q(被调用者),则Q的参数放在P的栈帧中(参考上图中参数1,…n),P中的返回地址也被压入栈中,形成P的栈帧的末尾。返回地址就是当程序从Q返回时应该继续执行的地方。 ...原创 2018-11-01 23:14:49 · 303 阅读 · 0 评论 -
深入理解计算机系统第8章 异常控制流之一异常与进程
第8章 异常控制流 8.1 异常 当处理器检测到有事件发生时,它会通过一张叫做异常表的跳转表,进行一个间接过程调用,到一个专门设计用来处理这类时间的操作系统子程序(异常处理程序)。 1. 异常处理 系统启动时,操作系统分配和初始化一张称为异常表的跳转表,使得条目k包含异常k的处理程序的地址。在运行时,处理器检测到发生了一个事件,并且确定了相应的异常号k。随后,处理器触发异常,通过异常表的条目k转到...原创 2019-01-06 22:02:07 · 570 阅读 · 0 评论 -
深入理解计算机系统第12章 并发编程
第12章 并发编程 现代操作系统提供了三种基本的构造并发程序的方法; 进程: 每个逻辑控制流都是一个进程,由内核来调度和维护. I/O多路复用: 逻辑流被模型化为状态机。程序是一个单独的进程,所有的流都共享同一个地址空间. 线程 12.1 基于进程的并发编程 构造并发服务器的一个方法是,在父进程中接受每个客户端的请求,然后创建一个子进程为每个新客户端服务。 现假设有两个客户端和一个服务器,服务...原创 2019-01-17 22:41:12 · 663 阅读 · 0 评论 -
深入理解计算机系统第6章 存储器层次结构
第6章 存储器层次结构 6.1存储技术 1.以传统DRAM为例,简要介绍DRAM存储。 DRAM芯片中国的单元被分成d个超单元,每个超单元都有w个DRAM单元组成,总共存储了dw位信息。超单元被组织成r行c列的长方形阵列,这里rc=d。每个超单元有形如(i,j)的地址,这里i表示行,j表示列。 图6-3展示的是一个16*8的DRAM芯片的组织,有d=16个超单元,每个超单元有w=8位,r=4行,c...原创 2019-01-18 23:08:15 · 554 阅读 · 0 评论 -
深入理解计算机系统第8章 异常控制流之二 信号
8.5 信号 Unix信号:一种更高层的软件形式的异常,它允许进程中断其他进程. 1. 信号术语 发送一个信号到目的进程有两步: 发送信号: 发送一个信号给目的进程. 接收信号: 当目的进程被内核强制对信号的发送做出反应时,目的进程就接收了信号. 待处理信号: 一个只发出而没有被接收的信号叫做待处理信号。一种类型至多只会有一个待处理信号. 如果一个进程有一个类型为k的待处理信号,那么任何接下...原创 2019-01-09 22:05:09 · 502 阅读 · 0 评论 -
深入理解计算机系统第10章 系统级I/O
第10章 系统级I/O 在某些重要情况下,使用高级I/O函数不太可能。例如,标准I/O库没有提供读取文件元数据的方式,如文件大小或文件创建时间。另外,I/O库还存在一些问题,使用它来进行网络编程非常冒险。 10.1 Unix I/O 所有的I/O设备,如网络、磁盘和终端,都被模型化为文件,而所有的输入和输出都被当做相应文件的读和写。 打开文件 改变当前的文件位置:文件位置是从文件开头起始的字节偏...原创 2019-01-09 22:11:01 · 396 阅读 · 0 评论 -
深入理解计算机系统第9章 虚拟存储器
第9章 虚拟存储器 虚拟存储器是现代操作系统提供的一种对主存的抽象概念。 9.1 物理和虚拟寻址 物理地址: 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组。每个字节都有一个唯一的物理地址,第一个字节地址为0,接下来为1,再下一个为2. 虚拟地址: CPU通过生成一个虚拟地址来访问内存,虚拟地址在被传送到存储器之前转换成物理地址。 将虚拟地址转换成物理地址叫地址翻译。 9.2...原创 2019-01-15 20:39:27 · 1277 阅读 · 0 评论