[Link].
uk
Concurrent and Distributed Systems
Introduction to Concurrent Systems
Slide 1
Slide 2
Introduction
• Some Logistics
• Course Contents
• Course Layout
• Resources for private study
• Introduction / Motivation to the subject
Concurrent & Distributed Systems Slide 3
Course Contents
• Lectures
– Previously :
• programming Java (CSCU9P1/P2/A3/A5)
• systems (CSCU9V4)
– Now :
• Processes and Threads and their management
• Concurrency
• Distributed systems
• Laboratories
– Focus not so much Java, more Concurrency & Distribution
– Practical experience on taught (lecture) material
Concurrent & Distributed Systems Slide 4
Course Layout
• Introduction to lecture series
• Process and Thread Management
– Basic process model
– Introduction of the problem
• Concurrency
– Means of communication
– Critical sections, Synchronisation
– Scheduling
• Distributed Systems
– Client – Server model
– Java for distributed systems
Concurrent & Distributed Systems Slide 5
Resources for Private Study
• Internet: lectures & lab sheets will be available in pdf format
• Books
– Applied Operating Systems Concepts, A. Silberschatz, P. Galvin, G.
Gagne, John Wiley & Sons
– Concurrent Systems, J. Bacon, Addison-Wesley
– Modern Operating Systems, A.S. Tanenbaum, Prentice-Hall,
– Distributed Systems, A.S. Tanenbaum, M. v. Steen, Prentice-Hall
• Emails or Teams chat
– Mario Kolberg
[Link]@[Link]
Concurrent & Distributed Systems Slide 6
Concurrent & Distributed Systems
• Concurrent System
– Several activities are happening at the same time
Two activities are concurrent if, at any given time, each is between its
starting and finishing point. (Bacon)
• Distributed Systems
– Special case of concurrent systems
A distributed system is a collection of independent computers that
appear to the user of the system as a single computer. (Tanenbaum)
– Two aspects:
• Hardware: autonomous machines
• Software: hardware appears as single machine to the user
Concurrent & Distributed Systems Slide 7
Classification of Concurrent Systems
• Inherently Concurrent Systems
– Real-time Systems
– Operating Systems
• Potentially Concurrent Systems
– Large amount of computing (graphics applications)
– Large amount of data to be processed (simulations)
– Real-time requirement for the result (voice processing)
– Hardware is available to run applications in parallel
Concurrent & Distributed Systems Slide 8
Example: Real-time Systems
• Timing constraints dictated by the environment of a system
• System has to respond to external events within a certain
time
• Examples: - aircraft systems
- hospital patient monitoring
• Software monitors & controls aspects of the environment of
the system
Concurrent & Distributed Systems Slide 9
Example: Operating Systems
• Single user and multi-user systems
• Devices are slow compared to the main processor
– OS attends to the devices when necessary
– Other tasks are performed while devices are busy
• Users run a number of applications in parallel
• Multi-core CPU
• Running programs of different users in parallel
• Preemptive and non-preemptive scheduling
• Distributed Operating Systems
Concurrent & Distributed Systems Slide 10
Examples of Potential Concurrency
• Examples in this category would benefit from concurrency
• Example cooking recipe
– Can be ‘executed’ sequentially
– Some steps can be carried out simultaneously
– Ingredients for the next step need to be ready
• How is concurrency introduced
– Partition data, replicate code
– pipeline
Concurrent & Distributed Systems Slide 11
Partition data, replicate code (Bacon)
Partition Partition Partition
of data of data of data
Copy of Copy of Copy of
Code to Code to Code to
process data process data process data
Manager of parallel computations
Concurrent & Distributed Systems Slide 12
Pipeline (Bacon)
Data 5
First Second Third Fourth
phase phase phase phase
of code of code of code of code
Data 4 Data 3 Data 2 Data 1
Step 1 done Step 1,2 done Step 1,2,3 done finished
Concurrent & Distributed Systems Slide 13
Benefits of Distributed Systems
Economics Data Sharing
Speed Device Sharing
Inherent
Communication
Distribution
Reliability Flexibility
Incremental
Transparency
Growth
Concurrent & Distributed Systems Slide 14
Challenges of Distributed Systems
Expensive Software Communications Delay
Scalability/Overhead Inconsistent State
Security No Global Time
Independent Failure
Heterogeneity
Nodes
Concurrent & Distributed Systems Slide 15