ホームページ  >  記事  >  システムチュートリアル  >  オペレーティングシステムに関するよくある質問~

オペレーティングシステムに関するよくある質問~

WBOY
WBOY転載
2024-02-18 08:15:33807ブラウズ

オペレーティングシステムに関するよくある質問~

1: プロセスが 3 つの基本状態の間で遷移する一般的な理由を説明します

(1) 準備完了状態のプロセスに対して、プロセス スケジューラがプロセッサを割り当てると、プロセスは準備完了状態から実行状態に変わります。

(2) 実行中のプロセスに割り当てられたタイムスライスが使い果たされたために、実行中のプロセスがプロセッサを奪われて実行を一時停止すると、その状態は実行状態から準備完了状態に変わります。

(3) 現在のプロセスの実行をブロックし、実行を継続できなくなる何かが発生した場合、プロセスの状態は実行からブロックに変わります。

2: なぜ OS にスレッドを導入する必要があるのですか? スレッドを導入する利点は何ですか?

(1) プロセスがリソースの所有者であるため、作成、キャンセル、切り替え操作に多大な時間とスペースのオーバーヘッドが必要となり、同時実行度のさらなる向上には限界があります。プロセス切り替えのコストを削減するために、リソース割り当て単位とスケジューリング単位としてのプロセスの 2 つの属性は別々に扱われます。つまり、プロセスは依然としてリソース割り当ての基本単位として使用されますが、使用されません。スケジューリングの基本単位として (まれにスケジュールまたはスイッチングされます)、スケジューリングは実行とスイッチングの責任を「スレッド」に与えます。

(2) OS にスレッドを導入し、スケジューリングとディスパッチの基本単位としてスレッドを使用すると、マルチプロセッサ システムのパフォーマンスが効果的に向上し、プログラムが同時に実行されるときに発生する時間とスペースのオーバーヘッドが削減され、OS のパフォーマンスが向上します。同時実行性の向上

3: (1) デッドロックとは何ですか? (2) デッドロックの原因は何ですか?

(1) グループ内の各プロセスが、グループ内の他のプロセスのみが発生させることができるイベントを待っている場合、プロセスのグループはデッドロックになります。

(2) ①プリエンプティブルでないリソースの競合によりデッドロックが発生します。 (非プリエンプティブル リソースとは、システムがプロセスにリソースを割り当てると、そのリソースを強制的に取り戻すことはできず、プロセスが使い果たされた後でのみ解放できることを意味します。)

② 消耗品リソースの奪い合いによりデッドロックが発生します。 (消費可能なリソースは、プロセスの実行中にプロセスによって動的に作成および消費されます)

③ プロセスの進行順序が不適切でデッドロックが発生する (プロセス実行時、リソースの適用と解放の順序は正しいか?)

4: プログラムをロードするいくつかの方法

(1) 絶対ロード方式: ユーザープログラムのコンパイル後、絶対アドレスを持つターゲットコードが生成されます。これはシングルプログラミング環境にのみ適しています。

(2) 再配置可能なロード方法: ロード モジュールはメモリ内の任意の許可された場所にロードでき、マルチプログラミング環境に適しています。

(3) 動的実行時のロード方法: ロードモジュールをメモリにロードするとき、すべてのアドレスは依然として論理アドレスであり、論理アドレスはプログラムが実際に実行されるときにのみ物理アドレスに変換されます。

5: プログラムをリンクするいくつかの方法

(1) 静的リンク方法: プログラムを実行する前に、各ターゲット モジュールとその必要なライブラリ関数を完全なアセンブリ モジュールに接続します。このアセンブリ モジュールは、将来的には逆アセンブルされません。

(2) ロード時の動的リンク:ユーザソースプログラムをコンパイルして得られたターゲットモジュール群を、ロードとリンクを同時に行うリンク方式でメモリ上にロードします。

(3) 実行時動的リンク: 特定のターゲット モジュールにリンクし、プログラム実行中にターゲット モジュールが必要な場合にのみターゲット モジュールをリンクします。

6: (1) 仮想ストレージとは、 (2) 仮想ストレージの特徴は何ですか?
(1) リクエスト転送機能とリプレース機能を備え、論理的にメモリ容量を拡張できるメモリシステム。論理容量はメモリ容量と外部ストレージ容量の合計で決まり、動作速度はメモリに近く、コストも外部ストレージに近いです。

(2) ①複数回:ジョブ内のプログラムやデータを複数回に分けてメモリにロードして実行できます。

② (基本) 可換性: ジョブ内のプログラムとデータは、ジョブの実行中に入れ替えることができます。

③仮想性: メモリ容量を論理的に拡張します。

7: (1) ジッターとは何ですか? (2) ジッターの原因は何ですか?

(1) マルチプログラミングが高すぎる場合、メモリと外部の間でページが頻繁にスケジュールされるため、ページをフィッシングするのに必要な時間がプロセスの実際の実行時間より長くなります。 、システム効率が急激に低下し、さらにはシステムがクラッシュするジッターと呼ばれる現象を引き起こします。

(2) その理由は、システム内で同時に実行されているプロセスが多すぎるため、各プロセスに割り当てられている物理ブロックが少なすぎて、プロセスの通常の動作の基本要件を満たすことができないためです。ページが欠落した場合、システムは欠落したページをメモリに転送するように要求する必要があるため、システム内でページの送受信を待機するプロセスの数が増加し、ジッターが発生します。

8: (1) バッファとは何ですか? (2)バッファ管理を導入する主な理由は何ですか?

(1) バッファは記憶領域であり、特別なハードウェア レジスタまたはメモリで構成できます。

バッファ管理の主な機能は、これらのバッファを整理し、バッファを取得および解放する手段を提供することです。

(2) バッファ管理を導入する主な理由は次のとおりです。

① CPU と I/O デバイス間の速度の不一致を緩和します。

②CPU 割り込みの頻度を減らし、CPU 割り込みに対応する時間の制限を緩和します。

③データ粒子数の不一致の問題を解決します。

④CPUとI/Oデバイス間の並列性を向上させます。

以上がオペレーティングシステムに関するよくある質問~の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlinuxprobe.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。