CPU功能:程序控制,操作控制,时间控制,数据处理。
CPU组成:运算器,控制器,寄存器组,内部总线。
地址寄存器和数据寄存器用于访问内存时的地址和数据暂存,指令寄存器用于存放正在执行的指令,程序计数器存放待执行指令的地址。
指令寄存器的位数取决于指令字长。
复杂指令集 CISC —— Complex Instruction Set Computing
精简指令集 RISC —— Reduced Instruction Set Computing
显式并行指令集 EPIC —— Explicitly Parallel Instruction Computing
超长指令字指令集 VLIW ——Very Long
SCSI,Small Computer System Interface,计算机和智能设备之间系统级接口独立处理器标准。
随机存储器(RAM random),可对任何存储单元存入或读取,访问任何资源时间相同。
顺序存储器(SAM sequentially),访问数据时间和存储位置相关,如磁带是典型例子。
直接存储器(DAM direct),介于随机和顺序之间,如磁盘,磁道寻址随机,磁道内顺序。
关联存储器,是一种不根据地址而是根据存储内容来进行存取的存储器,可以实现快速地查找快表。
DMA工作方式下,在主存与外设之间建立了直接的数据通路。一个完整的DMA传输过程必须经过DMA请求、DMA响应、DMA传输、DMA结束4个步骤。
请求:CPU对DMA控制器初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。
响应:当CPU执行完当前总线周期即可释放总线控制权。
传输:CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令。
结束:DMA控制器即释放总线控制权,并向I/O接口发出结束信号。
寄存器是中央处理器内的组成部份。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。
控制器的作用是控制整个计算机的各个部件有条不紊地工作。
内存包含的范围非常广,一般分为只读存储器(ROM)、随机存储器(RAM)和高速缓存存储器(cache)。
Cache :即高速缓冲存储器,是位于CPU与主内存间的一种容量较小但速度很高的存储器。
数据是通过内存-Cache-寄存器,Cache缓存则是为了弥补CPU与内存之间运算速度的差异而设置的的部件。
虚拟存储器有主存和辅存两级存储器组成,工作速度接近于主存,每位成本又与辅存接近,在整机形成多层次存储系统。
操作系统的设计目的是管理计算机系统中软硬件资源,为用户与计算机之间提供方便接口。
全相联映射:主存任意一块,映射到Cache任意一块。
直接相联映射:主存中一块只能映射到Cache指定块中。
组相联映射:各区中的某一块,只能映射到Cache同组号空间内。
尾数:决定数的有效精度。阶码:决定数的表示范围。
A类地址,0+网络7+主机24 1.0.0.0——127.255.255.255
B类地址,10+14网络+16主机 128.0.0.0——191.255.255.255
C类地址,110+21网络+8主机 192.0.0.0——223.255.255.255
D类地址,1110+28广播 224.0.0.0——239.255.255.255
E类地址,11110+27保留 240.0.0.0——247.255.255.255
隐含寻址——在指令中隐含着操作数的地址,优点有利于缩短指令字长,缺点增加硬件。
立即寻址——指令中包含操作数本身,不访问主存,指令执行时间短,缺点是长度限制。
直接寻址——指令中包含操作数地址,仅访问一次主存,缺点位数决定了寻址范围。
寄存器寻址——指令中直接给出操作数所在寄存器编号,速度快,支持向量/矩阵运算,贵。
编译过程:词法分析/语法分析/语义分析/中间代码生成/代码优化/目标代码生成
编译器可以不具备中间代码生成和代码优化,解释器参与运行控制,执行速度慢。
中间代码有:后缀是(逆波兰)/树型表示/三元表示/四元表示
编译过程中:
1. 为变量分配的存储单元所用的是逻辑地址,程序运行时映射为物理地址。
2. 对声明语句,主要是将所需要的信息正确地填入符号表中。
3. 对执行语句,则是需要翻译成中间代码或者目标代码。
有穷自动机(NFA或DFA)进行词法分析。
冗余附加技术是指为实现结构、信息和时间的冗余技术,包括程序、指令、数据、存放和调动它们的空间和通道等。
在屏蔽硬件的容错技术中,冗余附加技术包括关键程序和数据的冗余存储及调用,检测、表决、切换、重构、纠错和复算的实现。
在屏蔽软件的容错技术中,冗余备份程序的存储及调用,实现错误检测和错误恢复,实现容错软件所需要的固话程序。
信号量初始为1,则为互斥信号量,take(获取)一个互斥的信号量,以保证独享。
当磁盘块从缓冲区读入用户区完成时,才能进行下一磁盘块。
进程通信有,消息缓冲通信,管道通信,信箱通信,其中信箱通信是间接通信:
1. 若发送信件时信箱已满,则发送进程应被置等信箱状态,直到信箱有空时才被释放。
2. 若取信件时信箱中无信,则接收进程应被子置成等信件状态,直到有信件时才被释放。
人耳听到的声音频率在20Hz—20KHz之间。
色调:通常所说的颜色,亮度:指明暗程度,饱和度:色度指掺入白光的程度颜色或纯度
媒体方式:
1. 感觉媒体,能直接作用于人们的感觉器官,如文字、数据、声音、图形、图像等。
2. 表示媒体,传输感觉媒体而人为研究出来的媒体,如语言编码、电报码、条形码等。
3. 表现媒体,使电信号和感觉媒体之间产生转换用的媒体,如输入输出设备,喇叭等。
4. 存储媒体,用于存放表示媒体的媒体。如纸张、磁带、磁盘、光盘等。
5. 传输媒体,用于传输某种媒体的物理媒体。如双绞线、电缆、光纤等。
VCD采用MPEG1标准,DVD使用MPEG2标准,MPEG7是多媒体内容标准,MPEG21是框架标准。
CIF视频格式分辨率是352*288
音乐合成技术有调频(FM)和波形表(Wave Table),调频可合成电子音,波形表合成音乐更真实。
瀑布模型:对于前期需求不明确,而又很难短时间明确清楚的项目不建议用。
螺旋模型:将瀑布模型的多个阶段转化到多个迭代过程中,以减少项目的风险,含风险分析。
原型模型:启发式方法,可以快速的挖掘用户需求并达成需求理解上的一致。
喷泉模型:具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复。以用户需求为驱动力。
极限编程:沟通,简单性,反馈和勇气。
水晶法:每一个不同的项目都需要一套不同的策略、约定和方法。
并列争球法:每30天迭代称为一个冲刺,根据优先级选择先实现哪些功能。
自适应软件开发:使命作指导,客户价值关键点,过程中等待重要,变化被视为合理,时间迫使开发人员考虑关键需求,风险包含其中。
风险控制策略需要考虑三个问题,风险避免,风险监控,风险管理及意外事件计划。
其中风险避免是最有效的风险控制策略。
影响软件项目风险主要有三个
项目风险:预算、进度、人员、资源以及客户相关的问题。
技术风险:设计、实现、对接、测试等问题。
业务风险:建立一个无人想要的优秀产品、失去预算或人员承诺的风险。
成本估算方法
自顶向下:系统级别的重视,工作量小速度快,低级别技术性困难易忽视导致成本上升。
自底向上:估算较准确,易忽视任务之间关联性,估算往往偏低。
差别估算法:与已完成的类似项目比较,找不同,提高估算准确率,缺点是差别难明确。
专家估算法:一个或多个专家估算,精度取决于专家水平。
类推估算法:类推近似项目或类推近似底层实现。
算是估算法:依据理论和经验,解决专家和类推中存在的主观性和盲目性。
COCOMO估算模型:一种较精确的成本估算模型,静态模型。
COCOMOII:在COCOMO基础上,包括应用组装/早期设计阶段/体系结构阶段。
Putnam估算模型:一种动态的多变量模型。
CMMI是CMM模型的最新版,6个等级对应0-5
0 未完成级
1 已执行级
2 已管理级
3 已定义级
4 量化管理级
5 优化级
UP——统一过程定义:
初始阶段,里程碑是生命周期目标,专注项目活动初创。
精化阶段,里程碑是生命周期架构,需求分析和架构演进。
构建阶段,里程碑是初始运作功能,系统的构建和实现模型。
移交阶段,里程碑是产品发布,软件提交方面的工作,产生软件增量。
产生阶段,运行软件并监控软件持续使用。
软件能力成熟度
初始级:软件开发过程是临时的、有时甚至是混乱的。
可重复级:建立基本的项目管理过程来跟踪软件项目的成本、进度和功能。
已定义级:软件过程被文档化、标准化,并被集成到组织的标准软件过程之中。
已管理级:组织和项目为质量和过程绩效建立了量化目标,并以此作为管理过程的依据。
持续优化级:组织能够运用从过程、创意和技术中得到的定量反馈,进行持续改进。
七层模型:物理层/链路层/网络层/传输层/会话层/表示层/应用层
物理层:中继器/集线器
链路层:网桥/二层交换机
网络层:路由器/三层交换机
高层:网关/多层交换机
集线器:从一个端口接受信息,并向其他端口广播,对数据不进行任何解释/识别。集线器各个端口形成冲突域,只能一个端口法数据,两个时冲突。
交换机是一种多端口网桥,任何一对端口直接都可以传输数据,各个端口形成广播域。
ARP是网络层协议,实现IP地址与MAC地址之间的变换。
TCP是传输层协议,三次握手。
IPv4到IPv6过渡期:
两个IPv6节点可以使用隧道技术通过现有的IPv4网络进行通讯。
纯IPv6需要使用翻译技术与纯IPv4进行通讯。
网络的可用性是指用户可利用网络时间的百分比。
网络安全
TLS是传输层安全协议,SSL是安全套接层。
DMZ demilitarized zone为隔离区,也称非军事化区。解决安装防火墙后外部网络的访问用户不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区。如企业Web服务器、FTP服务器和论坛等,在此区。
软件工程:方法、工具和过程。
描述软件需求的方法:功能层次模型,数据流模型,控制流模型。
软件开发中8个原则:抽象、自顶向下逐层细化、信息隐秘和数据封装、模块化、局部化、确定性、一致性和标准化、完备性和可验证性
系统开发人员与项目管理人员沟通的文档:任务分解表、PERT图、甘特图、预算分配表
需求分析阶段:数据流图和数据描述的文档数据字典
设计阶段:E-R图和UML图
应用程序设计阶段:功能模块图
基于构件的软件开发,主要强调复用已有构建,新需求时需进行合格性检验和适应性修改。
UML的4种事物:
结构事物:包括类,接口,协作,用例,主动类,构件,制品,结点。
行为事物:动态部分,包括交互,状态机,活动,是动词。
分组事物:最重要的是组,由模型分解成的盒子,分组事物如包。
注释事物:解释部分,注解。
UML类五种关系由强到弱五种关系的耦合性:
依赖%3c关联%3c聚合%3c组合(部分随整体而消失)%3c泛化(继承)
智力活动规则和方法本身不被授予专利权,但进行智力活动的机器设备、装置或控制可以。
耦合度从低到高依次有7种耦合方式:
非直接耦合(独立运行)
数据耦合(用参数表传递简单数据)
标记耦合(传递数据结构或者一部分)
控制耦合(传递的信息包括控制模块的信息)
外部耦合(模块与软件之外的环境有关)
公共耦合(多个模块引用同一全局的数据区)
内容耦合(访问内部数据,代码重叠或者多个入口)
内聚度从低到高依次有7种内聚种类:
偶然内聚(模块完成的多个任务,任务之间的关系松散)
逻辑内聚(模块完成逻辑相关的一组任务)
瞬时内聚(模块的所有任务必须在同一时间间隔内执行)
过程内聚(模块的处理元素相关而且按照特定的次序执行)
通信内聚(模块的所有元素集中在一个数据结构区域上)
顺序内聚(模块的处理元素相关,必须顺序执行)
功能内聚(模块完成单一的功能,各个部分协调工作,而且不可缺少)
多态的分类
强制多态:编译程序通过语义操作,发生不同类型的数据进行混合运算,数据类型转换。
过载多态:同一个操作符﹑函数在不同上下文有不同的类型,大部分操作符都是。
包含多态:同样的操作可用于一个类型及其子类型。(注意是子类型,不是子类。)
参数多态:采用参数化模板,通过给出不同的类型参数,使得一个结构有多种类型。
结构化设计方法
自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学。
常用的图形描述工具有程序流程图、盒图(NS图)和问题分析图(PAD)。
适合数据处理领域项目,不适合大规模复杂项目。
面向对象的分析方法
通过将数据和逻辑结构抽象成为对象,运用对象属性和方法等来操作和处理业务数据和逻辑的系统分析方法。强调建立独立于系统实现的分析模型,不关心系统实现及测试问题。
面向对象的类设计相关原则
1. 开闭原则,一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。
2. 替换原则,子类应当可以替换父类并出现在父类能够出现的任何地方。
3. 依赖原则,在进行业务设计时,与特定业务有关的依赖关系应该尽量依赖接口和抽象类。
4. 接口分离原则,采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口要好。
软件架构风格分为5大类:
1. 数据流风格:包括批处理序列架构风格和管理/过滤器架构风格。
2. 调用/返回风格:包括主程序/子程序架构风格、数据抽象和面向对象架构风格及层次结构架构风格(Hierarchical Layers)。
3. 独立构件风格:包括进程通信架构风格和事件驱动架构风格。
4. 虚拟机风格:包括解释器架构风格和基于规则的系统架构风格。
5. 仓库风格:包括数据库架构风格和黑板架构风格,超文本系统等。
PERT图不能清晰地描述各任务之间的并行情况。
GRANT(甘特)图不能清晰地描述各任务之间依赖关系。
软件需求包括:
1. 功能需求,软件必须具备什么样的功能。
2. 非功能需求,产品必须具备的属性,如可靠性、性能、响应时间、扩展性等。
3. 设计约束,通常对解决方案的一些约束说明。
集成测试包括:
非渐增式集成,先进行单元测试,再将所有模块一起进行集成测试。
桩模块指底层模块依赖,驱动模块指上层调用模块。
渐增式集成:
自顶向下,写大量桩模块,早期实现软件完整功能,没有底层返回真实数据流。
自底向上,写大量驱动模块,可以并行集成,整体设计的错误发现较晚。
三明治,较少桩模块和驱动模块,两者结合,缺点是测试不充分。
不同软件测试依赖目标,来自于软件开发不同阶段:
单元测试——主要发现代码问题,即详细设计。
集成测试——验证系统模块,即系统和程序设计规格说明。
系统测试——验证系统是否符合描述的功能和非功能要求,即需求分析。
白盒测试也称为结构测试,技术包括:
逻辑覆盖,或判定覆盖,每个判定表达式至少执行一次真和假。
循环覆盖,使得每一判定语句中每个逻辑条件的各种可能值至少满足一次,复杂。
基本路径测试,可以覆盖到每一个路径。
语句覆盖(不常用),每条语句至少执行一次。
等价类划分是一种黑盒测试,每个测试用例至多覆盖一个无效等价类,即输入参数不能多个都是错误的。
软件维护包括
正确性:开发阶段发生而测试阶段尚未发现的错误。
适应性:使软件适应技术变化和管理需求变化的修改。
完善性:对已有系统增加在分析和设计阶段没有规定的功能。
预防性:适应未来软硬件变化,主动增加的预防性新功能。
动态测试包括静态和动态测试两种,动态测试是根据程序运行过程发现错误。
图的广度优先遍历使用队列,深度优先遍历使用栈实现。
AOV网,顶点表示活动,弧表示活动间的优先关系的有向图。
AOE网,边表示活动,是一个带权的有向无环图,一般估算工期,最长路径。
遍历的前中后是指的根节点所在遍历位置:
前序遍历:先遍历根结点,然后遍历左子树,最后遍历右子树。
中序遍历:先遍历左子树,然后遍历根结点,最后遍历右子树。
后序遍历:先遍历左子树,然后遍历右子树,最后遍历根节点。
先序遍历和后序遍历,不能得到中序遍历。
哈夫曼编码是一种一致性编码,也叫熵编码。
M阶B树定义:
1. 树中每个节点至多有M棵子树
2. 若根节点不是叶子节点,则至少有两颗子树。
3. 除根之外,所有非终端节点至少有M/2向上取整颗子树。
McCabe度量法 = 线数 – 点数 + 2
测试用例数 = if数 + 1
作者的署名权、修改权、保护作品完整权的保护期不受限制。
商标注册采取申请在先原则,同日申请采取协商原则,协商未果采取抽签原则。
翻译权是指以不同于原软件作品的一种程序语言转换。
原型化 结构化 Jackson 面向对象法
1nf 2nf 3nf bcnf
图像计算方式,DPI,图像分辨率
磁盘磁道计算公式:读写时间=寻道时间+旋转延迟+传输时间
UML中的几种关系,关联可以有多个由不通过角色标识的关联
关系模式,π,笛卡尔积
数据库设计4个阶段
KMP模式匹配算法,重点,next算法
常用单词
practical 英 [ˈpræktɪkl] 美 [ˈpræktɪkəl]
adj. 实践的,实际的; 可实现的,实用的; 注重实际的; 可用的
with values of 价值观
interacting 交互
investigate 调查,研究
at the cost of 以•••为代价
Leave a Reply