1.2.6存储结构-磁盘管理:单缓冲区与双缓冲区读取、流水线周期、计算流水线执行时间

news2024/12/25 14:10:36

1.2.6存储结构-磁盘管理:单缓冲区与双缓冲区读取、流水线周期、计算流水线执行时间

  • 流水线周期
  • 计算流水线执行时间

微秒,时间单位,符号μs(英语:microsecond ),1微秒等于百万分之一秒(10的负6次方秒),1毫秒等于千分之一秒(10的负3次方秒)。

假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为15μs(微秒),由缓冲区送至用户区的时间是5μs,在用户区内系统对每块数据处理时间为11μs,若用户需要将大小为10个磁盘块的Doc1文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间为(201)μs;采用双缓冲区需要花费的时间为(156)μs。

这道题中处理数据有三个步骤:

  1. 从磁盘读入到缓冲区(15μs)
  2. 从缓冲区读入到(内存)用户区(5μs)
  3. 处理(内存)用户区数据(1μs)

单缓冲区:
步骤1和2都需要访问临界资源——缓冲区,所以需要合并成一个操作阶段。
使用缓冲区时不能并行,必须分开执行,时间为15μs+5μs20μs;其次处理数据1μs。
构造成流水线后,整个过程划分为2个阶段,1. 从磁盘读入到缓冲区(15μs),同时从缓冲区读入到用户区(5μs),共20μs,2. 处理(内存)用户去数据(1μs)。 根据流水线处理公式,
流水线执行时间=20μs+1μs+(10-1)×20μs=201μs

双缓冲区:
可以实现读入到缓冲区2和从缓冲区1读入到用户区的并发。
读入缓冲区,和从缓冲区读入用户区,可以对不同的缓冲区进行,也就是说,步骤1和2可以并行处理。
对于这里构造成流水线后,整个过程划分为3个阶段: 1. 从磁盘读入到缓冲区(15μs),2. 从缓冲区读入到用户区(5μs),3. 处理(内存)用户去数据(1μs)。 根据流水线执行公式,
流水线执行时间=15μs+5μs+1μs+(10-1)×15μs=156μs

图解如下

请添加图片描述

流水线周期

流水线应用过程中,会将需要处理的工作分为N个阶段,最耗时的那一段所消耗的时间称为流水线周期。
如:使用流水线技术执行100条指令,每条指令取指2ms,分析4ms,执行1ms,则流水线周期为4ms。

计算流水线执行时间

延续上面场景,将1个任务的执行过程可分成N个阶段,假设每个阶段完成时间为t,则完成该任务所需的时间为Nt。若以传统的方式,则完成k个任务的时间为kNt;而使用流水线技术执行,且花费的时间是Nt+(k-1)t。也就是说。除了第一个任务需要完整的时间外,其他都通过并行,节省了大量的时间。所以流水线的执行时间可通俗的表达为:

流水线执行时间 = 第 1 条指令的执行时间 + ( n − ) × 流水线周期 流水线执行时间=第1条指令的执行时间+(n-)×流水线周期 流水线执行时间=1条指令的执行时间+(n)×流水线周期
注意:n表示需要处理的任务数量

考试时,又需要注意一个细节,流水线的执行时间计算,进一步可以分为理论情况与实际情况两种不同的方式。

比如:
某计算机系统,一条指令的执行时间需要经历取指(2ms),分析(4ms),执行(1ms)三个阶段,现要执行100条指令,利用流水线技术需要多长时间?

理论上来说,1条指令的执行时间为:2ms+4ms+1ms=7ms
所以:理论流水线执行时间=2ms+4ms+1ms+(100-1)×4ms=403ms

而实际上,真正做流水线处理时,考虑到处理的复杂性,会将指令的每个执行阶段的时间都统一为流水线周期,即1条指令的执行时间为:4ms+4ms+4ms=12ms
所以:实际流水线执行时间=4ms+4ms+4ms+(100-1)×4ms=408ms

考试时80%以上的概率采用理论公式计算,如果理论公式计算结果无正确选项,再用实际公式计算。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/338169.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringSecurity的使用与步骤

1、SpringSecurity流程图2、导入坐标<!-- spring-boot-starter-security --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency> <!-- jjwt…

生物素-磺基-活性酯,Sulfo-NHS Biotin科研用试剂简介;CAS:119616-38-5

生物素-磺基-活性酯,Sulfo-NHS Biotin 结构式&#xff1a; ​ 编辑 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 英文名称&#xff1a;Sulfo-NHS-Biotin Sulfosuccinimidyl biotin 中文名称&#xff1a;磺酸基-Biotin-N-琥珀酰亚胺基酯 CAS&…

自己总结优化代码写法

jdk1.7新特性详解 开发期间略知jdk1.7的一些特性&#xff0c;没有真正的一个一个得展开研究&#xff0c;而是需要说明再去查&#xff0c;导致最整个新特性不是特别的清楚&#xff0c;这种情况以后得需要改变了&#xff0c;否则就会变成代码的奴隶。现在正好有时间可以细细的研…

SpringCloud第二讲 Ribbon负载均衡源码分析

前言介绍&#xff1a; 这一讲我们将依据Eureka的负载均衡规则&#xff0c;Eureka的具体服务搭建以及服务注册和服务发现可以参考基于Eureka实现服务注册和服务发现_热爱Java的编程小白的博客-CSDN博客 Eureka的服务搭建之后便可以在这上面进行服务注册&#xff0c;如果存在两个…

产品权限分析与设计

目前我们使用的访问控制授权方案&#xff0c;主要有以下4种&#xff1a;DAC自主访问控制ACL 访问控制列表MAC强制访问控制RBAC 基于角色的访问控制笔者将拆解和分析这4种权限管理方案的逻辑&#xff0c;并告诉你&#xff0c;这4种权限分别可以运用在什么样的场景中&#xff0c;…

不能注册?让小白也能使用【ChatGPT】

ChatGPT介绍最近ChatGPT可谓是非常火爆&#xff0c;使得互联网各界人士都备受关注&#xff0c;如果你还不了解ChatGPT,那你真的有点落后了哈。 简单介绍一下ChatGPTChatGPT是由美国人工智能OpenAI研究开发的一种全新聊天机器人模型&#xff0c;它能够通过学习和理解人类的语言跟…

研一寒假C++复习笔记--左值和右值的理解和使用

目录 1--左值和右值的定义 2--简单理解左值和右值的代码 3--非const引用只能接受左值 1--左值和右值的定义 左值&#xff1a;L-Value&#xff0c;L理解为 Location&#xff0c;表示可寻&#xff1b; 右值&#xff1a;R-Value&#xff0c;R理解为 Read&#xff0c;表示可读&a…

Windows 安装appium环境

1 windows Appium环境 1.1 安装Node.js Node.js的安装相对简单,下载安装包安装&#xff08;安装包node-v19.6.0-x64.msi&#xff09;, nodejs 安装 然后一路狂点下一步就可以了 安装完成后,在终端中输入node -v,显示版本号则表示安装成功 node-v16.13.1 1.2 JDK安装及环境变…

路由器刷固件

前言 我希望可以远程访问我的电脑。但&#xff0c;我不希望电脑总是处于运行状态&#xff0c;因为那样比较费电。所以需要一个方案&#xff0c;能将睡眠/关机中的电脑唤醒。 方案一&#xff1a;选用智能插座&#xff0c;远程给电脑上电。电脑设置上电自启。但&#xff0c;这存…

试题 算法训练 N皇后问题(明确清晰)

试题 算法训练 N皇后问题 提交此题 评测记录 资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;100ms Java时间限制&#xff1a;300ms Python时间限制&#xff1a;500ms 问题描述   在N*N的方格棋盘放置了N个皇后&#xff0c;使得它们不相互攻击&#xff08;即…

色彩-基础理论

颜色三大指标 色相 色相是颜色的一个属性&#xff0c;只有黑白灰没有色相这个属性(那银灰色是什么&#xff1f;) 颜色的相貌&#xff0c;指的也是给颜色一个名字 例如&#xff1a;暗红、酒红、土黄、墨绿 饱和度 颜色的鲜艳程度 纯度 饱和度主要取决于含色成分和消色成分&a…

IDE2022源码编译tomcat

因为学习需要&#xff0c;我需要源码编译运行tomcat对其源码进行一个简单的追踪分析。由于先前并未接触过java相关的知识&#xff0c;安装阻力巨大。最后请教我的开发朋友才解决了最后的问题。将其整理出来&#xff0c;让大家能够快速完成相关的部署。本文仅解决tomcat-8.5.46版…

tensorflow.js 视频图片多目标检测

前言&#xff1a;Tensorflow.js 官方提供了很多常用模型库&#xff0c;涵盖了平时开发中大部分场景的模型。例如&#xff0c;前面提到的图片识别&#xff0c;除此之外还有人体姿态识别&#xff0c;目标物体识别&#xff0c;语音文字等识别。其中一些可能是 Python 转换而来&…

前后端RSA互相加解密、加签验签、密钥对生成(Java)

目录一、序言二、关于PKCS#1和PKCS#8格式密钥1、简介2、区别二、关于JSEncrypt三、关于jsrsasign四、前端RSA加解密、加验签示例1、相关依赖2、cryptoUtils工具类封装3、测试用例五、Java后端RSA加解密、加验签1、CryptoUtils工具类封装2、测试用例六、前后端加解密、加验签交互…

导数与微分总复习——“高等数学”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰来复习一下之前学过的知识点&#xff0c;也就是导数与微分的总复习&#xff0c;依旧是高等数学的内容&#xff0c;主要是明天就要考高等数学了&#xff0c;哈哈哈&#xff0c;下面&#xff0c;让我们一起进入高等数学…

取电芯片全协议都可兼容

乐得瑞PD协议芯片/PD取电芯片/PD受电端协议芯片 支持5/9/12/15/20v定制 1、概述 LDR6328S 是乐得瑞科技有限公司开发的一款兼容 USB PD、QC 和 AFC 协议的 Sink 控制器。 LDR6328S 从支持 USB PD、QC 和 AFC 协议的适配器取电&#xff0c;然后供电给设备。比如可以配置适配器输…

二十九、异常处理

目录 ①前言: ②常见的运行时异常 ③常见的编译时异常 ④异常的处理机制 ⑤自定义异常 ①前言: 1.什么是异常&#xff1f; 异常是程序在“编译”或者“执行”的过程中可能出现的问题&#xff0c;注意&#xff1a;语法错误不算在异常体系中。 比如: 数据索引越界异常&…

C语言的程序环境和预处理详解

目录 一、程序的翻译环境和执行环境 二、编译和链接详解 2、1 翻译环境 2、2 编译过程详解 2、3 执行环境 三、预处理详解 3、1 预定义符号 3、2 #define 3、2、1 #define定义的符号 3、2、2 #define 定义宏 3、2、3 #define 替换规则 3、3 宏和函数的对比 3、4 条件编译 3、5…

CUDA中的底层驱动API

文章目录CUDA底层驱动API1. Context2. Module3. Kernel Execution4. Interoperability between Runtime and Driver APIs5. Driver Entry Point Access5.1. Introduction5.2. Driver Function Typedefs5.3. Driver Function Retrieval5.3.1. Using the driver API5.3.2. Using …

Springboot扩展点之BeanPostProcessor

前言 Springboot&#xff08;Spring&#xff09;的扩展点其实有很多&#xff0c;但是都有一个共同点&#xff0c;都是围绕着Bean和BeanFactory&#xff08;容器&#xff09;展开的&#xff0c;其实这也很好理解&#xff0c;Spring的核心是控制反转、依赖注入、面向切面编程&…