Two instances of an editor program, for example, may be simultaneously
operating on different files. Therefore, two processes with different state information are executing the
same program. It??™s important for the operating system to maintain the distinction between the two processes.
Later still, the concept of a process was broken into two concepts: the process and the ???thread.??? The process
is the set of resources assembled for the execution of the program (files, memory allocation, etc.), and the thread
is a line of execution within the program.
Before programmers had access to threads, tasks that required multiple lines of execution would be written
as separate processes that communicated with one another somehow (shared memory, messages, shared file,
etc.). However, as we will show, setting up a new process is a fairly high-overhead task for an operating system,
and the communication of messages between processes can itself require a significant programming effort and
entail additional operating system overhead. These problems, which were encountered frequently, motivated the
CHAP. 6] OPERATING SYSTEMS 101
distinction between threads of execution within a process, and the process itself as a set of resources available
to all threads.
Pages:
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276