Concurrent Systems Flashcards
What is concurrency?
Doing more than one thing at a time
What is concurrent computing?
When a program has more than one control flow
What is a system in software engineering context?
A large program or application
What is a distributed system?
System that executes over multiple physical hosts, each having different resources. Hosts must be networked together
Define intranet
Network internal to an organization
Define internet
Network external to all organizations (public network)
Why use a distributed system?
Users and hosts can be in different physical locations
A single host may have insufficient processing power
What is a multi-process system?
System made up of multiple processes, like different executables, or multiple copies of an executable
What does each process have in a multi-process system?
Independent control flow and virtual memory
Why use a multi-process system?
The system may have very different tasks to perform
These tasks may be completely independent from each other and use different resources
What is a multi-threaded system?
Where a process has multiple control flows, called threads
Each thread shares the same virtual memory, address space, and resources
Different threads may need to _________ with eachother
Synchronize
To communicate or exchange information
Possible issues with multi-threaded systems
Race conditions, deadlocks
Why use a multi-threaded system?
A process may have different tasks to perform, which may be somewhat dependent on each other
Issues in concurrency
Shared resources and deadlock