C 进程创建和控制-同步
我在这个问题上有个问题 您将实现一个代码破解系统。系统将部署四个进程 p1、p2、p3和p4尝试猜测加密代码的密码。 对于加密,我们认为公式是:c= p xor k,其中C 进程创建和控制-同步,c,C,我在这个问题上有个问题 您将实现一个代码破解系统。系统将部署四个进程 p1、p2、p3和p4尝试猜测加密代码的密码。 对于加密,我们认为公式是:c= p xor k,其中 C = encrypted code P = plain text K = key 对于解密,公式是:p=cxor K。因此,您的程序将尝试使用 这个公式。异或运算符是^。 给定加密代码C和纯代码P,您的程序应该部署三个进程 尝试查找用于加密普通代码的密钥。这三个过程将在审查中 过程P1的控制。 所有进程将其结果发送到进程P
C = encrypted code
P = plain text
K = key
对于解密,公式是:p=cxor K。因此,您的程序将尝试使用
这个公式。异或运算符是^。
给定加密代码C和纯代码P,您的程序应该部署三个进程
尝试查找用于加密普通代码的密钥。这三个过程将在审查中
过程P1的控制。
所有进程将其结果发送到进程P1,进程P1将终止三个进程
处理并显示加密密钥和解密文本(三者中的任何一个)
进程找到密钥。
为了简单起见,我们将把原始数字P存储在一个名为
而加密的代码存储在一个名为cipher.txt的文件中。只考虑
数字存储在这些文件中,其范围在0到100000000之间。
所以我们有P和C你的程序应该找到关键K。
数字介于0和1000000之间
我的问题是我可以使用多少信号量?每一个的价值是多少??
如果这是问题的精确减少,我不需要帮助我编写代码,只需要输入信号量的数量: 三个辅助进程中的任何一个完成其工作后,主进程 解雇所有3名工人
然后,您应该只需要1个信号量,主机将等待该信号量,并且每个工作进程将在完成时发出信号,第一个信号量将解除主机的阻塞,以便它可以终止工作进程。事实上,你只需要一个互斥体,而不是一个完整的信号量。当你真正试图理解信号量是如何工作的时候,为什么你要在我们身上扔下大量无关的作业呢?我很确定我可以在没有信号量的情况下做到这一点,但我想这不是任务;好的,当3个进程中的一个找到密钥时为true,父进程将其杀死。但是如果我不使用信号量,为什么我需要三个进程呢?你需要三个进程,这样这三个工作进程就可以独立运行;信号量是用于告知P1作业何时完成的机制,因此它可以终止工人。我想Mats是说他可以在没有信号灯的情况下完成通信。只使用没有信号灯的管道是正确的吗?当其中一个进程找到K时,告诉父进程并通过管道发送值?好的,当三个进程中的一个找到密钥时,为真,父进程将其杀死。但如果我不使用信号量,为什么我需要三个进程呢?