我正在尝试编写一个小型操作系统,我有100个进程需要自动生成唯一的进程ID。它们必须以循环方式顺序生成。 这有什么算法吗?有帮助吗?谢谢。
答案 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 */
}