我正在模拟一个用例,其中客户端向服务器发送特定服务时间的请求,然后服务器为每个客户端请求创建一个新VM,然后在服务时间结束时停止VM并销毁VM。为了模拟这种行为,我创建了一个客户端请求生成器,它以一定的到达速率将请求作为类型的元组发送给服务器
[客户端ID,arrival_time_of_request,服务时间,VM类型]
在我看来,服务器应该并行工作这3个模块,如上图所示thread 1
,thread 2
和thread 3
池管理器:它负责解析客户端请求和调用 各种其他模块如图中所示为单独的线程
启动VM:,用于启动VM并在每个VM启动时为每个VM调用服务时间管理器。
停止虚拟机,以便在服务时间结束时停止虚拟机销毁
服务时间管理器:它将减少每秒所有客户端的服务时间。我在sleep(1)
中使用for loop for all clients
,这会减少每个客户的时间,并在特定客户的服务时间结束时调用stop VM
。
现在的问题是,我不知道如何在不同的进程中以并行线程函数运行这3个模块,因为它包含休眠时间。对于每个请求,当VM启动时,应该向服务时间管理器发送请求,因此当service time manager
休眠时,整个程序关闭。