Quote:
Q1. Is multi threading a hardware / chip level concept, an OS level or an application level concept ?
Multi-threading can exist at three levels (userland/kernel/CPU) and each are not necessarily linked (a multi-threaded process can run on a single thread CPU and single threaded processes can take advantage of a multi-threaded (a.k.a hyperthreading) CPU.
Quote:
Q2. What's the multi threading position in relation to Unix, Linux and Windows ?
As far as kernels are concerned, CPU multi-threading/hyperthreading is not really different than multi-core or multi-CPU support.
Process threads are implemented through different APIs under Windows than under Unix and Linux which nowadays are both mostly using POSIX threads. The implementation used to be more complex with the "many to one" model (many software threads bound to a single kernel level thread) or the "many to many" one compared to the model mostly used today "one to one".
Quote:
Q3. Is multi threading only in relation to application processes or is it for OS processes as well ? I am trying to differentiate multi threading from the older CPU concepts of timeslicing, round robin etc
There is no difference, time-slicing / scheduling algorithms apply to threads and always did even when all processes were single threaded.
Quote:
My understanding is that you can have multi processing systems which switch between or execute processes in parallel. However multi threading takes this a step further in that a process can be broken down into threads and the processor execute the individual threads ( again via switching or parallel depending on the number of processors / cores you have )
Don't confuse CPU multi/hyper-threading/multi-core (first sentence) and process multi-threading (second one).
Quote:
Q4. Are processors therefore specifically designed either to execute full processes, threads or both ? Can a single processor execute a mix of full processes and threads ? i.e. does a processor operate only at either a process level or a thread level ?
There is no such thing as a full process vs a thread execution because threads are not other entities than processes. A process is just a collection of one or more (user level) threads.
Quote:
Q5. What's the difference between a single processor with multi cores and a multi processor with single core processors ?
No that much. One is some components are shared by the multiple-cores of a single CPU. This can impact performance.
Quote:
Q6. Are most modern processors today, multi thread capable processors ( or is it the OS which determines this ). Does the processor have to be specifically set to multi threading ?
The trend is for processors to have more than one core and for the cores to be multi-threaded. The OS doesn't determine what the hardware is. There is usually no configuration involved although with some high end CPUs like the UltraSPARC T4 and newer are able to switch from multi-thread to single thread mode, i.e. to monopolize all of a core resources to a single process thread.