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...
Oracle shadow or server processes: Shadow processes work directly with the database instance to carry out the requests from the user processes. Shadow processes may be dedicated to a single user process or part of a multi-threaded server (MTS) configuration. The shadow processes are named oracleSID, where SID is the value of ORACLE_SID. For example, any shadow process connected to the database instance "DEV" would be named "oracleDEV."
See more on MetaLink Note 153655.1 (script to check memory usage included).
Metalink is Oracle Support Website, the access of which you can have only if you have Oracle software license. If you have purchased Oracle Software, you can set up your user account in metalink website to get all information about the Bugs, Fixes, Forums and Notes(like the ones you see above).