Information Technology Reference
In-Depth Information
Thread management. Can we create multiple activities or threads that
share memory or other resources within a process? Can we stop and start
threads? How do we synchronize their use of shared data structures?
Memory management. Can a process ask for more (or less) memory
space?
Can it share the same physical memory region with other pro-
cesses?
File systems and storage. How does a process store the user's data
persistently so that it can survive machine crashes and disk failures? How
does the user name and organize their data?
Networking and distributed systems. How do processes communi-
cate with processes on other computers? How do processes on different
computers coordinate their actions despite machine crashes and network
problems?
Graphics and window management.
How does a process control
pixels on its portion of the screen?
How does a process make use of
graphics accelerators?
Authentication and security. What permissions does a user or a pro-
gram have, and how are these permissions kept up to date? On what basis
do we know the user (or program) is who they say they are?
In this chapter, we focus on just the first two of these topics: process man-
agement and input/output. We will cover thread management, memory man-
agement, and le systems in detail in later chapters in this topic. We expect to
add chapters on networks, distributed systems and security in later releases of
this topic. Typically, the graphics systems is covered in a specialized course on
that topic, and so we do not plan to include it here.
Remarkably, we can describe a functional interface for process management
and input/output with just a dozen system calls, and the rest of the system
call interface with another dozen. Even more remarkably, these calls are nearly
unchanged from the original UNIX design. Despite being first designed and
implemented in 1973, most of these calls are still in wide use in systems today!
Second, we need to answer \where" | for any bit of functionality the op-
erating system provides to user programs, we have several options for where it
lives, illustrated in Figure 3.1:
We can put the functionality in a user-level program. In both Windows
and UNIX, for example, there is a user program for managing a user's
login and another for managing a user's processes.
We can put the functionality in a user-level library linked in with each
application. In Windows and MacOS, user interface widgets are part of
user-level libraries, included in those applications that need them.
 
Search WWH ::




Custom Search