包括数据结构、计算机网络、操作系统、数据库、热点概念
数据结构
① 在顺序存储时,相邻数据元素的存储地址也相邻(逻辑和物理统一);内存中可用存储单元的地址必须连续。 优点:存储密度高(=1),易于搜索和修改。 缺点:插入或删除元素不方便;存储空间利用率低,内存预分配可能导致存储空间浪费。 ②链式存储时,可以随意存储相邻的数据元素,但存储空间分为两部分,一部分存储结点值,另一部分存储指针表示结点之间的关系 优点:元素插入或删除方便,使用灵活,存储空间利用率高。 缺点:存储密度低(<1)整个链表需要搜索和修改。
四种逻辑结构: 1.集合结构:数据元素之间没有任何关系. 2.线性结构:线性关系定义在数据元素之间.1对1 3.树形结构:定义数据元素之间的层次关系 1对多. 4.图形结构:网状关系定义在数据元素之间 多对多. 四种数据存储结构: 1.顺序存储结构:用数据元素之间的相对位置来表示元素之间的逻辑结构.(vector动态数组、 deque双端队列、stack栈容器、queue队列容器) 2.链式存储结构:数组元素的逻辑结构用数据元素之间的指针表示. 3.散列存储结构:顺序存储 算列. 4.索引存储结构:顺序存储 索引.
Prim和Kruskal两者选择的变量不同,Prim算法可称为加点法算法从某个顶点s开始,逐渐长大覆盖整个连接网络的所有顶点。而Kruskal该算法主要应用和收集思想,可称为加边法。最初的最小生成树边数为0。每次迭代,选择满足条件的最小成本边,并添加到最小生成树的边缘收集中。 Prim算法时间复杂度为O(|V|平方),不依赖|E因此,它适用于最小生成树,以求解边缘密集的图片。Kruskal时间复杂度为O(|E|log|E因此,它适用于寻边稀疏、定点较多的图片。
Hash,又称哈希或散列,是通过散列算法将任何长度的输入(也称预映射)转换为固定长度的输出,即散列值。 HASH函数必须有两个基本特征:单向性 和 碰撞约束。在HASH函数中是指 只能从输入推导出输出,而不能从输出计算出输入;碰撞约束是指 找不到输入,使其输出结果等于已知的输出结果 或者 无法同时找到两个不同的输入,使其输出结果完全一致。只有当一个函数同时严格具备这样的特性时,我们才能认识到这样一个函数HASH。 解决冲突的方法: 1.开放地址法:关键词的基本原理是:key当哈希地址发生冲突时,计算key下一个存储地址w1,假如w被占用;计算key下一个存储地址w2,如果w2.继续计算key的存储地址w3,w4……直到找到可用的存储地址,并将相应的元素放入其中。 2.拉链法:又称链地址法,将哈希值相同的数据元素存储在链表中。在搜索哈希表的过程中,必须采用线性搜索方法。链地址法适用于频繁插入和删除。 对于拉链法,数组的每个结点都指向链表。链表中的每个结点都存储了散列值作为索引的键对,链表的维护需要结点之间的指针。
平方取中法:首先通过寻求关键字的平方值来扩大相似数的差异,然后根据表长取中间的几位数作为散列函数值。 除余法:它以表长m去除关键字,并以其他数字作为散列地址 h(key)=key%m 相乘整法首先使用关键词key乘上一个常数A(A大于0小于1,提取key.A小数部分;然后用m乘以小数 随机数法:选择随机函数,将关键字的随机函数值作为其散列地址
表示自然数过大,或表示自然数不连续,或不是自然数
Hash表的平均搜索长度取决于散列表的填充因子,而不是直接取决于表中的记录或记录hash表长。装填因子越大,装填记录越满,发生冲突的可能性越大,搜索长度越长。 哈希函数、哈希表的大小、碰撞处理方法
直接插入排序:平均时间的复杂性 n方 冒泡排序:n方 简单选择排序:n方 快速排序:nlog2 n 堆排序:nlog2 n 2路归并排序:nlog2 n 基数排序:d(n r)
简单选择排序为n方;堆排序是nlog2 n;2路归并排序都是nlog2 n;基数排序都是d(n r)。
直接插入;冒泡;简单选择;堆排序;2路归并排序;基数排序;
简单排序;堆排序;2路归并排序;基数排序;
深度优先遍历图。如果在遍历过程中发现一个节点指向已访问的节点,且已访问的节点不是当前节点的父节点(这里的父节点表示dfs父节点在遍历顺序中)表示存在环。 //如果有回路,则必须有一个子图,即一个环路。环路中所有顶点的度>=2。 算法:第一步:删除所有度<=1的顶点及相关的边,并将另外与这些边相关的其它顶点的度减一。 第二步:将度数变为1的顶点排入队列,并从队列中取出顶点重复步骤1。 如果最后没有删除顶点,就会有环,否则就没有环。 判断向图是否有环的算法主要包括深度优先和拓扑排序。 拓扑排序,如果图中所有节点的排序都能用拓扑排序完成,说明图中没有环,如果不能完成,说明有环。
传统的二叉树通常以链式存储结构表示。这样,二叉树中的每个节点都可以存储在链表中的链节点中,每个链节点包含几个指针。然而,这种传统的链式存储结构只能显示二叉树中节点之间的父子关系,而不能直接在特定的通历顺序(序列、序列、序列、序列)中使用备用指针。 在二叉树中引入结点的前驱后继关系,引入线索二叉树。 线索化:扫描二叉树并按一定的通历顺序为每个节点添加线索的过程称为二叉树的线索化。线索化的目的是加快在二叉树中找到节点的前后速度。 然后需要在有N个节点的二叉树中使用N 一个空指针添加线索。 //如果没有左子树,将左指针指向前驱结点;如果没有右子树,将右指针指向后继结点。
:Hn=Hn-1 x 2 1.
邻接矩阵:用一维数组存储图中顶点的信息,用二维数组存储图中的信息。存储顶点之间邻接关系的二维数组称为邻接矩阵。 邻接表:为避免内存浪费,邻接表引入链式存储,其处理方法如下: 1.用一个一维数组存储顶点,当然你也可以用单链表存储, 2.将顶点的邻接点存储在单链表中,顶点可以改为结构体数组,将邻接点的指针存储在结构体中,并创建一个定义指针的结构体next将顶点的另一个邻接点存储起来,以便将顶点的所有邻接点串起来。 邻接矩阵的优缺点: 1)优点:a. 很容易判断两个顶点是否有联系。确定顶点后,确定矩阵上的相应位置是0还是非MaxInt即可。 b. 计算每个顶点的程度很容易。事实上,没有必要计算它。数完了。无向图,多少(1,n)的值为1,v1度是多少;有多少个有向图?<1,n>的值为1,v1的出度是多少,多少?<n,1>的值为1,v入度是多少? 2)缺点:a. 不易增加和删除顶点。非链结构的常见问题。 b. 统计边数不方便,需要遍历邻接矩阵的所有元素,时间复杂度为O(n2)。无向图遍历后除以2。 c. 空间复杂性高。另一个常见的非链结构问题,稀疏图(边缘或弧数较少),尤其是浪费空间。 邻接表的优缺点: 1)优点:a. 增加和删除顶点很容易。 b. 统计边数量方便,时间复杂度为O(n e)。 c. 空间效率高。 2)缺点:a. 判断顶点之间是否有联系并不方便。 b. 计算向图每个顶点的入度并不方便,需要覆盖所有其他起始顶点的单链表。 还有交叉链表和邻接多重表
优先搜索广度BFS:层序遍历算法类似于二叉树。首先,访问起始顶点v,然后从v开始,依次访问v未访问的邻接顶点w1,w2…,wi所有未访问的邻接顶点,从这些访问的顶点开始,直到图中所有的顶点都被访问。广度优先搜索是一个分层搜索过程,每一步都可以访问一批顶点,所以它不是递归算法。Dijkstra单源最短路径算法和prim类似的想法也应用于最小生成树算法。 深度优先搜索DFS:类似于树的先序遍历,运用递归思想,该算法遵循的搜索策略是尽可能深入地搜索图片。首先,在图中访问一个起始点v,然后从v开始,访问任何与v相邻且未被访问的顶点w1,再访问与w1邻接且未被访问的任何顶点w2…重复上述过程,当不能继续向下访问时,返回到最近被访问的顶点,直到所有顶点都被访问。 BFS应用:用于确定从一个结点到另一个结点(一个网络到其他网络的网关)的最佳路径和最短路径 DFS应用:拓扑排序,走迷宫
存储方式:邻接矩阵、邻接表 遍历方式:BFS和DFS
Floyd算法是按顺序逐渐允许每个顶点作为中间节点,按照这个中间节点的变化去进行松弛。 Dijsktra算法是根据当前离开始节点最近为标准来确定当前扩展节点,按照这个起始节点的变化去进行松弛。 拓扑排序中使用了哪些数据结构 栈
二叉排序树:二叉排序树也叫二叉查找树、二叉搜索树(简称:BST)对于二叉树中的任何一个非叶子节点要求左子节点比当前节点值小,右子节点比当前节点值大(一个空树也可以称为一个二叉排序树)。
1、度不同 度为2的树要求每个节点最多只能有两棵子树,并且至少有一个节点有两棵子树。二叉树的要求是度不超过2,节点最多有两个叉,可以是1或者0。 2、分支不同 度为2的树有两个分支,但分支没有左右之分;一棵二叉树也有两个分支,但有左右之分,左右子树的次序不能随意颠倒。 3、次序不同 度为2的树从形式上看与二叉树很相似,但它的子树是无序的,而二叉树是有序的。即,在一般树中若某结点只有一个孩子,就无需区分其左右次序,而在二叉树中即使是一个孩子也有左右之分。
在带权有向图中,以顶点表示事件,以有向边表示活动,以边上的权值表示完成该活动的开销,称之为用边表示活动的网络,简称AOE网。在AOE网中,有些活动是可以并行进行的。从源点到汇点的有向路径可能有多条,并且这些路径长度可能不同。完成不同路径上的活动所需的时间虽然不同,但是只有所有路径上的活动都已完成,整个工程才能算结束。因此,从源点到汇点的所有路径中,具有最大路径长度的路径称为关键路径,把关键路径上的活动称为关键活动。
f[v]=max{f[v],f[v-w[i]]+v[i]} 这个方程非常重要,基本上所有跟背包相关的问题的方程都是由它衍生出来的。所以有必要将它详细解释一下:“将前i件物品放入容量为v的背包中”这个子问题,若只考虑第i件物品的策略(放或不放),那么就可以转化为一个只牵扯前i-1件物品的问题。如果不放第i件物品,那么问题就转化为“前i-1件物品放入容量为v的背包中”,价值为f[i-1][v];如果放第i件物品,那么问题就转化为“前i-1件物品放入剩下的容量为v-w[i]的背包中”,此时能获得的最大价值就是f [i-1][v-w[i]]再加上通过放入第i件物品获得的价值v[i]。
数组优点:查找效率高,可随机访问; 数组缺点:1、增删操作不方便,会引起大量元素的移动; 2、内存空间大小固定,不能动态拓展,且容易造成内存浪费。 链表优点:1、增删操作方便,只需移动指针; 2、可动态分配空间,内存利用率高; 链表缺点:不能随机访问,必须从第一个开始遍历,查找效率低。
局部性分为时间局部性和空间局部性 时间局部性是指一个信息被访问,那么它在近期很可能再次被访问; 空间局部性是指一个存储位置被访问,那么它附近的存储位置很可能下次被访问。
全称Balance-tree(平衡多路查找树),平衡的意思是左边和右边分布均匀。多路的意思是相对于二叉树而言的,二叉树就是二路查找树,查找时只有两条路,而B-tree有多条路,即父节点有多个子节点。 使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。这个数据结构一般用于数据库的索引,综合效率较高。 对于一棵m阶B-tree,每个结点至多可以拥有m个子结点。即遍观整棵树,子节点最多的个数是m,那么这棵树就是m阶树。 所有的叶子结点都出现在同一层次上,即所有叶节点具有相同的深度,等于树高度。并且不带信息(可以看作是外部结点或查找失败的结点,实际上这些结点不存在,指向这些结点的指针为空)。
相同点 1.都是线性表 2.元素在逻辑上都是连续的(存储上顺序表连续,链表不连续) 3.每个元素都有唯一的前驱和唯一的后继(注意:第一个元素没有前驱,最后一个元素没有后记—>循环链表除外) 不同点 1.底层存储空间不同: 顺序表底层存储空间连续; 链表不连续; 2.插入和删除的方式不同: 顺序表插入和删除得搬移后面的所有元素,效率低,时间复杂度为O(N); 链表不需要搬移后面的元素,效率高,时间复杂度位O(1); 3.随机访问: 顺序表底层空间连续,支持随机访问,访问元素时间复杂度为O(1); 链表底层空间不连续,不支持随机访问,访问元素时间复杂度为O(N); 4.扩容: 顺序表在插入时需要扩容–>开辟新空间,拷贝元素,释放就空间; 链表在插入时不需要扩容; 5.空间利用率: 一般情况顺序表空间利用率较高(链表每个节点中需要存储date和next,顺序表只存储元素date); 链表中的元素存储再一个一个节点中,而每个节点都是malloc出来的:频繁向堆申请小的内存块–造成内存碎片,效率低;
计算机网络
TCP位于传输层;IP位于网络层
2、 有四层,分别是网络接口层,网际层,传输层和应用层。网络接口层类似于OSI模型中的物理层和数据链路层。
3、 TCP面向连接,提供可靠的服务,通过TCP连接传送的数据是无差错的且按序到达;UDP是无连接的,它是一种尽最大努力交付,不能保证可靠交付,但是UDP具有较好的实时性。
4、 TCP保证可靠性主要依靠几种机制:首先是TCP将每个字节的数据都进行了编号,就是序列号,序列号能够保证数据的按序到达;第二是确认应答机制,即ACK,接收方对于按序到达的数据会发送ACK进行确认;第三是超时重传机制,当发送方发出后在一定时间内未收到接收方的确认,发送方就会进行重传;第四是流量控制,接收端处理数据的速度是有限的,如果发送方发送数据的速度过快,导致接收端的缓冲区满,而发送方继续发送,就会造成丢包,继而引起丢包重传等一系列连锁反应,因此TCP支持根据接收端的处理能力,来决定发送端的发送速度。
拥塞控制是防止过多的数据注入到网络中,可以使网络中的路由器或链路不致过载,是一个全局性的过程。拥塞控制主要是慢开始、拥塞避免、快重传和快恢复四个算法。发送方维持一个叫做拥塞窗口cwnd(congestion window)的状态变量,慢开始算法的思路就是,不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小。无论是在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞,就把慢开始门限设置为出现拥塞时的发送窗口大小的一半。然后把拥塞窗口设置为1。 TCP的拥塞控制采用了四种算法,即慢开始、拥塞避免、快重传和快恢复。 (1)慢开始算法 在TCP刚刚连接好并开始发送TCP报文段时,先令拥塞窗口cwnd = 1,即一个最大报文段长度MSS。每收到一个对新报文段的确认后,将cwnd 加1,即增大一个MSS。用这样的方法逐步增大发送方的拥塞窗口 cwnd,可使分组注入网络的速率更加合理。 (2)拥塞避免算法 拥塞避免算法的做法如下:发送端的拥塞窗口cwnd每经过一个往返时延RTT就增加一个MSS的大小,而不是加倍,使cwnd按线性规律缓慢增长(即加法增大),而当出现一次超时(网络拥塞)时,令慢开始门限ssthresh等于当前cwnd的一半(即乘法减小)。 (3)快重传 快重传技术使用了冗余ACK来检测丢包的发生。同样,冗余ACK也用于网络拥塞的检测(丢了包当然意味着网络可能出现了拥塞)。快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。 当发送方连续收到三个重复的ACK报文时,直接重传对方尚未收到的报文段,而不必等待那个报文段设置的重传计时器超时。 (4)快恢复 快恢复算法的原理如下:发送端收到连续三个冗余ACK(即重复确认)时,执行“乘法减小”算法,把慢开始门限ssthresh设置为出现拥塞时发送方cwnd的一半。与慢开始(慢开始算法将拥塞窗口cwnd 设置为1)的不同之处是,它把cwnd 的值设置为慢开始门限ssthresh改变后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。
在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况叫做拥塞。如果网络得吞吐量随着网络负载的增大反而下降,那么网络就可能进入拥塞状态。拥塞后可以使用四种算法解决拥塞控制。
UDP是无连接的传输层协议,是一种尽最大努力的交付,是面向报文的。UDP应用于对销量要求相对高,但是对准确性要求相对低的场景,比如QQ聊天,网络语音电话(就是即时通讯,速度要求高,但是出现偶尔断续不是太大问题)。
流量控制:如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。流量控制的方法有三个,停止-等待协议、滑动窗口-后退N帧协议(GBN)、滑动窗口-选择重传协议(SR)。停止等待协议:每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧; 停止-等待协议:发送窗口大小=1,接收窗口大小=1; 后退N帧协议(GBN):发送窗口大小>1,接收窗口大小=1; 选择重传协议(SR):发送窗口大小>1,接收窗口大小>1;
子网掩码是一种用来指明一个IP地址所标示的主机处于哪个子网中。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
路由器:(Router)是连接因特网中各局域网、广域网的设备。在路由器中记 录着路由表,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。发生在网络层。 交换机:(Switch)是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路,把传输的信息送到符合要求的相应路由上。发生在数据链路层。 集线器:(Hub)是指将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备。发生在物理层。 路由器的转发依据是IP地址,而交换机的转发依据是Mac地址,路由器能够连接不同的网络,交换机是连接局域网中的电脑。交换机和集线器都是基于MAC识别的,但是通过集线器连接的电脑共享带宽,而交换机中每个端口都有一条独占的带宽。 集线器不能打破冲突域和广播域,交换机可以打破冲突域但是不能分割广播域,路由器则可以打破冲突域也能分割广播域。
可以。三层交换机就是具有部分路由器功能的交换机,他的最重要目的是加快大型局域网内部的数据交换。三层交换技术就是二层交换技术+三层转发技术。
IP地址是指internet protocol address,是ip address的缩写。Ip地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 MAC地址又称为物理地址,用来定义网络设备的位置。它是烧录在网卡或者接口上的物理地址,具有全球唯一性。 对于网络上的某一设备,其IP地址是基于网络拓扑设计出的,可以改动,但是MAC不能改动。IP地址为32位,MAC为48位,IP地址位于网络层,而Mac位于数据链路层。
路由器:路由器是一种具有多个输入端口和多个输出端口的专用计算机,其主要任务是路由选择和分组转发。是连接因特网中各局域网、广域网的设备。在路由器中记录着路由表,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。发生在网络层。 三层交换机、防火墙
物理地址:即mac地址,在数据链路层和物理层使用。 逻辑地址:即IP地址,IP地址标识着网络一个主机的位置,每个IP地址都是由32位(IPv4地址,4个字节)组成。在网络层及以上使用。 域名地址:仅仅在应用层用到。域名地址,就是IP地址的符号化,一个ip可以绑定多个域名,但是一个域名不能同时解析到多个IP地址下,域名的出现就是为了方便人们记忆。
IP地址一共有32位,由网络号和主机号两部分组成。IP地址由4个8位的二进制数组成,但是二进制可读性差,所以将二进制转换成十进制表示,点分十进制。可以分为a,b,c,d,e五类,代表不同的用法,比如私有地址、公有地址。
共七层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。低三层统称为通信子网,它是为了联网而附加的通信设备,完成数据的传输功能。高三层统称为资源子网,它相当于计算机系统,完成数据的处理等功能。
传输层位于OSI模型的第四层,传输单位是报文段(TCP)或用户数据报(UDP),传输层负责主机中两个进程之间的通信,功能是为端到端连接提供可靠的传输服务,为端到端连接提供流量控制、差错控制、服务质量、数据传输管理等服务。传输层还有复用分用的功能。复用是指多个应用层进程可以同时使用下面传输层的服务,分用是指传输层把收到的信息分别交付给上面应用层中相应的进程。
传输层主要是负责应用程序之间的数据传输,传输层主要的协议有TCP和UDP。UDP:无连接、不可靠、面向数据报的传输。无连接是指通信的时候不需要建立连接,只需要知道对方的地址信息,就可以发送数据;不可靠是指在通信中并不保证数据安全可靠以及有序的到达对方;面向数据报是指在UDP传输时,对于上层协议传过来的数据既不合并也不拆分,直接添加上一个UDP头部就开始传输。 TCP是有连接的可靠的面向字节流的传输。TCP的可靠主要是使得数据能够有序并且安全不丢包的到达对端,有序是通过协议中的序号来管理包序,安全则是通过确认应答、超时重传、流量控制、拥塞控制、以及校验字段来实现。
物理层:主要对物理连接方式,电气特性,机械特性等制定统一标准,传输比特流。 数据链路层:不同的网络类型,发送数据的机制不同,数据链路层就是将数据包封装成能够在不同网络传输的帧。能够进行差错检查,但不纠错,检测出错误丢掉该帧。 网络层:主要任务是把网络层的协议数据单元(分组)从源端传到目的端,为分组交换网上的不同主机提供通信服务。关键问题是对分组进行路由选择,并实现流量控制、拥塞控制、差错控制等功能。 传输层:传输层负责主机中两个进程之间的通信,功能是为端到端连接提供可靠的传输服务,为端到端连接提供流量控制、差错控制、服务质量、数据传输管理等服务。传输层还有复用分用的功能。复用是指多个应用层进程可以同时使用下面传输层的服务,分用是指传输层把收到的信息分别交付给上面应用层中相应的进程。 会话层:会话层允许不同主机上的各个进程之间进行会话。会话层负责管理主机间的会话进程,包括建立、管理及终止进程间的会话。 表示层:表示层主要处理在两个通信系统中交换信息的表示方式。不同机器采用的编码和表示方法不同,使用的数据结构也不同。为了使不同表示方法的数据和信息之间能互相交换,表示层采用标准的编码形式。 应用层:为特定类型的网络应用提供访问OSI参考模型环境的手段。
内部网关协议(IGP)在一个域中选择路由。一个域(domain)是一组主机和使用相同路由选择协议的路由器集合。内部网关协议主要有RIP和OSPF。 RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议。RIP是一种分布式的、基于距离向量的路由选择协议。RIP协议要求网络中的每一个路由器都要维护从它自己到每一个目的网络的距离记录。RIP协议让互联网中的所有路由器都和自己相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(跳数最少)。RIP是应用层协议,它使用UDP传送数据(端口520),RIP选择的路径不一定是时间最短的,但一定是具有最少路由器的路径。 RIP的特点:仅和相邻路由器交换信息;路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表;按固定的时间间隔交换路由信息 RIP优点:实现简单、开销小、收敛过程较快 RIP缺点:限制了网络的规模,它能使用的最大距离为15;路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也越大;网络出现故障的时候,会出现慢收敛现象。 开放最短路径优先OSPF(Open Shortest Path First)是为克服RIP的缺点开发出来的。“开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的。“最短路径优先”是因为使用了Dijkstra提出的最短路径算法。OSPF最主要的特征就是使用分布式的链路状态协议,而不是像RIP那样的距离向量协议。 OSPF向本自治系统的所有路由器发送消息,而RIP协议仅仅向自己相邻的几个路由器发送消息。OSPF只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此消息。在RIP协议中,不管网络拓扑是否有变化,路由器之间都要定期交换路由表的信息。OSPF是网络层协,它不适用UDP或TCP,而直接用IP数据报传送;而RIP是应用层协议,它在传输层使用UDP。
1 destination:目的地址,用来标识IP包的目的地址或者目的网络。 2 mask:网络掩码,与目的地址一起标识目的主机或者路由器所在的网段的地址。 3 pre:标识路由加入IP路由表的优先级。可能到达一个目的地有多条路由,但是优先级的存在让他们先选择优先级高的路由进行利用。 4 cost:路由开销,当到达一个目的地的多个路由优先级相同时,路由开销最小的将成为最优路由。 5 interface:输出接口,说明IP包将从该路由器哪个接口转发。 6 nexthop:下一跳IP地址,说明IP包所经过的下一个路由器。
RIP、OSPF BGP(Border Gateway Protocol):边界网关协议。 与内部网关协议不同的是,其不在于发现和计算路由,而在于控制路由的传播和选择最佳路由,BGP只力求寻找一条能够到达目的网络且比较好的路由。BGP是应用层协议,它是基于TCP的。 BGP工作原理:每个自治系统的管理员要选择至少一个路由器作为该自治系统的“发言人”,BGP发言人要和其他自治系统中的发言人交换路由信息,要先建立TCP连接,然后在此连接上交换BGP报文以建立对话,再利用对话交换路由信息。
路由器:(Router)是连接因特网中各局域网、广域网的设备。在路由器中记录着路由表,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。发生在网络层。
路由器主要完成两个功能,分组转发和路由计算。前者处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度;后者通过和其他路由器基于路由协议的交互,完成路由表的计算。路由器能够使异构网络互联,连接不同的网络。 第一,网络互连:路由器支持各种局域网和广域网接口,主要用于互连局域网和广域网,实现不同网络互相通信; 第二,数据处理:提供包括分组过滤、分组转发、优先级、复用、加密、压缩和防火墙等功能; 第三,网络管理:路由器提供包括路由器配置管理、性能管理、容错管理和流量控制等功能。
“路由”是一个网络层的术语。它是指从某一网络设备出发去往某个目的地的路径;路由表则是若干条路由信息的一个集合体。在路由表中,一条路由信息也被称为一个路由项或一个路由条目。
(1)IP(IPV4、IPV6)地址 (2)MAC地址
使用ARP协议。ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址。
MAC地址又称为物理地址,用来定义网络设备的位置。它是烧录在网卡或者接口上的物理地址,具有全球唯一性。Mac地址的长度为48位。 因为IP只是逻辑上的标识,任何人都能随意修改,因此不能用来标识用户;而MAC地址是固化在网卡里的,很难被顶替,因此局域网采用了MAC地址来标识具体用户的方法,也就是IP和MAC的绑定,因此是需要MAC地址的。
网络拓扑结构按照几何图形的形状可分为四种类型:总线拓扑、环型拓扑、星型拓扑和网状拓扑。不同的网络拓扑结构适用于不同的网络规模。例如局域网应用的是总线、星型或环型拓扑结构,而广域网则采用网状拓扑结构。 在星型拓扑结构中,网络中的每个节点通过一个中央设备,如集线器连接在一起。网络中的每个节点将数据发送到中央设备,再由中央设备将数据转发到目标节点。 环型拓扑结构是由连接成封闭回路的网络节点组成的,每一节点与它左右相邻的节点连接。环型网络常使用令牌环来决定哪个节点可以访问通信系统。 在总线型结构中,所有网上计算机都通过相应的硬件接口直接连在总线上,任何一个节点的信息都可以沿着总线向两个方向传输扩散,当一个节点向另一个节点发送数据时,所有节点都将被动地侦听该数据,只有目标节点接收并处理发送给它的数据,其他节点将忽略该数据。这类似于广播电台,故总线网络也被称为广播式网络。 在网络拓扑结构中,每两个节点之间都直接互连。网状拓扑常用于广域网,由于对两点之间的数据传输提供多条链路,因此,网状拓扑是最具容错性的网络拓扑结构。
广域网(WAN):是连接不同地区局域网或城域网计算机通信的远程网。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里。 城域网(MAN):是在一个城市范围内所建立的计算机通信网。 局域网(LAN):覆盖范围较小,通常是直径为几十米到几千米的区域。传统上,局域网使用广播技术,而广域网使用交换技术。 个人区域网(PAN):覆盖区域的直径为10m,是指在个人工作的地方将消费电子设备用无线技术连接起来的网络。
计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。简而言之,计算机网络就是一些互联的、自治的计算机系统的集合。
网关的英文名称:gateway,又叫做网间连接器、协议转换器。网关是在采用不同体系结构或协议的网络之间进行互通时,用于提供协议转换、路由选择、数据交换等网络兼容功能的设施。 网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。
1、封装成帧:就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。 2、透明传输:传输过程中,如果数据中的某个字符恰好和SOH或EOT这种控制字符一样,数据链路层就会错误地找到帧的边界,把剩下的部分数据丢弃。 解决方法:字节填充或字符填充。发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B),接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。 3、差错检查:在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。为了保证数据传输的可靠性,传输数据时必须采用各种差错检测措施。使用的检错技术为循环冗余检验CRC(Cyclic Redundancy Check)。CRC 码的基本思想:a,在信息报文上加上一些检查位,构成一个特定的待传报文,使它能被一个事先约定的多项式(生成多项式)除尽。b,接收方收到报文后,再用同样的生成多项式去除收到的报文多项式,可以除尽表示传输无误,否则不正确。
FTP的端口是21;DHCP的端口号是67;pop3/SMTP的端口号是110/25;DNS的端口号是53;HTTP通信用的端口号是80;
如果是全双工模式下,则不需要。在半双工模式下,一个端口中的接受和发送就能够产生冲突,此时CSMA/CD冲突检测机制将侦听在这个端口上是否有数据正在被接收而占用。所以,交换机在半双工工作模式下工作,网卡会启用CSMA/CD冲突检测机制来避免冲突的发生。
ARP 工作在网络层,其工作原理如下:主机A 欲向本局域网上的某台主机B 发送IP 数据报时,先在其ARP 高速缓存中查看有无主机B 的IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC 帧,然后通过局域网将该MAC 帧发往此硬件地址。如果没有,那么就通过使用目的MAC 地址为FF-FF-FF-FF-FF-FF 的帧来封装并广播ARP 请求分组,使同一个局域网里的所有主机收到ARP 请求。主机B 收到该ARP 请求后,向主机A 发出响应ARP 分组,分组中包含主机B 的IP与MAC 地址的映射关系,主机A 在收到后将此映射写入ARP 缓存,然后按查询到的硬件地址发送MAC 帧。ARP 由于“看到了"IP 地址,所以它工作在网络层,而NAT路由器由于“看到了“端口,所以它工作在传输层。
1、采用无类别编址CIDR,使IP地址的分配更加合理 2、采用网络地址转换(NAT)方法以节省全球IP地址 3、采用具有更大地址空间的新版本的IPv6 其中前两个方法只是延长了IPv4地址分配完毕的时间,只有第三种方法从根本上解决了IP地址的耗尽问题。 无分类域间路由选择是在变长子网掩码的基础上提出的一种消除传统A、B、C类网络划分。 其特点主要有: 1、消除了传统A、B、C类地址及划分子网的概念,因而可以更有效地分配IPv4的地址空间。CIDR使用“网络前缀”的概念代替子网络的概念。因此,IP地址的无分类两级编址为:IP::=<网络前缀>,<主机号>。 2、将网络前缀都相同的连续IP地址组成“CIDR地址块”。一个CIDR地址块可以表示很多地址,这种地址的聚合称为路由聚合,或称构成超网。路由聚合使得路由表中的一个项目可以表示多个原来传统分类地址的路由,有利于减少路由器之间的路由选择信息的交换,从而提高网络性能。 NAT即网络地址转换,是指通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址。它使得整个专用网只需要一个全球IP地址就可以与因特网连通,由于专用网本地IP地址可以重用,因此NAT大大节省了IP地址的消耗。 使用NAT的时候需要在专用网连接到因特网的路由器上安装NAT软件,NAT路由至少有一个有效的外部全球地址。 普通的路由器在转发IP数据报的时候,不改变其源IP地址和目的IP地址。而NAT路由器在转发IP数据报的时候,一定要更换其IP地址。普通路由器仅工作在网络层,而NAT路由器转发数据时需要查看和转换传输层的端口号。 IPv6的主要特点: 1、更大的地址空间。IPv4有32位,而IPv6有128位。 2、灵活的首部格式。IPv6将IPv4的校验和字段彻底移除。 3、允许协议继续扩充。 4、支持即插即用,即自动配置。 5、IPv6只有在包的源结点才能分片,是端到端的,传输路径中的路由器不能分片。IPv6只能在主机处分片,而IPv4可以在路由器和主机处分片。 6、增大了安全性。
同一个IP地址根据不同子网掩码,会划分出不同的网络号和机器号。 子网掩码就是用来遮掩IP地址并划分网段的工具,根据遮掩的位数不同来划分不同的网段
第一次挥手:客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送 第二次挥手:服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。 第三次挥手:服务器B关闭与客户端A的连接,发送一个FIN给客户端A 第四次挥手:客户端A发回ACK报文确认,并将确认序号设置为收到序号加1
TCP的三次握手最主要是防止已过期的连接再次传到被连接的主机。 如果采用两次的话,会出现下面这种情况。 比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机; 于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接。传完东西后,断开。结果这时候,原先没有到达的连接信息突然又传到了B机,于是B机发信息给A,然后B机就以为和A连上了,这个时候B机就在等待A传东西过去。
正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。 反向代理正好相反。对于客户端来说,反向代理就好像目标服务器。并且客户端不需要进行任何设置。客户端向反向代理发送请求,接着反向代理判断请求走向何处,并将请求转交给客户端,使得这些内容就好似他自己一样,一次客户端并不会感知到反向代理后面的服务,也因此不需要客户端做任何设置,只需要把反向代理服务器当成真正的服务器就好了。 区别:正向代理需要你主动设置代理服务器ip或者域名进行访问,由设置的服务器ip或者域名去获取访问内容并返回;而反向代理不需要你做任何设置,直接访问服务器真实ip或者域名,但是服务器内部会自动根据访问内容进行跳转及内容返回,你不知道它最终访问的是哪些机器。 正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见; 而反向代理是代理服务器端,为服务器收发请求,使真实服务器对客户端不可见。
TCP粘包就是指发送方发送的若干包数据到达接收方时粘成了一包,从接收缓冲区来看,后一包数据的头紧接着前一包数据的尾,出现粘包的原因是多方面的,可能是来自发送方,也可能是来自接收方。 1、使用带消息头的协议、消息头存储消息开始标识及消息长度信息,服务端获取消息头的时候解析出消息长度,然后向后读取该长度的内容。 2、设置定长消息,服务端每次读取既定长度的内容作为一条完整消息,当消息不够长时,空位补上固定字符。 3、设置消息边界,服务端从网络流中按消息编辑分离出消息内容,一般使用‘\n’。
step1:首先客户机TCP向服务器TCP发送连接请求报文,报文中SYN=1,随机发送一个序号seq=x; step2:服务器TCP接收到连接请求报文后,若同意连接,则返回确认报文,且为该TCP连接分配TCP变量和资源,确认报文中SYN=1,ACK(确认位字段)=1,ack(确认号字段)=x+1,seq=y; step3:客户机接收到服务器的确认连接报文后,同样返回确认报文,且为该TCP连接分配TCP变量和资源,确认报文中,ACK=1,ack=y+1,seq=x+1。
套接字是由主机IP地址和端口号组成,是传输层在进行端到端通信时两端连接的端点。两个网络应用程序进行数据传输时,必须创建套接字来完成。
防火墙是由计算机硬件和软件组成的系统,部署于网络边界,是连通内部网络和外部网络的桥梁。 防火墙技术:包过滤、应用代理等 特点:1、防火墙可防止非法用户进入内部网络,减少内网中主机的风险; 2、集中管理内部网络,增强保密性; 3、不能防范来自内部的攻击; 4、不能防范未知的威胁。
分页的作业地址空间是一维的,而分段的作业地址空间是二维的。分段地址结构为:<段号,段内偏移量> 将作业分成若干个逻辑段(大小可不同),每个段都有自己的段号,然后再将每个段分成若干个大小相同的页。
(1)HTTPS 协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。(以前的网易官网是http,而网易邮箱是 https 。) (2)HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。 (3)HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 (4)HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息)。
操作系统
有三种调度方法:1.FIFO(First In First out):先见先出,淘汰最先近来的页面,新进来的页面最迟被淘汰,完全符合队列。 2.LRU(Least recently used):最近最少使用,淘汰最近不使用的页面 3.LFU(Least frequently used): 最近使用次数最少, 淘汰使用次数最少的页面
程序和软件的区别是,软件是为了完成特定的功能,解决特定的问题而用计算机语言编写的命令序列集合,可以理解为应用程序的集合。而应用程序是软件的一个组成部分,它是软件的必要元素。计算机软件是计算机系统中程序和文档的总称
页式存储管理:页式存储管理是把主存储器划分成大小相等的若干区域,每个区域称为一块,并对它们加以顺序编号,如0#块、1#块等等。与此对应,用户程序的逻辑地址空间划分成大小相等的若干页,同样为它们加以顺序编号,从0开始,如第0页、第1页等。页的大小与块的大小相等。分页式存储管理的逻辑地址由两部分组成:页号和页内地址。
优点:没有外部碎片,程序不必连续存放;缺点:要求程序全部装入内存,没有足够的内存,程序不能执行 段式存储管理:逻辑地址格式:段号和段内地址
优点:没有内部碎片;缺点和页式存储管理的一样。 区别: 1、页是信息的物理单位,是系统管理的需要而不是用户的需要;而段则是信息的逻辑单位,它含有一组意义相对完整的信息,分段是为了更好地满足用户的需要。 2、页的大小固定且由系统决定,因而一个系统只能有一种大小的页面;而段的长度却不固定,由用户所编写的程序决定,通常由编译程序对源程序进行编译时根据信息的性质来划分。 3、分页式作业的地址空间是一维的,页间的逻辑地址是连续的;而分段式作业的地址空间则是二维的,段间的逻辑地址是不连续的。
段页式存储管理:用户对作业采用分段组织,每段独立编程,在主存空间分配时,再把每段分成若干个页面,这样每段不必占据连续的主存空间,可把它按页存放在不连续的主存块中。逻辑地址格式:段号+页号+页内地址
正在运行的进程由于提出系统服务请求(如I/O操作),但因为某种原因未得到操作系统的立即响应,或者需要从其他合作进程获得的数据尚未到达等原因,该进程只能调用阻塞原语把自己阻塞,等待相应的事件出现后才被唤醒。
进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;如果没有并发,无法高效处理操作。
进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发; 线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发;线程是操作系统可识别的最小执行和调度单位。
管道:管道是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件(pipe文件)。1.互斥,即当一个进程正在对pipe执行读/写操作时,其它进程必须等待;2.同步,当一个进程将一定数量的数据写入,然后就去睡眠等待,直到读进程将数据取走,再去唤醒。读进程与之类似。 消息队列:消息队列,就是一个消息的链表,是一系列保存在内核中消息的列表。用户进程可以向消息队列添加消息,也可以向消息队列读取消息。 信号量:在进程访问临界资源之前,需要测试信号量,如果为正数,则信号量-1并且进程可以进入临界区,若为非正数,则进程挂起放入等待队列,直至有进程退出临界区,释放资源并+1信号量,此时唤醒等待队列的进程。信号量本身就是临界资源,所以必须是原子操作。 共享内存:共享内存是最快的进程间通讯的方式
1、先来先服务调度算法:先来先服务(FCFS)调度算法是一种最简单的调度算法,每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。 2、高优先权优先调度算法:该算法是把处理机优先分配给就绪队列中优先权最高的进程。 3、时间片轮转调度算法:系统还是按照先来先服务调度就绪进程,但每次调度时,CPU都会为队首进程分配并执行一个时间。执行时间片用完后计时器即产生时钟中断,停止该进程并将它送到队尾,其他依次执行。这样保证系统能在给定的时间内执行所有用户进程的请求。 4、多级反馈队列调度算法:多级反馈队列调度算法则不必事先知道各种进程所需的执行时间,而且还可以满足各种类型进程的需要,因而它是目前被公认的一种较好的进程调度算法。实施过程: (1) 应设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。 (2)当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾。 (3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行; 5、高响应比优先调度算法:根据计算响应比,高者优先。响应比=响应时间/要求服务时间。
①就调度而言。传统操作系统,进程是资源分配和调度的基本单位,也是拥有资源的基本单位,引入线程后,线程是资源分配和调度的基本单位,而进程是拥有资源的基本单位。 ②就并发性而言。不同的进程可以并发执行,而同一进程中的不同线程也可以并发执行,因此线程的并发性更高。 ③就资源占有而言。进程是拥有资源的基本单位,而线程除了自身所必须分配的那一点资源外,基本上不占用资源。 ④就开销而言。进程的创建和撤销,系统都需要为之分配和回收资源,开销大,而线程切换时,系统只需要保存和设置少量寄存器的内容,开销很小。
虚电路和数据报都是分组交换技术。 ①数据报是无连接的数据交换,而虚电路是面向连接的数据交换; ②数据报的分组都是通过独立的路由选择和转发,而同属于一条虚电路的分组按照同一路由转发; ③数据报不保证数据的可靠交付,虚电路可靠性由网络保证; ④数据报不保证分组的有序到达,虚电路保证分组的有序到达。
流水线是指把一个重复的过程分解为若干子过程,每个子过程与其他过程并行运行。 性能指标:吞吐量、加速比、效率 吞吐量是指单位时间内流水线所完成的单位数量; 加速比是指完成相同任务的前提下,使用流水线所花时间和不使用流水线所花时间之比; 效率是指流水线的设备利用率。
这种情况出现于DMA传送方式中,CPU要访存,I/O设备也要访存,两者发生冲突时。此时,I/O访存优于CPU访存,I/O可以窃取一两个存取周期占用总线,使得CPU延缓了一两个周期访问主存。
临界区是指进程中访问临界资源的那段程序; 互斥量是用来保证共享数据操作的完整性,使得在任一时刻,只有一个线程访问该对象。 两者区别:互斥量和信号量在系统的任何进程里都是可见的,也就是说,一个进程创建了一个信号量或互斥量,另一个进程试图去获取该锁是合法的。然而,临界区的作用范围仅限于本进程,其它进程无法获取该锁。
时延指数据(报文/分组/比特流)从一端传送到另一端所需的时间,也叫延迟或迟延。 发送时延,pc端的数据传输到信道上所用的时间,也叫信道带宽 传播时延,传播时延是数据包从路由器一端传输到另一端所需要的时间排队时延,排队时延是当前数据包等待前面数据包传输完毕所需要的时间 处理时延,路由器或交换机处理数据,排错,寻找下一个数据接收设备所用的时间 传输时延:传输时延是路由器将数据包的所有比特传输(推)向链路所需要的时间
当一个进程申请使用资源的时候,银行家算法通过先试探分配给该进程资源,然后通过安全性算法判断分配后的系统是否处于安全状态,若不安全则试探分配作废,让该进程继续等待。 本质就是两个部分,第一部分是判断现在执行的进程安不安全?第二部分是判断给出一资源后安不安全 去找个一个安全序列
中断向量:每个中断源都有对应的处理程序,这个处理程序称为中断服务程序,其入口地址称为中断向量。 所有中断的中断服务程序入口地址构成一个表,称为中断向量表;
1、程序 I/O 方式。早期的计算机系统中, 没有中断系统,所以CPU和I/O设备进行通信,传输数据时CPU速度远快于I/O设备,于是CPU需要不断测试I/O设备,看其是否完成了传输 2.当某进程要启动某个 I/O 设备工作时,便由 CPU 向相应的设备控制器发出一条 I/O 命令,然后立即返回继续执行原来的任务。仅当输完一个数据时,才需 CPU 花费极短的时间去做些中断处 3.DMA方式(直接存储器访问) 通过在I/O设备和内存之间开启一个可以直接传输数据的通路,采用DMA控制器来控制一个数据块的传输,CPU只需在一个数据块传输开始阶段设置好传输所需的控制信息,并在传输结束阶段做 进一步处理。 4.I/O通道控制方式 虽然DMA方式比起中断方式来已经显著地减少了CPU的干预,即已由以字(节)为单位的干预减少到以数据块为单位的干预。但CPU每发出一条I/O指令,也只能去读/写一个连续的数据块。而 当我们需要一次去读多个数据块且将它们分别传送到不同的内存区域,或者相反时,则需由CPU 分别发出多条I/O指令及进行多次中断处理才能完成。 ---- 通道控制方式与DMA控制方式类似,也是一种以内存为中心,实现设备与内存直接交换数据的控制方式。 ---- 与DMA控制方式相比,通道方式所需要的CPU干预更少,而且可以做到一个通道控制多台设备,从而进一步减轻了CPU负担。 ---- 通道本质上是一个简单的处理器,专门负责输入、输出控制,具有执行I/O指令的能力,并通过执行通道I/O程序来控制I/O操作。 ---- 通道的指令系统比较简单,一般只有数据传送指令、设备控制指令等。
处理机管理(进程控制、进程同步、进程通信、死锁处理、处理机调度) 存储器管理(提高内存利用率,内存的分配与回收、地址映射、内存保护与共享、内存扩充) 文件管理(计算机中的信息都是以文件的形式存在的) 设备管理(完成用户的I/O请求,方便用户使用设备、并提高设备的利用率)
分时(Time Sharing)操作系统的工作方式是:一台主机连接了若干个终端,每个终端有一个用户在使用; 实时操作系统(RealTimeOperatingSystem,RTOS)是指使计算机能及时响应外部事件的请求,在规定的严格时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作。
1、数据传送方式不同:串行口传输方式为数据排成一行、一位一位送出接收也一样,并行口传输8位数据一次送出. 2、针脚不同:串行口针脚少、并行口针脚多. 3、用途不同:串行口现在只用作控制接口、并行口多用作打印机、扫描仪等接口。
数据库
锁分两种,一个叫 悲观锁,一种称之为 乐观锁。事实上,无论是悲观锁还是乐观锁,都是人们定义出来的概念,是一种解决问题的思想。因此,不仅仅在数据库系统中有乐观锁和悲观锁的概念,像memcache、hibernate、tair等都有类似的概念。比如,在线程并发处理中, Synchronized内置锁 就是悲观锁的一种,也称之为 独占锁,加了synchronized关键字的代码基本上就只能以单线程的形式去执行了,它会导致其他需要该资源的线程挂