記憶體的管理

2021-08-01 02:51:53 字數 757 閱讀 9132

記憶體的管理大致分為有作業系統(os)的和沒有作業系統的。

一、沒有os

沒有作業系統的時候,計算機執行的就是裸機程式,記憶體的開闢和釋放全部由裸機程式自己承擔。

二、有os

有作業系統的時候,作業系統會幫助我們管理記憶體空間,並且留下一些簡潔的記憶體管理介面,便於我們能夠直接控制記憶體的管理。但是相比沒有os的情況,在os上執行的程式記憶體管理的負擔小了很多。

作業系統的記憶體管理方式大概分為如下情況。

1、動態空間

1.1 自動管理:棧

棧記憶體空間的開闢與釋放完全是自動化的,棧空間主要用於為函式的區域性變數開闢空間。函式執行時,變數空間自動開闢,函式結束時,空間自動釋放,空間是可讀可寫。

1.2 手動管理:堆

堆記憶體空間管理靠手動實現,需要時呼叫函式介面手動開闢,不需要的時候也必須呼叫相應的函式介面將其釋放,空間可讀可寫。

2、靜態空間

靜態區的特點是,程式在編譯的時,就已經決定好了這些記憶體空間的布局,一旦程式執行,就會根據編譯器的布局在靜態區中開闢空間。在程式執行的工程中,既不能在靜態區重新開闢空間,也不能釋放靜態區已有的空間,只有在整個程式結束的時候,它們才會被自動釋放。

2.1 **區

存放指令**,空間唯讀

2.2 常量區

存放程式中所用到的常量,空間唯讀。

2.3 靜態資料區

存放靜態資料,比如全域性變數和靜態區域性變數,空間可讀可寫。

記憶體管理 記憶體管理概述

儲存器的發展方向是高速 大容量和小體積,即儲存器嘗試更高讀寫速度,更大儲存容量,更小物理體積。在計算機中,常見的儲存器有 暫存器,快取,記憶體,硬碟,一般硬碟之類的輔助儲存器又稱外存。在平均讀寫速度上,有 暫存器 快取 記憶體 外存 在單位容量 上,有 外存 記憶體 快取 暫存器 cpu處理器只能直...

記憶體管理 記憶體的簡介

32位機器具有4g的程式記憶體,這個記憶體並不是指實際的物理記憶體,而是虛擬記憶體這個虛擬記憶體並不是實際存在的。我們知道乙個虛擬空間由一組頁對映函式將虛擬空間的各個頁對映至相應的物理空間,那麼建立乙個虛擬空間實際上並不是建立空間而是建立對映函式所需要的相應的資料結構,在i386 的linux下,建...

《記憶體管理》 記憶體

1.c c 記憶體分布 我們先來看下面的一段 和相關問題 int globalvar 1 static int staticglobalvar 1 void test char char2 abcd char pchar3 abcd int ptr1 int malloc sizeof int 4 ...