一、数据结构
B树
B树定义
特殊的m叉排序树。B树所有结点中孩子最大的个数为B树的阶,如一棵最大孩子为m的b树称为b阶m树:
1、每个结点至多有m棵子树,最多含m - 1个关键字。
2、根结点如果不是终端结点,则至少有两棵子树。
3、非根叶结点至少有棵子树,即至少有个关键词。
4、 关键词个数
5、所有叶结点在同一层,不带任何信息。
B树插入
与各结点关键词比较找到最底下一层的关键词结点,按顺序插入其中。若此时该结点内关键词数量超过了m - 1个,则对该结点第个关键词为中心进行分裂,即第个关键词移入父节点,按顺序插入,并将原关键词结点内的关键词分割成两部分(相当于孩子)。若父节点关键词数量也超出要求,则再继续向上同样操作,最终可能导致树高度+1。
B树删除
1、非最下层关键词。
删除关键词后用前驱或后继关键词代替,由于前驱/后驱关键词必定在最下层,因此该情况转换成了情况2。
2、是最下层关键词。
①直接删除。要删除关键词的结点,删除关键词后关键词数量还符合要求。
②兄弟(相邻结点)够借。不满足1的情况下,兄弟结点关键词数量在减少后还符合要求,则向兄弟借一个结点。左兄弟借右结点,替换左兄弟的右父关键词,被替换的关键词插入删除关键词的结点。右兄弟节点类似。
③兄弟不够借。不满足2的情况下,将左或右结点与对应的双亲结点关键词合并。若操作后父结点也不满足条件,按情况1操作。若父结点为根节点,则树高度-1(因为根节点最少只有一个关键词)。
B树与B+树区别
1、B树的指针在关键词之间,B+树的指针在关键词上。因此同阶B树和B+树,最大指针数(最大子树)相同的情况下,一个结点内B+树关键词比B树多1。
2、B+树的叶结点包含信息(如对应父关键词的地址),非叶结点(含关键词的结点)的关键词,代表了该关键词所指向的结点内值最大的那个关键词,因此B+树的结点会含有同样的关键词,且最下层关键词包含了所有的关键词。
二、计算机组成原理
总线事务方式
并行传输
传输中有多个数据位同时在设备之间进行传输。
串行传输
数据的二进制代码在一条物理信道上以位为单位按时间逐位传输的方式。
突发传输(猝发传输)
在一个总线周期内,可以传输多个存储地址连续的数据,即一次传输一个地址和一批地址连续的数据。
同步传输
传输过程由统一的时钟控制。
三、操作系统
进程通信
共享存储
两个进程利用互斥工具(如PV操作)对一块共享空间进行读写操作。分为低级共享(基于数据结构)和高级共享(基于存储区)。
消息传递
进程间数据以格式化的消息(Message)为单位。,进程通过系统提供的发送消息和接受消息两个原语实现数据交换,隐藏了通信实现细节,使通信过程对用户透明,应用广泛(如微内核与服务器之间通信)。
1、直接通信方式。A发送给B,消息挂载在B的消息缓冲队列,B从消息缓冲队列取出消息。
2、间接通信方式。A发送给某个中间实体,B从中间实体取消息。这种方式广泛应用于计算机网络。
管道(Pipe)通信
结构:写进程-----缓冲区(管道)-----读进程
缓冲区的大小固定(Linux为4KB),只允许单向数据传输。读与写操作可以同时进行,但由于读写速度不一定匹配,传输时管道可能为空或满,管道为空时read()会被阻塞,管道满了时write()会被阻塞,以防止未传输完数据read()和write()就调用返回文件结束。
四、计算机网络
无