一个程序如何被操作系统调用分配然后执行的呢?

[复制链接]
查看11 | 回复1 | 2011-7-8 08:46:23 | 显示全部楼层 |阅读模式
例如一个程序,放在外存中(如硬盘),然后我点击它,就可以运行了。
那么,这个程序在硬盘上时,它有没有逻辑地址,是不是这个程序中的每条指令都有一个逻辑地址,
这个逻辑地址是不是和它所在的硬盘的物理地址相关呢?,即,放在硬盘的不同位置这个程序的逻辑地址不一样?

书本中说逻辑地址就是机器指令中使用的地址,80x86指令的地址字长度为48位,其中46位用于寻址,因此80x86
的逻辑地址地址空间最大可达64TB。为了支持多进程操作系统中并发进程的运行和实现存储保护,80x86存储管理机制
把64TB的逻辑地址空间分成性质不同的两部分,全局地址空间和局部地址空间,每个地址空间最大32TB。

那么我的源程序通过编译器编译完后,生成的可执行程序中,每条指令都有逻辑地址吗?,是属于64TB中的吗
那每次编译不同的源程序,成才的可执行程序的逻辑地址起始地址一不一样??,即是不是都从0开始?
回复

使用道具 举报

千问 | 2011-7-8 08:46:23 | 显示全部楼层
逻辑地址在内存中,程序需要读到内存中才分配逻辑地址。和在硬盘不同位置没有一点关系!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行