11.5.2
同步与异步的判断<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
以一个左循环的阵列为例,如图
11.27
所示,图中的
d0
、
d1
、
d2…
为阵列中的数据块(
注意,这只是阵列中数据块的编号,并不代表数据的先后顺序
)。下面我们就来看一看通过对哪些位置的数据顺序进行判断可以确定数据块的异同步:
图11.27 同步与异步的判断
1) d5
前的数据块如果是
d4
,为异步;如果是
d2
,为同步。
d5
后的数据如果是
d6
,为异步;如果是
d3
,为同步。
2) d7
前的数据如果是
d6
,为异步;如果是
d4
,为同步。
3) d8
后的数据如果是
d9
,为异步;如果是
d6
,为同步。
4) d6
后的数据块如果是
d7
,为异步;如果是
d9
,为同步。
可以看到,能够用于判断异同步的位置很多,但必须根据实际情况灵活运用,因为有时候某些位置的数据是无法确定前后顺序的。总体来讲,在一个整循环内:
u 一是看第一个条带写满后,下一个数据块的位置。
u 再就是看最后一个条带的第一个数据块之前的数据块所在的位置。
u 中间的条带则以校验块为界,查看左右数据块间的前后顺序关系,如果校验块左侧的数据顺序先于校验块右侧的数据,则为异步,同否则为同步。
摘自《数据重现--文件系统原理精解与数据恢复最佳实践》欢迎转载,敬请注明
转载于:https://blog.51cto.com/sjhfml/133196