Download Processes - McMaster Computing and Software

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Chapter 3: Processes
Operating System Concepts – 9th Edition
Modified by Dr. Neerja Mhaskar for CS 3SH3
Silberschatz, Galvin and Gagne ©2013
Process
 Process is a program in execution
 Program is passive entity stored on
disk (executable file), process is
active
 Program
becomes process when
executable file loaded into memory
Operating System Concepts – 9th Edition
3.2
Silberschatz, Galvin and Gagne ©2013
Questions
Can you have one program and many processes?
Operating System Concepts – 9th Edition
3.3
Silberschatz, Galvin and Gagne ©2013
Process in Memory
 Text section - compiled program code, read in from the non-
volatile storage when the program is launched.
 Data Section - global and static variables, which are allocated
and initialized prior to executing main.
 Heap - Dynamic Memory Allocation

managed via calls to new, delete, malloc, free, etc.
 Stack - is used for local variables. Space on the stack is reserved
for local variables when they are declared ( at function entrance
or elsewhere, depending on the language ), and the space is
freed up when the variables go out of scope.
Operating System Concepts – 9th Edition
3.4
Silberschatz, Galvin and Gagne ©2013
Process in Memory
Operating System Concepts – 9th Edition
3.5
Silberschatz, Galvin and Gagne ©2013
Question
Stack and Heap start at the opposite ends of the process's
free space and grow towards each other.
What happens if the stack and the heap
meet?
Operating System Concepts – 9th Edition
3.6
Silberschatz, Galvin and Gagne ©2013
Process State
 As a process executes, it changes state

new: The process is being created

ready: The process is waiting to be assigned to a
processor

running: Instructions are being executed

waiting: The process is waiting for some event to
occur

terminated: The process has finished execution
Operating System Concepts – 9th Edition
3.7
Silberschatz, Galvin and Gagne ©2013
Diagram of Process State
Operating System Concepts – 9th Edition
3.8
Silberschatz, Galvin and Gagne ©2013
Process Control Block (PCB)
Information associated with each process
(also called task control block)
 Process state – running, waiting, etc
 Program number – Process ID
 CPU registers and program counter –
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.9
Silberschatz, Galvin and Gagne ©2013
Process Representation in Linux
• Processes in Linux are referred to as tasks.
Represented by the C structure task_struct
pid t_pid; /* process identifier */
long state; /* state of the process */
unsigned int time_slice /* scheduling information */
struct task_struct *parent; /* this process’s parent */
struct list_head children; /* this process’s children */
struct files_struct *files; /* list of open files */
struct mm_struct *mm; /* address space of this process */
Operating System Concepts – 9th Edition
3.10
Silberschatz, Galvin and Gagne ©2013
Threads
 Modern systems allow a process to
have multiple threads associated
with it.
 These threads can execute
concurrently.
 More on Threads in the next
chapter.
Operating System Concepts – 9th Edition
3.11
Silberschatz, Galvin and Gagne ©2013
Types of Processes
 Processes can be described as either:
process – spends more time
doing I/O than computations, many short CPU
bursts
 I/O-bound
process – spends more time
doing computations; few very long CPU
bursts
 CPU-bound
Operating System Concepts – 9th Edition
3.12
Silberschatz, Galvin and Gagne ©2013
Process Scheduling
 Objective: Maximize CPU use, quickly switch processes onto CPU
for time sharing
 Process scheduler must meet the above objectives by implementing
suitable scheduling policies.
 Operating System 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.
Usually a separate device queue for each device.
 Processes migrate among the various queues
 Scheduler: selects a process from a queue.
Operating System Concepts – 9th Edition
3.13
Silberschatz, Galvin and Gagne ©2013
Ready Queue And Various I/O Device Queues
Operating System Concepts – 9th Edition
3.14
Silberschatz, Galvin and Gagne ©2013
Representation of Process Scheduling

Queueing diagram represents queues, resources, flows
Operating System Concepts – 9th Edition
3.15
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

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

Long-term scheduler is invoked infrequently (seconds, minutes) 
(may be slow). Therefore can use sophisticated scheduling algorithms.

Typically, seen on a process intensive systems.

The long-term scheduler controls the degree of multiprogramming
and good process mix

Swapping: is the term used for removing a process from main memory store
on disk and later bring it back in from disk to continue execution

Medium – term scheduler: used to queue swapped jobs

can be added if degree of multiple programming needs to decrease.
Operating System Concepts – 9th Edition
3.16
Silberschatz, Galvin and Gagne ©2013
Context Switch
 Context of a process is represented in the PCB (value of CPU
registers, the process state etc. See slide 3.1)
 When CPU switches to another process, the system must save
the context of the old process and load the saved context for
the new process. The process is called context switching
 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
 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.17
Silberschatz, Galvin and Gagne ©2013
CPU Switch From Process to Process
Operating System Concepts – 9th Edition
3.18
Silberschatz, Galvin and Gagne ©2013
Operations on Processes
 System must provide mechanisms for:

process creation,

process termination
Operating System Concepts – 9th Edition
3.19
Silberschatz, Galvin and Gagne ©2013
Process Creation
 Parent process create children processes (using
system calls), which, in turn create other
processes, forming a tree of processes
 A process is given an integer identifier called the
process identifier (pid)
 In addition to PID of a process, its parent PID
(termed as PPID ) is stored as well.
Operating System Concepts – 9th Edition
3.20
Silberschatz, Galvin and Gagne ©2013
A Tree of Processes in Linux
init
pid = 1
login
pid = 8415
khelper
pid = 6
bash
pid = 8416
ps
pid = 9298
sshd
pid = 3028
kthreadd
pid = 2
pdflush
pid = 200
sshd
pid = 3610
tcsch
pid = 4005
emacs
pid = 9204
 At system startup, init processes is executed


Hence the process PID = 1.
Init then launches all system daemons and user logins, and becomes
the parent of all other processes.
Operating System Concepts – 9th Edition
3.21
Silberschatz, Galvin and Gagne ©2013
Parent – Child Sharing
 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

Parent makes a wait() system call for a single child or
all its children.
 Address space sharing options:

Child duplicate of parent (has the same program and data
as the parent)

Child has a new program loaded into it
Operating System Concepts – 9th Edition
3.22
Silberschatz, Galvin and Gagne ©2013
Unix fork() and exec()
 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.23
Silberschatz, Galvin and Gagne ©2013
C Program Forking Separate Process
Operating System Concepts – 9th Edition
3.24
Silberschatz, Galvin and Gagne ©2013
Question?
How many processes created when the below code is executed?
int main()
{
printf("%d\n",getpid());
fork();
printf("%d\n",getpid());
fork();
printf("%d\n",getpid());
fork();
printf("%d\n",getpid());
return 0;
}
Operating System Concepts – 9th Edition
3.25
Silberschatz, Galvin and Gagne ©2013
Question
 Construct the process tree (or tree of processes)
for the processes created by the code on the
previous slide (3.27)?
Operating System Concepts – 9th Edition
3.26
Silberschatz, Galvin and Gagne ©2013
Process Termination
 After executing the last statement a process is terminated

Implicitly – using the return statement

Explicitly – using the exit() system call
 Process’ resources are deallocated 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.27
Silberschatz, Galvin and Gagne ©2013
Process Termination
 Some operating systems do not allow child to
exists if its parent has terminated. If a process
terminates, then all its children must also be
terminated.

cascading termination. All children,
grandchildren, etc. are terminated.

The termination is initiated by the operating
system.
Operating System Concepts – 9th Edition
3.28
Silberschatz, Galvin and Gagne ©2013
Child Process – Termination status
 When a child process terminates, the parent can know the status of exit
using the wait()system call.
 The call returns status information and the pid of the terminated process
pid = wait(&status);
 Unix maintains a table of processes. This table contains the list of all
processes running and includes the process status.
 If a parent process terminates, its entry is removed from the table.
 If a child process terminates, its entry is removed from the table only after
the parent process invokes a wait().
 If no parent waiting (did not invoke wait()) process is a zombie
 If parent terminated without invoking wait , process is an orphan
Operating System Concepts – 9th Edition
3.29
Silberschatz, Galvin and Gagne ©2013
Wait()
 wait() used to wait for the state changes in a child of
the calling process

Blocked until a child changes its status

Note that status change of any child will unblock the
parent

To block a particular child process use waitpid()

To block the parent till all child processes change
state loop through all child processes
Operating System Concepts – 9th Edition
3.30
Silberschatz, Galvin and Gagne ©2013
Interprocess Communication
 Processes within a system may be

Independent or

Cooperating (it can affect or be affected by other processes,
including sharing data)
 Reasons for cooperating processes:

Information sharing, computation speedup, modularity and
convenience
 Cooperating processes need interprocess communication (IPC)
 Two models of IPC

Shared memory

Message passing
Operating System Concepts – 9th Edition
3.31
Silberschatz, Galvin and Gagne ©2013
Communications Models
(a) Message passing.
Operating System Concepts – 9th Edition
(b) shared memory.
3.32
Silberschatz, Galvin and Gagne ©2013
Producer Consumer Problem
Buffer
Producer
Operating System Concepts – 9th Edition
Consumer
3.33
Silberschatz, Galvin and Gagne ©2013
Producer-Consumer Problem
 Paradigm for cooperating processes, producer
process produces information that is consumed
by a consumer process

unbounded-buffer places no practical limit on
the size of the buffer

bounded-buffer assumes that there is a fixed
buffer size
Operating System Concepts – 9th Edition
3.34
Silberschatz, Galvin and Gagne ©2013
IPC – Shared Memory
 An area of memory shared among the processes that wish




to communicate
The communication is under the control of the user
processes not the operating system.
Used for sharing large amount of data.
Major issues – synchronize process actions when
accessing shared memory.
Synchronization is discussed in details in Chapter 5.
Operating System Concepts – 9th Edition
3.35
Silberschatz, Galvin and Gagne ©2013
IPC – Message Passing
 Mechanism for processes to communicate using
messages (and not a shared space).
 Operating system provides message passing
capability.
 Operating systems do so by providing two
operations:
 send(message)

receive(message)
 The message size is either fixed or variable
Operating System Concepts – 9th Edition
3.36
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 of communication link
 Physical: (not in the scope of this course)
 Logical:
 Direct or indirect communication
 Synchronous or asynchronous communication
 Automatic or explicit buffering

Operating System Concepts – 9th Edition
3.37
Silberschatz, Galvin and Gagne ©2013
Direct Communication - Naming
 Processes must name each other explicitly:

send (P, message) – send a message to process P

receive(Q, message) – receive a message from process Q
 Properties of communication link

Links are established automatically

A link is associated with exactly pair of communicating
processes

Between each pair there exists exactly one link

The link may be unidirectional, but is usually bi-directional
Operating System Concepts – 9th Edition
3.38
Silberschatz, Galvin and Gagne ©2013
Indirect Communication - Mailbox
 Messages are directed to and received from mailboxes (also
referred to as ports)

Each mailbox has a unique id

Processes can communicate only if they share a mailbox
 Properties of communication link

Link established only if processes share a common mailbox

A link may be associated with many processes

Each pair of processes may share several communication links

Link may be unidirectional or bi-directional
Operating System Concepts – 9th Edition
3.39
Silberschatz, Galvin and Gagne ©2013
Indirect Communication
 Operations

create a new mailbox (port)

send and receive messages through mailbox

destroy a mailbox
 Primitives are defined as:
send(A, message) – send a message to mailbox A
receive(A, message) – receive a message from
mailbox A
Operating System Concepts – 9th Edition
3.40
Silberschatz, Galvin and Gagne ©2013
Synchronization

Message passing may be either blocking or non-blocking

Blocking is considered synchronous


Blocking send -- the sender is blocked until the message is
received

Blocking receive -- the receiver is blocked until a message
is available
Non-blocking is considered asynchronous

Non-blocking send -- the sender sends the message and
continue

Non-blocking receive -- the receiver receives:

A valid message, or

Null message
 Different combinations possible

If both send and receive are blocking, we have a rendezvous
Operating System Concepts – 9th Edition
3.41
Silberschatz, Galvin and Gagne ©2013
Buffering
 Queue of messages attached to the link.
 Implemented in one of three ways
1. Zero capacity – no messages are queued on a
link.
Sender must wait for receiver (rendezvous)
2. Bounded capacity – finite length of n messages
Sender must wait if link full
3. Unbounded capacity – infinite length
Sender never waits
Operating System Concepts – 9th Edition
3.42
Silberschatz, Galvin and Gagne ©2013
End of Chapter 3
Operating System Concepts – 9th Edition
Silberschatz, Galvin and Gagne ©2013
Related documents