【发布时间】:2011-09-06 12:55:37
【问题描述】:
我正在尝试编写一个小型操作系统,我有 100 个进程需要自动生成唯一的进程 ID。它们必须以循环方式顺序生成。 有什么算法可以解决这个问题吗?有什么帮助吗?谢谢。
【问题讨论】:
-
我认为普遍接受的序列号算法是在你记得生成的最后一个数字上加 1.... :)
-
如果你想让数字环绕每个 N,
id = ++id % N是典型的方法。 -
谢谢,如果你不介意,你能解释一下环绕吗?
-
@Jon:我认为表达式
id = ++id % N中没有序列点。我更喜欢id = (id + 1) % N。 -
真正的“问题”是您是否需要停止进程并启动新进程。在这种情况下,仅仅环绕是不够的。您需要一种方法来不生成已在使用的进程 ID。
标签: c process operating-system