Simple Review questions for EECE 314 - Lecture 2 and 3

unevenoliveSoftware and s/w Development

Dec 1, 2013 (3 years and 6 months ago)

77 views

Simple
Review questions for
EECE 314

-

Lecture 2 and 3



There are no answers except those contained in the notes and some thought/reasoning
from you.




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
p
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
threads code



Single tasking software is relatively easy to design, why is concurrent software
mor
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
algorithms?

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
e system?



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
core/tim
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


how is
parallelism
built into the language.



Exercise
: express ((
-
b) +/
-

sqrt(b
2



4ac))/(2a)
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
r purpose.



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
difference)?



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?