Even though modern Operating Systems don’t limit multiple users from connecting to the machine and launching multiple processes, the user interaction model in a traditional desktop environment can be viewed as a single user, sitting in front of one or two desktop monitors, interacts with applications using input devices (such as keyboard and mouse). This isn’t a big issue because, as a human, we can only give our full attention to a limited number of tasks anyway. We’re not good at multitasking as you know. But this might not true anymore in the future.
The pictures show 6 by 3 tiled display wall (8196 x 2304 resolution) which is currently being actively used in classes, meetings, workshops at EVL. I believe this is what we will see in various collaborative work environments in near future. This collaborative environment can be characterized as multiple users, standing or sitting in front of a large display wall, interacting multiple applications simultaneously with various interaction mechanisms such as keyboard, mouse, touch, gyromouse, etc.
Fair-sharing in a traditional OS scheduler
Let’s turn our attention to a traditional system scheduler in modern Operating Systems. The Fair sharing principle usually won’t fail us. A system tries to distribute the CPU cycles among active tasks in the system as fair as possible (in terms of who gets how much CPU cycles) not knowing what you’re doing and what you want. This is to focus on maximizing job completion throughput in a non-clairvoyant scheduler (a scheduler doesn’t rely on various resource requirements of different processes) and fairness (no starvation).
And this is why a youtube video you opened to watch, while you wait for the system to finish compiling/building your project, had suddenly been crawling! Your system basically tried to ensure the compiling process (which you were just waiting to finish) and the video decoding process of your web-browser (which you were focusing at the moment) share fair amount of CPU time. You were interacting only one application at a time (starting compiling/building followed by playing youtube video) thereby your attention moved from one to the other, but the system was seeing just two active tasks. Obviously, the system is not aware of your intention and this is the limitation of general-purpose Operating System schedulers.
What is fair resource sharing in a collaborative display wall environments then ?
Now let’s get back to our display wall discussion. What is going to happen when multiple users interact with multiple streaming applications simultaneously and the system is overloaded with many of these tasks. It’s obvious that the system resources will be distributed fairly (in system’s point of view), thereby all application instances will be sharing the same amounts of the system resources (assuming that they need the same type of resources, say network bandwidth). This is where my thesis research had begun. Can’t the scheduler be smarter and do better in multi-user collaborative large-scale display wall environments? The fairness has to be defined in presentation level in order to achieve better user-perceived performance. So the next post will discuss more about the fairness in presentation level.