Transcript Processes

Part two: Process management
 A process can be thought of as a program in execution.
A process will need certain resources-such as CPU time,
memory, files, and I/O devices to accomplish its task.
These resources are allocated to the process either
when it is created or while it is executing.
 All these processes may execute concurrently.
 The operating system is responsible for the following
activities in connection with process and thread
management: the creation and deletion of both user and
system processes; the scheduling of processes; and the
provision of mechanisms for synchronization,
communication, and deadlock handling for processes.
P79
3.1/44
Chapter 3: Processes
Chapter 3: Processes
 Process Concept
 Process Scheduling
 Operations on Processes
 Cooperating Processes
 Interprocess Communication
3.3/44
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 and termination, and
communication.
 To describe communication in client-sewer systems.
3.4/44
Process Concept
 A question that arises in discussing operating systems
involves what to call all the CPU activities.
 在多道程序环境中,程序的执行是断断续续的,具备动
态特征,程序和程序的执行不再一一对应,有必要引入
一个新的概念
 进程的定义:可并发执行的程序在一个数据集合上的运
行过程。
P81
3.5/44
Process Concept
 a process is a program in execution.



A process is more than the program code, which is
sometimes known as the text section.
It also includes the current activity, as represented
by the value of the program counter and the
contents of the processor's registers.
A process generally also includes the process
stack, which contains temporary data (such as
function parameters, return addresses, and local
variables), and a data section, which contains global
variables. A process may also include a heap, which
is memory that is dynamically allocated during
process run time.
3.6/44
Process in Memory
3.7/44
Program vs Process
 a program by itself is not a process; a program is a
passive entity, such as a file containing a list of
instructions stored on disk (often called an executable
file), whereas a process is an active entity, with a
program counter specifying the next instruction to
execute and a set of associated resources.
 A program becomes a process when an executable file is
loaded into memory.
 Although two processes may be associated with the
same program, they are nevertheless considered two
separate execution sequences.
3.8/44
Process State
 As a process executes, it changes state. The state of a
process is defined in part by the current activity of that
process. Each process may be in one of the following
states:

new: The process is being created

running: Instructions are being executed

waiting: The process is waiting for some event to occur

ready: The process is waiting to be assigned to a
processor

terminated: The process has finished execution
 only one process can be running on any processor at any
instant. Many processes may be ready and waiting.
P83
3.9/44
Diagram of Process State
3.10/44
Process Control Block (PCB)
 Each process is represented in the operating system by a
process control block
 It contains many pieces of information associated with a
specific process, including these:

Process state

Program counter

CPU registers

CPU scheduling information

Memory-management information

Accounting information

I/O status information
P84
3.11/44
Process Control Block (PCB)
PCB的作用: 反映进程的动态特征,描述进程的执行
情况,使操作系统能控制进程的运行。
3.12/44
CPU Switch From Process to Process
3.13/44
Characters of process
 动态性:进程有一定的生命周期,它由创建而
产生,由调度而执行,因得不到资源而暂停执
行,由撤消而消亡。
 并发性:多个进程实体,同存于内存中,能在
一段时间内同时运行。
 独立性:进程是独立运行的基本单位,是系统
中独立获得资源和独立调度的基本单位。
 异步性:进程按各自独立的、不可预知的速度
向前推进。
 结构特征:进程=程序+数据+进程控制块
3.14/44
Process Scheduling
 The objective of multiprogramming is to have some
process running at all times, to maximize CPU utilization.
 The objective of time sharing is to switch the CPU
among processes so frequently that users can interact with
each program while it is running.
 To meet these objectives, the process scheduler selects
an available process (possibly from a set of several
available processes) for program execution on the CPU.
 For a single-processor system, there will never be more
than one running process. If there are more processes, the
rest will have to wait until the CPU is free and can be
rescheduled.
P85
3.15/44
Process Scheduling Queues
 Job queue – set of all processes in the system

Only one
 Ready queue – set of all processes residing in main
memory, ready and waiting to execute

Only one
 Device queues – set of processes waiting for an I/O
device

Each device has its own device queue
 Processes migrate among the various queues
3.16/44
Ready Queue And Various I/O Device Queues
3.17/44
Representation of Process Scheduling
P88
3.18/44
Schedulers
 Long-term scheduler (or job scheduler) – selects
which processes should be brought into the ready
queue
 Short-term scheduler (or CPU scheduler) – selects
which process should be executed next and allocates
CPU
 Medium-term scheduler -- to remove processes from
memory (and from active contention for the CPU) and
thus the degree of multiprogramming. Later, the
process can be reintroduced into memory, and its
execution can be continued where it left off.
P88
3.19/44
Addition of Medium Term Scheduling
3.20/44
Schedulers
 Short-term scheduler is invoked very frequently
(milliseconds)  (must be fast)
 Long-term scheduler is invoked very 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
3.21/44
Schedulers
 It is important that the long-term scheduler select a good
process mix of I/O-bound and CPU-bound processes.
 If all processes are I/O bound, the ready queue will
almost always be empty, and the short-term scheduler
will have little to do. If all processes are CPU bound, the
I/O waiting queue will almost always be empty, devices
will go unused, and again the system will be unbalanced.
 The system with the best performance will thus have a
combination of CPU-bound and I/O-bound processes.
3.22/44
long-term scheduler
 the long-term scheduler may be absent or minimal.

time-sharing systems such as UNIX and Microsoft
Windows systems often have no long-term scheduler
but simply put every new process in memory for the
short-term scheduler.

The stability of these systems depends either on a
physical limitation (such as the number of available
terminals) or on the self-adjusting nature of human
users. If the performance declines to unacceptable
levels on a multiuser system, some users will simply
quit.
3.23/44
Context Switch
 interrupts cause the operating system to change a CPU
from its current task and to run a kernel routine.
 When an interrupt occurs, the system needs to save the
current context of the process currently running on the
CPU so that it can restore that context when its
processing is done, essentially suspending the process
and then resuming it.
 The context is represented in the PCB of the process; it
includes the value of the CPU registers, the process
state, and memory-management information.
 Generically, we perform a state save of the current
state of the CPU, be it in kernel or user mode, and then a
state restore to resume operations.
P89
3.24/44
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
 Context-switch time is pure overhead; the system does
no useful work while switching
 Time dependent on hardware support

the memory speed, the number of registers that must
be copied, and the existence of special instructions
(such as a single instruction to load or store all
registers).
3.25/44
Process Creation
 Parent process create children processes, which, in turn
create other processes, forming a tree of processes
3.26/44
Process Creation
 Resource sharing

Sub-process may be able to obtain its resources
directly from the operating system,

or it may be constrained to a subset of the resources
of the parent process.

The parent may have to partition its resources among
its children, or it may be able to share some resources
(such as memory or files) among several of its
children.

Restricting a child process to a subset of the parent's
resources prevents any process from overloading the
system by creating too many sub-processes.
P90
3.27/44
Process Creation
 execution

The parent continues to execute concurrently with
its children.

The parent waits until some or all of its children
have terminated.
 address space

The child process is a duplicate of the parent
process (it has the same program and data as the
parent).

The child process has a new program loaded into it.
3.28/44
Process Creation
 Address space

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
3.29/44
int main()
C Program Forking Separate
{
pid_t pid;
/* fork another process */
pid = fork();
if (pid < 0) { /* error occurred */
fprintf(stderr, "Fork Failed");
exit(-1);
}
else if (pid == 0) { /* child process */
execlp("/bin/ls", "ls", NULL);
}
else { /* parent process */
/* parent will wait for the child to complete */
wait (NULL);
printf ("Child Complete");
exit(0);
}
}
3.30/44
Process
Process Termination
 Process executes last statement and asks the operating system
to delete it (exit)

Output data from child to parent (via wait)

Process’ resources are deallocated by operating system
 Parent may terminate execution of children processes (abort)

Child has exceeded allocated resources

Task assigned to child is no longer required

If parent is exiting
Some
operating system do not allow child to continue if its
parent terminates
–
All children terminated - cascading termination
 Users could arbitrarily kill some jobs (kill).
3.31/44
P95
Cooperating Processes
 Independent process cannot affect or be affected by the
execution of another process
 Cooperating process can affect or be affected by the
execution of another process
 Advantages of process cooperation

Information sharing

Computation speed-up

Modularity

Convenience
P96
3.32/44
models of inter-process communication
 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.
 message passing

communication takes place by means of
messages exchanged between the cooperating
processes.
3.33/44
models of inter-process communication
 Both of the models just discussed are common in
operating systems, and many systems implement both.
 Message passing is useful for exchanging smaller
amounts of data, because no conflicts need be avoided.
 Message passing is also easier to implement than is
shared memory for inter-computer communication.
 Shared memory allows maximum speed and
convenience of communication, as it can be done at
memory speeds when within a computer.
 Shared memory is faster than message passing.
3.34/44
Communications Models
Figure 3.13 Communications models. (a) Message passing. (b) Shared memory.
3.35/44
Inter-process Communication (IPC)
 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) – message size fixed or variable
receive(message)
 If P and Q wish to communicate, they need to:


establish a communication link between them
exchange messages via send/receive
 Implementation of communication link

P99 
physical (e.g., shared memory, hardware bus)
logical (e.g., logical properties)
3.36/44
Implementation Questions
 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?
3.37/44
Direct Communication
 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 one pair of
communicating processes

Between each pair there exists exactly one link

The link may be unidirectional, but is usually bidirectional
P100
3.38/44
Indirect Communication
 Messages are directed 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
P101

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
3.39/44
Indirect Communication
 Operations

create a new mailbox

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
3.40/44
Indirect Communication
 Mailbox sharing

P1, P2, and P3 share mailbox A

P1, sends; P2 and P3 receive

Who gets the message?
 Solutions

Allow a link to be associated with at most two
processes

Allow only one process at a time to execute a receive
operation

Allow the system to select arbitrarily the receiver.
Sender is notified who the receiver was.
3.41/44
Synchronization
 Message passing may be either blocking or non-blocking
 Blocking is considered synchronous

Blocking send has the sender block until the
message is received

Blocking receive has the receiver block until a
message is available
 Non-blocking is considered asynchronous

Non-blocking send has the sender send the
message and continue

Non-blocking receive has the receiver receive a valid
message or null
P102
3.42/44
Buffering
 Queue of messages attached to the link; implemented in
one of three ways
1. Zero capacity – 0 messages
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
P102
3.43/44
Homework: 1、2
End of Chapter 3