IT初心者のための基本情報ではじめる OS 入門 ~コンピュータシステム分野 2
この連載は、これから IT の勉強をはじめる人を対象としたものです。 基本情報技術者試験の出題分野ごとに、仕組み、主要な用語、および過去問題を紹介します。 受験対策としてだけでなく、 IT の基礎知識を幅広く得るために、ぜひお読みください。
今回は、コンピュータシステム 分野 その 2 として OS を取り上げます。
OS が必要な理由
「コンピュータ、ソフトなければ、ただの箱」という川柳があります。 これは、コンピュータを利用するには、ハードウェア(コンピュータ本体)とソフトウェア(プログラム)の両方が必要であることを示しています。 両者の関係は、ハードウェアの上にソフトウェアが乗っている、というイメージです(図 1 )。
初期のコンピュータの時代には、目的に応じてその都度、プログラムのすべての機能をゼロから作っていました。 やがて、いくつかのプログラムを作っているうちに、キーボード入力やディスプレイ出力など、多くのプログラムに共通した部分があることがわかりました。 このような機能をまとめたものとして、初期の OS が誕生しました。
OS の機能を利用すれば、新たなプログラムを効率的に作れます。 OS の機能を利用して動作するプログラムのことを、アプリ(アプリケーションプログラム)と呼びます。 これらの関係は、ハードウェアの上に OS が乗っていて、 OS の上にアプリが乗っているという、イメージです(図 2 )。
OS は、 Operating System の略で、直訳すると「操作システム」という意味ですが、「基本プログラム」と呼ばれています。 アプリの application は、「応用」という意味です。 アプリは、 OS の機能を応用して動作するのです。 OS がアプリに提供する機能のことをシステムコールと呼びます。 システムコールを利用してアプリを効率的に作れるようにすることが、 OS が必要な主な理由です。
OS の機能
その後、 OS は、どんどん進化していきました。 現在の OS の機能は、システムコールを提供するだけではありません。 ハードウェアとアプリの間に位置する OS は、コンピュータの管理者的な存在になっています。 OS が、ハードウェアとアプリを管理するのです。
図 3 looks_one は、 Windows( Windows は OS の一種です)のタスクマネージャというツールで、ハードウェアの稼働状況を確認したところです。 CPU 、メモリ、ディスク、 GPU が、どの程度利用されているかがわかります。 このようなことができるのは、 OS がハードウェアを管理しているからです。
図 3 looks_two は、タスクマネージャで、アプリの稼働状況を確認したところです。 PowerPoint や Word などのアプリが動作していて、それらがハードウェアをどの程度利用しているかがわかります。 このようなことができるのは、 OS がアプリを管理しているからです。
OS の主要な用語
基本情報技術者試験のシラバス(情報処理技術者試験における知識・技能の細目)に示された OS の分野の項目を見ると、現在の OS の具体的な機能がわかります。
- タスク管理
- 入出力管理
- 記憶管理
- 運用の管理
- ユーザー管理
- 障害管理
などの機能があります。 「 ○○ 管理」という言葉からわかるように、 OS は、コンピュータの管理者的な存在なのです。
以下は、それぞれの項目における主要な用語です。 赤色で示した用語は、後で紹介する過去問題のテーマになっています。
- タスク管理
- タスクスケジューリング、プリエンプティブ方式、ノンプリエンプティブ方式、タイムスライス方式、ラウンドロビン方式
- 入出力管理
- チャネル、入出力割込み
- 記憶管理
- 実記憶、仮想記憶、セグメント方式、セグメントページング方式、 FIFO 、LRU 、LFU 、ページフォールト、スラッシング
- 運用の管理
- プロファイル、ユーザーアカウント、システム利用権、ファイルアクセス権、端末利用権
- ユーザー管理
- スーパーユーザー、 root 、 Administrator 、ゲスト、管理者権限
- 障害管理
- ハードウェア障害、ソフトウェア障害、再構成、リスタート
OS の過去問題
OS の分野の過去問題を 3 問ほど紹介しましょう。
ラウンドロビン方式に関する問題
最初は、ラウンドロビン方式に関する問題です。
OS には、同時に複数のプログラムを実行する機能があります。 ただし、まったく同時に複数のプログラムを実行するのではなく、短い時間でプログラムを切り替えて実行しているのです。 切り替えの対象となるプログラムをタスクと呼び、 OS がタスクの実行順序を管理することをタスクスケジューリングと呼びます。
ラウンドロビン方式は、タスクスケジューリングにおける方式のひとつです。
スケジューリングに関する記述のうち,ラウンドロビン方式の説明として,適切なものはどれか。
- ア
- 各タスクに,均等に CPU 時間を割り当てて実行させる方式である。
- イ
- 各タスクに,ターンアラウンドタイムに比例した CPU 時間を割り当てて実行させる方式である。
- ウ
- 各タスクの実行イベント発生に応じて,リアルタイムに実行させる方式である。
- エ
- 各タスクを,優先度の高い順に実行させる方式である。
ラウンドロビン( round robin )とは、「署名者の順序を隠すために円形に署名した嘆願書」のことです。 ラウンドロビン方式は、すべてのタスクを均等な順序で実行します。 タスクを実行するとは、タスクに CPU を使用させることです。
したがって、選択肢アの
「各タスクに、均等に CPU 時間を割り当てて実行させる方式である」
が正解です。
仮想メモリに関する問題
次は、仮想メモリに関する問題です。
OS には、メモリの容量不足を補うために、ハードディスクを仮想的にメモリとして使う機能があり、これを仮想記憶と呼びます。 OS は、アプリが使用するメモリが不足したときに、メモリの中で今後使われる可能性が低いページ(プログラムの内容をいくつかに切り分けた部分)をハードディスクに一時的に追い出し、そのページ分の領域を開放します。
今後使われる可能性が低いページを判断する方法には、 FIFO 、LRU 、LFU があります。
仮想記憶管理のページ入替え方式のうち,最後に使われてからの経過時間が最も長いページを入れ替えるものはどれか。
ア FIFO イ LFU ウ LIFO
エ LRU- FIFO
- First In First Out (最初に入る、最初に出る)の略語です。
最初にメモリに入れた(ロードした)古いページは、今後使われる可能性が低いと判断するのです。 - LRU
- Least Recently Used (最も~でない、最近、使われる)の略語です。
最後に使ってから最も時間が経過しているページは、今後使われる可能性が低いと判断するのです。 - LFU
- Least Frequently Used (最も~でない、頻繁に、使われる)の略語です。
使われた回数が少ないページは、今後使われる可能性が低いと判断するのです。
この問題では、
「最後に使われてからの経過時間が最も長いページを入れ替える」
なので、選択肢エの LRU が正解です。
ファイルアクセス権に関する問題
最後は、ファイルアクセス権に関する問題です。
ディスク装置に格納するデータをファイルとして読み書きでき、ディスク装置の内部を階層的なディレクトリ構造で取り扱えるのは、 OS の機能です。 さらに OS は、ファイルにアクセスの権限を設定することができます。
この問題では、ファイルに読取り、書込み、実行の権限を設定できる OS があるとしています。
ファイルの属性情報として,ファイルに対する読取り,書込み,実行の権限を独立に設定できる OS がある。 この 3 種類の権限は,それぞれに 1 ビットを使って許可,不許可を設定する。 この 3 ビットを 8 進数表現 0 ~ 7 の数字で設定するとき,次の試行結果から考えて,適切なものはどれか。
- 0 を設定したら,読取り,書込み,実行ができなくなってしまった。
- 3 を設定したら,読取りと書込みはできたが,実行ができなかった。
- 7 を設定したら,読取り,書込み,実行ができるようになった。
試行結果
- ア
- 2 を設定すると,読取りと実行ができる。
- イ
- 4 を設定すると,実行だけができる。
- ウ
- 5 を設定すると,書込みだけができる。
- エ
- 6 を設定すると,読取りと書込みができる。
ファイルのアクセス件は、 3 ビットで指定します。 個々のビットが、読取り、書込み、実行のいずれかを表しているのです。 この問題では、どのビットが何の意味を持っているかを 1. 、 2. 、 3. の試行結果から判断します。
2 進数の 3 ビットの 000 ~ 111 は、 8 進数の 1 桁の 0 ~ 7 に相当します。 試行結果と選択肢では、 8 進数が使われています。
- 試行結果 1.
- 8 進数の 0 ( 2 進数の 000 )を設定したら、読取り、書込み、実行ができなくなったのですから、 2 進数の 0 が禁止であり、 1 が許可を意味していることがわかります。
- 試行結果 2.
- 8 進数の 3 ( 2 進数の 011 )を設定したら、読取りと書込みができて、実行ができなかったので、 3 ビットの 2 進数の最上位桁で実行の設定をすることがわかります。
- 試行結果 3.
- 8 進数の 7 ( 2 進数の 111 )を設定したら、読取り、書込み、実行ができたのですから、これは既に試行結果の 1. でわかっているのですが、 2 進数の 0 が禁止であり、 1 が許可を意味していることがわかります。
何とも中途半端ですが、これで試行は終わりです。
わかったことは、
「 2 進数の 0 が禁止、 1 が許可」
「 2 進数の最上位桁が実行の設定」
だけです。
選択肢を見てみましょう。
- 選択肢 ア
- 8 進数の 2 ( 2 進数で 010 )を設定すると、読取りまたは書込みのいずれかができます。
- 選択肢 イ
- 8 進数の 4 ( 2 進数で 100 )を設定すると、実行だけができます。
- 選択肢 ウ
- 8 進数の 5 ( 2 進数で 101 )を設定すると、実行と、読取りまたは書込みのいずれかができます。
- 選択肢 エ
- 8 進数の 6 ( 2 進数の 110 )を設定すると、実行と、読取りまたは書込みのいずれかができます。
- 「プログラムはなぜ動くのか」(日経BP)
- 「コンピュータはなぜ動くのか」(日経BP)
- 「出るとこだけ! 基本情報技術者」 (翔泳社)
- 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
- 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数
したがって、選択肢イが正解です。
今回は「コンピュータシステム」その 2 として「 OS 」が必要な理由、機能、主要な用語、および過去問題を紹介しました。
次回は、「データベース」その 1 として「データベース全般」の分野を取り上げます。
それでは、またお会いしましょう!
label 関連タグ免除試験を受けた 74.9% の方が、 科目A免除資格を得ています。
IT初心者のための アルゴリズムとデータ構造入門 ~ 基本情報ではじめるコンピュータ科学の基礎理論(4)
updateIT初心者のための 論理回路 入門 ~ 基本情報ではじめるコンピュータ科学の基礎理論(3)
updateIT初心者のための 2進数 入門 ~ 基本情報ではじめるコンピュータ科学の基礎理論(2)
updateIT初心者のための基本情報ではじめる ストラテジ 入門
updateIT初心者のための基本情報ではじめる サービスマネジメント 入門 ~マネジメント分野 2
updateIT初心者のための基本情報ではじめる プロジェクトマネジメント 入門 ~マネジメント分野 1
updateIT初心者のための基本情報ではじめる 開発技術 入門
updateIT初心者のための基本情報ではじめる 暗号化 入門 ~セキュリティ分野 2
updateIT初心者のための基本情報ではじめる セキュリティ 入門 ~セキュリティ分野 1
updateIT初心者のための基本情報ではじめる OSI基本参照モデル 入門 ~ネットワーク分野 2
update『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”
大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。
主な著作物