雑記
OS、というもの
最終更新:
匿名ユーザー
-
view
普段何気なく使っているOSというソフトウェアについて。
OSとは、Operation/Operating Systemの略なわけだけど、じゃあそれはいったい何をするものでしょう?
OSの、もっとも重要な役目とは?
OSの、もっとも重要な役目とは?
こんな風なことを聞かれて、即答できる方はあまりいないのではないでしょうか。
ちょっと詳しい人に聞くと
①ファイルの管理
②メモリの管理
③ユーザインターフェースの提供
④各種ドライバ(周辺機器)の管理
あたりの答えから返ってくるのではないかと思います。
①ファイルの管理
②メモリの管理
③ユーザインターフェースの提供
④各種ドライバ(周辺機器)の管理
あたりの答えから返ってくるのではないかと思います。
ですが。
OSの最も重要な役割は、上記の中にはありません。
それは、「時間」の管理ということです。
最近のPC、また少し高機能な家電製品などのなかでは、同時並行的に多くのタスクが走っています。
これらのタスクを管理し、「時間」というリソースを割り当てる役割、またタイマーなどの機能を割り当てる役割こそが、OSのもっとも重要な役割であると思います。
これらのタスクを管理し、「時間」というリソースを割り当てる役割、またタイマーなどの機能を割り当てる役割こそが、OSのもっとも重要な役割であると思います。
シングルチップの環境においては見た目上のマルチスレッド/タスクを実現するためにはこのタイムシェアリングの機能は非常に重要です。
また、機器の制御や通信のタイミングを図る際には、正確なタイマーは必須です。
PCなどの環境でプログラミングしていると上記①~④あたりが結構重要に見えてしまうのですが、それらの機能は実は「必須」ではありません。
例えば計算機などをプログラムする際は③以外は使わないかもしれないし、逆にバックグラウンドで走るプログラムには③は必要ありません。
例えば計算機などをプログラムする際は③以外は使わないかもしれないし、逆にバックグラウンドで走るプログラムには③は必要ありません。
ですが、それらのプログラムがちゃんと動作するためにはOSから時間というリソースを割り当ててもらう必要があります。
また組み込みの世界などではPCよりももっと厳密に「時間に正確な」動作が重要となってきます。PCでも、バックグラウンドでのサービスプログラムや、ゲームなどタイミングが必要なプログラムでは、より正確なタイマが必要となります。
昔のプログラムみたいに、
for(i = 0; i < 1000; i++) { ; /*WAIT*/ }
みたいな無駄なループを組んでソフトウェアタイマなど作っては、動作環境によってタイマの精度が異なる上に他のタスクにタイムリソースを割り当てることができなくなってしまいます。
時間というものは、われわれの現実の社会とともに、プログラムにとっても重要なものなのです。