3. Introduction
• Each & every process in the Operating System is
represented by a Process Control Block.
• Process Control Block ~ Task Control Block or
Task Struct.
3
Presentation by Ujjwal
Kumar
4. What exactly is PCB?
• It is a Data Structure in the operating system
kernel containing the information needed to
manage a particular process.
• The PCB is "the manifestation(Visible) of a
process in an operating system”
4
Presentation by Ujjwal
Kumar
8. • Pointers: It contains the address of another
process which is present in the ready queue.
• Process State: It contains information about
the state of the process i.e.,
• New
• Ready
• Running
• Waiting
• Halted
Presentation by Ujjwal
Kumar
8
9. • Program Counter: The address of the next
instruction to be executed.
• CPU Registers: The registers vary in no. and
type depending on the type of computer
architecture, they include:
• Accumulators, index registers, stack pointers and
general purpose registers
Presentation by Ujjwal
Kumar
9
10. • CPU scheduling information: This
information includes
▫ Process priority
▫ Pointer to scheduling queues
▫ Other scheduling parameters.
• Memory management information: This
information includes
▫ Value of base and limit registers
▫ Page tables
▫ Segment tables.
Presentation by Ujjwal
Kumar
10
11. • Accounting information: This information
includes
• Amount of CPU and real time used
• Time limits
• Account numbers
• Job or Process numbers etc.
• I/O status information: This information
includes
• List of I/O devices allocated to the process
• List of open files etc .
Presentation by Ujjwal
Kumar
11
12. Now we know what exactly the
Process Control Block is. But
do we know where the location
of PCB is?
Presentation by Ujjwal
Kumar
12
13. • Contains critical information of processes and
hence it must be placed where it is protected
from normal user access.
• In many Operating systems, it is placed in the
beginning of the kernel stack of the process since
that is a convenient protected location.
Presentation by Ujjwal
Kumar
13
15. Interleaving Execution of Processes
• Perception of normal end user:
Presentation by Ujjwal
Kumar
15
Process
A Process
B
Process
C
Process D
Time
16. Interleaving Execution of Processes
• In reality, this is how the processes are executed:
Presentation by Ujjwal
Kumar
16
Process 1
Process 2
Process 1
Process 2
18. Threads
• Definition: In simple words we can say that
Threads are light weight processes.
• It is a sequence and not a program because it
cannot run on its own so it returns within the
program.
• A process is divided into smaller tasks and these
tasks are known as threads.
• A basic unit of CPU Utilization.
Presentation by Ujjwal
Kumar
18
19. Advantages of Threads
• If a process has multiple threads then it will be
able to perform more than one single task at the
same time.
• Better Throughput.
• Makes the program Responsive.
Presentation by Ujjwal
Kumar
19
21. Multithreading
• Sometimes several similar tasks have to be
performed by the application in order to get the
word done.
• This is where the Multithreading comes in.
Presentation by Ujjwal
Kumar
21
22. Real life examples of Multithreading - I
• Web browsers: They have different threads to
do different work.
▫ One thread will retrieve data from the remote
servers.
▫ Another one will render the data received into
visual web pages.
• Example: Google Chrome, Opera, Firefox etc.
Presentation by Ujjwal
Kumar
22
23. Real life examples of Multithreading -
II
• Word Processors: Different threads in word
processor will do different jobs.
▫ One will render the text based materials.
▫ Another one will render graphic based materials
like the images etc.
• Example: Microsoft Office
Presentation by Ujjwal
Kumar
23
24. Benefits of Multithreading
• Responsiveness: The process responds much
better while using multithreading as compared
to single threaded processes.
• Speed Up: The process is speeded up by using
multithreading hence giving a much better
experience to the end user.
• Efficient Communication: The threads of a
specific process can communicate with each
other efficiently because of the shared address
space.
Presentation by Ujjwal
Kumar
24
25. • Utilization in multiprocessor systems:
▫ Multithreading can take advantages of a
multiprocessor system.
▫ Multiple threads can be processed on multiple
cores of the system.
Presentation by Ujjwal
Kumar
25
26. Implementation of Threads
• Threads are implemented in a system in three
different ways.
▫ Kernel Level Threads
▫ User Level Threads
▫ Hybrid Level Threads
Presentation by Ujjwal
Kumar
26
27. Kernel Level Threads
• Implemented by the kernel itself.
• Management of threads is also done by the
kernel itself.
Presentation by Ujjwal
Kumar
27
Process
Threads
Process
Table
29. User Level Thread
• These type of threads are loaded in the user
space and the kernel doesn’t have anything to do
with this.
• Threads are managed in user space so each
process must have its own private thread table.
• This table consists the information of:
▫ Program Counter
▫ Stack Pointer
▫ Register.
Presentation by Ujjwal
Kumar
29