深入理解计算系统-《计算机系统漫谈》

计算机系统漫谈


————本章介绍深入理解计算系统主要需要了解的内容
《深入理解计算机系统》经典书籍,强烈推荐细读。

计算系统分层视图

计算机系统包含两部分:软件 & 硬件
(1)软件:应用程序、操作系统
(2)硬件:I/O设备、缓存(SRAM)、主存(DRAM)、处理器、磁盘、显示器等。
进程、虚拟内存、文件是计算机系统运行过程中的一种抽象产物。
程序起初是ASCII文本,经过编译器编译和连接器链接后翻译成二进制可执行文件,执行该二进制可执行文件后该文件存储在主存中。程序运行期间,最近执行的指令和数据会被加载进cpu寄存器中,USB\显示器\磁盘等外部设备通过IO接口操作,因此程序执行期间,将花费大量的时间在内存、IO设备、CPU寄存器之间复制数据。
操作系统作为硬件和应用程序中的媒介,提供了三层抽象:
(1)文件是对IO设备的抽象;
(2)虚拟内存是对磁盘和主存的抽象;
(3)进程是对处理器、主存、IO设备的抽象;
在这里插入图片描述
(1)进程:可以将每个独立运行的程序视作一个进程,现在的多核操作系统中,多个进程“并行运行”,但是针对一个时刻,单个处理器只能执行一个进程代码,因此实现多进程“并行运行”过程中必然会存在进程的上下文切换。
关于进程上下文切换和线程上下文切换可参考文章如下:
https://zhuanlan.zhihu.com/p/52845869
(2)虚拟地址空间:
虚拟地址空间其实是一种物理地址到逻辑地址的映射,并不真实存在。鉴于物理地址空间有限,难以满足所以的进程都分配到所申请的空间大小,采用虚拟地址空间得以解决该问题。若每个进程需要4GB大小的地址空间,可分配4GB虚拟地址空间给予进程,然后通过页表搭建进程实际使用的物理空间和虚拟地址空间映射关系。
在这里插入图片描述
(3)计算机系统中每个IO设备:磁盘、显示器、键盘、网络等,都可以看成文件,IO模式????

存储

本书将自顶向下阐述计算机系统中必备的存储只是,及了解的L1、L2、L3三级缓存对于对线程开发必要性。自底向上,每一层存储器的访问速度更快,可容纳的空间越大,且成本越贵。
在这里插入图片描述

针对现代多核的处理器,计算机底层的存储格式如下:

在这里插入图片描述
L1数据高速缓存–缓存处理器需要使用的数据
L1指令高速缓存–缓存最近取到的指令
鉴于CPU中某些硬件资源有多重备份,例如,程序计数器、寄存器文件
但是部分硬件资源只有一份,例如,浮点算术运算单元
所以针对多份的硬件资源,cpu可以并行执行多个控制流(即多线程)
针对单份的硬件资源,cpu会存在线程间的转换。
所谓的并行,即线程A可能需要将部分数据加载进高速缓存才得以执行,这期间,处理器便可以先执行另一个线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值