【专业课】软件体系结构(Score:99)

【详细说明 微核结构的五个组件:微核】

important 是主要的组件,实现通信和资源处理的主要任务,其他组件服务主要建立在微核基础之上;

service 微核的服务通过微核对外接口完成;

atom 微核实现原子级的服务,提供整个系统结构的核心机制;

wrap 微核中封装了许多与硬件相关的组件和特有功能的组件。

【详细说明 微核结构的五个组件:内部服务器】

independent 也称为子系统,其主要作用是基于微核扩展功能,是提供附加功能的一个独立的组件;

small 内部服务器的设计目标是使微核尽可能的小,减少其对资源的依赖和资源的开销;

extra 内部服务器实现额外的和复杂的任务,必要时激活和装载内部服务器,实现复杂操作;

only 内部服务器只能有微核组件访问;

fast 内部服务器提供快速执行机制,减少服务执行时间。

【详细说明 微核结构的五个组件:外部服务器】

application 也称为“个性化服务组件”,是基于微核的应用领域视图组件;

socket 外部服务器通过接口对外实现其功能;

independent 每一个外部服务器都运行在一个独立的进程中;

approach 外部服务器通过微核提供的通信手段接受客户的请求,解释客户的请求,执行相应的服务,返回结果。

【详细说明 微核结构的五个组件:客户程序】

application 是一个应用程序,通过一定的通信工具和外部服务的接口访问外部服务器;

compatible 在客户程序和外部服务器之间需要引入接口适配器。

【详细说明 微核结构的五个组件:适配器】

simulator 也称模拟器,是应用程序和外部服务的接口;

access 允许客户程序访问对应的外部服务器;

block对客户程序屏蔽内核、内部服务器、外部服务器的实现细节,提供对外部服务器的透明访问;

contact 客户提供请求,适配器将请求提交给外部适配器,此过程中,适配器使用微核提供的通信服务。

【详细回答 组件的五个特性:接口特性socket】

接口特性——与其他组件通信:

高效;完备性;最小化;方便;正交性;

【详细回答 组件的五个特性:运行特性run】

运行特性——完成组件的功能:

调度:进程/线程的产生、撤销、通信、管理;

数据的采集、传送、存储、计算等;

多任务并发处理,任务分配,并行计算;

【详细回答 组件的五个特性:远程服务特性thread】

远程服务特性——多线程:

接受网络的多源请求;

服务代理;

信息交互;

【详细回答 组件的五个特性:关联特性address】

关联特性——获取相关组件的地址信息:

实地址;路由地址;mac地址;ip地址;

【详细回答 组件的五个特性:动态特性dynamic】

组件的运行调度——资源分配、并行处理;

组件的生存期管理——进程的产生、撤销;

【详细回答 微信架构的四要点:容灾】

当系统出现了若干服务器或若干支架(宕机的时候),仍然需要让系统尽可能的提供正常的服务;

一个系统的设计分三层,接入层、逻辑层、存储层,其中存储层的容灾最难。

【详细回答 微信架构的四要点:监控】

智能处理和为系统提供一个智能仪表盘;

对每一个用户的行为做监控,发现异常时后台会给终端发指令,使得微信终端一段时间无法联网,但是可以保证用户流量不会浪费掉。

【详细回答 微信架构的四要点:协议】

移动终端与后台服务器之间的交互协议,这个协议的设计是整个系统的骨架,在这一点做好设计可以使得系统的复杂度大大降低;

移动互联网业界标准的解决方案是XMAPP,SIP/SIMPLE,其优点是简单,大量开源实现,缺点是流量大,状态初始化,消息不可靠;

微信采用SYNC ML(Sychronization Markup Language)协议,是基于状态同步的协议。

1.网络数据可以通过多种设备同步化。用户可以使用不同的设备访问和操作同一网络数据。2.收取消息的过程可以简单归纳为状态同步的过程。收消息跟收取好友状态的更新是相同的,因此只需要推送一个消息到达的通知就可以了。

【详细回答 微信架构的四要点:轻重】

如何在系统架构中分布功能,在哪一个点实现哪一个功能,代表系统中间的功能配置。

1.把关键的点从终端移到后台实现,把功能点后移,来充分发挥后台快速变更的能力。

2.接入优化:从GSLB到IP重定向。微信会通过在后台IP逆向的能力,通过后台指挥微信终端联网的能力,寻找最优的接入点。

【简答 好的软件体系结构的6个特征(评价)】

简单;可伸缩的;关系清楚明了;职责分布明确;效益和技术平衡;亲切的;

【名词解释 微服务架构】

一种架构概念,主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。

【简答 分层结构的优点】

能够实现软件的标准化;可替换性;可重用性;可移植性。

【简答 分层结构的缺点】

效率低——数据的层层转换、传送、添加、删减;

各层可能产生很多重复性操作;

很难找到一个正确分层的方法;

出于对系统性能的考虑,不得不把一些低级或高级的功能综合起来。

【简答 oracle体系架构的四个缓存名称及其作用】

库高速缓存:相同的SQL不再编译,使用LRU算法;

数据高速缓存:避免重复读取常用数据;

重做日志高速缓存:提升数据增删,减少读写;

数据字典缓存:描述库中表的信息、位置,提高命中率。

【简答 oracle体系架构的六大文件名称及其作用:Parameter files】

初始化参数文件是oracle实例运行所需要的参数配置文件,oracle实例启动必须先从参数文件中读取数据。

【简答 oracle体系架构的六大文件名称及其作用:Password files】

用户口令文件

【简答 oracle体系架构的六大文件名称及其作用:Control files】

数据控制文件:

数据库的名字、ID、创建的时间戳;

表空间的名字;

联机日志文件、数据文件的位置、个数、名字:

联机日志的Sequence号码

检查点的信息

归档信息

备份信息

【简答 oracle体系架构的六大文件名称及其作用:Archived log file】

归档日志文件:

日志模式分类,有归档模式和非归档模式;

管理归档操作,有日志模式切换和配置归档进程;

设置归档文件位置,有本地归档目标和远程归档目标;

查看归档日志信息。

【简答 oracle体系架构的六大文件名称及其作用:Redo log】

联系重做日志文件:

记录了数据的所有变化(DML、DLL和管理员对数据做的结构性更改;

提供恢复机制(对于意外删除或宕机利用日志文件实现数据恢复)

可以被分组管理

【简答 oracle体系架构的六大文件名称及其作用:Data files】

每一个数据文件,只与一个数据库相关联。不能同时对应两个数据库;

一个表空间可以包含一个或多个数据文件,也就是说表空间的大小也就是它包含的数据文件大小的总和;

一个数据文件只能属于一个表空间。

【简答 微信是一种生活方式:一个好的产品有10个设计原则】

创意;有用;优美;容易使用;含蓄不张扬;诚实;经久不衰;不放过任何细节;环保不浪费;少即是多。

【简答 组件的连接机制】

硬件是连接的物质基础(硬件层、基础控制描述层、资源和管理层、系统结构模式层)

【简答 根据组件的作用分类(5个)】

负责系统运行管理的控制组件;

负责组件之间协作关系的协调组件;

为其他组件提供服务功能的服务组件;

负责安全检查和信息转接的信息控制组件;

负责组件连接和转换功能的连接组件。

【其他 连接不匹配的解决方案】

修改组件;

引入中间件;

采用握手技术——在经常变动的系统中,识别和确定对方;

进行包装——代理技术等。

【简答 敏捷的四大法器:大系统小做】

当设计庞大系统时,应该尽量分割成更小的颗粒,使得项目之间的影响最小。

【简答 敏捷的四大法器:一切可拓展】

网络协议需要拓展:当要升级一个新功能时会比较困难,所以所有协议设计都比较向前兼容。此外可以通过XML描述,再通过工具自动生成所有的代码,这是微信获得快速开发的一个重要的点。

数据存储方面是必须可拓展的:微信采用了LVS架构,系统采用分布式设计,数据存储在多个存储节点上。分布式设计的优势在于存储空间和计算资源不受单机的限制。系统包含路由、存储、管理、搬迁四个节点。

【名词解释 LVS架构】

LVS一种基于Linux操作系统的高可用性、负载均衡解决方案。它采用IP负载均衡技术和基于内容请求分发技术,提供高性能的负载均衡服务,常用于大型网站或高并发服务的场景。

【简答 敏捷的四大法器:必须建立基础组件】

把复杂逻辑固化成基础软件,微信后台大致包括:

1.Svrkit——Client/Server自动代码生成框架:10分钟搭建内部服务器;

2.LogicServer——逻辑容器:随时添加新逻辑;

3.OssAgent——监控/统计框架:所见即所得的监控报表。

【简答 敏捷的四大法器:轻松上线:灰度、灰度、再灰度】

灰度发布是指黑与白之间能够平滑过渡的一种发布方式。

AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B。如果用户对B没什么反对意见,就逐步扩大范围,最终把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度时就可以发现、调整问题,以保证其影响度。

【名词解释 kernel目录】

包含内核管理的核心代码。与硬件相关代码放在arch/*/kernel目录下。

【名词解释 init目录】

init子目录包含核心的初始化代码(不是系统的引导代码)。其包含两个文件main.c和version.c,可以用来研究核心如何工作。

【名词解释 Include目录】

内核所需要的大部分头文件目录。与平台无关的在include/linux子目录中,与平台相关的则放在include相应的子目录中。

【名词解释 ipc目录】

包含核心进程间的通信代码。

【名词解释 lib目录】

包含了核心的库代码,与硬件相关的库代码被放在arch/*/lib目录下。

【名词解释 scripts目录】

包含用于配置核心的脚本文件。

【名词解释 mm目录】

包含了所有的内存管理代码。与硬件相关的内存管理代码位于arch/*/mm目录下。

【名词解释 fs目录】

存放各种文件系统的实现代码。

【名词解释 Arch目录】

存放处理器的相关代码。下设子目录,分别对应具体的CPU,每个子目录有boot,mm,以及kernel三个子目录,分别对应系统引导以及存储管理,和系统调用。

【详细回答 组件实现的六种形式】

最简单的组件是基本的位、字节数、整数、实数、数组、队列等,这类组件没有行为能力,只是表达数据;

有行为能力的组件是各类的对象,因此,组件的实现形式就是对象,如用于界面设计的可视控件、输入/输出组件、OLE对象、DCOM/CORBA组件等;

组件软化的硬件层有:时钟、中断控制、存储器管理、堆栈管理、I/O控制等;

在基础控制描述层有:数组、结构、树、文件、对象、状态、函数库/包、模块等;

在资源及管理调度层:注册表、DLL、ODBC、菜单、表单等;

在系统结构模式层有:生成规则、黑板、域名服务。路由服务、浏览器、解释器、设计模式、框架等。

【简答 分层结构应该考虑的因素】

以ISO/OSI为例:

组件功能明确;

源代码修改,其影响的范围;

接口的标准化;

组件可升级、更换;

边界问题;

开发人员的职责。

【简答 分层结构的实现】

以ISO/OSI和TCP/IP协议为例:

定义合适的分层标准;

根据标准定义合适的层数;

给每一层命名;

确定每一层的任务;

定义每层的接口;

构建每一层的各个组件;

确定层之间的通信模式——推模式、拉模式和组合模式;

降低层之间的耦合性;

设计错误处理策略。

【简答 ISO/OSI的分层准则】

根据不同的层次抽象分层;

每层应当实现一个定义明确的功能;

每层功能的选择应当有助于制定网络协议的国际标准;

每层边界的选择应尽量减少跨过接口的通信量;

层数适当,既避免不同的功能混杂在同一层中;又不会使体系结构过于庞大。

【简答 分层结构的特性】

如果发生了对第N层产生的请求,需要向下逐层调用,最终到第1层,请求响应逐层上传,最后到达第N层;

如果是从第1层链式操作,数据通过逐层处理,最后从第N层得到输出结果;

如果第i层的请求第i-1层能完成,就不需要再向更下层传递请求;

如果第i层的通知只需要传递到第i+1层能完成,就不需要再向更高层传递;

两个具有N层通信栈式结构,发生在一边第N层的请求,一直传送到第i层,再到另一边的第1层,一直传递到这一边的第N层。

【简答 分层结构的特点】

层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户;

在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见;

层之间的连接器通决定层间如何交互的协议来定义;

这种风格支持基于可增加抽象层的设计。允许将一个复杂问题分解成一个增量步骤序列的实现。

【名词解释 推模式】

当通知消息来时,把所有相关信息都通过参数的形式“推给”观察者。

【名词解释 拉模式】

当通知消息来时,通知的函数不带任何相关的信息,而是要观察者去主动“拉”信息。

【名词解释 组合模式】

是将信息推送与拉取两种模式结合,因而能做到取长补短,使二者优势互补。根据推、拉结合顺序及结合方式的差异,又分为四种不同的推拉模式——先推后拉、先拉后推、推中有拉、拉中有推。

【名词解释 约束(constrain)】

用于对构件和连接件的语义说明。

【名词解释 原理(rationale)】

能够展示由组件、连接件和约束所定义的系统在实现时如何满足系统不同人员需求的称为原理。

【名词解释 组件对象模型(COM)】

指由微软公司开发的规范和执行操作,是为集成组件提供的一组框架。该框架支持对象的互用性和可再用性,开发者通过从不同供应商处集中的可再用组件来建立 COM 通信系统。

【名词解释 代理(Proxy) 模式】

是一种对组件进行访问控制和保护的模式;如果应用程序不能直接访问组件,代理程序在应用程序和组件之间建立桥梁;如果组件需要保护,代理程序在应用程序和组件之间设置访问控制;

【名词解释 连接件(connector)】

作为一种成份,是关系的抽象,用以表示构件之间的相互作用。如过程调用、管道、远程过程调用等。

【名词解释 CDN(Content Delivery Network)】

内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输得更快、更稳定。

【名词解释 黑板系统】

是一种高度结构化的机遇问题求解模型。机遇问题求解模型的主要特点是:问题求解的每一步,根据当时的求解状态及其变化情况,选择最适宜的知识及问题求解方法,不断逼近问题的最终解。

【名词解释 struts】

一种开源框架。用于减少在运用MVC设计模型来开发Web应用的时间。

【名词解释 C/S结构】

一种软件系统体系结构,它充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现

【名词解释 点对点(Peer to peer)】

在点对点的消息系统中,消息分发给一个单独的消费者;消息应用程序发送消息到一个特定的队列,而客户端从一个队列中得到消息。

【名词解释 发送—接收模式】

是一种对等交互模型的软件系统模式,这种模式提供位置透明、进程透明的进程间通信;引入发送器和接收器,使对等交互实体从低层通信机制中隔离出来;降低组件之间的耦合性;往往引入中间件,实现透明性。

【名词解释 ODBC模式】

用于解决异构数据库之间的数据共享;是微软公司开放服务结构(WOSA)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API。

【名词解释 环境子系统】

环境子系统就是针对Windows不同版本上的运行环境。

【名词解释 环境子系统进程】

环境子系统进程Csrss.exe(Client/Server Run-Time Subsystem)就是客户机/服务器运行时子系统,子系统由会话管理器(Session Manager)(Smss.exe)进程启动。

【名词解释 用户进程】

就是应用程序运行。

【名词解释 服务进程】

Service进程是由SCM启动的,它们与user logon是独立的,因为有些service的启动时机比winlogon.exe还早。Task Scheduler和Print Spooler都是services。

【名词解释 系统进程】

1.Idle进程(特殊进程,其实是CPU空闲时间)System进程(特殊进程,包含大多数内核模式系统进程)

2.会话管理器(Smss.exe)

3.本地会话管理器(Lsm.exe)

4.会话初始化(Wininit.exe)

5.登录进程(Winlogon.exe)

6.服务控制管理器(Services.exe)

7.本地安全认证服务器(Lsass.exe)

【名词解释 Ntdll.dll】

Ntdll.dll是一个特殊系统支持库,主要用于子系统dll,主要包含两种类型函数:

1.系统服务分发存根(stub),在用户模式下调用Windows执行体系统服务。

2.内部支持函数,供子系统、子系统dll、exe映像文件使用

3.Ntdll.dll里面提供的函数大多未文档化,并以Nt开头命名。

【名词解释 Windows执行体】

Windows执行体是Ntoskrnl.exe的上层(其下层是内核),包含了基本的操作系统服务,比如内存管理、进程和线程管理、安全性、I/O、网络和跨进程通信等。

【名词解释 设备驱动程序】

设备驱动程序运行在内核模式下,主要为发起I/O请求的用户线程中,设备驱动程序主要分为以下几种:

1.硬件设备驱动程序

2.文件系统驱动程序

3.文件系统过滤驱动程序

4.网络重定向器和服务器

5.协议驱动程序

6.内核流式驱动程序

【名词解释 硬件抽象层(Hardware Abstraction Layer)】

是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化;

【名词解释 Ntoskrnl.exe】

NT Operating System Kernel,NT操作系统内核。WindowsOS的内核,负责管理系统的硬软件资源,处理多任务调度与提供系统服务。

【名词解释 硬件抽象层:HAL】

隐藏了硬件的细节,使得OS可以与不同的硬件平台兼容。

【名词解释 系统闲置行程】

伪进程,表示CPU空闲时的状态。

【名词解释 注册表】

用于存储系统和应用程序配置信息的数据库。

【名词解释 Svchost.exe】

Windows服务宿主进程,用于运行多个系统服务。

【名词解释 Windows service】

运行在后台,提供系统功能,如网络服务、打印服务、安全服务。

【名词解释 服务控制管理员】

负责管理服务的组件。

【名词解释 WOW/WOW64】

一种兼容性技术,允许32位应用程序在64位系统上运行。

【名词解释 DLL】

动态链接库,包含可被多个程序共享的代码和数据。

【名词解释 可携式可执行档】

一种可执行文件格式,用于存储程序的代码、数据和资源。

【名词解释 NTLDR】

Windows NT系列操作系统中的启动加载器。

【名词解释 启动管理员】

Windows Vista及更高版本操作系统中的启动加载器,取代了NTLDR。

【名词解释 Winlogon】

负责用户登陆与注销的组件。

【名词解释 复原主控台】

一种用于修复系统问题的恢复工具。

【名词解释 Windows Vista I/O技术】

Windows Vista中引入的一系列I/O优化技术,如延迟写入。

【名词解释 Windows还原系统】

一种恢复工具,用于将系统恢复到之前的状态。

【名词解释 Windows预先安装环境】

一种轻量级版本,用于系统部署和故障排除。

【名词解释 Kernel Patch Protection】

一种安全技术,防止内核被恶意修改。

【名词解释 Windows系统函式库】

一组库文件,提供系统功能和API。

【名词解释 Windows用户模式】

主要是NTDLL抽象层,以及各种进程。

【名词解释 Windows内核系统】

自下而上分为硬件抽象层、内核和驱动层、执行体,以及窗口管理系统。

【名词解释 Linux系统调用接口SCI】

系统调用接口是用户空间应用程序与内核之间的桥梁,允许应用程序请求内核服务。

【名词解释 Linux进程管理PM】

进程管理负责创建、调度和终止进程,以及管理进程间的通信。

【名词解释 Linux虚拟文件系统VFS】

虚拟文件系统提供了一个统一的接口,使得不同的文件系统(如ext4,NTFS等)可以被内核和用户空间程序以相同的方式访问。

【名词解释 Linux内存管理MM】

内存管理负责管理系统的物理内存和虚拟内存,包括内存分配、页面置换和内存保护等功能。

【名词解释 Linux架构特定代码Arch】

架构特定代码是针对特定硬件架构(如x86、ARM等)的代码,负责处理与硬件直接相关的操作。

【名词解释 Linux设备驱动程序DD】

设备驱动程序是内核中与硬件设备交互的部分,负责控制和管理硬件设备的操作。

【名词解释 Linux网络栈Network Stack】

网络栈负责处理网络通信,包括网络协议的实现(如TCP/IP)、数据包的传输和接收等。

【名词解释 Linux Human Interface(人机界面层)】

提供用户与操作系统交互的方式,支持图形界面和命令行界面。

【名词解释 Linux System Layer(系统层)】

管理操作系统核心服务,包括硬件抽象、资源分配、系统调用等。

【名词解释 Linux Processing Layer(处理层)】

管理进程调度、线程管理、并发控制和 CPU 资源分配。

【名词解释 Linux Memory Layer(内存层)】

管理内存分配、虚拟内存、内存保护及缓存管理。

【名词解释 Linux Storage Layer(存储层)】

管理持久性存储设备、文件系统、磁盘分区和数据持久化。

【名词解释 Linux Networking Layer(网络层)】

管理网络通信、网络协议栈、数据传输和网络接口。

【名词解释 体系结构】

体系结构是以组件、组件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织结构,以及指导上述内容设计与演化的原理。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_40231788/article/details/145057632

版权声明:
作者:Zhang, Hongxing
链接:http://zhx.info/archives/491
来源:张鸿兴的学习历程
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录