csapp 远程连接与系统性能的提高

csapp 远程连接与系统性能的提高,第1张

csapp 远程连接与系统性能的提高 网络

之前我们一直将计算机系统作为一个孤立的硬件与软件的集合体,从一个系统来看,网络也可以视为一个IO设备。

远程连接

随着互联网的发展,从一台计算机发送消息到另一台计算机已经成为非常普遍的应用,深入理解计算机的原书中,讲述了如何使用本地计算机上的telnet客户端连接远程主机上的telnet服务器,由于telnet的安全性问题,目前ssh的连接方式的更加普遍。

远程连接结合hello程序

1.在ssh的客户端中输入hello字符串并且敲下回车;
2.客户端的软件就会通过网络将字符串发送到ssh服务端;
3.ssh服务端从网络端接收到这个字符串以后,会将这个字符串传递给远程主机上的shell程序,然后shell负责hello程序的加载,运行结果返回给ssh的服务端;
4.最后ssh的服务端通过网络将程序的运行结果发送给ssh的客户端;
5.ssh客户端在屏幕上显示运行结果。

系统的加速

阿姆达尔定律

该定律的主要思想是:当我们对系统的某一部分进行加速时,被加速部分的重要性和加速程度是影响 整体系统性能的关键因素,在加速前,假设一个应用程序的执行所需要的全部时间用Told来表示,为了方便描述,我们可以笼统的将这个程序分为两个部分,一部分是不可加速的,另外一部分是可加速的,其中可以加速的部分执行花费的时间为αTold,所以不可加速部分的执行时间为Told-αTold,程序经过优化后,可加速部分性能提升比例为K,那么经过加速后,这个可加速部分所花费的时间就是(α*Told)/K,因此我们可以计算出,程序经过加速后所花费的时间,这里用Tnew来表示。此时,我们可以得到加速比S = Told/Tnew。
下面是一个数据的带入,可以直观地看到加速效果:
可以看到,尽管我们把可加速部分加速到几乎不花时间,整个系统获得的净加速比也只有2.5。因此在计算机的世界里,如果我们需要把系统的性能提高2倍或者更多,只有通过优化大部分的组件才能获得。

获得更高计算能力的三种途径:

1.线程级并发
2.指令级并行
3.单指令多数据并行

下面是一个多核处理器的组织结构,图中的处理器芯片具有四个CPU核心,每个CPU核心都有自己的L1 cache和L2 cache,四个CPU核心共享L3 cache,这4个CPU核心集成在一颗芯片上。对于许多高性能的服务器芯片,单颗芯片集成的CPU数量高达几十个,甚至上百个。通过增加CPU的核心数,可以提高系统的性能。
超线程技术,也称同时多线程
如果每个CPU核心可以执行两个线程,那么四个核心就可以并行的执行8个线程。
单个CPU核心是如何实现超线程的?
在CPU内部,像程序计数器和寄存器文件这样的硬件部件有多个备份,而像浮点运算部件这样的硬件还是只有一份,常规单线程处理器在做线程切换时,大概需要20000个时钟周期,而超线程处理器可以在单周期的基础上决定执行哪一个线程,**从而CPU可以更好的利用它的处理资源。**当一个线程因为读取数据而进入等待状态时,CPU可以去执行另外一个线程,其中线程之间的切换只需要极少的时间代价。

指令集并行–现代处理器可以同时执行多条指令的属性
每条指令从开始到结束大概需要2个时钟周期或者更多,但是处理器采用了非常多的技巧可以同时处理多达100条指令,因此,近几年的处理器可以保持每个周期2~4条指令的执行速率。

现代处理器拥有特殊的硬件部件,允许一条指令产生多个并行的 *** 作,这种方式成为单指令多数据,即SIMD的指令多是为了提高处理视频,以及声音这类数据的执行速度。比较新的Intel以及AMD的处理器都是支持SIMD指令加速。

这里增加一个抽象的概念,虚拟机是对整个计算机系统,包括 *** 作系统,处理器以及程序,虽然虚拟机的思想在20世纪60年代就提出来了,但是最近才突显出优势来。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5704595.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存