计算机系统之旅

计算机系统是由硬件和软件组成的,接下来我们跟踪程序的生命周期开始学习。

程序从一个源文件(hello.c)开始,实际上就是由和组成的位序列,8个位被组织成一组,成为字节。从源文件到目标文件的转化是由编译器驱动程序完成的:

计算机系统之旅
  • 主存:临时存储设备,存放程序和程序处理的数据,物理上来说,由一组动态随机存取器(DRAM)芯片组成,逻辑上来说,是一个线性字节数组,每个字节都有唯一地址(数组索引)
  • 处理器:解释存储在主存中指令的引擎,核心是一个大小为一个字的存储设备(或寄存器),称为程序计数器(PC),PC指向主存中某条机器语言指令(即含有该指令的地址)。
  • 运行hello程序

    初始时,键盘输入,shell程序将字符逐一读入寄存器,再把它放到内存中,从键盘读取命令:

    计算机系统之旅

    一旦目标文件hello的代码和数据加载到主存,处理器开始执行hello程序的main程序找那个的机器语言指令,这些指令将字符串的字节从主存复制到寄存器,再从寄存器复制到显示设备,最终显示在屏幕上

    计算机系统之旅

    在CPU和较大较慢的设备间插入一个更小更快的存储设备,计算机系统都被组织成了一个存储器层次结构

    计算机系统之旅

    操作系统有两个基本功能:

    • 防止硬件被失控的应用程序滥用
    • 向应用程序提供简单单一的机制控制复杂不相同的低级硬件设备

    通过抽象概念(进程、虚拟内存和文件)实现这两个功能,文件是对I/O设备的抽象,虚拟内存是对主存和磁盘I/O设备的抽象,进程是对处理器、主存和I/O设备的抽象

    进程是操作系统对正在运行的程序的抽象,操作系统保持跟踪进程运行所需状态信息,这种状态,就是,包括PC和寄存器文件当前值,以及主存内容。任何时刻,单处理器系统只能执行一个进程的代码,进程切换时就会进行上下文切换。

    虚拟内存为每个进程提供一个假象,即每个进程独占使用主存,每个进程看到的内存都是一致,称为。在Linux中,地址空间最上面是保留给操作系统的代码和数据,地址空间底部存放用户进程定义的代码和数据

    计算机系统之旅
    多核处理器

    多核处理器将多个CPU(称为‘核’)集成到一个集成电路芯片上,如下图,微处理器芯片有4个CPU核,每个核都有自己的L1和L2高速缓存,这些核共享更高层次的高速缓存,以及到主存的接口

    计算机系统之旅
    工业界的专家预言他们能将几十个,最终会是上百个核做到一个芯片上

    【完】/p>

    来源:lw_yang

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2018年11月18日
    下一篇 2018年11月18日

    相关推荐