i would like to know the exact difference between Commit Size (visible in the Task Manager) and Virtual Size (visible in SysIntern
Virtual size is the size of the process's virtual address space.
When allocating memory, you can request an address range without actually committing memory behind it. Those address do not point to physical memory until a second allocation call is used to commit them.
Read more on VirtualAlloc. Linux has the mmap function that does the same thing.