1) As much as it requests, up to the limit set by ulimit. Commands such as pmap and ps can show how much a process has allocated at the current time.
2) It can mean that it used all virtual memory, or that it hit the process limit, or that it's a 32-bit process and hit the 4gb address space limit. Solaris Application Memory Management provides some more details.