C中的循环id生成器

时间:2011-09-06 12:55:38

标签: c process operating-system

我正在尝试编写一个小型操作系统,我有100个进程需要自动生成唯一的进程ID。它们必须以循环方式顺序生成。 这有什么算法吗?有帮助吗?谢谢。

1 个答案:

答案 0 :(得分:1)

只需创建一个包含100个元素的数组(初始化为0)并管理

int array[100] = {0};

/* kill process N */
void killprocess(int N) {
    array[N] = 0;
}

/* add process N */
void addprocess(int N) {
    array[N] = 1;
}

/* find free process starting with N */
int findfreeprocess(int N) {
    int k, ndx;
    for (k = 0; k < 100; k++) {
        ndx = (N + k) % 100;
        if (array[ndx] == 0) return ndx;
    }
    return -1; /* indicate no free process */
}