ニュース&トピックス
News
2019. 12. 09
学園長コラム【学園長コラム vol.17】恐怖の無限ループ
1979年にこの世界に入った私が新入社員だったとき、一番怖かったのは無限ループだった。
コンピュータの処理速度はすごいが、それでも、
最速のCPU(Central Processing Unit中央制御装置)と入出力装置では「月とすっぽん」の差がある。
CPUがナノ秒の世界なら、入出力装置はミリ秒の世界。
10-9と10-3の違いは106、つまり百万。
入出力装置が一仕事する間に、CPUは百万仕事をこなすという感じ。
だから例えば、10万件の大量データを分類・集計する仕事をコンピュータにやらせる場合、
全体の所要時間の99%以上は入出力作業に追われていて、
CPUは1%以下の時間で神業のように仕事をこなす、と考えた方が良い。
こうなると高価なコンピュータを効率的に使うには、
同時にたくさんの仕事をコンピュータにやらせることとして、
Aの仕事が入出力に移ったらCPUはBの仕事に移行し、
さらにBが入出力になったらCPUはCに移行する、というように回していけば良い。
つまり、入出力とは読む・書くという決められた仕事なので、
これを専門に行うCPUの「手下」みたいな存在を作り、そこに任せ、
CPUは入力済みで主記憶装置に持ってこられたデータを使って神業の処理を行い、
出力処理の出番となったらその後を手下に任せて、次の仕事に移行すればよい。
この手下を発明したのはIBM社で、チャネルとかチャネル・コントローラと呼んだ。
私が初めて入室を許されたマシンルームは、小学校の体育館ぐらいの広さのキンキンに冷えた部屋で、
そこに大型コンピュータが3セット、置かれていた。
CPUと主記憶装置はそれぞれ隠されるように奥の方で守られており、
前面に見えるのは多数の磁気テープ入出力装置だった。
これはアメリカ映画で見る大型冷蔵庫よりも大きい装置で、
磁気テープがクイックイッと回る姿が頼もしかった。
自分が組んだプログラムをマシンルームで初めて走らせる。
磁気テープがクイックイッと回るところを期待していたのだが、
一回だけクイッと回った後、ピタッと止まる。
これが恐怖の光景で、無限ループを疑わねばならない。
最初のクイッで300バイトの入力レコードを20件、読み込んだとする。
複数のレコードをブロック化して一気に読ませるのは、入出力装置の「遅さ」をカバーする常套手段だ。
その後、CPUの仕事のはずだが、次のクイッが来ないということは
超絶スピードのCPUがぐるぐる同じ場所を回っている、つまり無限ループしている恐れがある。
だって、入出力装置の百万倍もの速度で走るCPUが「まだ終わってない」ってどういうこと?
CPUを60秒間、無駄に走らせたら、自分の月給が軽く飛ぶぐらいの損失だった時代だ、
無限ループで数分間もCPUに無駄走りさせたら、こっぴどく先輩に、いや後輩にさえ罵られたものだった。
ITカレッジ学園長 佐藤 治夫
<プロフィール>
東京工業大学理学部数学科卒業。
ITエンジニアとしてコンビニ、アパレル、保険、銀行、人材派遣など様々な業界のシステム開発を手がけ、現在は株式会社クレスコ社外取締役、ユーザー系企業・顧問 情報活用コンサルティング、IT系企業・顧問 事業戦略策定コンサルティングを兼務。「ダメなシステム屋にだまされるな」(2009年日系BP)など、IT関連の著書も多数。
▼バックナンバーはこちら▼
【学園長コラム vol.1】毎日の仕事はITだらけ
【学園長コラム vol.2】プログラミングの初仕事
【学園長コラム vol.3】世界を変えるためにやっている
【学園長コラム vol.4】異常終了 - アベンド -
【学園長コラム vol.5】天才ユーザー(アパレル)
【学園長コラム vol.6】等比数列の和の公式
【学園長コラム vol.7】業種とIT
【学園長コラム vol.8】世界のIT
【学園長コラム vol.9】Win - Win - Win
【学園長コラム vol.10】Why don't you come to me?
【学園長コラム vol.11】経済産業省が鳴らす警鐘
【学園長コラム vol.12】AIとIoT
【学園長コラム vol.13】天才ユーザー(コンビニ)月曜夜9時の少年ジャンプ
【学園長コラム vol.14】天才ユーザー(百貨店)
【学園長コラム vol.15】メガ、ギガ、テラ
【学園長コラム vol.16】バッチ処理