無限、∞は夢幻の彼方・・・
よって、リーマン級数で展開して、現実的な計算を行う - チューリング・マシン
チューリング・マシンは仮想機械である・・・
第二の月、空転金融原子炉の炉心でもある・・・
鳩山さんは数理工学専攻、バーチャル、よって、浮世離れする => ゲーム屋さん
志位さんは物理工学専攻、リアル、よって、現実的である => プラグマティスト
そのかけ橋が計測工学、リアルワールド(物理世界) をコンピュータでシミュレート(仮想世界)する
東大応用物理系学科は?
数理工学専攻、計測工学専攻、物理工学専攻のみっつに分派する・ ・・
だが、応用物理学の基礎を学ぶので、 これらみっつの専攻の基礎的な素養は身につく・・・
シミュレーション技術は、プランの策定、および、結果の予想、 つまり、成果の予想にとって、重要な技術である・・・
---Wiki
数学におけるリーマンゼータ関数(-かんすう、Riemann's zeta function)とは、

で表される関数のことをいう。素数分布の研究をはじめとした解析的数論における重要な研究対象であり、数論や力学系の研究を始め数学や物理学の様々な分野で用いられているゼータ関数とよばれる一連の関数のうち、最も歴史的に古いものである。リーマンのゼータ関数ともよばれる。
ガンマ関数を用いれば、リーマンゼータ関数を

とも定義できる。
すでにオイラーがこの関数を考察しておもに特殊値に関する重要な発見をしていたが、のちにより重要な貢献をしたリーマンがもちいたギリシャ文字のζによる表記にちなみリーマンゼータ関数と呼ぶ。上記級数は s が 1 より大きい実部をもつ複素数のときのみ収束するが、解析接続によって1を除く複素数平面の全域で定義された有理型関数となる。s = 1のとき上の表示は調和級数となり、無限に発散する。
ゼータ関数に整数を代入したものをゼータ定数またはゼータ関数の特殊値と言う。任意の正の偶数2nについて

と表せる。ここで、B2nはベルヌーイ数である。また、n ≥ 1の時、

が成り立つ。s が負の偶数であれば ζ(s) = 0 であり(算出はフーリエ級数参照)、これらをリーマン・ゼータ関数の自明な零点とよぶ。これらの表示はオイラーによる。
具体的には、
が成り立つ。 ここで、
ζ(2n) = ηnπ2n
とおくと、


が成り立つ。この漸化式はベルヌーイ数の漸化式から導かれる。
s が正の奇数のときの ζ(s) を表す簡潔な表現は得られていない。それでもラマヌジャンなどは次のような表示式を得ている。

小さい正の奇数については、
などが数値的に成り立っている。
これらに関して、




という級数が知られている。アペリーの定理によるとζ(3)は無理数である(1978年,ロジェ・アペリ)。
オイラー積 [編集]


が絶対収束すること(特に有限和のように分配法則が成り立つこと)に注意して、十分に大きな素数 p' を固定し、それ以下の素数 p にを亘る有限積をつくり、そのp' → ∞ とした極限を考えることで示すことが出来る。この部分有限積の展開について、自然数 n の素因数分解に現れる最大の素因数が p' であれば、そこまでの有限積の中に n が含まれるため、上のようなゼータ関数のオイラー積表示が成り立っている。
ゼータ関数の表示と関数等式 [編集]
ゼータ関数は次のような表示ももつ:

ここで ρ に関する積はリーマン・ゼータ関数の複素零点全体をわたるものとする。この式から、

は整関数であることがわかる。実際

ここで γ はオイラーの定数、γi はスティルチェスの定数と呼ばれているものである。 オイラーは1749年に

という式を推測している。
またゼータ関数は、リーマンの1859年の論文『与えられた数より小さい素数の個数について』のなかで


なので
である。したがって-2n はゼータ関数の零点である。
次のように修正されたゼータ関数(これは実質的にリーマンによって導入され、完備化されたゼータ関数と呼ばれる)

は s と 1 - s に関する以下のような対称的な関数等式をもつ:
ξ(s) = ξ(1 − s).
ゼータ関数と数論的関数 [編集]
ゼータ関数を適当に組み合わせることにより、様々な数論的関数を係数とするディリクレ級数の母関数を得ることができる。

自然数 n の(正の)約数の個数を d(n), すべての約数の和を σ(n) で表すとき、


が成り立ち、また、n と互いに素な n 以下の自然数の個数を オイラーのφ関数 φ(n)で表すとき、

なども成り立つ。
ゼータ関数と素数の個数関数 [編集]
以下に素数分布、すなわち素数の個数関数 π(x) とゼータ関数との関係をのべる。
まずゼータ関数のオイラー積表示の両辺において対数をとり、テイラー展開で和の中の対数を展開する:

ここで各 n ≥ 1 について

と変形して、先の式に代入すると

通常

と置いて、最終的に上式は次のように書かれる。

この公式に、メリン変換などと呼ばれる積分の反転公式を使うと、Π(x) を表示する公式を求めることができる。この公式は、リーマンの素数公式、あるいは明示公式(explicit formula)などと呼ばれている。なおメビウスの反転公式によって π(x) は

とかけることを注意しておこう。
---Wiki
チューリングマシン (英: Turing Machine) は計算模型のひとつで計算機を数学的に議論するための、単純化・理想化された仮想機械である。
仮想機械は、コンピュータの仮想化技術のひとつであり、1つのコンピュータ上で複数のコンピュータ(OSなど)が稼動したり、場合によっては別のアーキテクチャのコンピュータを模倣する(エミュレータ)技術である。
仮想機械の実装方法は、以下のいずれか、あるいは組み合わせなどがある。
- ハードウェア(ビルディングブロック)の機能による物理分割 (IBMのPPAR、サン・マイクロシステムズのDSD、ヒューレット・パッカードのnParsなど。ブレードサーバを含む場合もある。)
- ハードウェア(マイクロコード)の機能による論理分割(IBMのLPAR、サン・マイクロシステムズのLDOM、ヒューレット・パッカードのvParsなど)
- 専用の仮想化OSの機能によるソフトウェア分割(z/VM、VMware、Xen、Oracle VM、Hyper-Vなど。内部的にハードウェアの機能を活用している場合も多い。準仮想化とも呼ばれる)
- OSの機能による複数OS環境(AIX 6 ワークロードパーティション、Solaris10 Solarisコンテナなど。なおHyper-VはWindows Server 2008の一部として提供されるが、単体提供もされ、技術的・構造的には専用の仮想化OSである。)
- ミドルウェアの機能による負荷管理(z/OSワークロードマネージャ、AIXワークロードマネージャ、Solarisリソースマネージャ、HP-UXワークロードマネージャなど)
- 言語環境などの機能 (Java仮想マシン、CLI、IKVM.NETなど。ハードウェア化される場合もある)
仮想機械を制御するプログラム等はハイパーバイザとも呼ばれる。
仮想機械は通常は、ユーザーやプログラムから「別のコンピュータ」に見えるもの(複数のOSまたはOS環境を実現するもの)を指すが、コンピュータの初期には、仮想記憶やマルチタスク、マルチユーザー、タイムシェアリングなど、現在では一般的なOSの機能となった技術を含める場合がある。仮想機械の技術はメインフレームで生まれ発展したが、現在は各種サーバでも一般的な技術となりつつある。
利点と難点 [編集]
実現方式にもよるが一般的には、仮想機械の利点・難点には以下が挙げられる。
- 利点
- 難点
- 性能が犠牲となる(仮想化のオーバーヘッドを見込んだハードウェア性能が必要)
- 構成・運用が複雑になる(一定のスキルが必要、特に障害時の問題判別時)
- 稼動させるプログラムや周辺機器の、サポートやライセンスに制限がある場合が多い
歴史 [編集]
- 1958年 IBM 709(マイクロコードによる、商用初の別アーキテクチャのエミュレータ)
- 1961年 バロース B5000(商用初の仮想記憶装置)
- 1964年 IBM System/360
- コンピュータ・アーキテクチャの確立(マイクロコードによる上位互換の確立)
- CP-67(商用初の仮想化OS)
- 1970年 IBM System/370(商用初の複数アドレス空間)
- 1973年 IBM System/370 モデル158/168(商用初の物理分割)
- 1985年 インテル i386で仮想86モード採用
- 1987年 IBM PR/SM(商用初のファームウェアによる論理分割(LPAR))
- 1995年 Java公式発表(JavaVMの登場)
- 1997年 サン・マイクロシステムズ ダイナミックシステムドメイン(DSD、UNIXサーバでは初の物理分割機能)
- 1999年 VMwareの登場(x86システムの本格的な商用仮想化OS)
- 2008年3月 オラクル Oracle VMを発表(ベースはXen)
- 2008年6月 マイクロソフト Hyper-V(開発コード名 Viridian)を発表
メインフレーム [編集]
ハードウェアによる仮想化 [編集]
1964年 IBM System/360は、同様に既存のIBM 1401やIBM 1620の命令セットをマイクロコードでエミュレーションした。また、コンピュータ・アーキテクチャを定義し標準化し、以後の上位互換性を提供した(通常は仮想化と呼ばれないが、プログラムから見れば一種の仮想機械と言える。この効果として、メインフレームではアセンブリ言語でもバイナリでも、40年以上経過した現在まで上位互換が続いている)。
1973年 IBM System/370モデル158およびモデル168により、物理分割(PPAR)をサポート。単一のコンピュータとしても、複数のコンピュータとしても使用可能。ただし細かいリソースの割り当てはできず、変更にはコンピュータ全体の再起動が必要。
IBMのPR/SMに相当する機能には、日立製作所 PRMFなどがある。
仮想化OSによる仮想化 [編集]
1964年 IBM System/360では、商用初の仮想化OSである CP-40、CP-67により、ひとつのコンピュータで複数の仮想コンピュータを作成し、それぞれでゲストOS (MVSやCMSなど)を稼動させる事ができた。この仮想化OSは VM/CMS となり、現在も z/VM として、多数のゲストOS(Linuxなど)を同時稼動させる用途でも使われている。
OSによるリソースの仮想化 [編集]
マルチタスク(アプリケーションによるマルチプログラミングではなく、OSの機能によるマルチタスク)は商用では、OS/360のバリエーションのひとつであるMVTと、後継のMVSで登場し、広く普及した。入出力待ちなどにCPUが他の処理を行えるため、処理の応答時間短縮と全体のスループット向上がもたらされた。
なお、メインフレームにおけるこれらの「マルチタスク」は、単に複数のプログラムが同時に動かせるというだけではなく、複数の独立したアドレス空間(リージョン)を作成し、ハードウェアの機能も使用して完全に分離し、同時稼働するプログラム同士は直接見えない(バグや悪意あるプログラムでも相互に干渉できない)ものである。この点では、後の各種UNIXやWindowsなどの「マルチタスク」と比較すると、「仮想機械」に近いレベルのもので、可用性やセキュリティも向上した。同様の仕組みは2009年現在、MVSの後継のz/OSの他、IBM z/VSE、富士通 MSP/XSP、日立製作所 VOS3 などでも採用している。
タイムシェアリング(時分割多重)による並列処理(マルチユーザー)は、アプリケーションプログラムやユーザーに、複数のコンピュータを同時使用するイメージをもたらし、オンライン・リアルタイム処理の普及をもたらした。なお、マルチタスクとタイムシェアリングは別の技術であるが、現在では組み合わせて使用されている。(上記のMVSなどでは、マルチタスク環境の一部で、タイムシェアリング環境を稼働させ、それによりマルチユーザーを実現している。またマルチタスク自体も、初期には入出力待ちによる割り込みが基本であったが、現在ではタイムシェリングによる割り込みを併用している。)
ミッドレンジ [編集]
1979年 IBM System/38は、TIMI(Technology Independent Machine Interface、技術に依存しないマシンインターフェイス)を採用した。TIMIは、メインフレームで採用されたマイクロコードによる互換性確保を更に進めたもので、主に水平型レベル・マイクロコードにより実現され、ハードウェア・アーキテクチャ(CPU命令セット等)とプログラムを分離している。プログラムの配布は中間コードであるバイトコードで行われ、インストール時にハードウェアの命令セットに展開される。このためソースプログラムを配布すること無く、実行時の性能を犠牲にすることもなく、別のアーキテクチャのハードウェアへの移行も容易である。実際、CPUアーキテクチャの移行(独自CISC→POWER)も容易に行えたとされる。
TIMIはSystem/38後継のAS/400、iSeries、System i、Power Systems i Edition に、現在でも使用されている。また現在はLPARなどと併用できる(後述のPowerVMを参照)。
商用UNIX [編集]
商用UNIXベンダーによる仮想化技術には以下がある。現在の仮想化技術は各種のハードウェアとソフトウェアが密接に連携しており、またベンダーにより各技術の範囲が異なるため、ベンダー単位に記載する。
- IBM PowerVM - 3エディションあり、全モデルに搭載。
- LPAR (論理区画) - ファームウェアによる論理分割。複数OSを稼働。
- マイクロパーティショニング - CPUを10分の1単位でLPARに割り当てる。
- WPAR - OS(AIX 6)の標準機能。アプリケーションから見て複数のOS環境(インスタンス)を提供。
- AIX WLM - ミドルウェアの機能でアプリケーションのワークロードを制御。
- SUN N1構想(Unified Virtualization Manager Environment)
- DSD (Dynamic System Domain) - 物理分割。動的なリソース移動も可能。上位機種のみ。
- LDOM (Logical Domain) - ファームウェアによる論理分割。複数OSを稼働。上位機種のみに提供予定。
- Solarisコンテナ - OS(Solaris 10)の標準機能。アプリケーションから見て複数のOS環境(インスタンス)を提供。
- Solarisリソース・マネージャ - ミドルウェアの機能でアプリケーションのワークロードを制御
- HP Virtual Server Environment (VSE)for HP-UX
- nPartitions(nPars) - ハードウェアによるパーティショニング技術
- Virtual Partitions(vPars) - nParをさらに分割できる論理パーティション技術、1プロセッサ単位で構成
- HP Integrity Virtual Machines (Integrity VM) - 各パーティションにプロセッサ・リソースを5% - 100%の範囲で動的に割り当てる、柔軟なsub-CPUパーティションニング技術 。
- HP-UX Workload Manager - パーティショニング、クラスタ、ユーティリティ・プライシングと連携し、サービスレベル維持に向けた リソース割り当てを自動化 。
UNIX/Linux/Windowsなど [編集]
仮想化OS [編集]
仮想化OS(仮想マシンモニタ)は、一つの計算機資源を複数の計算機資源としてハードウェア的に利用したり、物理的資源を区分けして特定のワークロードがシステム全体を独占させない目的(パーティション)の為に作られたもので、VMware、Xen、Oracle VM(ベースはXen)、Hyper-Vなどがある。
一台のコンピュータを複数のコンピュータとして、ハードウェアレベルで使うことができる。一台のコンピュータ上で特にオペレーティングシステムの変更なしに、複数のゲストオペレーティングシステムを稼働させたりする。稼働させる複数のゲストオペレーティングシステムは、全く別の種類のオペレーティングシステムであることも可能である。
元々仮想マシンモニタはメインフレームにおいてその資源を各ワークロードの負荷に応じて動的に分割し、システム全体の利用効率を上げるために用いられた。計算機が高性能化した現在では、小規模なWebサイトホスティングのような軽い処理を一般的なサーバでも仮想マシンモニタを用いて並列に実行し、資源の有効活用することが行われている。
- → ハイパーバイザも参照
OSの機能 [編集]
UNIX、Linux、OS/2、Windows等におけるプロセスとは、メモリ管理ユニットによって、仮想化されたメモリ空間でネイティブコードを実行するハードウエアによる仮想機械(VM)とも呼べる。この場合、仮想化された機械を管理するソフトウエア(ハイパーバイザ)は、通常はカーネルである。
CPU [編集]
1985年 インテルの80386で採用された仮想86モードは、複数のx86の仮想機械を提供する。これはOSが仮想機械を実装する事を支援するものであり、当モードはOS/2 2.0 や Windows 3.0などのDOS互換環境(仮想DOSマシン)で使用された。
言語環境による仮想機械 [編集]
ソフトウェアによる仮想CPUにバイトコードを実行させる形式が一般的である。バイトコードの実行方法にはインタプリタ方式や実行前に全バイトコードをネイティブに変換するコンパイル方式もあるが、性能の観点から現在はジャストインタイムコンパイル方式が主流である。
これらの仮想機械の目的は、物理命令セットアーキテクチャと、論理命令セットアーキテクチャの分離にあり、一度コンパイルされたプログラムは物理命令セットアーキテクチャが何であれ、仮想機械によって実行する事ができる。またJavaのようにハードウエアやオペレーティングシステムを抽象化し、オペレーティングシステムを含むコンピュータアーキテクチャ自体を隠蔽し、あらゆるシステムで動作するプログラムの設計を可能とする事を目的とした物もある。
x86アーキテクチャにおけるx86-64のように、物理命令セットアーキテクチャはプロセッサの進化に伴い変更される。適切に設計された論理命令セットアーキテクチャは、これらの物理命令セットアーキテクチャの進化の恩恵を受けつつ後方互換性を維持できるので、既存プログラムの保守コストが低減される。
また、論理命令セットアーキテクチャを固定することで、コンパイラに対して複数の物理命令セットアーキテクチャに対応したコードジェネレータを都度開発しなくて済む。また、非常に複雑で多岐にわたる物理命令セットではなく、その言語や環境にあわせて洗練された命令セットに対応したコードジェネレータを一回だけ設計すれば良く、コンパイラ開発における負担を大いに軽減する。
なお、言語による仮想機械をハードウェア化したものとして以下がある。
- Pascalのp-codeインタプリタはウェスタン・デジタル MCP-1600チップセットが作られた
- Javaでは、サン・マイクロシステムズがJavaバイトコードをネイティブに実行するプロセッサを製作する計画を発表したが、実際にはそのサブセット的実装にとどまった。
- ARMアーキテクチャの中にはJazelleと呼ばれるJavaバイトコード実行モードに切り換える事ができるものがあり、Java仮想マシンの裾野を広げている。

(→





(→
(アペリー定数)


0 件のコメント:
コメントを投稿