Qiming の 小屋

Qiming の 小屋

计算机系统分析与性能评价前三章总结

2024-10-14

第 1 章 | 计算机系统性能评估介绍

1.1 计算机系统架构的演变

早期计算机的架构基于冯-诺依曼存储程序、单流指令流架构。

  • 没有复杂的操作系统,数据库,网络和高级编程语言

  • 由五个主要元素组成:存储器,算术逻辑单元,输入单元,输出单元和控制元件。

CPU架构:CPU是计算机硬件系统的核心,由运算器和控制器组成,其主要任务是加工和处理各种数据。CPU中有寄存器,用于保存指令,指令操作数和操作结果; 程序位置计数器,包含指令或操作数的内存中位置;程序计数器:包含要执行的下一条指令位置;

  • ALU(算术逻辑单元):ALU 的主要操作是获取零个或多个操作数并执行指令中调用的函数;

  • 控制单元:使用指令寄存器中的状态寄存器和指令来确定 CPU 必须在寄存器、ALU 和数据路径上执行哪些功能。

指令架构:

  • 围绕指令集组织计算机系统;精简指令集计算机(RISC) 和复杂指令集计算机(CISC)。

  • 指令循环中执行六个基本功能:指令抓取、指令解码、操作数有效地址计算、操作数抓取、操作执行和下一个地址计算。

内存结构:

  • 通常,计算机系统的存储器是规则结构,使用存储器地址寄存器的内容并通过存储器数据寄存器传输数据进行寻址。

  • 内存体系结构基于内存字的组织。 最简单的形式是线性二维结构。

I/O结构:将信息从计算机的主存储器移入或移出。

辅助存储和外围设备存储:

  • 存储层次结构由各种数据存储类型组成。 从速度最快的内存元素(缓存)到速度最慢的元素(如磁带驱动器)。

  • 典型的辅助存储设备包括磁带、磁盘、紧凑型光盘和存档存储设备(如盘塔点唱机)。

网络结构:

  • 计算机网络为计算机接收和发送信息提供了另一个输入和输出路径。

  • 网络以多种方式构建:它们可以具有中央交换元件,共享中央存储库,或者可以使用智能接口单元通过通信介质(如电话线或数字电缆)进行连接。

计算机体系结构:

  • 计算机体系结构代表了计算机硬件组件的互连手段以及所展示的数据传输和处理模式。 基本架构以 CPU 为核心,主内存和输入/输出系统位于 CPU 的两侧。

  • 第二种计算机配置是中央输入/输出控制器。

  • 第三种计算机体系结构使用主存储器作为计算机系统中所有数据和指令流入和流出的位置。

  • 第四种计算机体系结构使用通用数据和控制总线来连接所有设备构成计算机系统。

  • 双总线架构是对单共享中央总线架构的改进。 此体系结构要么将数据分离并控制两条总线,要么共享它们以提高整体性能。

1.2 数据库系统的演变

自 20 世纪 60 年代以来,数据库系统就一直伴随着我们。 数据库系统已经从简单的持久信息存储库发展成为非常强大的信息管理和使用工具。

  • 简单存储库:使用简单的直接寻址方式构建

  • 文件管理系统:

    • 单用户持久存储:提供了一个简单的接口和实现存储和检索信息

    • 多用户并发数据库系统:存储的信息可用于共享,并以动态方式进行共享

1.3 操作系统的演变

现代操作系统是计算机软件、固件和可能的硬件,它们与计算机系统的硬件组件进行低层次的交互,以管理各种软件应用程序之间的计算机资源共享。 其目标是:允许系统中的所有活动任务公平共享这些资源。操作系统作为系统中权限最高的软件元素运行,需要中断和定时器的基本硬件支持,以实现对执行程序的控制。

一般来说,操作系统提供以下服务:

  • 硬件管理(中断处理、定时器管理)

  • 进程间同步和通信

  • 进程管理

  • 资源分配(调度、分派)

  • 存储管理和访问(I/O)

  • 内存管理

  • 文件管理

  • 保护系统和用户资源

1.4 计算机网络的演变

网络是相互连接的计算设备和程序的组合,用于在网络中各点(节点)之间移动信息(和计算)。 互联有多种形式,如专用链路、共享链路、电话线、微波链路和卫星链路。

  • Appanet:

    • 优点 :提供必要的信息交换服务

    • 缺点:不能提供实时的交换环境

  • 局域网:

    • 优点:作业和处理器间通信的吞吐量或周转时间

    • 缺点:不是针对所有人

  • 无线网:

    • 优点:为无线手机社区提供更广泛的应用

1.5 性能评估的必要性

  • 确保系统适合预期应用

  • 确保系统满足给定的效率和可靠性要求

  • 在给定的资源条件下,设计/构建/运行系统,使其接近最佳处理能力水平

  • 选择--在特定条件下选择高 P/C 系统

  • 修改--对于给定系统,找出瓶颈,从而改造组件或子系统

  • 优化设计--根据性能评估结果,选择最优设计

1.6 性能评估在计算机工程中的作用

满足系统要求:

可扩展性、灵活性、可用性、可靠性、可重构性、容错、响应能力、速度、吞吐能力、逻辑复杂性和易于开发(模块化)


第 2 章 | 性能评估方法和评估标准

2.1 性能评价方法概述

模型能做什么(What can the models do)

  1. 为用户提供一种工具,以简洁的方式定义系统及其问题。

  2. 提供手段来确定关键要素、组件和问题。

  3. 提供一种方法来评估设计或综合评估提出的解决方案。

  4. 可以作为预测工具,用于预测并辅助规划未来的改进或发展。

物理模型与数学等式关系(抽象) → 模型是对系统的描述,它们是根据理论定律和原理开发出来的。→图形表示

如何判断模型的质量(Judge the quality of models)

  • 可以利用物理定律来描述它。

  • 可以制作图示(图形)表示,以便更好地理解模型。

  • 系统的输入、元素和输出都在可控的范围内。

模型的真实度取决于所应用的抽象程度。

系统被认为是一组统一的物体,它们联合起来执行某种既定的功能或流程。 模型是对系统的抽象,它提取了重要的项目及其相互作用。

系统被认为是为执行某种既定功能或流程而联合起来的一组统一的对象,而模型则是对系统的抽象,它提取了重要的项目及其相互作用。

构建模型(Construct a model)

  • 方法:自上而下的分解

    1. 在每一步中明确模型或其组件的目的

    2. 推导系统或组件的边界

    3. 确定建模的详细程度

  • 输入:源自所研究的系统以及我们希望提取的性能指标

  • 所需性能指标:驱动模型的设计和/或重新设计

开发和使用模型的方法(The methodology for developing and using a model):

  1. 定义要研究的问题以及分析标准。

    • 确定问题的范围,以及该现实世界系统是否适合建模。

  2. 定义和/或完善系统模型(包括将系统的抽象概念发展成数学、逻辑和程序关系)。

    • 模型通常由多个静态和动态部分组成。

    • 它们定义了系统的元素(静态)、其特征以及这些元素随时间变化而相互作用的方式,以调整或反映真实系统随时间变化的状态。

  3. 收集数据作为模型的输入(定义外部环境以及必须输入模型或从模型中提取的内容,以“模拟”该环境)。

    • 通常需要额外的工作来收集驱动模型的定义数据值。

    • 假设的、或基于初步分析的,或者可能不需要精确的数值来进行良好的建模,得到数据。

  4. 选择建模工具,并为工具实施准备和增强模型。

    • 模拟(Simulation):基于建模者的专业知识,允许进行广泛的各种检查。

    • 分析建模(Analytical Modeling):提供最佳、最差和平均情况分析。

    • 测试平台(Testbeds):提供一种在系统真实硬件组件上测试模型的方法。

    • 运行分析(Operational Analysis):进行分析时,我们需要拥有真实的系统,并且能够使其执行所需的研究。

  5. 验证工具实施是否准确反映了模型。

    • 这个模型必须经过验证,以确定它是否准确反映了所要研究的现实世界系统。验证通常是通过手动检查模型的计算结果是否与工具实施的结果相匹配来完成的。

  6. 验证工具实施是否提供了与所建模的现实系统相对应的所需准确性或一致性。

    • 验证涉及确定模型的实施是否准确描绘了所建模的现实世界系统。

  7. 对模型进行实验以获得性能指标。

  8. 分析工具结果。

  9. 利用这些发现来推导现实系统的设计和改进方案。

分析建模工具(Analytical modeling tools)

如果系统可以被视为具有服务、等待时间和分析时间明确界定的队列集合,那么可以应用排队分析来解决该问题。

为什么选择分析模型作为建模工具?

  1. 分析模型能够捕捉系统更显著的特征——也就是说,大多数系统都可以表示为排队延迟、服务时间、到达时间等等,因此,我们可以从这个角度出发进行建模,省略细节。

  2. 假设或分析是切合实际的。

  3. 机器中已有求解排队方程的算法,可以加快分析速度。

排队模型(Queuing models)

  • 排队即等待队列,而排队论则是研究等待队列动态的理论。

  • 在最简单的排队分析层面(一个队列),有一个由到达顾客(到达率)供给的队列(等待队列);该队列由一个服务台操作,服务台根据某种服务率从队列中提取顾客。

  • 顾客到达队列,如果服务台正忙,则顾客被放入等待设施(队列)中,除非队列已满,在这种情况下顾客会被拒绝(没有等待空间)。

  • 另一方面,如果队列为空,顾客会被带到服务位置,并延迟服务率时间。然后顾客离开队列。

  • 队列运作:𝑃(T_a<t)=1−𝑒^{−𝜆𝑡},其中平均到达率为λ。

  • 服务时间分布:𝑃 (T_𝑠<𝑡)=1− 𝑒^{−𝜇𝑡},其中t >> 0,符号𝜇用于描述其平均服务率的这一常见分布。

  • 肯德尔记号:𝐴/𝐵/𝑐/𝐾/𝑚/𝑍,其中A表示到达间隔时间分布,B表示服务时间分布,c表示服务台数量,K表示系统容量,m表示来源中的数量,Z表示队列规则。

模拟建模工具(Simulation modeling tools)

优势:

  1. 灵活性高,是一个动态工具

  2. 能够在不干扰实际系统的情况下关联问题

  3. 可以在非常受控的环境中进行

  4. 可以压缩时间

  5. 允许研究原本无法观察到的现象

  6. 可以对所有组件进行敏感性分析

劣势:

  1. 成本高

  2. 执行需要花费大量时间

  3. 所做的假设可能成为关键因素

  4. 并导致模型产生偏差,甚至

  5. 使其脱离现实范围

  6. 可能过于繁琐,难以有效使用和初始化

模拟形式:

  • 连续模拟:基于时变信号或变量,随时间变化来模拟过程状态的变化

  • 离散模拟:则依赖于事件条件和事件转换来改变状态

  • 排队模拟:为构建和分析基于队列的系统提供了动态手段

  • 混合模拟:动态模拟分析技术中分析的数学事件

仿真模型: 仿真模型是根据系统与仿真的契合度来构建并用于系统分析的。

测试平台作为建模工具(Testbeds as modeling tools)

  • 测试平台是系统的复合抽象。

  • 测试平台用于研究系统组件及其交互,以更深入地了解实际系统的本质。

  • 测试平台由原型和实际系统组件的部分组成,用于深入了解系统元素的工作原理。

测试平台提供:

  • 一个真实的软硬件环境。

  • 一种手段,用于加深对系统功能需求和操作行为的理解。

  • 一个集成环境,用于评估解决系统问题方案之间的相互关系。

  • 一个环境,其中的设计决策可以基于理论研究和实证研究。

测试平台(Testbed)

  • 实验子系统:收集真实系统组件和/或原型的集合

  • 监控子系统:提取原始数据并支持组件进行整理

  • 模拟-激励子系统:为实验者提供真实系统的输入和输出,以提供一个逼真的实验环境

作为建模工具的运行分析(Operational analysis as a modeling tool)

  • 如何从实际系统中提取信息?

  • 探针:监控选定系统点的状态。

  • 逻辑感应子系统:将探测到的原始输入数据解释为有意义的信息项。

  • 计数器:为其他需要定时间隔的活动设置采样率。

  • 显示/记录单元:在感应和简化信息时对其进行记录和显示。

2.2 性能指标和评估标准

Performance metrics:选择计算机系统架构和系统支持软件需要性能指标和评估标准。

Collected data :

  • 定性类

    • 可以推导出具体的性能指标

      • 构建拟议系统的模型,并推导出综合指标来评估给定的未来计算机系统架构和配置

  • 定量类

    • 只能推导出主观指标


第 3 章 | 基本概念和一般测量原理

性能方面的定性指标包括:用户响应时间、易用性、可靠性、容错性等。

在我们对计算机系统性能的研究中,为了做到科学准确,我们必须关注所研究系统的可测量的定量特性。在性能评价领域,更应该使用定量指标。

衡量性能的两类选择:

  • 以系统为导向的衡量方式,通常围绕吞吐量和利用率这两个概念展开。

    • 吞吐量定义为在测量的单位时间内平均处理的项数(例如,事务、进程、客户、作业等)。

    • 利用率是衡量特定资源忙碌时间所占的比例。

  • 以用户为导向的衡量指标通常包括响应时间或周转时间。

    • 这两个指标指的是从用户或应用程序在系统上启动作业开始,到作业的回答或响应返回给用户时为止,系统所经过的时间。

    • 这些指标并不清晰明确,因为其中涉及许多变量(随机的)。

    • 这些指标通常是根据期望值或平均值以及这些值的方差来讨论的。

    • 总结:这两个指标是非明确、有歧义的,因其涉及到多种其它情况。响应时间很大程度上取决于服务器当前的状态。如学期选课时,大流量冲击下,响应速度会变慢,甚至无响应。所以想要衡量这些指标,必须利用统计学的知识,如期望、方差等。

我们讨论计算机系统性能所需的其他基本概念包括测量或采样系统的方法。这些概念涉及时间、事件、间隔、响应、独立性和随机性。(定量指标测量/采样的方法,时间、事件、间隔、响应、独立性、随机性的定义。)

通过使用时间戳,我们将能够确定这些事件相对于彼此的顺序。事件𝐸的时间戳将表示为𝐸(𝑡)。在现实世界的系统中,时间主要有两种表示方式:一种是连续时间,另一种是离散间隔或步骤。典型的计算机系统时钟或周期时间以纳秒10^{−9} 秒或大约十亿分之一秒的时间片来测量。例如,一个1.5 GHz的处理器意味着该处理器的时钟周期约为0.67纳秒,或6.67^{−10}秒。

  • 每个事件都有对应的时间标志;

  • 时间可以理解为离散和连续两种不同的形式。所谓连续,就是时间节点间隔非常小乃至无穷接近于0;

  • 计算机典型时钟频率为一纳秒。

木桶理论:系统中最慢的设备(CPU/内存/外存等)将决定整个系统的实际速度。

事件描述了我们系统中感兴趣的实体。事件通常代表某种动作。例如,时钟周期的开始或时钟周期的结束。事件必须可以被控制:组成更大的系统。

必须要了解系统中的事件和事件的相互关系。事件之间必须要有执行的顺序(事件的执行顺序被描述为一个sequence),从而保证程序的正常运行。这里举的例子是:加载data到register指令和data存储到address指令。

我们必须了解系统中事件发生的所有可能条件以及它们何时有效。

在考虑任何计算机系统时,状态都是一个重要的概念。状态𝑆定义为系统中所有事件以及它们在定义状态下条件的有效值的集合。这可以描述如下:S={E_1 (value), E_2 (value), E_3 (value),⋯, E_n (value)}.

除了前文知道的事件以及事件之间的关系,我们还必须知道系统中事件所有可能的条件、条件有效的时刻。整个大事件有效意味着所有小事件有效,也以为着小事件的条件状态均有效。这里举的例子是CPU。例如:若硬盘挂载失败,则无法读写文件。