pv操作、信号量的题中:
信号量S实现互斥访问值为1,信号量S实现同步访问值为0,信号量S表示资源值为资源的个数。
加锁申请信号量P(s),申请后一定要释放是V(s)。
分布式数据库中包括:分片透明、复制透明、位置透明、逻辑透明
分片透明:程序或用户无需知道逻辑上访问的表是怎么存储的;
复制透明:用户不需要知道数据是复制到哪个结点上,如何复制;
位置透明:用户无需知道数据存放的位置;
逻辑透明:句柄数据模型透明,用户或程序无需知道局部场地使用哪种模型;
板级支持包(BSP):在嵌入式系统中存在,对硬件的抽象层实现,介于主板硬件和操作系统之间的一层,给上层提供统一的接口,屏蔽硬件底层间的差异,提供操作系统驱动及硬件驱动。
RAID 5:独立冗余磁盘阵列5,至少要3块硬盘,其中两块要存储数据,第三快存储另外2块的校验信息,所以磁盘利用率为:(n-1)/n,如果三块磁盘大小不一样,就以最小的磁盘容量进行计算。
面向对象架构风格减少功能调用层次提高性能,引入管理层是不够的;
评价程序评价机器性能:
小型基准程序:代码行数比较少,通常是测试算法;
真实程序:所有程序全部测评,准确性最高;
核心程序:真实程序中具有代表性的代码;
合成基准程序:人为合成基准程序,准确性最低。
统一过程(UP/RUP)具有三个显著特征:用例驱动、以体系结构为中心、迭代和增量。
开闭原则:对扩展开放,对修改关闭。
里氏替换原则:在使用父类的地方,都能使用其子类,不需要进行修改(反过来不成立)。
最少知识:一个软件实体应该尽可能少的与其他实体相互作用。
依赖倒置:抽线不依赖于细节,细节依赖于抽象。针对接口编程,不针对实现编程。
单元测试:模块的功能,性能等是否达到标准(白盒测试, 依据:软件的详细设计);
集成测试:模块与模块之间,软件与集成之间的(黑盒测试,依据:软件的概要设计);
系统测试:在真实系统中,验证配置项是否和系统能成功连接,达到规定要求(依据:用户需求,开发合同);
回归测试:测试软件变更后的正确性;
架构风格:结构和语义特性,强调对架构设计的重用。
ADL(建构描述语言):组建、组建接口、连接件、架构配置。
ABSD(基于架构的软件开发)架构驱动的:商业、质量、功能需求。
ABSD描述软件架构:视角、视图;
ABSD描述需求:用例,质量场景;
ABSD三个基础:功能分解、架构风格的选择、软件模板的使用;
数据流风格
批处理风格:每个处理步骤是一个单独的程序;每一步必须在前一步结束后才能开始;数据必须是完整的,以整体的方式传递。
管道过滤器风格:每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。
调用/返回风格
主程序/子程序风格:程序体系结构是较简单的结构,其组件是主程序和子程序,连接件是调用返回机制。
面向对象风格:面向对象体系结构风格的组件是类和对象。连接件是对象之间通过功能与函数调用实现交互。对象是通过函数和过程的调用-返回机制来交互的,而类是
通过定义对象,再采用调用-返回机制进行交互。
层次风格:看图。
独立构件风格
进程通信风格:通过进程间通信独立组建的风格。
事件驱动系统风格:事件驱动架构风格。构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中其他构件中的过程在一个或多个事件中注册,当一个事件
被触发,系统自动调用在这个事件中注册的所有过程。一个事件的触发就导致了另一个模块中过程的调用。
虚拟机风格
解释器风格:一个解释器通常包括完成解释工作的解释引擎,一个包含将被解释的代码的存储区,一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被
解释执行的进度的数据结构。将高抽象层次的程序翻译为低抽象层次所能理解的指令,以消除程序语言与硬件之间存在的差异。
基于规则的系统风格:基于规则的系统包括规则集、规则解释器、规则/数据选择器及工作内存。
仓库风格
数据库系统风格:数据库架构是库风格最常见的形式。构件主要有两大类,一个是中央共享数据源,保存当前系统的数据状态;另一个是多个独立处理元素,处理元素
对数据元素进行操作。
黑板系统风格:黑板架构包括知识源、黑板和控制3个部分。知识源包括若干独立计算的不同单元,提供解决问题的知识,知识源响应黑板上的变化,也只修改黑板。黑
板是一个全局数据库,包含解域的全部状态,是知识源互相作用的唯一媒介。
超文本系统风格:早期的静态网页是比较典型的超文本系统。
DSSA(特定领域软件架构)的基本活动:
领域分析:获取领域模型【获取领域需求】;
领域设计:获取DSSA【能够适应领域中多个系统需求的一个高层次设计】;
领域实现:依据领域模型及DSSA开发和组织可重用信息。
质量属性的理解和质量属性实现策略的掌握(每年5,6分):
可用性:
可修改性:
性能:
安全性:
可测试性:
易用性: