Parallel Processing Detection and Program Return Value Detection

Hey, for the purpose of a research project I need to know if a specific type of parallel processing is being utilized by any user-run programs. Is there a way to detect whether a program either returns a value to another program at the end of execution, or just utilizes any form of parallel processing? This is without having access to the source code of the program. Help please.

All programs return a value to another program.

You can't tell what algorithm a program uses just looking at it, no.

If you ran it you could maybe see if it created threads or child processes.

is it possible to tell what created the thread or child process? or follow the child/thread to find the program it is linked to?

Try ps -ejT, that should print a process tree. The information ps uses to create this may be available under /proc/. For more detail than that I'd need to know what your system is.

You can do that too! If you're on Linux, strace prints all system calls the program makes as it happens, including the various clone_* ones that Linux uses to create threads or processes. (you'd want to run it with -f so it follows any children it creates in the meantime too.) I think Solaris has dtrace. Other systems I'm not sure.

How to get information on threads would be a lot more system-specific than information on processes.

1 Like

thank you. the purpose of the project is a new type of software security. it's to prevent people from hacking commercial programs, so it even extends to Linux and Mac, not just Windows. they way I designed it, it's a modification to the compiler used to create the software, this is done for efficiency purposes (code once and apply to all vs. code into all). and the program splits between two methods based on whether the user is running any programs to trace random number generators (long story behind that), so I needed to know if I can detect the parallel processing. I'm not aware of that many ways to trace random number generators, but I think I covered most. can anyone who knows any ways list all the possible methods they know, so I can make sure I don't miss any that are coverable