0

私はオペレーティング システムを勉強していますが、ほぼ 1 週間頭の中でこの疑問を抱いていましたが、本 (オペレーティング システムの概念 - Silberschatz) で答えを見つけることができませんでした。問題は、多くのアクションの実行を要求するプロセスをオペレーティング システムがどのように処理するかです。例: コンピュータでビデオを再生するには、ビデオを処理する必要があり、オーディオを処理する必要があり、ビデオをモニターに送信する必要があり (I/O 操作)、オーディオをオーディオ ボックスに送信する必要があります (I/O 操作)。操作)など。

この本によると、CPU が 1 つのコンピュータでは、プロセッサは一度に 1 つのプロセスしか実行できないため、ビデオを処理するために、オペレーティング システムは前述の操作ごとに 1 つのスレッドを持つことになります。それらを実行しますか?(Linux または Windows) 一度に 1 つずつ実行し、それらを交換しますか (ビデオを処理し、モニター モニターに送信し、オーディオを処理し、オーディオからオーディオ ボックスに送信するなど)、認識できないほど高速に実行しますか?それとも同時に実行しますか(オーディオとビデオを同時に処理します)?この質問に対する私の主な疑問は、「1 つの CPU コンピューターで 2 つのスレッドを同時に実行できますか?」と言い換えることができると思います。

概念の理解における修正と明確化は大歓迎です。

4

1 に答える 1

1

一度に 1 つずつ実行し、それらを交換しますか (ビデオを処理し、モニター モニターに送信し、オーディオを処理し、オーディオからオーディオ ボックスに送信するなど)、認識できないほど高速に実行しますか、それともそれらを実行しますか?同時に (オーディオとビデオを同時に処理します)?

認識できないほど速く切り替えられます。最新のオペレーティング システムでは、これは主に次の 3 つの方法で行われます。

  • プリエンプション。OS カーネルのスケジューラによってタスクが単純に中断され、別のプロセスが実行されます。これは通常、タイム スライスと呼ばれる一定の時間が経過したときに行われます。
  • プロセスが、ネットワーク、ディスク、または他のほとんどのソースからの IO を待機し始めると、多くのオペレーティング システムはすぐにプロセスを中断します。そのプロセスは、IO の結果が利用可能になったときにのみ実行を再開します。
  • プロセスが OS に対して待機する意思があることを示すときの協調的マルチタスキング。

詳細は OS ごとに異なり、デスクトップ OS、サーバー OS、組み込みおよびリアルタイム OS の間でも大きく異なります。

1 つの CPU コンピューターで 2 つのスレッドを同時に実行できますか?

並行性と並列性に関するこの SO の質問を確認してください。

于 2013-05-26T14:12:47.697 に答える