python计算机结构_python06--计算机内存结构与存储管理(P27)
1.內存單元和地址
計算中(程序中)直接使用的數據保存在計算機的內存儲器(簡稱內存)。內存是CPU可以直接訪問的數據存儲設備。與之對應的是外存儲器,簡稱外存,如磁盤、光盤、磁帶等。保存在外存里的數據必須先裝入內存,而后CPU才能使用它們。
內存的基本結構是線性排列的一批存儲單元。每個單元的大小相同,可以保存一個單位大小的數據。具體單元大小可能因計算機的不同而有所不同。在目前最常見的計算機中,一個單元可以保存一個字節(8位二進制代碼)的數據。因此存放一個整數或者浮點數,需要連續的幾個單元。例如標準的浮點數需要8個單元。
內存單元具有唯一編號,稱為單元地址,或簡稱地址。單元地址從0開始連續排列,全部可用地址為從0開始的一個連續的正整數區間,如上圖所示。
在程序執行中,對內存單元的訪問(存取其中數據)都通過單元的地址進行,因此,要訪問一個單元,必須先掌握其地址。在許多計算機中,一次內存訪問可以存取若干單元的內容。例如目前常見的64位計算機,一次可以存取8個字節的數據,也就是說一次操作訪問8個單元的內容。基于地址訪問內存單元是一個O(1)操作,與單元的位置或整個內存的大小無關,這是分析與數據結構有關的算法時的一個基本假設。
在高級語言層面討論和分析數據結構問題時,人們通常不關心具體的單元大小或地址范圍,只假定所考慮數據保存在內存的某處,而且假定這種訪問是常量時間的。
2.對象存儲和管理
在python程序運行中,建立對象時需要安排存儲,還有許多與對象存儲和使用有關的管理工作。解釋器的一個專門子系統(稱為存儲管理系統)負責這些工作。這一工作是自動進行的,編寫程序的人不必關心。另外,當一個對象不再使用時,存儲管理系統也會設法回收其占用的存儲,以便在將來用于存儲其他對象。
3.對象的訪問(使用)
在編程語言層面,知道了一個對象的標識(內存地址就是一種標識)就可以直接訪問(使用)它。已知對象標識(無論它是否直接為對象地址),訪問相應對象的操作可以直接映射到已知地址訪問內存單元,這種操作可以在常量時間完成(是O(1)時間操作)。
如果被訪問的是一個組合對象,其中包含了一組元素,這些元素被安排在一塊內存區域(一塊連續的元素存儲區)里,而且每個元素的存儲量相同。在這種情況下,可以給每個元素一個順序編號(通常為下標,index)。如果知道了一個組合對象的元素存儲區位置,又知道要訪問的元素的編號,訪問元素也是O(1)時間操作。
總結
以上是生活随笔為你收集整理的python计算机结构_python06--计算机内存结构与存储管理(P27)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实现文件上传预览_Pytho
- 下一篇: vector can通信源码_汽车电子C