深入理解计算机系统读书笔记四

异常控制流(Exceptional Control Flow ,ECF)什么是控制流从给处理器加电开始,直到断电为止,程序计数器假设一个值的序列:a0,a1,a2…a n-1,其中a k是相应的指令的地址,每次从a k到a k-1的过渡称为控制转移(control transfer)。这样的控制转移序列称为处理器的控制流(flow of control)。 异常异常是异常控制流的一种形式,它一部分由硬件实现,一部分由操作系统实现。异常(Exception)就是控制流中的突变,用来响应处理器状态中的某些变化。在任何情况下,当处理器检测到有事件发生时,它就会通过一张叫做异常表(Exception Table)的跳转表,进行一个间接过程调用,到一个专门设计的用来处理这类事件的操作系统子程序(异常处理程序(exception handler))。当异常处理程序处理完成后,根据引起异常的事件类型,会发生以下3种情况种的一种。1.处理程序将控制返回当前指令2.处理程序将控制返回下一条3.处理程序终止被中断的程序

深入理解计算机系统读书笔记三

高速缓存的写操作假设缓存中已经缓存了字w(写命中)。在高速缓存更新了它的w的副本后,它有两种方式更新w在层次结构中紧接着低一层中的副本。 直写。就是立即将w的高速缓存块写回紧接着的低一层中。这种做法每次都会引起总线流量。 写回。写回会尽可能的推迟更新,只有当替换算法要驱逐这个更新过的块时,才会把他写道紧接着的第一层中。写回可以显著的减少总线流量,但是增加了复杂性。 假设缓存中没有缓存字w(写不命中),也有两种处理方式。1.写分配(write-allocate),加载相应的第一层中的块到高速缓存中,然后更新高速缓存块,试图利用写的空间局部性,但缺点是每次写不命中都会导致一个块从第一层传送到高速缓存。2.非写分配(not-write-allocate)。避开高速缓存,直接把这个字写到低一层中。 实际的高速缓存层次结构在实际中,高速缓存既保存数据,也保存指令。只保存指令的高速缓存被称为i-cache,只保存数据的高速缓存被称为d-cache。既保存指令又保存数据的高速缓存被称为统一的高速缓存(unifiied cache)。i-cache通常是只读的。

深入理解计算机系统读书笔记二

内存映射I/O技术CPU使用内存映射I/O技术来向I/O设备发射命令。在使用内存映射I/O的系统中,地址空间中有一块地址是为了与I/O设备通信保留的。每个这样的地址称为I/O端口。当一个设备连接到总线时,它被映射到一个或多个端口。通过内存映射I/O技术将I/O设备放置到内存空间而不是I/O空间,使得访问系统设备和访问内存一样,简化了程序设计的难度和接口的复杂性。 直接内存访问(DMA)设备可以字节执行读或写总线事务而不需要CPU干涉的过程,称为直接内存访问,这种数据传送被称为DMA传送。 为什么SSD随机写比随机读慢数据是以页为单位进行读写的。只有在一页所属的块整个被擦出后才能写。随机写的速度慢有两方面的原因。首先擦除块需要相对较长的时间,比访问页的的时间一般会高出一个数量级。另以方面,如果试图写的页所属的块中包含其它数据,就必须将块中带有数据的页复制到一个已经擦除的块中,然后再将块进行擦除然后写入数据页。显然,这会耗费很多时间。为了解决这个问题,制造商再内存翻译层中实现了复杂的逻辑,最小化内部写的次数,但是随即写的性能也很难与随机读一样好。

深入理解计算机系统读书笔记一

基础知识为什么计算机需要高速缓存?计算机程序是存储在磁盘中的。程序运行时,需要将程序加载到主存(内存条)中,但处理器处理程序时,又需要将指令从主存复制到处理器。程序的复制是开销。需要使用一种方式来使复制操作尽可能快的执行。根据机械原理,存储能力较大的设备的读写速度较慢。为了解决主存与处理器之间存在的读取数据的差距,就使用一种更小更快的存储设备,称为高数缓存存储器(cache memory)作为暂时集结的地方。 操作系统的两个基本功能1.防止硬件杯失控的应用程序滥用2.向应用程序提供简单一致的机制来控制复制而又通常不大相同的低级硬件设备。操作系统通过几个基本的抽象概念(进程、虚拟内存和文件)来实现这两个功能。