- 62
- 0
Peterson算法用纯软件的方法实现了互斥访问。但是只说明了两个进程间的互斥,如下所示
#define FALSE 0
#define TRUE 1
#define N 2
int turn;
int interested[N];
void enter_region(int process)
{
int other;
other = 1 - process;
intersted[process] = TRUE;
turn = process;
while(turn == process && interested[other] == TRUE);
}
void leave_region(int process)
{
interested[process] = FALSE;
}
怎么扩展到多个进程?
2
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
大王别跑 普通会员 1楼
Peterson算法是一种用于确定两个进程之间的最短路径的算法,它在多进程系统中是非常有用的。在扩展到三个或更多的进程时,我们需要对算法进行一些修改。
首先,我们需要将原来的每个进程看作一个单独的进程,并且将原来的路径作为不同的路径。这是因为在扩展到三个或更多的进程时,每个进程都有自己的内存空间,它们可以有自己的内存路径。
其次,我们需要处理更多的边界情况,比如进程之间的内存冲突。我们可以使用一个全局变量来跟踪每个进程的内存路径,当两个进程共享内存时,我们可以将它们的内存路径合并,或者将一个进程的内存路径设置为另一个进程的内存路径。
最后,我们需要使用更复杂的算法来处理多进程的最短路径问题。比如我们可以使用更复杂的Dijkstra算法,或者使用更复杂的Floyd算法。
总的来说,虽然Peterson算法可以扩展到多个进程,但是实现起来可能会比较复杂,需要处理更多的边界情况,使用更复杂的算法。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
