OS(オペレーティングシステム)とは?種類や機能、複数のOSを利用する方法

この記事は5分で読めます

自分用メモ

※参照:キタミ式イラストIT塾 基本情報技術者の内容まとめ
※参照:コンピュータサイエンスとは?関連領域や学ぶ意義など

OS(Operating System、オペレーティングシステム)とは?


コンピュータのリソース(CPU、メモリ、入出力、ネットワーク等)全体を管理、制御する機能を持つソフトウェア。汎用的にコンピュータを利用するための目的として開発されており(アプリケーションのように、特定の目的のために開発された訳ではない)、「基本ソフトウェア」とも呼ばれる。コンピュータの電源投入と同時に起動するのが特徴。コンピュータを操作するためのソフトウェアが求められた事が、OSが開発されるようになった背景として挙げられる。

「オペレーティングソフトウェア」ではないので注意!
「オペレーティング”システム”」である。

※画像:デジタル用語の定義を簡単にまとめてみた

なぜ、OSについて理解を深める必要があるのか?



私達が「当たり前だと思う機能」を提供してくれているから

以下の機能は、OSによって実現している。
・キーボードから文字を入力すると、入力した文字が画面に表示される
・マウスやタッチパッドを操作すると、操作した位置が分かる。
・イヤフォンを指すと、イヤフォンから音が聞こえる。

OSによって実現されてる機能は、
アプリケーション開発者が改めて作成する必要はない。


プログラミングではOSとアプリの役割分担を理解するのが大事。

OSは「コンピュータの仕組み」と言えるほど、
コンピュータの土台を支えているソフトウェアである。

OSを知ることは、コンピュータの仕組みを知る事に繋がる。
逆に、OSの理解が浅いと、プログラムが理解できなかったり、
実装方法が分からなかったり、バグの原因になる可能性がある。

基本ソフトウェアの3分類


①制御プログラム

ハードウェアを管理して、応用ソフトウェアやミドルウェアから
コンピュータを効率的に利用する事を助けるソフトウェア。
一般的に、このプログラムを「カーネル」と呼ぶ。

カーネルには、メモリ管理やプロセス管理などに
機能を限定した「マイクロカーネル」と、
多くの機能を網羅した「モノリシックカーネル」の2つがある。
(ジョブ管理、タスク管理、記憶管理、データ管理など)

制御プログラムは、OSの中核であり、
OSを狭義で表す際は、制御プログラムの事を指す。

②言語処理プログラム(言語プロセッサ)

C言語やJava言語などプログラミング言語で書かれたプログラムを
コンピュータが理解できる機械語に翻訳するプログラム。

③サービスプログラム

コンピュータの機能を補う補足的なプログラムのこと。
「ユーティリティ」とも呼ばれる。
ファイル圧縮プログラム等が挙げられる。

代表的なOS


①Windows
※参照:Windows7とWindows10の違いやアップグレード方法について

②Mac OS

③UNIX
サーバーなどに使われる事が多いOS。
大勢のユーザーが同時に利用できるように設計されている。

④Linux
UNIX互換のOS。
オープンソースソフトウェアなので無料で利用できる。

③iOS
⑤Android

OSとAPI



OSはアプリケーションソフトウェアを動作させるのが第一の目的である。
このためのインターフェイスがAPI(Application Programing Interface)である。

APIはプログラミングのためのインターフェイスであり、
プログラムを作成する際の規則を構成する。
(ファイル保存/読み込み/削除、ウインドウ登録/表示、メッセージ表示、
画面更新、ボタン描画、時間の取得、スレッドの生成など)

APIを利用してアプリケーションが作られる事で、以下のメリットがある。
・開発効率アップ
・操作性の統一
・互換性の確保

★API(Application Programing Interface)
アプリケーション同士がお互いの機能を使えるようにしたもの。単体でも充分に機能するプログラムの一部の機能を、再利用する事が可能となっている。ただし、内部のコードは公開されておらず、使い方やセキュリティ上のルールは定められている。APIはWeb上で通信して利用する事が一般的なので「WebAPI」とも呼ばれる。

※参考:APIとは?利用方法や種類について

複数のOSを使用する方法


「VirtualBoX」を使う。

このシステムは、使用環境に仮想環境を構築して、
他のOSをインストールする事ができる。
例えば、Mac環境でWindowsや理ななど
複数のOSを切り替えて使用する事が可能となる。

★いまさら聞けない!Virtualboxとは何か?基礎の基礎を解説!

Virtualboxは仮想マシンの1つで、導入することにより
複数のOSを仮想環境上で動かす事ができる。

OSの機能


①マイクロカーネルの機能

・メモリ管理
・プロセス管理

★モノリシックカーネルの機能

②ジョブ管理

利用者から見た仕事の単位を「ジョブ」と言う。
コンピュータから見た仕事の単位である「タスク」の対義語だと言える。

「ジョブ」を効率良く処理できるように、
OSは実行スケジュールを管理している。

利用者は、「マスタスケジューラ」という管理プログラムによって、
ジョブの実行を依頼する。そしてマスタスケジューラは、
ジョブの実行をジョブスケジューラに依頼する。

依頼を受け取ったジョブスケジューラは、以下の流れでジョブを実行する。
・リーダ
・イニシエータ
・ターミネータ
・ライタ

③タスク管理

タスクとは、コンピュータから見た仕事の単位のこと。
「実行中のプログラム」と言い換えられる。
利用者から見た仕事の単位「ジョブ」の対義語でもある。

生成されたタスクには、以下3つの状態がある。
・実行可能状態(READY):CPUの使用権が回ってくるのを待っている状態
・実行状態(RUN):CPUの使用権が与えられて、実行中の状態
・待機状態(WAIT):入力や出力の処理の終了を待っている状態

ファイル管理について


ファイルとは、データを①つの塊として記録するために使う単位のこと。
「ファイル」という媒体(入れ物)がある訳ではない。
「何番地から何番地までのデータは、◯◯という名前のファイルなので、
読み込むときはその単位で区切るよう宜しく」という感じ。

ファイルの形式には、以下のものがある。
・テキスト形式
・CSV形式
・PDF
・画像用のファイル形式
・音声用のファイル形式:MP3やMIDI
・動画用のファイル形式:MPEG

また、ファイルを束ねるものをディレクトリ(フォルダ)と言う。
※参照:パスとは?絶対パス相対パスの違い。フォルダ構造や必要な3つのファイル

OSの3大機能とは?


①ジョブ管理
・利用者から見た仕事の単位「ジョブ」を管理する
・ジョブの実行に必要な資源の予約や開放を行い、効率よくジョブを処理するための管理を行う。

②タスク管理
・コンピュータから見た仕事の単位「タスク」を管理する
・CPUを休まずに働かせる為のスケジュール管理を行う

③記憶管理
・メモリを有効に活用するための管理を行う。
・実記憶管理と仮想記憶管理の2つに分かれる。

※参照:コンピュータの5大装置とは。記憶、演算、制御装置の詳細など

実記憶管理とは?

・限られた主記憶空間を、
 効率よく使えるようプログラムに割り振るのが実記憶管理の役割である。
・コンピュータに実際に搭載されている主記憶の領域を「実記憶空間」という。

・プログラムの読み取り方として、以下の4種類がある。

①固定区画方式:
→主記憶に固定長の区画(パーティション)を設けて、そこにプログラムを読み込む管理方式。
→全体を単一の区画とする「単一区画方式」と、複数の区画に分ける「多重区画方式」がある。

②可変区画方式:
→主記憶を最初に区切るのではなく、プログラムをロードするタイミングで
 必要なサイズに区切る管理方式のこと。区画内に余剰スペースが生じないので、
 固定区画方式よりも主記憶の利用効率が良くなる。
→ただし、必ずしも詰め込んだ順番にプログラムが終了するとは限らないのがデメリット。
 この現象をフラグメンテーション(断片化)という。

③オーバーレイ方式:
→プログラムをセグメントという単位に分割しておいて、
 その時に必要なセグメントだけを主記憶上にロードして実行するもの。
→実行したいプログラムのサイズが、主記憶の容量を超えてロード出来ないとしても、
 処理の過程で必要とされる機能だけを主記憶上にロードして、占有場所を減らす事ができる。

★オーバーレイ
「重ねる」という意味の単語。
プログラミング分野では、小さなメモリしかないOSで、
大きなメモリ容量を必要とするプログラムを動かす手法を指す。

④スワッピング方式:
→主記憶の代用として低速な補助記憶装置へのアクセスを行い、処理速度を減らす方式。

仮想記憶管理とは?

・主記憶やほぞ記憶の存在を隠蔽することで、
 広大なメモリ空間を自由に扱えるようにするもの。

・実装方式には、仮想アドレス空間を固定長の領域に区切って管理するページング方式と、
 可変長の領域に区切って管理する「セグメント方式」の2つがある。

・ページング方式では、プログラムを「ページ」という単位に分割して管理する。
 仮想記憶と主記憶の対応付けは、ページテーブルという表によって管理される。
→補助記憶から実記憶へのページ読み込みを「ページイン」、
 実記憶から補助記憶にページを追い出すことを「ページアウト」という。

・実記憶の容量が少ないと、ページの置き換えをする頻度が高くなり、
 システムの処理効率が極端に低下する事がある。この現象をスラッシングという。
→そのために、いずれかのページをアウトして空きを作る必要がある。
 「何をページアウトさせるかの判断が必要。そのためのアルゴリズムには以下4つがある。

・FIFO(First in First Out):先にページインしたページを追い出し対象にする
・LIFO(Last in First Out):最後にページインしたページを追い出し対象にする
・LRU(Least Recently Used):最も長期間参照されてないページを追い出し対象にする
・LFU(Least Frequency Used):最も参照回数が少ないページを追い出し対象にする




  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。