I know MP is the manage of multiple processes within multiple processors, but is there any difference between that and SMP? Is it that in SMP you can execute multiple threads from the same process simultaniously, and MP you can only have one process occupy one processor?
example of what i think the differences are:
SMP
P1 has 3 threads: P1T1, P1T2 and P1T3 P2 has 2 threads: P2T1 and P2T2.
on a computer with 3 processors, you can assign P1T1 to processor 1, P1T2 to processor 2 and P1T3 to processor 3 simultaneously if all are available, or P2T1 to processor 1, and P2T2 to processor 2 and P1T1 to processor 3.
MP
P1 has 3 threads: P1T1, P1T2 and P1T3 P2 has 2 threads: P2T1 and P2T2.
on a computer with 3 processors, you can assign P1T1 to processor 1 and - P1 has 3 threads: P1T1, P1T2 and P1T3 P2 has 2 threads: P2T1 and P2T2.
on a computer with 3 processors, you can assign P1T1 to processor 1, but P1T2 and P1T3 have to wait until P1T1 is done in order to execute, while P2T1 can go to processor 2, and, again, P2T2 would have to wait until P2T1 is done executing before it ca execute.
Does this make sence? If it does, am I on the right track? Thx, I got an OS exam today and I'm studying. Thank you for any help you guys can provide.
Also, how are threads scheaduled? I know that is a very broad question, but is there any specific way? or is it based on the scheaduling the system has implemented? I know there is round robin scheaduling, higher priority, time slicing, time sharing, shortest amount of time... If this question doesnt make sence, no worries, I appreciate any help you guys can give.