0% found this document useful (0 votes)
21 views42 pages

ch3 FinalVersion V3

This chapter discusses processes and process management in operating systems. It defines a process as a program in execution, and describes the different components that make up a process, including code, activity, stack, data, and heap. It also discusses process states like running, ready, waiting and concepts like process scheduling, queues, and context switching. Interprocess communication using shared memory and message passing is introduced. The chapter objectives are to explain processes and how they are represented and scheduled in an operating system.

Uploaded by

abu.ml3gah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views42 pages

ch3 FinalVersion V3

This chapter discusses processes and process management in operating systems. It defines a process as a program in execution, and describes the different components that make up a process, including code, activity, stack, data, and heap. It also discusses process states like running, ready, waiting and concepts like process scheduling, queues, and context switching. Interprocess communication using shared memory and message passing is introduced. The chapter objectives are to explain processes and how they are represented and scheduled in an operating system.

Uploaded by

abu.ml3gah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 42

Chapter 3: Processes

Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne


Chapter 3: Processes
 Process Concept
 Process Scheduling
 Operations on Processes
 Interprocess Communication
 IPC in Shared-Memory Systems
 IPC in Message-Passing Systems
 Examples of IPC Systems
 Communication in Client-Server Systems

Operating System Concepts – 10th Edition 3.2 Silberschatz, Galvin and Gagne
Objectives
 Identify the separate components of a process
and illustrate how they are represented and
scheduled in an operating system.
 Describe how processes are created and
terminated in an operating system, including
developing programs using the appropriate
system calls that perform these operations.
 Describe and contrast interprocess
communication using shared memory and
message passing.
 Design programs that uses pipes and POSIX
shared memory to perform interprocess
communication.
 Describe client-server communication using
sockets and remote procedure calls.
 Design kernel modules that interact with the
Linux operating system.

Operating System Concepts – 10th Edition 3.3 Silberschatz, Galvin and Gagne
Process Concept
 An operating system executes a variety of programs
that run as a process.
 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
 Function parameters, return addresses, local
variables
 Data section containing global variables
 Heap containing memory dynamically allocated
during run time

Operating System Concepts – 10th Edition 3.4 Silberschatz, Galvin and Gagne
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 – 10th Edition 3.5 Silberschatz, Galvin and Gagne
Process in Memory

Operating System Concepts – 10th Edition 3.6 Silberschatz, Galvin and Gagne
Memory Layout of a C Program

Operating System Concepts – 10th Edition 3.7 Silberschatz, Galvin and Gagne
Process State

 As a process executes, it changes state


 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

Operating System Concepts – 10th Edition 3.8 Silberschatz, Galvin and Gagne
Diagram of Process State

Operating System Concepts – 10th Edition 3.9 Silberschatz, Galvin and Gagne
Process Control Block (PCB)
Information associated with each
process
(also called task control block)
 Process state – running,
waiting, etc
 Program counter – location 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

Operating System Concepts – 10th Edition 3.10 Silberschatz, Galvin and Gagne
Threads
 So far, process has a single thread of execution
 Consider having multiple program counters per
process
 Multiple locations can execute at once
 Multiple threads of control -> threads
 Must then have storage for thread details, multiple
program counters in PCB
 Explore in detail in Chapter 4

Operating System Concepts – 10th Edition 3.11 Silberschatz, Galvin and Gagne
Process Representation in Linux

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 – 10th Edition 3.12 Silberschatz, Galvin and Gagne
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/Wait queues – set of processes waiting
for an I/O device (Each device has its own
device queue)
 Processes migrate among the various queues

Operating System Concepts – 10th Edition 3.13 Silberschatz, Galvin and Gagne
Ready and Wait Queues

Operating System Concepts – 10th Edition 3.14 Silberschatz, Galvin and Gagne
Representation of Process Scheduling

Operating System Concepts – 10th Edition 3.15 Silberschatz, Galvin and Gagne
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)
 The long-term scheduler controls the degree of
multiprogramming (the number of processes in memory)
 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
 Long-term scheduler strives for good process mix

Operating System Concepts – 10th Edition 3.16 Silberschatz, Galvin and Gagne
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
 Swapping may be necessary
 to improve the process mix (of CPU bound and
I/O bound)

 or because a change in memory requirements


has overcommitted available memory, requiring
memory to be freed up.

Operating System Concepts – 10th Edition 3.17 Silberschatz, Galvin and Gagne
Medium Term Scheduling (Cont.)

Operating System Concepts – 10th Edition 3.18 Silberschatz, Galvin and Gagne
CPU Switch From Process to Process
A context switch occurs when the CPU
switches from one process to another.

Operating System Concepts – 10th Edition 3.19 Silberschatz, Galvin and Gagne
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
 Time dependent on hardware support
 Some hardware provides multiple sets of
registers per CPU  multiple contexts loaded at
once

Operating System Concepts – 10th Edition 3.20 Silberschatz, Galvin and Gagne
Multitasking in Mobile Systems
 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
provides for a
 Single foreground process- controlled via user
interface
 Multiple background processes– in memory,
running, but not on the display, and with limits
 Limits include single, short task, receiving
notification of events, specific long-running tasks
like audio playback
 Android runs foreground and background, with fewer
limits
 Background process uses a service to perform
tasks
 Service can keep running even if background
process is suspended
 Service has no user interface,
Operating System Concepts – 10th Edition 3.21
small memory use
Silberschatz, Galvin and Gagne
Operations on Processes

 System must provide mechanisms for:


 process creation
 process termination

Operating System Concepts – 10th Edition 3.22 Silberschatz, Galvin and Gagne
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 – 10th Edition 3.23 Silberschatz, Galvin and Gagne
A Tree of Processes in Linux

Operating System Concepts – 10th Edition 3.24 Silberschatz, Galvin and Gagne
Process Creation (Cont.)
 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
 Parent process calls wait() for the child to
terminate

Operating System Concepts – 10th Edition 3.25 Silberschatz, Galvin and Gagne
C Program Forking Separate Process

Operating System Concepts – 10th Edition 3.26 Silberschatz, Galvin and Gagne
Creating a Separate Process via Windows API

Operating System Concepts – 10th Edition 3.27 Silberschatz, Galvin and Gagne
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. 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 – 10th Edition 3.28 Silberschatz, Galvin and Gagne
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.
 The parent process may wait for termination of a child
process by using the wait()system call. The call
returns status information and the pid of the
terminated process
pid = wait(&status);
 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 – 10th Edition 3.29 Silberschatz, Galvin and Gagne
Android Process Importance Hierarchy
 Mobile operating systems often have to terminate processes
to reclaim system resources such as memory. From most to
least important:
o Foreground process
o Visible process
o Service process
o Background process
o Empty process
 Android will begin terminating processes that are least
important.

Operating System Concepts – 10th Edition 3.30 Silberschatz, Galvin and Gagne
Multiprocess Architecture – Chrome Browser

 Many web browsers ran as single process (some still


do)
 If one web site causes trouble, entire browser can
hang or crash
 Google Chrome Browser is multiprocess with 3
different types of processes:
 Browser process manages user interface, disk and
network I/O
 Renderer process renders web pages, deals with
HTML, Javascript. A new renderer created for each
website opened
 Runs in sandbox restricting disk and network I/O,
minimizing effect of security exploits
 Plug-in process for each type of plug-in

Operating System Concepts – 10th Edition 3.31 Silberschatz, Galvin and Gagne
Interprocess 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:
 Information sharing
 Computation speedup
 Modularity
 Convenience
 Cooperating processes need interprocess
communication (IPC)
 Two models of IPC
 Shared memory
 Message passing

Operating System Concepts – 10th Edition 3.32 Silberschatz, Galvin and Gagne
Communications Models
(a) Shared memory. (b) Message passing.

Operating System Concepts – 10th Edition 3.33 Silberschatz, Galvin and Gagne
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

Operating System Concepts – 10th Edition 3.34 Silberschatz, Galvin and Gagne
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

Buffer

Producer Produced Items Consumer


Process Process

Operating System Concepts – 10th Edition 3.35 Silberschatz, Galvin and Gagne
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
Chapters 6 & 7.

Operating System Concepts – 10th Edition 3.36 Silberschatz, Galvin and Gagne
Bounded-Buffer – Shared-Memory Solution

 Shared data
#define BUFFER_SIZE 10
typedef struct {
. . .
} item;

item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;

 Solution is correct, but can only use BUFFER_SIZE-1


elements

Operating System Concepts – 10th Edition 3.37 Silberschatz, Galvin and Gagne
Buffer State in Shared Memory

item buffer[BUFFER_SIZE]

Producer Consumer
Process Process

out in

Shared Memory

Operating System Concepts – 10th Edition 3.38 Silberschatz, Galvin and Gagne
Buffer State in Shared Memory

Buffer Full

in out
((in + 1) % BUFFER_SIZE) == out

Buffer Empty

in out
in == out

Operating System Concepts – 10th Edition 3.39 Silberschatz, Galvin and Gagne
Producer Process – Shared Memory

item next_produced;

while (true) {
/* produce an item in next produced */
while (((in + 1) % BUFFER_SIZE) == out)
; /* do nothing */
buffer[in] = next_produced;
in = (in + 1) % BUFFER_SIZE;
}

Operating System Concepts – 10th Edition 3.40 Silberschatz, Galvin and Gagne
Consumer Process – Shared Memory

item next_consumed;

while (true) {
while (in == out)
; /* do nothing */
next_consumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;

/* consume the item in next consumed */


}

Operating System Concepts – 10th Edition 3.41 Silberschatz, Galvin and Gagne
End of Chapter 3

Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne

You might also like