I cannot understand dataspace very well. I have some questions  about it.
Each time I want to alloc a piece of memory, I must create a dataspace first?

I look at the example code of memory allocation.
I found after create adataspace, we call  L4Re::Env::env()->mem_alloc()->alloc() to alloca memory via dataspace.
Can I call this function multiple times on the same dataspace instance without free? If so, what is its effect?

In addtion we use attach to map the dataspace. Can I attach the same dataspace multiple times without free?
In this case, does it mean that the same physical memory is mapped into different virtual address?