计算机系统基础

知识点分布

image-20250911000455838

计算机组成原理

image-20250911223304516

冯诺依曼计算机组成

image-20250911223340494

CISC与RISC指令集

image-20250911223412507

缓存速度

image-20250911224350749

时间局部性原理与空间局部性原理

image-20250911224423606

image-20250911224518581

DMA(直接存储访问)工作方式是在主存与外设之间建立起来的数据通路。

操作系统

操作系统是应用软件与硬件之间的接口。

image-20250911224614544

操作系统分类

image-20250911224733264

image-20250911224935615

进程管理

image-20250911225008828

进程与线程

image-20250911225158032

同一进程可以共享的内存区域:内存地址空间,代码、数据、文件等。

进程状态切换的三态模型:

image-20250915231935340

默认系统都是非抢占式的,无剥夺的。如果是抢占式调度,优先级高的抢着做。

image-20250915233039701

常见的临界资源:打印机,缓冲区。

image-20250915233616314

信号量是全局变量,信号量表示资源数量,信号量初值表示没有任何操作的时候,资源的总数。

信号量是复数的时候,表可以欠别人资源的个数,绝对值是排队进程数。

V操作有进程则唤醒进入就绪队列,注意不是直接执行。

image-20250915234556695

开始前检查前驱,有几个前驱进程就要用P操作来检查几次,检查后继的时候,需要通知,有几个后继就要通知几次。

image-20250916232449980

死锁与银行家算法

image-20250916231033614

image-20250916232554070

银行家算法:分配资源的原则:

  • 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
  • 进程可以分期请求资源,但请求的总数不能超过最大需求量
  • 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源

系统可以正常执行:安全序列;死锁:不安全的序列。

存储管理

image-20250916234111748

操作系统会将内存中的几个存储位置分配个某个进程来使用。

需要掌握:逻辑地址到物理地址的二进制形式和十六进制形式的转换

image-20250917000236390

根据局部性原理:访问位为1的页面,尽量保留。

淘汰规则:先淘汰访问位为0的,如果有多个访问位为0的,则优先淘汰修改位为0的页,因为不用考虑数据一致性的问题。

image-20250917231904923

段的逻辑地址:段号,段内偏移量。

如果段内偏移量大于段长逻辑地址转物理地址溢出。

image-20250917235651406

磁盘管理

考点:1.平均存取时间 2.优化分布 3.移臂调度序列 4.单缓冲区与双缓冲区(流水线技术)

image-20250918000617538

image-20250920221106194

注意:磁头都是一起转动的。

读取数据的时间应包括以下三个部分:

  • 找磁道的时间
  • 找块(扇区)的时间,即旋转延迟时间
  • 传输时间(磁头在对应扇区上移动的时候)

处理记录的时间等于:旋转延迟时间 + 数据传输时间 + 数据处理时间。

移臂调度算法:

  • 先来先服务(FCFS)
  • 最短寻道时间优先(SSTF)
  • 扫面算法(SCAN)
  • 循环扫面(CSCAN)算法

最常考的算法:最短寻道时间优先

image-20250920225344417

image-20250920230400194

文件系统

image-20250920231643960

索引可能的含义:目的、指针、地址项、磁盘块号。

直接索引 0-9 号页。

一般索引节点表在内存索引块和数据块在磁盘。

image-20250921152839729

0表示空闲,1表示占用。

系统性能

image-20250921161040861

image-20250921161225322

吞吐量:请求完成的数量。

image-20250921161824406

性能设计方案

image-20250921162611965

image-20250921162644443

性能评估方法

image-20250917232443252

重点掌握,基准程序法。

image-20250917233632458

image-20250917233652547

Web服务器的性能评估:

  • 在Web服务器的测试中,反映其性能的的指标主要有:最大并发连接数、响应延迟和吞吐量等
  • 常见的Web服务器性能评测方法有基准性能测试、压力测试和可靠性测试

image-20250917234047422

嵌入式系统

嵌入式系统

image-20250921224405978

嵌入式系统的组成

image-20250921224823842

操作系统与硬件无关性,硬件无关性可以提高可移植性。

操作系统的易移植性依赖于硬件抽象层和板级支撑技术。

image-20250921225445696

image-20250921225458206

image-20250921225850795

嵌入式软件设计层面的功耗控制主要可以从以下方面展开:

  • 软硬件协同设计,即软件的设计要与硬件的匹配,考虑硬件因素
  • 编译优化,采用低功耗优化的编译技术
  • 减少系统的持续运行时间,可以从算法角度进行优化
  • 用“中断”代替“查询”
  • 进行电源的有效管理

image-20250921230646160

嵌入式硬件

image-20250921230714811

重点关注信号处理器。

image-20250921230932045

image-20250921231151636

image-20250921232154352

image-20250921232418815

image-20250921234552317

image-20250922231048201

单工:只能往一个方向传数据;双工:既可以发数据,也可以收数据;半双工:分时分享,同一时刻,只允许1个设备发送,但是允许多个设备接收。

总线通常分为以下几类:

  • 芯片内总线。用于集成电路芯片内部各部分的连接元件级总线。用于一块电路板内各元器件的连接
  • 系统总线,又称内总线。用于计算机各组成部分(CPU、内存和接口等)的连接
  • 外总线,又称通信总线。用于计算机与外设或计算机与计算机之间的连接或通信

image-20250922232121265

海明码可以纠正1个比特位的错误,通常认为90%以上只会出现一个比特位的错误。

嵌入式操作系统

image-20250922232759485

image-20250922233006060

image-20250922233018793

image-20250922234716891

image-20250922234739548

image-20250922234802553

image-20250922234840292

image-20250922234854546

嵌入式数据库

与传统的数据库相比,嵌入式数据库系统有以下几个主要特点:

  • 嵌入式
  • 实时性
  • 移动性
  • 伸缩性

嵌入式数据库分类

按照数据库存储位置的不同而进行分类是目前广泛采用的分类方法,它可以划分为三类:

  • 基于内存方式(Main Memory Database System,MMDB)
  • 基于文件方式(File Database,FDB)
  • 基于网络方式(Netware Database ,NDB)

image-20250922235644815

重点掌握基于网络的数据库。

image-20250922235654203

计算机网络

计算机网络概述

网络延时 = 处理时延 + 排队延迟 + 发送延迟 + 传播延迟。

如果不考虑网络环境,服务器的延迟的主要因素是队列延迟和磁盘I/O延迟。

image-20250925230853839

image-20250925231133303

image-20250925231411394

image-20250925231430520

image-20250925231541327

组网技术

image-20250925232059208

以太网帧最小长度为64字节。

image-20250925232231813

image-20250925232244185

路由器和交换机的区别:

  1. 路由器连接不同子网,交换机连接的是同一个网络
  2. 交换机不能做路由功能,路由器可以做数据转发,但它还有其他的一些功能
  3. 路由器一个端口是一个广播域,交换机所有端口是一个广播域

TCP/IP协议族

image-20250925232304739

image-20250925232416682

HTTPS的默认端口:443

TCP端口号的作用是:对应用层进程的寻址。

Internet网络核心采取的交换方式为:分组交换。

image-20250925232451017

image-20250925232511977

image-20250925232526634

image-20250925232547480

网络规划与设计

image-20250925232615660

数据库系统

数据库概述

数据库模式:外模式(视图级)、概念模式(表级别)、内模式(存储模式,文件级)。

外模式到概念模式的映射保证了逻辑独立性,概念模式到内模式保证了物理独立性。

聚簇索引的修改会影响内模式。

分布式数据库:数据在多个物理节点存放。

分布式数据库的特性:

  • 数据独立性
  • 集中与自治共享结合的控制结构
  • 适当增加数据冗余度
  • 全局一致性、可串行性和可恢复性

分布式数据库透明性分类

  • 分片透明
  • 位置透明
  • 复制透明
  • 逻辑透明

数据库设计阶段

image-20251008232845763

概念结构设计阶段:

需求分析 -> 抽象数据 -> 设计局部ER模型 -> 合并局部模型消除冲突 -> 重构优化消除冗余 -> 逻辑设计

实体完整性:主键,唯一且非空

参照完整性约束:外键,要么为空,要么是其他关系的主键

候选码:是一个属性集合,可以只有一个属性,可以有多个属性。

关系代数

关系代数的结果:并交差 笛卡尔积 自然连接

笛卡尔积和自然连接

关系代数与查询语句

查询性能的考察

水平方向:元组行/记录/实例

垂直:属性列

image-20251010215748971

image-20251010215811157

image-20251010231013584

image-20251010231028660

性能问题:

1.运算对象尽可能先压缩

2.理论上自然连接的性能优于笛卡尔积

规范化理论

重点掌握:属性集合 函数依赖 公理体系 候选键和非候选键 主属性和非主属性的判断

image-20251010231046492

image-20251010231611103

image-20251010232816788

image-20251010233002243

image-20251010233523627

image-20251010233838739

要注意:候选键是单属性,也可以是多属性的集合。

主键说的是,实体完整性,外键说的是参照完整性。

image-20251010233852205

通常找到入度为0的属性,就可以找到候选键。
如果没有入度为0的候选键,需要结合中间节点来判断候选关键字。

image-20251014230746600

学会判断范式、消除1-3NF。

image-20251014231223658

image-20251014231239702

候选键:(学号,课程号);非主属性:学分、成绩。

如果候选键是单个属性,1NF的前提下,至少能达到第2范式。

image-20251014231307395

如果没有非主属性,在1NF的前提下,至少满足第三范式。

image-20251014231325378

模式分解

image-20251014235340965

如果没有同名属性列,那么分解一定是有损的。

image-20251014235810078

例1:没有保持函数依赖。

例2:保持函数依赖,但是有损,因为没有同名属性列。

如何判断是否有损:先求拆分的属性交集,再求属性的差集,判断是狗满足原来任意一个函数依赖。

数据控制

数据控制功能包括:

  • 安全性
  • 完整性
  • 并发控制
  • 故障恢复

image-20251015231753587

image-20251015232854906

image-20251015232915059

image-20251015232924936

image-20251015232942027

image-20251015232953773

image-20251015233005221

系统工程与信息基础

系统工程

image-20251016230350722

image-20251016230635604

image-20251016230652329

信息系统生命周期

image-20251016231106169

image-20251016231437258

信息系统建设原则

image-20251016231811963

image-20251016234604801

image-20251016234615860

信息系统的分类

image-20251016234640940

image-20251016235025878

image-20251016235048261

image-20251023235637842

决策支持系统DSS

image-20251023235702665

专家系统

image-20251023235722159

image-20251023235750125

政府信息化与电子政务

image-20251023235804648

image-20251023235819700

企业信息化与电子商务

image-20251023235842860

信息化是指在国家宏观信息政策指导下,通过信息技术开发、信息产业的发展、信息人才的配置,最大程度利用信息资源以满足全社会的信息需求 ,从而加锁社会各个领域的共同发展以推进信息社会的过程。

信息化的主体是全体社会成员(政府、企业、团体和个人),时域是一个长期过程,空域是经济和社会的一切领域,手段是先进社会生产工具。

企业信息化涉及三类创新

image-20251024000300430

信息化需求的3个层次

image-20251024000324030

企业信息化方法

image-20251024000613672

image-20251024000648377

image-20251024000703201

image-20251024000712684

image-20251024000726245

image-20251026223511157

image-20251026223529623

image-20251026223625761

image-20251026223700469

image-20251026223722098

数据库与数据仓库:

数据库 数据仓库(特点)
面向应用:按应用组织数据 面向主体:按主题组织数据
零散的:一个应用对应一个数据库 集成的:整个企业对应的一个数据仓库
CRUD:增删改查是常态 相对稳定的(非易失的):查询为主、基本无修改与删除
解决当下应用问题 反映历史变化(时变的):各个阶段信息都有,并可预测未来趋势

image-20251026224322905

image-20251026224341980

image-20251026224357074

image-20251026224417621

image-20251026224436673

image-20251026224452603

image-20251026224515245

image-20251026224554923

image-20251026224614116

image-20251026224632914

image-20251026224702193

数字化转型与智能制造

image-20251026224728698

image-20251026224745133

软件工程

软件过程模型

敏捷开发中,增量与迭代经常一起出现。

螺旋模型强调风险。

喷泉模型的主要特点:不严格区分阶段,面向对象。

基于构件的软件工程

image-20251027230409966

敏捷方法-XP(极限编程)

4大价值观:

  • 沟通【加强面对面沟通】
  • 简单【不过度设计】
  • 反馈【及时反馈】
  • 勇气:接受变更的勇气

12条过程实践规则:

  • 简单设计
  • 测试驱动
  • 代码重构
  • 结对编程
  • 持续集成
  • 现场客户
  • 发行版本小型化
  • 系统隐喻
  • 代码集体所有制
  • 规划策略
  • 规范代码
  • 40小时工作制

image-20251027231345658

敏捷方法:

  • 极限编程(XP):价值观(交流、朴素、反馈、勇气)、近螺旋式的开发方法
  • 水晶方法:提倡“机动性”的方法,拥有对不同类型的项目非常有效的敏捷过程
  • SCRUM:侧重于项目管理
  • 特征驱动开发方法(FDD):认为有效的软件开发需要3要素(人、过程、技术)。定义了6钟关键的项目角色:项目经理、首席架构设计师、开发经理、主程序员、程序员和领域专家
  • 开放式源码:程序开发人员在地域上分布很广(其他方法强调集中办公)
  • ASD方法:其核心是三个非线性的、重叠的开发阶段:猜测、合作与学习
  • 动态系统开发方法(DSDM):倡导以业务为核心

逆向工程

image-20251027233000252

实体关系模型:ER模型,UML模型。

与逆向工程相关的概念有重构、设计恢复、再工程和正向工程

  • 重构/重组:重构是指再【同一抽象级别】上【转换系统描述形式】
  • 设计恢复:设计恢复是指借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计等方面的信息
  • 逆向工程:逆向工程是分析程序,力图在源代码更高抽象层次上建立程序的表示过程,逆向工程是设计的恢复过程
  • 正向工程:正向工程是指不仅从现有系统中恢复设计信息,而且使用该信息去改变或重构现有西永,以改善其整体质量
  • 再工程/重构工程:再工程是对现有系统的重新开发过程,包括逆向工程、新需求的考虑过程和正向工程三个步骤

净室软件工程

image-20251027234617194

净室工程的核心:正确性验证。

净室工程的缺点:

  • 太理论化,正确性验证的步骤比较困难且耗时
  • 开发小组不进行传统的模块测试,这是不现实的
  • 脱胎于传统软件工程,不可避免带来传统软件工程的一些弊端

需求工程

image-20251027235206294

image-20251028000319853

需求获取的方法

image-20251028230616984

image-20251028231519306

核心:行为模型、数据模型、功能模型

image-20251028231707149

image-20251028232346582

image-20251028232401830

image-20251028233415580

需求阶段:哪些东西该做,哪些东西不该做。

开发阶段:具体的解决方案,具体该如何实现。

UML主要考察:构造块的内容。

image-20251028234357325

搞清楚是静态图还是动态图以及具体的概念。

UML是面向对象分析的工具集合。

image-20251028234647806

严格定义法:有瀑布模型的思想

原型法:有原型法的思想

image-20251028235116945

image-20251028235623521

image-20251029000430686

image-20251029000842419

image-20251029001232385

人机界面设计(黄金三法则)

image-20251029231214756

image-20251029231536438

结构化设计(内聚)

内聚类型 描述
功能内聚 完成一个单一功能,各个部分协同工作,缺一不可
顺序内聚 处理元素相关,而且必须顺序执行
通信内聚 所有处理元素集中在一个数据结构的区域上
过程内聚 处理元素相关,而且必须按特定的次序执行
时间内聚(瞬时内聚) 所包含的任务必须在同一时间间隔内执行
逻辑内聚 完成逻辑上相关的一组任务
偶然内聚(巧合内聚) 完成一组没有关系或松散关系的任务

结构化设计(耦合)

耦合类型 描述
非直接耦合 两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的
数据耦合 一组模块借助参数表传递简单数据
标记耦合 一组模块通过参数表传递记录信息(数据结构)
控制耦合 模块之间的传递信息中包含用于控制模块内部逻辑的信息
外部耦合 一组模块都访问同一全局简单变量,而且不是通过参数传递该全局变量的信息
公共耦合 多个模块都访问同一个公共数据环境
内容耦合 一个模块之间访问另一个模块的内部数据;一个模块不通过正常入口转到另一个模块的内部;两个模块有一部分程序代码重叠;一个模块有多个入口

image-20251029233126839

image-20251029233631682

image-20251029233925862

image-20251029234052781

系统分析与设计

软件测试

image-20251029235117699

系统运行与软件维护

软件架构设计

软件架构的概念

架构的本质:

  1. 软件架构设计为软件系统提供了一个结构、行为和属性的高级抽象
  2. 软件架构风格是特定应用领域的惯用模式,架构定义一个词汇表和一组约束

架构的作用:

  1. 软件架构是项目干系人进行交流的手段
  2. 软件架构是可传递和可复用的模型,通过研究架构可以预测软件的质量
  3. 软件加否使推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础

软件架构等于软件体系结构。

image-20251116232117302

架构设计就是需求分配,即将满足需求的职责分配到组件上。

基于架构的软件开发

软件架构设计与生命周期

image-20251116232605704

架构描述语言

架构描述语言ADL

image-20251116233059153

”4+1“视图

image-20251116233342752

配置、装配指的是源代码物理结构。

ABSD方法是架构驱动,即强调由业务【商业】、质量和功能需求的组合驱动架构设计

ABSD方法有三个基础:

  • 功能的分解。在功能的分解中,ABSD方法使用已有的基于模块的内聚和耦合技术;
  • 通过选择架构风格来实现质量和业务需求
  • 软件模板的使用

视角与视图:从不同的视角来检查,所以会有不同的视图

用例用来捕获功能需求,特定场景【刺激、环境、响应】用来捕获质量需求

image-20251118233005563

image-20251118233019541

image-20251118233039100

image-20251118233059232

软件架构风格

五大架构风格 子风格
数据流风格 批处理
管道-过滤器
调用/返回风格 主程序/子程序
面向对象
分层架构
独立构件风格 进程通信
事件驱动(隐式调用)
虚拟机风格 解释器
规则系统
以数据为中心 数据库系统
黑板系统
超文本系统

数据流风格

image-20251118231832340

隐蔽性是指对数据有标准的输入和输出,无需了解具体的细节。

数据流风格的软件的典型实例:C语言编译器、网络报文处理。

数据流风格子风格

image-20251118232555607

调用/返回风格

image-20251118232110498

分层架构风格

image-20251118232331356

独立构件风格

image-20251118233952450

独立构件风格特点:

优点 缺点 特点
1.松耦合
良好的重用性/可修改性/可扩展性
1.构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其他构件是否会响应它。而且即使它知道事件注册了哪些构件的过程,它也不能保证这些过程被调用的顺序
2.数据交换问题
3.既然过程的语义必须依赖与被触发事件的上下文约束,关于正确性的推理就存在问题
系统由若干子系统构成且成为一个整体;系统有统一的目标;子系统有主从之分;每一子系统有自己的事件收集和处理机制

image-20251118235023134

事件管理器的典型代表:MQ

虚拟机风格

image-20251118235057194

image-20251118235109860

image-20251118235120942

低代码平台是虚拟机风格。

解释器:适用于需要”自定义规则的场合“。

规则为中心:适用于专家系统。

image-20251118235135412

解释器模式风格的核心:解释器引擎。

image-20251118235152732

以数据为中心

image-20251124232704225

黑板系统的代表实现:语音识别、知识推理。

image-20251124232144845

黑板系统一般都是数据库系统来实现的。

以数据为中心的架构特点:

image-20251125000925069

image-20251124233016777

过程控制风格需要从外界提取信息来指导当前系统的运作。

image-20251124233046817 image-20251124234028503 image-20251125230856712

低代码平台借鉴了MDA的软件架构风格。

软件架构复用

image-20251125231751512

服务本身就是一种构件。

软件架构复用类型有两种:机会复用和系统复用。

机会复用:开发过程中,只要发现有可复用资产,就对其进行复用。

系统复用:开发之前,要进行规划,以决定哪些需要复用。

特定领域软件架构

DSSA架构每次都会考。

image-20251125232644750

image-20251125233146065

DSSA建立过程:

image-20251125234731925

DSSA三层模型:

image-20251125234740637

软件产品线

image-20251125234943060

软件架构评估

软件质量属性

image-20251125235033461

几个比较主要的属性:性能、可用性、安全性、可修改性、易用性。

性能:

image-20251126230920261

可用性:

image-20251126231102726

安全性:

image-20251126231126775

注意:用户信息数据库授权可用代表的是安全性,用户信息数据库可用表示的是可用性。

光有权限控制无法防止黑客攻击。

可修改性:

image-20251126231142523

可修改性包含4个方面:可维护性、可扩展性、结构重组、可移植性。

注意:隐藏信息属于可修改性战术。

易用性:

image-20251126231153744

易用性关注的是从用户的角度来说的。

架构评估

image-20251127000327426

构件与中间件技术

系统可靠性分析

知识产权与标准化

项目管理

信息安全基础知识

信息安全基础

信息安全包含5个基本要素

名称 说明
机密性 机密性是指网络信息不泄密给非授权的用户,实体或程序,能够防止非 授权者获取信息
完整性 完整性是指网络信息或系统未经授权不能进行更改的特性
可用性 可用性是指合法许可的用户能够及时获取网络信息或服务的特性
可控性 可控性是指可以控制授权范围内的信息流记行为方式
可审查性 可审查性是指对出现的信息安全问题提供调查的依据和手段

信息安全的范围包括设备安全、数据安全、内容安全和行为安全。

可审查性指的是事后的环节。

网络安全漏洞:

安全隐患主要表现如下:

  1. 物理安全性
  2. 软件安全漏洞
  3. 不兼容使用安全漏洞
  4. 选择合适的安全哲理

信息安全措施的目标如下:

  1. 访问控制
  2. 认证
  3. 完整性
  4. 审计
  5. 保密

信息加密技术

image-20251111232913408

image-20251111234513759

加密技术对比

对称加密算法【共享密钥】 非对称加密算法【公开密钥】
【用途】对消息明文进行加密传送 【用途】对密钥加密,做数字签名
DES:替换+移位、56位密钥、64位数据块、速度快、密钥易产生 RSA:2048位(或1024位)密钥
3DES(三重DES):
密钥长度112【两个56位的密钥k1、k2】
加密:k1加密 > k2解密 > k1加密
解密:k1解密 > k2加密 > k1解密
Elgmal:安全性依赖于计算有限域上离散对数这一难题
IDEA:128位密钥、64位明文/密文、PGP ECC:椭圆曲线算法
其它对称加密算法:RC-5、AES Diffie-Hellman

一个密码系统至少由明文、密文、加密算法、解密算法和密钥五个部分组成,而其安全性是由密钥决定的。

密钥管理技术

数字证书的内容

  • 证书的版本信息
  • 证书的序列号,每个证书都有一个唯一的证书序列号
  • 证书所使用的签名算法
  • 证书的发行机构名称,命名规则一般使用X.500格式
  • 证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围是1950-2049
  • 证书所有人的名称,命名规则一般采用X.5000格式
  • 证书所有人的公开密钥
  • 证书发行者对证书的签名

image-20251112231215800

image-20251112231559667

访问控制

访问控制的基本模型

访问控制的目标有两个:

  • 防止非法用户进入系统
  • 阻止合法用户对系统资源的非法使用,即禁止合法用户的越权访问

访问控制的三要素:

  • 主体:可以对其他实体施加动作的主动实体,记为S
  • 客体:是接受其他实体访问的被动实体,记为O
  • 控制策略:是主体对客体操作行为集和约束条件集,记为KS

image-20251112234441808

image-20251112234452551

数字签名技术

数字签名不能解决机密性的问题,解决的是身份的真实性、不可抵赖性和完整性。

image-20251112234353452

image-20251112234825603

image-20251112234420089

信息安全的保障体系

image-20251112234704202

image-20251112234715138

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×