オペレーティングシステムの動作

切り替え時にプロセスを追跡するために必要なすべての情報は、プロセス制御ブ 通常、プロセス制御ブロックには次のものが含まれます:

  • プロセスを識別するID番号
  • プログラム内の場所と処理が最後に発生したデータへのポインタ
  • レジスタの内容
  • 様々なフラグとスイッチの状態
  • プロセスに必要なメモリの上限と下限へのポインタ
  • プロセスによって開かれたファイルのリスト
  • プロセスの優先度
  • すべてのI/Oデバイスのステータスプロセスによって必要とされる

各プロセスにはステータスが関連付けられています。 多くのプロセスは、何らかの入力を得るまでCPU時間を消費しません。 たとえば、プロセスがユーザーからのキー入力を待機している場合があります。 キーストロークを待っている間は、CPU時間を使用しません。 それが待っている間、それは”中断”されます。 キーストロークが到着すると、OSはその状態を変更します。 プロセスのステータスがpendingからactive、たとえば、またはsuspendedからrunningに変更された場合、プロセス制御ブロック内の情報は、他のプログラムのデータと同様に使用され、オペレーティングシステムタスク切り替え部分の実行を指示する必要があります。

広告

このプロセスのスワップは、ユーザーの直接の干渉なしに行われ、各プロセスは適切な時間でタスクを達成するのに十分なCPUサイク ユーザーが同時に機能するプロセスが多すぎると、問題が発生する可能性があります。 オペレーティングシステム自体は、アプリケーションプロセスのすべてのレジスタ、キュー、スタックの保存と交換を実行するために、いくつかのCPUサイク 十分なプロセスが開始され、オペレーティングシステムが慎重に設計されていない場合、システムはプロセスを実行するのではなく、プロセス間の交換に使用可能なCPUサイクルの大部分を使用し始めることができます。 これが起こると、それはスラッシングと呼ばれ、通常、プロセスを停止してシステムに秩序を戻すために何らかの直接的なユーザー介入が必要です。このコンテンツは、このデバイスでは互換性がありません。

このコンテンツは、このデバイスでは互換性がありません。このコンテンツは、このデバイスでは互換性がありません。

オペレーティングシステム設計者がスラッシングの可能性を減らす一つの方法は、さまざまなタスクを実行するための新しいプロセスの必 いくつかのオペレーティングシステムでは、通常のプロセスのCPU集約的な作業をすべて処理できるスレッドと呼ばれる”process-lite”を使用できますが、一般的には様々なタイプのI/Oを処理せず、通常のプロセスの広範なプロセス制御ブロックを必要とする構造を確立しません。 プロセスは、多くのスレッドまたは他のプロセスを開始することができますが、スレッドは、プロセスを開始することはできません。

これまでのところ、私たちが議論したすべてのスケジューリングは、単一のCPUに関係しています。 複数のCpuを搭載したシステムでは、オペレーティングシステムはCpu間でワークロードを分割し、必要なプロセスの要求と異なるCpu上の利用可能なサイク 非対称オペレーティングシステムは、独自のニーズに合わせて一つのCPUを使用し、残りのCpu間でアプリケーシ 対称的なオペレーティングシステムは、オペレーティングシステム自体がすべて実行されている場合でも、需要とCPUの可用性のバランスを

コメントを残す

メールアドレスが公開されることはありません。