top page > social > life > lifehack > os.html
更新日:
文責: 重城良国

オペレーティングシステム

現在のコンピュータシステムにはオペレーティングシステムつまりOSが存在する。OSはハードウェアを抽象化し、同時に走るいくつものプロセスに対してCPU時間を分配する。最近のシステムの多くはマルチタスクである。つまり同時に複数のプロセスを走らせることができる。より正確にはプロセスを切り換えることで同時に走っているように見せる。すくなくともシングルコアのシステムでは、そうだ。

これは総計で考えれば非効率である。プロセスの切り換え等の管理にはCPU時間を使う。それぞれのプロセスを順次実行していったほうが全体的な時間は短くてすむ。

しかし、現実を見るとマルチタスクはシングルタスクと比べてはるかに効率が良い。何故か。答えは「待ち」にある。たとえばハードディスクからの読み込みはメモリからの読み込みと比べて、はるかに長い時間を要する。つまり、プロセスAがハードディスクからの読み込みを待つあいだ、プロセスBが実行できれば、全体としての効率は大きく改善されるだろう。

人間にもシングルタスクとマルチタスクのどちらを採用するかという選択がある。人間にとってタスクの切り替えにかかるコストはコンピュータよりも大きい。つまり、コンピュータにとってよりも人間にとってのほうがシングルタスクのメリットは大きい。

人間はマルチタスクよりもシングルタスクを採用するべきだ。そのような命題を立てたとする。この命題が真であるためにはひとつ条件が必要だ。「待ち」にかかる総コストが「タスク切り換え」のコストよりも低い場合のみ上記の命題は真となる。

「待ち」は「しがらみ」に比例して増加する。そして「しがらみ」は、成人期までは増加し、老年期に減少すると思われる。若いうちはシングルタスクを採用するべきだ。成人期のどこかの段階でマルチタスクのほうが効率的となる臨界点があるだろう。老年期のどこかには逆の臨界点があるはずだ。

独身で、友達がなく、部下もなく、近所づきあいもない。そんな場合にはマルチタスクへと移行すべき点は存在しないこともあるだろう。ある種の人にうらやましがられるタイプだ。シングルタスクの管理を続けていくことができる。「今していること」に没頭できるのだ。

多くの人は就職、昇進、結婚、子の出生等のライフイベントが、マルチタスクへの移行ポイントになるだろう。このマルチタスクへの移行がうまくいかないと、その人の作業効率は壊滅的に低下する。年齢が上がり、家庭を築き、昇進し、そして無能になる。あるいは、職場では有能でありながら、家庭は崩壊する結果になる。

シングルタスクからマルチタスクへの移行は難しい。「今までこれでうまくやってきた」と、過去にとらわれればよけいに難しくなる。言うならばメモリ上にあるデータだけで演算が実行できていた時代から、ハードディスクからデータを読み込まなければならないフェーズに移行したということだ。環境が変化したらアルゴリズムも変化させる必要がある。

若いうちはシングルタスクが良い。社会との接点が増えてきたら、どこかでマルチタスクに切り換える必要がある。そのタイミングは「以前は連続して集中する時間がとれたのに」という郷愁を感じたときだろう。

オペレーティングシステムの仕事のうちのわかりやすい例として「かたづけ」がある。若いうちは「かたづけ」る必要などなかった。自分の興味のあるものは目の前に並べられるほどしかなかった。しかし成長し、興味の範囲が広がったなら、かたづけなければ収集がつかなくなる。「かたづけ」にかける時間は言うならばタスク切り換えにかける時間だ。

若いとき才能を発揮し、年を追うごとに能力が低下していくように見える人がいる。その人はシングルタスクが得意なタイプだ。逆に若いときには凡庸だった人が、年とともに才能を発揮することもある。マルチタスクを実行してきた人はそのようになるだろう。

僕の今の課題は、シングルタスクからマルチタスクへの切り換えなのではないだろうか。そう思う。オペレーティングシステムにCPU時間をさく必要があるのだろう。

正当なCSSです! HTML5 Powered with CSS3 / styling, and Semantics