• 【Linux基础】计算机概论


    1. 计算机系统组成

    从一般使用者的角度来看,一套完整的计算机系统主要由硬件系统和软件系统两部分组成,其中软件系统根据其作用又可分为系统软件和应用软件。因此,从这一层面上看,计算机系统自下而上可以看成是由三个层次构成的,即:计算机硬件、系统软件和应用软件,下层为上层功能的实现提供支持。 

    从计算机设计者的角度看,计算机系统可以按功能再细分为7层(逻辑划分),每一个层次都实现某项特定功能,并有一个特定的假想机器与之对应。对应计算机的每一个层次的这种假想机器称之为虚拟机。每一层的虚拟机都执行自己特有的指令集,必要时还可以调用较低层次的虚拟机来完成各种任务。如下图是一个业界普遍接受的代表不同抽象的虚拟机器的计算机组织结构层次图。

    (1)计算机硬件

    根据冯诺依曼体系结构,计算机硬件有五大组成部分:控制器(Control Unit,CU)、运算器(Arithmetic Logic Unit,ALU)、存储器(Memory)、输入设备(Input)和输出设备(Output)

    控制器和运算器等部件被集成在一起称为中央处理单元(Central Processing Unit,CPU),CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算以及控制功能。CPU实际要处理的数据则完全来自于主内存, 至于数据会流进/流出内存则是CPU所发布的控制命令!

    存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于临时存放程序、数据及中间结果。外部存储设备容量大、速度慢,可以长期保存程序和数据。

    输入设备和输出设备合成为外部设备(外设),输入设备用于输入原始数据以及各种命令,而输出设备则用于计算机运行的结果。

    冯诺依曼体系结构(参考)

    (2)系统软件

    系统软件是指能够对计算机硬件资源进行管理,对用户方便使用计算机硬件资源提供服务的软件,其核心就是操作系统。

    (3)应用软件

    应用软件则是人们使用各种计算机语言为解决各种应用问题而编制的程序。

    2.CPU概念

    常见CPU种类?

    我们所使用的软件都要经过CPU内部的微指令集来达成才行, 这些指令集的设计主要又被分为两种设计理念,这就是目前世界上常见到的两种主要CPU种类: 精简指令集(RISC)与复杂指令集(CISC)系统。

    (1)精简指令集(Reduced Instruction Set Computer, RISC)

    RISC微指令集较为精简,完成的动作也很单纯,但是若要做复杂的事情,就要由多个指令来完成。每个指令的执行时间都很短,因次指令的执行效能较佳;。

    目前世界上使用范围最广的CPU可能就是ARM。

    (2)复杂指令集(Complex Instruction Set Computer, CISC)

    CISC微指令集较为复杂,可以处理的工作较为丰富,每个小指令可以执行一些较低阶的硬件操作。每个指令花费的时间较长。

    常见的CISC微指令集CPU主要有AMD、Intel、VIA等的x86架构的CPU。目前世界上x86的CPU主要供应商为Intel。

    为何称为x86架构?

    这是因为最早的那颗Intel发展出来的CPU代号称为8086,后来依此架构又开发出80286, 80386..., 因此这种架构的CPU就被称为x86架构了。

    这种x86架构CPU被大量使用於个人计算机(Personal computer), 因此个人计算机常被称为x86架构的计算机!

    为何称为x86_64架构?

    2003年以前由Intel所开发的x86架构CPU由8位升级到16、32位,后来AMD依此架构修改新一代的CPU为64位, 为了区别两者的差异,64位的个人计算机CPU又被统称为x86_64的架构!

    8位、16位、32位、64位所指的是什么?

    一般指计算机CPU的字长,也就是计算机一次能够处理的二进制信息的次位。例如32位计算机的CPU一次最多能处理32位数据,当然32位计算机通常也可以处理16位和8位数据。

    4c8T

    c 应该是croe 指核心的意思 T 指的是线程 4c8t意思是四核心八线程 

    两路16核32线程指的是什么?

    两路是说当前服务器有两颗CPU,共16个物理核(每颗CPU有8个物理核);超线程开启,共32个逻辑核(每个物理核模拟拆分为2个逻辑核),可同时执行32线程的任务(每个物理核可以同时执行2个线程)。
    备注:未开启超线程时,逻辑核总个数=物理核总个数;开启超线程时,逻辑核总个数=2*物理核总个数=线程总个数。

    单核CPU、超线程、多核CPU(物理核、逻辑核)、多个CPU(路)(参考)

    如何知道Linux系统有多少核心和处理器(参考)

    虚拟CPU

    虚拟CPU指的是从底层主机硬件映射到虚拟机的那些CPU,可以是物理或逻辑CPU。

    通常情况下,来自主机服务器的1个逻辑CPU映射到虚拟机内的1个虚拟CPU,因此虚拟CPU和逻辑CPU几乎是类似的术语。

    CPU运算速度

    CPU的运算速度常使用 MHz 或者是 GHz 之类的单位,这个 Hz 其实就是秒分之一。例如3.0GHz 表示这颗CPU在一秒内可以工作3.0x109次。CPU运算速度进位一般是十进制,1GHz=1000MHz=1000x1000KHz=1000x1000x1000 Hz。

    CPU频率

    频率就是CPU每秒钟可以进行的工作次数,频率越高表示这颗CPU单位时间内可以作更多的事情。 例如CPU频率为3.0GHz, 表示这颗CPU在一秒内可以进行3.0x109次工作,每次工作都可以进行少数的指令运作。

    注意,不同的CPU之间不能单纯的以频率来判断运算效。这是因为每颗CPU的微指令集不相同,架构也不见得一样, 每次频率能够进行的工作指令数也不同之故!所以,频率目前仅能用来比较同款CPU的速度!

     CPU外频和倍频、超频

    CPU与外部各组件的速度理论上应该要一致才好,但是因为CPU需要较强大的运算能力, 所以才有了外频和倍频的设计。

    外频指的是CPU与外部组件进行数据传输时的速度,倍频则是 CPU 内部用来加速工作效能的一个倍数, 两者相乘才是CPU的频率速度。例如CPU频率是3.0GHz, 而外频是333MHz,因此倍频就是9倍!(3.0G=333Mx9, 其中1G=1000M)

    超频指的是提高CPU的倍频或者是外频将CPU频率调高。由于CPU的倍频通常在出厂时已经被锁定而无法修改, 因此较常被超频的为外频。但是因为频率并非正常速度,故可能会造成当机等问题。

    CPU等级

    由於x86架构的CPU在Intel的Pentium系列(1993年)后就有不统一的脚位与设计,为了将不同种类的CPU规范等级, 所以就有i386,i586,i686等名词出现了。基本上,在Intel Pentium MMX与AMD K6年代的CPU称为i586等级, 而Intel Celeron与AMD Athlon(K7)年代之后的32位CPU就称为i686等级。 至於目前的64位CPU则统称为x86_64等级。

    目前很多的程序都有对CPU做最佳化的设计,万一哪天你发现一些程序是注明给686的CPU使用时, 就不要将他安装在586以下等级的计算机中,否则可是会无法执行该软件的! 不过,在686倒是可以安装386的软件喔!也就是说,这些东西具有向下相容的能力啦!

     3.常用计算单位

    (1)容量

    计算机依据有没有通电来记录信息,所以理论上它只认识 0 与 1 而已。0/1 的单位我们称为 bit。但 bit 实在太小了, 并且在储存数据时每份简单的数据都会使用到 8 个 bits 的大小来记录,因此定义出 byte 这个单位,他们的关系为:1 Byte (大B)= 8 bits(小b)

    容量进位一般是二进制,1PB=1024GB,1GB=1024MB,1MB=1024KB,1KB=1024Byte

    (2)速度

    网络传输方面,常使用的单位为 Mbps(Mbits per second),亦即是每秒多少 Mbit。大家常听到的 8M/1M ADSL 传输速度,其实理论最大传输值为:每秒 1Mbyte/ 每秒125Kbyte的上传/下载容量。

     CMP指令是由美国斯坦福大学提出的,英文名称是Chip multiprocessors,翻译成中文就是单芯片多处理器,也指多核心其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。

    SMP

    双路(英文缩写为SMP)则是采用两颗相同型号并且能够支持SMP技术的CPU组成的一套系统。指在一台计算机上
    汇集了一组处理器,多个CPU共享计算机内存子系统及总线架构。在这种架构中,同时由多个处理器运行操作
    系统的单一复本,并共享内存和一台计算机的其他资源,系统将任务队列对称地分布于多个CPU之上,从而
    极大地提高了整个系统的数据处理能力。所有的处理器都可以平等地访问内存、I/O和外部中断。
    在对称多处理系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上。
    我们平时所说的双路CPU系统,实际上是对称多处理系统中最常见的一种形式,常用于主流的X86服务器和
    图形工作站领域。 

    NUMA

    UMA中,多个CPU访问内存是没有区别的,成本和速度相同。而在NUMA中,可以看成每个CPU有自己的内存,被称为本地内存,CPU之间通过一种方式联结,使得CPU可以访问非管辖范围内的内存(非本地内存),但是。由于不属于自己的一亩三分地,需要通过另一个通道获取,速度回比访问本地内存要慢。但是好处是这种方式增加了扩展性。缺点是速度会受影响,尤其是对mysql这类的数据库软件有较大影响。一般应该是接触不到,

     高性能计算:其扩展选项包括基于超级计算机的高性能计算(HPC)系统、基于集群的高性能计算(HPC)以及基于云计算的高性能计算(HPC)服务。

    彻底搞懂高性能I/O之道https://cloud.tencent.com/developer/article/1539352

    性能基础之常见RPC框架浅析https://cloud.tencent.com/developer/article/1465446

    用十条命令在一分钟内检查Linux服务器性能https://cloud.tencent.com/developer/article/1491254

    性能专题:一文搞懂性能测试常见指标https://cloud.tencent.com/developer/article/1532627

    性能测试总结(一)---基础理论篇https://cloud.tencent.com/developer/article/1552234

    X86服务器虚拟化的资源划分和性能优化  https://cloud.tencent.com/developer/article/1529314

    5G+边缘计算https://cloud.tencent.com/developer/article/1456263

     附录:

     Arithmetic [ə'rɪθmətɪk] 

    参考文档:

    第零章、计算机概论

  • 相关阅读:
    java笔试之输出
    构造块和静态块[转]
    Java 对象和类
    StringBuffer
    基于bootstrap的表格数据展示
    弹窗式页面
    读取xml
    更新xml
    写XML
    遍历一个类的字段和值
  • 原文地址:https://www.cnblogs.com/badboy200800/p/12263515.html
Copyright © 2020-2023  润新知