Is this true that one work process can only process one user request at a time? Does this mean a login user has a dedicated work process servicing him. Or many login users interleave a work process's service? How do threads in a process used in SAP?
Yes, one process can only process one user request at a time.
But, the user request is a dialog step (one sapgui interaction).
After the dialolog step is processed the user context is rolled out, and the dispatcher process can give the work process to an other dialog step from an other user.
It is therefore possible to have a well tuned and responsive system with much less dialog work processes than concurrent users.
Only when a user consumes too much memory and allocates memory from the heap, then the process becomes "private" and dedicated for this user context.
This is a situation that should be avoided as much as possible...
The question you have asked has two aspects:
1. For Dialog WP :
One user can uses one DIA WP at a time but the process is not dedicated to him. As a transaction consist of several steps : when one transaction step completed the WP is assigned to another user.This process is called as Dialog workprocess multiplexing.
Its done by using mechanisim Roll out and Roll In.
But at certain time when the process goes into PRIV mode ie it crosses rdisp/abap_heaplimit_dia. Then the WP becomes dedicated to that user.
2. In case of background WP , these are dedicated to the job assigned to it through out its execution.
Let me know if you are not clear
Yes it's true. But the synchronization is such that when the user1 is not using that dialog process, it is being freed and some user makes use of it, i mean another task is taken up by that work process. This switching is done very efficiently and if the load is not too much, one can't even make it out.
But at any distinct moment which can drill down to nano seconds also at times it takes up only one task.
Regards and do reward with good points.