怎么学习程序怎么在CPU和内存中调度和运行的

藤本植物导航
&>&&>&&>&正文
内存中有很多指令,cpu按什么顺序执行? 如果是随机执行,那么怎么个随...嗯,正确,可以说所有的程序都是在主存中运行的
求解:Cpu执行的指令来自内存,那内存中的指令来自哪里?如何产生?
程序执行的过程:
1、写好一个程序,经过编译、链接后会生成一个可执行文件,在linux平台下是ELF(Executable Linkable Format)格式的,windows平台下是PE(Portable Executable)格式的。2、然后你执行这个可执行文件,这个可执行文件里面的代码段、数据段和BSS段会被加载到PC或者某设备的内存中。代码段里放的就是指令,所以内存里的指令是通过执行某可执行文件加载到内存里的。3、CPU会从代码段的起始地址,调用第一条指令,开始执行。如果没有遇到跳转指令就顺序执行:假设代码段起始地址是0x100,那么就是先执行0x100这个地址里的指令,然后再执行0x104、0x108地址里的指令。如果遇到跳转指令,就跳转到相应地址,取指令,继续执行。如此往复,完成了整个程序的运行。4、有些指令,比如add
rD,rA,rB。需要去rA和rB寄存器里取值。rA和rB寄存器里的值来自哪里?来自内存里的数据段、BSS段或者栈里或者堆里。说白了,程序就是靠执行一条条执行运行起来的,而指令执行所需的数据放在数据段、BSS段、栈或者堆里。5、数据加载到数据寄存器的过程:CPU先去数据cache里找这个数据,如果找到了就直接从数据cache加载到数据寄存器里,如果找不到的话就只能再去内存里找。然后就是cache把刚才找到的这个数据缓存起来。6、另外,CPU读数据的时候,cache的工作很简单,就是缓存。如果是写数据的话,cache就分为write though和wirte back两种不同的工作方式了。此外,CPU发出的地址都是逻辑地址,必须经过MMU模块把逻辑地址转换为物理地址才能正确访问内存。7、注意,CPU执行指令的时候,也是从指令寄存器里取指令的,并不是直接跑到内存里去取指令,因为这样太慢了。指令加载到指令寄存器的过程和加载数据是类似的。求解:Cpu执行的指令来自内存,那内存中的指令来自哪里?如何产生?来自应用程序,应用程序将指令写入内存。
内存中有很多指令,cpu按什么顺序执行? 如果是随机执行,那么怎么个随...嗯,正确,可以说所有的程序都是在主存中运行的可以说下PC机和嵌入式的bootloader两方面它是按堆栈的顺序顺序执行的,至于栈中的顺序是按优先级排 cache叫做高速缓冲存储器,是集成在CPU中的,存取速度最快,其次是内存,也就是主板上插的那个条条,速度最慢的是外存,也就是硬盘cpu执行操作所需的信息直接来自哪里是按照CPU内部的逻辑电路处理效率最高的方式乱序执行。而且不会乱的,又不是人脑,而且现在的CPU都是乱序执行,顺序执行早几年就淘汰了。也只有老CPU和凌动才用。书上有一段是这样:在8086CPU加点启动或复位后(即CPU刚开始工作时)CS...程序首先在内存开辟空间写入指令,cpu读取,计算得出结果后写入内存,程序读取谢谢了首先,CPU的内部结构可以分为控制单元,逻辑运算单元和存储单元(包括内部总线及缓冲器)三大部分。CPU的工作原理就像一个工厂对产品的加工过程:进入工厂的原料(程序指令),经过物资分配部门(控制单元)的调度分配,被送往生产线(逻辑运算单元),生...CPU可以执行任意给他可以寻址的到的指令 不管是RAM还是ROM里面的 boot的时候有ROM里面的指令让CPU跑 例如现在的PC系统CPU上电后跑0xFFFFFFF0这个地址的指令,也就是BIOS的程序 嵌入式的CPU开机上电的地址要看对应的datasheet介绍1、写好一个程序,经过编译、链接后会生成一个可执行文件,在linux平台下是ELF(Executable Linkable Format)格式的,windows平台下是PE(Portable Executable)格式的。 2、然后你执行这个可执行文件,这个可执行文件里面的代码段、数据段和BS...在8086CPU加点启动或复位后(即CPU刚开始工作时)CS和IP被设置为CS=F000H,IP=FFFFH,级在8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行。 ---- 是CS = FFFF,IP = 0000H。 即,从 FFFF0H 开始执行程序。CPU执行一条指令,是根据时钟来进行的(也就是时序)。(1)第一步:取指令和分析指令. 首先根据PC所指出的现行指令地址, 从内存中取出该条指令的指令码, 并送到控制器的指令寄存器中, 然后对所取的指令进行分析, 即根据指令中的操作码进行译码, 确...
种植经验最新
种植经验推荐
& 6种植网 版权所有
渝ICP备号-23浅析C程序在内存中的运行过程
实验一:计算机是怎样工作的?
中科大软件学院&&
江徐& &SA6280
实验内容:
&请使用Example的c代码分别生成.cpp、.s、.o和ELF可执行文件,并加载运行,分析.s汇编代码在CPU上的执行过程。
实验要求:
通过实验解释单任务计算机是怎样工作的,并在此基础上讨论分析多任务计算机是怎样工作的。
实验环境:
Oracle VM VirtualBox、Ubuntu 10.10、Windows XP&
实验过程:
1、源程序example.c
(1)预处理阶段:
预处理器根据以字符#开头的命令,修改原始的C程序,生成example.cpp文件。
(2)编译阶段:& 编译器将example.cpp翻译成文本文件example.s,。
(3)汇编阶段:&
汇编器将example.s翻译成机器语言指令,生成二进制形式的可重定位目标程序example.o。
(4)链接阶段:&
链接器将example.o程序和库函数组合成可执行的目标程序example。
&&四个阶段生成的过程文件如图2-2所示。
3、&源程序的汇编代码分析(基于IA32的体系结构)
(1) 栈帧结构简要介绍:
&&&&一个过程调用包括将数据和控制代码的一部分传递到另一部分。另外,它还必须在进入时为过程的局部变量分配空间,并在退出时释放这些空间。IA32程序用程序栈来支持过程调用。机器用栈来传递过程参数、存储返回信息、保存寄存器用于以后恢复,以及本地存储。为单个过程分配的那部分称为栈帧(stack
frame)。栈帧的最顶端以两个指针界定,寄存器�p为帧指针,寄存器%esp为栈指针。寄存器%eip总是指向下一条要执行指令的址。&&&&&
(2)&几条常用指令的介绍:
1、入/出栈操作
pushl:入栈操作&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&popl:出栈操作
如:pushl&
�p,等价于以下2条指令&&&&&&&&&&&&&&如:popl&
ebp, 等价于以下2条指令
&&&&&&&&&&&subl&
%esp&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&movl&
(%esp), �p
&&&&&&&&&&&movl&
�p,
(%esp)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&addl&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
2、转移控制指令
call:过程调用
0x,等价于以下2条指令&&&
leave:为返回准备栈,等价于以下2条指令:&&&
%eip&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
movl �p,%esp
&&&&&&&&&&&movl&
%eip&&&&&&&&&&&&&&&&&&&&&&popl
ret:从过程调用中返回,等价于popl %eip&
源程序的汇编形式如图3-1所示:&
汇编代码在内存中的运行顺序和过程如图3-2至3-24所示。
3-2:运行程序前栈的用户区分布
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
操作系统CPU调度-练习题-2011
下载积分:2000
内容提示:操作系统CPU调度-练习题-2011
文档格式:PPT|
浏览次数:472|
上传日期: 14:01:07|
文档星级:
全文阅读已结束,如果下载本文需要使用
 2000 积分
下载此文档
阅读此文档的用户还读了
操作系统CPU调度-练习题-2011
官方公共微信计算机所有程序都是在内存中运行吗?
LZ说的这句提问本身就是正确的答案了,计算机所有程序的确都是在相关信息中运行的!
计算机的存储器分为内存和外存,也分别称之为主存和辅存。
内存就是主板上的俗称内存条的存储器,外存就是硬盘、软盘、磁带等存储器。
当然CPU是计算机的核心,是计算处理的关键部件。但是谁来使用CPU,则是由操作系统决定的,系统按照程序进程的优先级,分配时间片,每个任务轮流使用CPU,形成多任务机制。
当程序开始运行时,如果内存空间足够大,操作系统会按分页机制,将程序调入内存中。否则,操作系统会分批将程序的部分内容调入内存。由于程序运行的内存需求是动态的,操作系统会有相应的机制将当前不使用或不急需的页面放弃,或者调入新的程序页面。多任务之间的内存页面也会进行相应的调度。这里面有很复杂的内存管理的分配映射机制。
而且,现代操作系统都会使用"虚拟内存"机制,将硬盘的部分空间,虚拟作为内存来使用,这时就会发生硬盘的频繁IO操作。
所以说:计算机所有程序都是在内存中运行的。只不过,这个内存可能包括虚拟内存。同时...
LZ说的这句提问本身就是正确的答案了,计算机所有程序的确都是在相关信息中运行的!
计算机的存储器分为内存和外存,也分别称之为主存和辅存。
内存就是主板上的俗称内存条的存储器,外存就是硬盘、软盘、磁带等存储器。
当然CPU是计算机的核心,是计算处理的关键部件。但是谁来使用CPU,则是由操作系统决定的,系统按照程序进程的优先级,分配时间片,每个任务轮流使用CPU,形成多任务机制。
当程序开始运行时,如果内存空间足够大,操作系统会按分页机制,将程序调入内存中。否则,操作系统会分批将程序的部分内容调入内存。由于程序运行的内存需求是动态的,操作系统会有相应的机制将当前不使用或不急需的页面放弃,或者调入新的程序页面。多任务之间的内存页面也会进行相应的调度。这里面有很复杂的内存管理的分配映射机制。
而且,现代操作系统都会使用"虚拟内存"机制,将硬盘的部分空间,虚拟作为内存来使用,这时就会发生硬盘的频繁IO操作。
所以说:计算机所有程序都是在内存中运行的。只不过,这个内存可能包括虚拟内存。同时也离不开硬盘这样的外存支持。
其他答案(共2个回答)
中运行的,内存是暂时存储正被执行的程序的,这些程序已经开始执行,但不可能都一直占用CPU,所以轮流使用CPU,内存的大小也就决定着机器每次最多可以容纳的的任务数.
打个比方:面粉加工厂中,加工的机器相当于CPU,而加工厂生产车间理解为内存,内存容不下的,暂时放在仓库(硬盘)
或更细理解:加工机器的漏斗代表内存,加工机器内的电动机代表CPU.
不要担心,理论上来说你们会怀孕的机率为零,如果你女友月经正常的话,应该是在4月10日左右排卵,不太可能会在4月2日排卵的。你们是第一次,所以对这件事情太紧张了。...
以前许多老歌都是翻的日本的,中岛美雪的,飞鸟凉的,还有好多其他的,那时侯没有电脑,倒版也没有那么猖獗,歌手要生存,竞争,可是创作量又没有那么大,香港和台湾比我们...
这位朋友,他对夫妻性生活,他很讲究一些质量,也注意关注这方面的知识,知道女性有一个G点,非常好,G点的问题,他是诸多性高潮的一种方式,有的是阴蒂型的,刺激阴蒂可...
你这情况与手淫无关,更不需服药,因为对于多年期待、热切盼望的事情终于可以实现,兴奋是理所当然的事。但往往初次性交失败就出在过于兴奋上。过度兴奋的大脑对性刺激极为...
急求去泰国曼谷普吉岛自由行最好下什么地图软件和翻译软件
答: 好在有许多成熟的安全和网络技术,例如虚拟私有网络(VPN)和防火墙等,能够极大地提高Web服务应用的安全和性能,让开发者拥有选择安全技术的自由,而不是非得使用尚...
答: 某些ADSL调制解调器使用USB接口与电脑相连,需要在电脑上安装指定的软件以添加虚拟网卡来进行通信
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415

我要回帖

 

随机推荐