• 全部
  • 问答

求一个算法

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

...全文
124 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
craks 2004-10-21
是啊,关键是你怎么做标记啊。

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

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2004-10-20 02:08
社区公告
暂无公告