当前位置: 首页 > news >正文

【习题答案】《深入理解计算机系统(原书第三版)》

第一章 计算机系统漫游

考察Amdahl 定律

【练习题 1.1】

假设你是个卡车司机,要将土豆从爱达荷州的 Boise 运送到明尼苏达州的 Minneapolis, 全程 2500 公里。在限速范围内,你估计平均速度为 100 公里/小时,整个行程需要 25 个小时。
A. 你听到新闻说蒙大拿州刚刚取消了限速,这使得行程中有 1500 公里卡车的速度可以为 150 公里/小时。那么这对整个行程的加速比是多少?
B. 你可以为自己的卡车买个新的涡轮增压器。不过速度越快,价格越高。如果想要让整个行程的加速比为 1.67X ,那么你必须以多快的速度通过蒙大拿州?

【解A】

原本总耗时 = 25h
可改进部分为 1500 公里,原本用时 = 1500 / 100 = 15h,改进用时 = 1500 / 150 = 10h
改进部分的初始耗时比例 α = 15 / 25 = 0.6‬
加速比例因子 k = 15 / 10 = 1.5
加速比
image
S = 1 / [0.4 + 0.6/1.5] = 1.25×

更直观的理解:
image
S = 25 / (10 + 10) = 1.25×

【解B】

原本总用时 / 改进总用时 = 1.67
改进总用时 = 原本总用时 / 1.67 = 25 / 1.67 ≈ 15 = 可改进部分用时 + 固定用时
可改进部分用时 = 15 - 固定用时 = 15 - 10 = 5h
速度 = 1500 / 5 = 300km/h

【练习题 1.2】

公司的市场部向你的客户承诺,下一个版本的软件性能将改进 2X 。这项任务被分配给你。你 已经确认只有 80% 的系统能够被改进,那么,这部分需要被改进多少(即 k 取何值)才能达到整体性能目标?

【解】

S = 原本总用时 / 改进总用时 = 2
设原本总用时2t,改进后总用时为t
可改进部分的原本用时 = 0.8 x 2t = 1.6t
不可改进部分用时 = 0.4t
2t / (可改进部分改进后用时 + 0.4t) = 2
可改进部分改进后用时 = 0.6t
k = 1.6t / 0.6t = 2.67

也可以直接套公式计算
image

http://www.hskmm.com/?act=detail&tid=15487

相关文章:

  • 深入解析:mosquitto求医之路(3):Docker安装也不好使
  • 在K8S中,在服务上线的时候Pod起不来怎么进行排查?
  • 在线教育软件开发的全流程解析与优化方案
  • 在K8S中,⼀个pod的不同container能够分开被调动到不同的节点上吗?
  • 在K8S中,如果是因为开发写的镜像问题导致pod起不来该怎么排查?
  • 上海应用大学网课自动化学习脚本(基于Python selenium)代码重构为GUI界面 —— 技术笔记
  • 在K8S中,Deployment⽀持扩容吗?它与HPA有什么区别?
  • 开源语音识别FunASR入门详解
  • AT_abc201_f [ABC201F] Insertion Sort 题解
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • c语言动态内存分配
  • 2025.9.24——1橙
  • AT_arc172_d [ARC172D] Distance Ranking
  • Python爬虫实现大乐透历史数据抓取
  • 【读书笔记】《深入理解计算机系统(原书第三版)》第一章 计算机系统漫游
  • 如何将PPT每一页批量导出为高清JPG图片?一文讲清处理流程
  • 实用指南:计算机视觉:基于YOLOv11 实例分割与OpenCV 在 Java 中的实现图像实例分割
  • Java实现双色球历史是否中奖查询
  • ABC424 游记(VP)
  • Java实现大乐透历史是否中奖查询
  • 阿德勒的课题分离是很好用的东西
  • 别再混淆 PHP8.1 中纤程 Fibers 和协程 Coroutines 了 一文搞懂它们的区别
  • 主要测试的测试用例
  • 详细介绍Seata的AT模式分布式事务
  • VMware VeloCloud 漏洞分析:未授权远程代码执行全链条攻破
  • 【GitHub每日速递 250924】18 个 AI 投资大师齐上阵!这个开源对冲基金让你看透市场底牌
  • HJ9 提取不重复的整数
  • 2025年国家科技奖初评公布(科技进步奖)
  • 2025年国家科技奖初评公布(科技发明奖)
  • 12