2012年4月18日星期三

67天通过软考(八)——计算机体系结构小结

一、整体


二、细节


1.阵列处理机属于SIMD
2.PCI负责CPU和外围设备的通信
3.两个异号数相加不会产生溢出,仅两个同号数相加时才有可能产生溢出
4.进位不等于溢出,不能简单地根据单个进位信号去判断有无溢出,而应当从几个相关信号之间的关联去进行溢出判断
5.计算机的运算速度:1秒钟执行多少条指令
6.一条指令包括两部分:操作码和操作数。操作码用来说明指令的功能及操作性质;操作数用来指明操作码实施操作的对象
7.控制器的组成部分:程序计数器PC、指令寄存器IR、指令译码器、时序部件、程序状态字寄存器PSW、中断机构
8.地址总线决定CPU能够使用多大容量的内存
  数据总线决定系统的运算速度

67天通过软考(七)——数据流图小结

一、数据流图思维导图


二、解题时应当注意的几个知识点


1.补充缺少的数据流,首先看是否“每个加工既有输入数据流又有输出数据流
2.面向数据结构设计的基本思想:
(1)以数据结构作为设计的基础
(2)根据输入/输出数据结构导出程序的结构
(3)适用于规模不大的数据处理系统
3.加工的名字通常是一个动词短语
4.找出数据流图中的错误入手点:
(1)外部实体和数据存储应该只能与加工进行交互,它们之间不能有数据流
(2)每个加工至少有一个输入流和一个输出流
(3)同一个加工可以有相同名称的多个输出流(或输入流),但是不能有相同名称的输出流和输入流
5.物理数据流图关注的是系统中的物理实体,可作为系统构造和实现的技术性蓝图
  逻辑数据流图强调参与者所做的事情,可作为系统分析的需求分析阶段的起点

2012年4月16日星期一

67天通过软考(六)——计算机网络小结

计算机网络的知识很杂,所以先用思维导图梳理出整体思路,其他杂七杂八的知识点再单列出来


一、整体


二、细节

1.100 Base-TX 5类UTP
  100 Base-FX 多模光纤
  100 Base-T4 3类UTP
2.给子网上的设备分配地址时,有两个地址是不能使用的,即二进制位全为“0”或“1”的主机地址,它们用来唯一识别两个特殊功能:子网的网路地址和广播地址
3.在传输层中,TCP和UDP标题包含端口号,它们可以唯一区分每个数据包包含哪些应用协议(例如HTTP、FTP)
  端口号和设备IP地址的组合被称为“插口”(socket)
  任何TCP/IP实现所提供的服务都用知名的1~1023之间的端口号
4.代理服务器的作用:4个方面
(1)远程信息本地缓存功能
(2)防火墙
(3)访问一些不能直接访问的网站
(4)安全性得到提高(目的网站只能知道你来自于代理服务器,而无法知道真实IP)
但是不能进行信息加密
5.路由器可以隔离ARP广播帧
6.与多模光纤相比,单模光纤具有较高的传输率、较长的传输距离、较高的成本
7.CDMA系统中使用的多路复用技术是码分多址
8.ping只能测试本机能否跟外部指定主机连接
  tracert(跟踪路由)可以查看IP数据包所走路径的连通情况,能查出路径上哪段路由出现了连通故障
  netstat查看本机各端口的连接情况
  arp可以查看和修改本地主机上的arp表项,常用于查看arp缓存及解决IP地址解释故障
9.ARP协议的作用是由IP地址查找对应的MAC地址(这也是所谓的地址解析)
  MAC(Media Access Control)一个网卡会有一个全球唯一固定的MAC地址,但可对应多个IP地址
10.可变长子网掩码(VLSM)如192.168.125.0/18表示前18位为网络号  
11.同时连到Internet上的机器只有很少的几台,因此可以采用临时分配IP地址的方法来共享一组IP地址动态主机配置协议(DHCP)就是为了这个目的而出台的
   客户机采用最先到达的DHCP服务器分配的IP地址
12.HTTPS使用端口443,HTTP使用端口80

2012年4月6日星期五

67天通过软考(五)——面向对象小结


一、OO

1.当派生类以protected方式继承基类时,派生类同样能继承到基类的public成员和protected成员,是基类中的public成员在派生类中将变为protected成员
 当派生类以private方式继承基类时,派生类同样能继承到基类的public成员和protected成员,但是基类中的public成员在派生类中将变为private成员
2.注意:某个类的对象只能访问该类的public成员(类内部的成员才能大小通吃
3.静态方法为类所有,可以通过对象使用,也可以通过类来使用
  但提倡通过类名来使用,因为静态方法只要定义了类,不必建立类的实例就可使用
  静态方法只能用类的静态成员

4.一旦定义了一个类(不一定要实例化对象),该类的所有静态成员就载入内存
  静态成员存在于内存,非静态成员需要实例化才会分配内存
  ∴静态成员不能访问非静态的成员,但非静态成员可以直接访问静态成员

5.面向对象分析的步骤
(1)确定问题域
(2)确定类和对象
(3)确定结构
(4)确定主题
(5)确定属性
(6)确定方法

二、设计模式

1.一个设计模式有4个基本要素:模式名称、模式的使用场合、解决方案、效果
2.单例模式的意图就是保证一个类仅有一个实例,并提供一个访问它的全局访问点
3.视图和控制器都依赖于模型,但是模型既不依赖于视图,也不依赖于控制器(MVC)
4.设计模式的第一优点是方案出错的可能性很小;第二是适应需求变化
5.职责链设计模式的意图就是使多个对象都有机会处理请求,从而避免请求的发送者与接受者之间的耦合关系;职责链的优势在于其适应性强,能应对流程的变化,而不是效率高
6.Bridge模式将抽象部分与它的实现部分分离,使他们都可以独立地变化

三、UML

1.聚合只是概念性的;组合则具有很强的归属性,而且整体和部分的对象生命周期是一致的
  组合是一种要求更严格的聚合形式
2.UML中关联的多重度(重复度)是指某个类的一个实例可以与另一个类的多少个实例相关联
3.依赖关系
  泛化关系
  聚集关系
  组合关系
它们的图示
4.UML的9种图

5.参与者用于表示使用系统的对象,可以是一个物体或另一个系统
  用例是用户期望系统具备的动作
  参与者可以与多个用例相关,而用例也可以与多个参与者相关
  所以参与者与用例之间可以具有关联关系



2012年4月3日星期二

67天通过软考(四)——软件工程小结


一、各种图

1.Gantt图(甘特图):使用水平线段表示任务的工作阶段,线段的起点和终点分别对应着任务的开工时间和完成时间,线段的长度表示完成任务所需的时间;Gantt图只能表示任务之间的并行与串行的关系,不能直观表示任务之间相互依赖的制约关系,也不能表示哪些任务是关键字任务
2.在绘制数据流图时,应遵循父图与子图平衡的原则,包括两方面的内容:
(1)父图的输入输出数据流与子图的输入输出数据流一致,如果加工A有输入输出数据流,则其父图也应该有对应的数据流
(2)对于一个加工,应有输入数据流和输出数据流,两者缺一不可
3.各种维护比例图p128

二、有关开发

1.7种耦合(从低到高)
非直接耦合:没有直接联系,互相不依赖对方
数据耦合:借助参数表传递简单数据
标记耦合:一个数据结构的一部分借助于模块接口被传递
控制耦合:模块间传递的信息中包含用于控制模块内部逻辑的信息
外部耦合:与软件以外的环境有关
公共耦合:多个模块引用同一个全局数据区
内容耦合:一个模块访问另一个模块的内部数据
  一个模块不通过正常入口转到另一模块的内部
    两个模块有一部分程序代码重叠
  一个模块有多个入口
2.喷泉模型主要用于描述面向对象的开发过程,最核心的特点是迭代
3.原型开发方法很适合需求不明确的软件开发
4.等价类是指某个输入域的子集合
  有效等价类:对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明书中所规定的功能和特性
  无效等价类:与有效等价类的定义恰好相反
5.用测试驱动开发不是XP强调的准则

三、有关工程

1.项目风险:项目执行期间的风险
风险因素有2类:(1)物质风险因素(硬件风险因素)
               (2)人为风险因素(与人们的心理和行为有关的一种无形因素)
2.FTR(Formal Technical Review正式的技术评审)对评审中出现的问题要记录在案,不要过多地讨论解决方案,把问题留给软件生产者来解决;要限制参与人数
3.开发成本估算模型
(1)IBM模型:静态单变量模型
(2)Putnam(普特南)模型:动态多变量模型
(3)COCOMO模型:基本(静态单变量模型)、中间(静态多变量模型)、详细
4.ISO/IEC9126,一个软件的可靠性的子特性包括:成熟性、容错性、易恢复性
      易分析性属于软件的可维护性
5.软件容错性的提高,有利于软件可靠性的提高
6.衡量程序可维护性的因素包括可理解性、可测试性、可修改性
7.CMM(软件能力成熟度模型):初始级、可重复级、定义级、管理级、优化级
8.CMM2的核心就是重复利用
9.UP(统一过程)在精化阶段要求创建一个或多个可执行构架原型



2012年4月2日星期一

67天通过软考(三)——操作系统小结

一、进程原理

1.进程分为三种状态:执行、阻塞、就绪 如下图

(1)3表示就绪进程被调度
(2)2表示运行进程的时间片到了
(3)1表示运行进程执行了P操作,进程进入了阻塞状态
(4)4表示被阻塞进程等待的事件发生了
从运行态转换为就绪态,同时,需要调入另外一个处于就绪态的进程,使之转换为运行态
2.同步是指进程间共同完成一项任务时直接发生相互作用的关系,即具有伙伴关系的进程在执行时间次序上必须遵循的规律。通俗一点说就是要保证步伐一致,不能差的太远;
  互斥是指在使用临界资源的时候,多个进程不能同时使用临界资源。互斥信号量的初值一般设为1,表示只有1个资源可用
3.P-V+
4.假设信号量为Sem
P的主要操作是
(1)Sem减1
(2)若Sem减1后>=0,则该进程继续执行
(3)否则该进程被阻塞
V的主要操作是
(1)Sem加1
(2)若Sem加1后>0,则该进程继续执行
(3)否则唤醒一阻塞在该信号量上的进程,然后再返回原进程继续执行或转进程调度
Sem<0时,其绝对值表示被阻塞的进程数目
Sem>0时,表示可用的临界资源数
5.使用PV操作实现进程互斥时应注意:
(1)PV必须成对出现
(2)PV操作应分别紧靠临界区的头尾部
6.有2个进程,所以只需要用两个同步信号量,就可以让同步和互斥

二、文件原理

1.UNIX中,把输入输出设备看做是特殊文件(设备文件)
2.通过“打开(Open)”文件操作建立起文件和用户之间的联系,目的是把文件的控制管理信息从辅存读到内存
3.若文件系统容许不同用户的文件可以具有相同的文件名,则应采用多级目录来实现

三、其他
1.对于驱动程序来说,上层软件是与它无关的,因为它们之间有OS
2.shell中常用系统变量
$# 命令行参数的个数
$0 当前程序的名称
$$ 当前程序的PID
$? 前一个命令或函数的返回码
$* 以“参数1 参数2...”形式保存所有参数
$@ 以“参数1”“参数2”...形式保存所有参数

2012年3月28日星期三

67天通过软考(二)——程序语言小结


一、有限自动机(FA)


1.在正规式中,“*”号表示任意自我连接 (eg:a*表示n>=0个a (ab)*表示n>=0个ab相连ababab...)
2.将有限自动机M转化为与其等价的正规式R的步骤
(1)在M的转换图中加上2个状态x和y,从x用标有e的弧连接到M的所有初态节点,从M的所有终态节点用标有e的弧连接到y,从而形成一个新的有穷自动机M'。它只有一个初态x和一个终态y,显然L(M)=L(M'),L(M)表示M所能接受的字符串集
(2)逐步消去所有节点,直到只剩下x和y为止,在消节过程中逐步用正规式来标记弧,消节的规则见下图

3.(R1|R2)*=(R1*R2*)*
4.正规式不能用于描述配对或嵌套的结构
  正规式只能表示给定结构的固定次数的重复或者没有给定次数的重复
  正规式描述的每种结构都可以用上下文无关文法描述,但反之则不然
  每个正规式都有一个与其等价的NFA
5.若某DFA与NFA等价,则它们可识别的记号相同
6.NFA与DFA的区别(1)f是上的映像。对于S中的一个给定状态及输入符号,返回一个状态的集合,即当前状态的后继状态不一定是唯一确定的
(2)有向弧上的标记可以是

二、文法


1.文法的定义
   描述语言语法结构的形式规则称为文法。文法G是一个四元组,可表示为,其中是一个非空有限集,其每个元素称为一个终结符;是一个非空有限集,其每个元素称为非终结符。不含公共元素。令,称V为文法G的词汇表,V中的符号称为文法符号,包括终结符和非终结符。,称为开始符号,它至少要在一条产生式中作为左部出现。P是产生式的有限集合,每个产生式是形如“”的规则,其中称为产生式的左部,中至少含有一个非终结符;称为产生式的右部,且
正则闭包+:
闭包*:
2.文法分类(1)短语文法(0型文法)
(2)上下文相关文法(1型文法)
(3)上下文无关文法(3型文法)
(4)正规(则)文法(3型文法)
上面四种文法有包含的关系,1型文法是0型文法的一个子集,2型文法是1型文法的一个子集,3型文法是2型文法的一个子集
3.上下文无关方法G所描述的语言是从S出发推导出的仅包含T中符号的串的集合

三、其他


1.语句用于描述程序中得运算步骤、控制结构及数据传输
  语法是书写规则
  语义表示含义
  语用是关于程序与使用者之间的关系
2.为什么叫共用体呢,因为不同的数据项在内存中占用同一段存储单元,且存储单元的大小以最大空间的变量为准
3.将高级语言编译后产生的仍然是一种程序(低级语言程序,如汇编),只有当程序调入内存执行时,逻辑地址才会转换成物理地址