一、计算机基础知识
存储系统
计算机指令:
复杂指令,精简指令
指令的流水线周期计算方式
计算机系统体系结构:
flynn方法
根据指令流和数据流的并行程度对计算机体系结构进行分类:
冯.诺依曼结构 ,哈佛结构
根据指令和数据存储的处理方式对计算机体系结构进行分类
诺曼架构是最常见的计算机体系结构之一,最早由冯·诺依曼于1945年提出。这种架构中,指令和数据存储在同一个存储器中,使用同一条地址总线和数据总线来传输数据和指令。它的主要特点如下:
-
指令和数据共享同一个存储器。
-
一个CPU核心同时只能执行一条指令。
-
存储器是被动的,需要 CPU 主动去读写数据。
我们的电脑用的X86 CPU,都是诺曼架构的。诺曼架构指令与数据共用条存总线,地址空间就在一起。所以,程序是CPU指令的集合,它也要占一定的地址空间。
在x86架构中,保留内存的一部分通常被称为BIOS或UEFI区域。这个区域存储了系统启动时需要的一些信息和代码,例如系统配置、硬件检测程序和引导程序等。
所以,电脑安装的内存条条,并不是都由你的程序支配。除了操作系统占用外,还有一部分是保留区域,是给BIOS或UEFI区域所占用。
上图是windows的任务管理器,每个电脑都会有一定的保留内存区域。这是诺曼架构的特点决定的,并不是某个人的随意行为。
哈佛架构是一种分离式存储器体系结构,它将指令和数据存储在不同的内存中。CPU 通过不同的总线从指令内存和数据内存中读取指令和数据。这意味着 CPU 可以同时访问指令和数据内存,因此可以同时执行多条指令。它的主要特点如下:
-
指令和数据存储在不同的内存中。
-
一个CPU核心可以同时执行多条指令。
-
存储器是主动的,可以同时向 CPU 提供指令和数据。
哈佛架构多用于一些嵌入式系统或数字信号处理器等领域。我们普通人一般见不到它。
CPU组成
网络协议
tcp/IP协议族
DNS(Domain Name System), 也叫网域名称系统,
操作系统
进程管理,存储管理,文件管理,作业管理,设备管理
进程管理-进程和线程的区别
进程状态(就绪、运行、阻塞)
进程管理-死锁-银行家算法
存储管理-页式存储
计算逻辑地址转换成物理地址时,页内地址不变,只改变最高位的页号变为页帧号
存储管理-段式存储
存储管理-段页式存储
分区存储管理:
IO管理
特殊操作系统-微内核
文件管理
文件管理概述
计算机硬件
原码反码补码
正数 : 原码=反码=补码
负数: 反码= 原码除符号位外取反
补码= 反码 + 1
需求工程
需求开发、需求管理
软件需求工程可分为需求开发和需求管理两大工作,它是包括创建和维护软件需求文档所必须的一切活动的过程;
需求开发包括:需求获取、需求分析、编写需求规格说明书(需求定义)、需求验证 4哥阶段。
需求开发-需求分析
结构化分析Structured Analysis
DFD数据流图
DFD不属于UML的类型。 DFD(数据流图)和UML图都是用于需求建模的工具,但它们属于不同的分析方法。
DFD是结构化系统分析方法中的主要表达工具,用于表达系统的逻辑功能、数据在系统内部的逻辑流向和变换过程。
STD状态转换图不属于UML的类型。UML中有个状态图(SD)
STD状态转换图,即状态转换图,是一种用于表示系统行为模型的工具,它通过描述系统的状态和引起系统状态转换的事件来表示系统的行为。STD图主要关注系统的动态行为,描述了系统的状态转换过程,包括从一种状态转换到另一种状态的条件和动作1。
面向对象分析Object-Oriented Analysis
UML:
UML 作用域不仅支持OOA和OOD(面向对象设计)支持从需求分析开始开始的软件开发的全过程。
用例图
用例是一种描述系统需求的方法,使用用例的方法来描述系统需求的过程就是用例建模。
在用例图中,主要包括参与者、用例和通信关联三种元素。
用例之间的关系:
包含(公共行为),
扩展(发展分支,一个用例混合场景),
泛化(父子之间)
类图
类图之间的关系
关联关系:分为聚合关系(好聚好散) 和 组合关系
其它UML图
统一建模语言(UML)在软件研发过程中常用图接受:类图、用例图、时序图、状态图、活动图、流程图、顺序图_软件开发中经常用到的图(uml类图、用例图、er图、时序图)-CSDN博客
需求开发-需求变更流程
需求分类
系统设计
系统设计-架构设计风格
软件架构风格和设计模式的关系主要体现在它们都是用于指导软件设计和开发的工具,但关注点和适用范围不同
架构风格
架构风格:
数据流风格,调用/返回风格,独立构件风格,虚拟机风格,仓库风格
数调独虚仓
调用/返回风格:这种风格基于函数调用和返回机制,包括主程序/子程序、面向对象风格等。程序被划分为一系列的函数或对象,每个函数或对象负责完成特定的功能,并通过调用和返回机制进行交互
这五大架构风格又可以分类进行结构化设计 和面向对象设计
数据流风格属于结构化设计的一种。 数据流风格是软件架构风格的一种,强调系统内部不同部分之间的数据流动和处理过程。它侧重于描述系统中的数据处理流程,以及数据是如何从一个组件传递到另一个组件的12。
调用/返回风格架构主要包括三种具体的架构风格:主程序/子程序;面向对象风格;层次结构。
结构化设计
是一种面向数据流的设计方法,旨在确定软件的结构。它采用自顶向下、逐层分解的方法,建立系统的处理流程。结构化设计的目的在于使程序的结构尽可能反映要解决的问题的结构,通过控制系统的复杂性来提高软件的可读性、可理解性和可维护性4。
面向对象设计(ood)
面向对象设计的六大原则:
系统设计-设计模式
23中设计模式(5创建、7结构、11行为)_设计模式5加7加11-CSDN博客
项目管理
项目范围管理:创建WBS
项目进度管理(时间管理):
项目管理-进度管理-项目前导图
项目成本管理
系统安全
数字签名
数字信封
公钥基础体系PKI
系统安全-网络安全
应示会输网据物
入侵检测系统IDS
安全防范体系的层次划分:
知识产权相关
数据库:
数据库三级模式两级映射
外模式、概念模式、内模式
分布式数据库:
数据库设计(过程)
概念结构设计阶段
数据完整性约束
规范化理论-范式
范式介绍
这里也对1NF,2NF,3NF,BCNF做一个简明扼要的介绍。
1NF是指数据库表的每一列都是不可分割的基本数据项,即实体中的某个属性不能有多个值或者不能有重复的属性。
2NF要求属性完全依赖于主键,不能存在仅依赖主关键字一部分的属性。
3NF要求每一个非主属性既不部分依赖于码也不传递依赖于码。
BCNF消除了主属性对候选码的部分和传递函数依赖。
3NF分解一般分为两种:保持依赖和无损连接。
有损是指不能还原,无损:可以还原
无损连接分解:指将一个关系模式分解成若干关系模式后,通过自然连接等运算仍能还原到原来的关系模式