Loading...
Loading...
Loading...
ASSIGNMENT
OPERATING SYSTEM
TOPIC :- Threads In Operating System
Define Threads:-
- The Process is more complex and subtle . The Two embodies are separated and potentially independent
One related to resource ownership and Another related to Executing
- The distinction led to the development in many operating systems of a construct is know as the Thread
- Thread is smallest sequence of programmed instruction that can be managed independently by a schedular.
- Threads are the basic unit of CPU utilization and it consists of three components Threads ID , Program counter(PC) , Register Set
- Thread is existed within the process and it shares the resources such file description , memory . It also allow the concurrent execution of tasks
within single process and executed independently as same its also shares the resources to other threads in the same process.
Features of Threads:-
1. Threads allows multiple tasks to be executed concurrently within a single process . It enables the utilization of resources and improves the
overall system performance . The Concurrency is stable is constant in process
2. Threads are light weight as they share resources such as memory file description and other process
3. Threads within the same process shares the memory space and files and allows to communicate easily . The space in memory simplifies data
sharing .
4. Applications which are used by threads for tasking like handling user interfaces and background remain responsiveness to user input while
performing the tasks
5. It provides flexibility in programming for developers to perform applications and multiple executions .
MULTICORE AND MULTITHREADING
1)Multicore:-
- It refers to the process of architecture that integrates multiple independent processing units in a single circuit such as might occur workstation , video-games , personal computer running processor , raises issues of performance and applications design .
- Multicore processors occurs concurrent execution of multiple tasks it allows each core to handle its own thread of instructions simultaneously
- The potential performance benefits of a multicore organisations depend on the ability to exploit the parallel resources available to the application
-single application running on a multicore system
Amdahl's Law
speedup = time to execute program on a single processor / time to execute program on N parallel processors = 1 / (1-f) + f/N
- Multicore processors represents a significant advancement in processor , enabling higher performance , multitasking etc.
2) Multithreading:-
- multithreading refers to ability of a CPU to execute multiple threads concurrently multithreaded applications are characterized by having a small number of highly threaded processes . Example:- Threaded applications include Lotus Domino or Siebel
CRM (customer relationship manager)
- Multithreading allows multiple threading within the same process independently it improves overall applications performance by overlapping computations and other task run simultaneously
- Threads can be implemented at many different level such as
1. User level thread
2. Kernel level thread
- Multithreading is a superb technique in OS and software it enables efficient parallel executions and applications performs on multiple tasks concurrently
Two Types of Threads:-
There are Two Broad Categories Of Thread Implementation User-Level Thread(ULTs) and Kernel-Level Thread(KLTs)
1)User Level Thread
2)Kernel Level Thread
1)User Level Thread:-
- User level thread refers to the thread that are managed by the user level thread library without the support of kernel level thread . It creates the scheduled and manages within the users space of a single process
- ULTs are light weighted because they are managed at the application level without involving KLTs . The context of switching between ULTs is faster than KLTs.
- ULTs can Run on any Operating system .No changes are required to the underlying
kernel to support ULTs . The threads library is a set of application level functions shared by all application
- scheduling for user level thread is done by the thread library or application using algorithms.
- ULTs are usually blocking nature if in the process one thread is blocked all threads within that process are blocked because the kernel unaware of these threads and cannot schedule other threads from the same process which in on going .
2)Kernel Level Thread:-
- Kernel Level Thread are Threads refer to manage directly by the operating system kernel as ULTs is managed by the user space of a single process kernel level thread are supported and scheduled by the kernel level itself
- KLTs are supported and managed by the operating system kernel it records and maintain all the information about each thread and schedules them for execution
- KLTs is non-blocking means if one thread is blocked it can schedule another thread for execution on the same or different system it allows concurrent execution of multiple threads within the same process
- Compared to ULTs , KLTs are more resource intensive for creating managing and operating the data each KLTs requires the data structure and context
- Scheduling for KLTs is done by operating system scheduler it uses the algorithms to decide when and for how much long period each thread should run bases on priorities , states and system.