事务一致性:

数据查询修改之后事务一旦提交多次查询结果都是一样的。

堆排序

堆近似于完全二叉树结构。大顶堆就是父结点值都比子节点大,相反就是小顶堆。

堆排序过程就是把一个无序序列排成大顶堆,根结点值最大。作为第一个排好序的结点。

接着把该结点拿掉。把最末结点把在根位置。重新排成一个大顶堆。递归进行这一过程。

因为他对结点初始状态不敏感,所以最好最坏平均时间复杂度都是nloh2n 空间复杂度是1

这点上来说,它的性能远远好于冒泡插入等时间复杂度是n2的排序算法。

它常常应用于大量数据的排序。

 

kmp算法

核心就是利用好匹配失败后的信息,减少模式串和主串的匹配次数达到一个快速匹配的目的。具体来说就是一个next函数实现。这个函数包含了模式串的局部匹配信息。

预处理在编译之前进行的处理。也叫宏展开,用宏的名字替代文本。这个文本可以是字符串

宏概念关键就是换

条件编译

宏定义

文件包含:预处理程序查找被包含的文件#inclue命令表示

rip ospf bgp

rip ospf子网内部

链路状态路由协议

rip距离向量,交换的信息是相邻路由器之间的路由表。应用层协议。

坏消息传的慢就是这个协议。如果有结点发生故障,不能及时把故障信息传递出去。只能等到跳数增加到16才发现跳数不可达,视为故障。

ospf交换的是全网络的路由表,信息是相邻路由器之间的信息。根据链路状态调整信息。相邻网络之间一有变化全网络都知道了。封装在网络层数据报中。每隔30分钟更新一次。

bgp协议 网络之间传递信息。通常需要一个边界发言人。传输层需要tcp协议,因为需要建立连接。

事务故障

一次事务操作不能成功提交修改。

撤销该事务对数据库的修改。

银行家算法:

解释一下安全状态和非安全状态

就有一个序列使得进程还需要的资源数目不会超过已有的资源数目。这种状态叫做安全状态

分配资源之前,先检查如果这次资源分配出去是否会导致不安全状态。如果会就拒不分配。否则进行正式分配。这是用于避免死锁的著名算法。最初用于银行系统,防止出现不能满足用户贷款需求死锁的情况。

具体来说

分配矩阵:把系统已经分配给每个进程资源列出来

需求矩阵need 把每个进程仍然需要的资源数目列出来

如果仍然需要的资源数目超过系统当前已有的资源的数目,则表示这次分配会使得系统进入不安全状态。为了避免死锁而避免分配。

 

总线:

连接计算机各种组成的导线。是数据地址等信息的通路。根据其信息种类有分数据总线地址总线控制总线

 

cache主存映射方式

把主存分成和cache大小一样的块。如果主存一块能映射到cache块任意位置,叫全相连映射。效率比直接映射高很多。但是硬件上要用到相联存储器,它是不根据地址,根据内容进行查找的存储器。体积小,查找速度快,价格比较昂贵。由空间换取时间。

只能映射到固定位置 直接。主存的多块只能映射到cache某一块。这样非常容易造成冲突的问题。效率不高。

组相联映射就是做的一种在时间和空间上的折中。它把cache块分成多个组,组之间类似直接相连。组内类似全相连映射。

根据组内多少块,分成2路 4路组相连

 

虚拟页式段式

虚拟存储器就是把内存分成和外存同样大小的页。程序装入内存时不是全部装入,而是部分装入最频繁使用的。其他不经常使用的暂时放在外存等待着装入内存。这样能装入的进程就多了,有利于多道程序的并发。使得从用户角度看计算机内存容量扩充了很多。这就叫虚拟存储器。

特点:虚拟性 对换性 多次性

需要用到的硬件有地址变换机构 页表一定内外存 中断机构

页式存储器

把逻辑地址空间分成大小相等的页

把内存分为大小相等逻辑的页,也叫页框

逻辑页与页框一一对应。为了方便找到进程对应的页面,在内存中建立一张页表。因此也会占用一定空间。页式存储器实现内存块的离散分配。解决了连续分配占用一大片连续空间而不能装入很多进程弊端。但是页式分配因为页表也占据空间,所以降低了内存利用率。如果页表太大就不好了,就得采用多级页表方法。地址空间是一维的,包括页内偏移量。

段式虚拟

和上面页表对应的是段表。段空间和程序段对应起来,逻辑上每一个程序段都有一张段表。大小不是固定的。有利于段的共享和保护。但是会有比较多的段间碎片不能利用好。页表只有最后一块会有页内碎片,半块左右。空间是二维的,包括段号和段内偏移。

什么是指令流水线

类似工厂流水线,把一个生产大步骤分成若干个小步骤,每个子过程同时进行。让执行速度增加好几倍。

指令几种执行方式单周期多周期指令流水线一种。

当指令执行 过程拆分成几个子过程,让每个子过程和其他的子过程并发执行互不干扰,以提高自己吞吐率。只需要少量的硬件就能使得指令执行的速度好几倍。

什么是DMA 中断 程序查询方式

中断是解放cpu,提高cpu与io设备并行性。

DMA为了提高cpu效率,进一步解放cpu仅仅在开始时和数据传输结束时需要中断cpu,传输数据时cpu不参与,由DMA控制器与io设备传输。

CSMA-CD CA协议区别

CD协议是对CSMA协议完善。边发送数据仍然边侦听信道,发生冲突就停发。碰撞检测,有线局域网。在有线局域网损耗不大,站点先侦听数据后发送。如果有两个站点侦听发现信道空闲,同时发送数据,发生冲突时都立即停发。选择一个随机时间重发。

 

CA协议无线局域网wifi 因为无线信号传输过程信号逐渐减弱,接收信号强度远小于发送强度。用硬件检测不现实。802.11。用rts cts帧解决隐蔽站问题。发送数据时同时发送给别的站点自己此次发送的时间,这段时间内不要发送数据。如果接受方成功接收,返回ACK帧。

防止结点发送数据冲突用预约信道机制。信道被预约后,其他结点就不能发送数据。

拥塞控制四种算法

在通信子网中,因过量分组导致堵塞情况叫做拥塞控制。

解决它有两种:闭环开环

闭环就是哪出现拥塞就把过量分组传送到不拥塞地方去,

开环就是在设计通信子网时预先考虑拥塞情况,力求不产生拥塞。出现拥塞情况就按照原先的来。

慢开始和拥塞避免是

发送方维持一个拥塞窗口大小。先试探性往网络中发送数据报,1248逐渐增多,后面就成倍增加。到达门限值之后改用拥塞避免算法,即拥塞窗口加法一个个增大。一直出现拥塞,窗口值立刻变成1此后再按照之前慢开始拥塞避免来一轮。

以后的每个传输轮次RTT都缓慢得线性增长。

 

快重传和快恢复配合

当接收方收到一个失序报文之后,立即给发送方发送重复确认,为了让发送方及早知道报文失序。当发送方收到三个连续报文之后立刻重传失序报文。而不必等超时计时器,因此命名快重传。

快恢复就是收到一个发送方收到三个重复确认此时门限值变成原来的一半之后采用拥塞避免算法线性增大。

迪杰斯特拉算法:

基于贪心算法策略。从源点出发,不断找出距离当前始点最近的邻接点加入,直到遍历到终点为止,同时避免形成环路。类似树的广度优先遍历。

具体来说把图的顶点分成两个集合,一个已确定顶点集合,初始只含源点,一个未确定顶点集合。从未确定顶点集合中找到与源点相关联点,且权值最小。把该结点加入已确定结点集合。

时间复杂度是n2

应用是网络层协议ospf算法,链路状态路由协议。Ospf首先要构建最短路径的树,使用最佳路径的计算结果来组建路由表。

两级独立性

物理独立性 应用程序和内模式即数据库的物理存储结构相独立,当内模式改变时,只需要修改内模式/模式映像,不需要修改应用程序。

逻辑独立性  应用程序和数据库的逻辑结构独立,当模式改变时,只需要修改模式和外模式的映像,不需要修改应用程序。

 为什么索引底层不用B树,

SDN

软件定义网络

 

提供了一个集中的可编程的网络,动态地提供网络资源,以应对不断变化的业务需求。

它的直接可编程性

集中控制

SDN有三层架构:

从上到下依次:应用层(应用程序) 控制层(大脑控制层面) 基础层(由交换机路由器等物理硬件组成)

北向接口和南向接口

北向接口:在应用层和控制层 层级通信

南向接口:在控制层和基础层 层级通信

在北向接口中,应用层依赖于控制层告诉他们网络基础信息,哪些资源是可用的。

网络基础层必须被告知应用程序数据必须采用由控制器决定的路径转发。

控制器可实时改变路由器和交换机转发的方式。

数据不再依赖路由表转发路径,控制器可以智能优化数据转发的路径。

北向接口对应控制平面。软件控制。

南向接口对应数据平面。硬件控制

多线程和进程区别

多线程:共享地址空间,cpu调度的基本单位。

进程:进程之间地址空间互不干扰。拥有资源的最小单位。