[SOLVED] CS 563 Concurrent Programming

$25

File Name: CS_563_Concurrent_Programming.zip
File Size: 273.18 KB

5/5 - (1 vote)

CS 563 Concurrent Programming
Lecture 2: Processes & Threads

Processes vs. Threads

Copyright By Assignmentchef assignmentchef

Process 1 Process 2

What is a process?
A program in execution
Associated with a number of resources (memory, files) which are protected from other processes
Processes exist concurrently

History of Concurrency 60s

History of Concurrency 70s

History of Concurrency 80s

Threads: Motivation
Process are created and managed by the OS kernel
Process creation is expensive, e.g., fork
Context switching is expensive
Inter process communication requires kernel intervention Cooperating processes: no need for memory protection

User space
System space

History of Concurrency 80s

Thread Implementation
Threads are provided as a package, including operations to create, destroy, and synchronize them
A package can be implemented as:
User-level threads Kernel threads Hybrid

User-Level Threads
Threads management done by user-level threads library Thread library entirely executed in user space
Cheap management and context switching
However, a blocking system call blocks all peer threads Examples
POSIX Pthreads-threads Java threads
User Space
Kernel Space
Threads Library

Kernel-Level Threads
Kernel is aware of and schedules threads
A blocking system call will not block all peer threads
Management and context switching is relatively expensive
Windows UNIX Linux
Threads Library
User Space
Kernel Space
User Space
Kernel Space

Thread creation is done in the user space
Bulk of scheduling and synchronization of threads is done by application
User level threads are mapped to a number of
kernel level threads
User Space
Kernel Space
User Space
Kernel Space
User Space
Kernel Space
Threads Library

History of Concurrency 90s

History of Concurrency 00s

Example: Java Threads
Threads are created through thread objects which belong to the standard class Thread
Each thread object is assigned a virtual processor that can be accessed and controlled through the operations of the thread object
e.g. the execution of a thread belonging to a thread object t is started by calling the start operation of the object: t.start()

Java Threads
Thread creation
Option 1 Option 2

Java Threads
Termination
To await the termination of a thread t:
This operation may return with an Interrupted exception To force a thread to terminate:
This is deprecated (not recommended to use)

Java Threads
Thread cancellation
Set the interrupt mark of the thread t:
t.interrupt()
Test the interrupt mark of the current thread:
Thread.interrupted()

Java Threads
Other operations
Thread.sleep(n) waits for (at least) n milliseconds
Thread.currentThread() returns the Thread object of the calling thread
t.suspend(), t.resume() temporary cease the activity of a thread (deprecated)

Java Threads: example

CS: assignmentchef QQ: 1823890830 Email: [email protected]

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] CS 563 Concurrent Programming
$25