我正在努力寻找以下问题的解决方案:
假设我在内核中有一个“服务器”进程,它集中了注册它的所有“客户端”进程的报告。当所有“客户端”进程完成启动并准备就绪时,此“服务器”进程将报告系统中的其他CPU。
我的示例中的“客户端”将是我系统中的任何进程,希望签署为“服务器”需要等待他完成启动的进程。
我的问题是,整个过程大多数是在构建时间内完成的,因为否则我很容易遇到种族案例,例如以下示例:
假设我的'服务器'进程完成了他的初始启动并准备就绪,他是第一个在系统中启动的进程。在这种情况下,如果另一个CPU将查询他 - 他将回复所有'客户'已准备就绪(即使没有人列出)。因此,当其他“客户”启动并在其上列出时 - 将为时已晚。
我想构建一个通用解决方案,所以一旦我完成环境构建 - “服务器”流程将“知道”在系统启动期间应该注册多少“客户端”。
这里有什么想法吗?
谢谢大家
答案 0 :(得分:1)
这是我所理解的:
这种要求的一种常见方式是使用持久性数据库,客户端可以注册(添加一行)或取消注册(删除自己的行)。然后,该服务仅在引导时或每次请求时读取数据库。
你无法决定:
根据您的实际要求,您可以想象更聪明的解决方案,但上面应该可以帮助您开始