我正在尝试制作一个非常专业的循环I/O调度器。我认为我可以采取众所周知的cfq调度器和改装它,以满足我的需要。事实证明,我不太懂C代码,无法理解linux cfq中所有4000行代码的含义。像其他编程语言一样,我得到了普通的函数调用和结构,但有些东西我不理解。
是否有更简单版本的cfq或其他循环调度程序可供我用于学习目的?(我找到的都是相同的cfq代码)
发布于 2014-04-17 17:44:48
您可以通过将元素存储在数组中并将该数组用作循环数组来实现循环调度程序。例如,循环调度20个文件描述符,并假设非阻塞IO:
int index = 0;
int file_descriptors[20];
// Open all the descriptors here
while (!end_condition) {
int working_fd = file_descriptors[index++ % 20];
// Work with the file descriptor here
}当然,最好用一个常量或(在malloc数组的情况下)用于malloc的变量替换幻数。
https://stackoverflow.com/questions/23126159
复制相似问题