流程创建和控制 - 同步

时间:2013-01-01 12:49:14

标签: c

我在这个问题上遇到了问题 您将实现代码破解系统。该系统将部署四个进程 (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.考虑K是积极的 0到1000000之间的数字。

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

1 个答案:

答案 0 :(得分:1)

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

  

3个工作进程中的任何一个完成其工作后,即主进程   终止所有3名工人

然后你应该只需要1个信号量,主人将等待,并且每个工人将在完成时发出信号,第一个信号将解锁主人,以便终止工人。实际上,您只需要一个互斥锁,而不是一个完整的信号量。