2.3. 动态列表结构
该操作系统需要系统中每个处理器的一组信息。在红帽企业版 Linux 5 中是将这组信息分配到内存的固定大小阵列中。通过索引到这个阵列可获得每个独立处理器中的信息。这个方法迅速、简便,且对包含少数处理器的系统来说相对直接。
但随着系统中处理器数量的增长,这个方法会产生相当大的费用。因为内存中固定大小的阵列是一个单一共享资源,它可能成为一个瓶颈,因为更多的处理器会尝试同时访问它。
为解决这个问题,红帽企业版 Linux 6 使用动态列表结构提供处理器信息。这样可以动态分配用于处理器信息的阵列:如果系统中只有八个处理器,则会在该列表中生成八个条目。如果有 2048 个处理器,则会生成 2048 个条目。
使用动态列表结构可进行更细微的锁定。例如:如果要同时为处理器 6、72、183、657、931 和 1546 进行更新,则可以同时进行更新。显然在高性能系统中类似这种情况出现的频率比小系统要高得多。