こんにちは。
応用情報技術者を勉強しているロペです。
今回は第4章を学習したので、それについて書きます。
第1,2,3章の学習記事は以下になります(もしよければ覗いてみてください)
第4章 OSの基本機能
OS(Operatting System:オペレーティング)は、コンピュータシステムを効率よく動作させるためのソフトウェアです。
ユーザーが作成するアプリケーションもソフトウェアですが、全てOSの配下で動作します。(つまり、ソフトウェアには上下関係がある)
OSの基本機能(タスク管理、データ管理)
記憶管理、同期、排他制御
について学習します。
タスク管理
タスク(プロセス)は、コンピュータの資源を使用す最小の実行単位のことです。
通常、ジョブがコンピュータに投入されると、複数のタスクが生成され、タスク管理によって各タスクに対してプロセッサや主記憶などのシステム資源が適切割り当てられます。
タスクの状態管理
タスク管理(プロセス管理)は、要求に応じてタスクを生成して、実行課程を監視する。
また、生成されたタスクが不要になると、そのタスクを消滅させます。
スケジューリングと優先順位
スケジューリングは、優先順位に従ってタスクを実行することです。
スケジューリング方式には、イベントドリブン方式とタイムスライス方式があります。
(実際はこの2つを組み合わせた方式が使われることが多いです)
イベントドリブン:タスクの状態遷移をトリガ(引き金)としてスケジューリング
タイムスライス:一定時間ごとにスケジューリングし、タスクを切り分けながらCPU使用権を与える。
優先順位は静的優先順位方式と動的優先順位方式があります。
静的優先順位方式:あらかじめ決められた優先順位に従ってスケジューリングする。
優先順位の低いタスクは実行されない。
動的優先順位方式:優先順位を動的に変更することで、スタンベーション(優先順位の低いタスクがなかなか実行されないこと)を防止する。
データ管理と入出力管理
データ管理は、プログラムやデータを全てファイルという統一した概念で取り扱うことで、様々な処理プログラムとは独立して処理できます。
スプーリング
ジョブの入出力処理をプログラムの実行とは独立に、並行して行う機能です。
プログラム実行中に、出力データを直接プリンタなどの低速な装置に出力すると処理速度が低速になります。そのため、磁気ディスクなどに確保されたスプールファイルに出力しておき、プログラム終了後に実行します。
デバイスドライバ
プリンタやハードディスクなどの周辺機器を動作させるためのソフトウェアです。
周辺機器の仕様など様々なので、OS側でソフトを準備しておくことは困難なため、各会社が自社製品を制御するためのソフトウェアを用意してOSに組み込みます。
バッファプール
入出力を行うために主記憶上に確保された共通バッファのことです。バッファを多数用意して、複数のプログラムで共用することで、プログラムの入出力と処理の並行動作を行い、処理時間を短縮することができます。
直接メモリアクセス機構
CPUの制御を受けずに、主記憶と入出力装置との間でデータ転送を制御する方式です。
BIOS
ROMに実装した入出力を実行するプログラム。
OSが直接、デバイスを制御するのではなく、BIOSの機能を呼び出すことで制御します。
キーボードやディスプレイなど基本的なデバイスは、マザーボード上のシステムBIOSにより制御できます。
チャンネルサブシステム
入出力専用のコンピューターシステムのことで、汎用コンピュータでは、入出力にチャンネルサブシステムを使うことが多いです。
記憶管理と同期・排他的制御
コンピュータシステムを効率良く作動させるために、主記憶の管理を行います。
また、共用資源のデータに矛盾が発生しないようにするため、同期制御や排他制御が行われます。
主記憶管理
主記憶を効果的に使用するとともに、主記憶の容量の制約をカバーします。
このため、補助記憶装置を記憶空間として利用します。
仮想記憶システム
実装されている主記憶容量以上の記憶量を実現する仕組みで、磁気ディスクを仮想記憶として扱います。主記憶の部分を実アドレス空間、仮想記憶の部分を仮想アドレス空間といいます。
仮想記憶の実現方法
仮想記憶システムでは、プログラムをページやセグメントに分割し、プログラムの実行に必要部分だけを実記憶(主記憶)に格納します。そのため、仮想アドレスから実アドレスへの変換が必要になり、このアドレス変換を動的アドレス変換と呼びます。
マッピング
マッピングは、仮想記憶にあるプログラムを分割した結果を実記憶に展開することです。
ページングアルゴリズム
実記憶の不要になったページを決定するアルゴリズムです。
プログラム実行中に必要なページが実記憶にないと、ページフォールトという割込みが発生し、不要なページを仮想記憶に追い出し(ページアウト)、必要なページを仮想記憶から実記憶に読み込む(ページイン)。この、ページインとページアウトを総称して、ページングといいます。
同期・排他制御
あるタスクが他のタスクと資源を共有する場合、ほかのタスクの処理結果を待ったり、他のタスクの処理を待たせたりする必要があります。このとき、同期・排他制御が必要となります。
同期制御
同期制御は、複数のタスクの実行を矛盾なく行うため、処理のタイミングを合わせることです。
排他制御
共用資源に対して、同時に複数のタスクから更新処理を行うとエラーとなります。このような処理部分(同時更新)をクリティカルセッションと呼びみます。
排他制御はクリティカルセッション実行中にプリエンプションが発生しないように制御することです。
コメント