📅  最后修改于: 2020-12-14 09:35:13             🧑  作者: Mango
从门的角度来看,最适合和最适合的数值经常被问到一个标记。让我们来看看下面给出的那个。
25 K,50 K,100 K,75 K
确定最能满足此要求的算法。
在问题中,内存中有五个分区。 3个分区内部有进程,两个分区是孔。
我们的任务是检查可以最佳满足要求的算法。
让我们看一下首次拟合算法如何解决这个问题。
该算法扫描列表,直到获得第一个孔,该孔应足够大以满足25 K的请求。它获得第二个分区中的可用空间,因此它将75 K中的25 K分配给该进程,其余50 K作为孔产生。
通过为该进程分配大小为50 K的第三个分区,可以满足50 K的要求。没有任何自由空间作为自由空间产生。
使用175 K大小的第五个分区可以满足100 K的要求。在175 K中,将分配100 K,其余的75 K将作为孔。
由于我们有75 K的可用分区,因此我们可以为仅需要75 K空间的进程分配那么多空间。
使用首次拟合算法,我们以最佳方式满足了整个请求,并且没有剩余无用的空间。
让我们看看,最佳拟合算法是如何解决此问题的。
要使用最佳拟合方法分配25 K空间,需要扫描整个列表,然后我们发现75 K分区是空闲的,并且是所有分区中最小的,这可以满足该过程的需要。
因此,在这75 K的空闲分区中,有25 K被分配给该过程,剩下的5o K作为孔被产生。
为了满足此需求,我们将再次扫描整个列表,然后找到与需求完全匹配的50 K空间可用。因此,它将分配给该过程。
100 K的需求足够接近175 K的空间。该算法将扫描整个列表,然后从第5个空闲分区中分配175 K中的100K。
75 K需求将从第6个自由分区中获取75 K的空间,但是算法将在做出此决定的过程中扫描整个列表。
通过遵循这两种算法,我们已经注意到,在这种情况下,两种算法的性能均与大多数现有技术相似。
两者都可以满足过程的需要,但是,最佳拟合算法会一次又一次地扫描列表,这会花费很多时间。
因此,如果您问我哪种算法以最佳方式执行,那么肯定会是First Fit算法。
因此,这种情况下的答案是A。