作業系統中的記憶體分配

2022-08-04 19:48:17 字數 2161 閱讀 6845

一、程式執行平台

不同的平台上對不同資料型別分配的位元組數是不同的。 

個人對平台的理解是cpu+os+compiler,是因為: 

1、64位機器也可以裝32位系統(x64裝xp); 

2、32位機器上可以有16/32位的編譯器(xp上有tc是16位的,其他常見的是32位的); 

3、即使是32位的編譯器也可以弄出64位的integer來(int64)。 

以上這些是基於常見的wintel平台,加上我們可能很少機會接觸的其它平台(其它的cpu和os),所以個人認為所謂平台的概念是三者的組合。 

雖然三者的長度可以不一樣,但顯然相互配合(即長度相等,32位的cpu+32位的os+32位的compiler)發揮的能量最大。 

理論上來講 我覺得資料型別的位元組數應該是由cpu決定的,但是實際上主要由編譯器決定(佔多少位由編譯器在編譯期間說了算)。 

二、常用資料型別對應位元組數 

可用如sizeof(char),sizeof(char*)等得出

32位編譯器:

char :1個位元組 

char*(即指標變數): 4個位元組(32位的定址空間是2^32, 即32個bit,也就是4個位元組。同理64位編譯器) 

short int : 2個位元組 

int:  4個位元組 

unsigned int : 4個位元組 

float:  4個位元組 

double:   8個位元組 

long:   4個位元組 

long long:  8個位元組 

unsigned long:  4個位元組 

64位編譯器:

char :1個位元組 

char*(即指標變數): 8個位元組 

short int : 2個位元組 

int:  4個位元組 

unsigned int : 4個位元組 

float:  4個位元組 

double:   8個位元組 

long:   8個位元組 

long long:  8個位元組 

unsigned long:  8個位元組 

一、程式執行平台

不同的平台上對不同資料型別分配的位元組數是不同的。 

個人對平台的理解是cpu+os+compiler,是因為: 

1、64位機器也可以裝32位系統(x64裝xp); 

2、32位機器上可以有16/32位的編譯器(xp上有tc是16位的,其他常見的是32位的); 

3、即使是32位的編譯器也可以弄出64位的integer來(int64)。 

以上這些是基於常見的wintel平台,加上我們可能很少機會接觸的其它平台(其它的cpu和os),所以個人認為所謂平台的概念是三者的組合。 

雖然三者的長度可以不一樣,但顯然相互配合(即長度相等,32位的cpu+32位的os+32位的compiler)發揮的能量最大。 

理論上來講 我覺得資料型別的位元組數應該是由cpu決定的,但是實際上主要由編譯器決定(佔多少位由編譯器在編譯期間說了算)。 

二、常用資料型別對應位元組數 

可用如sizeof(char),sizeof(char*)等得出

32位編譯器:

char :1個位元組 

char*(即指標變數): 4個位元組(32位的定址空間是2^32, 即32個bit,也就是4個位元組。同理64位編譯器) 

short int : 2個位元組 

int:  4個位元組 

unsigned int : 4個位元組 

float:  4個位元組 

double:   8個位元組 

long:   4個位元組 

long long:  8個位元組 

unsigned long:  4個位元組 

64位編譯器:

char :1個位元組 

char*(即指標變數): 8個位元組 

short int : 2個位元組 

int:  4個位元組 

unsigned int : 4個位元組 

float:  4個位元組 

double:   8個位元組 

long:   8個位元組 

long long:  8個位元組 

unsigned long:  8個位元組 

作業系統 記憶體分配

1.系統要用什麼樣的資料結構記錄記憶體的使用情況。2.當多個記憶體分割槽滿足要求時,應該選擇哪個分割槽進行分配。3.如何進行分割槽的分配與 操作。程序中的塊稱為頁 page 記憶體中的塊稱為頁框 page frame 外存也可以同樣的單位進行劃分,稱為塊。頁表,為了便於在記憶體中找到程序的每個頁面所...

作業系統記憶體分配

作業系統的記憶體一部分給系統核心,一部分給使用者核心,對windows來說,32位4g時,低位2g給使用者,高位2g給系統,64位256t時,高位的248t給系統,低位8t給使用者。linux則是32位4g時,低位3g給使用者,高位1g給系統,64位256t時,高位的128t給系統,低位128t給使...

作業系統的記憶體分配問題

記憶體即我們平時說的電腦記憶體 4g 8g等 非硬碟容量,那是外存。記憶體是存放cpu運算資料的地方。這裡就得扯到裝系統的乙個十分常見問題了,即系統是安裝32位的還是64位的。根據以往裝系統的經驗,4g以下通常是安裝32位的作業系統,以上就安裝64位的。但這是為什麼?下面給出我最近自己的理解。因為作...