Added utility class `TimedWaitPID` which monkey-patches os.waitpid() with a functor that has the same signature, but calls os.wait4() instead. This allows the process's user and system CPU time to be obtained from the OS when using APIs (such as subprocess) which use os.waitpid() internally. The process CPU time is stored within the functor and can be read back later by calling TimedWaitPID.get_time_for_pid(). JIRA: https://gem5.atlassian.net/browse/GEM5-548 Change-Id: I9ebe9ca1241a4f28c90ad31f672f32ac52786664 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/32652 Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Hoa Nguyen <hoanguyen@ucdavis.edu>