Review questions for
Lecture 2 and 3
There are no answers except those contained in the notes and some thought/reasoning
What is meant by a concurrent system
discuss ways in which concurrency can
be implemented in hardware.
What is meant by a heterogeneous vs homogenous architecture? Describe the
advantages and disadvantages of both.
What is meant by distributed computing
give an example of it
What is meant by Grid computing
give an example.
Why is concurrent programming
different to parallel computing, even though
they share a lot in common?
What are the advantages and disadvantages of designing concurrent systems vs
single tasking systems.
When we introduce concurrency into a software system, we can decompose it into
rocesses and threads: Discuss what it meant by these two terms, i.e. explain how
you would write each type
, i.e. what does a processes code look like, ditto a
Single tasking software is relatively easy to design, why is concurrent software
e difficult, i.e. what 2 new problems do we have to deal with when we
introduce concurrency into a software solution.
What is meant by a data dependency? Give an example of it in a simple problem
Why do data dependencies limit the ability of parallel prog
rammers to write faster
Why is the calculation of the Fibonacci series a problem than can
never be made to run faster with parallel programming.
Why is there a natural limit to how much
concurrency we can realistically
introduce into a softwar
Why is concurrent software so difficult to debug
What is meant by Speedup? Can speedup ever by less than 1.
Why is the performance of a 4
CPU system (with 1 core each) likely to be lower
(slower) than a Single CPU with 4 cores (assume the clock
speed, cache size etc is
the same for all of them).
Define what is meant by time slicing and packets of time. Why do we need a real
time clock with a time slicing system?
Explain how multiple processes and threads are scheduled to run in a single
e sliced system so they appear to run concurrently.
How can the introduction or multiple cores improve the scheduling of multiple
process and threads and improve the illusion of concurrency.
If a system with 4 cores was running 1, 2 4, 8 processes or threa
ds, explain how
these might be allocated to cores.
List some of the functions of an operating system Kernel. List some popular
operating systems Kernels
Why do systems programmers often only become experts in only one Kernel
What is meant by Hierarchical p
rocess/thread decomposition and why do we try
to limit the number of process and threads we create in an application? What
factors govern the need to create processes/threads in our system?
Explain what is meant by a parallel programming language
built into the language.
: express ((
in a parallel programming
language for maximum parallelism
It is said that
a parallel programming language compiler hides what really
happens at the thread level inside
the operating system. Explain how such a
compiler translates PAR and SEQ into conventional threads along with calls to
the kernel to create the threads.
Discuss what the CProcess class in the RT library does. List the member function
of this class and thei
List the parameters of the CProcess constructor and their purpose
Explains the Parent/Child relationship in relation to processes.
How do we create processes with the own window vs sharing the parent window?
How do we create processes in the sus
pended vs active state (and what is the
What is meant by a process priority and how do we control it?
How can a parent process pass parameters to a child process within the CProcess
constructor call. Further, how is the child process written t
o pick up or gain access
to the parameters passed to it by the parent?