Linuxメモリメモベース
2344 ワード
システム 1. メモリ管理 2. ファイルディレクトリ 3. IO 4. プロセス管理 プロセス作成 プロセス制御 プロセス通信 プロセス同期 5. スレッド管理 スレッド作成 スレッド同期 スレッド通信 6.適用 ネットワーク データベース UI XML処理 分布式とミドルウェア(Tuxedo/Corba/MQ) web service OpenGL
メモリ管理ハードウェア階層 カーネル階層 言語階層 データ構造 Linuxのメモリの説明実際に作成されたプログラムは/lib/ld-linuxである.so.2これは実行可能なプログラムであり、ユーザプログラムのアドレスを指し、プログラム を実行する.どのプログラムも08048000で始まる です.スタックは上から下へ、スタックは下から上へ 結論: 1.メモリは4つの領域に分かれています 1.(コード領域、グローバル定数const)、 2.(グローバル変数、ローカルstatic変数)bss-BlockStartedbySymbol, 3.(malloc)スタックheap, 4.(局所定数、auto変数、関数パラメータ)スタックstack 2. 1.1つは前のアドレスを指す 2.1つは後者のアドレスを指す 3.1つは現在の空間アドレス、 4.1つは、現在のスペースのサイズを管理し、 に境界を越えてアクセスしないことです.
3. C++ 1.malloc,new,new[]区別 2.realloc,new()位置決め割当空間 3.calloc,new[]の関係, 4.freeとdelete,delete[]の違い
メモリ管理
c:malloc
c++:new delete
STL( , )
/proc/${pid}/ , , ,
ps aue(a->all ,u->user, e-> )
4K
4G
ldd , ldd Tst
linux-gate.so.1 => (0x00c95000)
libc.so.6 => /lib/libc.so.6 (0x00674000)
/lib/ld-linux.so.2 (0x0064e000)
=
08048000-08049000 r-xp
08049000-0804a000 bss rw-p ( )
0839d000-083be000 heap rw-p
b7fab000-b7fae000
bfb15a44 stack
int *p1 = malloc(sizeof(int)), *p2 = malloc(sizoef(int));
p 1とp 2はいずれもスタック空間を開いているが、それぞれ16個のByteがあり、スタックの管理はチェーンテーブルである. 1.new malloc
:new malloc , ( , 0,UDT , )
2.delete free
:delete ( 0), free
3.new new[]
:new
new[]
4.delete delete[] new , ,
char a[20];
int *p = new(a) int;
p a int 4