j********3 发帖数: 560 | 1 【 以下文字转载自 CS 讨论区 】
发信人: johnlee123 (no), 信区: CS
标 题: 请教一个逻辑地址到物理地址映射的问题
发信站: BBS 未名空间站 (Sun May 19 01:00:21 2013, 美东)
问题比较基础,大虾勿笑话。请问一下建立逻辑地址到物理地址的映射是不是在写入数
据之后或者要写入数据时才进行的?比如说,程序要向某个逻辑地址写入数据,那么先
找到一个实际的 page,把数据写入这个 page 之后,建立一个该逻辑地址到该 page
的物理地址的映射(或者在要写入数据之前建立一个该逻辑地址到找到的 page 的物理
地址的映射)?换句话说,对于一个空的存储单元来说,是不存在逻辑地址到物理地址
的映射的?
多谢! |
r*******n 发帖数: 3020 | 2 俺的理解:
你说的程序是个进程,进程创建的时候操作系统给它分配存储资源,
进程看到是存储资源的逻辑地址,
这个逻辑地址到物理地址的映射是由操作系统管理的,可能是静态映射也可能
是动态映射的。
【在 j********3 的大作中提到】 : 【 以下文字转载自 CS 讨论区 】 : 发信人: johnlee123 (no), 信区: CS : 标 题: 请教一个逻辑地址到物理地址映射的问题 : 发信站: BBS 未名空间站 (Sun May 19 01:00:21 2013, 美东) : 问题比较基础,大虾勿笑话。请问一下建立逻辑地址到物理地址的映射是不是在写入数 : 据之后或者要写入数据时才进行的?比如说,程序要向某个逻辑地址写入数据,那么先 : 找到一个实际的 page,把数据写入这个 page 之后,建立一个该逻辑地址到该 page : 的物理地址的映射(或者在要写入数据之前建立一个该逻辑地址到找到的 page 的物理 : 地址的映射)?换句话说,对于一个空的存储单元来说,是不存在逻辑地址到物理地址 : 的映射的?
|
s********k 发帖数: 6180 | 3 对于一个空的存储单元来说,是不存在逻辑地址到物理地址的映射的?
没明白,看看MMU和TLB的用法,任何一个逻辑地址理论上都能转换成物理地址,至于那
么物理地址是不是available,另说了,
【在 j********3 的大作中提到】 : 【 以下文字转载自 CS 讨论区 】 : 发信人: johnlee123 (no), 信区: CS : 标 题: 请教一个逻辑地址到物理地址映射的问题 : 发信站: BBS 未名空间站 (Sun May 19 01:00:21 2013, 美东) : 问题比较基础,大虾勿笑话。请问一下建立逻辑地址到物理地址的映射是不是在写入数 : 据之后或者要写入数据时才进行的?比如说,程序要向某个逻辑地址写入数据,那么先 : 找到一个实际的 page,把数据写入这个 page 之后,建立一个该逻辑地址到该 page : 的物理地址的映射(或者在要写入数据之前建立一个该逻辑地址到找到的 page 的物理 : 地址的映射)?换句话说,对于一个空的存储单元来说,是不存在逻辑地址到物理地址 : 的映射的?
|
j********3 发帖数: 560 | 4 谢谢。那么对于一个空的存储单元,操作系统会分配一个逻辑地址到物理地址的映射给
它吗?
【在 r*******n 的大作中提到】 : 俺的理解: : 你说的程序是个进程,进程创建的时候操作系统给它分配存储资源, : 进程看到是存储资源的逻辑地址, : 这个逻辑地址到物理地址的映射是由操作系统管理的,可能是静态映射也可能 : 是动态映射的。
|
j********3 发帖数: 560 | 5 我的意思是,对于一个已经存储了数据的存储单元来说,那么它所相应的逻辑-物理地
址转换应该是固定的吧?对于一个没有存储数据的存储单元来说,是不是可以等到要向
它写入数据的时候再给它建立一个逻辑-物理地址转换(映射)?比如说,假设一个存
储单元的物理地址是0000,那么在向它写入数据之前,我们不用规定一个与之对应的逻
辑地址。当某个进程需要向逻辑地址1111写入数据的时候,MMU知道那个存储单元0000
是空的,所以就将逻辑地址1111和物理地址0000链接起来,形成一个逻辑-物理地址映
射,并将数据写入存储单元0000。这时候我们就有了一个1111-0000的逻辑-物理映射,
在下一次需要读取数据的时候,进程只需要知道是从逻辑地址1111读取数据,而实际数
据由MMU从物理地址0000读出。是这样的吗?不好意思,因为不是学这个的,所以有些
地方可能说得不是很清楚。谢谢了。
【在 s********k 的大作中提到】 : 对于一个空的存储单元来说,是不存在逻辑地址到物理地址的映射的? : 没明白,看看MMU和TLB的用法,任何一个逻辑地址理论上都能转换成物理地址,至于那 : 么物理地址是不是available,另说了,
|
r*******n 发帖数: 3020 | 6 这时候可能没有分配一个实际的物理地址给它。
【在 j********3 的大作中提到】 : 谢谢。那么对于一个空的存储单元,操作系统会分配一个逻辑地址到物理地址的映射给 : 它吗?
|
j********3 发帖数: 560 | 7 多谢。
【在 r*******n 的大作中提到】 : 这时候可能没有分配一个实际的物理地址给它。
|
t****t 发帖数: 6806 | 8 1. 物理地址可以没有对应的逻辑地址.
2. 逻辑地址可以没有对应的物理地址.
3. 映射关系(如果有)不一定是唯一的.
0000
【在 j********3 的大作中提到】 : 我的意思是,对于一个已经存储了数据的存储单元来说,那么它所相应的逻辑-物理地 : 址转换应该是固定的吧?对于一个没有存储数据的存储单元来说,是不是可以等到要向 : 它写入数据的时候再给它建立一个逻辑-物理地址转换(映射)?比如说,假设一个存 : 储单元的物理地址是0000,那么在向它写入数据之前,我们不用规定一个与之对应的逻 : 辑地址。当某个进程需要向逻辑地址1111写入数据的时候,MMU知道那个存储单元0000 : 是空的,所以就将逻辑地址1111和物理地址0000链接起来,形成一个逻辑-物理地址映 : 射,并将数据写入存储单元0000。这时候我们就有了一个1111-0000的逻辑-物理映射, : 在下一次需要读取数据的时候,进程只需要知道是从逻辑地址1111读取数据,而实际数 : 据由MMU从物理地址0000读出。是这样的吗?不好意思,因为不是学这个的,所以有些 : 地方可能说得不是很清楚。谢谢了。
|