ブロック化因数(ブロッキングファクター)とセクタ、レコードについて。
下記の参考書内の問題で分からないことがありました。以下引用:
------------------------------------
問題
1トラックが12セクタ、1セクタが1200バイトのディスク装置の場合、
論理レコードが900バイトの固定長であるフィルを格納するとき、
ディスクの使用効率が最大となるブロック化因数は1、2、3、4のうちどれか。
ただし、ブロックは複数のセクタにまたがれるが、トラックにはまたがれない。
また、セクタに複数のブロックを記録できない。
解答
ブロック化因数で場合分け。
1のとき。1セクタに1レコード記録でき、トラックに12レコード記録できる。
2のとき。2セクタに1ブロック(2レコード)。1トラックに12レコード。
3のとき。3セクタに1ブロック(3レコード)。1トラックに12レコード。
4のとき。3セクタに1ブロック(4レコード)。1トラックに16レコード。
よって、4のとき効率が一番いい。
-------------------------------------
引用終わり。
1のときは分かりますが、2,3のときの前半がなぜそうなるのか分かりません。
また、4のとき、突然規則が変化してますがなぜでしょうか。
以上、2点の疑問について質問させていただきます。
参考書:2010 基本情報技術者 合格への総まとめ、iTEC
No.2ベストアンサー
- 回答日時:
セクタ単位かつブロック単位で物理的に読み書きしますから、
ブロックがセクタの途中から始まることはできないということもポイントです。
ですから、ブロック化因数によって無駄が発生するということです。
それを踏まえて、逆に考えてみればわかりやすいのではないでしょうか?
1セクタ(1200バイト)にレコード(900バイト)を1個入れると残り300バイトの無駄。
2セクタ(2400バイト)にレコード(900バイト)を2個入れると残り600バイトの無駄。
3セクタ(3600バイト)にレコード(900バイト)を3個入れると残り900バイトの無駄。
3セクタ(3600バイト)にレコード(900バイト)を4個入れると割り切れるので無駄は無い。
無駄が少ないほど使用効率が良いとなるわけですから、4が答えとなります。
No.1
- 回答日時:
また随分とクラシックな問題ですね。
物理的な入出力は最小単位がセクタになります。
1セクタ1200バイトなら、900バイトだけ読む
ことはできません。
物理的な入出力に対し、論理的な入出力単位が
ブロックです。ブロック化因数が2なら1個の
ブロック長は900×2で1800で、これを収める
には1セクタでは足りず、2セクタ必要ですね。
つまり、1ブロックあたり2セクタになるので、
1トラック(12セクタ)では6ブロック入る計算
です。1ブロックは2レコードなので、6×2で
12レコードです。次に、ブロック化因数が3なら
1ブロックは900×3で2700になり、これを収める
ためには2セクタでは足りず、3セクタ必要に
なります。1トラックでは4ブロックということ
です。1ブロックは3レコードなので4×3で、
これも12レコードになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ubuntuで デイスク/deb/loopと...
-
ブロック化因数(ブロッキング...
-
パソコンでインターネット接続...
-
URLの中の「?=○○」の意味は?
-
cloneのスタック管理
-
コンパクションとガーベジコレ...
-
gccでスタックサイズを変更する...
-
テンキーで入力時、指の位置
-
CiscoスイッチのVLANの設定につ...
-
VLAN分割の利点について
-
プログラムの規模を表す単位「k...
-
線形符号の生成行列、検査行列...
-
マス目上の移動のアルゴリズム
-
pthreadのスタックサイズ設定取...
-
キューとスタックの問題です、...
-
英字新聞の和訳,たびたびのお...
-
ワープロ検定の勉強法について。
-
トランザクション管理について
-
if(($j+$i)%7 == 0){ の0の意味...
-
スイッチの通信量計測
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ubuntuで デイスク/deb/loopと...
-
ブロック化因数(ブロッキング...
-
ブロック長について
-
磁気ディスクの計算問題です
-
磁気ディスク装置についての計算
-
磁気ディスクのアクセス時間の...
-
情報処理の問題
-
512MB・1Gとは・・・
-
磁気ディスクのアクセス時間に...
-
MS-DOSのイニシャルプログラム...
-
MBRとGPT
-
MOの容量って、どうなってい...
-
プログラムの規模を表す単位「k...
-
パソコンでインターネット接続...
-
ライン数とステップ数の違いに...
-
hdmiはパラレル?シリアル?
-
VB.netでDLLを読み込んで実行す...
-
時には命令してくれる人も必要...
-
最大スタックサイズを大きくす...
-
昔したタイピングソフトが思い...
おすすめ情報