By entering this site you need to consent to the use of cookies and their functional use according to this privacy policy. Cookies help us to provide the functional services of the website. Kindly read the below message of use and consent to the use.
The following cookies are stored and shared when accessing this website:
- Internal cookies for the MediaWiki site. This is used for user authentication and article modifications.
- Third-party cookies from Google providing services for Google AdSense and Google Analytics
We will never use data collected outside of the above scope.
Pathetic start of documenting the kernel scheduler, but somebody's gotta do it. Feel free to confirm and improve!
Line 6:
Line 6:
Low-level system information is exposed by the kernel via mapping the [[Configuration Memory]] page in all processes.
Low-level system information is exposed by the kernel via mapping the [[Configuration Memory]] page in all processes.
+
+
= Scheduler =
+
+
Little is known about the scheduler behavior of the 3DS kernel.
+
+
Threads on the [[Glossary#appcore|ARM11 appcore]] seem to use cooperative multithreading, i.e. the only way for a CPU to be assigned to another thread is by invoking a system call. Most system calls trigger the scheduler, although some of them only conditionally do.
+
+
Threads on the [[Glossary#syscore|ARM11 syscore]] have been hypothesized to use preemptive multithreading, but this is unconfirmed so far.
+
+
It is unknown how the ARM9 CPU core and the two remaining New3DS ARM11 cores are scheduled.