TempleOSCD_150216.ISO
This commit is contained in:
1 parent
64f679eeb9
commit
401601816c
531 files changed
+23341
-22071
No files matched your search
+3
-5
@@ -1,14 +1,12 @@
|
||||
$WW,1$$FG,5$$TX+CX,"MutliCore"$$FG$
|
||||
|
||||
TempleOS does master-slave multicore instead of SMP. $FG,2$Core#0$FG$ is the master. The master core assigns computational jobs to other cores. It is symmetrical, however, in the sense that you can freely do file access and heap allocations because there are locks. See $LK,"::/Demo/MultiCore/LoadTest.CPP"$. TempleOS does not move tasks between cores.
|
||||
$WW,1$TempleOS does master-slave multicore instead of SMP. $GREEN$Core#0$FG$ is the master. The master core assigns computational jobs to other cores. It is symmetrical, however, in the sense that you can freely do file access and heap allocations because there are locks. See $LK,"::/Demo/MultiCore/LoadTest.CPP"$. TempleOS does not move tasks between cores.
|
||||
|
||||
Only tasks on core#0 can have windows, but other cores can help render them.
|
||||
|
||||
Each core has a $FG,2$seth task$FG$ which is the father of all tasks on that core. Adam is the seth task on core 0.
|
||||
Each core has a $GREEN$seth task$FG$ which is the father of all tasks on that core. Adam is the seth task on core 0.
|
||||
|
||||
You give a job to a seth task with $LK,"JobQue",A="MN:JobQue"$() and get the result with $LK,"GetResult",A="MN:GetResult"$(). You spawn a task on another core with $LK,"Spawn",A="MN:Spawn"$().
|
||||
|
||||
Note: You must use the $FG,2$LOCK$FG$ asm prefix when changing shared structures in a multicore environment. The $LK,"LBts",A="MN:LBts"$(), $LK,"LBtr",A="MN:LBtr"$() and $LK,"LBtc",A="MN:LBtc"$() instructions have $FG,2$LOCK$FG$ prefixes. The compiler has a $FG,2$lock{}$FG$ feature but it doesn't work well. See $LK,"::/Demo/MultiCore/Lock.CPP"$.
|
||||
Note: You must use the $GREEN$LOCK$FG$ asm prefix when changing shared structures in a multicore environment. The $LK,"LBts",A="MN:LBts"$(), $LK,"LBtr",A="MN:LBtr"$() and $LK,"LBtc",A="MN:LBtc"$() instructions have $GREEN$LOCK$FG$ prefixes. The compiler has a $GREEN$lock{}$FG$ feature but it doesn't work well. See $LK,"::/Demo/MultiCore/Lock.CPP"$.
|
||||
|
||||
See $LK,"::/Demo/Graphics/Transform.CPP"$.
|
||||
See $LK,"::/Kernel/MultiProc.CPP"$.
|
||||
Reference in new issue
Block a user