Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【基本情報対策】OSのプロセスと仮想記憶

 【基本情報対策】OSのプロセスと仮想記憶

Avatar for 赤神青空

赤神青空 PRO

October 23, 2026

Video

More Decks by 赤神青空

Other Decks in Programming

Transcript

  1. ▪ヒットとミスを、それぞれの割合で重み付けして足す 前回のクイズの答えは「B」 前回のクイズ キャッシュ10ナノ秒、主記憶60ナノ秒、 ヒット率80%の実効アクセス時間は? キャッシュの時間 × ヒット率 + 主記憶の時間

    ×(1 − ヒット率) = 10 × 0.8 + 60 × 0.2 = 8 + 12 = 20 答えは B 今ココ おさらい A 8ナノ秒 キャッシュの項(10 × 0.8)だけ B 20ナノ秒 10 × 0.8 + 60 × 0.2 = 8 + 12 C 35ナノ秒 ヒット率を使わない、単純な平均 D 50ナノ秒 ヒット率を逆に⼊れた(10 × 0.2 + 60 × 0.8) 2/15
  2. ▪プロセス・仮想記憶と、コンテナのメモリの上限 今回の話 ① プロセス 状態遷移とスケジューリング ② 仮想記憶 ページングとページ置換え ③ 実務では

    コンテナとメモリの上限 今回いちばん持ち帰ってほしいこと ページング⽅式の仮想記憶は、⾜りない主記憶をページ単位の出し⼊れで補う 今ココ はじめに 3/15
  3. ▪メモリ空間を、分けるか共有するか プロセスとスレッド プロセス スレッド プロセス A プロセス B プロセス C

    メモリ空間 メモリ空間 メモリ空間(共有) スレッド スレッド プロセスごとに、メモリ空間が別 ほかのプロセスのメモリは、そのままでは⾒えない 今ココ プロセス スレッド スレッド スレッド スレッドどうしは、メモリ空間を共有する 1つのプロセスの中に、スレッドを複数持てる 4/15
  4. ▪タイムクウォンタムずつ、順番に ラウンドロビン CPU を割り当てる 最後尾 C B タイムクウォンタムずつ実⾏ 先頭 A

    CPU 使い切っても終わらなければ、最後尾へ 必要な時間:A は 3 回ぶん、B は 2 回ぶん、C は 1 回ぶん CPU A B C A C 終了 今ココ プロセス B A B 終了 A 終了 6/15
  5. ▪優先度の高いタスクから、CPU 優先順と、プリエンプティブ方式 を割り当てる L(優先度:低‧必要 4)を実⾏中に、時刻 1 で H(優先度:⾼‧必要 2)が来る H(優先度が⾼い)

    L(低い) H が来る ノンプリエンプティブ⽅式 L L L L H H H は 6 で終了 プリエンプティブ⽅式 L H H L L L H は 3 で終了 実⾏中のタスクから、CPU を取り上げるかどうか 今ココ プロセス 7/15
  6. ▪必要なページだけを、主記憶に置く 仮想記憶とページング 仮想記憶(プログラムから⾒える記憶) ページ 1 主記憶(ページ枠 3つ) ページ 1 ページ

    2 ページ 3 ページ 3 動的アドレス変換 ページ 4 ページ 4 補助記憶 ページ 5 ページ 2 ページ 6 主記憶にあるページ 今ココ 仮想記憶 ページ 5 ページ 6 補助記憶にあるページ 8/15
  7. ▪主記憶に無いページを参照したとき ページフォールト 空きがあれば ページ 5 を参照 → 主記憶に無い(ページフォールト) 主記憶 補助記憶

    ページ 1 ページ 3 空き ページ 5 読み込む OS が、補助記憶から主記憶に読み込む 今ココ 仮想記憶 空きが無ければ ページ 6 を参照 → 主記憶に無い(ページフォールト) 主記憶 補助記憶 ページ 1 追い出す ページ 3 読み込む ページ 6 ページ 5 どれを追い出すかを決めるのが、ページ置換え 9/15
  8. ▪どのページを追い出すか ページ置換え:FIFO と LRU ページ枠 3つ。参照の順: 4 で、どれを追い出す? 1番⽬ 2番⽬

    3番⽬ 4番⽬ ページ 読み込んだのは 最後に使ったのは ページ 1 1番⽬の参照 4番⽬の参照 ページ 2 2番⽬の参照 5番⽬の参照 ページ 3 3番⽬の参照 3番⽬の参照 今ココ 仮想記憶 5番⽬ 6番⽬ FIFO: を追い出す 最初に読み込んだページ LRU: を追い出す 最後に使ってから、 最も時間がたったページ 10/15
  9. ▪ページ枠が足りないと、ページフォールトが続く スラッシング LRU で、1 2 3 4 を3回くり返して参照する ページフォールト 4

    回 / 12 回 ページ枠 4つ ページフォールト 12 回 / 12 回 ページ枠 3つ 出し⼊ればかりで処理が進まない = スラッシング ページフォールト 今ココ 仮想記憶 主記憶にあった(ヒット) 11/15
  10. ▪仮想マシンと違い、ホストのカーネルを共有する コンテナは、プロセスとして動く 仮想マシン コンテナ アプリ アプリ コンテナ コンテナ コンテナ OS(カーネル)

    OS(カーネル) アプリ アプリ アプリ ハイパーバイザー ホストの OS(カーネル) ハードウェア ハードウェア namespaces:コンテナから⾒える範囲を分ける cgroups:プロセスのまとまりごとに、CPU やメモリの使う量を制限する 今ココ 実務では 12/15
  11. ▪上限に達すると、強制終了されることがある コンテナのメモリの上限 使う量 メモリ+スワップの上限(--memory-swap) OOM で強制終了 スワップ(ディスク) --memory コンテナが使えるメモリの最⼤ メモリの上限(--memory)

    上限に達し、スワップでも減らせないと 時間 OOM(メモリ不⾜)になり、既定では カーネルがコンテナの中のプロセスを 強制終了する --memory-swap:メモリとスワップを合わせた上限 --memory だけ指定すると、ホストにスワップがあれば、同じ量までスワップできる 同じ値にするとスワップしない。頻繁にスワップすると、性能が落ちる 今ココ 実務では 13/15