• ベストアンサー

CPUから見た複数のウィンドウ表示とマルチディスプレーの違い

お世話になります。 つまらないことをお聞きしますが、1台のディスプレーに複数のウィンドウを表示することと、マルチディスプレーを表示させることとは、CPUから見ると同じことをやっているのでしょうか? グラフィックボード(チップ)がディスプレー振り分けを行っているか否かが違うだけと考えてよいでしょうか? ふと、気になったので質問させていただきました。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • vaidurya
  • ベストアンサー率45% (2714/5983)
回答No.1

コンピューターでのグラフィック画面の表示は フレームバッファーと呼ばれる仮想的な装置で説明されます。 (OSごとに、専用の用語もあるんですけど割愛します) 1980年代にはフレームバッファーは本当にそのもののハードウェアでしたが Windows3.0普及からアクセラレーションなどが一般化し ある意味仮想的な存在という状態になっています。 本質的には、表示用のVRAMのことを指す言葉です。 しかし、現在は表示用じゃないVRAMのほうが多くなりましたし マルチディスプレイでは、時として複数のグラフィックカード上の別々のRAMが 継ぎ合わされてOSから認識される一つのフレームバッファーとなることもあります。 この仮想的なフレームバッファーが、OSのWindow管理における画面サイズです。 その大きさと表示座標に対して、Windowを表示するようになっています。 この仕組みにおいては、フレームバッファー自体が いくつのディスプレイ装置になっているかは一切関知しません。 ですから、通常のGUI操作ではディスプレイの境目に影響されません。 ただし、デバイスドライバーによって複数のディスプレイへの 画面出力が管理されているのと同時に、その認識をOSから処理する仕組みもあります。 これらは、全画面表示で一つのディスプレイにフィットさせたり 特定のソフトを、特定のディスプレイに割り当てるといった機能で使われます。 こういった装置を仮想化して扱うことが、OSの本質ですから Macintoshでは1980年代にはマルチモニター機能がありましたし Windowsでも98から実現されました。 今でこそ、ひとつのGPUで複数のディスプレイへの出力が可能となりましたが かつては、マルチディスプレイとは、複数のグラフィックカードを使うことが普通でしたし… OSの機能となる前に、デバイスドライバーで実現された製品もありました。 OSが仮想化する機能を持つだけでなく デバイスドライバーが仮想化して、OSに対して複数のディスプレイを 一つの画面として見せかけることもあります。 WindowsやMacOSXの場合は知りませんが… UNIX系OSで使われるX Window Systemでは X自体に複数のディスプレイ装置を使う機能があるだけでなく Linux用のnvidiaドライバーにもTwinView機能があります。 外観上はどちらを選んでも同じような画面が実現できます。

paonta
質問者

お礼

詳細に説明していただきありがとうございます。 7割くらいは理解できたと思います。 おっしゃるとおりOSの介在が必要ですね。 ...と思ったら最後の段落でX Windowではちょっと様子が違うらしい???(^^; 一般ピープルの私はあまり深入りせずに利用することだけを考えて行きたいと思います。(笑) ご回答ありがとうございました。

その他の回答 (2)

回答No.3

>複数のウィンドウ表示 とは何をさしているのでしょう。エクスプローラーや何かアプリを起動するとウインドウが起動しますが、それを指しているのでしょうか?  それとも仮想ディスクトップや仮想OSを指しているのでしょうかね? とりあえずマルチディスプレーですが、どこに何を表示するかはCPUが決めているわけでなくプログラムが決めています。CPUはただ計算結果を返すだけです。このどこに何を表示するかを、どこかのメモリーに入れておく必要がありますよね。じゃないと画面があっという間に崩れてしまうから。 昔のコンピューターだと、画面を何枚切れるか? と言う表現をよくしていました(キーボードに画面切り替えボタンがあった)。オフコンと呼ばれるものでメインフレームとか汎用コンピューターとも呼ばれていました。システム(OS)が同時にいくつも動作している状態のものと、ディスクトップが何画面もある状態のものがありました、後述の物はUNIXワークステーションが出てきて一般的になりました。 この違いは、OSがいくつ起動されているかです。ディスクトップが何画面もある状態が今のマルチディスプレイです。UNIX OSでは標準で搭載されていて、20年位前から存在していました。 前述のいくつものOSが起動している状態が、今の仮想OSです。マルチディスプレイを使えば、メインフレーム(オフコン)と同じ状態になりますね。 これらは、特にCPUとかグラフィックとかがやっているわけでなく、プログラム(OS)側で仮想空間を作って、それを記憶させているわけです。CPUはそれを計算して特殊メモリーに格納するだけです。 今のグラボはジオメトリー式エンジンがほとんどで、表示計算の最初から最後までグラボで行い、CPUでは準備だけです。かつては、CPUが途中まで計算して、それらをグラボに渡していたので、その間のバスの速度がとても大事でしたね(それでPCIとは別のAGPができた)。 >グラフィックボード(チップ)がディスプレー振り分けを 結果を見るとそうですが、前述の通り、グラボは単に計算してメモリーに格納するだけで、かつてのCPUのやっていた事を変わりに行っているだけです。その分CPUは負担がかるくなり、違う事ができるでしょ。 なので、アプリのウインドウも、ディスクトップウインドウも、仮想OSも、プログラムが作り出した仮想空間なので、 >CPUから見ると同じことをやっているのでしょうか? の回答は、その通りです。特殊メモリ(レジスタとか)も、結局はプログラムが支持して格納させているわけなので、CPUが勝手に画面を構成しているわけではありません。 それで、プログラム(OS)を変えても同じコンピューターでも動作しますね。OSが対応していればですが、OSの違いによって同じコンピューターでもウインドウが違うし、ディスクトップがいくつもてるかも違いますね。 これをノイマン型コンピューターといいます。コンピューターの歴史の基本ですね。プログラムの方で、このメモリー空間に、これを代入してと言う具合に指定するわけです。それを画面に表示しないという命令をCPUになげると、それぞれメモリーに格納された物が表示されるわけです。 まあ、メモリーの使用容量と命令先がちがってくると思えばいいです。

paonta
質問者

お礼

「複数のウィンドウ表示」とは、エクセルだったりIEだったり2つ目のIEだったり、、をイメージしていました。 決して仮想OSなどと高度なことを想定して書いたのではありません。(^^; >昔のコンピューターだと、画面を何枚切れるか? 8bitマシン(FM-7とかPC-8001)のころを思い出しました。 ゲームなどで裏画面に画像を書いておき切り替えるという技があったような覚えがあります。 原理は違うものかもしれませんが。 何気に質問した内容が、奥深く正直なところとまどっております。(^^; 今後はいかに利用するかのほうに専念して考えていくことにします。(笑) ご回答ありがとうございました。

noname#119957
noname#119957
回答No.2

マルチデスクトップで検索すればいろいろでてきます。

参考URL:
http://homepage3.nifty.com/amachi/md/guide/desktop.html
paonta
質問者

お礼

私が今したいのはマルチデスクトップです。 2~3日前に検索したのですが、このサイトはひっかかりませんでした。 有用なサイトをご紹介いただき興味深く読ませてもらいました。 ご回答ありがとうございました。

関連するQ&A