OSは何をやっているか?

OSは何をやっているか?

2021年9月27日


OS は何をやっているか?

最近の PC は予め OS がインストールされた状態で売られているので、購入すると基本的に直ぐに使えるのが普通です。アプリもインターネットから簡単に取り込めるので、設定も殆ど必要がありません。スマホの場合はもっと簡単です。従って、OS を意識する事はほとんどありません。しかし、プログラミングの学習をする上では OS の事も知っていると役に立つことがたくさんあります。この記事では、簡単に OS が何をやっているかを紹介します!

身近な OS は?

OS が何をやっているかを紹介する前に、どんな OS があるかご存知ですか?

PC だと、Windows や MacOS、Linux が良く耳にする OS です。スマホだと、iOS や Android という事になります。これらは、全て OS(オペレーティングシステム)と呼ばれているものです。

実際に名前は聞いた事があっても、何をやっているかは良く分からないという印象ではないかと思います。利用者が多いスマホの場合をもう少し詳しく見てみると、スマホの画面にアイコンが並んでいますが、これらは実は OS ではなく、「アプリ(アプリケーション)」と呼ばれているものです。

スマホを買ってきて、最初から入っているので、「OS」の一部のような感じがしますが、スマホが直ぐに利用できるように、多くの人が利用する機能を予め用意して提供しているという事です。

実は、OS は普通に利用していると、「これ」と言って目に見えません。 でも、ないと困るのでいわば「空気」のような存在という事になります。

OS の仕事は何?

では、OS は何をやっているかというと、正確に説明するとたくさんの事がありますが、簡単に言うとやっている事は、大きく二つになります!

  • リソースの管理
  • 仕事の管理

だけです。 「リソース」というと良く分かりませんが、要は「道具」みたいな物です。 具体的には、

  • メモリ
  • ディスクドライブ
  • 入出力(キーボードやマウス、タッチパネル、WiFi など)

コンピュータやスマホの仕事を支えている物です。

「仕事」は、PC やスマホで動いているプログラムです。

PC やスマホでは色々なプログラムが動いているので、各プログラムが勝手にメモリなどを使い始めてしまうと、収集がつかなくなってしまうので、誰かが管理する必要があります。

プログラムも、最近の CPU は複数の「コア」と呼ばれる、プログラムを実行する部分があるので、一つのプログラムだけではなく、複数のプログラムを同時に実行できるようになっています。しかし、実際に動いているプログラムを全部同時に実行できないので、実行する優先順位や順番を OS が管理しています。

少し分かりやすい例で言うと、バスの運行を考えてみてください。 バス会社は、所有しているバスの数で運行スケジュールを立てる必要があります。 バスは無限にあるわけでは無いので、一つのバスが目的地に着くと、戻ってくるなり、別の路線を運行したりします。

この場合、バスはバス会社の「資源=リソース」と言う事になります。そして、実際にお金を稼ぐのが、バスが路線を走って運行する仕事になります。バス会社は、この持っているバスを有効に使ってダイヤを組んで、色々な路線を運行してお金を稼いでいます。

OS も同じで、PC やスマホのメモリやディスプレーを有効に使って、アプリを実行する役割を担当しています。

プログラムの実行も複雑

プログラムの実行を裏方で仕切っているのも OS です。

通常は、プログラムは、ディスクドライブなどにファイルとして保存されています。 プログラムを実行する場合は、ディスクドライブにあるファイルを読み出して、メモリに置いて実行すると言う手順が必要です。

プログラムを一つしか実行しない場合は、いつも同じ場所に置いて、同じ場所からスタートすれば良いので簡単です。しかし、複数のプログラムを同時に動かす場合にはそうはいきません。

同じプログラムでも、別の場所に置いて、別の場所から実行できるようにしておかないと大きなメモリを有効に使う事ができません。

そこで、良く行われているのが、予めプログラムを実行する「箱」のようなものを用意しておきます。箱の中は全て同じような作りにしておいて、箱の同じ場所からプログラムをスタートさせるような仕組みにしています。あとは、箱をメモリ上の空いている場所に置いて、そこにプログラムを入れて動かすような事をしています。

簡単に言えば、コンビニのようなお店を作るときに、お店の中のレイアウトを同じにしておくと、同じチェーン店の別のお店に行っても、商品が同じような場所に置いてあるので、利用する際に迷わずに買い物ができますよね?プログラムの実行も、メモリ上の場所が違っても、箱の中を同じようにしておけば、同じような容量で動かす事ができるので便利です。

OS はコンピュータを使いやすくするための仕組み

少し、専門的な事も書きましたが、OS が何故必要かというと、コンピュータを使いやすくするために必要な仕組みです。コンピュータの専門家ならば、そう言う仕組みがなくても、プログラムを動かすことはできますが、色々なプログラムを同じハードウエアで誰でも簡単に動かせるようにするには、ちょっとした仕組みが必要です。

メモリがどれくらいあるかとか、どこにプログラムを置いたら良いかなど、コンピュータの中身を知らなくても、お願いすればやってくれる仕組みが OS です。そのために、アプリが利用する、ネットワークやディスプレーの交通整理をして、色々なプログラムが上手く利用できるように管理をしてくれています。

まとめ

この記事では、OS の簡単な役割について紹介しました。 先日注文した、Raspberry Pi がまだ届かないので、それまでの繋ぎの記事という感じで書いてみました。Raspberry Pi を利用する際も、OS が必要です。

Raspberry Pi の場合、OS が予めインストールされているわけではありません。 利用の目的に合わせて、自分で OS を選んでインストールして利用する必要があります。

例えば、Web サーバーとして利用する際には、ネットワークの接続が必要になります。 実際の管理は、ディスプレーがなくても、ネットワーク経由で Web サーバーにアクセスできれば、キーボードもマウスも必要ありません。ネットワーク経由で、別の PC から操作できるので、OS も最低限の機能だけで十分です。

一方で、PC のように、ディスプレーとキーボードを繋いで、開発用のコンピュータとして利用する場合には、ディスプレーに Windows や Mac のように表示をさせてプログラムを動かす必要があるので、必要なモジュールも変わってきます。

同じ Linux を利用する場合でも、利用する「リソース」も変わってきますし、動かすプログラムも変わってきます。

Raspberry Pi が届き次第、そうした、例を具体的に体験しながら学習するのがこの連載の目的です。簡単でも良いので、OS の概念というかイメージができるとこの先の実験に役に立ちます!



Copyright(c) 2017-2021 by Silicon Valley Super Ware, all rights reserved.

コメント

このブログの人気の投稿

ユーザーインターフェースの設計

足し算以外もできるようにする

改良版足し算プログラム