计算机系统漫游

原创 2017年04月10日 16:22:31

2017年4月趁着临近毕业时间比较充裕,就买了一本深入理解计算机系统(第三版),这本书的第二版之前浅浅的读过一遍只对里面的编译与链接章节印象深刻,其他章节对我来说完全陌生,我深知这本书的好,于是重新拾起这本书。为了加深自己的记忆就开始写博客记录自己的读书笔记。

第一章: 计算机系统漫游

  • 信息就是位+上下文,相同的二进制位在不同的上下文有着不同的含义

  • Amdahl定律(阿姆达尔定律),其主要思想是当我们对系统的某个部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。通过Amdahl定律可以快速的得到某个部分升级所得到的加速比。


    这里写图片描述

    加速比的公式如上,它等于执行升级前后的整个任务的执行时间比,而Amdahl定律提供了一种快速的方法来计算加速比,他认为加速比取悦于二个因素:

    1. 升级的部分在整个任务中所占的比例
    2. 通过升级得到改进后,改部分任务的加速比时多少

      这里写图片描述

    例: 我们希望升级一个用于提供web服务器的处理器,新处理器执行Web服务应用程序的计算速度时原处理器的10倍。假定原处理器有40%的时间忙于计算,60%的时间等待I/O,进行这次升级后所得到的总加速比为:


    这里写图片描述

  • 超线程有时称为多线程,是一项允许在一个CPU上执行多个控制流的技术,通过给CPU某些硬件提供多个备份,比如程序计数器,部份寄存器等,而其他的硬件部分只有一份,这样就从逻辑上提供了多个核的能力。此外常规的处理器在线程之间切换的时候需要耗费大量时钟周期,但是超线程处理器只需要一个时钟周期就可以完成线程间切换,这使得CPU能够更好的利用它的处理器资源。

  • 超标量处理器指的是一个时钟周期可以运行多条指令的处理器

  • 单指令、多数据并行(SIMD),允许一条指令产生多个可以并行执行的操作。


    这里写图片描述

​ GCC已经内置了对SIMD指令的支持,下面这段代码通过使用SIMD指令来对两个向量(数组)进行计算,代码如下:

#include <stdio.h>
// 定义了一个包含四个元素的向量
typedef int int4 __attribute__((vector_size(sizeof(int) * 4)));

int main() {
  int4 i = {1, 2, 3, 4};
  int4 j = {3, 5, 7, 9};

  int4 k = i * 3 + j;   // 向量之间直接运算
  printf("%d, %d, %d, %d\n", k[0], k[1], k[2], k[3]);
  return 0;
}
  • 计算机系统中的抽象: 文件是多IO设备的抽象,虚拟内存是对程序存储器的抽象,进程是对一个正在运行的程序的抽象,虚拟机是对整个计算机的抽象。

参考文献

版权声明:本文为博主原创文章,未经博主允许不得转载。

计算机系统-->计算机系统漫游

计算机系统漫游 信息就是位+上下文位表示的是0和1组成的序列,通常来说8个位被组织成一组,称为字节,通常使用一个字节用来表示文本中的某些某些字符; 对于仅仅使用ASCII表示的文本称为文本文件,其...
  • qq_36294875
  • qq_36294875
  • 2017年10月16日 09:01
  • 43

漫游计算机系统

Oh,This is OS之漫游计算机系统 不可否认,计算机是20世纪最为重要的发明,从计算机诞生的那天起,他就无时无刻不在影响着我们每个人的生活,也就是说,下面这句话的回答肯定是否定的:没有计算机...
  • BDX_Hadoop_Opt
  • BDX_Hadoop_Opt
  • 2014年05月30日 09:56
  • 816

计算机系统漫游

        经过昨天的游泳,虽然早上起来有些疲惫,但还是看了《深入了解计算机系统》的书的第一章,在今天的学习中,我对缓存的概念有了重新的认识:寄存器是L1缓存的缓存,L1缓存是L2缓存的缓存,L2...
  • pc_funning
  • pc_funning
  • 2007年07月17日 22:22
  • 318

深入理解计算机系统-计算机系统漫游

程序是由一系列的bit位组成,就拿最简单的hello.c的程序来说,是以字节序列的方式存储在文件中。每个字节都有一个整数值,对应某个字符(ASCII码)。像hello.c这样只由ASCII字符构成的文...
  • mark4ever
  • mark4ever
  • 2011年06月01日 17:38
  • 385

深入理解计算机系统 计算机系统漫游

 1.1 信息就是位+上下文 【关键思想】 系统中所有的信息都是由一串比特位表示的,区分不同数据对象的依据就是这些数据对象的上下文。 【该做什么】 记住一些常用ASCII字符的整数值:  回车(CR)...
  • loventure
  • loventure
  • 2009年07月12日 00:16
  • 340

深入理解计算机系统--计算机系统漫游

第一章 计算机系统漫游   计算机系统是由硬件和系统软件组成的。所有计算机系统都是由相似的硬件和软件组成,它们又执行着相似的功能。    以hello程序为例。    1.1信息就是位+上下文   ...
  • hubaohua1588
  • hubaohua1588
  • 2017年03月06日 13:18
  • 94

《深入理解计算机系统》——计算机系统漫游

感觉自己对计算机系统的整体把握不够,所以找来这本书学习一下,读书要做笔记,第一章,开始。 书名:Commputer Systems (A Programmer's Perspective Seco...
  • u014236341
  • u014236341
  • 2016年01月25日 21:06
  • 396

ch1-计算机系统漫游

第一章笔记
  • qq_15255105
  • qq_15255105
  • 2017年05月17日 12:33
  • 156

第一章------计算机系统漫游

第一章------计算机系统漫游 1.gcc -o hello hello.c,        在这里GCC编译器驱动程序读取源程序文件hello.c,并把它翻译成一个可执行目标文件hel...
  • longbei9029
  • longbei9029
  • 2018年01月29日 17:07
  • 11

第一章:计算机系统漫游

计算机系统中所有的信息都是由一串比特表示的。 区分不同数据对象的唯一方法:读取数据对象时的上下文。 c:系统级编程 C++/java :应用级程序 hello.c 源程序文本---->预处理器(c...
  • baidu_26352053
  • baidu_26352053
  • 2017年06月27日 16:50
  • 141
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:计算机系统漫游
举报原因:
原因补充:

(最多只允许输入30个字)