テクノロジ系
コンピュータシステム 重点教科書
コンピュータシステムは「ハードウェアの役割」「システム構成・稼働率の計算」「ソフトウェア(OS等)」「入出力装置」の4本柱です。用語暗記と計算パターンを分けて対策しましょう。
1. コンピュータ構成要素
パソコンやスマホの中で、実際にどんな部品がどんな役割を担っているのかを見ていきましょう。
コンピュータの5大機能とプロセッサ
コンピュータは、実は人間の体によく似た仕組みで動いています。コンピュータには5つの基本的な機能があり、それぞれが連携して働いています。キーボードやタッチパネルからデータを受け取る入力は人間でいう目や耳、計算をして答えを出す演算と、全体の動きを指揮する制御は脳、データを覚えておく記憶はメモ帳、そして結果を画面や音声で伝える出力は口にあたります。
この5大機能のうち、演算と制御を担う中心的な部品がCPU(Central Processing Unit)です。CPUはコンピュータの「頭脳」と呼ばれ、あらゆる処理の司令塔として働きます。1つのCPUの中に複数の処理ユニット(コア)を搭載し、同時に複数の作業をこなせるようにしたものをマルチコアプロセッサと呼びます。1人だけで仕事をするより、複数人で手分けした方が早く終わるのと同じ考え方です。
画像や映像の処理、あるいは近年ではAIの計算に特化した処理装置がGPU(Graphics Processing Unit)です。CPUが「複雑な仕事を1つずつ丁寧にこなす少数精鋭のチーム」だとすると、GPUは「単純な計算をものすごい人数で一斉にこなす大人数のチーム」に近いイメージです。このGPUを画像処理以外の一般的な計算に応用する使い方をGPGPU(General-Purpose computing on GPU)と呼び、AIの学習処理などで広く活用されています。
CPUの処理速度の指標となるのがクロック周波数です。CPUの内部では、一定のリズムに合わせて処理が進んでいき、このリズムの速さを表すのがクロック周波数です。数値が大きいほど、単位時間あたりに多くの処理をこなせることを意味します。
メモリ——覚えておく場所にも種類がある
コンピュータがデータを記憶しておく場所をメモリと呼びますが、実はメモリにはいくつかの種類があり、それぞれ役割が異なります。
RAM(Random Access Memory)は、電源を入れている間だけデータを記憶できるメモリです。作業中のデータを一時的に置いておく場所で、電源を切るとデータは消えてしまいます。これを揮発性メモリと呼びます。反対に、電源を切ってもデータが消えない性質を不揮発性メモリと呼び、その代表がフラッシュメモリです。これは、作業中のメモをすぐ消えてしまう「ホワイトボード」(揮発性)と、書いた内容がずっと残る「ノート」(不揮発性)の違いに例えるとわかりやすいでしょう。パソコンのメモリでよく見かけるDDR4 SDRAMや、より新しく高速なDDR5 SDRAMは、このRAMの規格の一種で、ノートパソコンなどに使われる小型の実装形式をSO-DIMM、デスクトップパソコンで使われる標準的な実装形式をDIMMと呼びます。
一方、ROM(Read Only Memory)は基本的に読み出し専用の不揮発性メモリで、コンピュータ起動時に必要な最低限のプログラムなどがあらかじめ書き込まれています。
データを長期的に保存しておく場所が記録媒体です。回転する円盤にデータを記録するHDD(Hard Disk Drive)、電気的にデータを記録するため高速で衝撃に強いSSD(Solid State Drive)が代表的で、近年はSSDが主流になりつつあります。そのほか、光を使ってデータを読み書きするCD(CD-ROM・CD-R)、より大容量のDVD(DVD-ROM・DVD-RAM・DVD-R)、さらに大容量のブルーレイディスク、持ち運びに便利なUSBメモリやSDカードも身近な記録媒体です。
これらのメモリや記録媒体は、アクセスの速さと価格・容量のバランスで階層的に使い分けられています。これを記憶階層と呼び、CPUのすぐそばにあり最も高速だが少量しか置けないキャッシュメモリ、作業中のデータを置く主記憶(メインメモリ)、そして大量のデータを長期保存する補助記憶(HDD・SSDなど)という順に構成されています。よく使う資料を「手元の机の上」(キャッシュメモリ)に置き、少し使う頻度が低いものは「引き出し」(主記憶)、めったに使わないものは「本棚」(補助記憶)にしまう、というイメージで理解すると整理しやすいでしょう。
入出力デバイス——コンピュータと外の世界をつなぐ
コンピュータが外部の機器とデータをやり取りする際の接続方式を入出力インタフェースと呼びます。ケーブルでつなぐ有線インタフェースと、電波などでつなぐ無線インタフェースがあり、データの送り方にも1本の線で1ビットずつ順番に送るシリアル方式と、複数の線で同時に複数ビットを送るパラレル方式があります。
身近な有線インタフェースとしては、パソコンとさまざまな周辺機器をつなぐUSB(Type-A・Type-B・Type-Cなど形状の異なる種類がある)、映像と音声をまとめて伝送できるHDMI、主にディスプレイ接続に使われるDisplayPortやDVI、古くからある映像入力方式のアナログRGBなどがあります。無線インタフェースには、イヤホンやマウスなどの接続に使われるBluetooth、赤外線を使った近距離通信のIrDA、非接触でICタグを読み取るRFID、電子マネーなどに使われる近距離無線通信のNFCがあります。
近年重要性が増しているのが、IoT機器に組み込まれるIoTデバイスです。周囲の環境を感知するさまざまなセンサーが使われており、光を検知する光学センサー、目に見えない赤外線を検知する赤外線センサー、磁力を検知する磁気センサー、動きや傾きを検知する加速度センサー、回転の動きを検知するジャイロセンサー、距離や物体を検知する超音波センサー、温度を測る温度センサー、湿度を測る湿度センサー、圧力を測る圧力センサー、煙を検知する煙センサーなどがあります。皆さんが持っているスマートフォンには、実はこれらのセンサーの多くが搭載されており、画面の向きが自動で回転するのは加速度センサーとジャイロセンサーのおかげ、天気アプリが正確な情報を出せるのはさまざまなセンサーとの連携があってこそなのです。センサーが取得した情報をもとに実際に物理的な動作を行う部品をアクチュエーターと呼び、モーターで回転運動を作るDCモーター、油や空気の圧力で動く油圧シリンダ・空気圧シリンダなどがあります。
こうした周辺機器をコンピュータで正しく動かすためには、機器ごとの制御方法をOSに伝える専用のソフトウェアであるデバイスドライバが必要です。USBメモリを挿すだけで自動的に使えるようになる仕組みは、プラグアンドプレイという機能によって、コンピュータが自動的に適切なデバイスドライバを認識・設定してくれているおかげです。


2. システム構成要素
コンピュータは1台だけで動いているとは限りません。複数のコンピュータをどう組み合わせて使うか、そのシステムをどう評価するかを見ていきましょう。
システムの構成——処理をどう分担するか
システムの処理形態にはいくつかの種類があります。1台のコンピュータですべての処理を行う集中処理に対して、複数のコンピュータで処理を分担する分散処理があります。さらに複数の処理を同時並行で進める並列処理、同じデータを複数の場所に複製しておくレプリケーションという考え方もあります。1人の店員がすべてのお客様に対応する小さな店(集中処理)と、複数の店員が役割分担する大きな店(分散処理)を思い浮かべると理解しやすいでしょう。
代表的なシステム構成として、同じ処理を行う2つのシステムを用意して信頼性を高めるデュアルシステム、通常時は別々の処理をしていて片方が故障したときにもう一方が肩代わりするデュプレックスシステムがあります。サービスを要求する側のクライアントと、サービスを提供する側のサーバに役割を分けるクライアントサーバシステムは、レストランでお客様(クライアント)が注文をし、厨房(サーバ)が調理をして提供する関係に例えられます。
1台の物理的なコンピュータの上に、複数の仮想的なコンピュータを作り出す技術を仮想化と呼び、通常のOS上で動かすホスト型、専用の管理ソフトで直接制御するハイパーバイザー型、アプリケーションの実行環境ごと軽量に切り分けるコンテナ型という方式があります。こうして作られた仮想的なコンピュータをVM(Virtual Machine:仮想マシン)と呼び、デスクトップ環境そのものを仮想化して遠隔から利用する仕組みをVDI(Virtual Desktop Infrastructure)と呼びます。
そのほか、Webブラウザを通じて利用するWebシステム、対等な立場のコンピュータ同士が直接データをやり取りするピアツーピア、複数のコンピュータをまとめて1台のように扱うクラスタ、処理の大部分をサーバ側に任せて手元の端末は最小限の機能しか持たないシンクライアント、ネットワークに直接つながるファイル共有専用の記憶装置であるNAS(Network Attached Storage)、複数のディスクを組み合わせて信頼性や速度を高めるRAID、システムを動かしたまま別のサーバへ移し替えるマイグレーション(動作させたまま移行するライブマイグレーションなど)も代表的な用語です。
システムの利用形態には、利用者からの要求に応じてその都度応答する対話型処理、時間の遅れなく即座に処理するリアルタイム処理、一定量のデータをまとめて一括処理するバッチ処理(夜間にまとめて集計処理を行うなど)があります。
システムの評価指標——性能・信頼性・経済性
システムの性能を測る指標として、要求を出してから応答が返ってくるまでの時間であるレスポンスタイム(応答時間)、標準的な条件で性能を測定するベンチマークがあります。
システムの信頼性を表す代表的な指標には、システムが正常に動いている時間の割合を示す稼働率、故障の発生しやすさを示す故障率、故障してから次に故障するまでの平均動作時間を示すMTBF(平均故障間動作時間)、故障してから修理が完了するまでの平均時間を示すMTTR(平均修復時間)があります。稼働率はMTBF÷(MTBF+MTTR)で求められ、直列システムの稼働率は各稼働率の掛け算、並列システムの稼働率は「両方壊れる確率」を1から引いて求めます(並列>単体>直列の順に高くなる)。たとえば自動販売機が1年間のうちほとんど故障せず動いていれば稼働率は高く、逆に故障が多くて修理にも時間がかかれば稼働率は下がります。稼働率を向上させるための対策を検討する活用例もよく出題されます。
信頼性を高めるための設計の考え方もいくつかあります。故障が起きても安全な状態に移行するように設計するフェールセーフ(電車の信号が故障したときは必ず「止まれ」を示すようにする設計など)、一部が故障してもシステム全体は動作し続けられるようにするフォールトトレラント、人間が誤った操作をしてもシステムに影響が出ないようにするフールプルーフ(洗濯機のフタが開いていると回転が始まらない設計など)という考え方があります。また、予備システムを普段は電源を切って待機させておくコールドスタンバイと、いつでもすぐに切り替えられるよう電源を入れたまま待機させておくホットスタンバイの違いも重要です。デュアルシステムやデュプレックスシステムも、こうした信頼性設計の代表例です。
システムの経済性については、システムを導入する際にかかる初期コストと、導入後の運用にかかり続ける運用コストがあり、この両方を合計した総所有コストをTCO(Total Cost of Ownership)と呼びます。導入時の値段の安さだけでなく、長く使い続けたときのトータルコスト(TCO)で比較検討することが、システム選定では重要になります。

3. ソフトウェア
コンピュータのハードウェアを実際に動かし、私たちが便利に使えるようにしているのがソフトウェアです。
オペレーティングシステム(OS)
OS(Operating System)は、利用者やアプリケーションソフトウェアに対して、コンピュータが持つハードウェアやソフトウェアの資源を効率的に提供するための、制御機能・管理機能を持つ基盤ソフトウェアです。OSがなければ、アプリケーションはハードウェアを直接複雑に制御しなければならず、実用的ではありません。OSが間に入ってくれることで、私たちは複雑な仕組みを意識せずにアプリケーションを使えるのです。
OSの機能には、誰がどんな権限でコンピュータを使えるかを管理するユーザー管理(プロファイルやアカウントの管理)、データの保存・整理を担うファイル管理、キーボードやディスプレイとのやり取りを担う入出力管理、CPUやメモリをどう配分するかを担う資源管理などがあります。実際の活用例として、ユーザーIDの登録・抹消の管理、ユーザーごとのアクセス権の管理、実際のメモリ容量よりも大きな記憶領域があるかのように見せる仮想記憶の仕組みなどが挙げられます。
代表的なOSには、パソコン向けのWindowsやMac OS、Webブラウザを中心としたシンプルなChrome OS、サーバなどで広く使われるUNIXやその考え方を受け継ぐLinux、スマートフォン向けのiOS(iPhone)やAndroid(多くのAndroid端末)があります。異なるOS同士でファイルをやり取りする際には、文字コードの違いやファイル形式の互換性など、さまざまな問題が生じることがある点にも注意が必要です。
ファイルシステム
ファイルをきちんと整理して保存し、必要なときに取り出せるようにする仕組みがファイル管理です。ファイルは階層構造のフォルダ(ディレクトリ)で整理されており、一番上の階層をルートディレクトリ、現在自分がいる(作業中の)階層をカレントディレクトリと呼びます。ファイル名の末尾についている「.docx」や「.pdf」のような部分をファイル拡張子と呼び、ファイルの種類を判別する目印になります。ファイルの読み書きを繰り返すうちに、データが記録媒体の中でバラバラの場所に分散して保存されてしまう現象をフラグメンテーションと呼び、これが進むとアクセス速度が低下することがあります。業務では、ファイルをフォルダごとに整理するディレクトリ管理、複数人でファイルを共有する設定、閲覧・編集の権限を制限するアクセス権設定、目的のファイルまでの道筋をすべて書く絶対パスと現在地からの道筋だけを書く相対パスの指定など、基本的な操作が日常的に行われます。
万が一のファイル破損に備えて、データの複製を取っておくバックアップも欠かせません。バックアップの必要性、実際の取得方法、複数世代分を保存しておく世代管理の考え方に加え、長期保存を目的としてデータをまとめて保管するアーカイブという考え方も知っておきましょう。
オフィスツール
私たちが日常業務でよく使うソフトウェアパッケージの代表が、文書作成ソフト、表計算ソフト、プレゼンテーションソフト、Webブラウザです。文書作成ソフトでは、文書の作成のほか、表の作成、図表の埋め込み、クリップボードを使ったコピー&ペーストの活用などが基本操作です。表計算ソフトでは、セルを参照したり値を代入したりする操作、四則演算の指定方法、代表的な関数の利用、データの選択・追加・削除・挿入・並べ替え・検索、グラフの作成、大量のデータを集計・分析しやすい形にまとめるピボットテーブルの利用などが重要です。プレゼンテーションソフトでは、スライドの作成、フォントの選択、図形の作成、画像の取り込みが基本となります。Webブラウザでは、検索サイトを活用した情報収集はもちろん、AND・OR・NOTといった条件を組み合わせた情報検索(基礎理論で学んだ論理演算の考え方がここでも活きてきます)も重要な基本操作です。
オープンソースソフトウェア(OSS)
ソースコード(プログラムの設計図にあたる部分)が公開され、誰でも自由に使ったり改良したりできるソフトウェアをOSS(Open Source Software)と呼びます。OSSには、ソースコードが公開されていること、再配布を制限してはいけないこと、無保証(動作に問題があっても開発者が責任を負わない)であることといった特徴があります。OSSにはOSそのもの(Linuxなど)から、通信系ソフトウェア、オフィス系ソフトウェア、データベース管理システム、さまざまな応用ソフトウェアまで多岐にわたる種類があります。
OSSを利用する際には、それぞれのソフトウェアに定められた利用許諾条件であるライセンスに注意する必要があります。代表的なライセンスにGPL(GNU General Public License)があり、このライセンスの特徴的な考え方がコピーレフトです。コピーレフトとは、そのソフトウェアを改変・再配布する際にも、元のソフトウェアと同じ利用条件を引き継がなければならないという考え方です。「無料で公開されているレシピを使って作った料理も、同じように無料でレシピを公開しなければならない」というルールに例えると理解しやすいでしょう。
4. ハードウェア
最後に、私たちが実際に手に触れる機器そのものについて見ていきましょう。
コンピュータにはさまざまな種類があります。個人が使うPC、多くの利用者やシステムからの要求に応えるサーバ、大企業や官公庁で大量のデータを処理する汎用コンピュータ、そして持ち運んで使う携帯端末(スマートフォン、タブレット端末、時計型などのウェアラブル端末、そのほかのスマートデバイス)があります。それぞれ処理能力や用途、想定される利用者数が大きく異なり、目的に応じて適切な種類が選ばれています。
コンピュータを実際に操作するための入出力装置も多岐にわたります。文字を入力するキーボード、画面上の位置を指定するポインティングデバイス(マウス、指で直接触れるタッチパネル、ゲームなどで使うジョイスティック、手書き入力のためのペンタブレットほか)、紙の資料を読み取るイメージスキャナー、商品のバーコードを読み取るバーコードリーダー、映像を取り込むWebカメラなどが入力装置の代表です。
出力装置としては、映像を表示するディスプレイ(薄型で広く普及している液晶ディスプレイ、鮮やかな発色が特徴の有機ELディスプレイ、目の前に装着して映像を映すヘッドマウントディスプレイほか)、大画面に映像を映し出すプロジェクター、紙に印刷するプリンター、立体的な物体を作り出す3Dプリンターなどがあります。私たちが日常的に使っているスマートフォンやパソコンも、こうした入出力装置の集合体として成り立っているのです。
本番での解き方
- ✓フェール○○系の用語は「故障が起きた後どうするか/起きる前に防ぐか」で分類してから選ぶ
- ✓稼働率の計算は数値を式に当てはめる前に、直列か並列かを図で確認する
- ✓IaaS/PaaS/SaaSは「アプリまで提供=SaaS、実行環境まで=PaaS、インフラのみ=IaaS」と管理範囲で判定
- ✓OSの役割は「アプリとハードウェアの間を取り持つ」の一言に集約できる。個別機能は資源管理・ファイル管理・入出力管理に分類して覚える
- ✓センサー・アクチュエーターの用語は「何を感知するか(入力側)」「何を動かすか(出力側)」で対にして覚えると混同しにくい