两个月冲刺软考——概念+求已知内存按字节编址从(A)…到(B)…的存储容量+求采用单/双缓冲区需要花费的时间计算 类型题目讲解

本文主要是介绍两个月冲刺软考——概念+求已知内存按字节编址从(A)…到(B)…的存储容量+求采用单/双缓冲区需要花费的时间计算 类型题目讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.四个周期的区别与联系

时钟周期:也称为CPU周期机器周期是CPU操作的基本时间单位。

指令周期:是指CPU执行一条指令所需的全部时间。一个指令周期通常由多个时钟周期组成,因为执行一条指令可能需要多个步骤,如取指令、译码、执行、访存和写回等。

总线周期:总线周期是数据在计算机总线上传输所需的时间。 它涉及CPU与其他系统组件(如内存、输入/输出设备)之间的数据传输。一个总线周期可能包括多个时钟周期。

CPU是在一个总线周期结束时响应DMA(直接内存访问)请求的。

补充(DMA响应的过程):当外围设备准备好进行数据传输时,它会向DMA控制器发出一个DMA请求信号;DMA控制器接收到请求后,会根据设定的优先级和当前总线状态决定是否立即响应。如果总线空闲,DMA控制器会向CPU发出总线请求(HOLD信号),请求控制总线;CPU在完成当前的总线周期后,会释放总线控制权,DMA控制器获得总线控制权,开始进行数据传输;DMA控制器接管总线后,直接从内存或外设进行数据读写操作。这个过程不需要CPU的参与,数据可以直接在内存和外设之间传输;数据传输完成后,DMA控制器会释放总线控制权,并向CPU发送一个中断信号,告知数据传输已经完成;CPU响应中断,执行必要的后续处理,如检查传输状态、准备下一次数据传输等。

2.三种寻址方式

先补充一下:机器指令是一组有意义的二进制代码。其格式为:操作码字段+地址码字段,还有操作数、寄存器字段、立即数等等。

寄存器寻址:操作数直接存储在CPU内部的寄存器中。这种寻址方式的速度非常快,因为不需要访问内存,操作数已经在寄存器中了。

立即寻址:操作数直接包含在指令中,作为指令的一部分存储在代码段。通常用于将常数或立即数加载到寄存器中,或者用于算术运算和逻辑运算。

直接寻址:指令中包含了操作数在内存中的确切地址。这种寻址方式允许CPU直接访问内存中的特定位置,无需额外的地址计算。

间接寻址:它在指令中不直接给出操作数的地址或值,而是给出一个包含操作数地址的寄存器。

其速度排序为:寄存器寻址>立即寻址>直接寻址>间接寻址

3.求已知内存按字节编址从(A)…到(B)…的存储容量

题目中通常给出的十六进制,这里A取B3000H,B取DABFFH先求出它们中间有多大区域:A-B+1,即(DABFFH+1)-B3000H=27C00H,换成十进制为162816/1024=159K。

4.求采用单/双缓冲区需要花费的时间计算

这种类型的题目当中一般会有三个时间段:数据先从磁盘输入到缓冲区中,再从缓冲区传送到用户工作区,最后进行系统处理。时间取值分别设为A、B、C。

对于单缓冲区:当时间段B结束之后,缓冲区便处于空闲状态了,故工作区处理数据的同时,下一波数据便可以开始往缓冲区里传输了,所以总时间为:(15+5)*10+1=201.这里的1表示最后一个数据的处理时间。

  • 当A>C时,总时间=n*(A+B)+C;

  • 当A<C时,总时间=n*(C+B)+A;

对于双缓冲区:顾名思义有两个缓冲区来接受或传送数据,可以实现三个时间段并行工作。

  • 当A>C时,总时间=n*A+B+C;

  • 当A<C时,总时间=n*(C+B)+A;

题目中符合A>C的情况,故总时间为10*15+5+1=156

两个月冲刺中级软件设计师,欢迎大家一起讨论交流,同时也希望各位大佬们指出错误,我这边及时修改。

这篇关于两个月冲刺软考——概念+求已知内存按字节编址从(A)…到(B)…的存储容量+求采用单/双缓冲区需要花费的时间计算 类型题目讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1131430

相关文章

SQL Server中行转列方法详细讲解

《SQLServer中行转列方法详细讲解》SQL行转列、列转行可以帮助我们更方便地处理数据,生成需要的报表和结果集,:本文主要介绍SQLServer中行转列方法的相关资料,需要的朋友可以参考下... 目录前言一、为什么需要行转列二、行转列的基本概念三、使用PIVOT运算符进行行转列1.创建示例数据表并插入数

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav

MyBatis中的两种参数传递类型详解(示例代码)

《MyBatis中的两种参数传递类型详解(示例代码)》文章介绍了MyBatis中传递多个参数的两种方式,使用Map和使用@Param注解或封装POJO,Map方式适用于动态、不固定的参数,但可读性和安... 目录✅ android方式一:使用Map<String, Object>✅ 方式二:使用@Param

C# WebAPI的几种返回类型方式

《C#WebAPI的几种返回类型方式》本文主要介绍了C#WebAPI的几种返回类型方式,包括直接返回指定类型、返回IActionResult实例和返回ActionResult,文中通过示例代码介绍的... 目录创建 Controller 和 Model 类在 Action 中返回 指定类型在 Action

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

VS Code中的Python代码格式化插件示例讲解

《VSCode中的Python代码格式化插件示例讲解》在Java开发过程中,代码的规范性和可读性至关重要,一个团队中如果每个开发者的代码风格各异,会给代码的维护、审查和协作带来极大的困难,这篇文章主... 目录前言如何安装与配置使用建议与技巧如何选择总结前言在 VS Code 中,有几款非常出色的 pyt

python中的鸭子类型详解

《python中的鸭子类型详解》鸭子类型是Python动态类型系统的灵魂,它通过强调“行为”而非“类型”,赋予了代码极大的灵活性和表现力,本文给大家详细介绍python中的鸭子类型,感兴趣的朋友一起看... 目录1. 核心思想:什么是鸭子类型?2. 与“传统”静态类型语言的对比3. python 中无处不在

Java枚举类型深度详解

《Java枚举类型深度详解》Java的枚举类型(enum)是一种强大的工具,它不仅可以让你的代码更简洁、可读,而且通过类型安全、常量集合、方法重写和接口实现等特性,使得枚举在很多场景下都非常有用,本文... 目录前言1. enum关键字的使用:定义枚举类型什么是枚举类型?如何定义枚举类型?使用枚举类型:2.

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关