📅  最后修改于: 2023-12-03 15:12:42.488000             🧑  作者: Mango
这是GATE-CS-2015(Set 1)的问题16,旨在考察程序员在操作系统中的知识。
假设您有一个应用程序P,该应用程序需要消耗$120$秒的CPU时间以完成其工作。您有两个处理器P1和P2,它们每秒钟可以使用$60%$和$80%$的CPU时间。使用一个shell脚本编写一个程序来启动P,让P在最短时间内完成其工作。
由于P1和P2的性能不同,我们需要考虑优先启动哪一个处理器以获得最佳性能。为了找到最佳解决方案,我们需要比较使用P1和P2的时间。
首先,计算P在单个处理器上执行所需的时间:
120 / 1 = 120
然后,计算P在P1和P2上的执行时间:
120 / 0.6 = 200
120 / 0.8 = 150
从上面的计算中,我们可以得出结论:使用P2处理器可以让P在最短时间内完成其工作。
因此,我们必须优先启动P2处理器,然后再启动P1处理器。可以使用以下shell脚本来实现此目的:
#!/bin/bash
# Start P on P2 processor
./P & pid1=$!
# Sleep for the amount of time it takes P to complete on P2 (in seconds)
sleep 150
# Start P on P1 processor
./P & pid2=$!
# Wait for both processes to finish
wait $pid1
wait $pid2
在这个脚本中,我们首先启动P2处理器,并在后台运行应用程序P。然后我们睡眠$150$秒,这是程序在P2处理器上执行的时间,然后再启动P1处理器,并在后台运行应用程序P。最后,我们等待两个进程完成执行。
本文介绍了如何使用shell脚本来编写一个程序来启动P,让P在最短时间内完成其工作。我们考虑使用P1和P2处理器的性能比较,并选择使用P2处理器以获得最佳性能。如果您有任何问题或疑问,请在评论中留言。