皇马娱乐平台网址

加入
我们
投稿
反馈
评论 返回
顶部

内容字号: 默认 大号超大号

段落设置: 段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

金字塔形的存储设备、操作系统的抽象概念

2018-12-04 16:37 出处:皇马娱乐平台官方网址 人气: 评论(

           上一章LZ给各位展示了一下hello程序的简单执行过程,可以看出在这一过程当中,系统在数据的传输上花费了大量的时间。硬件开发商为了减少这种数据传输的时间成本,采用一种高速缓存的技术去减少这种时间成本。

           高速缓存被置放于处理器当中,与处理器中的寄存器文件直接进行数据交换,这样大大减少了数据传输的时间成本,使得程序的运行速度可以得到数倍的提升。而作为一个程序猿,如果可以适当的利用高速缓存去存放一些程序运行过程中可能会经常使用的数据,可以将程序的运行速度提高数倍甚至数个数量级。

           由此就可见高速缓存的重要性,下图展示了硬件分布中,高速缓存的位置。

存储设备的金字塔

 

           当今的计算机系统当中,基本上全部都置入了各种各样的存储设备,这些存储设备呈明显的层次结构,它们的特点是容量越大,速度越慢。因此如果按照容量和速度将它们以图示的方式呈现的话,则看起来就像是一个金字塔,如下所示。(非常感谢群里的猿友【夕惕若厉无咎】提供的英文电子版,这下LZ可以省去很多画图的功夫了)

           不过这个图是英文版的,LZ稍微解释下,有些特别明显的LZ就不解释了,如果有哪位猿友实在不明白,可以到LZ的群里提问。

           左边的意思是更小更快更贵的存储设备,包括寄存器以及L1-L3的高速缓存,以及更大更慢更便宜的存储设备,包括主存、本地磁盘以及远程存储设备。通常意义下,我们将上一层的存储设备作为当前存储设备的高速缓存,比如L1的高速缓存是寄存器,L2的高速缓存是L1,以此类推。

 

操作系统是硬件的manager

 

           操作系统是帮我们操控硬件的软件,它就像是应用程序与硬件的中间者,在两者之间扮演一个协调、管理的角色。它们的关系如下图。

          操作系统提供了几个我们熟悉的概念去表示硬件设备,比如进程、虚拟存储器、文件。它们表示的硬件设备如下图所示。

          可以看出文件是对I/O设备的抽象描述,而虚拟存储器是对主存和I/O设备的统称,最后,一个进程在此基础上又加入了处理器。

 

进程

 

           进程是操作系统对一个正在运行的程序的抽象。操作系统会记录每一个进程的状态,这些状态就称作进程的上下文。这些状态主要包括了PC,寄存器以及主存的当前内容。当操作系统在进程间切换的时候,也会切换相应的上下文,从而保证进程恢复到之前的状态。

           在进程当中,又被计算机界的大神们引入了线程的概念,这些线程可以共享进程级的代码与数据,这种共享一般比进程间的共享更加高效。

 

虚拟存储器

 

           虚拟存储器是一种抽象描述,从物理上讲,它包含了I/O设备以及主存。在逻辑上讲,虚拟存储器被描述为虚拟地址空间。下图为进程的虚拟地址空间表示。

 

           这里的地址自下向上依次增大,可以看出,图中标注了起始地址,分别为0x08048000(32位)以及0x00400000(64位),然后向上分别是只读代码和数据、读写数据、运行时堆、共享库的内存映射区间、用户栈以及内核虚拟内存区域

           看完这个图,LZ有一个疑问,就是这两个32位和64位的起始地址是从何而来,于是小小的简单探索了一下。

分享给小伙伴们:

更多文章

相关文章

评论

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。


All Rights Reserved.
皇马娱乐平台网址
Baidu