求一个算法

craks 2004-10-20 02:08:52
有n个节点,保护一个服务,要求任何时刻必须有且仅有一个节点在运行着该服务,
解释:
有N个计算机,一个共享磁盘,他们要跑M个服务,但是每个服务只能跑在一个机器上,如果一个服务跑在一台服务器上时,该服务器就会在共享磁盘上做一个标记,表示服务在他上面已经运行了,如果一个服务在某一台机器上停止了,那么这N个服务器就会去抢着启动这个服务,问题就在这里了,注意各个服务器是相互独立的,所以本机的进程和其他机器是没有关系的,不要想用进程锁,互斥来做,而是通过一个好的数据结构(或说是数据描述),然后一个巧妙的算法来完成的,我现在已有一个了,想看看有没有高人能给一个更好的方案。

...全文
180 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
craks 2004-10-21
  • 打赏
  • 举报
回复
是啊,关键是你怎么做标记啊。

方案的好坏就是说效率问题,因为可能有很多太服务器在竞争。然后不能有死锁吧
a0002 2004-10-20
  • 打赏
  • 举报
回复
既然有共享的存储,可以做标记,就可以实现锁定的功能!
ZhangYv 2004-10-20
  • 打赏
  • 举报
回复
什么意思?方案好坏如何判定?轮流来?
??...
craks 2004-10-20
  • 打赏
  • 举报
回复
就说这个只是一个模拟程序,机器是不会down,实际情况是我们有处理的
gnodiew 2004-10-20
  • 打赏
  • 举报
回复
服务停止了别的机器怎么知道呢?也是通过共享磁盘做标记?如果机器down了,谁去记呢?

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧