指令系统
直接寻址 间接寻址 取指令访存1次,执行指令访存2次 寄存器寻址 寄存器间接寻址 隐含寻址 立即寻址 偏移寻址
直接寻址 间接寻址 取指令访存1次,执行指令访存2次 寄存器寻址 寄存器间接寻址 隐含寻址 立即寻址 偏移寻址
芯片内部总线:连接芯片内部的各个部分 例:CPU中连接寄存器、ALU等部分 系统总线:连接CPU、存储器、IO控制器和其他功能设备 通信总线:连接主机和I/O设备,或连接不同的计算机系统 数据线:在系统组件之间传输数据,数据线的数量决定了一次可以传输的数据的大小 地址线:在数据线和地址I/O端口上指定数据的来源和去向,地址线的数量决定了...
路由器内部组件 路由器也是特殊组件的计算机 路由器为什么是“计算机”? 因为它同时满足所有计算机的核心要素: ① 有 CPU(处理器) ② 有可读写的运行空间(RAM) ③ 有可长期保存指令与数据的存储器(NVRAM / ROM / Flash) ④ 运行软件(固件)来执行任务 ⑤ 能对输入做处理并产生输出 console 口进行具...
为什么电脑开这么多程序还能跑起来? 为什么同一个程序、同一个地址可以启动很多份? 虚拟存储 电脑的内存就是连续编址的“大数组” 那,在同一块地址,一个进程要写A,一个要写B,为什么两个进程“打架”的事情没有发生? #include <unistd.h> // fork, getpid, sleep #include <sys/mman.h> // ...
1. 节点(Node)结构体 关键思想:跳表由多层链表组成。每个节点在第 i 层有一个 forward[i] 指针,指向该层的下一个节点;为了支持排名(rank)/区间计数,我们在每层维护一个 span[i] —— 从当前节点走 forward[i] 到下一个节点时跨越的底层节点数量(用来累加数量)。 C++ 的典型定义: struct Node { int val; ...
问题1: 主存(由DRAM构成)存储容量受限,但我不想让计算机收到物理内存大小的制约 问题2: 现代操作系统都支持多道程序运行,如何让多个程序有效而安全地共享主存 操作系统的出现 第一台计算机诞生时,采用手工操作的方式,一个用户独占全机 批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(包括程序、数据和命令) ...
并发 并发控制概述 事务是并发控制的基本单位 事务的ACID特性可能遭到破坏的原因之一:多个事务进行并发操作互相干扰 为了保证事务的隔离性和一致性,需要对并发操作进行正确调度 并发操作带来数据不一致性:丢失修改、脏读、不可重复读、幻读 丢失修改:两个事务T1和T2读入同一数据并修改, T2的提交结果破坏了T1提交的结果,导致T1的修改被丢失。 脏读: ...
机器永远是对的,未测代码永远是错的 理论基础:程序是个状态机 调试理论:如果我们能判定任意程序状态的正确性,那么给定一个failure,我们可以通过二分查找定位到第一个error的状态,即fault(error) 单步调试的局限性在于,假设某一个状态是对的,以此来调试下一个状态是否正确 工具:printf,GDB //TODO
会话层(The Session Layer) 1. 核心功能:管理对话 会话层的主要目标是建立、维护和同步两个通信应用之间的“会话”或“对话”。它确保通信是有组织、可管理和可靠的。 2. 具体职责: 会话控制:负责会话的建立、维护和有序终止。 对话管理:确定通信模式,如全双工或半双工。 同步与恢复:在长时间的通信中插入检查点。如果传输中断,可以从最近的检查点恢复,而不是...
哈希就是一种索引 核心思想:哈希是一种通过一个函数(哈希函数),将任意长度的输入(如字符串、对象等),映射到一个固定长度的输出(哈希值)的技术。这个输出通常是一个整数,可以作为数组的索引。 目标:理想情况下,通过这个索引可以直接访问到目标数据,从而实现近乎 O(1) 时间复杂度的查找、插入和删除操作。 1. 哈希的总体思想 哈希(Hashing)是一种用 O(1) 常数时间存取...