Skip to main content

Application Of Threads

 

Application Of Threads

Application Of Threads

This section discuss various implementation of threads. Multithreading concepts are implemented by pthread (POSIX standard), solaris, linux, window 2000 and java.

1. POSIX THREAD(Pthreads)

·         Pthread refers to the POSIX standard(IEEE 1003.IC) that defines an API for thread creation and sychronisation.

·         Prior to the of POSIX THREADS, each hardware vendor implemented their own version of threads.

·         As each implemented from the other, writing portable multithreaded application was difficult. Thus POSIX standardize the API for thread management.

·         The current Pthread API is defined only for C programming language and it is implemented as function with a header file Pthread.h and thread library.

·         The naming convention for Pthreads is well defined and the prefix of all the object or function is PTHREAD.

      


        Solaries Threads

·         Solaries 2 is a version of UNIX, that implements Pthreads API in addition to supporting user-level threads with a library containing APIs for thread creation and management.

·         Solaries implement multilevel thread support designed to provide considerable flexibility. It make use of four separate thread related concepts:

1.       Process. This is normal UNIX process and includes the user’s address space, stack and PCB.

2.       User level thread. A user level thread is a user created unit of execution within a process.these are created by application programmer.

They provide support for parallel execution within a process.

3.       Lightweight processes. A LWP is a mapping between user level and kernel threads.

4.       Kernel threads. These threads are visible to OS. They are managed by OS


LINUX Threads

·         Threads in linux are handled in a different way as compared to other operating system due to the open source nature of linux.

·         An  important  difference between linux threads and other threads is that linux does not differentiate between a process and a thread . a task represents basics unit of work in linux.

·         To create a child process, linux provides two system calls : fork and clone.

·         Clone call creates a child process like the fork call, but main difference is that, fork creates a child process that has itys own process context similar to that parent process whereas the child process created by clone shares parts of it execution context with the calling process, such as memory space, the file descriptor table and the signal handler table

·         At user level, various libraries that implements Pthreads are available. For example, linuxthreads,NPTL(native POSIX thread library ).


       Windows 2000 threads

·       Window 2000 implements the win32 API.

·       A Window Application  runs as a separate process where each process contains one or more threads.

·       Every thread of a process has access to the virtual address space of a process

·       The various data structure used by threads are:

1.      ETHEREAD (executive thread block).it includes pointer to the process to which thread belongs and the address of the routine in which the thread starts control.

2.      KTHREAD (kernel threads block). It includes scheduling and synchronistion information for the threads. It also includes the kernel stack and a pointer to TEB.KTHREAD also lies in kernel space and only kernel has access to it.

3.      TEB (thread environment block). It is a user space data structure that is accessed when thread is running in user mode. TEB contains a user model stack and an array for thread specific data



Comments

Popular posts from this blog

Defination of OS(operating system) and its concepts

    What do you mean by operating system?     Definition :  An operating system is a program that act as an interface between the user of a computer and the                                      Computer hardware. Operating system is a first program that gets loaded into the memory through a process called booting. Concepts of operating system : ·                       The purpose of operating system is to provide an environment in which a user can execute program in a convenient and efficient manner. ·                       Operating system is an integrated set of program that ma...

Scheduler

  Scheduler   Scheduling Objectives Here, are important objectives of Process scheduling Maximize the number of interactive users within acceptable response times. Achieve a balance between response and utilization. Avoid indefinite postponement and enforce priorities. It also should give reference to the processes holding the key resources  Process Scheduling handles the selection of a process for the processor on the basis of a scheduling algorithm and also the removal of a process from the processor. It is an important part of multiprogramming in operating system. Process scheduling involves short-term scheduling, medium-term scheduling and long-term scheduling. Details about these are given as follows − Long-Term Scheduling Long-term scheduling involves selecting the processes from the storage pool in the secondary memory and loading them into the ready queue in the main memory for execution. This is handled by the long-term scheduler or job scheduler. The long-term s...

Multi user Operating System

  Multi user operating system ·           In a multi-user operating system, multiple number of user can access different resources of a computer at a same time. ·           The access is provided using a network that consists of various personal computer attached to a mainframe computer system.                                                              diagram of multi -user operating system       ·           The various personal computer can send and receive information to mainframe computer system. ·           The example    of multi-user OS are UNIX, windows 2000,novell netware.            sing...

Batch Processing Operating System

  Batch processing system ·           Batch processing is one of the oldest method    of running the programs ·           The computer in the past were very large in size and their I/O devices were very different from those that are used today. The job processing was not interactive as it is today. ·           The user did not interact directly with computer system.   ·           The process scheduling , memory management, file management and I/Omanagement functions are quite simple in batch processing system   1.         Process scheduling (i.e. allocation strategy for a processor is typically in order of their arrival i.e. first come first served(FCFS)basis.   2.         Memory management  is done by divi...

Exokernel architecture

Exokernel architecture Most of us know what kernels are and how do they work to make programmers’ lives easier. But, how many of us know what exokernels are? I hope you will be able to get a brief introduction on this terminology through this blog. Let’s start with a brief introduction on kernel. What is a kernel? A kernel is the foundational layer of an operating system that functions at a basic level, communicating with hardware and managing resources, such as CPU and the memory. It works as an interface between the user application and the hardware. There   are two main types of kernel 1. Micro kernel 2. Monolithic Kernel 1.  Monolithic architecture 2.      Layerd archtecture . 3.       Virtual machine architecture 4.       Exokernel architecture 5.      Client server architecture   6.       Micro kernel architecture Now let’s head into our main focus. What is an Exokern...