Operating systems
1 / 24

Operating Systems - PowerPoint PPT Presentation

  • Uploaded on

Operating Systems. Introduction to Tasks/Threads. Process Characteristics (1). Unit of resource ownership – process is allocated: an address space to hold the process image. control of some resources (files, I/O devices...).

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Operating Systems' - olina

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Operating systems

Operating Systems

Introduction to Tasks/Threads

A. Frank - P. Weisberg

Process characteristics 1
Process Characteristics (1)

  • Unit of resource ownership – process is allocated:

    • an address space to hold the process image.

    • control of some resources (files, I/O devices...).

  • Unit of dispatching – process is an execution path through one or more programs:

    • execution may be interleaved with other process.

    • the process has an execution state and a dispatching priority.

A. Frank - P. Weisberg

Process characteristics 2
Process Characteristics (2)

  • These two characteristics are treated independently by some recent OSs:

    • The unit of resource ownership is usually referred to as a Task or (for historical reasons) also as a Process.

    • The unit of dispatching is usually referred to a Thread or a Light-Weight Process (LWP).

  • A traditional Heavy-Weight Process (HWP) is equal to a task with a single thread.

  • Several threads can exist in the same task.

    • Multithreading - The ability of an OS to support multiple, concurrent paths of execution within a single process.

A. Frank - P. Weisberg

Tasks processes and threads 1
Tasks/Processes and Threads (1)

  • Task Items (shared by all threads of task):

    • address space which holds the process image

    • global variables

    • protected access to files, I/O and other resources

  • Thread Items:

    • an execution state (Running, Ready, etc.)

    • program counter, register set

    • execution stack

    • some per-thread static storage for local variables

    • saved thread context when not running

A. Frank - P. Weisberg

Tasks processes and threads 2
Tasks/Processes and Threads (2)

A. Frank - P. Weisberg

Each thread has its own stack
Each thread has its own stack

A. Frank - P. Weisberg

The process vs thread model
The Process vs. Thread Model

(a) Three processes each with one thread.

(b) One process with three threads.

A. Frank - P. Weisberg

Single and multithreaded processes
Single and Multithreaded Processes

A. Frank - P. Weisberg

Processes vs threads
Processes vs. Threads

  • Creating and managing processes is generally regarded as an expensive task (fork system call).

  • Making sure all the processes peacefully co-exist on the system is not easy (as concurrency transparency comes at a price).

  • Threadscan be thought of as an “execution of a part of a program (in user-space)”.

  • Rather than make the OS responsible for concurrency transparency, it is left to the individual application to manage the creation and scheduling of each thread.

A. Frank - P. Weisberg

Examples of benefits of threads
Examples of benefits of threads

  • Example 1: Word Processor:

    • one thread displays menu and reads user input while another thread executes user commands and a third one writes to disk – the application is more responsive.

  • Example 2: a File/Web server on a LAN:

    • It needs to handle several files/pages requests over a short period.

    • Hence more efficient to create (and destroy) a single thread for each request.

    • On a SMP machine: multiple threads can possibly be executing simultaneously on different processors.

A. Frank - P. Weisberg

Thread usage example word processor
Thread usage example: Word Processor

A. Frank - P. Weisberg

Thread usage example web server
Thread usage example: Web Server

A. Frank - P. Weisberg

Web server threads
Web Server Threads

  • Dispatcher thread

  • Worker thread

A. Frank - P. Weisberg

Multithreaded server architecture
Multithreaded Server Architecture

A. Frank - P. Weisberg

Important implications
Important Implications

  • Two Important Implications:

    • Threaded applications often run faster than non-threaded applications (as context-switches between kernel and user-space are avoided).

    • Threaded applications are harder to develop (although simple, clean designs can help here).

  • Additionally, the assumption is that the development environment provides a Threads Library for developers to use (most modern environments do).

A. Frank - P. Weisberg

Application benefits of threads 1
Application benefits of threads (1)

  • Consider an application that consists of several independent parts that do not need to run in sequence.

  • Each part can be implemented as a thread.

  • Whenever one thread is blocked waiting for an I/O, execution could possibly switch to another thread of the same application (instead of blocking it and switching to another application).

A. Frank - P. Weisberg

Application benefits of threads 2
Application benefits of threads (2)

  • Since threads within the same process share memory and files, they can communicate with each other without invoking the kernel.

  • Therefore necessary to synchronize the activities of various threads so that they do not obtain inconsistent views of the current data.

A. Frank - P. Weisberg

Pop up threads
Pop-Up Threads

A. Frank - P. Weisberg

Benefits of threads
Benefits of Threads

Threads allows parallel activity inside a single address space:

  • While one server thread is blocked and waiting, a second thread in the same task can run.

  • Less time to create and terminate a thread than a process (because we do not need another address space).

  • Less time to switch between two threads than between processes.

  • Inter-thread communication and synchronization is very fast.

A. Frank - P. Weisberg

Perceived benefits
Perceived Benefits

  • Responsiveness

  • Resource Sharing

  • Economy

  • Scalability

  • Utilization of multiprocessing architectures

  • Utilization of networked/distributed systems

A. Frank - P. Weisberg

Thread characteristics
Thread Characteristics

  • Has an execution context/state.

  • Thread context is saved when not running.

  • Has an execution stack and some per-thread static storage for local variables.

  • Has access to the memory address space and resources of its task:

    • all threads of a task share this.

    • when one thread alters a (non-private) memory item, all other threads (of the task) see that.

    • a file open with one thread, is available to others.

A. Frank - P. Weisberg

Threads states
Threads States

  • Three key states: running, ready, blocked

  • They have no suspend state because all threads within same task share the same address space

    • Indeed: suspending (i.e., swapping) a single thread involves suspending all threads of the same task.

  • Termination of a task, terminates all threads within the task.

A. Frank - P. Weisberg

Multithreading example
Multithreading Example

A. Frank - P. Weisberg