内存寻址xlanchen@2006.
6.
7在intelx86处理器下,有三种不同的地址逻辑地址:每个逻辑地址由一个段(segment)和偏移量(offset)组成线性地址:32位无符号整数,可以表示4G的地址空间物理地址:用于芯片级内存单元寻址.
它们与从CPU的地址引脚发送到内存总线上的电信号相对应地址转换过程物理地址线性地址分段单元分页单元逻辑地址为什么需要内存寻址机制保护内核不受恶意或者无意的破坏隔离各个用户进程方便程序的编写,使程序员可以抛开对物理内存的考虑,而且理论上可以使用任意大小的空间硬件的分段单元(1)段寄存器(segmentregister)为了快速方便的找到段选择符,处理器提供了段寄存器,目的是存放段选择符16位的段寄存器,有六个:cs,ss,ds,es,fs和gs其中3个寄存器CPU规定了专门的用途cs代码段寄存器,指向存放程序指令的段ss堆栈段寄存器,指向存放当前程序栈的段ds数据段寄存器,指向存放数据的段注意:cs寄存器还有一个很重要的功能:它含有一个两位的域,用以指明CPU当前特权级(currentprivilegelevel,CPL),值为0代表最高优先级,值为3代表最低优先级段描述符(segmentdescriptor)每个段由一个段描述符来表示,一个段描述符长度为8个字节全局描述符表(globaldescriptiontable,GDT)就用来存放段描述符GDTR寄存器用来存放GDT的起始地址(物理地址)段描述符的格式段选择子段寄存器中值称为段选择子,长度为16位13位的索引,指定GDT表中的相应的段描述符1位的TI(TableIndicator)(跟LDT表有关,Linux中基本未使用)2位RPL(requestprivilegelevel)当相应的段选择符装入到cs寄存器中时,表明了CPU的当前特权级indexTIRPL21015Segmentselector段选择子的使用逻辑地址到线性地址的转换Linux中的段基于下面两个原因,linux中只使用了几个段段和页的同时存在在一定程度上有点多余.
因为两者都可以划分进程的物理空间所有的进程希望使用同样的0-4G的逻辑空间.
这样程序员不必考虑进程地址的问题,也让内核的内存管理变得简单一些Linux下的全局描述符表(部分)__KERNEL_CS0x10=0000000000010000b内核代码段,在GDT中相应的段描述符各个域有如下值Index=2RPL=0特权级__KERNEL_DS0x18=0000000000011000b内核数据段,在GDT中相应的段描述符各个域有如下值Index=3RPL=0特权级__USER_CS用户代码段,用户态下所有进程共享__USER_DS用户数据段,用户态下所有进程共享硬件的分页单元分页单元把线性地址转换成物理地址为了效率起见,线性地址被分成以固定长度为单位的组,称为页.
页内连续的线性地址被映射到连续的物理地址中.
把线性地址映射到物理地址的数据结构叫做页表(pagetable).
页表存放在内存中,并在启用分页单元以前由内核对之进行初始化Intel处理器中,通过设置CR0寄存器的一个标志位来启用分页单元.
达州创梦网络怎么样,达州创梦网络公司位于四川省达州市,属于四川本地企业,资质齐全,IDC/ISP均有,从创梦网络这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,一手四川托管服务商,成都优化线路,机柜租用、服务器云服务器租用,适合建站做游戏,不须要在套CDN,全国访问快,直连省骨干,大网封UDP,无视UDP攻击,机房集群高达1.2TB,单机可提供1...
前几天有关注到Megalayer云服务器提供商有打算在月底的时候新增新加坡机房,这个是继美国、中国香港、菲律宾之外的第四个机房。也有工单询问到官方,新加坡机房有包括CN2国内优化线路和国际带宽,CN2优化线路应该是和菲律宾差不多的。如果我们追求速度和稳定性的中文业务,建议还是选择CN2优化带宽的香港服务器。这里有要到Megalayer新加坡服务器国际带宽的测试服务器,E3-1230配置20M国际带...
Hostkey.com成立于2007年的荷兰公司,主要运营服务器出租与托管,其次是VPS、域名、域名证书,各种软件授权等。hostkey当前运作荷兰阿姆斯特丹、俄罗斯莫斯科、美国纽约等数据中心。支持Paypal,信用卡,Webmoney,以及支付宝等付款方式。禁止VPN,代理,Tor,网络诈骗,儿童色情,Spam,网络扫描,俄罗斯色情,俄罗斯电影,俄罗斯MP3,俄罗斯Trackers,以及俄罗斯法...