- 博客(67)
- 收藏
- 关注
原创 【计算机组成原理】CPU的基本结构和功能
组相联映射是直接映射和全相联映射的折中方式,它将缓存划分为若干个组,每个组包含多个缓存行,主存地址映射到某个组内的缓存行中。具体而言,控制单元将指令存储在指令寄存器中,解码指令,并将解码后的指令发送给执行单元执行。具体来说,控制单元负责从内存中读取指令,解码指令,并将解码后的指令发送给执行单元。指令流水线的设计对CPU的性能有很大的影响,不同的CPU会采用不同的指令流水线设计。1. 流水线阶段数:流水线的阶段数越多,可以同时执行的指令就越多,但是流水线越长,每个指令在流水线中的延迟也就越大。
2023-05-01 10:50:16
1347
原创 【计算机组成原理】计算机的指令系统
指令编码是将汇编指令转化为二进制形式,而指令解码是将计算机存储器中读出的二进制指令解释为对应的操作,从而进行相应的计算或数据传输等操作。在计算机中,指令的操作码(opcode)是指为了完成某个操作而被执行的机器语言代码,而操作数(operand)则是指指令中指定的操作对象。在指令编码中,不同的操作码对应不同的二进制数,而不同的寻址方式对应的二进制数也不同。需要注意的是,不同的指令集和处理器可能支持的寻址方式不同,因此在编写程序时需要根据具体的处理器架构和指令集来选择合适的寻址方式。
2023-04-30 16:36:28
6096
原创 【计算机组成原理】数据的表示和运算
例如,二进制数101101101对应的八进制数为(101)(101)(101)₂=(555)₈,十六进制数为(1011)(0110)(1101)₂=(B6D)₁₆。其中,与运算的结果只有在两个运算量同时为1时才为1,或运算的结果只要有一个运算量为1就为1,非运算的结果是将原运算量取反(0变成1,1变成0)。除法的实现方式:将被除数和除数进行比较,如果被除数大于等于除数,则将除数左移一位,并将结果加1。在计算机中,使用固定位数的二进制表示整数,常见的是8位、16位、32位和64位的表示方式。
2023-04-30 16:33:44
323
原创 【计算机组成原理】计算机系统基础知识
2. 处理器性能:除了时钟频率之外,处理器的架构、缓存大小和总线速度等因素也会影响计算机的性能。除此之外,还有计算机系统的层次结构,从高到低分别是应用层、操作系统层、编译系统层、汇编语言层、机器语言层、微程序层和数字逻辑层。随着计算机的发展,存储器容量和速度不断提高,从几十兆字节到几百兆字节、几千兆字节和更高的容量。2. 性能测试:性能测试是针对特定应用程序的测试,用于评估计算机在处理该应用程序时的性能。3. 模拟:模拟是使用计算机模拟实际系统的工作过程,以评估计算机的性能。
2023-04-30 16:30:30
113
原创 【计算机网络】网络设备与技术
如果交换机的MAC地址表中没有目的MAC地址的条目,它会广播该数据帧到所有端口,学习源MAC地址和端口的映射关系,并将该关系存储在MAC地址表中。路由器是一种网络设备,用于在不同的网络之间进行数据包的转发和路由选择。1. 转发:当路由器收到数据包时,它会根据数据包中的目标地址,查找自己的路由表,确定数据包的下一跳路由器或最终目的地,并将数据包转发到相应的接口。除此之外,还有一些其他的网络设备,例如防火墙、负载均衡器、VPN 网关等,它们都具有不同的功能和特点,用于保障网络的安全性、性能和可靠性。
2023-04-30 15:44:58
1751
原创 【计算机网络】应用层
DNS解析的过程中,存在着DNS缓存,DNS缓存是指DNS服务器和客户端本地缓存中的已解析域名和对应IP地址的缓存,缓存时间可以由服务器或客户端设置,这样可以减少DNS解析的次数,加快网络访问速度。DNS使用的协议是UDP或TCP,其中UDP用于较小的查询请求,TCP用于较大的查询请求或区域传输。应用层是OSI参考模型中最上层的一层,它为应用程序提供了通信服务,包括文件传输、电子邮件、远程登录等,同时也是用户与网络交互的界面,提供了与网络协议交互的应用程序接口(API)。
2023-04-30 15:41:53
1297
原创 【计算机网络】传输层
UDP协议不提供流量控制、拥塞控制、数据传输的可靠性和数据分段等功能,但是它的传输效率高,适用于实时性要求高的应用,如多媒体数据的传输和网络游戏等。- 第二次握手:服务器接收到客户端的SYN报文后,回复ACK(acknowledge)报文,确认收到客户端的请求,并发送自己的SYN报文,随机选择一个序列号seq,同时在ACK报文中确认了客户端的序列号seq+1。UDP协议适用于对数据传输的实时性要求较高的应用,比如实时视频、音频等场景,因为在这些场景中,数据的实时性比数据的完整性和可靠性更加重要。
2023-04-30 15:38:54
583
原创 【计算机网络】网络层
距离矢量算法存在慢收敛和路由环路问题。此外,还有一些常见的隧道协议,如GRE(Generic Routing Encapsulation)、IPSec(IP Security)等,它们可以在网络层对数据进行加密、封装和隧道传输,提高网络的安全性和可靠性。网络层是OSI模型中的第三层,它的作用是在不同的网络之间进行数据路由和转发,实现数据在网络中的传输。网络层的核心协议是IP(Internet Protocol),是一种面向无连接的、不可靠的协议,它负责在网络中传输数据包,实现了主机之间的通信。
2023-04-30 15:35:08
492
原创 【计算机网络】数据链路层
它通过在帧中添加起始和终止标志来确保帧的边界,以及通过在帧中添加控制字段来记录帧的序号和确认信息,从而确保帧的传输顺序和正确性。海明码可以检测和纠正多个比特的错误。数据链路层是OSI参考模型中的第二层,它的主要作用是将物理层提供的原始比特流转换为逻辑上的数据帧,从而提供可靠的数据传输服务。1. 帧封装:数据链路层将从上一层接收到的数据分组转换为数据帧,并在每个帧的开始和结束位置添加特殊的控制字符。数据链路层是OSI模型中的第二层,它提供了网络设备之间的数据传输,常见的数据链路层协议包括以太网、PPP等。
2023-04-30 15:32:40
595
原创 【计算机网络】物理层
它将二进制的数字数据转换成传输媒介所能传输的模拟信号,然后将模拟信号传输到接收端,再将模拟信号转换为数字数据。不同的传输媒介能够支持不同的传输距离,例如铜缆的传输距离通常比光纤短。3. 光纤:光纤是由光学玻璃或塑料制成的传输介质,它可以传输数字和模拟信号。3. 光纤:光纤是由光学玻璃或塑料制成的传输介质,它可以传输数字和模拟信号。无线传输介质的优点是可以消除传输介质的限制,但也会受到信号干扰的影响。无线传输介质的优点是可以消除传输介质的限制,但也会受到信号干扰的影响。双绞线被广泛应用于局域网中,如以太网。
2023-04-30 15:29:37
468
原创 【计算机网络】基础知识
计算机网络是指将多台计算机互相连接起来,实现数据和信息的交换和共享的系统。通过计算机网络,人们可以在全球范围内进行实时通信、数据传输、远程协作等各种活动。1. 按照网络覆盖范围的不同,可以分为广域网(WAN)、城域网(MAN)、局域网(LAN)和个人局域网(PAN)等。2. 按照网络的传输方式不同,可以分为电路交换网络、报文交换网络和分组交换网络。3. 按照网络的拓扑结构不同,可以分为总线型、星型、环形、网状等。
2023-04-30 15:26:38
121
原创 【c语言】二叉树
二叉树是一种数据结构,它由一个根节点和零个或多个子树组成。每个子树也是一棵二叉树,可以为空或包含左子树和右子树。二叉树的一个重要特性是每个节点最多只有两个子节点,一个称为左子节点,另一个称为右子节点。在C语言中,我们可以用结构体来表示二叉树节点。一个二叉树节点结构体通常包含三个属性:一个值,一个指向左子节点的指针,以及一个指向右子节点的指针。
2023-04-29 16:17:55
83
原创 【c语言】树
在C语言中,树是一种数据结构,它由节点和边组成,用于表示层次关系或树形结构。树的节点通常包含一个值和指向其子节点的指针。根节点是树的顶部,它没有父节点,而叶节点是没有子节点的节点。C语言中树的常见应用包括二叉搜索树、堆、表达式树、前缀树等。在实现树的过程中,需要使用指针和递归等C语言特性。
2023-04-26 12:58:45
215
原创 【c语言】队列
队列(Queue)是一种数据结构,它遵循先进先出(FIFO)的原则。队列在计算机科学中有着广泛的应用,如操作系统、编译器、图形学等领域。C语言中队列可以使用数组或链表来实现。队列通常有两个指针,一个指向队头,一个指向队尾。入队操作将元素插入队尾,出队操作将队头元素移出队列。队列中还包含一些基本操作,如获取队列长度、判断队列是否为空、获取队头元素等。在C语言中,使用结构体来表示队列和队列中的节点。具体实现可以参考上面的代码示例。
2023-04-23 17:09:07
1198
原创 【c语言】栈(通过数组和链表实现)
栈是一种数据结构,它是一个具有特殊性质的线性表。栈中的元素遵循后进先出(LIFO,Last In First Out)的原则,也就是最后入栈的元素最先被弹出。在C语言中,栈通常是由系统分配的一段连续内存空间,它用来存储局部变量、函数参数以及函数调用的返回地址等信息。每当一个函数被调用时,系统都会为其分配一个栈帧,用来存储这些信息,然后将其压入栈中。当函数执行完毕后,系统会将栈帧弹出,恢复先前的执行状态。在C语言中,栈的操作主要包括压栈(push)、弹栈(pop)以及栈顶元素访问等。
2023-04-23 16:52:44
804
原创 【c语言】链表实现两个多项式相加减(适合初学者)
在每一次迭代中,函数比较p1和p2中当前项的指数大小,如果p1当前项的指数大于p2当前项的指数,则将p1当前项添加到结果多项式中,反之则将p2当前项添加到结果多项式中。具体而言,可以从链表R的头部开始,依次比较相邻的两项,如果它们的次数相同,就将它们的系数相加,并删除其中一个项。函数返回一个新的指针,指向一个新的多项式,它是p1和p2相加的结果。这段代码实现了一个将新的项(结构体term类型)插入到单链表中的函数,其中参数head是一个指向链表头节点的指针,newterm是需要插入的新项。
2023-04-08 00:35:27
2446
原创 【c语言】循环双向链表(适合初学者)
循环双向链表是一种数据结构,与双向链表类似,但是它的尾节点指向头节点,形成了一个循环。循环双向链表的每个节点都包含两个指针,一个指向前驱节点,一个指向后继节点,这样可以实现节点的前后遍历。在循环双向链表中,插入和删除操作都比较容易实现,并且它还支持前向遍历和后向遍历,这使得循环双向链表在某些情况下比单向链表更为便利。循环双向链表常用于实现循环队列和双向循环队列等数据结构。
2023-04-08 00:21:21
339
原创 【c语言】循环链表(适合初学者)
循环链表是一种特殊的链表数据结构,与单向链表或双向链表相比,循环链表的最后一个节点的下一个节点指向第一个节点,从而形成一个环形结构。因此,循环链表可以在最后一个节点后继续添加节点,并且可以像单向链表或双向链表一样遍历、查找和删除节点。循环链表通常有一个头指针和一个尾指针,它们指向第一个节点和最后一个节点,以便在添加或删除节点时快速定位。循环链表可以用于解决某些问题,例如模拟一个环形队列,或者用于实现循环播放的音乐列表等。
2023-04-07 23:58:36
2452
原创 【c语言】链表(适合初学者)
C语言中的链表是一种常见的数据结构,它由一系列的节点(node)组成,每个节点包含一个数据元素和一个指向下一个节点的指针。链表可以用来表示各种数据结构,例如队列、堆栈、树等。在C语言中,链表的节点通常是通过结构体来定义的。int data;在这个结构体中,data是节点存储的数据元素,next是指向下一个节点的指针。因为next指向的是另一个Node类型的结构体,所以需要使用类型来定义。链表的头指针是指向第一个节点的指针,通常称为head。对于一个空链表,头指针为NULL。链表的尾节点的next。
2023-04-07 23:35:22
2741
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
6