- Hard real-time systems – required to complete a critical task within a guaranteed amount of time
- Soft real-time computing – requires that critical processes receive priority over less fortunate ones
Showing posts with label OS-6. Show all posts
Showing posts with label OS-6. Show all posts
Monday, August 17, 2009
REAL-TIME SCHEDULING
Thursday, August 13, 2009
Thread Scheduling
Across platforms, thread scheduling1 tends to be based on at least the following criteria:
*a priority, or in fact usually multiple "priority" settings that we'll discuss below;
*a quantum, or number of allocated timeslices of CPU, which essentially determines the amount of CPU time a thread is allotted before it is forced to yield the CPU to another thread of the same or lower priority (the system will keep track of the remaining quantum at any given time, plus its default quantum, which could depend on thread type and/or system configuration);
*a state, notably "runnable" vs "waiting";
*metrics about the behaviour of threads, such as recent CPU usage or the time since it last ran (i.e. had a share of CPU), or the fact that it has "just received an event it was waiting for".
Most systems use what we might dub priority-based round-robin scheduling to some extent. The general principles are:
*a thread of higher priority (which is a function of base and local priorities) will preempt a thread of lower priority;
*otherwise, threads of equal priority will essentially take turns at getting an allocated slice or quantum of CPU;
*there are a few extra "tweaks" to make things work.
*a priority, or in fact usually multiple "priority" settings that we'll discuss below;
*a quantum, or number of allocated timeslices of CPU, which essentially determines the amount of CPU time a thread is allotted before it is forced to yield the CPU to another thread of the same or lower priority (the system will keep track of the remaining quantum at any given time, plus its default quantum, which could depend on thread type and/or system configuration);
*a state, notably "runnable" vs "waiting";
*metrics about the behaviour of threads, such as recent CPU usage or the time since it last ran (i.e. had a share of CPU), or the fact that it has "just received an event it was waiting for".
Most systems use what we might dub priority-based round-robin scheduling to some extent. The general principles are:
*a thread of higher priority (which is a function of base and local priorities) will preempt a thread of lower priority;
*otherwise, threads of equal priority will essentially take turns at getting an allocated slice or quantum of CPU;
*there are a few extra "tweaks" to make things work.
Multiprocessor Scheduling
- In computer science, multiprocessor scheduling is an NP-Complete optimization problem. The problem statement is: "Given a set J of jobs where job ji has length li and a number of processors mi, what is the minimum possible time required to schedule all jobs in J on m processors such that none overlap?" The applications of this problem are numerous, but are, as suggested by the name of the problem, most strongly associated with the scheduling of computational tasks in a multiprocessor environment.
Subscribe to:
Posts (Atom)
