2017-03-07 2 views
1

平均シーク時間が10ミリ秒で、回転時間が20ミリ秒で、トラックが32 KBのディスクから64 KBのプログラムをロードするのにかかる時間は、 2 KBのページサイズ? ページはディスクの周りにランダムに広がっており、シリンダの数は非常に多いので、同じシリンダ上に2ページがある可能性は無視できます。 ディスクからのプログラムのロード

私のソリューション.. 各トラック容量が32KBであるため、64 KBプログラムは2つのトラックに編成されます。

トラック全体をロードするには20msec必要です。 2KBをロードするには、1.25ミリ秒必要です。

I/O時間が=時間+ avg.rotationの待ち時間+転送時間を求める

   10msec+10msec+1.25msec=21.25msec 

      Since 64KB program is organized into 2 tracks then I/O time will be 2(21.25)=42.5 msec. 

それは正しいですか?もしそうなら、時間=平均回転待ち時間を求めるのはなぜですか?

+0

ページがすべて連続して割り当てられていると仮定しているように、「ページはランダムにディスクの周りに広がっています...」という部分が欠けていると思います。 – twalberg

+0

私は何を変更しますか? – Kleona

+0

ページが実際にランダムに散らばっている場合は、2KBページからなる64KBのプログラムに32回の別々のページ読み込みが必要になります。それぞれにはシーク遅延と回転遅延が発生する必要があります。それはそこからかなり簡単になるはずです... – twalberg

答えて

0

言及したように:シリンダーの数は非常に多く、同じシリンダー上の2ページの可能性は無視できます。は、単に各ページを読み込むことを意味し、常に別のcylinderに移動する必要があります。したがって、seek timeは、適切なcylinderを超えてアームを移動するのにかかる時間であるため、各ページにseek timeを追加する必要があります。定義上

Number of pages = 64KB/2KB = 32 

rotation time我々は適切なcylinderに到達したら、それは、適切なsectorに取得するのにかかる時間です。撮影した

だから、時間が、私は別の解決策を見つけ= 32 * 10 * 20 = 6400ミリ秒

+0

32 * 10 * 20が間違っています。 Kleonaの答えのように、32 *(10 + 20/2 + 1.25)でなければなりません。 – twalberg

+0

@twalbergここで回転時間を正確に考えているのは何ですか?親切に説明してください。 –

+0

質問に「どの回転時間が20ミリ秒か」と記載されています。それがプラッターの回転を完全にする時間です。統計は、アクセス要求の均一なランダム分布を想定すると、平均回転待ち時間は約半分になることを示しています(シリンダあたりのセクタ数が奇数であっても奇数であっても、 。だから私の前のコメントの20/2 - 平均回転待ち時間は10ミリ秒です。これに10msのシーク時間と1.25msの実際の転送時間を加えたものが、1回の読み取りごとに繰り返されます。 – twalberg

0

だろう。 シーク・プラス回転待ち時間は20ミリ秒です。 2 KBページの場合、転送時間は1.25 msec、転送時間は21.25 msecです( )。 これらのページのうち32ページを読み込むと、 は680ミリ秒かかることになります。 4KBページの場合、転送時間は2.5ミリ秒に2倍になるため、 ページあたりの合計時間は22.50ミリ秒です。これらのページのうち16個を読み込むには360 ミリ秒かかる。 今私は混乱しています。

関連する問題