Tool/software: Linux
Hi,
I am a little confuse about user space and kernel space. In virtual address system, each process thinks it has all the memory (addressable memory like on 32bits system => 4gb) available to use. This whole memory space e.g. 4gb is divided into kernel space and user space. The upper 1gb space is mapped with kernel while the remaining 3gb is given to process user space. I have 2 questions:
a) Why it is necessary to map kernel space to each process?? can't all processes share some common kernel space???
b) If the program grows, thinking that it has 3gb to use, how kernel will manage it if it is running 100 processes on 2gb physical RAM??? It means the whole virtual space will be around 3gb*100???
