计算机组成原理
Day1第1节:计算机层次结构计算机本质12345输入↓处理↓输出 计算机系统的层次结构123456789应用程序↓操作系统↓指令系统(ISA)↓硬件 第一层:应用软件 例如QQ,微信等 第二层:操作系统 windows等,用于管理硬件资源 比如cpu,内存,磁盘,网络等等都由操作系统统一管理 第三层:ISA ISA:(Instruction Set Architecture)指令集体系结构 本质是软件和硬件之间的接口 cpu只认识ADD,MOV,SUB,JMP这样的机器指令 而Java代码需要 1234567Java↓字节码↓机器指令↓CPU 最终都要变成 ISA 规定的指令 同一个代码在不同品牌cpu生成的机器码可能不同 x86代表:Intel和AMD 指令复杂性能强功耗高 ARM代表:手机CPU,平板CPU 指令简单省电效率高 翻译过程1int a = 1 + 2; 会经历: 1234567891011Java代码↓编译器↓字节码↓JVM↓机器指令↓CPU执行 CPU最终看到的可能是: 12MOV EAX,1ADD EAX,2 第2节:冯诺依曼体系结...
软件工程期末复习
Day1软件是什么软件 = 程序 + 数据 + 文档 软件分类系统软件:管理计算机资源(windows,驱动程序等等) 支撑软件:帮助开发软件的软件(IDEA等等) 应用软件:给用户使用的软件(QQ等等) 软件的特点复杂性:模块关系复杂,业务逻辑复杂,需求复杂 不可见性:出问题难以定位 服从性:软件必须服从外部需求 易变性:随着需求不断变化 软件危机定义:软件开发和维护过程中遇到的一系列严重问题。 出现原因:60年代硬件发展快,软件开发跟不上,导致项目越来越大 软件危机表现: 1.规模越来越大 2.复杂度越来越高 3.开发速度慢 4.成本高 5.质量差 如何解决软件危机重视需求分析 重视文档 充分测试 加强维护和管理 使用软件工程方法 什么是软件工程核心就是用工程化的方法开发软件 本质:将问题域映射到计算机实现域。 软件工程三要素方法:例如面向对象,结构化开发,告诉我们怎么做 工具:例如IDEA,git,帮助我们开发 过程:规定步骤 软件工程管理三要素成本(维护阶段占比最高,持续维护,新需求,新bug) 质量 工期 软件工程基本原理1.推迟实现:先分析,设计再编码 2....
Redis数据库
Day1Redis 是什么Redis 是一个高性能的 NoSQL 数据库,数据主要存储在内存中,所以读写速度很快。它支持 String、Hash、List、Set、ZSet 等数据结构,实际项目里常用来做缓存、验证码、登录 token、分布式锁、排行榜等。 Redis 和 MySQL 有什么区别?Redis 是内存型 key-value 数据库,速度快,适合做缓存;MySQL 是关系型数据库,数据主要持久化到磁盘,支持事务和复杂 SQL,适合做核心数据存储。实际项目中一般 MySQL 存真实数据,Redis 做缓存来提高访问速度。 Redis 为什么快一:基于内存操作 Redis 数据:直接存在内存 而 MySQL:主要在磁盘 二:使用高效的数据结构 redis 不是:简单 HashMap 它内部做了大量优化。 三:单线程避免线程切换和锁竞争 Redis 为什么单线程还快: 纯内存操作: 它的读写都在内存里完成,没有任何磁盘 I/O 带来的硬件瓶颈,速度是纳秒级别的。 高效的 I/O 多路复用: 也就是上面的多路复用机制,主线程只管处理“已经准备好”的事件,绝...
MySQL数据库
sql基础MySQL(关系型数据库)与 NoSQL(非关系型数据库) 特性 MySQL (关系型/RDBMS) NoSQL (非关系型) 存储模型 结构化存储(行/列),像 Excel 表格 多样化存储(键值、文档、图形、列族) 架构 (Schema) 固定模式。必须先定义表结构才能存数据 动态模式。支持非结构化或半结构化数据 查询语言 使用标准 SQL 语言 语法各异(如:MongoDB 的查询、Redis 命令) 扩展能力 纵向扩展(提高单机 CPU、内存、硬盘) 横向扩展(通过增加机器节点组成集群) 事务特性 严格遵循 ACID(强一致性) 遵循 BASE 理论(最终一致性) 表间关联 支持复杂的 JOIN 多表联查 通常不支持或弱支持 JOIN 数据库三大范式第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项。 **第二范式(2NF):**需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。 第三范式 (3NF):在 2NF 的基础上,非主键列必须“直接依赖”于主...
EDA期末复习
第一章:绪论数字技术与EDA技术概述模拟信号:在时间和数值上都是连续的物理量,如正弦波、矩形波等 。 数字信号:用数码表示,0和1没有数量意义,仅代表事物的对立两面,并遵循特定的码制原则 。 EDA技术定义:EDA(电子设计自动化)是一种以计算机为工作平台、以EDA软件工具为开发环境、以FPGA或ASIC为目标器件来实现电路系统设计的技术 。 发展阶段:经历了20世纪70年代的CAD初级阶段、80年代的CAE中级阶段,发展到90年代至今以可编程器件为核心的高级阶段 。 EDA设计方法与构成要素- 设计思想:EDA采用自上而下(Top-down)的设计方法,将整个数字系统分解为各个子系统和模块,便于逐层描述与仿真 。 - 构成要素:包含实现载体(可编程逻辑器件PLD,如FPGA和CPLD)、描述方式(原理图或HDL硬件描述语言等)、软件开发环境(如Quartus II或ModelSim)以及硬件开发环境(如DE2-115开发板) 。 传统方法与EDA方法的区别: 比较维度 传统设计方法 EDA设计方法 设计方向 自下而上(Bottom-u...
