zoukankan      html  css  js  c++  java
  • CSAPP阅读笔记-32位64位的区别--来自第三章引言的笔记--P110

    仅从寻址上看,32位和64位机器能寻址的内存空间大小不同。

    需要知道的是,计算机系统对存储器作了抽象,程序“认为”内存是一个很大的字节数组,然而实际上它是由多个硬件存储器和操作系统组合起来实现的。

    程序看到的内存地址是虚拟地址,是操作系统为了让程序使用方便作的映射,实际当程序运行时,要从某个地址取信息时,需要由操作系统作一层映射,将虚拟地址转换为实际内存的物理地址。这样,程序方就可以不用管底层的细节,只需要“认为”内存是个很大的字节数组,用就完事了。

    32位机器能寻址的内存空间是232个字节,大约为4GB,注意,不是232个bit,如上所述,程序认为内存是个字节数组,寻址时一个地址对应一个字节的存储空间。同理,64位机器能寻址的空间就是264个字节,大约为16EB。当然,根据P114所述,目前的实现中,这些地址的高16位必须设置为0,所以64位机器寻址的空间是248个字节,约256TB。

    (有疑惑的,请看博客的“写在前面”一章)

  • 相关阅读:
    小数的编程
    小数的编程
    硬币趣味题
    硬币趣味题
    好玩的 emoji
    ThreadPoolExecutor使用介绍
    希尔排序
    OpenCms创建站点过程图解——献给OpenCms的刚開始学习的人们
    Linux C 编程内存泄露检測工具(二):memwatch
    C++封装、继承、多态
  • 原文地址:https://www.cnblogs.com/czw52460183/p/10010040.html
Copyright © 2011-2022 走看看