think about going to a restaurant. do you want your own waiter, or do you want to share one with other customers? If you can afford it, dedicated is better. However, at some point there are too many customers and you cannot each have your own waiter.
In a Dedicated Server environment, each user process is assigned to its own server process. In a Shared Server process, all users send requests to a small number of dispatchers (a database only needs 1 dispatcher, but you can configure more using the init.ora parameter dispatchers.) The dispatcher puts all requests into a single request queue called COMMON. All server processes read from this queue, process the requests, and put the response in the dispatcher's response queue (each dispatcher has its own response queue.)
-Mark