2.1.5 Thinking Concurrently Flashcards
1
Q
dealing
What is meant by thinking concurrently?
A
- Skill which involves working out which parts of a program can be developed to take place or be processed at the same time
- An application is making progress on more than one task at the same time
2
Q
slice
What is concurrent processing?
A
- When each task is given a slice of processor time to make it look like the tasks are being completed simultaneously when in reality they are executed sequentially
- A system is said to be concurrent if it can support two or more actions in progress at the same time
3
Q
smaller
What is parallelism?
A
Application splits the tasks into smaller subtasks which can be processed in parallel
4
Q
multiple
What is parallel processing?
A
When multiple processors are used to complete more than one task simultaneously
5
Q
RANT
What are the advantages of concurrent processing?
A
- Reactive programming: User can interact with the application while other tasks are running in the background
- Availability of services: A long running task won’t delay a short running one
- Number of tasks completed in a given time is increased
- Time wasted by the processor waiting for a user interaction or another process is reduced
6
Q
TLR
What are the disadvantages of concurrent processing?
A
- Takes longer to process if there’s a large number of users or tasks involved as tasks cannot be completed at once
- Liveness: Tasks can suspend and wait on eachother indefinitely, causing a deadlock
- Resource consumption: Threads can consume resources in terms of scheduling, context-switching and synchronisation