※2024/5/19更新
※ 本記事では、基本情報技術者試験の対策として私が勉強したことを備忘録的にまとめておきたいと思います。
少しでも参考になれば嬉しいです。
はじめに
さて今回は、基本情報技術者試験対策として、ハードディスクのアクセス時間についてまとめたいと思います。
ちなみにですが、
Part1はハードディスクの役割と基本構造について、
Part2はハードディスクの記憶容量の計算についてまとめました。
ハードディスクについて軽くまとめようと思っただけなのに気づいたら3部構成の意外と超大作になってしまった・・・
とまぁ余談はこれくらいにして・・・
2つともとても大切な知識なのでテスト前には必ず頭に入れておくようにしてください。
もちろんアクセス時間の計算問題も出題されます。アクセス時間の原理について理解を深め、実際に計算できるよう練習しておきましょう!
それではさっそくスタートです。
ちなみに私はこの参考書を使って勉強してました。
漫画形式で読みやすく、分かりやすい内容になっているため、無理なく学習を進められると思います。
過去問を解きまくり、不明点があれば参考書で知識を補う、このサイクルで試験対策するのが私のオススメです!
最新版はこちらです。
少し内容が異なる部分もあるかもしれませんが、大まかには変わらないはずですので、安心して下さい。
ハードディスクのシーク、サーチ、データ転送について
ハードディスクの「データアクセス時間」について理解するためには、「シーク(位置決め)」、「サーチ(回転待ち)」、「データ転送」という3つのプロセスをしっかりと理解してあげることが重要です。基本的には、データを読み込む際も、データを書き込む際も、この3つは必要になってきますので、これを機会にしっかり頭に入れておきましょう。
シーク(位置決め)とは
シーク(位置決め)は、アクセスアームが磁気ヘッドをプラッタ上の特定のトラックに移動させるプロセスを指します。
ちょっと分かりにくいですかね??
単純に、磁気ヘッドを特定のトラックの上に持ってくるまでのプロセスです。
すなわち、シーク(位置決め)に必要な時間は、ヘッドが現在位置から目的地まで移動するのに必要な時間です。シーク時間は、ハードディスクの機械的な性質(磁気ヘッドの移動速度やプラッタのサイズ)によって決まります。
アクセスアームと磁気ヘッドが分からない方は、ハードディスクの役割と基本構造の記事に詳しく書いていますので、そちらをチェックです!
トラックが分からない方は、ハードディスクの記憶容量の記事をチェックですね!
サーチ(回転待ち)とは
次はサーチ(回転待ち)ですね。
シーク(位置決め)によって、データが存在する特定のトラックにたどり着くことはできました。ただ、もちろんそれだけではデータにアクセスはできません。データにアクセスするためには、磁気ヘッドがデータのあるセクタ(厳密ではないですがいったんこのイメージで・・・)までたどり着かないといけません。
そうなったらもう分かりますよね??
そう、プラッタを回転させて、磁気ヘッドが特定のセクタに到達するまで待機しないといけません。このプロセスこそがサーチ(回転待ち)であり、それに要する時間が、サーチ(回転待ち)時間です。
そんなに難しくないですよね??
シークで特定のトラックを決めて、サーチで特定のセクタを決めるイメージです。(左右を決めた後に、上下を決めるようなイメージでしょうか・・・伝わります??・・・)
データ転送とは
さてさて、ここまでくればもう簡単です。あとは単純にデータを転送するだけです。
磁気ヘッドが目的地(データがあるセクタ)までたどり着いたら、いよいよデータの読み書きがスタートします。これが単純にデータ転送です。データをやり取りしているだけですね。
このときにかかる時間が、データ転送時間ですね。
ちなみにデータ転送時間は、ハードディスクの電子的な性質(インターフェースの速度やデータの密度)によって決まります。
- インターフェースの速度:
ハードディスクとコンピュータの間の通信速度です。インターフェースの速度が速いほど、データ転送時間は短くなります。
- データの密度:
プラッタ上の単位面積あたりのデータ量です。データの密度が高いほど、同じ量のデータを転送するのに必要な時間は短くなります。
さて、データアクセスまでのプロセスや、それにかかる時間まではイメージできましたね。
ではいよいよ、実際に時間を算出してみましょう。
練習問題スタートです!
データアクセス時間の算出例
さて、データアクセス時間を算出するためは、3つのステップにかかる時間が重要であると先述しました。
- シーク(位置決め)時間
- サーチ(回転待ち)時間
- データ転送時間
データアクセス時間とは、もちろんのこと、以下のように計算できます。
データアクセス時間 = シーク時間 + サーチ時間 + データ転送時間
何の違和感もありませんね??ただ単純に、必要な時間を足し合わせただけです。
さて、では例題を見ながら時間を算出してみましょう!
まず大切なこととして、データアクセス時間を算出する際、シーク時間とサーチ時間は必ず平均値を使うようにします。
今回、平均シーク時間はすでに与えられていますので、まずは平均サーチ時間を求めましょう。
サーチ(回転待ち)時間とは、プラッタを回転させて、磁気ヘッドが特定のセクタに到達するまでの時間でしたね。文字通り、回転を待っている時間です。
平均値を求めるために、極端な例を考えてみましょう。「最速」と「最遅」を考えればOKです。
まず「最速」パターンですが、これはシークが終わった瞬間、サーチも終わるパターンです。要するに、サーチが終わったら、たまたま目的のセクタの真上に磁気ヘッドがあり、プラッタが少しも動くことなく、ドンピシャでデータまでたどり着けたパターンです。お、たまたま真上だ、ラッキーって感じです。このときプラッタは、0 回転(ちょっとも動かない)です。
次に「最遅」パターンですが、これはプラッタが1 回転(1 周)してようやく目的のセクタの真上に磁気ヘッドがたどり着けたパターンです。プラッタが1 回転(1 周)してもデータが見つからないなんてありえませんよね??シークの時点でデータがあるトラックは判明しているわけですから、1 回転(1 周)している間に絶対に目的のデータへとたどり着けます。たまたま一番最後まで回りきらないと、データが見つからないパターンが最遅です。
さて、この時点で気が付きましたかね??
「最速」パターン = プラッタ0 回転
「最遅」パターン = プラッタ1 回転
なのであれば、「平均」パターンは、プラッタ1/2 回転です。これも単純ですね??
平均 = (最速 + 最遅) / 2 = 1/2 回転
そう、なので平均サーチ時間を求めるためには、プラッタが1/2 回転するまでにかかる時間を算出してあげればよいわけです。問題の条件から算出してみましょう。回転速度が6000 回転/分、すなわち、1 分間に6000 回転しますので・・・
1 秒 = 1000 ミリ秒
1 分 = 60 秒 = 60000 ミリ秒
今回の条件では
60000 ミリ秒で6000 回転なので・・・
1 回転にかかる時間 = 60000 / 6000 = 10 ミリ秒
1/2 回転にかかる時間は1 回転にかかる時間の半分なので・・・
1/2 回転にかかる時間 = 10 / 2 = 5 ミリ秒
とまぁこんな感じで、今回の条件では、1/2 回転にかかる時間、すなわち、平均サーチ時間 = 5 ミリ秒だと求められました。
さてさて、余談が長すぎましたが、これで平均シーク時間と平均サーチ時間が求められました。
あとはデータ転送時間だけです。
条件より、1トラックあたりの記憶容量が20000 バイトです。また、プラッタが1 回転するのにかかる時間が、平均サーチ時間の計算から、10 ミリ秒だと分かりました。
これらの条件を使うことで、1 ミリ秒あたりに転送できるデータ容量が分かります。
1トラックが20000 バイト
1 回転が10 ミリ秒
なので、
10 ミリ秒で20000 バイトのデータを転送できる
したがって、
20000 バイト / 10 ミリ秒 = 2000 バイト/ミリ秒
とまぁこんな感じで、1 ミリ秒で2000 バイトのデータを転送できることが分かりました。
あとは今回の問題に合わせるだけです。問題では、「ハードディスクから10000 バイトのデータを読み出す」と書いてあります。したがって以下のように計算ができるわけです。
データ転送時間 = 10000 / 2000 = 5 ミリ秒
※比率か次元で考えてくださいね。
はい、これでデータ転送時間 = 5 ミリ秒だと分かりました。
注意してほしいのは、データへのアクセスとデータの転送は全く別ということです。言葉の意味合い的には一緒に思えてしまうかもしれませんが、データへのアクセスには、先述の通りデータの転送だけでなく、シークやサーチのステップも含んでいますので、注意しましょう!
あとは全部の時間を合計するだけです。
平均シーク時間 = 10 ミリ秒
平均サーチ時間 = 5 ミリ秒
データ転送時間 = 5 ミリ秒
データアクセス時間 = 10 + 5 + 5 = 20 ミリ秒
こんな感じで、データアクセス時間が20 ミリ秒だと分かるわけです。
いかがでしたでしょうか??計算問題は何度も繰り返し練習して必ずできるようになっておいてくださいね。
※おまけ
別でPC初心者向けにストレージについて解説した記事もあります。
基本情報対策としての記事ではありませんが、一般的に知っておくべき知識は盛りだくさんですので、是非Coffee Break的に読んでもらえると嬉しいです!
最後に
さて今回は、基本情報技術者試験対策として、ハードディスクのデータアクセス時間についてまとめました。
データアクセス時間の計算も、記憶容量の計算と同様によく問われますので、できるようにしておきましょう。
基本的には、それぞれの構成や動作原理が理解できていれば、そこから計算のやり方も理解できるはずです。まずは仕組みをきっちりと理解しておいてください。
★シーク(位置決め)
磁気ヘッドを特定のトラックの上に持ってくるまでのプロセス
★サーチ(回転待ち)
プラッタを回転させて、磁気ヘッドが特定のセクタに到達するまで待機するプロセス
★データ転送
磁気ヘッドが目的地までたどり着いたら、データの読み書きがスタート
★データアクセス時間計算時の注意点
データアクセス時間 = シーク時間 + サーチ時間 + データ転送時間
シーク時間とサーチ時間は平均値を用いること(平均値はプラッタ1/2回転分)
前回まとめた記事も読んでもらえると嬉しいです!
基本情報以外の勉強記事も是非!
オススメ参考書 & Udemy講座
過去問編
兎にも角にも過去問を解かないことには始まりません。解いて解いて解きまくりましょう!
特に以下の参考書は問題数が多いのでオススメです。
この1冊だけ買って、とりあえず1周すれば合格がかなり近くなると思います!
科目A+B両方合わせて4セット収録されてるとかヤバすぎます・・・
知識網羅編
以下は知識網羅編として、講義系の参考書、動画をピックアップしています。
1からしっかりと学習し、知識を身に着けたい方はとてもオススメです。
過去問を解きまくり、不明点を参考書で補う。これが最高の勉強サイクルです~
私が勉強する際に使用していたオススメ参考書は以下です。
上記シリーズの最新版は以下です。(内容はそこまで変わらないはずですが・・・)
私がぜひオススメしたい、Udemyの講座もいくつかピックアップしておきます。
誰かに解説してもらった方が分かりやすい場合もありますからね~
画像でもボタンでも、どちらを押下しても講座へ飛べるようにしてありますので是非!
コメント