5/11(土),12(日)は連続UNIX V6特集です! 11日は@magoroku15さんによるUNIX V6 セミナーです。 http://t.co/Go9QK3ZIB4 12日は新V6本読書会です。 http://t.co/2UAA2Id9T4 #firstv6
2013-03-31 23:53:06sched()関数(sys/slp.c)のproc[0]の流れを追うため、ソースコードとにらめっこ中。 関数内で変数を使いまわしているので意味が途中で変わってるため、可読性ががが #firstv6
2013-05-12 13:58:00swapは1プロセス全体に対して行われる。プロセスのデータ途中で行われることはない。ページイン・ページアウトとの言葉の違い #firstv6
2013-05-12 14:22:274.1 スワッピングとは プログラム実行→命令列(テキストセグメント)とデータ(データセグメント)をメモリに読み込む→あふれる→スワッピングする!! #firstv6
2013-05-12 14:22:51V6の頃はテキストデータセグメントをスワップ領域に確保していたが、今のOSではバイナリファイルをロードする、という考え。昔はパンチカードなどから外部ディスクに読み込んでいたからスワップ領域に確保しておく必要があった? #firstv6
2013-05-12 14:24:06スワップがど-いうタイミングで実行されるか?というセクション。 スワッピング対象のプロセスを探すスワッパ関数がsched()で、proc[]が行うスワッピング処理は次のような感じ。 #firstv6
2013-05-12 15:09:01「次の条件を満たすスワップイン対象のプロセスを選択」ファミレスで客が来る&席が空いている(スワップ領域に最も長く存在する&実行可能状態) #firstv6
2013-05-12 15:09:18「スワップインに充分なメモリがない→次の条件を満たすプロセスをスワップイン」客はいるけど席が空いてない(メモリに存在する)&居座ってる客にオーダーストップor帰れと言う(SWAITまたはSSTOP状態) #firstv6
2013-05-12 15:09:50「(条件を満たすプロセスなければ)条件を緩くして再度スワップイン対象のプロセスを探す」メモリに一番長く存在する&SRUNまたはSSLEEP状態(居座っている客のこと) #firstv6
2013-05-12 15:10:22実行プロセスにテキストセグメントを割り当てる関数がxalloc() xalloc()が呼ばれる時のp_sizeは0? #firstv6
2013-05-12 16:33:32