————本章介绍深入理解计算系统主要需要了解的内容
计算系统分层视图
计算机系统包含两部分:软件 & 硬件
(1)软件:应用程序、操作系统
(2)硬件:I/O设备、缓存(SRAM)、主存(DRAM)、处理器、磁盘、显示器等。
进程、虚拟内存、文件是计算机系统运行过程中的一种抽象产物。
(1)进程:可以将每个独立运行的程序视作一个进程,现在的多核操作系统中,多个进程“并行运行”,但是针对一个时刻,单个处理器只能执行一个进程代码,因此实现多进程“并行运行”过程中必然会存在进程的上下文切换。
关于进程上下文切换和线程上下文切换可参考文章如下:
https://zhuanlan.zhihu.com/p/52845869
(2)虚拟地址空间:
虚拟地址空间其实是一种物理地址到逻辑地址的映射,并不真实存在。鉴于物理地址空间有限,难以满足所以的进程都分配到所申请的空间大小,采用虚拟地址空间得以解决该问题。若每个进程需要4GB大小的地址空间,可分配4GB虚拟地址空间给予进程,然后通过页表搭建进程实际使用的物理空间和虚拟地址空间映射关系。
(3)计算机系统中每个IO设备:磁盘、显示器、键盘、网络等,都可以看成文件,IO模式????
存储
本书将自顶向下阐述计算机系统中必备的存储只是,及了解的L1、L2、L3三级缓存对于对线程开发必要性。