0
$\begingroup$

I'm a Computer Science student currently learning about concurrent processing. I found the benefits and disadvantages in my book vague, did some online research and put together a more detailed way of defining the disadvantage of concurrent processing; thoughts and corrections are appreciated.

Book version: "The drawback is that if a large number of users are all trying to run programs, and some of these involve a lot of computation, these programs will take longer to complete."

My version: Using concurrent processing on multiple users running the same program, means no one can finish until everyone has nearly finished. This is inefficient compared to consecutive processing where the last user would finish at the same time as the last user in concurrent processing, but some users would finish significantly earlier. However the scaling of this inefficiency is limited by the amount of threads, because concurrent processing only switches between the first process of each thread queue. The process at the beginning of each thread can change with the use of interrupts though.

Do you think I elaborated on the book properly, or misunderstood it?

$\endgroup$
9
  • 2
    $\begingroup$ Please add a reference to your book so that the answers might be more targeted and helpful. $\endgroup$ – John L. Dec 21 '18 at 23:13
  • $\begingroup$ "Using concurrent processing on multiple users running the same program, means no one can finish until everyone has finished". This looks like misunderstanding or misstatement to me. Concurrent processes can finish at different times of course. $\endgroup$ – John L. Dec 21 '18 at 23:15
  • $\begingroup$ Here is a link to the book I'm referring too:amazon.co.uk/OCR-AS-Level-Computer-Science/dp/1910523054/… $\endgroup$ – Dylan Dec 22 '18 at 1:02
  • $\begingroup$ Thank you Apass.Jack for the correction. I will edit the post. $\endgroup$ – Dylan Dec 22 '18 at 1:03
  • $\begingroup$ Apass.Jack, would you say the edit is sufficient at conveying your correction? $\endgroup$ – Dylan Dec 22 '18 at 2:44
1
$\begingroup$

I'm studying for the same A Level and have found that deadlock, starvation, race conditions and the overhead affiliated with coordinating simultaneous threads are reasonable, in-depth disadvantages of concurrent processing

Deadlock occurs when each process/thread is waiting for another to finish (meaning that no process is ever able to complete). For example, this happens with cyclic dependencies (e.g. when process A needs B which needs C which needs A).

Starvation is when a process is always denied a resource that it needs, resulting in the process never completing.

Race conditions are when two processes are sharing the same storage location (i.e. variable) and the result of operations depends on the order in which they are ran.

Overhead - there is additional processing overhead to coordinate the individual threads (and combine their results). This can mean, for some problems, a single thread is more efficient than multiple.

Hope I've helped clarify things for anyone who was also confused with this topic,

Josh

Sources:

Cambridge Elevate OCR A Level Textbook

Rensselaer Polytechnic Institute Lecture Notes

$\endgroup$
1
  • 1
    $\begingroup$ By all means, properly attribute contents you quote. Please do not present text as a pixel raster: For starters, 2020 search engines aren't quite up to it. $\endgroup$ – greybeard Mar 22 '20 at 0:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.