软考错题集计算机软件

#软考

假设文件系统采用索引节点管理,且索引节点有8个地址项iaddr[0]~iaddr[7],每个地址项大小为4字节,iaddr[0]~iaddr[4]采用直接地址索引,iaddrl[5]和iaddr[6]采用一级间接地址索引,iaddr[7]采用二级间接地址索引。假设磁盘索引块和磁盘数据块大小均为1KB字节,文件File1的索引节点如图所示。若用户访问文件File1中逻辑块号为5和261的信息,则对应的物理块号分别为( );101号物理块存放的是( )。Image

根据题意,磁盘索引块为1KB,每个地址项大小为4B,故每个磁盘索引块可存放1024/4=256个物理块地址。又因为文件索引节点中有8个地址项,其中5个地址项为直接地址索引,这意味着逻辑块号为0~4的为直接地址索引;2个地址项是一级间接地址索引,其中第一个地址项指出的物理块中是一张一级间接地址索引表,存放逻辑块号为5~260对应的物理块号,第二个地址项指出的物理块中是另一张一级间接地址索引表,存放逻辑块号为261~516对应的物理块号。经上分析,从题图不难看出,逻辑块号为5的信息应该存放在58号物理块中,逻辑块号为261的信息应该存放在187号物理块中。

由题中可知,iaddr[7]采用二级间接地址索引,且iaddr[7]中存放的物理块号为101。1个地址项是二级间接地址索引,这意味着该地址项指出的物理块中存放的是256个一级间接地址索引表,故101号物理块存放的是二级间接地址索引表。Image

进程 P1、P2、P3、P4、P5 的前趋图如下。Image若用 PV 操作控制进程并发执行的过程,则需要相应于进程执行过程设置 5 个信号量 S1、S2、S3、S4 和 S5,且信号量初值都等于零。下图中 a 处应填写 ( ) ;b 和 c、d 和 e 处应分别填写 ( ),f、g 和 h 应分别填写 ( )Image

根据前驱图,P1进程运行结束需要利用V操作分别通知P2和P3进程,所以用V(S1)操作通知P2进程,用V(S2)操作 通知P3进程。

根据前驱图,P4进程开始运行前必须等待P2和P3进程的通知,需要用P(S3)和P(S4)操作分别测试P2和P3进程是否运行完,故空f应填写P(S3)P(S4)。P4进程运行结束需要利用V(S5)操作通知P5进程,故空g应填写V(S5)。根据前驱图,P5进程开始运行前必须等待P4进程的通知,需要用P(S5)操作测试P4进程是否运行完,故空h应填写P(S5)。

数据库的安全机制中,通过提供( )供第三方开发人员调用进行数据更新 ,从而保证数据库的关系模式不被第三方所获取。

本题考查的是数据库基础知识。

索引是数据库中提高查询效率的一种机制,不能进行数据更新。

视图一般是提供查询数据的,具有一定安全机制,但是不能进行数据更新。

触发器可以作为更新机制,但是无法避免数据库的关系模式被第三方所获取,并不安全。

存储过程方式,可以定义一段代码,从而提供给用户程序来调用,具体更新过程通过代码调用,避免了向第三方提供系统表结构的过程,体现了数据库的安全机制。所以本题选择C选项。

关于多核CPU环境下进程的调度算法,以下说法正确的是:( )。

多核CPU环境下进程的调度算法一般有全局队列调度和局部队列调度两种。

(1)全局队列调度是操作系统维护一个全局的任务等待队列,当系统中有一个CPU核心空闲时,操作系统便从全局任务等待队列中选取就绪任务并开始在此核心上执行,它的优点是CPU核心利用率较高。

(2)局部队列调度是指操作系统为每个CPU内核维护一个局部的任务等待队列,当系统中有一个CPU内核空闲时,便从该核心的任务等待队列中选取恰当的任务执行,局部队列调度可以使任务基本上无需在多个CPU核心间切换,有利于提高CPU核心局部缓存命中率,缺点是CPU利用率太低。

微内核的操作系统(OS)结构如下图所示,图中①和②分别工作在( )方式下,与传统的OS结构模式相比,采用微内核的OS结构模式的优点是提高了系统的灵活性、可扩充性,(请作答此空)。Image

本题考查的是操作系统(OS)结构方面的基本知识。

试题第一,第二空的正确答案分别是B和A、因为为了提高操作系统的正确性、"灵活性"、易维护性和可扩充性,在进行现代操作系统结构设计时,大多采用基于客户/服务器模式的微内核结构,将操作系统划分为两大部分:微内核和多个服务器.

在微内核操作系统中,内核是指精心设计的、能实现现代OS最基本的核心功能的部分,工作在核心态,而其他部分工作在用户态。如下图所示 Image 微内核并非是一个完整的OS,而只是操作系统中最基本的部分,它通常用于;①实现与硬件紧密相关的处理:②实现—些较基本的功能;⑨负责客户和服务器之间的通信。它们只是为构建通用OS提供一个重要基础,这样就可以确保把操作系统内核做得很小

进程P有8个页面,页号分别为0~7,页面大小为4K ,假设系统给进程P分配了4个存储块,进程P的页面变换表如下所示。表中状态位等于1和0分别表示页面在内存和不在内存。若进程P要访问的逻辑地址为十六进制 5148H,则该地址经过变换后, 其物理地址应为十六进制( );如果进程P要访问的页面6不在内存,那么应该淘汰页号为( )的页面。Image

本题考查操作系统存储管理方面的基础知识。 试题第一空的正确选项为A。 根据题意,页面大小为4K,逻辑地址为十六进制5148H其页号为5,页内地址为148H,查页表后可知页帧号(物理块号)为3,该地址经过变换后,其物理地址应为页帧号3拼上页内地址148H,即十六进制3148H。 试题第二空的正确选项为B。根据题意,首先,查看表格,没有页号为9的页面,排除D选项,然后,因为页面变换表中状态位等于1和0分别表示页面在内存或不在内存,所以1、2、5和7号页面在内存。当访问的页面6不在内存时,系统应该首先淘汰未被访问的页面,因为根据程序的局部性原理,最近未被访问的页面下次被访问的概率更小;如果页面最近都被访问过,应该先淘汰未修改过的页面,因为未修改过的页面内存与辅存一致,故淘汰时无须写回辅存,使系统页面置换代价更小。经上述分析,1、5和7号页面都是最近被访问过的,但2号页面最近未被访问过,故应该淘汰2号页面。

软件构件是一个独立可部署的软件单元,与程序设计中的对象不同,构件( 可以利用容器管理自身对外的可见状态)。

构件的特性是:(1)独立部署单元; (2)作为第三方的组装单元; (3)没有(外部的)可见状态。 一个构件可以包含多个类元素,但是一个类元素只能属于一个构件。将一个类拆分进行部署通常没什么意义。 对象的特性是: (1)一个实例单元,具有唯一的标志。 (2)可能具有状态,此状态外部可见。 (3)封装了自己的状态和行为。

J2EE中的“消息驱动Bean”用于处理 ( ) 。

消息驱动Bean(MDB)监听消息队列(如JMS),实现异步处理

应用程序在用户态使用特权指令进行系统调用,是( )

A. 信号中断通常是由外部设备或定时器发出的,与用户程序主动发起的系统调用无关。

B. 溢出中断发生在程序执行过程中产生算术溢出时,而非主动系统调用。

C. 访管中断是应用程序使用特权指令触发的,目的是请求操作系统提供服务(即系统调用)。

D. 外部中断由硬件设备(如键盘、鼠标、定时器等)触发,不涉及用户程序的特权指令。

EJB是企业级Java构件,用于开发和部署多层结构的、分布式的、面向对象的Java应用系统。其中,( )负责完成服务端与客户端的交互;( )用于数据持久化来简化数据库开发工作;( )主要用来处理并发和异步访问操作。

EJB分为会话Bean、实体Bean和消息驱动Bean。 1、会话Bean:用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个会话Bean来为客户端服务。会话Bean可以直接访问数据库,但更多时候,它会通过实体Bean实现数据访问。 2、实体Bean:用于实现O/R映射,负责将数据库中的表记录映射为内存中的实体对象,事实上,创建一个实体Bean对象相当于新建一条记录,删除一个实体Bean会同时从数据库中删除对应记录,修改一个实体Bean时,容器会自动将实体Bean的状态和数据库同步。 3、消息驱动Bean:是EJB3.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。MDB实际上是一个异步的无状态会话Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。

分布式数据库两阶段提交协议中的两个阶段是指( )。

二阶段提交(Two-phaseCommit)是指,在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。通常,二阶段提交也被称为是一种协议(Protocol))。

在分布式系统中,每个节点虽然可以知晓自己的操作是成功或者失败,却无法知道其他节点的操作是成功或失败。当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一个作为协调者的组件来统一掌控所有节点(称作参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交(比如将更新后的数据写入磁盘等等)。因此,二阶段提交的算法思路可以概括为:参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是要提交操作还是中止操作。

所谓的两个阶段是指:第一阶段:准备阶段(表决阶段)和第二阶段:提交阶段(执行阶段)。

准备阶段:事务协调者(事务管理器)给每个参与者(资源管理器)发送Prepare消息,每个参与者要么直接返回失败(如权限验证失败),要么在本地执行事务,写本地的redo和undo日志,但不提交,达到一种“万事俱备,只欠东风”的状态。

提交阶段:如果协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚(Rollback)消息;否则,发送提交(Commit)消息;参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源。(注意:必须在最后阶段释放锁资源)

某文件系统采用链式存储管理方式并应用记录的成组与分解技术,且磁盘块的大小为 4096 字节。若文件 license.doc 由 7 个逻辑记录组成,每个逻辑记录的大小为 2048字节,并依次存放在 58、89、96 和 101 号磁盘块 上,那么要存取文件的第 12288 逻辑字节处的信息,应访问 ( ) 号磁盘块。

逻辑字节也称为相对字节,是从0开始计算的,而12288/4096+1=4,所以第12288逻辑字节处的信息,应访问101应号磁盘块。

关于构件的描述,正确的是( )。

构件是一组通常需要同时部署的原子构件。 构件和原子构件之间的区别在于,大多数原子构件永远都不会被单独部署,尽管它们可以被单独部署。相反,大多数原子构件都属于一个构件家族,一次部署往往涉及整个家族。

一个原子构件是一个模块和一组资源。

原子构件是部署、版本控制和替换的基本单位。原子构件通常成组地部署,但是它也能够被单独部署。一个模块是不带单独资源的原子构件(在这个严格定义下,Java 包不是模块——在 Java 中部署的原子单元是类文件。一个单独的包被编译成多个单独的类文件——每个公共类都有一个)。

模块是一组类和可能的非面向对象的结构体,比如过程或者函数。

以下关于嵌入式系统开发的叙述,正确的是( )。

在嵌入式系统开发中,由于嵌入式设备不具备足够的处理器能力和存储空间,程序开发一般用PC(宿主机)来完成,然后将可执行文件下载到嵌入式系统(目标机)中运行。

当宿主机与目标机的机器指令不同时,就需要交叉工具链(指编译、汇编、链接等一整套工具)。

下面关于网络延迟的说法中,正确的是() 。

对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。在对等网络中,由于采用总线式的连接,因此网络中的终端数量越多,终端所能够分配到的转发时隙就越小,所带来的延迟也就越大。A选项错误。

路由器一般采取存储转发方式,而交换机采取的是直接转发方式,相比存储转发方式,直接转发方式转发时延更小。因为存储转发方式需要对待转发的数据包进行重新拆包,分析其源地址和目的地址,再根据路由表对其进行路由和转发,而直接转发方式不对数据包的三层地址进行分析,因此路由器转发所带来的延迟要大于交换机。B选项错误。

数据在Internet中传输时,由于互联网中的转发数据量大且所需经过的节点多,势必会带来更大的延迟。C选项错误。

网络延迟=处理延迟+排队延迟+发送延迟+传播延迟。如果不考虑网络环境,服务器的延迟的主要因素是队列延迟和磁盘IO延迟。D选项正确。

中间件是提供平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。中间件的基本功能包括:为客户端和服务器之间提供();提供()保证交易的一致性;提供应用的() 。

本题考查的是构件与中间件相关知识。 中间件是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同的技术之间共享资源。中间件可以:

1、负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制。

2、提供应用的负载均衡和高可用性、安全机制与管理功能,以及交易管理机制,保证交易的一致性。

3、提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制。

4、提供多层架构的应用开发和运行的平台,以及应用开发框架,支持模块化的应用开发。

5、屏蔽硬件、操作系统、网络和数据库的差异。

6、提供一组通用的服务去执行不同的功能,避免重复的工作,使应用之间可以协作。

若系统中有5个进程共享同类资源,每个进程最多需要3个资源,则系统最少需提供 ( ) 个资源才能避免死锁。

当每个进程最大需求量为K个资源,系统共有N个进程时,不发生死锁的最少资源数计算公式为M=N*(K-1)+1=5*(3-1)+1=11。

DMA (直接存储器访问)工作方式是在( )之间建立起直接的数据通路。

直接存储器访问(Direct Memory Access,DMA)是指数据在主存与I/O设备间的直接成块传送,即在主存与I/O设备间传送数据块的过程中,不需要CPU作任何干涉,只需在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时由CPU进行处理,实际操作由DMA硬件直接完成,CPU在传送过程中可做其他事情。

软件开发团队欲开发一套管理信息系统,在项目初期,用户提出了软件的一些基本功能,但是没有详细定义输入、处理和输出需求。在这种情况下,该团队在开发过程应采用( )。

在软件开发过程中,如果用户仅仅提出软件的—些基本功能,但是没有详细定义输入、处理和输出需求。在这种情况下,该软件开发团队应该采取原型开发方法最为合适。因此本题应该选C。

1. 瀑布模型 (Waterfall Model)

这是最古老、最经典的软件开发模型,被认为是线性顺序模型的代表。

  • 核心理念:像瀑布流水一样,每一个阶段都必须在上一个阶段完全结束并经过审查后才能开始。不可逆(理论上)。
  • 流程:需求分析 -》 系统设计 -》程序实现 -》测试 -》 维护。
  • 优点
    • 流程清晰,纪律严明,易于管理。
    • 文档驱动,每个阶段都有明确的产出物(文档)。
  • 缺点
    • 极其僵化:难以适应需求的变化。一旦需求变更,代价巨大。
    • 集成晚:直到项目后期才能看到可运行的软件,风险主要堆积在项目末期。
  • 适用场景:需求非常明确、固定且技术成熟的项目(如航天、银行核心系统的某些模块)。

2. 增量模型 (Incremental Model)

增量模型将软件产品作为一系列的“增量”构件来设计、实现、集成和测试。

  • 核心理念分批交付。第一个增量往往是核心产品(满足基本需求),后续增量不断添加新功能。
  • 流程:比如一个文字处理软件,第一个增量实现“基本编辑功能”,第二个增量实现“拼写检查”,第三个增量实现“高级排版”。
  • 优点
    • 快速交付:用户可以较早使用到核心功能。
    • 灵活:如果后续需求变化,只需调整后续的增量计划,不影响已发布的增量。
    • 风险分散:每次增量发布都是一次测试,风险被分摊到每个阶段。
  • 缺点
    • 架构要求高:系统必须具有开放的架构,允许新的模块方便地加入(即高内聚、低耦合),否则后续增量很难集成。
  • 适用场景:需要快速推向市场、但资源不足以一次性做完所有功能,或者需求是分批次明确的项目。

3. 原型开发模型 (Prototyping Model)

主要用于解决需求不明确的问题。

  • 核心理念“试探性”开发。在真正开发之前,先快速构建一个简易模型(原型)给用户看/用,以澄清需求。
  • 分类
    • 抛弃型原型:弄清需求后,原型被丢弃,正式系统重新开发(质量更好)。
    • 演化型原型:在原型基础上不断修改完善,最终变成正式系统。
  • 优点
    • 明确需求:由于用户直接参与交互,大大减少了因需求误解导致的返工。
    • 用户满意度高:用户参与感强。
  • 缺点
    • 用户误解:用户可能认为原型就是最终产品,不理解为什么要花时间重写(如果采用抛弃型)。
    • 质量隐患:为了快,开发者可能采用“且顾眼前”的开发方式,导致系统结构较差,文档缺失。
  • 适用场景:用户对需求模糊不清、交互性强(GUI密集)的系统。

4. 快速应用开发 (RAD, Rapid Application Development)

RAD 是瀑布模型的一个“高速变种”,侧重于极短的开发周期(通常60-90天)。

  • 核心理念以速度为王。通过大量使用**构件(Component)**复用、自动化代码生成工具(CASE工具)和并行开发团队来压缩时间。
  • 流程:业务建模 -》 数据建模 -》 过程建模 -》 应用生成 -》 测试与交付。
  • 优点
    • 极快:开发周期很短。
    • 复用性:强调复用现有的程序组件。
  • 缺点
    • 资源密集:需要足够的人力组建多个并行团队。
    • 技术风险敏感:不适合采用很多新技术或高性能要求的项目。
    • 系统必须模块化:如果系统不能被合理模块化分工,RAD就会失败。
  • 适用场景:工期紧张、预算充足(能买工具/招人)、系统可模块化、且业务逻辑相对标准的项目(如信息管理系统)。

总结对比

模型 核心特征 关键词 最大的痛点
瀑布模型 线性顺序,文档驱动 按部就班、严谨 怕变(需求变更代价大)
增量模型 分批次构建和交付 滚雪球、核心先行 怕乱(架构不好会导致集成困难)
原型模型 快速构建样品演示 沟通工具、澄清需求 怕烂(原型质量差,若直接演化隐患大)
RAD 组件复用,工具生成 拼积木、极速 怕贵(需要大量人力和工具支持)

架构描述语言(Architecture Description Language,ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。ADL主要包括以下组成部分:组件、组件接口、( )和架构配置。

本题主要考查架构描述语言的知识。架构描述语言(Architecture Description Language,ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。ADL主要包括以下组成部分:组件、组件接口、连接件和架构配置。ADL对连接件的重视成为区分ADL和其他建模语言的重要特征之一。

以下关于实时操作系统(RTOS)任务调度器的叙述中,正确的是( )。

实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。

为了精确管理“时间”资源,以达到实时性和可预测性要求,并能够满足实时系统的新要求,需用实时调度理论对任务进行调度和可调度性分析。任务调度技术包括调度策略和可调度性分析方法,两者是紧密结合的。任务调度技术研究的范围包括任务使用系统资源(包括处理机、内存、I/O、网络等资源)的策略和机制,以及提供判断系统性能是否可预测的方法和手段。例如,什么时候调度任务运行、在哪运行(当系统为多处理机系统或分布式系统时)、运行多长时间等等;以及判断分析用一定参数描述的实时任务能否被系统正确调度。

给定一组实时任务和系统资源,确定每个任务何时何地执行的整个过程就是调度。在非实时系统中,调度的主要目的是缩短系统平均响应时间,提高系统资源利用率,或优化某一项指标;而实时系统中调度的目的则是要尽可能地保证每个任务满足它们的时间约束,及时对外部请求作出响应。实时调度技术通常有多种划分方法。

抢占式调度通常是优先级驱动的调度。每个任务都有优先级,任何时候具有最高优先级且已启动的任务先执行。一个正在执行的任务放弃处理器的条件为:自愿放弃处理器(等待资源或执行完毕);有高优先级任务启动,该高优先级任务将抢占其执行。除了共享资源的临界段之外,高优先级任务一旦准备就绪,可在任何时候抢占低优先级任务的执行。抢占式调度的优点是实时性好、反应快,调度算法相对简单,可优先保证高优先级任务的时间约束,其缺点是上下文切换多。

而非抢占式调度是指不允许任务在执行期间被中断,任务一旦占用处理器就必须执行完毕或自愿放弃。其优点是上下文切换少;缺点是在一般情况下,处理器有效资源利用率低,可调度性不好。

在RTOS中,大多数的RTOS调度算法都是抢占式的 。

构件组装成软件系统的过程可以分为三个不同的层次:( )。

系统构件组装分为三个不同的层次:定制(Customization)、集成(Integration)、扩展(Extension)。这三个层次对应于构件组装过程中的不同任务。

定制阶段是构件组装过程的第一个层次,它主要关注于根据特定需求对构件进行个性化的调整或修改。

集成阶段是构件组装过程的第二个层次,它主要关注于将多个定制好的构件组合成一个完整的软件系统。

扩展阶段是构件组装过程的第三个层次,它主要关注于在现有软件系统的基础上增加新的功能或构件。

紧耦合多机系统一般通过( )实现多机间的通信。对称多处理器结构(SMP)属于(请作答此空)系统。

SMP(Symmetical Multi-Processing.对称多处理器结构)技术,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构,所以属于紧耦合多机系统。

在这种架构中,一台电脑不再由单个CPU组成,而同时由多个处理器运行操作系统的单一复本,并共享内存和一台计算机的其他资源。虽然同时使用多个CPU,但是从管理的角度来看,它们的表现就像一台单机一样。系统将任务队列对称地分布于多个CPU之上,从而极大地提高了整个系统的数据处理能力。所有的处理器都可以平等地访问内存、I/O和外部中断。在对称多处理系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上。

下列安全协议中,( )能保证交易双方无法抵赖。

本题考查SET协议的基本概念。SET(Secure Electronic Transaction)协议,全称为安全电子交易协议,主要目的是保证用户、商家和银行之间通过信用卡支付的交易过程中的支付信息的机密、支付过程的完整、商户及持卡人的合法身份确认。

HTTPS是安全HTTP协议,PGP和MOSS都是安全电子邮件协议。

页式存储系统的逻辑地址是由页号和页内地址两部分组成。假定页面的大小为4K,地址变换过程如下图所示,图中逻辑地址用十进制表示。Image图中有效地址经过变换后,十进制物理地址a应为( )。

本题考查的是页式存储管理中的地址变换知识。解题思路有两种:

(1)页式存储系统的逻辑地址由页号和页内地址两部分组成。题目已知页面大小为 4K,因为4K=2^12,所以页内地址有12位。现在把逻辑地址8644转成二进制数得100001 1100 0100,这里的低12位为页内偏移量,最高两位则为页号,所以逻辑地址8644的页号为10(即十进制数的2),所以物理块号为8,化为二进制数得1000。把物理块号和页内偏移地址拼合得10000001 11000100,转化为十进制数得33220。

(2)在页式存储管理中,有效地址除页的大小,取整为页号,取余为页内地址。本题页面的大小为4K,有效地址8644除4096,取整为2,取余为452。我们先查页表得物理块号8,因此a的有效地址为8×4096+452= 33220。

CORBA构件模型中,( )的作用是在底层传输平台与接收调用并返回结果的对象实现之间进行协调,( )是最终完成客户请求的服务对象实现。

POA是对象实现与ORB其他组件之间的中介,它将客户请求传送到伺服对象,按需创建子POA,提供管理伺服对象的策略。

CORBA对象可看作是一个具有对象标识、对象接口及对象实现的抽象实体。

之所以称为抽象的,是因为并没有硬性规定CORBA对象的实现机制。由于独立于程序设计语言和特定ORB产品,一个CORBA对象的引用又称可互操作的对象引用(Interoperable Object Reference)。从客户程序的角度看,IOR中包含了对象的标识、接口类型及其他信息以查找对象实现。

伺服对象(Servant)是指具体程序设计语言的对象或实体,通常存在于一个服务程序进程之中。

客户程序通过对象引用发出的请求经过ORB担当中介角色,转换为对特定的伺服对象的调用。在一个CORBA对象的生命期中,它可能与多个伺服对象相关联,因而对该对象的请求可能被发送到不同的伺服对象。

对象标识(Object ID)是一个用于在POA中标识一个CORBA对象的字符串。

它既可由程序员指派,也可由对象适配器自动分配,这两种方式都要求对象标识在创建它的对象适配器中必须具有唯一性。

( ) 文件组织方式支持快速随机访问但易产生碎片。

连续结构将文件存储在连续磁盘块中,随机访问快,但易因文件删除产生碎片。

这四种结构通常是指在操作系统(文件管理)数据库系统中,数据(或文件)在物理存储介质上的组织方式。

它们决定了数据是如何存放的,以及如何被查找和访问。以下是这四种结构的详细特点解析:

1. 连续结构 (Contiguous Structure)

也称为顺序分配。这是最简单的物理结构,类似于数组。

  • 原理: 一个文件在磁盘上占有一组连续的块(Block)。例如,如果文件需要3个块,系统可能会分配 物理块 100, 101, 102 给它。
    • 文件目录项(FCB)只需要记录:起始块号 + 长度(块数)
  • 特点
    • 优点
      • 访问速度最快:磁头移动距离最短,特别适合顺序访问(如播放视频)。
      • 支持随机访问:类似于数组,可以通过计算直接定位到文件的任何位置(例如:物理块 = 起始块 + 逻辑偏移)。
    • 缺点
      • 外部碎片:磁盘上会产生很多小的空闲区域,难以利用(类似于内存管理中的动态分区分配)。
      • 文件扩展困难:如果文件后面没有相邻的空闲块,文件就无法变大,必须整体迁移到更大的空闲区。

2. 链接结构 (Linked Structure)

也称为链接分配,类似于链表。

  • 原理: 文件的数据块可以离散地分布在磁盘的任何位置。每个数据块中包含一个指针,指向下一个数据块的地址。
    • 文件目录项记录:起始块号 + 结束块号
  • 特点
    • 优点
      • 无外部碎片:只要磁盘有空闲块,就可以分配给文件。
      • 文件扩展容易:随时可以动态申请新块链接在末尾。
    • 缺点
      • 不支持高效的随机访问:如果想读取文件的第100块,必须先读第1、2...99块,效率极低。
      • 可靠性差:如果链表中间某个指针损坏,后面的数据都会丢失。
      • 空间开销:每个块都需要一部分空间来存指针。
    • 注:FAT(文件分配表)是链接结构的一种改良(显式链接),将指针提取到一张单独的表中,解决了部分问题。

3. 索引结构 (Indexed Structure)

也称为索引分配

  • 原理: 系统为每个文件建立一个索引块(Index Block)。这个索引块不存数据,而是像“目录”一样,存储该文件所有数据块的物理盘块号列表。
    • 文件目录项记录:索引块的地址
  • 特点
    • 优点
      • 支持随机访问:直接查索引块,就能知道第N个逻辑块对应的物理块号,不需要遍历。
      • 无外部碎片:数据块可以离散分布。
      • 扩展较容易
    • 缺点
      • 空间开销:对于小文件,为了存几个数据块还要额外占用一个索引块,利用率低。
      • 大文件处理复杂:如果文件很大,一个索引块存不下所有盘块号,就需要多级索引(如二级索引、三级索引),这会增加访问磁盘的次数(开销变大)。

4. 哈希结构 (Hash Structure)

通常用于数据库或特定类型的文件组织(直接存取文件)。

  • 原理: 不通过目录或指针查找,而是通过一个哈希函数(Hash Function),根据记录的**关键字(Key)**直接计算出该记录在磁盘上的物理地址。
    • 公式:Address = H(Key)
  • 特点
    • 优点
      • 检索速度极快:理论上时间复杂度为 $O(1)$,不需要像树那样逐层查找,也不需要像链表那样遍历。
    • 缺点
      • 哈希冲突:不同的关键字可能计算出相同的地址,必须有冲突解决机制(如链地址法)。
      • 不适合范围查询:如果想查找“ID > 100”的所有记录,哈希结构无能为力,只能全盘扫描。
      • 空间利用率难以控制:为了减少冲突,通常需要预留比实际数据量大的存储空间。

总结对比

结构名称 核心类比 随机访问性能 空间利用/碎片 适用场景
连续结构 数组 极好 (直接计算) 差 (外部碎片,扩展难) 只读系统、对读写速度要求极高的场景
链接结构 链表 (只能顺序查) 好 (无碎片) 仅需顺序访问的文件 (如日志文件)
索引结构 书的目录 (查表) 一般 (索引块开销) 通用操作系统 (如Unix/Linux的文件系统)
哈希结构 字典/Map 极好 (直接命中) 取决于哈希函数 数据库索引、键值对存储

一般说来,SoC称为系统级芯片,也称片上系统,它是一个有专用目标的集成电路产品。以下关于SoC不正确的说法是( SoC是一款具有运算能力的处理器芯片,可面向特定用途进行定制的标准产品)。

SoC称为片上系统,它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。所以B的说法是错误的,SoC不是一块处理器芯片。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。(A是正确的)

从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;(C是正确的)

从广义角度讲,SoC是一个微小型系统,如果说中央处理器(CPU)是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。国内外学术界一般倾向将SoC定义为将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,它通常是客户定制的,或是面向特定用途的标准产品。(D是正确的)。

( 任务执行时间 )不是反映嵌入式实时操作系统实时性的评价指标。

一个嵌入式实时操作系统(RTOS)的评价要从很多角度进行,如体系结构、API的丰富程度、网络支持、可靠性等。其中,实时性是RTOS评价的最重要的指标之一,实时性的优劣是用户选择操作系统的一个重要参考。

严格地说,影响嵌入式操作系统实时性的因素有很多,如常用系统调用平均运行时间、任务切换时间、线程切换时间、信号量混洗时间(指从一个任务释放信号量到另一个等待该信号量的任务被激活的时间延迟)、中断响应时间等。

任务执行时间不是反映RTOS实时性的评价指标。

在关系R(A1,A2,A3)和S(A2,A3,A4)上进行关系运算的4个等价的表达式E1、E2、E3和E4如下所示:Image

本题考查关系代数表达式查询问题,相同结果下,自然连接的效率优于笛卡尔积。 备选答案中,E1和E2为自然连接,故优先选择A、B选项。 A选项和B选项相比,B选项将可以对子表做的操作先做了,再做连接,最后投影,这是效率最高的一种方法。(这里题目本身存在瑕疵,CD选项均少了一个等值连接)

给定学生S(学号,姓名,年龄,入学时间,联系方式)和选课SC(学号,课程号,成绩)关系,若要查询选修了1号课程的学生学号、姓名和成绩,则该查询与关系代数表达式( Image)等价。

解答本题需要对关系代数中的自然连接有一定了解。自然连接操作会自动以两个关系模式中共有属性值相等作为连接条件,对于连接结果,将自动去除重复的属性。所以在本题中,连接条件为两个表的学号相等,当连接操作完成以后,形成的结果表,有属性“学号,姓名,年龄,入学时间,联系方式,课程号,成绩”,此时要选择1号课程的学生记录,应使用条件6= “1”,其含义是表中的第6个属性值为“1”。所以本题应选B

← 返回首页