Answers

Question and Answer:

  Home  VxWorks

⟩ Which RTOS supports Non-Preemptive scheduling? Why other scheduling methods are supported by such Oses?

The standard UNIX kernel is a nonpreemptive kernel; it does

not allow a user process to preempt a process executing in

kernel mode. Once a running process issues a system call and

enters kernel mode, preemptive context switches are disabled

until the system call is completed. Although there are

context switches, a system call may take an arbitrarily long

time to execute without voluntarily giving up the processor.

During that time, the process that made the system call may

delay the execution of a higher-priority, runnable, realtime

process.

The maximum process preemption latency for a nonpreemptive

kernel is the maximum amount of time it can take for the

running, kernel-mode process to switch out of kernel mode

back into user mode and then be preempted by a

higher-priority process. Under these conditions it is not

unusual for worst-case preemption to take seconds, which is

clearly unacceptable for many realtime applications.

 175 views

More Questions for you: