2018-11-10 20:16:58 UTC
I am working with gem5 SE and pthreads. I would like to verify if I have
the proper understanding of the pthreads concepts in gem5. I hope you can
help and discuss the points below.
There is a presentation "Supporting native pthreads in syscall emulation
mode" on gem5 website, but I cannot find the paper anywhere.
Here are my questions/constatations:
1. pthread support is fully emulated inside of the gem5 SE, meaning
there is no forwarding of the pthread calls to the host operating system?
2. I understand that the gem5 uses two dimensional time, where for one
tick several events are created, to simulate concurrent execution of
threads. However, I do not understand the scheduling management of threads.
Who is creating the events? Is there a pre-emption of threads allocated at
the same hardware unit, and if yes, who is doing the scheduling management?
3. Is there any virtual memory isolation between threads, or because we
have only one process running several threads, the memory is directly
mapped to the physical (simulated) memory of gem5?