😑
コンピューターシステム2[基本情報]
OS(オペレーティングシステム)
「コンピュータを動かすための基盤ソフトウェア」有名なのは👇
プリエンプション
これは、OSがタスク(プロセス)の実行権を制御する方法で、特定のタスクが実行中でも他のタスクにCPUの使用権を譲ることです。
これにより、複数のタスクが効率的に並行して実行できます。
-
プリエンプティブ方式
OSが実行中のタスクに対して強制的にCPUの使用権を取り上げる方式です。
この方式ではディスパッチャ(スケジューラ)が[ タスクスケジュール ]に基づいてCPUの使用権を管理し、タスクを切り替えます。
[ タスクスケジュール例 ]
- 優先度が高いタスクに譲る
- 処理時間が短いものに譲る
- 到着した順に譲る
- 一定時間経過で譲る ....etc
[優先度A>BのときB実行中にAが起動するとBは実行可能状態に戻る!(待ち時間はユーザーの動きをPCが待ってる状態!ひっかけでよく出てくる!🤔)]
-
ノンプリエンプティブ方式
プリエンプションを使用しない方式
この方式では、タスクが自分で終了するまで他のタスクにCPUを譲らないため、よりシンプルですが、リアルタイム性が求められる環境には向かない😪
[ラウンドロビン(リボン)方式]⇒各タスクに均等にCPU時間を割り当てて実行する方式
ジョブとジョブステップ
ジョブとジョブステップは、コンピュータシステムにおけるタスク管理の概念です。
- ジョブ:一連の処理やタスクの単位で、システムに対して実行を要求する仕事のことです。
例えば、プログラムを実行することや、データ処理を行うことがジョブに該当します。 - ジョブステップ:ジョブの中で個別に実行される作業のことです。
ジョブは複数のジョブステップで構成され、各ジョブステップは特定の処理(例えば、ファイルの読み込みや計算)を担当します。
割り込み
- 外部割込み
1.入出力割込み:キーボードなど周辺機器の入出力操作完了時に発生
2.コンソール割込み:コンソールからユーザが入力/プログラムを中止した際に発生
3.機械チェック割込み:障害時に発生
4.タイマー割込み:指定した時間が経過時に発生 - 内部割込み
1.プログラム割込み:0徐算やオーバーフローなどプログラムが原因で発生
2.スーパーバイザーコール割込み(SVC):OS特権機能呼び出し時に発生
3.ページフォールト:仮想記憶管理におけるページフォールトで発生
[ ページフォールト] :データを呼び出したが主記憶装置がない状態
「スプーリング」:スプーリングとは、コンピュータシステムにおいて、出力データ(例えばプリンタへのデータ)を一時的に高速なストレージ(通常はディスク)に保存しておき、低速な出力装置がデータを処理する間に、他の作業が進行できるようにする技術です。
具体的には、プリンタなどの低速な装置にデータを直接送るのではなく、まず高速な装置に保存し、出力装置が利用可能になったときにそのデータを順次処理することで、システム全体の効率を向上させます。
信頼性向上のための構成
-
デュプレックスシステム
信頼性を保つための仕組みで主サーバー以外に常に待機サーバーを準備しておき、主サーバーに災害が起きた時待機システムを稼働させそちらを主サーバーに変更する仕組み
-
デュアルシステム
デュプレックスシステムより信頼性が高い
デュプレックスシステムの様に常に2つサーバーを起動させておくのは同じだがデュプレックスシステムの様に主・待機など上下関係がない
システムそれぞれで処理を行い、2つの間にある「照合機」でデータ照合をする。(信頼性UP)
[メリット]:片方に災害が起きてももう1つを今まで通り使うだけなので切り替え時間が不要
[デメリット]:コストがデュプレックスシステムのホットスタンバイよりも高い・信頼性を高めるものなので冗長的な構造である
RAID(レイド)
補助記憶装置を2つ置いておく(冗長的構造)
- RAID 0(ストライピング):ハードディスクは書き込みのスピードが遅いので、データの書き込みを2台順番に行う。これは信頼性よりスピード重視😳
- RAID 1(ミラーリング): まったく同じものを書き込む。故障したとき用!(信頼性)
-
RAID 5: 3台必要な構造で2台ずつ順番に使う。
パリティブロックという誤り訂正用ブロックを用意し2台のどちらかに災害が起きたらパリティブロックを使って復旧する🥴スピード&信頼性
障害対策
- フォールトトレランス:一部が故障しても呼びに切り替えることで正常に稼働させ続ける👆
-
フェールセーフ:故障発生時安全性を確保する方向に停止する
例)ストーブが倒れたら消えるようになっているとか -
フェールソフト:故障が発生した場合性能が低下したとしても稼働させる
例)飛行機の一部が故障⇒高度はさがるかもだけど墜落はしないようにする。 - フォールトアボイダンス(回避):故障が発生しないように対策する
- フールプルーフ:ユーザーが誤作動しても動きが止まるような仕組み
RASIS
コンピューターシステムに求められる信頼性の指標
R(信頼性):故障しない事
Rは平均故障間隔(MTBF)で判断できる。稼働時間 / 2
S(保守性):早く復旧できること
Sは平均復旧時間(MTTR)で判断できる。故障時間 / 2
A(可用性):稼働できていること
Aは稼働率で判断できる。 MTBF / (MTTR + MTBF)
[全体の稼働率]= 稼働率 * 稼働率 // ストライピングver?
= 1- (故障率 * 故障率) // ミラーリングver (故障率は100 - 稼働率)
Discussion