Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

磁気ディスク

下の2問の解き方を教えていただけませんか?? いろいろ調べてみたのですが、さっぱりわからずに困っています。。。よろしくお願いします。 (1) 次の仕様の磁気ディスクにおいて、必要とされるシリンダ数を求めよ。 ここでブロック間隔(IBG: Inter Block Gap)はブロックとブロックの間に存在し、ブロックの情報を記録する領域である。 またブロック化因数とは一つのブロックを構成するレコードの数である。 1シリンダ当たりのトラック数 19 トラック 1トラック当たりのバイト数 19,000 バイト 1レコードのバイト数 250 バイト ブロック間隔 150 バイト レコード件数 50,000 件 ブロック化因数 6 (2) 次の仕様の磁気ディスクの1ブロックアクセス時間を求めよ。ここでrpm(revolution per second)は一分当たりの回転数である。 平均位置決め時間 20 ミリ秒 1トラック当たりのバイト数 20,000 バイト ディスク回転速度 6,000 rpm 1レコードのバイト数 250 バイト ブロック間隔 150 バイト ブロック化因数 6

質問者が選んだベストアンサー

  • ベストアンサー
noname#227796
noname#227796
回答No.5

(1) 1ブロックの長さ   = レコード長×ブロック化因数+IBG   = 250 x 6 + 150   = 1,650 バイト 1トラックのブロック数   = 1トラックの長さ÷1ブロックの長さ   = 19,000÷1,650=11.52   = 11ブロック(端数切り捨て) 1トラックのレコード数   = ブロック数×ブロック化因数   = 11 x 6   = 66レコード 1シリンダに記録できるレコード数   =1トラックのレコード数×1シリンダのトラック数   = 66 x 19   = 1254レコード 必要なシリンダ数   = レコード件数÷1シリンダのレコード数   = 50,000÷1254 = 39.87   = 40シリンダ (2) 平均回転待ち時間=1回転時間÷2   =(時間(1分)÷ディスク回転速度)÷2   =1min(60,000ms)÷6,000rpm÷2   =5ms 1トラックあたりのデータ転送時間   =時間(1分)÷ディスク回転速度   =10ms 1ブロックの長さ   = レコード長×ブロック化因数+IBG   = 250 x 6 + 150   = 1,650 バイト 1トラックのブロック数   = 1トラックの長さ÷1ブロックの長さ   = 20,000÷1,650   = 12ブロック(端数切り捨て) 1ブロックあたりの転送速度   =1トラックの転送速度÷1トラックのブロック数   =10ms÷12   =0.83ms ※細かく計算しないで、複数の式をまとめると ※きっちり割り切れて 0.825 になります。 ※小数点以下何桁まで有効か、によりけりですが。 1ブロックアクセス時間   =平均位置決め時間+平均回転待ち時間+1ブロック転送時間   = 20ms + 5ms + 0.83ms   = 25.83ms -------- 以上が私の計算結果です。 わかりやすく式を列挙して計算しましたが、普通に計算する場合は、#1さんのやり方でかまわないです。(最終的にはその方向で計算できれば良いかと) (2)の方は、#3で指摘されているように、5ms足りません。 それと、#2で指摘されているように、図にすると理解しやすくなります。 ただ、(1)の↓この部分でケアレスミスしているかと。 >50000件格納するのに必要なトラック数 = 50000 ÷ 11 = 4545.4545・・・なので4546トラック これは、ブロック数で割るのではなく、レコード数が50,000件なので1トラックあたりのレコード数で割るのが正しいのではないかと思うのですが。 50000÷66=757.5757575....=758トラック で、以下、 758÷19 = 39.89 = 40シリンダ と。 私の方が間違いでしょうか?自信なし。 久しぶりなので、計算式等思い出せないものもあり(というかブロック化因数が思い出せなかった)、本+ネットを頼ったものもあって、自身がないのですが。(^_^; ここら辺の計算は、習うより慣れろ、なので、基本をベースに数をこなして覚えた方が良いでしょう。 #明日は有給のため夜更かし・・・

hiroko-0120-
質問者

お礼

とっても丁寧な回答、本当にありがとうございました。 とても分かりやすくて助かりました。 本やネットで調べていただいたみたいで。。。 感謝感謝です。 基本がまったくできていないので、 数こなしてがんばりたいと思います。 素敵なお休みをすごしてくださいねぇ♪

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • yutopapa
  • ベストアンサー率47% (139/295)
回答No.6

#1です。 しまった、やっぱりケアレスミスしてました。(^^; (1) 50000件格納するのに必要なトラック数 = 50000 ÷ 11 ÷ 6 = 757.57・・・なので758トラック 50000件格納するのに必要なシリンダ数 = 758 ÷ 19 = 39.894・・・なので40シリンダ (2) 平均回転待ち時間を足し忘れました。 平均回転待ち時間 = ディスク1回転の所要時間 ÷ 2 = 5ミリ秒 1ブロックアクセス時間 = 20ミリ秒 + 0.825ミリ秒 + 5ミリ秒 = 25.825ミリ秒 です。 フォローして下さった皆様、ありがとうございました。

hiroko-0120-
質問者

お礼

わざわざ訂正までしていただき 本当にありがとうございました!!

すると、全ての回答が全文表示されます。
  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.4

No.1さんとNo.3さんをあわせてあわせ技で正解です。

hiroko-0120-
質問者

お礼

回答ありがとうございます! 基礎がまだまだなのでがんばります。

すると、全ての回答が全文表示されます。
  • azicyan
  • ベストアンサー率21% (368/1747)
回答No.3

(2)はあと平均回転待ち時間を足す必要があるかも。 1回転の時間の半分です。5ミリ秒。

hiroko-0120-
質問者

お礼

補足までしていただいて! とっても助かりました!!!

すると、全ての回答が全文表示されます。
  • azicyan
  • ベストアンサー率21% (368/1747)
回答No.2

数字だけを追うとわけがわからなくなってくるので 図を書いて考えるとわかりやすいですよ。

hiroko-0120-
質問者

お礼

回答ありがとうございます!! 図ですかぁ。 確かにテキストを見るとそれらしい図が書いてありました。 なかなか自分で考えるのは難しいですねぇ。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • yutopapa
  • ベストアンサー率47% (139/295)
回答No.1

基本情報処理の典型的な問題ですね。 その手の資格本を見れば解き方は載ってる筈です。 (1) 1ブロックのバイト数=250byte×6+150byte=1650byte 1トラック当たりの格納可能ブロック数=19000byte ÷ 1650byte = 11.5151・・・なので11ブロック 50000件格納するのに必要なトラック数 = 50000 ÷ 11 = 4545.4545・・・なので4546トラック 50000件格納するのに必要なシリンダ数 = 4646 ÷ 19 = 244.5・・・なので245シリンダ (2) 1ブロックのバイト数=250byte×6+150byte=1650byte ディスク1秒間の回転数=6000 ÷ 60 = 100回転 ディスク1回転の所要時間 = 1秒 ÷ 100 = 10ミリ秒 1ブロックリードする所要時間 = 1650 ÷ 20000 × 10 = 0.825ミリ秒 1ブロックアクセス時間 = 20ミリ秒 + 0.825ミリ秒 = 20.825ミリ秒 です。 (いや~久しぶりにこういう計算やりました。20年ぶり。間違ってたら恥ずかしいな。(^^;)

hiroko-0120-
質問者

お礼

回答ありがとうございます。 とっても助かりましたぁ。 情報処理の典型的な問題なんですね!! 勉強不足です。。。 本当にありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A