-3

我在这个问题中有一个问题你要实现一个密码破解系统。系统将部署四个进程(p1、p2、p3 和 p4)来尝试猜测加密代码的密码。对于加密,我们认为公式为:C = P XOR K,其中

C = encrypted code
P = plain text
K = key

对于解密,公式为:P = C XOR K。因此,您的程序将尝试使用此公式找到 K。XOR 运算符是 ^。给定加密代码 C 和明码 P,您的程序应该部署三个进程来尝试找到用于加密明码的密钥。这三个进程将在进程 P1 的控制之下。一旦三个进程中的任何一个找到密钥,所有进程都会将它们的结果发送给进程 P1,并且进程 P1 将终止这三个进程并显示加密密钥和解密的文本。为简单起见,我们将考虑将原始数字 P 存储在名为 plain.txt 的文件中,并将加密代码存储在名为 cipher.txt 的文件中。考虑到只有数字存储在这些文件中,它们的范围在 0 到 100000000 之间。所以我们有 P 和 C,你的程序应该找到密钥 K。

我的问题是我可以使用多少个信号量?每一个的价值是什么?我不需要帮助我编写代码只是信号量的数量

4

1 回答 1

1

如果这是对问题的准确减少:

一旦 3 个工作进程中的任何一个完成其工作,主进程就会终止所有 3 个工作进程

那么你应该只需要 1 个信号量,master 将等待它,每个 worker 完成后都会发出信号,第一个信号量将解除 master 的阻塞,以便它可以终止 worker。实际上,您只需要一个互斥量,而不需要一个完整的信号量。

于 2013-01-01T13:03:17.753 回答