Most systems spend the majority of their
time working in the background. If you look at the Task Manager
display, you'll see that there are more than 60 processes running on
any Windows 7 machine, most of them not even started by the user. To
see this for yourself, right-click the Taskbar and choose Start Task
Manager from the Context menu. Select the Processes tab and click Show
Processes from All Users. Figure 1
shows a typical example of what you'll see. Notice the number of
processes started by accounts other than the logged-in user, who is
John in this case.
The idea of background processes isn't new. Long
before Windows appeared on the scene, people were using background
tasks. Early systems didn't have the computing horsepower to support
many background tasks, but they did support some. In general,
background tasks have the following advantages:
Improved system efficiency: They use processing cycles that the user doesn't employ.
Increased application responsiveness: They perform such tasks as printing in the background while servicing user requests in the foreground.
Enhanced application functionality:
They provide the means for adding features that normally wouldn't work
well in a foreground scenario, such as long-term searches against large
databases.
Protocol support:
They create a conduit between applications or services that normally
can't communicate with each other due to differences in data format,
platform, structure, or processing requirements. In many cases, common
functionality, such as LAN support, is nothing more than protocols used
to create a conduit.
Specialized hardware interface:
They offer a way to use hardware that the operating system doesn't
support natively. For example, Windows 7 offers support for special
sensors. The Adaptive Brightness service monitors light sensors and
automatically changes the display brightness to match current light
conditions.
These uses of background processing can fit any
environment, including Windows. However, Windows uses background
processing in particular ways. You may find some of the following uses
in other operating systems as well (and Microsoft likely borrowed a
number of these ideas from older operating systems).
System monitoring:
Many forms of background processing do nothing more than monitor a
particular part of the operating system. When a particular event
occurs, the application does something, such as displaying a message or
updating the system time. In some cases, the system-monitoring
applications rely on a foreground application for configuration and
manual request requirements.
System-level functionality:
Developers often place system-level code in services or other
background applications. This code often runs under a different account
than the user account and feeds the resources the user-level
application requires in a safe manner.
General services:
The system uses background processing to support general services, such
as providing Bluetooth support or a Web server. The service monitors
the system for application requests and operates as necessary.
Security services:
As threats have increased, a special kind of software has developed
that's specifically devoted to security needs. Everything from virus
detection to firewalls runs as background processes that continually
monitor the system for threats. Modern operating systems also provide
data protection in the form of cryptographic services and whole-drive
encryption.
System diagnostics:
The complexity of modern operating systems makes it harder for
administrators to detect and fix problems that occur. Background
processes can monitor the system for problems and automatically fix
them in some cases, or provide diagnostic information to the
administrator in others. Some of these diagnostic services also take
the form of maintenance applications. For example, to keep the
operating system working at peak efficiency, the Disk Defragmenter
service defragments the hard drive.
Media support:
Windows provides a significant level of media support, most of which
requires some form of background processing to accomplish. For example,
streaming audio continues as long as the user desires it, even though
the application that supports the streaming operates in the background.