(jyy版本)调试:理论与实践
机器永远是对的,未测代码永远是错的 理论基础:程序是个状态机 调试理论:如果我们能判定任意程序状态的正确性,那么给定一个failure,我们可以通过二分查找定位到第一个error的状态,即fault(error) 单步调试的局限性在于,假设某一个状态是对的,以此来调试下一个状态是否正确 工具:printf,GDB //TODO
机器永远是对的,未测代码永远是错的 理论基础:程序是个状态机 调试理论:如果我们能判定任意程序状态的正确性,那么给定一个failure,我们可以通过二分查找定位到第一个error的状态,即fault(error) 单步调试的局限性在于,假设某一个状态是对的,以此来调试下一个状态是否正确 工具:printf,GDB //TODO
会话层(The Session Layer) 1. 核心功能:管理对话 会话层的主要目标是建立、维护和同步两个通信应用之间的“会话”或“对话”。它确保通信是有组织、可管理和可靠的。 2. 具体职责: 会话控制:负责会话的建立、维护和有序终止。 对话管理:确定通信模式,如全双工或半双工。 同步与恢复:在长时间的通信中插入检查点。如果传输中断,可以从最近的检查点恢复,而不是...
哈希就是一种索引 核心思想:哈希是一种通过一个函数(哈希函数),将任意长度的输入(如字符串、对象等),映射到一个固定长度的输出(哈希值)的技术。这个输出通常是一个整数,可以作为数组的索引。 目标:理想情况下,通过这个索引可以直接访问到目标数据,从而实现近乎 O(1) 时间复杂度的查找、插入和删除操作。 1. 哈希的总体思想 哈希(Hashing)是一种用 O(1) 常数时间存取...
前面已经讨论了数据库系统的一般概念,介绍了关系数据库的基本概念、关系模型的三个部分以及关系数据库的标准语言 SQL 。但是还有一个很基本的问题尚未涉及:针对一个具体问题,应该如何构造一个适合于它的数据库模式,即应该构造几个关系模式,每个关系由哪些属性组成等。这是数据库设计的问题,确切地讲是关系数据库逻辑设计问题。 规范化、关系模式及范式 关系模式 [R(U, D, DOM, F)] ...
如果无法显示PDF,请 点击这里下载。 或者可以直接看图片版:
存储器概述 现代计算机的结构 存储器的层次化结构 主存储器逻辑上可以分为存储体、MAR、MDR SRAM、DRAM DRAM:利用栅极电容存储信息 SRAM:利用双稳态触发器存储信息 核心区别:存储元不一样 刷新是存储器独自完成的,不需要CPU的控制 ROM 很多ROM也具有随机存取的特性 断电后,RAM内数据全部丢失 ...
外部存储设备 特性 用于存储不经常使用的、数据量较大的信息 非易失 类型 磁盘存储器(magnetic disk) 光存储器(optical memory) 磁带(magnetic tape) U盘(USB flash disk),固态硬盘(solid state disk...
🧭 Overview:SQL 的整体脉络 SQL(Structured Query Language)是操作关系型数据库(RDBMS)的语言。 与编程语言不同,SQL 是 声明式语言(Declarative Language): 👉 你告诉数据库“想要什么结果”,数据库自己决定“怎么做”。 我们可以把学习 SQL 看作一个逐步扩展的层级体系: 层级 ...
在离散数学中,N个节点、N-1条边就是树,并不必须要提到根。 至于为什么节点和边是这样的关系,因为不能成环! 树是二部图 二部图是一种特殊的图,它的所有节点可以被划分到两个独立的集合(比如集合A和集合B)中,并且满足: 图中的每一条边都连接着一个属于集合A的节点和一个属于集合B的节点。 同一集合内部(A内部或B内部)的任意两个节点之间没有边直接相连。 ...
如何解决内存墙带来的CPU和主存协作问题? 在使用主存(相对大而慢)之余,添加一块小而快的cache Cache位于CPU和主存之间,可以集成在CPU内部或作为主板上的一个模块 Cache中存放了主存中的部分信息的“副本” cache的工作流程 检查(Check):当CPU试图访问主存中的某个字时,首先检查这个字是否在cache中 检查后分两种情况处理: ...
A new version of content is available.