Lions' 本読み (46)
14 章を再確認。というかざっくり読み杉でちゃんと確認できてないのである意味きちんと読むのはこれが初めて状態。
とりあえず順番てきには以下な部分らしい。
2021 found1: 2022 spl0(); 2023 rp->p_flag =& ~SLOAD; 2024 xswap(rp, 1, 0); 2025 goto loop;
ちなみに rp はコアに最も長く存在したプロセスを指している模様。
ざっくり確認したところ、以下が気になります。
4375 a = malloc(swapmap, (rp->p_size+7)/8);
swapmap て何でしょ。
0204 int swapmap[SMAPSIZ]; /* スワップ割り当ての空間 */
これ、グローバル変数ですね。てかどっちかというと以下の方がポイント高いのかな。
4378 xccdec(rp->p_textp); 4379 rp->p_flag =| SLOCK; 4380 if(swap(a, rp->p_addr, os, 0))
てか、swapmap て何だ。とりあえずここがハードルな模様。あ、malloc もだ。2528 で定義されてるのか。曰く_指定されたマップからsize単位を割り当てる_とのこと。
でも swapmap が何なのかがアレ。あ、malloc の定義が以下らしい。
2528 malloc(mp, size) 2529 struct map *mp; {
map 構造体て何だば。と思ったら直上に定義な記述あり。
2505 * coremap配列とswapmap配列の構造体。 2506 * ゼロでないカウントと 2507 * 多くの連続な単位のベースアドレスから 2508 * 構成される 2509 * (coremap単位は64バイトであり、 2510 * swapmap単位は512バイトである)。 2511 * アドレスは昇順であり、 2512 * リストは最初のゼロカウントで 2513 * 終了する。 2514 */ 2515 struct map 2516 { 2517 char *m_size; 2518 char *m_addr; 2519 };
あ、ここで 5 章なのか。今日はもう限界ス。