i have some questions about domain and thread
Hi, all first, I do not speak English well. please answer to me easily. i'm studying seL4 kernel source code. i have some questions. 1. What is domain? i read manual but i don't understand well. I hope that you explain to me in detail about the domain. 2. What is the maximum number of threads that can be created in one domain? 3. Usually there is a function to create a new thread in kernel source code. but i can't find the function in seL4 kernel source code. What is the way to create a new user thread in seL4? also, what is the way to exit user thread in seL4? thanks.
On 4/04/2016 4:57 PM, 김은영 wrote:
Hi, all
1. What is domain? i read manual but i don't understand well.
I hope that you explain to me in detail about the domain.
Hi, Let me try to answer your questions about domains. I'll leave others to answer questions about the specifics of the thread API. seL4 implements a two-level scheduling algorithm. You can think of domains as a way to group different threads together. Domains are important if you are trying to implement a system where you need to prevent information leakage between different system components --- i.e. you have various components that are mutually suspicious and some of them need to keep secrets from others. Domains exist to prevent certain kinds of information leaks via the scheduler. When built, the kernel is configured to support some static number of scheduling domains, and to schedule domains according to a fixed, repeating schedule. This allows for fully-deterministic scheduling of domains, and means that the decision to schedule a particular domain never depends on secret information. For instance, whether a particular domain gets scheduled does not depend on whether any of its threads are actually runnable -- if all threads assigned to the current domain are blocked (i.e. cannot be scheduled) then the kernel schedules the idle thread instead to take up the slack time. If you don't care about enforcing confidentiality between mutually untrusting components, then you can simply leave the number of domains at 1 (the default) and have all threads automatically assigned to domain 0 (the only domain in the system). In this case, the scheduler devolves to the priority-based one that schedules all threads in accordance with their priority. Within a particular domain, threads are scheduled using the kernel's priority-based scheduling mechanism.
2. What is the maximum number of threads that can be created in one domain?
There is no maximum Thanks Toby ________________________________ The information in this e-mail may be confidential and subject to legal professional privilege and/or copyright. National ICT Australia Limited accepts no liability for any damage caused by this email or its attachments.
participants (2)
-
Toby Murray
-
김은영