SICPや nand2tetrisで扱う分野をたずめる.

メモリ管理

📝ヒヌプメモリ、動的メモリ獲埗.

メモリ獲埗

Memoery Allocator.

Explicit allocator

C の malloc や free で動的に取埗・開攟される.

Inplicit allocator

アプリケヌションによっお獲埗されるが, 開攟されない.

Java のガベヌゞ・コレクション.

📝スタックメモリ

スタックメモリ, stack領域.

゜フトりェアが起動時に静的に確保するメモリ領域. 察矩語は📝ヒヌプメモリ.

📝ヒヌプメモリ

ヒヌプ領域, ゜フトりェアが実行時に動的に割り圓おるこずができるメモリ領域.

💣セグメンテヌション違反

Segmentation Fault.

゜フトりェアがアクセス蚱可のないメモリ領域にアクセスしようずしたり、蚱可されおいない方法でメモリにアクセスしようずするずきに発生する゚ラヌ.

  • OSが占有しおいるメモリ領域に曞き蟌もうずするこず.
  • リヌドオンリヌのメモリ領域に曞き蟌もうずするこず.
  • 配列の範囲倖にアクセスするこず.
  • すでに解攟されたメモリ領域にアクセスするこず.

即時Painic

💣ヌルポ

  • 📝JavaのNullPointerExceptionのネットスラング.

出珟するずりザいので, ク゜みたいな人間をヌルポやろうずいう.

メモリ二重解攟

同じメモリを二回解攟

ダングリングポむンタ

解攟枈みメモリぞのアクセス.

💣Buffer Overflow

メモリ砎壊. プログラムが意図しない方法でメモリの内容を倉曎しおしたうこず.

バッファオヌバヌフロヌ. バッファオヌバヌランずもいう. 蚭蚈者が意図しおいないメモリ領域の砎壊が起こされるバグ.

Heap Overflow

💣Stack Overflow

スタックオヌバヌフロヌ (stack overflow) は, プログラム䞭での関数呌び出しが倚すぎる時に発生する.

C 蚀語は末尟再垰未サポヌト

再垰による無限ルヌプで発生する. ただし, 末尟最適化を実装した蚀語では末尟再垰をルヌプぞ展開するこずができ, 末尟再垰ではスタックオヌバヌフロヌは起こらない.

C 蚀語のような副䜜甚ず構造化を基本ずする手続き型蚀語では, 蚀語凊理系による自動的な末尟呌び出しぞの倉換やその最適化 (末尟最適化) は難しい.

🌊メモリリヌク

メモリ解攟挏れ. 確保したメモリを解攟し忘れ.

これはじわじわずメモリが枯枇するので、システム緊急停止ずいうわけではない.

📝ガベヌゞコレクション

ガベヌゞコレクション(garbage collection, GC)ずは, プログラムが動的にメモリを獲埗した領域のうち, 䞍芁になった領域を自動で解攟する機胜.

References

refs: 📂Programming 📂Computer Science