并发的核心特征可以概括为:**宏观上同时执行,微观上交替执行**。在多任务操作系统中,多个程序在同一时间段内同时推进
并发的核心特征可以概括为:宏观上同时执行,微观上交替执行。在多任务操作系统中,多个程序在同一时间段内同时推进,从宏观角度看用户感知到多个任务在同时运行;但在微观层面,单个CPU核心在任意时刻只能执行一个程序指令,不同程序的指令通过时间片轮转的方式交替执行,实现了“同时”运行的效果。
五、数据库系统
数据库系统是按照数据结构来组织、存储和管理数据的软件系统,是计算机系统的核心组成部分,其核心知识点如下:
1. 基础概念
- 数据库三要素:数据结构、数据操作、完整性约束。数据结构定义了数据的组织形式,数据操作规定了对数据可执行的操作类型,完整性约束则保证了数据的正确性和一致性。
- 三级模式结构:
- 外模式:也称为用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述
- 模式:也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的统一描述
- 内模式:也称为存储模式,是数据物理结构和存储方式的描述
- 两级映像机制:
- 外模式/模式映像:保证了数据的逻辑独立性,当模式改变时,通过调整映像可以保持外模式不变,从而应用程序无需修改
- 模式/内模式映像:保证了数据的物理独立性,当数据的物理存储结构改变时,通过调整映像可以保持模式不变,应用程序也无需修改
2. 数据模型与操作
- 主要数据模型:
- 层次模型:用树形结构表示实体及实体间联系
- 网状模型:用网状结构表示实体及实体间联系
- 关系模型:用二维表结构表示实体及实体间联系,是当前主流的数据模型
- 关系代数基本操作:选择(从关系中选取满足条件的元组)、投影(从关系中选取指定的属性列)、连接(将两个关系按一定条件拼接成一个新的关系)、并、交、差。
- SQL核心语法:
SELECT(选择要查询的字段)、FROM(指定查询的表)、WHERE(指定查询条件)、GROUP BY(对结果进行分组)、HAVING(对分组结果进行筛选)、ORDER BY(对结果进行排序)。
3. 数据库设计与约束
- 主键(Primary Key):用于唯一标识表中的每一条记录(元组),主键值不能为空且不能重复。
- 外键(Foreign Key):用于引用另一个表的主键,建立表与表之间的关联关系,保证数据的参照完整性。
- 索引:是一种特殊的数据结构,能够显著加速数据查询速度,但会增加数据增、删、改操作的开销,需要根据业务场景合理创建。
- 视图:是从一个或多个基本表中导出的虚表,本身不存储数据,主要作用是简化复杂查询、提供数据安全隔离。
4. 事务与并发控制
- 事务ACID特性:
- 原子性(Atomicity):事务中的操作要么全部执行,要么全部不执行
- 一致性(Consistency):事务执行前后数据库的完整性约束保持一致
- 隔离性(Isolation):多个事务并发执行时,相互之间不受干扰
- 持久性(Durability):事务一旦提交,对数据的修改就是永久的
- 常见并发问题:
- 丢失修改:两个事务同时修改同一数据,一个事务的修改被另一个事务覆盖
- 脏读:一个事务读取了另一个事务未提交的修改数据
- 不可重复读:同一事务内多次读取同一数据,由于其他事务的修改导致前后读取结果不一致
- 幻读:同一事务内多次执行相同查询,由于其他事务的插入或删除操作导致返回的记录数不同
- 范式(Normal Form):通过规范化设计逐步消除数据冗余,从第一范式(1NF)、第二范式(2NF)、第三范式(3NF)到BC范式(BCNF),规范化程度越高,数据冗余越低,但查询复杂度可能随之增加。
5. 数据库设计方法
E-R(实体-联系)模型转关系模型的核心规则:
- 实体转换为独立的关系表,实体的属性转换为表的字段
- 实体之间的联系:一对一或一对多联系可以通过外键实现,多对多联系需要创建独立的关联表来存储两个实体的主键关联。
六、计算机网络与安全
计算机网络是将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的系统。
1. 网络体系结构
- OSI七层参考模型(从下到上):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。该模型是理论上的网络分层标准,定义了各层的功能和接口规范。
- TCP/IP四层实际模型(从下到上):网络接口层、网际层、传输层、应用层。是当前互联网实际采用的协议栈模型。
2. 核心网络协议与概念
- IP地址:
- IPv4:由32位二进制数组成,通常表示为点分十进制格式,地址总数约43亿个
- IPv6:由128位二进制数组成,采用冒分十六进制表示,解决了IPv4地址不足的问题
- 子网掩码:用于划分IP地址中的网络位和主机位,判断两个IP地址是否属于同一子网。
- 传输层协议对比:
特性 TCP(传输控制协议) UDP(用户数据报协议) 连接特性 面向连接,通信前需要三次握手建立连接 无连接,通信前无需建立连接 可靠性 可靠,通过确认、重传机制保证数据不丢失、不重复、有序到达 不可靠,不保证数据送达,也不保证顺序 传输方式 流式传输,数据无边界 数据报传输,每个数据报独立 适用场景 对数据准确性要求高的场景,如文件传输、网页浏览 对实时性要求高的场景,如视频会议、直播、游戏
3. 常见网络端口
- HTTP(超文本传输协议):默认端口80,用于未加密的网页访问
- HTTPS(安全超文本传输协议):默认端口443,用于加密的网页访问
- FTP(文件传输协议):默认端口21,用于文件上传下载
- DNS(域名系统):默认端口53,用于域名与IP地址的解析
- SMTP(简单邮件传输协议):默认端口25,用于发送邮件
- POP3(邮局协议第3版):默认端口110,用于接收邮件
4. 网络安全
- 网络安全四大核心目标:
- 机密性:保证数据不被未授权的用户访问
- 完整性:保证数据在传输和存储过程中不被篡改
- 可用性:保证合法用户能够正常访问系统和数据
- 不可否认性:保证用户无法否认其已经执行的操作
- 主要加密技术:
- 对称加密:加密和解密使用相同密钥,加密速度快,适合加密大量数据,常见算法有AES、DES
- 非对称加密:加密和解密使用不同的公钥和私钥,安全性高,加密速度慢,适合加密少量数据或密钥交换,常见算法有RSA、ECC
- 哈希算法:也称为摘要算法,将任意长度的数据转换为固定长度的摘要值,具有不可逆性,用于数据完整性校验,常见算法有MD5、SHA-256
- 防火墙技术:
- 包过滤防火墙:工作在网络层,根据IP地址、端口等信息过滤数据包
- 应用网关防火墙:也称为代理防火墙,工作在应用层,对特定应用协议进行过滤
- 状态检测防火墙:结合了包过滤和应用网关的优点,能够跟踪TCP连接状态,过滤效率和安全性更高
- 常见恶意程序:
- 病毒:具有自我复制能力,能够感染其他文件,破坏系统或数据
- 木马:伪装成正常软件,主要功能是实现远程控制,窃取用户信息,通常不具备自我复制能力
- 数字签名:基于非对称加密技术实现,能够防止数据被伪造和篡改,同时可以实现不可否认性,广泛应用于电子合同、身份认证等场景。
七、法律法规、标准化、项目管理
1. 知识产权
- 主要知识产权类型:
- 著作权:也称为版权,保护文学、艺术、科学作品的作者对其作品享有的权利
- 专利权:保护发明创造人或其权利受让人对特定的发明创造在一定期限内依法享有的独占实施权
- 商标权:保护商标注册人对其注册商标享有的专有使用权
- 商业秘密:保护不为公众所知悉、具有商业价值并经权利人采取相应保密措施的技术信息、经营信息等商业信息
- 著作权保护期限:自然人的作品,其著作权保护期为作者终生及其死亡后50年,截止于作者死亡后第50年的12月31日。
2. 标准化体系
- 标准层级:
- 国家标准(GB):由国家标准化行政主管部门制定,在全国范围内适用
- 行业标准:由行业主管部门制定,在某个行业范围内适用
- 地方标准:由地方标准化行政主管部门制定,在本行政区域内适用
- 企业标准:由企业自行制定,在企业内部适用
- 国际标准:由国际标准化组织(ISO)等国际组织制定,在全球范围内适用
3. 项目管理
软件项目管理的核心领域包括:
- 范围管理:定义和控制项目应该包含和不应该包含的内容
- 时间管理:确保项目按时完成,包括活动定义、排序、历时估算、进度计划制定和进度控制
- 成本管理:确保项目在批准的预算内完成,包括资源规划、成本估算、成本预算和成本控制
- 质量管理:确保项目满足预期的质量要求,包括质量规划、质量保证和质量控制
- 风险管理:识别、分析和应对项目风险,降低风险对项目的负面影响
- 沟通管理:确保项目信息及时、准确地生成、收集、分发、存储和最终处置
4. 软件维护
软件维护是软件生命周期中持续时间最长的阶段,主要分为四类:
- 改正性维护:修复软件交付后发现的错误和缺陷
- 适应性维护:为了适应新的硬件、操作系统或其他环境变化而进行的修改
- 完善性维护:为了增加新功能、优化性能、改进用户体验等进行的修改,是软件维护的主要类型
- 预防性维护:为了提高软件的可维护性和可靠性,为未来的进一步改进打下基础而进行的修改,通常也称为软件再工程。
