-
第八章 异常控制流
8.1 异常异常(exception)就是控制流中的突变,用来响应处理器状态中的某些变化。 当处理器状态中发生一个重要的变化时,处理器正在执行某个当前指令Icurr 状态被编码为不同的位和信号,而状态变化称为事件(event)。 当处理器检测到有事件发生时,它就会通过一张叫做异常表(exception table)的跳转表,进行一个间接过程调用(异常) 然后执行下面三种操作中的某一个: ... -
图论
基本概念由顶点集合V和一个描述顶点之间关系—-边的集合VR(或E)组成。 图的定义 V:顶点(数据元素)的有穷非空集合。 VR(或E):弧(关系)的有穷集合。 相关术语顶点 数据元素所构成的结点。 有向图 弧的顶点偶对是有序的。 对弧<vi, vj>而言,vi是弧尾/初始点;vj是弧头/终端点。 无向图 弧的顶点偶对是无序的。 ... -
第七章 链接
链接链接(linking)是将各种代码和数据片段收集并组合成为一个单一文件的过程,这个文件可被加载(复制)到内存并执行。 链接的目的是不用将一个大型的应用程序组织为一个巨大的源文件,而是可以把它分解为更小、更好管理的模块,可以独立地修改和编译这些模块。当我们改变这些模块中的一个时,只需简单地重新编译它,并重新链接应用,而不必重新编译其他文件。 7.1 编译器驱动程序要用GNU编译系统构造示例... -
第十章 系统级I/O
10.1 Unix I/O一个 Linux文件就是一个m个字节的序列:B1,B2, …, Bk, …,Bm-1 所有的I/O设备(例如网络、磁盘和终端)都被模型化为文件,输入和输出被当作对应文件的读和写进行 通过如下统一一致的方式执行 打开文件一个应用程序通过要求内核打开相应的文件,标志访问一个I/O 设备。内核返回一个叫做描述符的小的非负整数,它在后续对此文件... -
外部排序
外部排序无法将所有记录一次性读入内存,无法采用内排序一次性将排序完成 外存信息的定位和存取受其物理特性的限制,无法利用内存可以随机存取的特点,如: – 希尔排序中,相隔di的记录关键字可作比较; – 堆排序中,完全二叉树中的父R[i]与子R[2i]、R[2i+1]可比; – 快速排序中,需正向和逆向访问记录序列 外部信息存取磁带: 顺序存取设备,只适用于存储顺序文件 ta:... -
内部排序
首先区分排序的分类[根据排序时文件记录的存放位置] 内部排序:排序过程中将全部记录放在内存中处理。 外部排序:排序过程中需在内外存之间交换信息。 这里我们先学习内部排序 同样的,还有一种排序的分类 [根据排序前后相同关键字记录的相对次序] 稳定排序:设文件中任意两个记录的关键字值相同,即Ki=Kj(i!=j),若排序之前记录Ri领先于记录Rj,排序后这种关系不变(对所有... -
第四章 处理器体系结构
4.1 Y86-64 指令集体系结构4.1.1 可见状态同x86-64样,Y86-64的程序可以访问和修改程序寄存器、条件码、程序计数器(PC)和内存。状态码指明程序运行情况,包括运行状态和特殊事件。 内存从概念上来说就是一个很大的字节数组,保存着程序和数据。 4.1.2 Y86-64指令只包括8字节整数操作,可以只称为“字(word)” 两个内存传送指令中的内存引用方式是简单的基址和偏移... -
哈希
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。 简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。 哈希查找表根据设定的哈希函数H(key)和处理冲突方法将一组关键字映射到一个有限的地址区间上 即让存储位置与关键字之间存在对应关系 $Loc(i)... -
动态查找表
动态查找表频繁进行插入、删除的查找表 二叉排序树BST定义安装左中右的顺序排序,左子树上所有结点的值均小于根结点的值,右子树上所有结点的值均大于根结点的值 中序遍历一棵二叉排序树,将得到一个以关键字递增排列的有序序列 操作查找查找就是从根节点开始,如果比根节点小就往左子树查找,反之往右子树查找,找到了或者结点为空时停止 非递归形式 123456789101112Bitree SearchB... -
静态查找表
查找表同一类型的**记录(数据元素)**的集合 数据元素之间存在着松散的关系。为了提高查找的效率,可在元素之间人为地附加某种确定的关系。 静态查找表 对查找表的查找仅是以查询为目的,不改动查找表中的数据。 动态查找表 在查找的过程中同时插入不存在的记录,或删除某个已存在的记录。 关键字 记录(数据元素)中的某个数据项的值。 主关键字 该关键字可以唯一地标识一个记录。 次关...