- 締切済み
仮想的なプロセッサー
仮想プロセッサーとは一体何なのでしょうか?また1つの仮想プロセッサとはどういうのをいうのでしょうか??またまた複数の仮想プロセッサーもどういうのを言うのでしょうか?例えばどんなのが仮想プロセッサなのでしょうか?
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- Tasuke22
- ベストアンサー率33% (1799/5383)
横から失礼ですが、質問者様は、マルチタスクと、 マルチプロセッサ、あるいはマルチコアの概念が ごちゃごちゃになっているように思われます。 もう少し、使う言葉の意味を辞書レベルで下調べを してから質問された方がいいのではないでしょうか? 興味を持たれている事は応援したいのですが。
- zwi
- ベストアンサー率56% (730/1282)
#3の本を紹介したzwiです。 >質問したいのですが、昔使っていたのは、シングルタスクなので、Aが実行中のときはBは待機する。 シングルタスク(MS-DOS等)のOSであれば、AとBの同時実行は出来ません。AからBを子としてなら起動できますが当然Bが動いているときはAは停止します。 >そして今はマルチタスクなので、Aが実行中でもBにキューが溜まっていたら実行されるという認識でよろしいのでしょうか? マルチタスクOSの場合はタイムスライス時間で強制的にタスクは切り替わります。Aしかユーザータスクが走っていなくてもOS系のタスクは常に動いていますので常に切り替わっています。AとBが動いているならば、両方とも実行キューには入っていますので優先順位に従ってOSのスケジューラが実行するタスクを決めてAやBにコンテキストがスイッチされます。 >コンテキストスイッチは、昔も今も変わらず行われるとういことでよろしいのでしょうか?勉強不足ですみません。 昔と言う意味が不明確ですが、WindowsでしたらWindows3.1からプリエンプティブな仕組みで動いていたと思います。
お礼
大体この認識でよろしいのでしょうか?OSのタスクは常に動いているのですね。わかりました。回答ありがとうございました。
- Tasuke22
- ベストアンサー率33% (1799/5383)
ANo.1です。 どの仮想プロセッサにおける追加質問でしょうか? また、質問のレベルを整理してもらえませんか? 全てのコンピュータはストアードプログラミング 方式である前提ですよね? 正直、質問で意図しているところが見えません。
- zwi
- ベストアンサー率56% (730/1282)
ハードやOSに関して興味があるようですが、知識不足を感じますので基礎勉強をされたほうが良いと思います。 「CPUのきもち」 http://www.amazon.co.jp/CPU%E3%81%AE%E3%81%8D%E3%82%82%E3%81%A1%E2%80%95IA%E2%80%9032%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%E3%83%BC%E3%81%A8WindowsXP%E3%81%AE%E4%B8%8D%E6%80%9D%E8%AD%B0%E3%81%AA%E9%96%A2%E4%BF%82-%E5%94%AF%E9%87%8E-%E5%8F%B8/dp/4839917280 「Windowsはなぜ動くのか 」 http://www.amazon.co.jp/Windows%E3%81%AF%E3%81%AA%E3%81%9C%E5%8B%95%E3%81%8F%E3%81%AE%E3%81%8B-%E5%A4%A9%E9%87%8E-%E5%8F%B8/dp/4822281493/ref=pd_sim_b_2 「APIで学ぶWindows徹底理解」 http://software.nikkeibp.co.jp/software/backno/04apimook2.html 参考になさってください。
お礼
そうですね。このURLを参考に勉強したいと思います。回答ありがとうございました。
- Yune-Kichi
- ベストアンサー率74% (465/626)
たぶん,私が質問#4858079に対して答えた内容での質問だと思いますが……。 今読み返すと,仮想ではなく論理ですね。 プロセッサの個数と単に書くと物理的なプロセッサ数に読めてしまうので,仮想と書いてしまったのですが……。
お礼
質問したいのですが、昔使っていたのは、シングルタスクなので、Aが実行中のときはBは待機する。そして今はマルチタスクなので、Aが実行中でもBにキューが溜まっていたら実行されるという認識でよろしいのでしょうか?コンテキストスイッチは、昔も今も変わらず行われるとういことでよろしいのでしょうか?勉強不足ですみません。
- Tasuke22
- ベストアンサー率33% (1799/5383)
仮想プロセッサーだけでは幾つかのものがあります。 ・CPUのハイパースレッドにおけるプロセッサー 1つのCPUを2つの仮想プロセッサーにして動かす。 ・Virtual Machineにおけるプロセッサ定義 仮想PCには一般にプロセッサ定義をしませんが、 一般的な仮想マシンでは、開発中のマシンを仮想 プロセッサ定義し、マシンの開発と平行してOSの 開発をバーチャルマシン上で行い、開発期間を短く する方法があります。 ・しかし、ここではC/C++のカテゴリーなので、超並列 C言語NCX関連のことと思われます。 超並列処理においては、仮想プロセッサが無限個数 あると仮定してプログラムが作られます。 しかし、現実には有限個数のプロセッサしかないので、 仮想プロセッサを前提にした処理でも、実プロセッ サに割り当てられている仮想プロセッサはアクティブ、 まだ割り当てられていないものは非アクティブとなります。 ここで、プログラミングでプロセッサ数を意識すること 自体が異に感じるかもしれません。 しかし、超並列プログラミングは、プロセッサ数を意識 したプログラムでないと性能が出ないとしたものです。 その点、C言語NCXは物理プロセッサ数でなく、仮想プロ セッサ数でプログラミング出来る、画期的なアイデアだ と思います。
お礼
1つ質問なのですが、この仮想プロセッサはハードディスクの中にあって、実プロセッサに割り当てられるときは、ハードディスクからメモリーに渡す、そしてCPUに処理されるという認識でよろしいのでしょうか?
お礼
勉強不足でした。もう少し勉強して出直してきます。回答ありがとうございました。