この質問が少し間違っている場合は申し訳ありませんが、私には興味深いようで、私の研究からは良い答えが見つかりません. オペレーティング システムには、他のスレッドの管理などのタスクを実行するメイン システム スレッドがあることは知っていますが、ハイパースレッド化されていないシングル コア プロセッサでは、これはどのように機能するのでしょうか? 私の考えでは、アプリケーションが使用している別のスレッドに制御を渡すことはできません。これにより、システム スレッドがブロックされるからです。しかし、明らかにそれは可能です。システム スレッドが他のスレッドの作業を独自のスレッドに組み込むことを考えましたが、それは私には恐ろしい考えのように思えます。
2 に答える
4
「オペレーティング システムには、他のスレッドの管理などのタスクを実行するメイン システム スレッドがあることを知っています」 - いいえ、プリエンプティブなマルチスレッド OS ではありません。すべて有効なもの。
起動後、OS は「割り込み」時にのみスレッドによって開始されます。スレッドの状態を変更できるソフトウェア割り込み (システム コール) と、ドライバーを介したハードウェア割り込みがあります。これらの割り込みの間、OS は何もしません。割り込みなし: OS は何もしません。
これが把握するのが難しいことは理解しています。特に、ほとんど小便の少ない「スレッドの紹介」ページ/章ではそうですが、それがその方法です。
大量のものが山積みになっていることに注意してください。Web 上のスレッドなどは、不適切であるか、誤解を招くか、過度に単純化されているか、実際には間違っています。一般的な誤りのキーフレーズ: 「タイム スライス」、「量子」、「ラウンド ロビン」、「タイマー スケジュール」。
于 2013-07-03T23:55:07.753 に答える