トップページ

本棚


両手で1000まで数えられますか?:2進法の話
数値 - 危険物取り扱い注意
100 × 200 =32?:変数のオーバーフローの話
パリティビット
小数の扱いについて
ぽいんた
ぽいんた2
ぽいんた3
ジ・オリジン
ジ・オリジン:補足
かっこつける話
かっこつける話2
文字列のこと
タイミングの話
拡張性の話
取り込む話
staticな話

コンパイルの話1
コンパイルの話2:止まらぬビルド
コンパイルの話3:マシン語に落ちるということ1:メモリの話
コンパイルの話4:マシン語に落ちるということ2:最適化
コンパイルの話5:マシン語に落ちるということ3:変数とスタック
コンパイルの話6:コンパイラはそもそも何をやってくれるのか??
リンクの話
プリプロセッサの話

OS、というもの

オブジェクト指向1
オブジェクト指向:2
オブジェクト指向:3

オブジェクト指向:番外 C言語のソースファイルの話
オブジェクト指向:番外 C言語での「再利用性」と「カプセル化」データ構造とアルゴリズム


抽象的な話

寝込んで布団の中で考えたこと
こんなの、常識??
お仕事プログラミング
ソフトでハードなプログラム
プログラムするということ
お勉強
プログラムを学ぶということの補足
C言語:「学問」と「実務」
統合開発環境
C言語ってポータブルですか?
C言語ってポータブルですか?:2
あなたは、どう読みますか?
ああ勘違い
試してガッテン
低級品
質問をするということ
ポカ
「何もしない」 != 「無駄」
エディタの話
もっと手を抜こう

いまどきの、アセンブラ

VisualStudio2005
VisualStudio2005:2

戦争の防ぎ方、に対する私の考え
身近な差別
改革
地球に優しいなんて大嘘
統計で嘘をつく方法

言葉について
言葉について:2

神が死んだということ
善悪の彼岸から、力への意思を目覚めさせるということ

本を読むということ
本を読むということ:2

絵を描く話
地図
地球儀

オカルトのお話
がんだむさん
RPGソフトウェア
記紀神話の不思議



メニュー

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

普段何気なく使っているOSというソフトウェアについて。

OSとは、Operation/Operating Systemの略なわけだけど、じゃあそれはいったい何をするものでしょう?
OSの、もっとも重要な役目とは?

こんな風なことを聞かれて、即答できる方はあまりいないのではないでしょうか。

ちょっと詳しい人に聞くと
①ファイルの管理
②メモリの管理
③ユーザインターフェースの提供
④各種ドライバ(周辺機器)の管理
あたりの答えから返ってくるのではないかと思います。

ですが。

OSの最も重要な役割は、上記の中にはありません。

それは、「時間」の管理ということです。

最近のPC、また少し高機能な家電製品などのなかでは、同時並行的に多くのタスクが走っています。
これらのタスクを管理し、「時間」というリソースを割り当てる役割、またタイマーなどの機能を割り当てる役割こそが、OSのもっとも重要な役割であると思います。

シングルチップの環境においては見た目上のマルチスレッド/タスクを実現するためにはこのタイムシェアリングの機能は非常に重要です。

また、機器の制御や通信のタイミングを図る際には、正確なタイマーは必須です。

PCなどの環境でプログラミングしていると上記①~④あたりが結構重要に見えてしまうのですが、それらの機能は実は「必須」ではありません。
例えば計算機などをプログラムする際は③以外は使わないかもしれないし、逆にバックグラウンドで走るプログラムには③は必要ありません。

ですが、それらのプログラムがちゃんと動作するためにはOSから時間というリソースを割り当ててもらう必要があります。

また組み込みの世界などではPCよりももっと厳密に「時間に正確な」動作が重要となってきます。PCでも、バックグラウンドでのサービスプログラムや、ゲームなどタイミングが必要なプログラムでは、より正確なタイマが必要となります。

昔のプログラムみたいに、
for(i = 0; i < 1000; i++)
{
  ;  /*WAIT*/
}
みたいな無駄なループを組んでソフトウェアタイマなど作っては、動作環境によってタイマの精度が異なる上に他のタスクにタイムリソースを割り当てることができなくなってしまいます。


時間というものは、われわれの現実の社会とともに、プログラムにとっても重要なものなのです。




| 新しいページ | 編集 | 差分 | 編集履歴 | ページ名変更 | アップロード | 検索 | ページ一覧 | タグ | RSS | ご利用ガイド | 管理者に問合せ |
@wiki - 無料レンタルウィキサービス | プライバシーポリシー