If you want to utilize the full 4GB, go for 64-bit or enable PAE. I'd recommend the first option for future expansion.
You'll also want to first make sure your chipset can support the amount of memory you're installing as well.
how can I know the real use of my programs in memory. I use activity monitor but if I add up all the individual contributions I never get 4GB RAM
It is a good thing that you never get 4GB RAM. It would be very bad for your system if all your applications used all your real memory. There must be some free memory at all times for the system to run smoothly and virtual memory paging to work properly. I would be worried if your free memory is under 50 MB.
Apple has a support document explaining memory usage shown in Activity Monitor.
I like iStat Menus for giving me a quick snapshot of my memory/CPU/Network usage.
if there are some services that are wasting memory and which I do not need like google update, etc, and how can I deactivate them
You can see what processes are using a lot of memory with Activity Monitor and quit processes there.
Unless your Page outs value under the System Memory tab is very high compared to the Page ins value, or you get excessive disk thrashing, I wouldn't worry about it. I think the best way to limit memory usage, given the set of applications you are using, is simply to keep the number of tabs/windows you have open in Firefox to a minimum. 4 GB should be more than enough to run that set of applications in Mac OS X.
other advices for freeing memory
Frankly, in my opinion there's not much you can do besides limiting the number of applications/startup items you launch.
The most important thing is ensuring you have enough disk space for Virtual Memory paging. The X Lab has an excellent article explaining memory usage and how to determine if you have sufficient memory.
Best Answer
The short answer is that Leopard is a mix of 32-bit and 64-bit.
Because the kernel in 10.5 is still 32-bit, the greater amount of addressable memory is achieved with some trickery. The exact details evade me at the moment, but I think that under Leopard you can only address 4 GB of physical memory — I believe the 64-bit memory space spills over to virtual memory on disk, just like when 32-bit processes exceed the amount of installed RAM.
Edit: I was incorrect about the virtual memory aspect. The 32-bit kernel can address more than 4 GB of memory, but adding lots of physical memory uses up a good chunk (~ 1/3) of the kernel's 32-bit memory space, which (at the limit) can decimate kernel performance. Obviously, if your application uses more memory than is available (either in 32-bit or 64-bit mode), the OS must map virtual memory.
Among other things, the 64-bit kernel in Snow Leopard provides breathing room in the kernel itself by vastly increasing the address space it can use, including for describing physical memory. Most people aren't running into that limit yet, but they will start to as installed RAM increases in the near future.