最近のトラックバック

2008年5月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

ch08: ★★quadratic hash

quadratic hash と書いてある部分 (p372, p380) と、quadratic rehash と書いてある部分 (p372, p374) とある。なんか違うのか?

ちなみに quadratic hash の訳語は「二次ハッシュ」。Knuth に合わせてある。

ch08: ★★cylinder group and filesystem block

364ページ、3パラ

Each cylinder group must fit into a single filesystem block.

それぞれのシリンダグループは、1つのファイルシステムブロックに収まらなければならない。

シリンダグループの方がファイルシステムブロックよりも当然でかい。シリンダグループマップの間違いだろうか。

ch08: ★★minimum block size

363ページ、最後

To allow support for filesystem fragments as small as a single 512-byte disk sector, the minimum size of a filesystem block is 4096 bytes.

1つの 512バイトディスクセクタをファイルシステムのフラグメントとするために、最小のファイルシステムブロック長は 4096バイトになる。

どうして?

ch08: ☆☆reduced

357ページ、4行目

With soft updates, the only inconsistency that can arise in the filesystem (barring software bugs and media failures) is that some unreferenced blocks may not appear in the bitmaps and some inodes may have to have overly high link counts reduced.

ソフトアップデートを運用中のファイルシステムで生じる可能性のある不整合は、ビットマップ中に参照されないブロックが現れることと、inode のリンク数が必要以上に増加しまうことだけである (ソフトウェアのバグやメディア障害を除く)。

最後の reduced は、一体いかなる意味か? 文脈的に減りすぎてしまうということはあり得ない。

ch08: ☆rename semantics

328ページ、2パラの最後

Interestingly, rename is the one POSIX file operation that should have an atomic update to multiple user-visible metadata structures to provide ideal semantics. POSIX does not require said semantics and most implementations, including FreeBSD, cannot provide it.

最初の文と2番目の分は矛盾してるような気がするのだが、どういう話の流れなんだろう? 何事もなければ要求されるのだが、わざわざ要求しないことが仕様に書かれているということなのだろうか。

ここの話題は、rename システムコールの途中で障害が発生すると名前が2つ残ってしまう可能性があるということ。

ch08: ☆conservatively

327ページ、2パラ

If link counts are being kept conservatively, rename involves at least four disk updates in sequence: one to increment the inode's link count, one to add the new directory entry, one to remove the old directory entry, and one to decrement the link count.

常にリンク数の下限を確保するためには、名前の変更は連続する4回のディスクの更新を必要する。すなわち、inode のリンク数を増加させるために1回、新しいディレクトリエントリを追加するために1回、古いディレクトリエントリを削除するために1回、リンク数を減少させるために1回である。

どこからも参照されないファイルを作らないためには、リンク数を減らしすぎてはならない。なので conservatively の訳は、これで多分あってると思うのだが、辞書を見ると「内輪に見積もる」というような意味もある。多めに見積もるのと少なめに見積もるのの、どちらが conservative かって、状況によるよね。

前のページの2段落目にも同じような表現がある。

ch08: ☆ pointers and descriptions

324ページ、"Soft Updates" の冒頭

In filesystems, metadata (e.g., directories, inodes, and free block maps) gives structure to raw storage capacity. Metadata provides pointers and descriptions for linking multiple disk sectors into files and identifying those files.
ファイルシステムにおけるメタデータ (metadata) (たとえば、ディレクトリ、inode、未使用ブロックマップ) は、未加工の記憶領域に構造を与えるためのものである。メタデータは、複数のディスクセクタからファイルを構成し、それらのファイルを識別するための手がかりを与え意味を定義する。

この pointers and descriptions の意味がどうも釈然としない。

ch08: ★☆☆file lock

320ページ、下から5行目

The wait channel for process 1 shows that process 2 is sleeping, waiting for a lock to clear, and identifies the pending lock structure as the pending lock (range 9 to 12) hanging off the lf_block field of the second active lock (range 7 to 12).

プロセス1の wait channel を見てプロセス2が休眠しているのがわかるのはおかしくないか。実は、前の版では "process 2 is sleeping" の部分は "process too is sleeping" となっている。つまり『プロセス1もまた休眠している』と解釈すれば筋が通るので、今はそう訳してある。でも英語的にちょっと不自然な気もするのだが、こういう too の使い方をすることはあるのか。

Powered by TypePad