目录
第一章 计算机系统
1.1 计算机概述
1.计算机基本结构的设计采用冯·诺依曼提出的思想和原理,冯·诺依曼思想中指出计算机硬件由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成。
2.计算机系统由硬件系统和软件系统组成。
3.冯·诺依曼提出存储程序控制的计算机结构。
4.硬件系统由主机和外设组成,主机包括中央处理器(运算器和控制器)和主存储器〈内存储器),外设包括外存储器、输入设备、输出设备。
1.2 计算机硬件系统
5.要使用外存储器中的信息,应先将其调入内存储器。
6.I/O方式中使计算机系统并行工作程度最高的是通道。
7.CPU芯片内部连接各元件的总线是内部总线。
8.机器周期的同步标准是CPU访问存储器一次所需要的时间。
9.主存、磁盘、磁带、缓存(Cache)中访问速度最快的是存储器是缓存(Cache)。
10.CPU不能直接访问计算机内存和各种输入输出设备,需要通过总线来访问。
11.用来解决CPU和主存之间速度不匹配问题的方法是在主存储器和CPU之间增加高速缓冲存储器。
12.寻找方式被分为指令寻址和数据寻址两大类。其中常见的数据寻址有立即寻址(指令的地址码部分直接给出操作数)、直接寻址(指令的地址码部分给出操作数在存储器中的地址)、隐含寻址(操作数的地址隐含在指令的操作码或者某个寄存器中)等。
13.在执行指令过程中,CPU不经过总线能直接访问寄存器。
14.I/O方式中的程序查询方式是指当CPU需要执行IO操作时,程序将主动查询I/O设备是否准备好。
1.3 数据的内部表示形式
15.根据符号位和数值位的编码方法不同,机器数有原码、补码和反码3种表示。整数在计算机中存储和运算通常采用的格式是补码。
16.带符号的定点数中,正数的原码、反码、补码均相同;负数的反码是对该数的原码除符号位外各位取反;负数的补码是在该数的反码的最后一位上加1;不管是正数还是负数,其补码的符号位取反即是偏移码。
1.4 操作系统
17.当一个进程在运行过程中释放了系统资源后要调用唤醒进程原语。
18.进程调度仅负责对CPU进行分配。
19.实时操作系统是指当外界事件或数据产生时,系统能够接收并以足够快的速度予以处理和响应,能够控制所有任务协调一致运行。目前有3种典型的实时系统:过程控制系统(如工业生产自动控制、航空器飞行控制和航天器发射控制)、信息查询系统(如仓库管理系统、图书资料查询系统)和事务处理系统(如飞机或铁路订票系统、银行管理系统)。
20.允许多个联机用户同时使用一台计算机系统进行计算的操作系统称为分时操作系统。
21.虚拟存储器是对主存的扩展。
22.分布式计算机系统是指由多台分散的计算机经网络互连而成的系统,系统的处理和控制功能分布在各个计算机上。
23.请求分页式存储管理、请求分段式存储管理和请求段页式存储管理技术均采用虚拟存储管理技术。
24.顺序程序具有顺序性、封闭性和可再现性的特点。
25.进程是程序的执行过程。
26.理论上计算机虚拟内存最大容量取决于计算机地址位数。
27.进程是可以并发执行的程序的执行过程,它具有动态性、共享性、独立性、制约性和并发性5种属性
28.如果一个进程在运行时因某种原因暂停,该进程将脱离运行状态进入阻塞状态。
29.文件是指一组带标识(标识即为文件名)的具有完整逻辑意义的相关信息的集合。文件属性包括文件类型、文件名称、文件长度、文件的物理地址、文件的建立时间等。
30.单CPU的计算机允许多个进程并发执行。
31.常用的连续存储管理技术有固定分区存储管理和可变分区存储管理。
32.进程一旦创建,即进入就绪状态。
33.进程在运行状态下,如果时间片用完,即进入就绪状态。
34.程序和计算机执行程序的活动不再——对应。
35.采用虚拟存储管理技术的主要优点是可为用户提供比物理内存大的多的逻辑地址空间。
36.动态地址重定位不要求程序装入固定的内存空间,且允许程序在内存中再次移动位置。
37.当处于运行状态的进程申请新资源而又不能立即被满足时即进入阻塞状态。
第二章 数据结构与算法
2.1 算法
38.算法时间复杂度是指执行算法所需要的计算工作量,算法的计算工作量是用算法所执行的基本运算次数。
39.算法的有穷性是指算法中的操作步骤为有限个,且每个步骤都能在有限时间内完成,即算法能在有限的时间内运行结束。
2.2 数据结构的基本概念
41.没有根结点或没有叶子结点的数据结构一定是非线性结构。
42.非空线性结构应满足两个条件:①有且只有一个根结点;②每个结点最多有一个前驱,也最多有一个后继。
43.具有两个根结点的数据结构一定是非线性结构。
2.3 线性表及顺序存储结构
44.采用顺序存储表示的线性表称为顺序表。顺序表具有两个基本特征:①表中所有元素所占的存储空间是连续的,每一个数据元素所占字节相同;②表中各数据元素在存储空间中是按逻辑顺序依次存放的。
45.所有的线性结构都可以采用顺序存储结构。
2.4 栈和队列
46.循环队列是队列的一种顺序存储结构。
47.在栈中,栈顶指针的动态变化决定栈中元素的个数。
48.链式存储结构中,无论是循环链表还是线性链表,插入和删除元素时,只需要改变相应位置的结点指针即可,头指针和尾指针无法确定链表的长度。
2.5 线性链表
49.在循环链表中,只要指出表中任何一个结点的位置,就可以从它出发不重复地访问到表中其他所有的结点。
50.双向链表从任何一个结点位置出发就可以访问到表中其他所有结点,但会出现重复访问。
51.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的。
52.结点中具有多个指针域的链表称为多重链表。
53.带链栈的栈底指针在操作过程中是有可能改变的,随栈的操作而动态变化。
54.循环链表中至少有一个结点。
2.6 树与二叉树
55.二叉树遍历可以分为3种:前序遍历(根左右)、中序遍历(左根右)、后序遍历(左右根)
56.n=n0+n1+n2;n=n1+2*n2;n0=n2+1(n:总结点数,n0:度为0的结点,n1:度为1的结点,n2:度为2的结点)
2.7 查找与排序
57.对长度为n的线性表进行快速排序 / 简单选择排序 / 冒泡排序,最坏情况下需要比较的次数为n(n-1)/2。
58.对于长度为n的有序线性表,在最坏情况下,二分查找需要比较log₂n次。
59.在快速排序中,每经过一次数据交换 (或移动)后能消除多个逆序,也可能会产生新的逆序。
60.最坏情况下时间复杂度:有序表的二分查找为O(log₂n),寻找最大项为O(n-1),顺序查找为O(n),堆排序为O(nlog₂n)。
61.在希尔排序中,每经过一次数据交换后能消除多个逆序。
62.快速排序法适用于顺序存储的线性表。
第三章 程序设计基础
3.1 程序设计方法与风格
63.良好的程序设计风格可以使程序结构清晰合理,程序代码便于维护,要应注意和考虑的因素有:①源程序要文档化;②注意数据说明的风格,以便使程序中的数据说明更易于理解和维护; ③语句构造应简单直接,不应该为提高效率而把语句复杂化,避免不必要的转移; ④对所有的输入数据都要检验数据的合法性、合理性。
3.2 结构化程序设计
64.结构化程序设计的目的:通过设计结构良好的程序,以程序静态的良好的结构保证程序动态执行的正确性,使程序易理解、易调试、易维护,以提高软件开发的效率,减少出错率,因此结构化程序强调程序的易读性。
65.结构化程序设计方法的重要原则是自项向下、逐步求精、模块化及限制使用goto语句。
66.结构化程序的基本结构有:顺序结构、选择(分支)结构和重复(循环)结构。
3.3 面向对象的程序设计
67.对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一 体。一个对象通常可由对象名(标识)、属性和操作三部分组成。
68.对象的基本特点:标识唯一性、 分类性、多态性、封装性、模块独立性好。
第四章 软件工程基础
4.1 软件工程基本概念
69.软件生命周期可分为定义阶段、开发阶段和维护阶段,定义阶段包括问题定义、可行性研究和需求分析;开发阶段包括概要设计、详细设计、实现和测试;维护阶段包括使用和维护。
70.软件是程序、数据及相关文档的集合。
71.软件工程包含方法、工具和过程3个要素。
4.2 结构化分析方法
72.需求分析的任务是发现需求、求精、建模和定义需求的过程,确定软件系统的功能。
73.数据字典的作用是对数据流图(DFD图)中出现的被命名的图形元素的确切解释。
74.数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。从数据传递和加工的角度,来刻画数据流从输入到输出的移动变化过程。系统的数据建模是系统设计阶段的工作。
75.数据流图(DFD)中的有向箭头(→)表示数据流。
76.数据流图应遵循以下构造规则和注意事项:①对加工处理建立唯一、 层次性的编号,且每个加工处理通常要求既有输入又有输出。②数据存储之间不应有数据流。③数据流图的一致性。即输入输出、读写的对应。④父图、子图关系与平衡规则。相邻两层DFD之间具有父子关系,子图代表了父图中某个加式的详细描述,父图表示了子图间的接口。子图个数不大于父图中的处理个数。所有子图的输入输出数据流和父图中相应处理的输入输出数据流必须一致。
77.软件需求规格说明书要涵盖用户对系统的所有需求,包括功能要求、性能要求、接口要求、设计约束等。没有验证需求。
78.需求分析方法可以分为结构化分析方法和面向对象分析方法两大类。结构化分析方法的常用工具:数据流图(DFD图)、数据字典(DD)、判定表、判定树。
4.3 结构化设计方法
79.常用的软件设计工具:系统结构图、程序流程图、N-S图、PAD图、HIPO图、判定表、PDL。
80.在详细设计阶段常用的工具:程序流程图、N-S图、PAD图、PDL等。
81.详细设计的任务是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。
82.扇入指调用一个给定模块的模块个数。扇出指由一个模块直接调用的其他模块个数。
83.结构图是描述软件系统结构的图形工具。
84.深度等于控制层数。
85.程序流程图中带有箭头的线段表示控制流。
86.软件设计中模块划分应遵循的准则是高内聚、低耦合。
87.概要设计的任务为:①设计软件系统结构;②数据结构及数据库设计;③编写概要设计文档;④概要设计文档评审。
88.软件设计准则:①提高模块独立性; ②模块规模应该适中; ③深度、宽度、扇出和扇入都应适当;④模块的作用域应该在控制域之内; ⑤降低模块之间接口的复杂程度; ⑥设计单入口和单出口的模块,不要使模块间出现内容耦合; ⑦模块功能应该可以预测。
4.4 软件的测试
89.集成测试是为了发现概要设计的错误。
90.以程序内部的逻辑结构为基础的测试技术是白盒测试。
91.单元测试也称模块测试,模块是软件设计的最小单位,单元测试是对模块进行正确性检验的测试,以期尽早发现各模块内部可能存在的各种错误。
92.单元测试可以采用静态测试或者动态测试。动态测试通常以白盒测试法为主,测试其结构;以黑盒测试法为辅,测试其功能。
93.单元测试主要针对模块的5个基本特征进行:模块接口测试,局部数据结构测试,重要的执行路径的检查,出错处理测试,影响以上各点及其他相关点的边界条件测试。
94.软件集成测试不采用迭代式组装。
95.软件测试的实施过程主要有4个步骤:单元测试、集成测试、确认测试(验收测试)和系统测试。
96.软件测试的目的是发现错误而执行程序的过程,只发现错误而不改正错误。程序调试的任务是诊断和改正程序中的错误。
97.黑盒测试方法和技术有等价类划分法、边界值分析法、错误推测法和因果图等。
98.白盒测试的主要技术有逻辑覆盖测试、基本路径测试,其中逻辑覆盖测试包括语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断条件覆盖。
99.基本路径测试是属于白盒测试方法且是动态测试。
100.白盒测试根据程序的内部逻辑来设计测试用例,检查程序中的逻辑通路是否都按预定的要求正确地工作。
101.黑盒测试是在软件接口处进行,检查和验证程序的功能是否符合需求规格说明书的功能说明。
102.确认测试的任务是检查软件的功能、性能及其他特征是否与用户的需求一致,它是以需求规格说明书作为依据的测试。
第五章 数据库设计基础
5.1 数据库系统的基本概念
103. 数据库系统中,存储在计算机内有结构的数据集合称为数据库。
104.数据库管理阶段的数据库系统的基本特点:数据集成性、数据的共享性高,冗余性低、数据独立性高、数据统一管理与控制。
105.概念模式也称为模式,是数据库系统中全局数据逻辑结构的描述,全体用户的公共数据视图。
106.外模式也称子模式或者用户模式,是用户的数据视图,也就是用户所能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。
107.内模式又称物理模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
108.数据的一致性是指在系统中同一数据在不同位置的出现应保持相同的值,而不是数据类型的一致。
109.数据库管理系统(DBMS)是数据库系统的核心,它位于用户与操作系统之间,从软件分类的角度来说属于系统软件。
110.数据库系统由数据库、数据库管理系统、数据库管理员、硬件平台和软件平台组成。这五个部分构成了一个以数据库为核心的完整的运行实体,称为数据库系统。
111.数据库系统可以减少数据冗余和增强数据独立性,而文件系统不能。
112.数据库系统和文件系统能够管理各种类型的文件。
113.数据定义语言负责数据的模式定义与数据的物理存取构建。
114.数据操纵语言负责数据的操纵,包括增、删、查、改等操作。
115.数据控制语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
116.数据库领域公认的标准结构是三级模式结构,它包括外模式、概念模式、内模式,有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。用户级对应外模式,概念级对应概念模式,存储级对应内模式,使不同级别的用户对数据库形成不同的视图。
117.一个数据库可以有多个外模式(因为用户可有多个),但概念模式和内模式只能有一个。
118.在数据库中,产生数据不一致的根本原因是数据冗余。
5.2 数据模型
119.概念数据模型,简称概念模型,着重于对客观世界复杂事物的描述及对它们内在联系的刻画,与DBMS无关。其中最著名的数据模型有实体-联系模型、面向对象模型。
120.逻辑数据模型,也称逻辑模型或数据模型,着重于在数据库系统一级的实现。成熟并大量使用的逻辑模型有层次模型、网状模型、关系模型和面向对象模型等。
121.物理数据模型,也称物理模型,是面向计算机物理表示的模型,此模型给出了数据模型在计算机上物理结构的表示。
122.数据模型的三要素:数据结构、数据操作、数据约束。
123.关系数据模型由关系的数据结构、关系的数据操纵以及关系的完整性约束这三个部分组成。
124.用树形结构表示实体及其之间联系的模型称为层次模型。用网状结构表示实体及其之间联系的模型称为网状模型。关系模型采用二维表来表示关系。
125.在E-R图中,用矩形表示实体集,用椭圆形表示属性,用菱形表示联系。
126.在满足实体完整性约束的条件下,一个关系中应该有一个或多个候选关键字。
5.3 关系代数
127.一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的属性。
128.是选择(行),
是投影(列),
是连接。
5.4 数据库的设计与管理
129. 优化数据库系统查询性能的索引设计属于数据库设计的物理设计。
130.关系模式进行规范化的目的是使关系结构更加合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新等操作。
131.满足最低要求的叫第一范式,简称1NF。 在满足第一范式的基础上, 进一步满足更多要求规范则是第二范式。然后在满足第二范式的基础上,还可以再满足第三范式,以此类推。
第一范式(1NF) : 主属性(主键)不为空且不重复,字段不可再分。
第二范式(2NF) : 如果关系模式是第一范式,每个非主属性都没有对主键的部分依赖。
第三范式(3NF) : 如果关系模式是第二范式,没有非主属性对主键的传递依赖。
BCNF范式 : 所有属性都不传递依赖于关系的任何候选键。
132.需求分析的方法主要有结构化分析方法和面向对象分析方法。结构化分析方法采用自项向下,逐步分解的方式分析系统,常用工具是数据流图和数据字典。
133.设X,Y是关系R的两个属性集合,若X→Y,但Y不完全函数依赖于X,则称Y对X部分依赖。
134.在关系模式中,如果Y→X, X→A,且X不决定Y和A不属于X,那么Y→A是传递依赖。