在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4680|回复: 14

对于软硬件有些地方不懂,忘赐教!

[复制链接]
发表于 2008-8-2 13:07:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我理解:由于虚拟地址空间,使得在用户看来,地址空间比实际物理地址(内存)空间大。比如,对于一个32位的处理器,有一个4GB的内存,如果虚拟地址是52位,那么在用户看来,可用的内存是4*2^52B。现在假设用户编了一个程序,大小接近可容忍的虚拟地址空间总大小,实际上,这个程序被分成许多独立的段(是编译吗?编译原理没学过,心虚ing),需要运行的段被掉入内存,不用的段被放在磁盘中。那么,操作系统就要完成虚拟地址(用户编写的程序的地址空间)到物理地址(段在内存中运行时使用的地址)的映射。         下面是不明白的地方:
         1.计算机中软硬件功能的划分。比如地址空间的映射。什么是有效地址?难道不是由操作系统直接就虚拟地址转换成物理地址然后处理器只执行这些物理地址吗?为什么要有这个有效地址呢?(effective address)。
         2. 哈希。操作系统应该也有一个对地址的哈希过程吧?那么硬件哈希是操作系统哈希的逆过程吗?硬件哈希的目的是为了查找在磁盘中的文件?因为多个虚拟地址对应相同的物理地址。
         3. 虚拟地址应该包括程序的信息吧。比如进程ID等。
         4. 操作系统究竟怎么运行的?它和处理器硬件是怎么交互的?为什么软件可以对硬件编程?为什么软件的1或者0能反应到硬件的执行中?这些基本的问题,我发现,其实我并不清楚。
发表于 2008-8-6 19:58:17 | 显示全部楼层
***1.计算机中软硬件功能的划分。比如地址空间的映射。什么是有效地址?难道不是由操作系统直接就虚拟地址转换成物理地址然后处理器只执行这些物理地址吗?为什么要有这个有效地址呢?(effective address)。
现在实用的处理器模型是基于冯式结构的,数据和指令都会在有一个特定的地址,进行寻址.所以程序中的指令数据必然有唯一的地址.这个地址不管是什么,有就行了.在远古的时候是没有虚/实地址之分的.只是在现代操作系统中才出现的.
因而可以将有效地址看成最终在该地址能够娶到相应的指令的地址.在具体实现中,这个地址会是CPU的内存总线上的一个地址所以在CPU外部来看,就是所谓的物理地址.从程序的角度来看,他的内存空间是操作系统所约定,在该空间中,程序可以根据权限的约束下,对使用地址对该空间进行访问.一般把它称之为虚地址。真实存储的地方程序是不可知的或透明的,需要操作系统进行转化,一般在CPU中对这种转换有一定的且较小的硬件支持如TLB。在不出现异常的时候,这种转换会很快,不需要操作系统的干预,因为操作系统对该转换已经设置好了权限和规则,但是当出现异常时,操作系统会重新设置这种转换机制,或者退出。
发表于 2008-8-6 20:07:40 | 显示全部楼层
哈希。操作系统应该也有一个对地址的哈希过程吧?
   操作系统会纪录所有程序进行地址转换的信息,一般是记录每个程序实际使用了那些空间,多任务系统中为了快速查找这些信息可能会使用用哈西,也可能不用。

那么硬件哈希是操作系统哈希的逆过程吗?
CPU硬件不会提供硬件哈希。一般提供地址拼接如TLB的功能

硬件哈希的目的是为了查找在磁盘中的文件?
不是。在磁盘中的文件的查找完全由软件完成
发表于 2008-8-6 20:12:24 | 显示全部楼层
3. 虚拟地址应该包括程序的信息吧。比如进程ID等
虚拟地址一般不会包含程序的信息.特别是进程ID.在某些CPU中虚拟地址会包含程序的一些特殊信息,如ALPHA中PAL指令就会。
发表于 2008-8-6 20:19:51 | 显示全部楼层
4操作系统究竟怎么运行的?它和处理器硬件是怎么交互的?为什么软件可以对硬件编程?为什么软件的1或者0能反应到硬件的执行中?这些基本的问题,我发现,其实我并不清楚。
操作系统只不过是一个特殊的程序而已,它能有更多的权限访问一些特殊的资源,完整的说明太长,你可以看看操作系统的书,最好看看Linux内核方面的书。推荐毛德操的Linux内核情景分析.
为什么软件的1或者0能反应到硬件的执行中?
软件的1或者0必然以某种形式存在或存储,比如在硬盘中以磁极的方式, 在内存和CPU中以电荷的形式存储.表现为0/1电平.
发表于 2008-8-7 09:06:52 | 显示全部楼层
解答好专业呀!
小弟佩服!
 楼主| 发表于 2008-11-29 15:27:12 | 显示全部楼层
呵呵,还以为这个帖子没有答案呢,其中有些问题现在明白了。
先顶一下,感谢并赞扬一下回答帖子的大侠,谢谢!
然后慢慢看,呵呵。
发表于 2008-12-24 15:53:13 | 显示全部楼层
不知道。学习。
头像被屏蔽
发表于 2008-12-27 15:11:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-1-10 12:16:40 | 显示全部楼层
这个问题涉及到底层硬件,我记得在一本书看到过,对是Linux 核心讲解,可参考下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 10:04 , Processed in 0.037262 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表