パスワードを忘れた? アカウント作成
10727749 journal
日記

shuichiの日記: そろそろ基本情報処理試験の追い込み時期なの、少し混乱させてみよう 8

日記 by shuichi

磁気ディスクの平均アクセス時間は、

平均シーク時間+平均回転待ち時間+データ転送時間

で計算できる。
ここまでは基本情報処理持ってる人なら常識だと思う。

だが、待って欲しい。
回転を待っている間、磁気ヘッドはなにもせず遊んでるのか?

max(平均シーク時間, 平均回転待ち時間)+データ転送時間

じゃないのか?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by miyuri (33181) on 2014年03月03日 17時20分 (#2555083) 日記

    読書きする位置を探すために読んでいる。

    • by ei (19798) on 2014年03月03日 19時13分 (#2555161) 日記
      概ねその通り。先ずシークして目的のシリンダへ辿り着き、次いで目的のトラックのヘッドで目的のセクタを順に探す。

      読書きする位置を探すために読んでいる。

      シークで、サーボトラックなり(シリンダ#が豆に書いてある)データトラックなりを使う場合は、「読んでいる」。他の方法でのシークでは、「遊んでる」が、セクタサーチはできなゐ。

      親コメント
  • 「そうテキストに書いてあったので…」
    だそうだ。

    こういうときに、皆さんのような答えを返せるのが真の知識だと思う。

  • ヘッドが移動している間に目的のセクタは通り過ぎているかもしれない、ヘッドは移動後に待てるけどセクタはヘッドを待つことはできない、だからヘッド移動後に平均約半周の回転待ちが発生すると。
    ・・・いや待てよ、IntelliPowerのような回転数可変技術を使えばいずれは「セクタが通り過ぎそうなときは速度を落とす」なんてことが可能になるのか?

  • by Anonymous Coward on 2014年03月03日 14時56分 (#2554936)

    いやいや、最近のドライブはコマンドを複数うけつけるらしい。
    ということは、連続したアクセスではシークとデータ転送は同時に行われるはずだ。

    max(max(平均シーク時間, 平均回転待ち時間),データ転送時間)

    わけわかんなくなった。

  • by Anonymous Coward on 2014年03月03日 16時58分 (#2555069)

    専門家ではありませんが、

    HDDのヘッドは特定の位置で、半径方向にしか動くことができません。
    目的とするトラック(ある同心円の一つ)へ半径方向の移動をしたあとは、
    その同心円上で目的のセクタが回って来ることを待つことしかできません。

    そして、半径方向からヘッドが到着するタイミングにあわせて、円周方向の
    速度を変えるということも行われません、回転速度は一定です。

    また、まだ回転方向でクラスタは来ないから、半径方向のシークの速度を
    遅くするといったこともないはずです。全速力でシークして運が良ければ
    すぐに目的のクラスタを読めますし、運が悪ければ一周待ちます。

    HDDにどのように分布しているデータを読むかで、ランダムアクセス時間とか
    シーケンシャルアクセス時間といった呼び方があります。

    試験問題での表現がどうか分かりませんが、直近にアクセスしたデータとは
    無関係の位置に格納されているデータが欲しいと思った場合、要求を出して
    から、データ得られるまでの待ち時間の期待値は
          平均シーク時間+平均回転待ち時間+データ転送時間
    となります。最大待ち時間ではありませんが、システムを設計する際、
    データを望んでから実際に得られるまでの時間の見積もりは重要です。

    並列してコマンドの実行ができれば、コントローラのオーバーヘッドが
    (多分、シーケンシャルアクセスの時には特に)小さくなると思われますが
    試験問題ではコントローラの処理時間は無視されるかと思います。

typodupeerror

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

読み込み中...