The aforementioned behavior prediction systems could be easily added to an OS that incorporated behavior analysis and modeling at the system level, keeping track of all user interaction with the system and individual programs, constantly recording statistics and actions to build a profile of typical user behavior patterns. The behavior patterns are not a set series of steps, rather a large set of behavior sets and small patterns that are constantly analyzed against the current user behavior. And to what end? By building a 'memory' of how the user interacts with the system it is possible to incorporate into the system a number of immediately relevant functions to improve how the user interacts with the computer, and how the computer reacts to the user.
Using predictive patterns it would be possible to implement an intelligent version of the system Startup folder; rather than open a number of random programs at the beginning of a session depending upon which programs have added themselves to the startup sequence, a predictive system could determine at any point during a user session that a certain program or system resource is probably necessary in the imminent future, and begin preloading the resource in response.
Predictive modeling of future user actions can also help prevent the user, or unauthorized users, from harming the system. By tracking user interactions with the system and comparing them with a known set of behavior patterns the system can attempt to determine when an unauthorized user is trying to use the computer, as this person's use patterns will more often than not vary from the normal user or users. This is not a new concept in system security, but when implemented on the system level can provide a much better profile of user behavior, and can monitor computer use as part of the system kernel. In addition to preventing unauthorized use the predictive system could monitor when authorized users begin to venture beyond their normal behavior patterns, and provide sufficient system warnings to the user alerting them to potentially dangerous commands or actions.
Once a predictive system has begun to learn the typical behavior patterns of a user it can aid the user in highlighting or ignoring different programs and system messages depending upon prior observed patterns, and the current behaviors of the user. Take, for example, a user who watches DVDs on their desktop computer. While watching a DVD the user receives a not too critical message from a program running in the background, which pops up in front of the movie. The user, quite annoyed, quickly closes the notice and returns to the movie. The predictive system would record this reaction as part of the normal analysis of user behavior, and would begin to block non-critical messages from that background program while the user has DVD software open on the desktop. Many such links between programs and events can be thought of in just a few minutes, and many more would begin to emerge for various users as the predictive system analysis their typical behavior. Any system of this type would need to be flexible, constantly updating and altering it's rules and settings as it builds and rebuilds the map of user behavior.
These ideas are only intended to further the exploration of what new and current Operating Systems could evolve into when we think about giving the system the chance to help the user. As we know from any existing OS, one method is not the answer for everyone. While some people would benefit from and enjoy the experience of a highly interactive and predictive system, others would be insulted by the slightest appearance of the system trying to analyze their behavior. As with any system, a predictive operating system needs variable levels of analysis and interaction. These ideas are not written in stone, and the actual mechanisms of implementation are purposefully not discussed, as that can often lead to abandonment of exploration in favor of technical detail. But in light of the number of OS's under development, both commercially and independently, this is a prime time to discuss how future versions of any OS could become more aware of the user, and begin to aid the user as well as the application.
About the Author:
A long time programmer and computer user, Patrick Dwyer is a Graduate Student at the Interactive Telecommunications Program at New York University. Besides exploring the possibilities of future Operating Systems, Patrick works with system level electronics, robotics, and software design.
- "Part I of the Editorial"
- "Part II of the Editorial"



