This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

RTX Tiny: Round-robin questions

The RTX51 Tiny "tips" article states the following:

Round-robin multitasking is preemptive. It interrupts your task and switches to a new task after the specified number of OS ticks. Refer to CONF_TNY.A51.

But elsewhere in the documentation (http://www.keil.com/support/man/docs/tr51/tr51_sysreq.htm, among others), it is stated that Tiny can only do cooperative (not preemptive) multitasking. Why the discrepancy?

Also: task priorities can not be assigned in RTX-Tiny (as per the above referenced article). So why does the option to disable round-robin task switching (in conf_tiny_banking.a51) exist if round-robin is the only allowed method anyway? In other words, will the system act any differently whether or not RR is disabled?

Parents
  • Yes, the traditional definition of preemptive doesn't have anything with priority to do. It just means that a task switch is asynchronous, whereas a non-preemptive OS can only switch a task when the task calls a subset of the OS API, for example a wait function.

    Keil seems to have narrowed down the definition of preemptive to mean an OS that may switch threads before the thread has consumed it's full time slice (or voluntary offered a task switch).

Reply
  • Yes, the traditional definition of preemptive doesn't have anything with priority to do. It just means that a task switch is asynchronous, whereas a non-preemptive OS can only switch a task when the task calls a subset of the OS API, for example a wait function.

    Keil seems to have narrowed down the definition of preemptive to mean an OS that may switch threads before the thread has consumed it's full time slice (or voluntary offered a task switch).

Children
No data