忍者ブログ
MASTER →  ADMIN / NEW ENTRY / COMMENT
現代魔法(nearly equal 情報技術)を勉強中な人のメモ(チラシの裏)
/ 2024/03/29 (Fri) / 編集
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

/ 2008/09/05 (Fri) / 編集
ようは「どのメモリが空いていて、どのメモリが使用中か」が知りたい、ついでに「どこがどれだけ空いてるか」がわかると素敵だ。

まずはメモリの容量を調べる
  1. キャッシュメモリを停止
  2. メインメモリに値を保存
  3. 値を取得、さっき代入した物と同じか確かめる
  4. もし違うならそこからはメモリじゃない(=その直前までは使える)
これらの処理はアセンブラでやること。
番地を1つづつ(つまり1Byteづつ)調べてもいいけど死ぬほど時間がかかるので4KBづつとかにするといい。


肝心の管理はこんなん作って
struct FREEINFO {
   /* あき情報、どの番地からどのくらい空いてるか */
   unsigned int addr, size;
 };
 struct MEMMAN {   /* メモリ管理 */
   int frees, maxfrees, lostsize, losts;
   struct FREEINFO free[MEMMAN_FREES];
 };

あとは「空いてるとこが連続してたらまとめる」とか「空いてる領域を教える」とか「領域を確保する(freeinfoを消す、つまりfreeではない)」とかをがんばってプログラムする

さて、メモリ管理まで終わってやっと9日目なわけだが、これは夏休み中には終わらんぜよ、、、
参考書として結構いい感じだとわかったので自分でも買おうかなぁとか思ったり。

さて、次はグラフィックになるわけだが(重ね合わせ処理とか)、あきたのでまた後日

拍手[0回]

PR
忍者ブログ [PR]