Well, I cant answer your entire question off hand, but I can tell you that an Oracle Shadow Process is a user process in *nix. Oracle forks an existing user process when a new user connects to the database or a background process starts up. So I would say that to check the memory used by these shadow processes you should check the amount of memory used by user processes in your database.

Try this for a script to check the memory usage...

http://www.orafaq.net/archive/oracle.../07/132427.htm