1.内存单元和地址

计算中(程序中)直接使用的数据保存在计算机的内存储器(简称内存)。内存是CPU可以直接访问的数据存储设备。与之对应的是外存储器,简称外存,如磁盘、光盘、磁带等。保存在外存里的数据必须先装入内存,而后CPU才能使用它们。

内存的基本结构是线性排列的一批存储单元。每个单元的大小相同,可以保存一个单位大小的数据。具体单元大小可能因计算机的不同而有所不同。在目前最常见的计算机中,一个单元可以保存一个字节(8位二进制代码)的数据。因此存放一个整数或者浮点数,需要连续的几个单元。例如标准的浮点数需要8个单元。

内存单元具有唯一编号,称为单元地址,或简称地址。单元地址从0开始连续排列,全部可用地址为从0开始的一个连续的正整数区间,如上图所示。

在程序执行中,对内存单元的访问(存取其中数据)都通过单元的地址进行,因此,要访问一个单元,必须先掌握其地址。在许多计算机中,一次内存访问可以存取若干单元的内容。例如目前常见的64位计算机,一次可以存取8个字节的数据,也就是说一次操作访问8个单元的内容。基于地址访问内存单元是一个O(1)操作,与单元的位置或整个内存的大小无关,这是分析与数据结构有关的算法时的一个基本假设。

在高级语言层面讨论和分析数据结构问题时,人们通常不关心具体的单元大小或地址范围,只假定所考虑数据保存在内存的某处,而且假定这种访问是常量时间的。

2.对象存储和管理

在python程序运行中,建立对象时需要安排存储,还有许多与对象存储和使用有关的管理工作。解释器的一个专门子系统(称为存储管理系统)负责这些工作。这一工作是自动进行的,编写程序的人不必关心。另外,当一个对象不再使用时,存储管理系统也会设法回收其占用的存储,以便在将来用于存储其他对象。

3.对象的访问(使用)

在编程语言层面,知道了一个对象的标识(内存地址就是一种标识)就可以直接访问(使用)它。已知对象标识(无论它是否直接为对象地址),访问相应对象的操作可以直接映射到已知地址访问内存单元,这种操作可以在常量时间完成(是O(1)时间操作)。

如果被访问的是一个组合对象,其中包含了一组元素,这些元素被安排在一块内存区域(一块连续的元素存储区)里,而且每个元素的存储量相同。在这种情况下,可以给每个元素一个顺序编号(通常为下标,index)。如果知道了一个组合对象的元素存储区位置,又知道要访问的元素的编号,访问元素也是O(1)时间操作。

python计算机结构_python06--计算机内存结构与存储管理(P27)相关推荐

  1. 苏州大学计算机组成与结构,苏州大学计算机组成结构期末.docx

    苏州大学计算机组成结构期末 百度ID:末了iiENIAC:电子数字积分器和计算机 世界上第一台计算机线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所 ...

  2. Python学习笔记1-内置数据结构

    变量: 存储一个对象的引用:由id().type().value组成 1.列表[list]: python内置数据结构 本身由id().type().value组成,指向列表对象: 列表对象相当于数组 ...

  3. 计算机基本结构quiz

    计算机基本结构quiz 下列哪些定律属于计算机行业的著名"定律"? 反摩尔定律 墨菲定律 木桶定律 马太效应 摩尔定律 解释:计算机行业著名定律包括摩尔定律.反摩尔定律和阿姆达尔定 ...

  4. JVM(一)JVM虚拟机内存结构 和 JAVA内存模型(JMM)

    本文转自:浅析java内存模型--JMM(Java Memory Model) - 路易小七 - 博客园,尊重作者,转载请注明出处~ JVM虚拟机内存结构 和 JAVA内存模型 是两个不同的概念 JV ...

  5. 【操作系统——内存基本分页存储管理】

    系列文章目录 1.<带你深挖计算机底层逻辑,打通你计算机基础知识的任督二脉> 2.<深度学习计算机底层原理,深度剖析存储器> 3.<基于内存全面理解高速缓冲存储器> ...

  6. 一文解析JVM的内存结构,身为程序员还不弄懂JVM怎么行

    欢迎关注专栏:Java架构技术进阶.里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦.微信公众号:慕容千语的架构笔记.欢迎关注一起进步. 前言 Jvm的内存结构是由<jav ...

  7. 计算机组成笔记1——计算机基本结构

    1.计算机基本结构 1.1 电子计算机的兴起 现代电子计算机之父:冯-洛伊曼 1946.2.14 世界上第一台通用电子计算机ENIAC 在宾夕法尼亚大学诞生 1939 世界上第一台电子计算机ABC 阿 ...

  8. 计算机主机结构三部分,计算机主机板结构.doc

    计算机主机板结构 主机板系统架构.1 Host bus GCLK内存时钟允许 (CKE) AGP 总线 内存总线 GCKRUN# PCI bus ISA bus 主机板系统架构简介 在描述架构时,会用 ...

  9. linux文件夹前的描述,Linux对内存结构的描述

    Linux对内存结构的描述 1.查看Linux程序运行时状态 Linux在运行可执行文件时,该状态信息全部在/porc/${PID}中. proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外 ...

最新文章

  1. jQuery的文档操作方法
  2. 排序算法----插入排序
  3. 程序员面试系列——冒泡排序
  4. mysql查询结果导出excel_Mysql查询结果导出为Excel的几种方法
  5. 前端学习(498):水平居中布局得第一种方式
  6. boost序列化(Serialization)
  7. Python稳基修炼之计算机等级考试易错细节题3(含答案)
  8. java关键字transient和volatile的基本含义和使用方法
  9. PL/SQL中直接写SQL语句和用EXECUTE IMMEDIATE方法的区别
  10. ShadowGun shader 解析(1)
  11. comparison of VLIW and superscaler
  12. 《烈烈先秦》8、独撑大厦的真勇者——半残战神李牧
  13. 使用阿里云安装基础软件
  14. 湖北专升本MySQL复习(MySQL数据库实用教程)——MySQL数据表的操作
  15. 英安特1600说明书_英安特AW-BM600常用编程项设置
  16. 火狐浏览器谷歌浏览器Edge浏览器修改默认UA(User-Agent)
  17. 数字IC设计工程师的知识结构(转载学习)
  18. 苹果云服务icloud_苹果手机怎么恢复通讯录?一键恢复技巧就在这里!
  19. 遥感技术及高分遥感影像在地震中的应用
  20. java解包_Java的自动封包和解包(Autoboxing和AutoUnboxing)

热门文章

  1. Windows 8 :妥协的产物
  2. WF4.0 基础篇 (二) Activity介绍及WriteLine Activity的使用
  3. 创建IT运维管理门户
  4. PAT甲级1027 Colors in Mars :[C++题解]进制位
  5. js 点击最后一个 和倒数第二个_期货及期权品种的最后交易日,您都了解吗?...
  6. python没有指针如何实现链表_[转]为什么python标准库没有实现链表
  7. iis7.5php.2,Windows2008 IIS7.5搭建PHP5.2
  8. 正则表达式匹配非字母或者数字
  9. 逆向链表c语言 abcdef,6-6 求单链表元素序号 (5 分)
  10. 门限的限意思是什么_门限是什么意思_门限英文翻译