运行程序简要过程和缓存概念
2021/9/23 20:10:53
本文主要是介绍运行程序简要过程和缓存概念,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
处理器读取并解释储存在内存中的指令
在shell中加载并运行hello文件。
linux>./hello hello,world linux>
shell是一个命令行解释器,他输出一个提示符,等待输入一个命令行,然后执行这个命令。如果该命令行的第一个单词不是一个内置的shell命令,那么shell就会假设这是一个可执行文件的名字,他将加载并运行这个文件。所以在此例中,shell将加载并运行hello程序,然后等待程序终止。hello程序在屏幕上输出他的消息,然后终止。shell随后输出一个提示符,等待下一个输入的命令行。
系统的硬件组成
-
总线
贯穿整个系统的是一组电子管道,成为总线,他携带信息字节并负责在各个部件(内存,处理器,I/O设备)间传递。通常总线被设计成传送定长的字节快,也就是字。字中的字节数(即字长)是一个基本的系统参数,各个系统中都不尽相同。例如32位系统中字长为4个字节,64位系统中字长为8个字节。
-
I/O设备
I/0设备是系统与外部世界的联系通道,这里我们只引用键盘鼠标,显示器以及磁盘。
每个I/O设备都通过一个控制器或者适配器与I/O总线相连。控制器和适配器之间的区别主要在于它的封装方式。控制器是I/O设备本身或者系统的主板上的芯片组。而适配器则是一块插在主板插槽上的卡。(非主板或设备集成装置)
-
主存(DRAM)
主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。从物理上来讲,主存是由一组动态随机存取存储器(DRAM)芯片组成的。从逻辑上将,存储器是一个线性的字节数组,每个字节都有其唯一的地址(数组索引),这些地址是从零开始的。一般来说,组成程序的每条机器指令都由不同数量的字节构成。例如,运行Linux的机器上,short类型需要2个字节来存储,int、float类型需要4个字节,double和long类型需要8个字节。
-
处理器
中央处理单元(CPU),简称处理器。是解释(或执行)存储在主存中指令的引擎。处理器的核心是一个大小为一个字的存储设备,称为程序计数器。32位系统中一个字为4字节,64位系统中一个字为8字节,说白了,PC中存放的是某一条指令的地址。
从系统通电开始,直到系统断电,处理器一直在不断执行程序计数器指向的指令,再更新程序计数器,使其指向下一条指令。处理器看上去是按照一个非常简单的指令执行模型来操作的,这个模型是由指令集架构决定·的。在这个模型中,指令按照严格的指令顺序执行,而执行一条指令包含执行一系列的步骤。处理器从程序计数器指向的内存处读取指令,解释指令中的位,执行该指令指示的简单操作,然后更新PC,使其指向下一条指令,而这条指令并不一定和在内存中刚刚执行的指令相邻。
寄存器文件是由一些单个字长的寄存器组成,每个寄存器都有唯一的名字。ALU(算术逻辑单元)计算新的数据和地址值。下面是一些简单操作的例子。
- 加载:从主存复制一个字节或者一个字到寄存器,以覆盖寄存器原来的内容。
- 存储:从寄存器复制一个字节或者一个字到主存的某个位置,以覆盖这个位置上原来的内容。
- 操作:把两个寄存器的内容复制到ALU,ALU对这两个字做算术运算,并将结果存放到一个寄存器中,以覆盖该寄存器中原来的内容。
- 跳转:从指令本身中抽取一个字,并将这个字复制到程序计数器(PC)中,以覆盖PC中原来的值。
处理器看上去是它的指令集架构的简单实现,但是实际上现代处理器使用了非常复杂的机制来加速程序的执行。因此,我们将处理器的指令集架构和处理器的微体系结构区分开来:指令集架构描述的是每条机器代码指令的效果;而微体系结构描述的是处理器实际上是如何实现的。
运行hello程序。
初始时,shell程序执行它的指令,等待我们输人一个命令。当我们在键盘上输入字符串"./hello”后,shell程序将字符逐一读入寄存器。
当我们在键盘上敲回车键时,shell程序就知道我们已经结束了命令的输人。然后shell 执行一系列指令来加载可执行的hello文件,这些指令将hello目标文件中的代码和数据从磁盘复制到主存。数据包括最终会被输出的字符串“hello, world\n”。
利用直接存储器存取(DMA)技木,数据可以个绕过处埋器而直接从磁盘到达主存。
一旦目标文件hello中的代码和数据被加载到主存,处理器就开始执行hello程序的main程序中的机器语言指令,这些指令将“hello, world \n”字符串中的字节从主存复制到寄存器文件,再从寄存器文件中复制到显示设备,最终显示在屏幕上。
高速缓存
缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术(静态随机访问存储器)。缓存的设置是所有现代计算机系统发挥高性能的重要因素之一。
每个计算机系统中的存储设备都被组织成了一个存储器层次结构。
这篇关于运行程序简要过程和缓存概念的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-02Java管理系统项目实战入门教程
- 2024-11-02Java监控系统项目实战教程
- 2024-11-02Java就业项目项目实战:从入门到初级工程师的必备技能
- 2024-11-02Java全端项目实战入门教程
- 2024-11-02Java全栈项目实战:从入门到初级应用
- 2024-11-02Java日志系统项目实战:初学者完全指南
- 2024-11-02Java微服务系统项目实战入门教程
- 2024-11-02Java微服务项目实战:新手入门指南
- 2024-11-02Java项目实战:新手入门教程
- 2024-11-02Java小程序项目实战:从入门到简单应用