コンピューターと言うもの


Home Page JAVAのプログラム構造 JAVAの操作
Last Updated: 2004-4/15

/*************** COMPUTER *************** 2004-4/15 Originated ********/ ■コンピューターを使って行なう仕事に関して: コンピューターを使って、仕事をさせるには、HWとSWが必要です。 そして、仕事に応じた、データも必要です。 仕事の流れの最も基本的な図式は、 [入力----処理----出力] に尽きるのです。 この図式は、コンピューターに限らず、多くの仕事においても同じ図式が 適用できます。要するに、「無」から「有」は生み出せないのです。 「有」の入力から「有」の出力を生み出します。 上記図式の「処理」は、換言するならば「変換」Transformation という 言葉を充てることも可能です。 ■コンピューターという資源の利用の仕方 vs Thread:  (コンピューターの設計の話です) 話は細かくなりますが、コンピューターとは、何物か、上述のような 言い方もありますが、もっと HW、SWに近いレベルの話として、 その動作の仕方を見てみましょう。この話のキッカケは、JAVA の Thread の話でした。Thrtead に関して、市販のJAVAの本を読んでも、 良く分かりませんでした。(説明の仕方がうまくないのだと思ったのでした) コンピューターのHW は、CPU、メモリー、入出力装置などから構成されます。 これらは、効率的に稼働される必要があり、そのための工夫がなされています。 CPUの稼動は、順次に行なわれます。或1時点では1つの仕事しか出来ません。   最も良い例は、ゲームで敵味方撃ち合う場合です。敵味方をA、Bと命名して おきましょう。AとBはそれぞれの戦略をもって戦闘します。コンピューター上で 戦闘するためには、A、Bの上位の管理者が必要です。C と命名しましょう。 コンピューターのHWは、Cの制御の下(これが例えば、Windows XPのようなOSです) で、AとBのための戦略(そのための演算)を実行します。実行は、原則的には、順次 に行なわれます。演算とは、味方の陣地の位置(座標)を決めたり、ミサイルの 方向やスピードを、相手から飛んでくるミサイルに応じて、決めることです。 演算された結果は、スクリーン画面に表示(出力)しなければなりません。 戦闘場面を変えるためには、コンピューターに何らかの命令(入力)を 与えなければなりません。 この入力と出力は、先述の演算と同時並行的に行なわれます。 すなわち、コンピューターというものは、演算しながら、入出力することが 出来るように作られています。 ■タイムシェアリング と言う設計思想 vs Thread:  (これも、コンピューターの設計の話です) JAVAのThread は、CPU という順次処理する資源をいかに多くの(AB,,,) 利用者(TASK タスクと言う)に割り当てるか、という問題を解決するものの ようです。このため、JAVAでは、個々のThread に、CPU サービスをまわして ゲームの進行が、滑らかの行なえるように、優先順位を設定したり、或いは、 強制的に待たせ(sleep)たりします。Multi-thread とは、今は古い言い方に なったかもしれませんが、Multi-task と同義のようです。 すなわち、Thread の設計思想は、それは、昔からある Time Sharing と言う設計思想 に他ならないものです。 内容は、随時追加、更新します。 /*************** COMPUTER *************** 2004-4/15 ********/