オペレーティング システムの最終レビューの知識ポイントの概要

目次

第 1 章 オペレーティング システムの概要

第 2 章 プロセスの説明と制御/スレッド

第 3 章 同時実行制御 - 相互排他と同期

第 4 章 デッドロックの処理

第 5 章 メモリ管理

第 6 章 プロセッサのスケジューリング

第 7 章 I/O デバイスの管理


第 1 章 オペレーティング システムの概要

1. オペレーティングシステムの定義

OS は、コンピューターのハードウェアとソフトウェアのリソースを制御および管理し、さまざまなジョブを合理的にスケジュールしユーザーがコンピューターを使用できるようにする一連のプログラムです。つまり、ユーザー プログラムにサービスを提供し、ユーザーとハードウェア システム間のインターフェイスになります。

2. オペレーティングシステムの役割

OS はコンピュータ システムの中核であり、コンピュータ システム全体が効率的かつ秩序正しく動作できるように、コンピュータ システム全体のソフトウェアおよびハードウェア リソースの管理、さまざまなリソースの割り当て戦略の策定、システム内で実行されるユーザー プログラムのスケジュール設定、およびリソースに対するユーザーのニーズの調整を担当します。

3. オペレーティング システムの一般的な分類

①バッチ処理オペレーティングシステム:シングルチャネルバッチ処理(自動、逐次、シングルチャネル)、マルチチャネルバッチ処理(マクロレベルで並列、ミクロレベルでシリアル、高いリソース利用率と高いシステムスループット、長いユーザー応答時間とドローン対話機能)

② タイムシェアリングオペレーティングシステム: タイムスライスローテーション、同時、インタラクティブ、独立、適時性

③リアルタイム オペレーティング システム: 事前に定義された時間内にイベントに応答し、タイムリーかつ信頼性が高くなります。

④ネットワークOS 分散OSと組み込みOS

4. マルチプログラミング技術の定義、マルチプログラミング技術導入の理由と目的

マルチプログラミング技術により、複数のプログラムを同時にメモリに入力し、CPU 上で交互に実行できるようになります。I/O 要求によりプログラムが中断されると、CPU はすぐに他のプログラムの実行に切り替わり、リソースを最大限に活用し、作業効率を 2 倍に高めます。

マルチプログラミング技術を導入して、リソース使用率とシステム スループットをさらに向上させ、コンピュータ システム コンポーネントの並列性を最大限に活用します。

5. オペレーティングシステムとハードウェア、その他のシステムソフトウェアおよびユーザーとの関係

オペレーティング システムは、ハードウェアをカバーするソフトウェアの最初の層であり、コンピュータのハードウェアとソフトウェア リソースを直接管理し、ユーザーに優れたインターフェイスを提供します。

オペレーティング システムは特別なシステム ソフトウェアであり、他のシステム ソフトウェアはオペレーティング システムに基づいて動作し、オペレーティング システムが提供する多くのサービスを利用できます。

一般ユーザーは、業務をより便利に、効率的に行うために、OS のサポート以外にも多数のシステム ソフトウェアやアプリケーション ソフトウェアを使用する必要があります。

6.マルチプログラミング技術の定義とOSへの導入メリット

マルチプログラミング テクノロジとは、複数のジョブをメモリに保存し、操作が完了するかエラーが発生したときに、別のジョブがメモリ内で実行されるように自動的にスケジュール設定することを指します。マルチプログラミングの主な利点は次のとおりです。
(1) リソース使用率が高い。複数のプログラムがメモリにロードされるため、リソースを共有してシステム リソースをビジー状態に保ち、さまざまなリソースを最大限に活用できます。
(2)システムのスループットが大きい。CPU およびその他のシステム リソースは「ビジー」のままであり、ジョブが完了するか続行できない場合にのみ切り替えられるため、システムのオーバーヘッドが小さく、スループットが高くなります。

7. バッチ処理システムとタイムシェアリングシステムの形成と発展の主な原動力

(1) バッチ処理システムの形成と開発の主な原動力: システム リソースの使用率とシステム スループットの継続的な改善: オフライン入出力テクノロジの適用とジョブの自動移行により、I/O の速度と I/O デバイスと CPU 間の並列作業の度合いが大幅に向上し、ホスト CPU のアイドル時間が短縮されます。マルチプログラミング テクノロジの適用により、CPU、メモリ、および I/O デバイスの使用率とシステムのスループットがさらに向上します。

(2) タイムシェアリング システムの形成と開発の主な原動力は、ユーザーのニーズをより適切に満たすことであり、CPU のタイムシェアリング使用によりジョブの平均所要時間が短縮され、人間とコンピューターの対話機能の提供により、ユーザーは自分のジョブを直接制御できるようになり、ホストの共有により、複数のユーザーが同じコンピュータを同時に使用して、互いに干渉することなく独立してジョブを処理できるようになります。

8.タイムシェアリング実現に向けた重要な課題

タイムシェアリング システムを実現する際の重要な課題は、ユーザーが自分のジョブと対話できるようにすることです。つまり、ユーザーが自分の端末でコマンドを入力してシス​​テム サービスを要求した後、システムはそのコマンドを時間内に受信して処理し、ユーザーが許容できる遅延時間内に結果をユーザーに返すことができます。コマンドを受信し、タイムリーに出力結果を返すことは比較的容易であり、通常、システムにマルチチャネルカードを構成し、ユーザーが入力したコマンドと出力結果を一時的に保存するバッファを各端末に構成するだけで済みます。

9. タイムスライスの分割原理

タイム スライスは、CPU によって各プログラムに割り当てられる時間、つまり、各プログラムが同時に実行されているように見えるようにプロセスの実行が許可される時間です。タイム スライスの終了時にプロセスがまだ実行中の場合、CPU は奪われ、別のプロセスに割り当てられます。タイム スライスが終了する前にプロセスがブロックまたは終了した場合、CPU はすぐに切り替わります。CPU リソースを無駄に消費することはありません。

10. インタラクティブ性、適時性、信頼性の 3 つの側面から、タイムシェアリング システムとリアルタイム システムを比較します。

①適時性。リアルタイム情報処理システムのリアルタイム性はタイムシェアリングシステムと同様に人間が許容できる待ち時間で決まるのに対し、リアルタイム制御システムの適時性は制御対象が要求する開始期限や完了期限で決まり、一般に秒からミリ秒レベル、中には100マイクロ秒を下回るものもある。

② インタラクティブ性。リアルタイム情報処理システムも対話型ですが、ユーザーとシステム間の対話は、システム内の特定の特別なサービス プログラムへのアクセスに限定されます。タイムシェアリングシステムのようなデータ処理やリソース共有などのサービスをエンドユーザーに提供するわけではありません。

③信頼性。タイムシェアリングシステムでもシステムの信頼性が要求されますが、リアルタイムシステムではシステムに高い信頼性が要求されます。あらゆるエラーは多大な経済的損失、さらには予測不可能な壊滅的な結果をもたらす可能性があるため、リアルタイム システムでは、システム セキュリティとデータ セキュリティを確保するためにマルチレベルのフォールト トレランス対策が講じられることがよくあります。

11. オペレーティングシステムの特徴

(1) 兼務

同じ時間間隔内に 2 つ以上のイベントが発生します。

(並列処理とは異なります。並列処理とは、オペレーティング システムが同時に計算や演算を実行し、2 つ以上のタスクを同時に実行する特性があることを意味します。)

(2) 共有

① 排他的共有: 一定期間は 1 つのプロセスのみが使用でき、他のジョブは現在のジョブが解放された後にのみ使用できます。

② 同時共有:システムリソースは、一定期間内に複数のプロセスによる同時(巨視的)アクセスと微視的レベルでの交互アクセスを可能にします。

(3) 仮想

特定のテクノロジーを通じて、物理エンティティを論理的に対応する複数の機能に変換します。

(4) 非同期

マルチプログラミング環境では、複数のプログラムが同時に実行されますが、リソースが限られているため、プロセスの実行は最後まで一貫せず、予測できない速度で進みます。

12. マイクロカーネル構造の利点

 マイクロカーネル構造はクライアント/サーバーアーキテクチャに基づいており、オブジェクト指向技術の構造を採用しています。

①柔軟性。マイクロカーネルは短く無駄がなく、最も基本的で必要なサービスのみを提供します。

②開放性。カーネルを除くオペレーティングシステムの機能は、カーネル上にサーバーとして構築でき、この構造フレームワークに基づいて、システム開発者は独自の新しいシステムを容易に設計、開発、統合することができます。

③拡張性。マイクロカーネル オペレーティング システムを使用すると、システムの実装、インストール、デバッグが非常に簡単になります。ユーザーは既存の満足できないサービスを書き換えることができます

第 2 章 プロセスの説明と制御/ スレッド

1. プロセスの基本的な状態

①状態を作成します。プロセスが作成されたばかりで、まだ準備完了状態になっていないときのプロセスの状態。

②準備完了状態。プロセスは、プロセッサを除くすべてのリソースを取得します。必要なのは、プロセッサを実行することだけです。複数のプロセスが準備完了状態にある場合、それらは準備完了キューに配置されます。

③走行状態。プロセスによりプロセッサが実行されます。単一プロセッサ上で一度に実行できるプロセスは 1 つだけです

④ブロッキング状態。リソース待ちや入出力完了待ちなど、プロセスがリソースを待って動作を中断している状態。ブロックされたプロセスが複数ある場合は、ブロックキューに格納します

⑤終了状態。プロセスはシステムから消えつつあり、正常に終了するか受動的に終了する可能性があります。システムは、関連リソースを再利用するためにプロセスを終了状態にする必要があります。

2. プロセス状態遷移図

①準備完了状態→実行状態:準備完了状態のプロセスはプロセッサによってスケジュールされ、プロセッサリソースを取得し、実行可能になります。

②実行状態→準備完了状態:非プリエンプティブオペレーティングシステムではタイムスライスが使い果たされますが、プリエンプティブオペレーティングシステムではより優先度の高いプロセスが入ってきてプロセッサをプリエンプトし、元のプロセスが準備完了状態に戻ります。

③実行状態→ブロッキング状態:実行中のプロセスは他のリソースを必要とするため、ブロッキング状態になります。

④ブロッキング状態→準備完了状態:以前に必要なリソースを取得した後、再度準備完了状態に移行します。

3. プロセスハングの定義

準備完了またはブロック状態のプロセスをメモリから外部メモリに交換します

4. ハングの原因

5. オペレーティング システムのプロセス制御に使用されるプリミティブ、これらのプリミティブの役割

①プリミティブの作成:新しいプロセスを作成します

②元の言語をキャンセル:処理を終了します

③ブロッキングプリミティブブロック:プロセスを実行状態からブロッキング状態に変更します。

④ウェイクアッププリミティブ: プロセスを待機キューから削除し、その状態を準備完了状態に設定します。

6. プロセスの構造

プロセスは独立した操作単位であり、オペレーティング システムによるリソース割り当てとスケジューリングの基本単位であり、通常、プロセス制御ブロック、プログラム セグメント、データ セグメントの 3 つの部分で構成されます。

7. プロセス制御ブロックの定義

PCB はプロセス エンティティの一部であり、プロセスの存在を示す唯一の兆候であり、オペレーティング システムにおける最も重要なレコード タイプのデータ構造です。

8. プロセス制御ブロックの構成

①プロセス識別子

②処理とステータス

③プロセススケジュール情報

④ 工程管理情報

9. PCBの役割

PCB の役割は、マルチプログラム環境で独立して実行できないプログラムを、独立して実行できる基本単位にし、他のプロセスと並行して実行できるようにすることです。

10. 古典的な PCB にはどのような種類の情報が必要ですか?

プロセッサステータス情報、プロセススケジューリング情報、プロセス制御情報

11. 新しいプロセスを作成する主な手順

①新規プロセスに固有のプロセス識別番号を割り当て、ブランク基板を申請します 。

プロセスにリソースを割り当て、新規プロセスのプログラムやデータ、ユーザースタックに必要なメモリ空間を割り当てます。リソース(メモリ容量など)が不足している場合は、作成に失敗するのではなく、メモリリソースを待っているブロック状態となります。

③PCBの初期化には、主に初期化フラグ情報、初期化プロセッサステータス情報、初期化プロセッサ制御情報、および設定プロセス優先度が含まれます。

新しいプロセスを準備完了キューに挿入し、実行がスケジュールされるのを待ちます

1 2.プロセスとプログラムの違い

(1) プロセスは動的概念、プログラムは静的概念であり、プログラムは実行の意味を持たず順序付けられた命令の集合であるのに対し、プロセスは実行の過程に重点を置いています。

(2) プロセスには並列性(独立性、非同期性)があるが、プログラムには並列性がない。

(3) 異なるプロセスに同じプログラムを含めることができ、同じプログラムの実行中に複数のプロセスを生成することもできます。

1 3.プロセスの実行モード

ユーザーモード; カーネルモード

14.スケジュール、同時実行性、リソース所有権、独立性、システム オーバーヘッド、マルチプロセッサのサポートの観点からプロセスとスレッドを比較する

1) スケジュール設定。スレッドを導入したオペレーティングシステムでは、スレッドが独立スケジューリングの基本単位となり、プロセスがリソースを所有する基本単位となるため、同一プロセス内でのスレッド切り替えはプロセス切り替えを引き起こしません。あるプロセスのスレッドから別のプロセスのスレッドに切り替えるなど、異なるプロセスのスレッドを切り替えると、プロセスの切り替えが発生します。

2) 同時実行性。スレッドを導入するオペレーティング システム。プロセスを同時に実行できるだけでなく、複数のスレッドを同時に実行できるため、オペレーティング システムの同時実行性が向上します。システムのスループットが向上します。

3) 独自のリソース。従来のオペレーティング システムであっても、スレッドのないオペレーティング システムであっても、プロセスはリソースを所有する基本単位です。一方、スレッドはシステム リソース (少数の必須リソースのみ) を所有しませんが、スレッドはプロセスに属するシステム リソースにアクセスできます。

4) システムのオーバーヘッド。システムはプロセスの作成またはキャンセル時にメモリ空間や IO デバイスなどのリソースを割り当てたり再利用したりする必要があるため、オペレーティング システムが支払うオーバーヘッドはスレッドの作成またはキャンセル時のオーバーヘッドよりもはるかに大きくなりますが、スレッドの切り替えでは少量のレジスタの内容を保存して設定するだけで済むため、オーバーヘッドは非常に小さくなります。同じプロセス内の複数のスレッドは同じアドレス空間を持っているため、それらの間の同期と通信の実現が容易になります。しかもオペレーティング システムの介入なしで。

15 、ユーザーレベルスレッドULTの定義

ユーザーレベルのスレッドは、オペレーティング システムのコアに依存しないスレッドを指し、スレッド ライブラリを使用してアプリケーション プロセスによって制御され、スレッドの作成、同期、スケジュール、および管理の機能を提供します。

16.カーネルサポートスレッドKLTの定義

カーネル レベルのスレッドとは、カーネルに依存し、オペレーティング システム カーネルによって作成および取り消されるスレッドを指します。

17. スレッドとプロセスの関係

①プロセスは複数のスレッドを持つことができますが、少なくとも 1 つのスレッドを持つことができ、スレッドは 1 つのプロセスのアドレス空間でのみアクティブにできます。

②リソースはプロセスに割り当てられ、同じプロセスのすべてのスレッドがプロセスのすべてのリソースを共有します。

③CPU がスレッドに割り当てられます。つまり、スレッドはプロセッサ上で実際に実行されます。

④実行プロセス中にスレッドは連携して同期する必要があり、異なるプロセスのスレッドは同期を達成するためにメッセージ通信を使用する必要があります。

第 3 章 同時実行制御 - 相互排他と同期

1. 重要なリソースの使用において従うべき基本原則

重要なリソースへのアクセスは相互に排他的でなければなりません

2. クリティカルセクションの定義

プロセス内の重要なリソースにアクセスするコード。

3. クリティカルセクションにアクセスする際にプロセスが従うべき原則

1) 自由になったら譲ります。クリティカルセクションが空いている場合、クリティカルセクションへの入場を要求するプロセスは、直ちにクリティカルセクションへの入場を許可することができる。

2) ビジーの場合は待ちます。既存のプロセスがクリティカル セクションに入ると、クリティカル セクションに入ろうとする他のプロセスは待機する必要があります。

3) 制限された待機。アクセスを要求するプロセスは、限られた時間内にクリティカル セクションに入ることが保証される必要があります。

4) 待つ権利を放棄します。プロセスがクリティカル セクションに入ることができない場合は、プロセスがビジー待機状態になるのを防ぐために、プロセッサをすぐに解放する必要があります。

4. 割り込み処理

割り込みをオフにする: CPU は割り込みに応答した後、まずプログラムのオンサイト状態を保護する必要があり、保護処理中は CPU は優先度の高い割り込み要求に応答できません。優先度の高いプログラムに応答した場合、優先度の低いプログラムは完全に保存されず、割り込み処理後は割り込み前の状態に戻れなくなります。

ブレークポイントの保存: 割り込みサービスプログラムが実行後に元のプログラムに正しく戻ることができるようにするために、プログラムブレークポイント (プログラムカウンタ PC の値) を保存する必要があります。

割り込みサービスプログラムのエントリアドレスを求める: 本質は、割り込みサービスプログラムのエントリアドレスを取り出し、プログラムカウンタ PC に送信することです エントリアドレスの取得 : 「割り込みベクタテーブル」を問い合わせて、メモリ上の対応する割り込みハンドラの格納場所を見つけます

割り込みサービスルーチンに入り、割り込みサービスルーチンの実行を開始します。

シーンとマスクワードの保護:割り込みサービスルーチンに入った後の最初のことは、主にプログラムステータスワードPSWRといくつかの汎用レジスタの内容を保存するために、シーンとマスクワードを保護することです。

割り込み許可: 上位割り込みへの応答を許可する この時点で上位割り込みが来た場合、中断されたプログラムのサイト情報が保存されており、上位割り込みに応答しても中断されたプログラムのサイト情報は復元されないため、上位割り込みを実行できます。

割り込みサービスプログラム処理: 割り込みの目的でもある割り込みサービスプログラムを実行します。

割り込みオフ: 割り込みサービスプログラムの実行後、プログラムが終了する前にシーンを復元する必要があり、この操作を中断することはできません。

シーンの復元: 割り込みサービス プログラムは、関連するレジスターの以前に保存された値を元の状態に復元します。

⑨オープン割り込み: 割り込みサービス ルーチンが終了しようとしており、割り込みを再開し、他の割り込みに応答できるようにします。

ブレークポイントに戻って実行を継続: 割り込みサービス ルーチンの最後の命令は通常、割り込み復帰命令であり、プログラム ブレークポイントに戻り、元のプログラムの実行を継続できます。

 5. プロセスが重要なリソースに相互に排他的にアクセスできるようにするにはどうすればよいですか?

   アイドルの場合は諦める、ビジーの場合は待機、制限付き待機、ビジーの場合は待機

6. ハードウェア方式による相互排除の解決方法(2つの方式を含む)

①割り込みマスク:CPUプロセスの切り替えは割り込みによって完了するため、割り込みをシールドすることで現在実行中のプロセスをスムーズに実行させ、他のプロセスがクリティカルセクションに入ることを防ぎ、確実に相互排他を実現することができます(一般的な手順は、割り込みをオフにする→クリティカルセクション→割り込みを開く)です。

この方法はシンプルで効率的ですが、オペレーティング システムのカーネル プロセスにのみ適用され、ユーザー プロセスには適用されません。プロセッサの実行効率が低下します。割り込みをオフにした後に割り込みを有効にしないと、システムが終了する可能性があります。

②ハードウェア命令:TestAndSet命令:この命令はアトミック操作(実行プロセスの中断は許されない)であり、読み出し指定フラグをtrueに設定するために使用される;Swap命令:2バイトの内容を交換するために使用される

7.「busy-wait」とは何かとそのデメリット

「ビジー待ち」とは、あるイベントの発生によりプロセスが実行を継続できなくなった場合でも、CPUを占有してループテスト命令を実行し続けてイベントの完了を待つ、つまり「権利を放棄しない」待ちのことを指します。

「ビジー待機」の主な欠点は、CPU 時間を浪費することであり、予期せぬ結果を引き起こす可能性もあります。

たとえば、高優先度の優先スケジューリング原則を採用するシステムを考えます。現在、特定のクリティカル リソースを共有する 2 つのプロセス A と B があります。A の優先度が高く、B の優先度は低く、B はすでにクリティカル エリア内にあります。A が自身のクリティカル エリアに入ろうとすると、A も B も先に進み続けることができず、「デッドウェイト」状態に陥ります。

8. 相互排他問題を解決するためにセマフォを使用する方法«

相互排他とは、異なるプロセスが同じセマフォ上で PV 操作を実行することを意味します。相互排他を解決すると、単位時間あたり 1 つのプロセスのみが重要なリソースにアクセスできるようになります。

プロセス P1 と P2 は同時に実行され、両方とも独自のクリティカル セクションを持っていますが、システムでは一度に 1 つのプロセスのみが自身のクリティカル セクションに入ることを要求しているため、セマフォ S の初期値は 1 (使用可能なリソースの数は 1) に設定され、クリティカル セクションは P 操作と V 操作の間に配置され、2 つのプロセスによるクリティカル リソースへの相互排他的アクセスを実現します。

クリティカルエリアにプロセスが存在しない場合は、任意のプロセスが入ってP操作を実行し、S--を0にロックしてから入りますが、クリティカルエリアにプロセスが存在する場合、この時点でSは0であり、P操作を実行したい場合は、クリティカルエリアのプロセスが終了するまでブロックすることで相互排他を実現します。

9. セマフォのP、V動作

P 操作 (wait(s), value--) は、プロセスがこのタイプのリソースに適用されることを意味します。

V 操作 (信号、値++)。プロセスがリソースを解放することを示します。

10. モニターの構成

①チューブの名称

②モニター内に局所化された共有構造データの記述

③ データ構造上で動作する一連の手続き(または関数)

④ モニタローカルの共有データの初期値を設定するステートメント

11. モニターの特性

① モニター内のローカル変数にはモニターに限定されたプロセスのみがアクセスでき、逆も同様、つまりモニターのローカルなプロセスはモニター内の変数のみにアクセスできます。

② どのプロセスも、モニターが提供するプロセスエントリーを呼び出すことによってのみモニターに入ることができます。上記の例では、外部プロセスは take_away() プロセスを通じてのみリソースを申請できます。

③ モニター内では常に最大 1 つのプロセスを実行することができ、プロセスの相互排他を実現します。モニターはプログラミング言語のコンポーネントであり、その実装にはコンパイラーのサポートが必要です。

12. メッセージパッシングプリミティブ

送信プリミティブと受信プリミティブ: ペアで表示され、通常はブロッキング送信、ブロッキング受信、ノンブロッキング送信、ブロッキング受信、ノンブロッキング送信、ノンブロッキング受信として組み合わされます。

第 4 章 デッドロックの処理

1. デッドロックの定義

デッドロックとは、複数のプロセスがリソースを獲得するために競合することによって発生するデッドロック (お互いを待ち続けること) を指し、外部の力がなければ、これらのプロセスは前進を続けることができません。

2. デッドロックの4つの必要条件

相互排除: 同じ時間間隔で 1 つのプロセスのみがリソースを占有します。

不可侵: プロセスが獲得したリソースは自らのみ解放でき、他のプロセスが強制的に占有することはできません。

③リクエストアンドホールド: すでにリソースを所有しているプロセスが新しいリソースをリクエストしますが、そのリソースはすでに別のプロセスによって占有されており、プロセスはブロックされますが、取得したリソースはまだ保持されています。

④循環待機:プロセスリソースの循環待機チェーンがあり、チェーン内の各プロセスが取得したリソースは次のプロセスによって同時に要求されます。

3. デッドロックの根本原因

①システムリソースの奪い合い: 譲渡不可能なリソースでは複数のプロセスの実行ニーズを満たすことができないため、これらのプロセスは譲渡不可能なリソースの奪い合いで行き詰まり、デッドロックが発生します。

② 不正なプロセスの進行:2 つのプロセス P1 と P2 がそれぞれリソース 1 とリソース 2 を占有している場合、P1 がリソース 2 を申請し、P2 がリソース 1 を再度申請すると、リソース不足により 2 つのプロセスはデッドロックになります。つまり、プロセス実行中のリソースの要求と解放の順序が不適切な場合もデッドロックが発生します。

4. デッドロックを解決する 3 つの方法

①デッドロック防止:デッドロックによって発生する4つの条件のうち1つ以上を解除する条件を設定します。

②デッドロック回避:リソースを動的に割り当てる過程で、システムが危険な状態に陥るのを防ぐために特定の戦略を採用します。

③デッドロックの検出と解除:プロセスの実行中に、実行中のデッドロックが発生した場合、検出機構によりデッドロックを検出し、リソースの剥奪やプロセスのキャンセルなどの措置を講じてシステムをデッドロックから解放します。

5. 静的なリソース割り当て戦略

 リクエストと保留の条件を破棄し、静的割り当てを採用し、プロセスが準備完了状態にあるときにプロセスに必要なすべてのリソースを一度に適用します。すべてのリソースが適用されると、プロセスはすぐに実行され、実行期間中はすべてのリソースは現在のプロセスによってのみ所有され、他のプロセスによって要求されることはありません。

6. デッドロックを防ぐ方法

静的なリソース割り当て戦略を採用します。

オンデマンドのリソース割り当て戦略を採用する

7. 安全な状態とは何ですか

安全な状態とは、ある時点で、システムが各プロセスに必要なリソースを特定の順序またはシーケンス (例: P1、P2、..Pn) で割り当て、各プロセスが最大のリソース要求を取得できるまで、すべてのプロセスが順番に完了することを保証できる状態です。このときのシーケンスは安全シーケンスと呼ばれます。安全なシーケンスが見つかる限り、システムは安全な状態にあり、システム内に安全なシーケンスが存在しない場合、システムは安全ではない状態になります。

8. システムが安全な状態にあるかどうかを確認する方法«

: T0 は安全な状態ですか? そうであれば、安全なシーケンスを入力してください

 

9. バンカーのアルゴリズムの基本的な考え方

基本的なアイデア: プロセスの実行前に、さまざまなリソースの最大需要を宣言します。プロセスが実行中にリソースの適用を続ける場合、まず、プロセスが占有しているリソースの数と今回要求されたリソースの数の合計が、プロセスによって宣言された最大需要を超えているかどうかをテストします。それを超える場合は、リソースの割り当てを拒否します。超えない場合は、システムの既存のリソースがプロセスがまだ必要とするリソースの最大量を満たすことができるかどうかをテストします。満たすことができる場合は、現在のアプリケーション量に従ってリソースを割り当てます。そうでない場合は、割り当ても延期されます。

10. リソース割り当てグラフとその簡略化

リソース割り当てグラフで、ブロックされておらず分離されていないプロセスを見つけます (つまり、そのプロセスに接続されている有向エッジがあり、その有向エッジに対応するリソースのアプリケーションの数がシステム内のアイドル リソースの数以下であること) プロセスに接続されているすべてのエッジが条件を満たしている場合、プロセスは完了するまで実行を継続し、その後、プロセスが占有しているすべてのリソースを解放します。すべてのリクエスト エッジと割り当てエッジを削除し、孤立したノードにします。リソースにスペースがあるかどうかを判断するには、リソース割り当てグラフでそのリソース量から出次数を引いた値を適用します。上記の方法に従って一連の単純化を行った後、グラフ内のすべてのエッジを削除できれば、グラフは完全に単純化されたと言われます。

第 5 章 メモリ管理

1. 仮想メモリの定義

仮想ストレージは、ジョブの一部のみをメモリにロードして実行するストレージ システムです。具体的には、リクエストの転送や置き換えの機能を持ち、メモリ容量を論理的に拡張できるストレージシステムのことを指します。

2. 仮想メモリを実現するための要素技術

仮想メモリの実現は、リクエスト ページング、リクエストセグメンテーション、リクエストセグメント ページ3 ストレージ管理方法などの離散割り当てのストレージ管理方法に基づいていますが、同時に動的再配置、つまり再配置テクノロジと再配置レジスタが必要です。

3. スイッチ技術

スワッピング技術とは、一時的に使用されないプログラムやデータの一部または全部をメモリから外部メモリに移動して必要なメモリ空間を確保したり、外部メモリから指定されたプログラムやデータを対応するメモリに読み出して制御を移したりする技術です。

スワップアウト - 待機(ブロック)状態にあるプロセスをメモリから外部メモリに移動し、メモリ領域を解放します。

スワップイン - CPU を巡って競合する準備ができているプロセスを外部ストレージからメイン メモリに移動します。

4. 論理アドレスと物理アドレスの定義

① 論理アドレス: ソース コードのコンパイル後、ターゲット プログラムで使用されるアドレスは論理アドレスです。各ターゲット モジュールはユニット 0 からアドレッシングを開始し、それに対応するアドレス範囲は論理アドレス空間です。異なるプロセスは同じ論理アドレスを持つことができ、メイン メモリの異なる場所にマッピングできます。

②物理アドレス:メモリ上の物理ユニットの集合、アドレス変換の最終アドレス、プロセスの実行命令やアクセスデータは、物理アドレスを介してメインメモリからアクセスする必要があります。

5. 移転の定義

アドレス空間で使用される論理アドレスをメモリ空間の物理アドレスに変換するアドレス変換。アドレス マッピングとも呼ばれます。

アドレス変換の時間と手段により、再配置は静的再配置と動的再配置に分けられます。

6. 3つのゾーニング方法

① 固定分割方式:ユーザーメモリを複数の固定サイズの領域に分割し、各領域には 1 つのジョブのみをロードします。

②動的パーティション方式:動的パーティション割り当てでは、メモリを事前に分割せず、プロセスがメモリにロードされると、プロセスのサイズに応じて動的にパーティションが確立され、プロセスのニーズに合わせた適切なサイズのパーティションが作成されます。

③再配置可能なパーティション方式:

7. パッチワークとは

分散した小さな空き領域を合理的に使用するには、すべてのフラグメントを連続領域にマージします。つまり、割り当てられた領域の内容を移動して、すべてのジョブ パーティションが互いに接続され、空き領域をもう一方の端に残します。

8. ファーストフィットアルゴリズム、ベストフィットアルゴリズム、ワーストフィットアルゴリズムにおけるストレージスペースの回復と割り当て

① 初回適応:空きパーティションをアドレスの昇順にリンクします。ジョブが到着すると、このテーブルから順番に検索され、必要なサイズの最初の空きパーティションが見つかります。残りの空のパーティションが残ります。最初から最後まで適格なパーティションがない場合、割り当ては失敗します。

②最適な適応:空きパーティションは容量を増やす形でパーティションチェーンを形成し、ジョブが到着すると、要件を満たす最初の空きパーティションをテーブルから取得して割り当てます。この方法は断片化が最も小さく、残りの空きパーティションが小さすぎる場合は、パーティション全体がそのパーティションに割り当てられます。

③最悪の適応:空きパーティションが容量の大きい順にリンクされます。ジョブが到着すると、要件を満たす最初の空きパーティションがテーブルから取得され、つまり最大のパーティションが選択されます。この方法では断片化が最も大きくなりますが、残りの空きパーティションは再利用できます。

9. ページの定義

 プロセスの論理アドレス空間を同じサイズの部分に分割し、それぞれをページと呼びます。

10. ページサイズを分割するにはどうすればよいですか?

ページのサイズも適度である必要があり、通常は 2 の整数乗 (518B ~ 8KB) です。ページが小さすぎると、プロセスのページ数が多すぎて、ページ テーブルが長すぎて大量のメモリを占有し、ハードウェア アドレス変換のオーバーヘッドが増加します。ページが大きすぎると、ページ内の断片化が増加し、メモリの使用率が低下します。

11. 物理ブロックの定義

メモリ空間をページと同じサイズの複数のストレージ ブロック (物理ブロックまたはページ フレーム) に分割します。

12. ページテーブルとは何ですか? ページテーブルの機能は何ですか? ページテーブル構造?

  各プロセスのページがメモリ内のどこに格納されているかを知るために、オペレーティング システムはプロセスごとにページ テーブルを作成します。1 つのプロセスが 1 つのテーブルに対応し、プロセスの各ページがページ テーブル エントリ (ページ番号 + ブロック番号) に対応し、プロセス ページと実際に格納されているメモリ ブロックの対応を記録します。

13. 純粋なページング システムとは何ですか

純粋なページング システムとは、ジョブをスケジュールするときに、そのすべてのページを一度にメモリの物理ブロックにロードする必要があることを意味します。物理ブロックが不十分な場合、ジョブは十分な物理ブロックができるまで待機し、その後システムが別のジョブをスケジュールします。

14. ページングメモリ管理システムにおける論理アドレス構造

 15. リクエストページングシステムにおけるアドレス変換処理

 16. セグメントストレージ管理とは

プロセスのアドレス空間を、独自の論理関係に従っていくつかのセグメントに分割します。各セグメントは、比較的完全な論理情報のセットを定義できます。各セグメントは 0 からアドレス指定されます (セグメント名はプログラマがプログラムできます)。メモリはセグメント単位で割り当てられます。各セグメントはメモリ内の連続した領域を占有しますが、隣接しない場合もあります (個別割り当て)。

17. セグメントの定義

セグメントは論理情報の集合です。各セグメントには独自の名前と 0 から始まる長さのアドレス指定があり、セグメント名の代わりにセグメント番号が使用されることがよくあります。

18. セグメントのサイズを分割する方法

セグメントのサイズは、対応する論理情報グループの長さによって決定されるため、各セグメントの長さは異なる場合があります。

19. セグメントテーブルの構造

各プロセスには、論理空間とメモリ空間をマッピングするセグメント テーブルがあり、各セグメント テーブル エントリはプロセスのセグメントに対応し、セグメントの長さとメモリ内のセグメントの開始位置を記録します。

20. セグメント化されたシステムにおける論理アドレス構造

21. ページングとセグメント化されたメモリ管理の違い

1) ページは情報の物理単位であり、ページングは​​ユーザーのニーズではなくシステム管理のニーズによるもので、個別の割り当てを実現し、メモリ使用率を向上させるためのものです。セグメントは情報の論理単位であり、セグメンテーションの主な目的は、ユーザーのニーズをより適切に満たし、ユーザーに見えるようにすることです。

2) ページのサイズはシステムによって固定されていますが、セグメントの長さは固定ではなく、ユーザーが作成したプログラムによって決まります。

3) ページ化されたジョブのアドレス空間は 1 次元、つまり単一の線形アドレス空間ですが、セグメント化されたジョブのアドレス空間は 2 次元であるため、アドレスを識別するには、指定されたセグメント アドレスに加えてセグメント番号を指定する必要があります。

4) プロセス内にはセグメント テーブルは 1 つだけですが、ページ テーブルは複数存在する場合があります。

5) セグメンテーションは、ページングよりも情報の共有と保護が容易です。

6) シングルレベルのページ テーブルと論理アドレスへのセグメント アクセスの両方で、2 つのメモリ アクセスが必要です。

23. セグメント中断時の対処方法

リクエストセグメンテーションシステムでは、プロセスがアクセスするセグメントがメモリに転送されていないときは常に、セグメント割り込みメカニズムがセグメント割り込み信号を生成し、オペレーティングシステムがセグメント割り込みハンドラを通じて必要なセグメントをメモリに転送します。ページフォールト割り込みメカニズムと同様に、フォールトセグメント割り込みメカニズムは命令の実行中に割り込みを生成して処理します。また、命令の実行中に複数のフォールトセグメント割り込みが生成される場合があります。ページとは異なり、セグメントの長さは無限であるため、セグメント欠落割り込みの処理は、ページ欠落割り込みの処理よりもはるかに複雑です。

24. セグメントページストレージ管理とは

セグメント ページ ストレージ管理は、ページ管理方法とセグメント管理方法を組み合わせたもので、プログラムごとにセグメント化され、セグメント内でページングされます。つまり、ユーザープログラムは論理的にいくつかのセグメントに分割され、各セグメントはいくつかのページに分割され、メモリは対応するサイズのブロックに分割されます。

25. セグメントページストレージ管理におけるセグメントテーブルとページテーブルの構造

プロセス内の各セグメントはセグメントテーブルエントリに対応し、各セグメントテーブルエントリはセグメント番号、ページテーブル長、ページテーブル格納ブロック番号(ページテーブル開始アドレス)で構成されます。各セグメント テーブル エントリは同じ長さであり、セグメント番号が暗黙的に示されます。

各ページはページ テーブル エントリに対応し、各ページ テーブル エントリはページ番号とページが格納されているメモリ ブロック番号で構成されます。各ページ テーブル エントリは同じ長さであり、ページ番号が暗黙的に示されます。

 26. ページ置換アルゴリズム (アルゴリズムの英語の略語を習得する必要があります)

① 最適置換 OPT: ページフォールト率を最低にするために、削除しても使用されないページ、または最も長期間アクセスされないページを選択します。しかし、OS は次にどのページにアクセスするかを予測できないため、実際には OPT は実現できません。

②先入れ先出しFIFO:最も早くメモリに入ったページ(または最も長くメモリに残ったページ)を削除し、メモリにロードされた順序に従ってページをソートし、置換時に先頭ページを選択します。

③ 最も長期間使用されていない LRU: 直近に使用されていないページが削除されるたびに、ページ テーブル項目のアクセス フィールドを使用して、そのページが最後に訪問してからの経過時間を記録でき、既存のページの中で最大の値を持つページが削除対象として選択されます。

④時計交換CLOCK27。 

 27. ジッターとは

スワップアウトされたばかりのページの場合は、すぐにメモリにスワップされ、スワップインされたばかりのページは、すぐにメモリからスワップアウトされます。この頻繁なページ スワップ動作はジッターと呼ばれます。

ジッターの主な理由は、プロセスに割り当てられている物理ブロックが少なすぎることと、プロセスによって頻繁にアクセスされるページ数が使用可能な物理ブロックの数よりも多いため、プロセスが実行時間よりもスワップに多くの時間を費やし、プロセスがジッター状態にあることです。

28. ページフォールト率の定義

ページフォールト数/プロセスアクセス数

29. セグメント化メモリシステムにおけるアドレス変換プロセス

論理アドレスに従ってセグメント番号とオフセットを取得し、セグメント番号 S をセグメント テーブルの長さ M と比較し、S>=M が範囲外の場合、そうでない場合は続行します。

セグメント テーブルをクエリします。S = セグメント テーブルの開始アドレス F + セグメント番号 S * セグメント テーブル M の長さに対応するセグメント テーブル エントリのアドレスをクエリして、セグメント長 C を取り出します。C <= オフセット W の場合、境界は中断され、そうでない場合は続行します。

物理アドレス E=b+W を取得し、メモリにアクセスします。

第 6 章 プロセッサのスケジューリング

1. 高度なスケジューリング、中位のスケジューリング、および低レベルのスケジューリングのタスク 

 2. プロセスのスケジューリングを引き起こす要因は何ですか?

(1) 実行中のプロセスが正常終了または異常終了した場合。

(2) 実行中のプロセスが何らかの理由でブロックされている。

(3) タイムスライスを導入したシステムでは、タイムスライスが不足します。

(4) プリエンプティブスケジューリング方式では、レディキュー内のプロセスの優先度が現在実行中のプロセスよりも高くなる、またはより優先度の高いプロセスがレディキューに投入されます。

3. P159の全プロセススケジューリングアルゴリズム

(1) 先着順 FCFS: 最初にキューに入ったプロセスがレディキューから選択されるたびに、プロセッサが割り当てられて動作し、完了するか何らかの理由でブロックされるまでプロセッサは解放されません。

FCFS は単純なアルゴリズムですが効率が低い、譲れないアルゴリズムです。長いジョブには有利ですが、短いジョブには不利です (SPF と高い応答率と比較して)。長いジョブが最初にシステムに到着すると、後ろにある多くの短いジョブが長時間待機することになるため、タイムシェアリング システムやリアルタイム システムの主要なスケジューリング戦略としては使用できません。CPU ビジーなジョブには適していますが、I/O ビジーなジョブには適していません。

(2) ショートジョブファースト SJF: 実行可能キューから推定実行時間が最も短い 1 つまたは複数のプロセスを選択し、プロセッサを割り当ててすぐに実行し、完了するかイベントによってブロックされるまでプロセッサを解放します。

① このアルゴリズムは長時間ジョブに不利であり、SJF スケジューリング アルゴリズムにおける長時間ジョブの所要時間は増加します。長いジョブがシステムのバックアップ キューに入ると、スケジューラは常に短いジョブのスケジュールを優先するため、長いジョブは長期間スケジュールされず、「スタベーション」が発生する可能性があります。

② 仕事の緊急性は考慮されていないため、緊急の仕事が時間内に処理されるという保証はありません。

③ ジョブの長さは、ユーザーが提供した推定実行時間に従ってのみ決定され、ユーザーが意図的または意図せずにジョブの推定実行時間を短縮する可能性があり、アルゴリズムは真に短いジョブ優先スケジューリングを実現できない可能性があります。

④ SJF スケジューリングアルゴリズムの平均待ち時間と平均所要時間は最小です。

(3) 高応答率優先 HRRN:まず、バックアップ ジョブ キュー内の各ジョブの応答率を計算し、最も応答率の高いジョブを選択して実行します。

応答率 = (待ち時間 + 要求されたサービス時間) / 要求されたサービス時間

① ジョブの待ち時間が同じ場合、サービス時間が短いほど応答率が高くなり、短いジョブの方が有利になります。

②同じサービス時間を要求する場合、ジョブの応答率は待ち時間で決まり、待ち時間が長いほど応答率が高くなるため、早い者勝ちのアルゴリズムとなります。

③ 長いジョブの場合、待ち時間が長ければ長いほどジョブの応答率が高くなりますが、待ち時間が長い場合には応答率を高くすることができ、プロセッサも確保できます。したがって、飢餓状態を克服し、長期的な就労を考慮する。

(4) 優先スケジューリング: レディキューから最も高い優先度を持つプロセスを選択し、新しい高優先プロセスが実行中のプロセスをプリエンプトできるかどうかに応じて、非プリエンプティブ優先スケジューリングアルゴリズムとプリエンプティブ優先スケジューリングアルゴリズムに分けることができます。

(5) タイム スライスのローテーション: プロセス スケジューラは、到着時間の順序に従って、つまり先着順の原則に従って、常に準備完了キュー内の最初のプロセスを選択して実行しますが、実行されるタイム スライスは 1 つだけです。タイム スライスを使用した後は、プロセスが実行を完了していない場合でも、プロセッサを次の準備完了プロセスに解放 (剥奪) する必要があり、剥奪されたプロセスは準備完了キューの最後に戻って再度キューに入れて、再度実行されるのを待ちます。

① タイムスライスが十分に大きく、すべてのプロセスを 1 つのタイムスライスで実行できる場合は、FCFS アルゴリズムに縮退します。

②タイムスライスが小さい場合、プロセッサが頻繁に切り替わり、オーバーヘッドが増加し、プロセスの使用時間が減少します。

(6) マルチレベル フィードバック キュー FB: マルチレベル フィードバック キュー スケジューリング アルゴリズムは、タイム スライス ラウンドロビン スケジューリング アルゴリズムと優先度スケジューリング アルゴリズムを統合および発展させたもので、プロセスの優先順位とタイム スライス サイズを動的に調整することで、さまざまなシステム目標を考慮することができます。

4. プリエンプティブ スケジューリング アルゴリズムとは何ですか? ノンプリエンプティブスケジューリングとは何ですか?

①プリエンプション:タイムスライスローテーション、マルチレベルフィードバックキュー、ショートジョブ優先度、優先スケジューリング

②ノンプリエンプティブ:短いジョブ優先、高応答率優先、優先スケジューリング

5. 高応答率優先スケジューリングアルゴリズムのメリット

① ジョブの待ち時間が同じ場合、サービス時間が短いほど応答率が高くなり、短いジョブの方が有利になります。

③ 長いジョブの場合、待ち時間が長ければ長いほどジョブの応答率が高くなりますが、待ち時間が長い場合には応答率を高くすることができ、プロセッサも確保できます。したがって、飢餓状態を克服し、長期的な就労を考慮する。

6. 所要時間、加重所要時間

①ターンアラウンドタイム:ジョブ投入からジョブ完了までにかかった時間。ジョブの待機時間、プロセッサ上で実行するための準備完了キューのキューイング時間、および入出力操作の実行に費やされた時間の合計が含まれます。

所要時間 T = ジョブ完了時間 - ジョブ送信時間

③ 加重ターンアラウンドタイム:加重ターンアラウンドタイムとは、ジョブの実際の実行時間に対するジョブのターンアラウンドタイムの​​比率を指します。

ジョブの加重所要時間 w=ジョブの所要時間 T/実際の実行時間 Ts

第 7 章 I/O デバイスの管理

1. デバイスの独立性

ユーザプログラミングで使用する機器は実際に使用する機器とは関係なく、ユーザプログラムが入出力を行う際には特定の入出力デバイスを意識する必要はなく、一般的な方法で入出力を行うことができます。

2. デバイスの論理名、デバイスの物理名

3. メッセージバッファキュー通信機構が持つべき機能

(1) メッセージを作成します。送信プロセスは、自身のワークエリアに送信領域 a を設定し、メッセージ本文と関連する制御情報を埋めます。

(2) メッセージを送信します。送信領域aのメッセージをメッセージバッファにコピーし、対象プロセスのメッセージキューに挿入します。

(3) メッセージを受信します。ターゲット プロセスは、自身のメッセージ キューから最初のメッセージ バッファを見つけて、その中のメッセージ コンテンツをプロセスの受信領域 b にコピーします。

(4) 相互排他と同期。相互排除とは、一定期間内に 1 つのプロセスだけがメッセージ キュー上で動作することを保証することを意味し、同期とは、受信プロセスと送信プロセスの間で調整を行うことを意味します。この目的のために、相互排他と同期のためのセマフォを受信プロセスの PCB に設定する必要があります。

4. I/O チャネルの定義と分類

(1) I/O チャネルは、入出力を専門に担うプロセッサであり、一連のチャネル命令を認識して実行することができ、DMA 方式に基づいて、CPU の介入をさらに削減し、データ ブロックの読み書きとそれに関連する制御管理に対するデータ ブロックの読み書きの介入を削減し、CPU の使用率をさらに向上させます。

(2) ①バイトマルチチャネル:プリンタや端末などの低速から中速のI/Oデバイスの接続に適しています。このチャネルはバイト単位でインターリーブされて動作します。バイトが 1 つのデバイスに送信されると、すぐに転送されて別のデバイスにバイトが送信されます。

②アレイ選択チャネル:ディスクやテープなどの高速デバイスの接続に適しています。この種のチャネルは「グループ モード」で動作し、高い伝送速度で一度にデータのバッチを送信しますが、一度にサービスできるのは 1 つのデバイスのみです。I/O リクエストが処理されるたびに、別のデバイスが選択されて処理され、チャネル使用率が非常に低いことがわかります。

③アレイマルチチャネル: このチャネルは、バイトマルチチャネルのタイムシェアリング動作と、選択されたチャネルの高い伝送速度の特性を組み合わせており、その本質は、チャネルプログラムにマルチチャネルプログラミング技術を使用し、チャネルに接続されたデバイスが並行して動作できるようにすることです。

5. 設備管理におけるバッファ技術導入の理由

① CPUとI/Oデバイスの速度不一致の矛盾を緩和

②CPUの割り込み頻度を下げ、割り込み応答の制限を緩和する

③ CPUとI/Oデバイス間の並列性の向上

6. 緩衝技術の分類

①シングルバッファリング: したがって、シングルバッファリング戦略が採用され、1つのデータの処理に費やされる平均時間はMax(C, T)+Mとなります。

②ダブルバッファリング: ダブルバッファリング戦略を使用し、データの処理にかかる平均時間は Max(M+C, T)

③循環バッファ

④バッファプール

7. ディスクスケジューリングアルゴリズム

ディスク アクセスのシーケンスが 98、183、37、122、14、124、65、67 であると仮定します。読み取り/書き込みヘッド開始位置: 53

①先入れ先出し FCFS: 処理は非常に簡単ですが、平均シーク長が非常に長くなるため、アクセス要求がそれほど多くない状況に適しています。

②最短時間優先:磁気ヘッドの初期位置が分かっている場合、磁気ヘッドの位置に最も近い処理を先に処理し、処理が完了した後、全ての処理が終了するまで現在のトラックに最も近い処理を処理する。このアルゴリズムの利点は、平均シーク長が大幅に短縮されることですが、欠点は、最初の先頭から遠く離れたサービスを長時間処理できず、「飢餓」現象が発生することです。

③スキャン戦略: ヘッドは一方向にのみスキャンし、ヘッドがこの方向のディスクの最後のトラック、またはこの方向の最後のリクエストが配置されているトラックに到達するまで、スキャン中に未完了のリクエストをすべて完了します。

④円形走査方式:ディスク走査アルゴリズムに基づいて磁気ヘッドの走査経路を変更します。最内層まで走査した後、最外層から内側に向​​かって走査を続けます。つまり、走査方向は同じです。

オペレーティング システムの期末レビュー申請に関する質問_SUNLYUER のブログ-CSDN ブログ

おすすめ

転載: blog.csdn.net/weixin_46516647/article/details/125321624