Sie sind auf Seite 1von 30

Chapter 3: Processes

Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
3.1 Process Concept

● An operating system executes a variety of programs:


● Batch file (.bat, .cmd, .btm ) system – jobs
● Time-shared systems – user programs or tasks
● Textbook uses the terms job and process almost interchangeably

Process – a program in execution; process execution must progress in


sequential fashion
● Multiple parts
● The program code, also called text section
● Current activity including program counter, processor registers
● Stack containing temporary data
4 Function parameters, return addresses, local variables
● Data section containing global variables
● Heap containing memory dynamically allocated during run time

Operating System Concepts – 9th Edition 3.2 Silberschatz, Galvin and Gagne ©2013
Process Concept (Cont.)
● Program is passive entity stored on disk (executable file),
process is active
● Program becomes process when executable file loaded into
memory
● Execution of program started via GUI mouse clicks, command
line entry of its name, etc
● One program can be several processes
● Consider multiple users executing the same program

Operating System Concepts – 9th Edition 3.3 Silberschatz, Galvin and Gagne ©2013
Process in Memory

Figure 3.1 Process in memory.

Operating System Concepts – 9th Edition 3.4 Silberschatz, Galvin and Gagne ©2013
3.1.2 Process State

● As a process executes, it changes state


1. new: The process is being created
2. running: Instructions are being executed
3. waiting: The process is waiting for some event to occur
4. ready: The process is waiting to be assigned to a
processor
5. terminated: The process has finished execution

Operating System Concepts – 9th Edition 3.5 Silberschatz, Galvin and Gagne ©2013
Diagram of Process State

Figure 3.2 Diagram of process state.

Operating System Concepts – 9th Edition 3.6 Silberschatz, Galvin and Gagne ©2013
3.1.3 Process Control Block (PCB)
Each process is represented in the OS by a process control block
(PCB)
Information associated with each process(also called task control
block)
PCB contains many pieces of information associated with a specific
process, including these:
1. Process state – running, waiting, etc.
2. Program counter – location of instruction to next execute
3. CPU registers – contents of all process-centric registers
4. CPU scheduling information- priorities, scheduling queue pointers
5. Memory-management information – memory allocated to the process
6. Accounting information – CPU used, clock time elapsed since start,
time limits
7. I/O status information – I/O devices allocated to process, list of open
files
Operating System Concepts – 9th Edition 3.7 Silberschatz, Galvin and Gagne ©2013
3.1.3 Process Control Block (PCB)

Figure 3.3 Process control block (PCB).

Operating System Concepts – 9th Edition 3.8 Silberschatz, Galvin and Gagne ©2013
CPU Switch From Process to Process

Figure 3.4 Diagram showing CPU switch from process to process.

Operating System Concepts – 9th Edition 3.9 Silberschatz, Galvin and Gagne ©2013
3.2 Process Scheduling

● Maximize CPU use, quickly switch processes onto CPU


for time sharing
● Process scheduler selects among available processes for
next execution on CPU
● Maintains scheduling queues of processes
● Job queue – set of all processes in the system
● Ready queue – set of all processes residing in main
memory, ready and waiting to execute
● Device queues – set of processes waiting for an I/O
device

Operating System Concepts – 9th Edition 3.10 Silberschatz, Galvin and Gagne ©2013
Representation of Process Scheduling

● Queueing diagram represents queues, resources, flows

System
call fork() is
used to create
processes.

Figure 3.6 Queueing-diagram representation of process scheduling.

Operating System Concepts – 9th Edition 3.11 Silberschatz, Galvin and Gagne ©2013
Representation of Process Scheduling
In Figure 3.6. Each rectangular box represents a queue.
Two types of queues are present: the ready queue and a set of device queues.
The circles represent the resources that serve the queues, and the arrows
indicate the flow of processes in the system.

A new process is initially put in the ready queue. It waits there until it is
selected for execution, or dispatched. Once the process is allocated the CPU
and is executing, one of several events could occur:

• The process could issue an I/O request and then be placed in an I/O queue.
• The process could create a new child process and wait for the child’s
termination.
• The process could be removed forcibly from the CPU, as a result of an
interrupt, and be put back in the ready queue.

In the first two cases, the process eventually switches from the waiting state to
the ready state and is then put back in the ready queue.

Operating System Concepts – 9th Edition 3.12 Silberschatz, Galvin and Gagne ©2013
3.2.2 Schedulers
I. Short-term scheduler (or CPU scheduler) – selects which process should be
executed next and allocates CPU
● Sometimes the only scheduler in a system
● Short-term scheduler is invoked frequently (milliseconds) ⇒ (must be fast)

II. Long-term scheduler (or job scheduler) – selects which processes should be brought
into the ready queue
● Long-term scheduler is invoked infrequently (seconds, minutes) ⇒ (may be slow)
● The long-term scheduler controls the degree of multiprogramming

● Processes can be described as either:


● I/O-bound process – spends more time doing I/O than computations, many short
CPU bursts
● CPU-bound process – spends more time doing computations; few very long CPU
bursts

Operating System Concepts – 9th Edition 3.13 Silberschatz, Galvin and Gagne ©2013
Addition of Medium Term Scheduling
● Medium-term scheduler can be added if degree of multiple
programming needs to decrease
● Remove process from memory, store on disk, bring back
in from disk to continue execution: swapping

Operating System Concepts – 9th Edition 3.14 Silberschatz, Galvin and Gagne ©2013
3.2.3 Context Switch

● When CPU switches to another process, the system must


save the state of the old process and load the saved state for
the new process via a context switch
● Context of a process represented in the PCB
● Context-switch time is overhead; the system does no useful
work while switching
● The more complex the OS and the PCB the longer the
context switch
● Context Switch Time dependent on hardware support
● Some hardware provides multiple sets of registers per
CPU multiple contexts loaded at once

Operating System Concepts – 9th Edition 3.15 Silberschatz, Galvin and Gagne ©2013
Operations on Processes

● System must provide mechanisms for:


● process creation,
● process termination,
● and so on as detailed next

Operating System Concepts – 9th Edition 3.16 Silberschatz, Galvin and Gagne ©2013
3.3.1 Process Creation

Parent process create children processes, which, in turn create other


processes, forming a tree of processes
Generally, process identified and managed via a process identifier
(pid)
Resource sharing options
Parent and children share all resources
Children share subset of parent’s resources
Parent and child share no resources
When a process creates a new process, two possibilities for execution
exist:
Parent and children execute concurrently
Parent waits until children terminate

Operating System Concepts – 9th Edition 3.17 Silberschatz, Galvin and Gagne ©2013
A Tree of Processes in Linux

Operating System Concepts – 9th Edition 3.18 Silberschatz, Galvin and Gagne ©2013
Process Creation (Cont.)
● There are also two address-space possibilities for the new
process:
● Child duplicate of parent
● Child has a program loaded into it
● UNIX examples
● fork() system call creates new process
● exec() system call used after a fork() to replace the process’
memory space with a new program

Operating System Concepts – 9th Edition 3.19 Silberschatz, Galvin and Gagne ©2013
3.3.2 Process Termination

Process executes last statement and then asks the operating system to
delete it using the exit() system call.
Returns status data from child to parent (via wait())
Process’resources are deallocated by operating system
Parent may terminate the execution of children processes using the
abort() system call for some reasons. They are :
Child has exceeded allocated resources
Task assigned to child is no longer required
The parent is exiting and the operating systems does not allow a
child to continue if its parent terminates

Operating System Concepts – 9th Edition 3.20 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 3.21 Silberschatz, Galvin and Gagne ©2013
3.4 Inter process Communication

● Processes within a system may be independent or


cooperating
● Cooperating process can affect or be affected by other
processes, including sharing data
● Reasons for cooperating processes:
I. Information sharing -a shared file
II. Computation speedup -to run faster a process, we must
break it into subtasks, each of which will be executing in
parallel with the others.
III. Modularity - dividing the system functions into separate
processes or threads,
IV. Convenience -a user may be editing, listening to music,
and compiling in parallel.

Operating System Concepts – 9th Edition 3.22 Silberschatz, Galvin and Gagne ©2013
3.4 Inter process Communication
● Cooperating processes require an interprocess communication (IPC)
mechanism that will allow them to exchange data and information.

● There are two fundamental models of interprocess communication:


1. Shared memory :
A region of memory that is shared by cooperating processes is
established.
Processes can then exchange information by reading and writing data to
the shared region.
2. Message passing :
Communication takes place by means of messages exchanged between
the cooperating processes.
Message passing is useful for exchanging smaller amounts of data,
because no conflicts need be avoided.

Operating System Concepts – 9th Edition 3.23 Silberschatz, Galvin and Gagne ©2013
Communications Models

Figure 3.12 Communications models. (a) Message passing. (b) Shared memory

Operating System Concepts – 9th Edition 3.24 Silberschatz, Galvin and Gagne ©2013
Interprocess Communication – Shared Memory

● An area of memory shared among the processes that wish


to communicate
● The communication is under the control of the users
processes not the operating system.
● Major issues is to provide mechanism that will allow the
user processes to synchronize their actions when they
access shared memory.
● Synchronization is discussed in great details in Chapter 5.

Operating System Concepts – 9th Edition 3.25 Silberschatz, Galvin and Gagne ©2013
Interprocess Communication – Message Passing

● Mechanism for processes to communicate and to


synchronize their actions

● Message system – processes communicate with each other


without resorting to shared variables

● IPC facility provides two operations:


send(message)

● receive(message)
● The message size is either fixed or variable

Operating System Concepts – 9th Edition 3.26 Silberschatz, Galvin and Gagne ©2013
Message Passing (Cont.)

● If processes P and Q wish to communicate, they need to:


● Establish a communication link between them
● Exchange messages via send/receive
● Implementation issues:
● How are links established?
● Can a link be associated with more than two processes?
● How many links can there be between every pair of
communicating processes?
● What is the capacity of a link?
● Is the size of a message that the link can accommodate fixed or
variable?
● Is a link unidirectional or bi-directional?

Operating System Concepts – 9th Edition 3.27 Silberschatz, Galvin and Gagne ©2013
Message Passing (Cont.)

● Implementation of communication link


● Physical:
4 Shared memory
4 Hardware bus
4 Network
● Logical:
4 Direct or indirect
4 Synchronous or asynchronous
4 Automatic or explicit buffering

Operating System Concepts – 9th Edition 3.28 Silberschatz, Galvin and Gagne ©2013
3.4.2.3 Buffering
● Whether communication is direct or indirect, messages exchanged
by communicating processes reside in a temporary queue.
● Basically, such queues can be implemented in three ways:.
1. Zero capacity : The queue has a maximum length of zero; thus, the
link cannot have any messages waiting in it. In this case, the sender
must block until the recipient receives the message.
2. Bounded capacity : The queue has finite length n. If the queue is
not full when a new message is sent, the message is placed in the
queue (either the message is copied or a pointer to the message is
kept), and the sender can continue execution without waiting.
3. Unbounded capacity : The queue’s length is potentially infinite;
thus, any number of messages can wait in it. The sender never
blocks.

Operating System Concepts – 9th Edition 3.29 Silberschatz, Galvin and Gagne ©2013
3.6.3 Pipes

● A pipe acts as a conduit allowing two processes to communicate.


● Pipes were one of the first IPC mechanisms in early UNIX
systems.
● They typically provide one of the simpler ways for processes to
communicate with one another.
● we explore two common types of pipes used on both UNIX and
Windows systems:
1. Ordinary pipes – cannot be accessed from outside the process
that created it. Typically, a parent process creates a pipe and uses
it to communicate with a child process that it created.
2. Named pipes – can be accessed without a parent-child
relationship.

Operating System Concepts – 9th Edition 3.30 Silberschatz, Galvin and Gagne ©2013

Das könnte Ihnen auch gefallen