时游大约 13 分钟

  1. 流水线计算:

    1. 理论公式:t1+t2+t3+...+tk+(n−1)Δtt1+t2+t3+...+tk+(n-1)\Delta t

      t1+t2+t3+...+tk为执行一次完整流程所需时间(流水线建立时间),Δt\Delta t为流水线周期(最长步骤时间),n为要执行的次数。

    2. 实践公式:k∗Δt+(n−1)Δtk*\Delta t + (n-1)\Delta t。

      k为流水线步骤数,n为要执行的次数。

  2. 流水线吞吐率:

    定义:单位时间内可以完成的指令数。 计算:吞吐率=指令条数执行时间吞吐率 = \frac{指令条数}{执行时间}。最大吞吐率=1Δt最大吞吐率 = \frac{1}{\Delta t}

  3. cache平均周期:

    公式:t3=h∗t1+(1−h)∗t2t_3 = h*t_1 + (1-h)*t_2h为cache命中率,t1为cache的周期时间,t2为主存储器周期时间,其中(1−h)被称为失效率。h为cache命中率,t_1为cache的周期时间,t_2为主存储器周期时间,其中(1-h)被称为失效率。

  4. 所需芯片数计算:

    1. 地址区间计算:例如A0000H~CFFFFH地址区间计算。
      1. CFFFFH+1−A0000H=D0000H−A0000H=30000HCFFFFH + 1 - A0000H = D0000H - A0000H = 30000H
      2. 30000H=3∗164B=3∗164210KB=3∗26KB=192KB30000H = 3*16^4B = \frac{3*16^4}{2^{10}}KB = 3*2^6KB = 192KB
    2. 套用公式:总芯片数=总容量每片芯片容量总芯片数 = \frac{总容量}{每片芯片容量}
  5. 可靠性计算(串并联系统):

    串联系统:R=R1∗R2∗...∗RnR = R_1 * R_2 * ... * R_n 并联系统:R=1−(1−R1)∗(1−R2)∗...∗(1−Rn)R = 1 - (1 - R_1) * (1 - R_2) * ... * (1 - R_n)

  6. 输入输出技术

    CPU控制主存与外设之间数据交互的过程。

    1. 数据传输控制方式:
      1. 程序查询方式:分为无条件传送和程序查询方式两种。方法简单、硬件开销小,但是I/O能力不高。
      2. 程序中断方式:因为CPU无需等待而提高了请求的响应速度。
      3. DMA方式:为了在主存和外设时间实现高效、批量数据交互而设置的,最为高效。
      4. 通道方式
      5. I/O处理机
    2. 中断处理过程
      1. CPU无需等待也不必查询I/O状态。
      2. 当I/O设备准备好后,发出中断请求信号给CPU。
      3. CPU接收到中断信号后,保存正在执行程序的现场,即打断点。
      4. 转入I/O的服务程序执行,完成数据交换。
      5. 返回被打断程序继续执行。
  7. 段页式存储

    1. 页式存储:将程序和内存划分为同样大小的块,以页为单位将程序调入内存。

      1. 逻辑地址 = 页号 + 页内地址
      2. 无力地址 = 页帧号 + 页内地址
      3. 例题:在页式存储系统中,每页大小为4KB,逻辑地址为10110011011110 alt textalt text
    2. 断页式存储

    某些页码不在内存中,则称为断页式存储。将不在内存中的页调入内存中,采用以下规则淘汰旧页面:

    1. 访问位为0,优先淘汰访问位为0的页

    2. 若访问位为0有多个,则优先淘汰修改位为0的页

    3. 注意:状态位标识该页是否在内存中!

    4. 段式存储

    按用户作业中的自然段来划分逻辑空间,然后调入内存,段长可以不一致。

    1. 逻辑地址:(段号, 段内偏移量),注意偏移量不得超过段长。

    2. 段页式存储

    段式和页式综合体,先分段,后分页。一个程序有若干个段,每个段内有若干个页,每个页大小相同,但是每个段长度不同。

    例题:段页式存储的地址结构如下图,则系统最多也多少个段?每个段最多有多少个页?每页大小为多少?

    alt text
    alt text
    1. 最多有28=2562^8 = 256个段
    2. 每个段最多有211=20482^{11} = 2048个页
    3. 每页大小为213=8K2^{13} = 8K
  8. 子网掩码计算

    1. 类别

      • A类:8网络号,24主机号
      • B类:16网络号,16主机号
      • C类:24网络号,8主机号
    2. 计算

      例:将B类IP地址168.195.0.0划分成27个子网,其子网掩码多少?

      1. B类IP,其网络号16位
      2. 划分为27个子网,至少需要5位二进制数字(25=32>272^5 = 32 > 27)
      3. 子网掩码:原网络号(1111 1111 1111 1111) 子网所需(1111 1000) 主机号(0000 0000) = 255.255.248.0

      扩展:其能表示的主机个数为多少?

      1. 32 - 16 - 5 = 11;
      2. 主机数:211−22^{11} - 2:排除全0和全1的情况

      例题2:将B类IP地址168.195.0.0划分成若干个子网,每个子网内有主机700台,则子网掩码为多少?

      1. 主机有700台,210=1024>7002^{10} = 1024 > 700,则主机位需要10个。
      2. 子网号则有32 - 16 - 10 = 6位。
      3. 子网掩码:11111111 11111111 11111100 00000000 = 255.255.252.0
  9. 速度传输速率计算

    1. bps含义:比特/秒,bit/s
    2. 例如1MB/s = 8* 10610^6 bps
  10. 磁盘

    1. 有效区域:(外径 - 内径)/ 2
    2. 格式化容量:面数 * (磁道数 / 面)* 扇区数/道 * (字节/扇区)
    3. 非格式化容量:面数 * (磁道数/面) * 内圆周长 * 密度
  11. CPU组成:

  • 运算器
    • 算术逻辑单元ALU:执行算术运算(加减乘除)和逻辑运算(与或非)。
    • 累加寄存器AC:暂存ALU的运算结果和操作数。
    • 数据缓冲寄存器DR:数据中转站,用于在CPU与外设/存储器之间暂存正在读/写的数据,或暂存从内存取来的操作数。
    • 状态条件寄存器:保存运算结果的状态标志与条件码。
  • 控制器
    • 程序计数器PC:保存下一条要执行的指令的地址。
    • 指令寄存器IR:保存“当前正在执行/刚取到的指令”,为译码和执行阶段提供指令字段(操作码、寻址方式、寄存器编号等)。
    • 指令译码器:对IR中的操作码等字段进行解释编译。
    • 时序部件:负责协调CPU各部件的工作,确保指令按顺序执行。
  1. 浮点数运算步骤:

  2. 统一浮点数阶码,向高阶靠拢,例如1000和919,科学计数法后为1.000x103和0.119x103。

  3. 尾数相加,例如1.0 + 0.119 = 1.119。

  4. 结果格式化(确保小数点左边第一位不能为0且不能为一位以上的数字):1.119 x 103。

  5. 校验码 功能:在原有数据上,添加一些冗余数据来校验这些数据的准确性和正确性。 码距:任意两个码字之间最少变化的位数。

    1. 奇偶校验(可检错,不可纠错)

      在若干个有效信息中,加一个校验位组成校验码。

      奇校验(整个校验码中1的个数为奇数) 偶校验(整个校验码中1的个数为偶数)。

    2. CRC循环冗余校验码(可检错,不可纠错)

      在k位信息码后拼接r位校验码,校验码由多项式P(x)生成,P(x)由接收方定义。

    接收方在收到数据后,使用约定的多项式P(x)对数据进行模二除法,若余数为0则表示正确,否则表示错误。不同位数出错其余数不同,余数和出错序号之间有唯一的对应关系。

    1. 海明校验码(可检错,可纠错)

      1. 海明校验位公式:2r >= m + r + 1,其中m为信息码位数,r为校验码位数。
      2. 海明码明确规定校验位的位置在信息码的第2n位,例如第20 = 1,第21 = 2,第22 = 4,... 海明码计算
  6. OSI七层模型:

    1. 应用层:实现具体应用

    2. 表示层:数据加密、压缩

    3. 会话层:建立、管理、终止会话

    4. 传输层:端到端传输

    5. 网络层:分组传输、路由选择,设备有交换器、路由器

    6. 数据链路层:以帧为单位传输,设备有网桥、交换机、网卡

    7. 物理层:二进制传输,设备有中断器、集线器

  7. TCP/IP 模型(4 层模型):

    1. 应用层:对应 7 层模型中的应用层+表示层+会话层

      1. 主要协议 如图
      2. DNS:域名解析,将域名转为 IP 地址
    2. 传输层:对应 7 层模型中的传输层

      1. 主要协议:TCP、UDP
    3. 网络层(网际层):对应 7 层模型中的网络层

      1. 主要协议:IP、ICMP、IGMP、ARP(ip 转 mac)、RARP(mac 转 ip)
    4. 网络接口层:对应 7 层模型中的数据链路层+物理层

      1. 主要协议:CSMA/CD、TokingRing
    alt text
    alt text
  8. 高内聚低耦合:一个模块的内部功能高度相关,外部功能相对独立。

    1. 内聚划分(高 -> 低):
      1. 功能内聚:各模块完成单一功能,互相协作
      2. 顺序内聚:各模块按顺序执行
      3. 通信内聚:处理元素集中在一个数据结构汇总
      4. 过程内聚:按特定次序执行
      5. 时间内聚:同一时间间隔内执行
      6. 逻辑内聚:一组逻辑相关
      7. 巧合(随机)内聚:无任何关联
    2. 耦合划分(低 -> 高):
      1. 非直接耦合:无任何直接关系,通过主模块控制和调用
      2. 数据耦合:借助参数表传递简单数据
      3. 标记耦合:借助参数表传递数据结构
      4. 控制耦合:传递的信息用于控制内部逻辑
      5. 外部耦合:访问同一全局简单变量
      6. 公共耦合:访问同一公共数据环境
      7. 内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口进入另一个模块内部;两个模块有代码重叠;一个模块有多个入口
  9. 加密算法

    1. 对称加密:DES、3DES、RC-5、IDEA
    2. 非对称算法:RSA、ECC
  10. 稳定排序:冒泡排序、插入排序、归并排序、基数排序、计数排序

  11. 线条关系:alt text

  12. 23种设计模式

    1. 创建型
      1. 抽象工厂(Abstract Factory):提供一个接口,创建一系列相关或依赖的对象,无需指定具体的类
      2. 构建器模式(Builder):表示和结构分离,使相同的构建过程得出不同的表示
      3. 工厂模式(Factory Method):子类决定实例哪一个类
      4. 原型模式(Prototype):用原型实例指定创建对象的类型,并clone方法来创建对象
      5. 单例模式(Single):只有一个实例,并提供一个访问其全局的访问点
    2. 结构型
      1. 适配器模式(Adapter):使不相容的得以协同工作
      2. 桥接模式(Bridge):抽象与实现分离,使得可以独立变化
      3. 组合模式(Composite):将对象组成树形结构
      4. 装饰模式(Decorator):给对象添加额外的职能
      5. 外观模式(Facade):定义高层接口,提供一个一致外观
      6. 享元模式(Fly weight):提供大量对象共享的有效方法
      7. 代理模式(Proxy):为其他对象提供代理,来控制这个对象访问
    3. 行为型
      1. 职责链模式(Chain of responsibility):多个对象都有处理这个请求的机会,将其组成一条链,沿着其进行传递,直到有一个对象将其处理
      2. 命令模式(Command):支持撤销
      3. 解释器模式(Interpreter):根据文法表示来解释语言中的句子
      4. 迭代器模式(Interator):顺序访问一个聚合对象的各个元素而不暴露对象的内部表示
      5. 中介者模式(Mediator):用一个中介对象封装一系列对象交互,使得对象间无需显式调用,从而达到低耦合,还可独立改变对象间交互
      6. 备忘录模式(Memento):恢复到原先保存的状态
      7. 观察者模式(Observer):当一个对象改变时,所有依赖它的对象都会得到通知并更新
      8. 状态模式(State):允许一个对象在其内部状态变化时改变其行为
      9. 策略模式(Strategy):将一系列算法封装起来,使得它们之间可以互相替换,从而独立
      10. 模版方法模式(Template):将一些步骤放到子类中实现
      11. 访问者模式(Visitor):在不改变各元素前提下定义作用于这些元素的新操作
  13. 面向对象设计七大原则

    1. 单一职责原则:设计目的单一的类
    2. 开放-封闭原则(开闭原则):对扩展开放、对修改封闭
    3. 李氏(Liskov)替换原则:子类可以替换父类
    4. 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
    5. 接口隔离原则:使用多个专门的接口比使用单一的总接口更好
    6. 组合重用原则:要尽量使用组合,而不是继承关系达到重用目的
    7. 迪米特原则(最少知识法则):一个对象应当对其他对象尽可能少的了解

    其他原则:

    1. 重用发布等价原则:重用的粒度就是发布的粒度
    2. 共同封闭原则:包中所有类对于同一性质的变化应该是共同封闭的。一个变化若多一个包产生影响,则将该包中所有类产生影响,而对于其他的包不造成任何影响
    3. 共同重用原则:一个包里的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类
    4. 无环依赖原则:在包的依赖关系图中不允许存在环,即包之间的结构必须是一个直接的无环图形。
    5. 稳定依赖原则:朝着稳定的方向进行依赖
    6. 稳定抽象原则:包的抽象程度应该和其稳定程度一致
  14. UML图

    1. 静态图 1. 类图:一组对象、结构、协作和它们之间的关系 2. 对象图:一组对象以及它们之间的关系 3. 包图:描述类或其他UML如何组织成包,以及包之间的依赖关系 4. 组合结构图:分解类、组件或用例的内部结构 5. 构件图(组件图):一组构件之间的组织和依赖,专注于系统的静态实现视图 6. 部署图:软硬件之间映射,运行处理结点以及构件的配置,给出体系结构的静态实施视图 7. 制品图
    2. 动态图 1. 用例图:系统与外部参与者的交互,描述用例、参与者以及它们之间的关系 2. 顺序图:强调按时间顺序 3. 通信图(协作图),强调收发消息的对象之间的组织结构 4. 定时图:关注对象在改变状态时的时间约束条件 5. 状态图:展现了一个状态机,由状态、转换、事件和活动组成。 6. 活动图:类似程序流程图,并行行为。专注于系统的动态视图,一个活动到另外一个活动到流程。 7. 交互概览图
  15. 泛化:将对象之间的共性进行抽象的过程叫做泛化,结果为生成一个父类,子类可继承(extends)父类中的属性和方法。

上次编辑于:
贡献者: 15327360835
Loading...