一、计算机系统知识

1.1 计算机硬件组成(冯·诺依曼)

  • 五大部件:运算器、控制器、存储器、输入设备、输出设备
  • CPU:运算器+控制器集成
  • 存储器
    • 内存:速度快、容量小,临时存储,断电丢失
    • 外存:速度慢、容量大,长期保存数据
  • 外设:输入+输出设备合称

1.2 处理器

  • 运算器
    • ALU算术逻辑单元:算术、逻辑运算🔴
    • AC累加寄存器:暂存运算结果
    • DR数据缓冲寄存器:CPU与内存外设中转
    • PSW状态条件寄存器:保存标志位(溢出、中断)🔴
  • 控制器:控制CPU整体工作流程
  • 寄存器组
    • 通用寄存器:程序员自定义用途
    • 专用寄存器:运算器、控制器内置
    • 程序员可见:PC程序计数器、AC累加器🔴
    • 程序员不可见:IR指令寄存器、DR、AR地址寄存器🔴
  • 处理器分类
    • MPU微处理器:嵌入式电路板,体积小成本低
    • MCU微控制器(单片机):单片化,功耗成本更低🔴
    • DSP数字信号处理器:实时数字信号处理,哈佛架构
    • GPU图形处理器:大量内核,并行计算,AI领域
    • SoC片上系统:整套系统集成在单芯片
    • FPGA现场可编程逻辑门阵列

1.3 指令系统🔴【高频选择题】

  • 指令格式:操作码(做什么) + 地址码(操作数地址)
  • 寻址方式
    • 顺序寻址:PC程序计数器自增
    • 跳跃寻址:指令给出下一条地址
    • 立即寻址:地址码=操作数本身,速度最快🔴
    • 直接寻址:地址码是内存操作数地址
    • 间接寻址:地址码是操作数地址的地址
    • 寄存器寻址:操作数放在寄存器
    • 寄存器间接寻址:寄存器存内存地址
    • 相对寻址:PC+偏移量
    • 基址寻址:基址寄存器Rb+偏移量🔴
    • 变址寻址:变址寄存器Rx+偏移量🔴
  • 指令执行流程:取指令 → 分析指令 → 执行指令🔴
  • CPU区分指令与数据:依靠指令周期不同阶段🔴
  • 指令集
    • CISC复杂指令集:指令多,可变长,微程序控制
    • RISC精简指令集🔴
      • 指令长度固定,指令种类少
      • 寻址方式少
      • 寄存器数量多,减少访存
      • 硬布线逻辑译码

1.4 存储器🔴【本章最重要模块】

  • 存储层次金字塔(速度递减、容量递增、成本递减)
    • 寄存器 → Cache → 主存 → 外存(磁盘/光盘)→磁带
  • 局部性原理(Cache理论基础)🔴
    • 时间局部性:刚访问过的数据大概率再次访问
    • 空间局部性:访问数据周边数据大概率被访问
  • 存储器分类
    • RAM随机存取存储器(读写)
      • SRAM:用于Cache🔴
      • DRAM:用于主存,需要刷新,断电丢失🔴
    • ROM只读存储器
      • MASK ROM:不可编程
      • PROM:一次可编程🔴
      • EPROM:紫外线擦除
      • EEPROM:电擦除
      • Flash闪存:电擦除,速度最快
  • Cache高速缓存
    • 作用:解决CPU与主存速度不匹配,硬件自动完成映射🔴
    • 地址映射方式
      • 全相联:主存块可放Cache任意行;冲突少,硬件复杂
      • 直接映像:主存块号模Cache行数;实现简单,冲突高🔴
      • 组相联映像:结合两者,工程最常用🔴
    • Cache替换算法
      • 随机替换
      • FIFO先进先出
      • LFU访问频次最少替换
      • LRU最近最少使用(命中率最优)🔴
  • 磁盘存储器
    • 结构:盘面、磁道、扇区、柱面
    • 存取时间 = 寻道时间 + 旋转等待时间 + 数据传送时间🔴
      • 平均旋转等待时间 = 旋转周期 / 2
    • 磁盘调度算法(目标:减少平均寻道时间)🔴
      • FCFS先来先服务
      • SSTF最短寻道优先
      • SCAN电梯调度算法
      • CSCAN单向扫描算法

1.5 总线

  • 按传输信息划分
    • 数据总线:双向,传输数据
    • 地址总线:单向,决定寻址空间大小🔴
    • 控制总线:双向,传输控制信号
  • 按连接部件划分
    • 片内总线:CPU芯片内部
    • 系统总线:CPU、主存、IO接口之间
    • 局部总线:少数组件之间
    • 通信总线:外部设备/跨计算机
  • 传输格式
    • 并行总线:PCI、ATA;近距离,串扰问题
    • 串行总线:USB、SATA、以太网;适合远距离🔴

1.6 输入输出技术🔴高频考点

  • 4种I/O交换方式
    1. 程序查询方式
      • CPU轮询外设状态;CPU串行等待,浪费CPU;低速外设
    2. 程序中断方式🔴
      • 外设就绪发中断,CPU暂停当前任务;CPU外设并行;
      • 需要CPU保存现场;按字传输
      • 多级中断:高优先级可打断低优先级;同级不可嵌套🔴
    3. DMA直接内存存取🔴最高频
      • DMA控制器接管总线;内存与外设直接块传输;
      • 仅开始、结束需要CPU干预;不需要CPU执行指令搬运数据
      • 适合高速设备大批量块数据传输
    4. 通道方式(IOP输入输出处理机)
      • 独立I/O处理机;大型机、外设多场景;硬件成本高
  • 看门狗电路(补充)
    • 软件跑飞、卡死自动复位重启🔴

      image

二、操作系统

2.1 操作系统概述

  • 定义:管理软硬件资源、组织工作流程、提供用户接口
  • 两大作用🔴
    • 资源管理,提升系统效率
    • 改善人机交互,友好接口
  • 四大特征:并发性、共享性、虚拟性、不确定性🔴
  • 五大功能:进程、存储、设备、文件、作业管理
  • 操作系统分类
    • 批处理、分时、实时、网络、分布式、微机、嵌入式
    • 嵌入式OS五大特点🔴
      • 微型化、可定制、实时性、可靠性、易移植性
    • 嵌入式初始化顺序:片级初始化 → 板级初始化 → 系统初始化🔴

2.2 进程管理🔴【本章重中之重】

  • 进程组成:程序、数据、PCB进程控制块🔴
  • 进程状态模型
    • 三态:运行态、就绪态、阻塞态🔴
      • 运行→就绪:时间片到
      • 运行→阻塞:等待某事件
      • 阻塞→就绪:等待事件发生
      • 就绪→运行:被调度
    • 五态:新建态、就绪态、运行态、阻塞态、终止态
  • 进程间通信
    • 同步:合作进程直接制约🔴
    • 互斥:争夺临界资源间接制约;临界资源如打印机🔴
    • 信号量与P、V操作(原子操作)🔴
      • P:申请资源 S=S‑1;S<0进程阻塞
      • V:释放资源 S=S+1;S≤0唤醒阻塞进程
      • 互斥信号量初值一般=1;生产者消费者模型
    • 前趋图:有向无环图,表达任务先后、并行关系🔴
  • 进程调度
    • 调度方式
      • 可剥夺:高优先级进程抢占CPU
      • 不可剥夺:进程主动释放CPU才调度🔴
    • 三级调度🔴
      • 高级调度(作业调度):后备→内存
      • 中级调度(对换调度):内外存交换进程
      • 低级调度(进程调度):就绪→CPU,最活跃
    • 调度算法
      • FCFS先来先服务:利于长作业、CPU繁忙型
      • 时间片轮转:提升响应时间,分时系统
      • 优先级调度:选优先级高进程
      • 多级反馈调度:时间片轮转+优先级结合🔴
  • 死锁🔴【高频】
    • 定义:多个进程互相等待对方资源无限阻塞
    • 4个必要条件:互斥、请求保持、不可剥夺、环路等待🔴
    • 死锁4类处理策略
      • 死锁预防:破坏4个必要条件之一
      • 死锁避免:银行家算法🔴
      • 死锁检测:允许死锁,定时检测
      • 死锁解除:剥夺资源、撤销进程
    • 资源计算公式
      • 发生死锁最大资源:n*(R‑1)
      • 不死锁最小资源:n*(R‑1)+1🔴
  • 线程🔴
    • 线程:调度最小单位;进程:资源拥有最小单位🔴
    • 同进程线程:共享进程资源(代码、全局变量、打开文件);线程私有:栈指针、寄存器🔴
    • 引入线程目的:降低切换开销,提升并发度

2.3 存储管理🔴

  • 存储器层次:寄存器→Cache→主存→外存→磁带
  • 地址重定位🔴
    • 逻辑地址(虚拟地址)、物理地址(实际内存地址)
    • 静态重定位:装入时完成地址转换
    • 动态重定位:程序运行时完成转换
  • 分区存储管理
    • 固定分区:静态,产生内部碎片
    • 可变分区(动态分区)🔴
      • 首次适应、循环首次适应、最佳适应、最差适应
      • 产生外部碎片
    • 可重定位分区:移动程序合并碎片
  • 分页存储管理🔴
    • 页:逻辑空间等分;块:物理内存等分;页≠块
    • 快表:Cache存放常用页表项,加速地址转换🔴
    • 页面置换算法🔴
      • 最佳OPT(理想)、FIFO、LRU最近最少未使用、最近未用NRU
    • 逻辑地址拆分:页号 + 页内地址;页内地址不变只替换页号
  • 分段存储管理
    • 段依据逻辑功能划分,段长度不等;便于共享保护🔴
    • 分页:物理划分,页大小固定;分段:逻辑划分
  • 段页式存储🔴
    • 先分段,段内再分页;兼顾分页、分段优点;管理开销大,速度下降

2.4 设备管理

  • I/O软件目标:设备独立性、统一命名🔴
  • I/O关键技术
    • 通道技术:通道独立执行I/O程序,减轻CPU负担
    • DMA:内存外设成块直接传输,少CPU干预🔴
    • 缓冲技术🔴
      • 目的:缓解CPU‑IO速度差;减少中断;提升并行
      • 单缓冲、双缓冲计算题(软考计算题考点)
    • Spooling假脱机🔴
      • 将独占设备模拟虚拟共享设备;典型:打印机输出井

2.5 文件管理🔴

  • 文件逻辑结构
    • 流式文件(无结构:txt二进制)🔴
    • 记录式文件(有结构:数据库表)
  • 文件物理结构:连续、链接、索引(UNIX三级索引)🔴
    • 直接索引、一级间接、二级间接、三级间接索引计算题
  • 文件目录
    • FCB文件控制块:文件目录项,实现按名存取🔴
    • 一级目录:不允许重名
    • 二级目录MFD+UFD:支持不同用户重名🔴
    • 多级(树形)目录:Windows/Linux采用
  • 磁盘空闲空间管理🔴
    • 空闲区表、位示图Bitmap(计算题高频)🔴
    • 空闲块链表、成组链接法(UNIX)🔴

2.6 作业管理

  • 作业组成:程序、数据、作业说明书🔴
  • 作业四状态:提交、后备、执行、完成
  • JCB作业控制块:作业存在唯一标志🔴
  • 作业调度算法🔴
    • FCFS先来先服务
    • 短作业优先
    • 响应比高优先 Rp=1+等待时间/执行时间🔴
    • 优先级调度、均衡调度
  • 性能指标
    • 周转时间 = 等待时间+执行时间
    • 带权周转时间=周转时间/执行时间🔴

      image

三、数据库设计

3.1 数据库基本概念🔴

  • 基础名词
    • DB数据库:长期存储、有组织、可共享数据集
    • DBS数据库系统:数据库+硬件+软件+人员
    • DBMS数据库管理系统:DDL/DML/运行管理/存储维护/网络通信🔴
    • DBMS分类:RDB关系、OODB面向对象、ORDB对象‑关系
  • 三级模式(一个库:1内、1概念、多个外)🔴
    • 内模式(存储模式):物理存储,对应存储文件,只有1个🔴
    • 概念模式(模式):全局逻辑结构,对应基本表,只有1个🔴
    • 外模式(用户/子模式):用户视图,对应视图,可有多个🔴
  • 两级映像 & 数据独立性🔴
    • 模式/内模式映像 → 物理独立性(物理存储变,应用程序不变)🔴
    • 外模式/模式映像 → 逻辑独立性(表逻辑结构变,应用程序不变)🔴
  • 数据库设计6大阶段🔴
    1.需求分析:产出DFD、数据字典、需求说明书(信息/处理/系统要求)
    2.概念结构设计:绘制E‑R图;分E‑R图冲突:属性冲突、命名冲突、结构冲突🔴
    3.逻辑结构设计:E‑R图转关系模式,完整性约束,用户视图
    4.物理结构设计:确定存储结构、数据分布、访问方式
    5.数据库实施:建库、调试程序、数据入库、试运行
    6.运行维护:评价、调优、修改

3.2 数据模型 & E‑R模型🔴

  • 两类数据模型
    • 概念模型(E‑R):用户视角,用于数据库设计
    • 基本数据模型:计算机视角,供DBMS实现
  • 数据模型三要素:数据结构、数据操作、完整性约束🔴
  • E‑R模型组成
    • 实体【矩形】;联系【菱形】;属性【椭圆】🔴
    • 联系类型
      • 1:1一对一;1:n一对多;m:n多对多,产生独立关系模式🔴
    • 属性分类🔴
      • 简单/复合属性;单值/多值属性;NULL属性;派生属性(不存储,计算得到)🔴
    • 弱实体:必须依赖另外一个实体才能存在(家属依赖职工)🔴
  • E‑R图转关系模式规则🔴
    • 每个实体转1个关系模式
    • 1:1:任意一方主键加入另一方做外键
    • 1:n:一端主键加入多端作为外键
    • m:n:新建独立关系,属性=两端实体主键+联系自身属性🔴

3.3 关系代数🔴【计算题高频】

  • 基础术语
    • 域、笛卡尔积、元组(记录)、属性(字段)
    • 候选码、主码(主键)、主属性、非主属性、外码🔴
    • 三类关系:基本表、查询表、视图表(虚表)
    • 三类完整性约束🔴
      • 实体完整性:主属性不能为NULL
      • 参照完整性:外键为NULL或等于对方主键
      • 用户自定义完整性:业务自定义约束
  • 5种基本关系代数运算🔴
    • 并∪:属性结构相同,取全部元组,去重
    • 差−:属于R,不属于S
    • 广义笛卡尔积×:R与S所有元组全部组合,列数相加
    • 投影π【垂直选列】:挑选部分属性列🔴
    • 选择σ【水平选行】:挑选满足条件元组🔴
  • 扩展关系代数运算🔴
    • 交∩:同时属于R、S;R∩S = R‑(R‑S)
    • 连接:θ连接、等值连接、自然连接(去掉重复列)🔴
    • 除÷:同时做行+列筛选
    • 广义投影:带算术运算投影
    • 外连接🔴
      • 左外连接⟗:保留左边全部元组,右边无匹配填NULL
      • 右外连接⟖:保留右边全部元组,左边无匹配填NULL
      • 全外连接:左外 ∪ 右外

3.4 SQL语言

  • SQL组成:DDL定义、DML操纵、DQL查询、DCL访问控制🔴
  • SQL与三级模式:视图=外模式;基本表=概念模式;存储文件=内模式🔴
  • 索引
    • 索引作用:加速查询、加速表连接、order by/group by优化、唯一性约束🔴
    • 聚簇索引:索引顺序 = 物理存储顺序;修改聚簇索引改变内模式🔴
    • 非聚簇索引:索引顺序与物理存储无关
  • 视图View:虚表,只保存定义,不存储真实数据🔴

3.5 关系数据库设计理论🔴【选择计算题重点】

  • 函数依赖🔴
    • (X \to Y):X可以唯一确定Y
    • 部分函数依赖:码的一部分就可以确定某个属性🔴
    • 传递函数依赖:X→Y,Y→Z,Y不能反推X🔴
    • Armstrong公理系统🔴
      • A1自反律;A2增广律;A3传递律
      • 导出规则:合并、伪传递、分解规则🔴
    • 求候选码:入度为0属性,遍历全部属性集合🔴
  • 范式(从低到高:1NF⊃2NF⊃3NF⊃BCNF⊃4NF)🔴
    • 1NF:属性原子不可再分🔴
    • 2NF:消除非主属性对码的部分函数依赖🔴
    • 3NF:消除非主属性对码的传递函数依赖🔴
    • BCNF:消除主属性对码的部分、传递依赖(修正3NF)🔴
    • 4NF:消除多值依赖
  • 模式分解两个评判标准🔴
    • 无损连接:分解后可以还原全部原始信息
    • 保持函数依赖:原有函数依赖不丢失🔴

3.6 数据库控制功能🔴

  • 事务 & ACID四大特性🔴
    • A原子性:全部执行或全部回滚
    • C一致性:事务前后数据状态一致
    • I隔离性:多个事务互相隔离
    • D持久性:提交之后永久生效
    • 语句:Begin Transaction;Commit提交;Rollback回滚🔴
  • 并发操作带来三类问题🔴
    • 丢失修改;不可重复读;读脏数据(根源破坏隔离性)🔴
  • 并发控制:封锁技术
    • X排他锁:读写独占;其他事务不能加锁
    • S共享锁:可以多个事务读;不可写🔴

3.7 数据库安全与故障恢复🔴

  • 四类故障
    • 事务内部故障;系统故障(软故障,断电OS崩溃);介质故障(磁盘损坏硬故障);病毒🔴
  • 备份转储方式🔴
    • 静态转储(冷备):备份期间禁止修改;动态转储(热备):备份同时业务正常运行🔴
    • 海量(完全)转储;增量转储;差量转储
    • 日志文件:记录每一次修改,故障恢复核心🔴

3.8 补充拓展考点🔴

  • 数据仓库(4个特征)🔴
    • 面向主题、集成、相对稳定、反映历史变化;用于决策分析OLAP
    • 和业务数据库对比:数据库面向事务;数仓面向主题历史数据
  • 分布式数据库🔴
    • 分片:水平分片(按行切分)、垂直分片(按列切分)🔴
    • 分布透明性
      • 分片透明:不知道如何分片
      • 位置透明:不知道物理存放位置🔴
      • 复制透明:不知道副本位置
      • 逻辑透明:不关心局部数据模型
  • 大数据4V:Volume大量、Velocity高速、Variety多样、Value价值密度低🔴

    image

四、嵌入式系统及软件

4.1 嵌入式系统概述🔴

  • 定义:以应用为中心、计算机技术为基础,软硬件可配置裁剪的专用计算机系统
  • 五大约束要求🔴:功能、可靠性、成本、体积、功耗
  • 系统五大组成
    • 嵌入式处理器:民用/工业/军用三档次,抗恶劣环境、低功耗、体积小
    • 相关支撑硬件:存储器、定时器、总线、I/O接口、专用硬件
    • 嵌入式操作系统:资源管理,具备实时、可剪裁、安全特性
    • 支撑软件:库,为应用提供开发调试公共服务
    • 应用软件:完成特定业务目标
  • 嵌入式系统八大特点🔴
    • 专用性强;技术融合;软硬一体软件为主;资源受限
    • 程序固化在非易失存储器(Flash/ROM),不是磁盘🔴
    • 需要专门开发工具环境,无自开发能力;体积小性价比高;高可靠安全
  • 系统分类
    • 按实时:强实时、弱实时、非实时🔴
    • 按安全:安全攸关系统(失效会伤亡/重大财产损失)、非安全攸关🔴

4.2 嵌入式软件五层架构🔴【考试高频】

  1. 硬件层:微处理器、ROM/SDRAM/Flash、A/D D/A I/O、总线电源时钟
  2. 抽象层(硬件抽象层HAL + BSP板级支持包)🔴
  • BSP板级支持包:介于硬件与OS之间;包含BootLoader + 设备驱动🔴
  • BSP四大功能:单板硬件初始化;设备驱动与中断;定制OS;初始化操作系统
  1. 操作系统层:嵌入式OS、任务/存储/通信/时间管理、文件系统、GUI、网络组件
  2. 中间件层:数据库、DDS/CORBA、OpenGL、虚拟机;连接独立应用的桥梁
  3. 应用层:工业控制、物联网、军事、移动设备业务软件

4.3 BootLoader引导加载程序🔴

  • 地位:上电后第一段运行的软件,内核启动之前执行
  • 三阶段初始化流程🔴
    1. 片级初始化:纯硬件;初始化CPU核心寄存器、工作模式、总线
    2. 板级初始化:软硬件结合;CPU以外外设,串口、定时器、内存控制器,建立内存映射
    3. 系统级初始化(加载内核):把OS镜像从Flash拷贝到内存,跳转内核入口

4.4 设备驱动程序

  • 本质:一组库函数,向上提供访问硬件接口
  • 基本功能:硬件启动、关闭、启用、停用;读硬件、写硬件

4.5 嵌入式软件

  • 软件分类
    • 系统软件:驱动、嵌入式OS、中间件
    • 应用软件:上层业务软件
    • 支撑软件:交叉编译器、仿真调试等开发工具
  • 嵌入式软件六大关键特性🔴
    • 可剪裁性:删减不需要模块;手段:静态编译、动态库
    • 可配置性:适配不同运行场景;手段:数据驱动、配置表
    • 强实时性:任务必须规定时限完成
    • 安全性:事故发生防护;FMECA故障模式分析
    • 可靠性:容错、余度、鲁棒设计
    • 高确定性:行为可预期;静态资源分配、状态机、静态调度

4.6 嵌入式系统两种典型架构🔴

  1. 层次化模式架构
  • 封闭型:只能调用本层或者直接下层;封装好,可移植好,性能差
  • 开放型:可以调用所有下层;性能好,破坏封装,移植性差
  1. 递归模式架构
  • 用于复杂系统持续分解;两种工作流
    • 自顶向下:从整体需求逐步拆解到子模块
    • 自底向上:从底层组件逐步组装上层系统

4.7 嵌入式操作系统EOS🔴

  • 核心特点:可剪裁、可移植、强实时、紧凑精炼、高质量代码、可固化、弱交互、高确定性🔴

❌不具备:通用性

  • 分类
    • 实时RTOS:VxWorks、Nucleus(工业控制、军工)
    • 非实时消费类:Android、iOS、WinCE

感兴趣的同学可以扫描下方二维码一起讨论!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐