見出し画像

システムの信頼性指標~CPU(2024.05.24)

参考書


システムの信頼性指標

RASIS(レイシス)

  • システムを評価するための5つの指標の頭文字を組み合わせた造語

  • Reliability(信頼性
    障害の起こりにくさなど

  • Availability(可用性
    必要なときにいつでもサービスが利用できるか否か

  • Serviceability(保守性
    復旧のしやすさ

  • Integrity(完全性
    データが壊れたり改ざんされたりしていないこと

  • Security(安全性
    許可された人だけがアクセスできること

  • RASラス
    RASISのうち、特に重要な最初の3つの指標のこと

MTBF

  • Mean Time Between Failures:平均故障間隔

  • 故障と故障の間、つまりシステムが故障せずに正しく動いていた時間の平均値

  • 次に故障するまでどのくらいの時間があるかを推測して、対策を立てられるようにするために使う。

  • RASISのReliability(信頼性)を表す指標の1つ

  • MTBFを求める式
    MTBF = 稼働時間の合計 / 故障回数

  • MTBFが大きいシステムほど信頼性が高く、MTBFが小さいシステムほど信頼性が低い

  • MTBFを大きくするには、定期的にシステムをメンテナンスすることが必要

  • MTBFを高めるメンテナンスを「予防保守」と表現する

MTTR

  • Mean Time To Repair:平均修理時間

  • 修理にかかった時間、つまり、システムが稼働していなかった時間の平均値

  • RASISの「Serviceability(保守性)」を表す指標の一つ

  • MTTRを求める式
    MTTR = 故障時間の合計 / 故障回数

  • MTTRが小さいシステムほど保守性が高く、MTTRが大きいシステムほど保守性が低い

稼働率

  • システムが故障せずに動いていた時間の割合

  • RASISの「Availability(可用性)」を表す指標の一つ

  • 稼働率を求める式
    稼働率 = MTBF / (MTBF + MTTR)

  • 稼働率が高いシステムほど可用性が高く、稼働率が低いシステムほど可用性が低い

  • 稼働率が「1」のシステムは、一度も故障せずに、ずっと仕事をしているシステム

直列システムと並列システム

  • システムは、「システムを構成する装置の配置方法」によって、直列システム、並列システム、多重化システムの3種類に分類できる

  • 配置方法によって稼働率が変わる

直列システム

  • 複数の装置が直列に接続されたシステム

  • 直列システムの稼働率
    装置Aの稼働率 × 装置Bの稼働率

並列システム

  • 複数の装置が並列に接続されたシステム

  • 並列システムの稼働率
    1 - (1-装置Aの稼働率) × (1-装置Bの稼働率)

  • 両方の装置が同時に停止する確率を求めている

多重化システム

  • 複数の装置、もしくは、複数のシステムを部品として組み合わせて作成するより大きな1つのシステム

  • 稼働率の計算は、各システムの稼働率を計算したうえで全体の稼働率を計算

オペレーティングシステム

ソフトウェア

  • システムは、「ハードウェア」と「ソフトウェア」の2つの要素から構成されている

  • ソフトウェアは「OS」と「アプリケーションソフトウェア」の2つに分類できる

OS

  • Operating System

  • アプリケーションソフトウェアとハードウェアの間で処理を仲介するソフトウェア

  • アプリケーションソフトウェア
    ユーザーに特定の機能を提供するソフトウェア
    例)カメラ機能、メッセージ機能

  • 世界で最も普及しているパソコン向けのOSはWindows

  • その他の例)MacOS、iOS、Android

  • アプリケーションソフトウェアとハードウェアをつなぐ架け橋

  • OSの4つの機能

    1. ジョブ管理

    2. タスク管理

    3. 記憶管理

    4. データ管理

ジョブ管理

  • ジョブの実行順序を管理する機能

  • ジョブ
    ユーザーがコンピュータに依頼する仕事の単位
    例)書類の印刷、ファイルの複製

  • ジョブはOSが取り扱う

  • OSは、ユーザーが出したジョブを受け取ると、それをさらに細かい単位に分解しCPUに渡して処理を実行してもらう

  • ジョブ管理の必要性

    • CPUとその他のハードウェアの処理速度が大幅に異なるから

    • 例)書類の印刷
      プリンタはCPUと比べて、処理速度が圧倒的に遅い
      OSがジョブ管理を行い、プリンタが印刷処理を実行している間は、CPUには別のジョブを実行させる
      →CPUを有効活用できる。
      ジョブ管理がないと、印刷処理中はCPUは待ち状態となる。

スプーリング

  • CPU」と「低速の入出力装置」の間のデータ転送を「高速の補助記憶装置」に仲介させる技術

  • プリンタでの印刷時によく使われる技術

  • 例)OSがジョブ管理を行って、CPUとプリンタを別々に動作させる

    1. CPUとプリンタの間に補助記憶装置(ハードディスクなど)を配置し、そこに一時的にデータを保存

    2. プリンタの処理のスピードに合わせて、補助記憶装置からプリンタにデータを送る

    3. こうすることで、CPUは別のジョブを行うことができる

バッファ

  • データを一時的に保存する記憶装置のこと

  • 装置間の差を和らげる(緩衝する)役割であることから「緩衝記憶装置」とも呼ばれる

  • 処理速度や転送速度の異なる2つの装置の差を補うことを目的としている

  • 例)CPUと主記憶装置の処理速度の差を補う「キャッシュメモリ

  • 例)主記憶装置とハードディスクの処理速度の差を補う「ディスクキャッシュ

タスク管理

  • タスクの実行順序を管理する機能

  • タスク
    OSCPUに出す命令の単位

  • 比較

    • ユーザーがコンピュータに出す命令を「ジョブ」という

    • OSがCPU(ハードウェア)に出す命令を「タスクプロセス)」という

マルチタスク

  • タスク管理によって複数のタスクを頻繁にすばやく切り替えることによって、それらのタスクがあたかも同時に実行されているかのように見せる技術

  • 実際には、同時に実行されているわけではない

  • CPUの1つのコアは、一度に1つの作業しか実行できない

  • OSがCPUを操作することで実現している

プリエンプティブとノンプリエンプティブ

  • タスクを切り替える方法は「プリエンプティブ」と「ノンプリエンプティブ」の2つに分類される

  • プリエンプティブ

    • CPUの使用権をOSが管理する方式

    • プリエンプティブ(preemptive)は「横取り」という意味

    • 優先度の高いタスクが発生した場合に、優先度の低いタスクからCPUの使用権を横取りして、優先度の高いタスクに割り当てる

    • 現在はプリエンプティブが主流

  • ノンプリエンプティブ

    • CPUの使用権をタスクが管理する方式

    • タスクの処理が完了するまで、CPUの使用権はそのタスクが持ち、処理が完了すると、タスク自身がCPUの使用権をOSに戻す。

    • ノンプリエンプティブでは、CPUの使用権をOSが管理しないため、OSの役割がよりシンプルになる。

タスクが生成されてから消滅するまで

  • タスクは、その生成から消滅までに以下の3つの状態を取る

  1. 実行可能状態
    いつでもタスクを実行できる状態

  2. 実行状態
    タスクを実行している状態

  3. 待ち状態
    タスクの入出力処理の完了を待っている状態

  • タスクの流れ

  • タスクの生成 → 実行可能状態

    • タスクが生成されると、まずは実行可能状態になる

  • 実行可能状態 → 実行状態

    • CPUの使用権がOSまたはタスクに割り当てられると、タスクは実行状態に移る

    • OSがタスクを実行状態に移すことを「ディスパッチ」という

    • ディスパッチ
      CPUの使用権を割り当てること

  • 実行状態 → 実行可能状態

    • プリエンプティブの場合

      • より優先度の高いタスクが発生すると、優先度の低いタスクは実行可能状態に戻り、優先度の高いタスクが実行状態に移る

    • ノンプリエンプティブの場合

      • より優先度の高いタスクが発生すると、現在のタスクが終了するのを待ってから、優先度の高いタスクが実行状態に移る

  • 実行状態 → 待ち状態

    • タスクに入出力処理が必要になると、実行状態から待ち状態に移る

    • 入出力処理
      CPUが入出力装置や補助記憶装置などとデータをやり取りすること

    • これらの処理には時間がかかるため、OSは入出力処理が必要なタスクを待ち状態に移して、CPUに別のタスクを実行させる

  • 待ち状態 → 実行可能状態

    • 入出力処理が完了すると、タスクは待ち状態から実行可能状態に移る

  • 実行状態 → タスクの消滅

    • タスクの実行が完了すると、タスクは消滅する

タスクスケジューリング

  • 実行可能状態にある複数のタスクの中から、どのタスクを実行状態に移すのかを決めること

  • 到着順方式
    先に到着したタスクを先に実行する

  • 処理時間順方式
    処理時間の短いタスクを先に実行する

  • 優先度順方式(プリエンプティブの場合)
    各タスクに優先度を与えて、その優先度順に実行する。
    優先度の低いタスクを実行中に、優先度の高いタスクが発生したら、優先度の高いタスクに切り替える。

  • 優先度順方式(ノンプリエンプティブの場合)
    各タスクにA先度を与えて、その優先度順に実行する。
    優先度の低いタスクを実行中に、優先度の高いタスクが発生しても、現在のタスクが終了するまで切り替えない。

  • ラウンドロビン方式
    タスクを一定時間ごとに切り替えて実行する。

記憶管理

  • 記憶装置を効率的に利用するための機能

  • 主記憶装置を管理する「主記憶装置」と仮想記憶装置を管理する「仮想記憶管理」の2つに分類される

  • 基本情報では、仮想記憶管理が頻出

仮想記憶管理

  • 補助記憶装置の一部をあたかも主記憶装置であるかのように扱う方式

  • プログラムが主記憶装置の容量を超える大きさに場合に、そのプログラムを仮想記憶上に格納することで実行できるようになる

  • OSが「論理的な記憶領域」を作る

  • 仮想記憶
    論理的な記憶領域のこと

  • 実記憶
    主記憶装置上の「物理的な記憶領域」のこと

  • セグメンテーション方式とページング方式の2つの方式に分類される

セグメンテーション方式

  • 仮想記憶と実記憶をセグメントと呼ぶ可変長の領域に分割して管理する方式

ページング方式

  • 仮想記憶と実記憶をページと呼ぶ固定長の領域に分割して管理する方式

  • 仮想記憶と実記憶の各ページは先頭から順にアドレスが割り振られる。

  • 仮想アドレス
    仮想記憶のアドレス

  • 物理アドレス
    実記憶のアドレス

  • 仮想アドレスと物理アドレスは「ページテーブル」と呼ばれる表によって対応付けられる。

  • ページテーブルは仮想アドレスと物理アドレスを示す2つの列があり、それぞれに以下の値が割り当てられる。

    • 仮想アドレスを示す列
      →仮想記憶の仮想アドレスと同じ番号

    • 物理アドレスを示す列
      →実記憶の物理アドレスと同じ番号

  • 仮想記憶の各ページとページテーブルの各行は、1対1で対応付けられるため、仮想記憶にあるページの総数とページテーブルの行の総数は同じになる

CPUがページにアクセスする流れ(ページング方式の場合)

  • CPUがプログラムの実行中に「仮想アドレス「1」のページA」が必要になった

    1. CPUは、仮想記憶の「ページA」にアクセスする。

    2. 「ページA」の仮想アドレスは「1」なので、ページテーブルにある仮想アドレスが「1」の行にアクセスする

    3. その行の物理アドレスが「2」だったので、実記憶にある物理アドレスが「2」のページにアクセスする

    4. CPUは「ページA」の実体にアクセスできる

ページインとページアウト

  • ページフォールト
    実記憶に存在しないページへのアクセスによって起こる割り込み

  • ページイン
    ページフォールトによって発生する。
    OSが「プログラムを実行するために必要なページ」を補助記憶装置から実記憶に読み込むこと

  • ページアウト
    実記憶に空きページがない場合に、実記憶から外すページを1つ選び、そのページを実記憶から補助記憶装置に書き出すこと

  • CPUがページにアクセスする流れ(上記の概念を含めたver.)
    仮想記憶へのアクセス
    ページテーブルの参照
    ページフォールト
    置き換えるページの決定
    ページアウト
    ページイン

ページの置き換えアルゴリズム

  • どのページを実記憶から外すのかを決めるアルゴリズムのこと

  • ページインとページアウトはできるだけ発生しない方がCPUの処理効率は高まる。

  • 頻繁に使うページはできるだけ実記憶に、めったに使わないページは実記憶から外すことが望ましい

  • 3種類ある

  • LRU

    • Least Recently Used

    • 最後に参照されてから最も時間が経過したページ(使われていない時間が最も長いデータ)を置き換える

  • LFU

    • Least Frequently Used

    • 参照頻度(回数)が最も少ないページを置き換える

  • FIFO

    • First In First Out

    • 読み込んでから最も長い時間が経過したページを置き換える

  • 参考書の図を参照する

スラッシング

  • 仮想記憶管理において、割り当てられる実記憶の容量が小さいときにページアウトとページインが頻繁に起こる現象

  • スラッシングが発生するとコンピュータ全体のスループットが低下する

データ管理

  • コンピュータが処理するデータを管理する機能

  • 例)ファイルシステムバックアップ

CPU(プロセッサ)

CPU

  • Central Processing Unit:中央処理装置

  • プロセッサとも呼ばれる

  • 性能は主に3つの指標で評価される

    • クロック周波数

    • MIPS

    • コア

クロック周波数

  • CPUの動作の速さを表す指標

  • コンピュータは内部に発振器を持っていて、CPUはこの発振器が発生させるテンポに合わせて命令を処理する

  • クロック周波数は、コンピュータ内部の発振器が1秒間に発生させる信号の回数

  • 単位は「Hz」、1秒間に1回の信号を発生させることを1Hzという

  • コンピュータの世界では、命令の処理にかかるCPUの手間を「クロック数」で表す

  • クロック数

    • 発振器がテンポを刻む回数

    • 発振器が1回分のテンポを刻むことを1クロックという。1波のイメージ

    • 複雑な命令ほどクロック数が増える

  • 大きいクロック周波数に対応できるCPUほど処理が速い

  • より速いテンポに対応できるCPUが必要

  • 1秒間に実行できる命令数 = クロック周波数 / 1つの命令を実行するのに必要なクロック数

MIPS

  • Million Instructions Per Second

  • CPUが1秒間に何百万個の命令を実行できるかを表す単位

  • MIPS = 1秒 / 平均命令実行時間 × 10^-6

  • 平均命令実行時間
    1つの命令を実行するのにかかる時間の平均値

コア

  • CPU内にある「演算を行う装置」

  • 従来は1つのCPUには1つのコアだったが、最近は1つのCPU内に複数のコアが搭載されているコンピュータが主流

  • マルチコアプロセッサー
    1つのCPU内に複数のコアを持つCPUのこと

  • デュアルコアプロセッサー
    1つのCPU内に2つのコアを持つCPUのこと

  • クアッドコアプロセッサー
    1つのCPU内に4つのコアを持つCPUのこと

  • マルチコアプロセッサーでは、それぞれのコアが別々の処理を実行できるため、多くのコアが搭載されているCPUの方が性能が高い

進捗

37 / 97 (38%)


この記事が気に入ったらサポートをしてみませんか?