0% found this document useful (0 votes)
26 views15 pages

Week 4: Chapter 3: Processes

Uploaded by

malaika ghufran
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)
26 views15 pages

Week 4: Chapter 3: Processes

Uploaded by

malaika ghufran
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/ 15

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

You might also like