这是this课本(第77页)中的练习:
练习48(外部存储器堆栈和队列)。设计I / O模型中每个操作需要O(1 / B)I / O的堆栈数据结构 来自第2.2节。将两个块保留在内部存储器中就足够了。 在只有一个块的天真实现中会发生什么 记忆?调整您的数据结构以实现FIFO,再次使用两个 内部缓冲存储器块。使用四个缓冲区实现deques 块。
我不想要代码。任何人都可以解释我需要什么,以及如何在O(1 / B)中进行操作?
答案 0 :(得分:0)
正如本书所述,引用第27页第2.2节:
外部记忆:< ...>有一些特殊的I / O操作可以在慢速和快速存储器之间传输B个连续字。对于 例如,外部存储器可以是硬盘,M则是 主存储器大小和B将是块大小,这是一个很好的折衷方案 低延迟和高带宽之间。在当前技术上,M = 1 GByte和B = 1 MByte是实际值。然后就是一个I / O步骤 大约10ms,这是1GHz机器的107个时钟周期。和另外一个 设置参数M和B,我们可以建模较小的访问 硬件缓存和主内存之间的时差。
因此,在O(1 / B)中执行操作很可能意味着,换句话说,对每个B堆栈/队列操作使用恒定数量的这些I / O操作。