Uploaded by ابتهال العلوي

ch03V2St

advertisement
Chapter 3: Processes
Operating System Concepts – 9th Edition
Silberschatz, Galvin and Gagne ©2013
Chapter 3: Processes
 1/Process Concept
 2/Process Scheduling )‫(الترتيب أو الجدولة‬
 3/ Operations on Processes
 4/ Interprocess Communication
Operating System Concepts – 9th Edition
3.2
Silberschatz, Galvin and Gagne ©2013
Objectives
 To introduce the notion of a process -- a program in
execution, which forms the basis of all computation
 To describe the various features of processes, including
scheduling, creation, termination, and communication
Operating System Concepts – 9th Edition
3.3
Silberschatz, Galvin and Gagne ©2013
1/Process Concept
 Program is a passive entity stored on disk (executable file)-ls,
process is an active entity –ps/top ..
 An operating system executes a variety of active entities:

Process – a program in execution; ps
Task or Thread (Method in execution or part of
process)top

Job: (Batch file in execution or set of processes) jobs

 Program becomes process when executable file loaded into
memory
 Execution of program started via GUI mouse clicks, command
line-bash, entry of its name ./script01, etc
 One program can be several processes

Consider multiple users executing the same program
Runnig paint many times
Operating System Concepts – 9th Edition
3.4
Silberschatz, Galvin and Gagne ©2013
1/Process Concept
 Process has multiple parts (has many parts)

The program code, also called code section or code segment

Current activity including program counter, processor
registers

Stack containing temporary data

Function parameters, return addresses, local variables

Data section or segment containing global variables or data

Heap containing memory dynamically allocated during run time
Operating System Concepts – 9th Edition
3.5
Silberschatz, Galvin and Gagne ©2013
1/Process States
 As a process executes, it changes state

new: The process is being created(by a parent: look process
tree ps axjf)

running: Instructions are being executed

waiting: The process is waiting for some event to occur The
process is waiting for some event to occur (such as an I/O
completion or reception of a signal).

ready: The process is waiting to be assigned to a processor

terminated: The process has finished execution
Operating System Concepts – 9th Edition
3.6
Silberschatz, Galvin and Gagne ©2013
1/Process Control Block (PCB)
Information associated with each process
(also called task control block)
 Process state – running, waiting, etc
 Program counter – location(in memory)
of instruction to next execute
 CPU registers – contents of all process-
centric registers
 CPU scheduling information- priorities,
scheduling queue pointers
 Memory-management information –
memory allocated to the process
 Accounting information – CPU used,
clock time elapsed since start, time
limits
 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
1/CPU Switch From Process to Process
 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
 Time dependent on hardware support

Some hardware provides multiple sets of registers per CPU  multiple
contexts loaded at once(Bank of register)

Some other have only one set of registers  using stack solution
Operating System Concepts – 9th Edition
3.8
Silberschatz, Galvin and Gagne ©2013
1/Threads(‫)األشرطة الحاسوبية‬
Thread
‫الخيط‬
thread of execution
‫سلسلة أو شريط التعليمات‬
Threads
‫األشرطة الحاسوبية‬/‫الخيوط‬
 So far, process has a single thread of execution
 Thread is a component of a process

A process with
two threads of
execution,
running on one
processor
Multiple threads can exist within one process,
executing concurrently and sharing resources such
as memory
 Consider having multiple program counters per process
 Must then have storage for thread details, multiple
program counters in PCB
A process with two threads
of execution, running on 2
processors
Operating System Concepts – 9th Edition
3.9
Silberschatz, Galvin and Gagne ©2013
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 (premptive and non-premptive scheduler)
 Maintains scheduling queues of processes

Job/process queue – set of all processes in the system(ps –e l)

Ready queue – set of all processes residing in main memory, ready and
waiting to execute(./loop3; ./myjob2&;top; i or ps r l)

Device queues – set of processes waiting for an I/O device

Processes migrate among the various queues
Operating System Concepts – 9th Edition
3.10
Silberschatz, Galvin and Gagne ©2013
Ready Queue And Various I/O Device Queues
@ of beginning of second PCB
Operating System Concepts – 9th Edition
3.11
Silberschatz, Galvin and Gagne ©2013
Representation of Process Scheduling

Queueing diagram represents queues, resources, flows
?3
?1
?2
several
System call
Operating System Concepts – 9th Edition
3.12
Silberschatz, Galvin and Gagne ©2013
Schedulers




Short-term scheduler (or CPU scheduler) – selects which process should
be executed next and allocates CPU

Sometimes the only scheduler in a system (it is the main scheduler)

Short-term scheduler is invoked frequently (milliseconds)  (must be
fast)
Long-term scheduler (or job scheduler) – selects which processes should
be brought into the ready queue (from wait queue or Job pool)

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(period)

CPU-bound process – spends more time doing computations; few very
long CPU bursts(period)
Long-term scheduler strives(try to realize) for good process mix (more
priority for I/O-bound process)
Operating System Concepts – 9th Edition
3.13
Silberschatz, Galvin and Gagne ©2013
Addition of Medium Term Scheduling

Medium-term scheduler (10 or 100ms) can be added if degree of
multiple programming needs to decrease (total number of executed
processes=Ps. In ready Q+Ps. In swap+Ps. In CPU)

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
Multitasking in Mobile Systems(iOS)
 Some mobile systems (e.g., early version of iOS) allow only one process
to run, others suspended
 Due to screen real estate, user interface limits iOS for a

Single foreground process- controlled via user interface

Multiple background processes– in memory, running, but not on the
display, and with limits
 allowing a process to run in the background without being suspended but
these processes are Limited to :

running a single, finite-length task (such as completing a download
of content from a network)

receiving notification of events(such as a new email message);

specific long-running tasks like audio playback
Operating System Concepts – 9th Edition
3.15
Silberschatz, Galvin and Gagne ©2013
Multitasking in Mobile Systems(Android)
 Android does not place such constraints on the types of applications that can run
in the background.
 If an application requires processing while in the background, the application
must use a service
 Consider a streaming audio application:

if the application moves to the background,

The service continues to send audio files to the audio device driver on
behalf of the background application.

In fact, the service will continue to run even if the background
application is suspended.

Services do not have a user interface and have a small memory
footprint,

thus providing an efficient technique for multitasking in a mobile
environment.
Operating System Concepts – 9th Edition
3.16
Silberschatz, Galvin and Gagne ©2013
(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
 Execution options

Parent and children execute concurrently

Parent waits until children terminate
Operating System Concepts – 9th Edition
3.19
Silberschatz, Galvin and Gagne ©2013
Process Creation (Cont.)
 fork(&) system call creates new process
 exec system call is used after a fork system call by one of the
two processes to replace the process’s memory space with a
new program
 The parent waits for the child process to complete
 When the child process completes the parent process
resumes(‫)يستأنف‬
Operating System Concepts – 9th Edition
3.20
Silberschatz, Galvin and Gagne ©2013
Process Termination
 Process executes last statement(instruction) and then asks the
operating system to delete it by using the exit() system call.

Returns status data from child to parent (via wait())

Process’ resources are unallocated by operating system
 Parent may terminate the execution of children processes using
the abort() system call. Some reasons for doing so:

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.21
Silberschatz, Galvin and Gagne ©2013
Interprocess Communication
 Processes within a system may be independent or cooperating
 Reasons for cooperating processes:

Information sharing

Computation speedup
 Cooperating processes need interprocess communication (IPC)
 Two models of IPC

Shared memory

Message passing(send; receive)
Operating System Concepts – 9th Edition
3.23
Silberschatz, Galvin and Gagne ©2013
Communications Models
(a) Message passing.
Operating System Concepts – 9th Edition
(b) shared memory.
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 4.
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(pipe) between them
 Exchange messages via send/receive
Distant processes(on network)
Operating System Concepts – 9th Edition
3.27
Silberschatz, Galvin and Gagne ©2013
Synchronization (Cont.)
 Producer-consumer becomes trivial
message next_produced;
while (true) {
/* produce an item in next produced */
send(next_produced);
}
message next_consumed;
while (true) {
receive(next_consumed);
/* consume the item in next consumed */
}
Operating System Concepts – 9th Edition
3.28
Silberschatz, Galvin and Gagne ©2013
End of Chapter 3
Operating System Concepts – 9th Edition
Silberschatz, Galvin and Gagne ©2013
Download