Illustrate different ways that threads could be implemented, Operating System

Assignment Help:

Q. Multithreading is a commonly utilized programming technique. Illustrate three different ways that threads could be implemented. Describe how these ways compare to the Linux clone mechanism. When might every alternative mechanism be better or worse than using clones?

Answer: Thread implementations can be largely classified into two groups- kernel-based threads as well as user-mode threads. User-mode thread packages rely on some kernel support-they may require timer interrupt facilities for instance-but the scheduling between threads is not performed by the kernel however by some library of user-mode code. Multiple threads in such an execution appear to the operating system as a single execution context. When the multithreaded process is running it settle on for itself which of its threads to execute using non-local jumps to switch stuck between threads according to its own pre-emptive or non-pre-emptive scheduling rules.

On the other hand the operating system kernel may make available support for threads itself. In this case the threads may be realize as separate processes that happen to share a complete or partial common address space or they may be realize as separate execution contexts within a single process. Any way the threads are organized they appear as completely independent execution contexts to the application.

Hybrid implementations are also possible, where a large number of threads are made available to the application using a smaller number of kernel threads. Runnable user threads are run by the first available kernel thread.

In Linux threads are executing within the kernel by a clone mechanism that creates a new process within the same virtual address space as the parent process. Unlike several kernel-based thread packages the Linux kernel doesn't make any distinction between threads and processes a thread is merely a process that didn't create a new virtual address space when it was initialized.

The major advantage of implementing threads in the kernel rather than in a user-mode library is that

  • Kernel-threaded systems can take improvement of multiple processors if they are available.
  • If one thread obstructs in a kernel service routine (for instance a system call or page fault) other threads are still capable to run.

A lesser benefit is the ability to assign different security attributes to each thread. User-mode implementations don't have these advantages. For the reason that such implementations run completely within a single kernel execution context merely one thread can ever be running at once even if multiple CPUs are obtainable. For the same cause if one thread enters a system call no other threads can run until that system call completes. Consequently one thread doing a blocking disk read will hold up each thread in the application. Nevertheless user-mode implementations do have their own merits. The most clear is performance- invoking the kernel's own scheduler to switch among threads involves entering a new protection domain as the CPU switches to kernel mode while switching between threads in user mode can be achieved simply by saving and restoring the main CPU registers. User-mode threads may as well consume less system memory- most UNIX systems will reserve at least a full page for a kernel stack for each kernel thread and this stack mayn't be page-able.

The hybrid approach executing multiple user threads over a smaller number of kernel threads allows a balance between these tradeoffs to be achieved. The kernel threads will permit multiple threads to be in blocking kernel calls at once as well as will permit running on multiple CPUs as well as user-mode thread switching can occur within each kernel thread to perform lightweight threading without the overheads of having too many kernel threads. The drawback of this approach is complexity giving control over the trade off complicates the thread library's user interface.


Related Discussions:- Illustrate different ways that threads could be implemented

Define disadvantages of top down parsing of backtracking, Define Disadvanta...

Define Disadvantages of Top Down parsing of Backtracking The disadvantages of top down parsing of backtracking: (i)  Semantic actions cannot be carried out while making a pr

Determine what the expansion of nested macro calls follows, Determine what ...

Determine what the expansion of nested macro calls follows  The expansion of nested macro calls follows the Last in First out (LIFO) rule.

Explain file structure, File structure Certain files must conform to a ...

File structure Certain files must conform to a needed structure that is understood by the operating system. The operating system may consist that an executable file has a parti

Quick, why we say " OS is a resource allocator" and “OS is a control progr...

why we say " OS is a resource allocator" and “OS is a control program"?

Illustrate the handshaking protocol, Q. The instance of handshaking used 2...

Q. The instance of handshaking used 2 bits: a busy bit as well as a command-ready bit. Is it probable to implement this handshaking with only 1 bit? If it is illustrate the protoc

What is a dispatcher, What is a Dispatcher? The dispatcher is the modul...

What is a Dispatcher? The dispatcher is the module that gives control of the CPU to the process selected by the short- term scheduler. This function includes: Switching

What is dispatch latency, What is dispatch latency? The time taken by t...

What is dispatch latency? The time taken by the dispatcher to stop one process and begin another running is known as dispatch latency.

Describe the buddy system of memory allocation, Buddy system of memory allo...

Buddy system of memory allocation Free memory is used to maintain in linked lists, each of similar sized blocks. Every block is of size 2^k. When some memory is needed by a th

Explain about file allocation methods, Explain about file allocation method...

Explain about file allocation methods? The main problem in direct-access nature is how to assign space to these files so that disk space if utilized effectively and files can b

CPU Scheduing FCFS, Assume that P A , P B and P C are three distinguished p...

Assume that P A , P B and P C are three distinguished program s . When P A is executed, it needs 10 ticks to complete its execution and it forks new processes executing P B at tick

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd