Week 4
Chapter 3: Processes
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Outline
Process Concept
Process Scheduling
Operations on Processes
Operating System Concepts – 10th Edition 3.2 Silberschatz, Galvin and Gagne ©2018
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.
Operating System Concepts – 10th Edition 3.3 Silberschatz, Galvin and Gagne ©2018
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. No parallel execution of instructions of a single
process
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 ©2018
Process Concept (Cont.)
Program is passive entity stored on disk (executable file);
process is active
• Program becomes process when an executable file is
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 ©2018
Process in Memory
The memory layout of a process is typically divided into
multiple sections:
Text section—the executable code
Data section—global variables
Heap section—memory that is dynamically allocated during
program run time
Stack section—temporary data storage when invoking functions
(such as function parameters, return addresses, and local
variables)
Operating System Concepts – 10th Edition 3.6 Silberschatz, Galvin and Gagne ©2018
Process in Memory
• Sizes of the text and data sections are
fixed, as their sizes do not change
during program run time.
• However, the stack and heap sections
can shrink and grow dynamically during
program execution.
• Stack contain function parameters, local
variables, and the return address.
• Heap will grow as memory is
dynamically allocated, and will shrink
when memory is returned to the system.
Operating System Concepts – 10th Edition 3.7 Silberschatz, Galvin and Gagne ©2018
Memory Layout of a C Program
Layout of a C program in memory, highlighting how the different
sections of a process relate to an actual C program.
Operating System Concepts – 10th Edition 3.8 Silberschatz, Galvin and Gagne ©2018
Contd . .
The global data section is divided into different sections for
a) initialized data and
b) uninitialized data.
A separate section is provided for the argc and argv parameters
passed to the main() function.
Operating System Concepts – 10th Edition 3.9 Silberschatz, Galvin and Gagne ©2018
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.10 Silberschatz, Galvin and Gagne ©2018
Diagram of Process State
Operating System Concepts – 10th Edition 3.11 Silberschatz, Galvin and Gagne ©2018
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
I/O status information – I/O devices allocated to
process, list of open files
Operating System Concepts – 10th Edition 3.12 Silberschatz, Galvin and Gagne ©2018
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.13 Silberschatz, Galvin and Gagne ©2018
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.14 Silberschatz, Galvin and Gagne ©2018
Process Scheduling
Process scheduler selects among available processes
for next execution on CPU core
Goal -- Maximize CPU use, quickly switch processes onto
CPU core
Maintains scheduling queues of processes
• Ready queue – set of all processes residing in main
memory, ready and waiting to execute
• Wait queues – set of processes waiting for an event
(i.e., I/O)
• Processes migrate among the various queues
Process Scheduling will be discussed in detail in next week
Operating System Concepts – 10th Edition 3.15 Silberschatz, Galvin and Gagne ©2018