Talk:Real-time operating system/Archives/2014

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Misc. Cleanup

Alt-Pcyberpunk

"...that has been developed for real-time applications." I'm not so sure about the "for".

As for the quotation at the end and its purported refutation - Forth solves the problem and provides a framework, without being an operating system unless you decide to define what Forth does as an "operating system". PML.

Remove non sequiter

A new architecture is currently being developed.

Well, yes. New architectures are constantly being developed. Without any more detail, this doesn't tell me anything. MatthewWilcox 12:21, 15 Dec 2004 (UTC)

Incorrect or misleading content

I feel that some of the content in here is incorrect or misleading. I am going to make some changes. I hope not to offend anyone. Redslime 28 Sept. 2005 (UTC)

So far, so good -- carry on!
Atlant 12:25, 3 October 2005 (UTC)

Throughout the article, shouldn't it be 'an RTOS' instead of 'a RTOS'? (Assuming RTOS is pronounced 'are tee oh ess') --Anon

No, that is bad English.

"An RTOS" is right. —Preceding unsigned comment added by 24.30.138.61 (talk) 04:50, 9 April 2008 (UTC)

Has it occured to anyone...

that the article is full of self actualizing create talk that enerigzes the full potential of the collective bloggosphere synergy....

seriously can somone put this in terminology that doesnt link back to itself? (eg. "a real time operating system is a system that executes tasks in real time), such definitions really are not helpful.

EDIT, perhaps include content from this page http://64.233.187.104/search?q=cache:y9bdxyIM3LgJ:linuxdevices.com/articles/AT4627965573.html+%22real+time+operating+system%22&hl=en&client=opera i belive it provides and excellent defintions and explainations —Preceding unsigned comment added by 161.184.206.122 (talkcontribs)

The referenced article contains at least one false assertion, that RTOSs provide an abstraction layer: this is not an essential feature of a realtime operating system. The article also gives the impression that an RTOS contains a number of features, such as i/o supervision, memory allocation, etc., none of which are necessary—but are convenient. —EncMstr 17:23, 8 August 2006 (UTC)

is the section about running the OS from ROM really necessary here? wouldn't it fit better in the article on embedded OSs? —Preceding unsigned comment added by Petrem (talkcontribs)

Yes, I totally agree. —EncMstr 17:23, 8 August 2006 (UTC)

Totally bogus definition!!!

The qualifications of what constitutes a Real time Operating System makes no sense at all!!!

Comparing these examples:

"Examples include embedded applications (programmable thermostats, household appliance controllers, mobile telephones), industrial robots, industrial control (see SCADA), and scientific research equipment."

To:

"An early example of a large-scale real-time operating system was the so-called "control program" developed by American Airlines and IBM for the Sabre Airline Reservations System."

is like comparing a kite to the space shuttle.

Transaction oriented operating systems like TPF(the OS for the Sabre System) are considered real time to the user, but the actual response time can vary based on many factors including workload, network delays, etc. Industril-type applications that take input from analog devices can't guarantee a response time either because the analog input may differ.

The problem is the term 'Real time'. The perception of the term varies depending on the application and should never be used to categorize operating systems. —Preceding unsigned comment added by Klg53 (talkcontribs)

A kite and the space shuttle are comparable when examining aircraft. The essential feature of an RTOS is latency determinism of an operation. Sabre is bound to respond to a transaction in a maximum time—which is determined by what is acceptable for reservation agents. Response times faster than the maximum are acceptable. A programmable thermostat has similar constraints: after a button is pushed, there is an expectation of the maximum length of time it may take to recognize the input and respond. That is the nature of real time. —EncMstr 17:23, 8 August 2006 (UTC)

That is a description of a very soft real time system. Compare that to a hard real time system such as a PC (or a CPU in an embedded system) monitoring a piece of lab equipment that is genrating a new data sample every 20ms, and which has to be polled for the data. If the PC lets more than 20ms lapse between polls an irreplacable data sample will be lost. That is a classic hard real time system and a good candidate for an RTOS. Rusty Cashman 09:14, 28 November 2006 (UTC)

Need more meat?

I was wondering if the following changes are reasonable..

1. First para -

What constitures real-time and what constitues a real-time OS has been discussed a zillion times before on the realtime newsgroup. Perhaps we should state the commonly accepted ideas and post a pointer to realtime faq here.

2. Third para - I find the refernce to Sabre resevation system as a real-time system to be controversial at best. All systems need to have some reasonable thruput and a lot of them have mechanism to ensure that they respond in good time .. but that doesnt make them real-time. If the sabre reservation system is late in responding what happens? Is the action result incorrect? Are there any references to the Sabre system being designed as a real-time system?
3. Design philosophies - If we agree on a definition for real-time OS, preferably as one defined in the comp.realtime faq.. it would probably be easier to discuss this. Assuming that all real-time os have to support a multitasking preemptive scheduler, the part about the time sharing thing falls as a sub-feature. (for all tasks with the same priority, you may have round robin scheduling based on time or some other event)
4. Intertask communication and resouce sharing - There is nothing inherently different about these tasks in a real-time system. I am not sure if its appropriate to talk about them here.
5. Interrupt handlers, scheduler, memory allocation - These (and I am sure there are more) are issues that have to be dealt with in designing a real-time system. perhaps having a section that talks about designing with RTOS and then listing these issues might be beneficial?

--Nitin Karkhanis 05:23, 9 November 2006 (UTC)

Agreed on point 2. Sabre is an example of an early networked system, being developed on IBM System/360 computers in the 60's and so. Then it was extended to CompuServe and AOL, so I think it's fair to say it's not "real-time" in any current implementation. Maybe in the 60's it was notable, but is it really being the best single example given? Nerfer (talk) 21:07, 11 December 2012 (UTC)

The FAQ is not apropriate. It is about real-time, not about a real-time OS. And say "tolerate hundreds of milliseconds of delays without a problem" to a video game player, or someone viewing a video with a new frame every 50 ms. Arnero 15:24, 1 March 2007 (UTC)

Separating Soft And Hard RTOS's?

I think it would be helpful to mention in the list of RTOS's which ones are capable of meeting hard real-time deadlines. Can someone who is familiar with these OS's do this? Also, perhaps mention some notable applications using each OS? —The preceding unsigned comment was added by 74.136.149.49 (talkcontribs).

I haven't taken a close look at the list lately, but my my casual, unstudied opinion is that at least 75% of the links on the list ought to be thrown out entirely as non-notable linkspam; I've watched this list grow seemingly without bounds over the last several years. One rule of thumb I might apply is if the vendor doesn't show up at the Embedded Systems Conference, advertise in embedded-and-realtime magazines, etc., we toss them.
Atlant

RTOS companies come and go. Requiring people to attend a conference or be a vendor? It reads to me like you have vested interest in the conference. If the link is bad then asked for it to be removed only after you have tried to make a phone call with the company. If there phone is no listed on the website then that may be a sign that is not legitimate. —The preceding unsigned comment was added by 71.255.37.169 (talkcontribs).

Vested interest in the conference? Not at all. What I do have an interest in is enforcing the rules of Wikipedia and one of the rules is that you don't get to use us to advertise for you. Most of the RTOS's listed here are not in the least bit notable and should, therefore, be removed from this article. And the onus of establishing notability is on the person adding the information to the article and not on the rest of us.
Atlant 23:46, 5 May 2007 (UTC)

Atropos?

Removed a link to the seemingly irrelevant article for Atropos. I'll admit that I didn't read the entire article through, but my cursory scan didn't reveal any correlation, and the article for Atropos mentions nothing of real-time operating systems (which, I'm led to believe, didn't exist during the time of the Greek deities). If I've missed something and actually removed a relevant link, please let me know on my Talk page and apologies all around. -Shane Lawrence 22:17, 6 September 2007 (UTC)



more over the response time of rtos is close to 0 as compared to non real time os and less memory is occupied by rtos as compared to normal os.

varun jha, kpit cummins 12:39,14 december 20007.

Why is Windows CE not mentioned?

As far as I know, Windows CE is also a real time OS? Why is it not mentioned? —Preceding unsigned comment added by 213.160.55.239 (talk) 12:23, 9 April 2008 (UTC)

list of RTOSes

Currently the article has a non-exhaustive list of RTOSes, with a hidden note that says: "Please do not add any more RTOS examples, this is not Category:Real-time operating systems."

I'm starting discussion here:

  • What is a good bright-line to decide which RTOSes to include in that list, and which to leave out?
  • Should we even have a list -- surely the most relevant RTOSes would already be mentioned in the prose of this article?
  • For people looking for an exhaustive list of all RTOSes -- or at least the ones notable enough that they have their own Wikipedia article -- how do we make it more obvious how to get that list?

--68.0.124.33 (talk) 19:29, 18 June 2008 (UTC)

Did you see the article List of real-time operating systems? —EncMstr (talk) 19:31, 18 June 2008 (UTC)
Ah, you're way ahead of me. That looks great. --68.0.124.33 (talk) 03:31, 24 June 2008 (UTC)

If you ask not to add any more RTOS examples, you're disadvantaging those that aren't listed already. I vote you erase the list, and simply leave the link to the complete table. 121.127.216.122 (talk) 05:29, 14 April 2010 (UTC)

I have no problems with removing the list and just have the link to the complete list, as an alternative we could just list some historical examples. --N'SallaNuto (talk) 18:48, 16 April 2010 (UTC)

I agree that the "short list" is inappropriate since it might easily have changed over time, but no changes are allowed. Even if they were, how would they be judged? — Preceding unsigned comment added by 66.27.55.122 (talk) 16:55, 5 December 2013 (UTC)

Difference?

This article could use an explanation of the difference between an RTOS and my everyday home CPU OS. RyanTMulligan (talk) 23:18, 20 October 2009 (UTC)

I'm baffled too. I gather that "real-time" means "able to meet deadlines". Suppose your task is to convert the compression format of 20 full-length movies, the deadline is an hour away, and you attempt to do this on Windows CE on a smartphone. I've never used CE, but it seems likely to me that it doesn't have the magical ability to meet any arbitrary deadline on any task you set it. "Real-time" makes sense in the context of something like a braking system with a clearly defined task and clearly defined deadline. I can't see what sense it makes in the context of an operating system, which by its very nature could be given all kinds of unreasonable, unexpected tasks. 81.131.43.49 (talk) 11:28, 28 September 2010 (UTC)
For a general purpose operating system (GPOS) throughput is more important than determinism. In case of an RTOS determinism means that it is predictable which tasks run at what time (depending on priorities) and how long the system needs to respond to external events (maximum interrupt latency and jitter). Virtimo (talk) 14:59, 29 September 2010 (UTC)

rewrite the definition

Original;

A real-time operating system (RTOS) is a specialized type of operating system and always contains multitasking. They are intended for real-time applications. Such applications include embedded systems (programmable thermostats, household appliance controllers), industrial robots, spacecraft, industrial control (see SCADA), and scientific research equipment.

If you are going to link to operating system, don't say an RTOS includes only devices, equipment. Devices can have non-OS levels of processing. Microcontrollers and state machines are common there. Full fledged microprocessors are embedded with DSP's, but they are embedded. Embedded operating system is not what the link to OS will reveal to readers. There are larger-than-embedded real-time computing systems.

The revelation of what links here is telling. This is an article with many links to it, and they are looking for an operating system that is real-time. Some of what links here use a parenthetical phrase to define RTOS, and that is what I used to re-define.

Such operating systems allow their own tasks to have lower task priority than the application's task, and thus be interupted in real-time, rather than queued until the system tasks are done. A real-time operating system effectively trades the inevitable operating system overhead tasks for another block of time.

This suffices for both devices and full-fledged massively computing systems.

CpiralCpiral 08:57, 1 January 2010 (UTC)

What do you mean with "their own task"? it is not like an RTOS is required to have tasks as separate entities, that would be true only for a purely message passing OS. I would say that an RTOS task has to be preemptable by tasks with higher priority regardless it is running application or kernel code and then introduce the context switch latency and jitter concepts. Please explain you definition because it is not clear IMO N'SallaNuto (talk) 18:04, 2 January 2010 (UTC)
By "there own tasks" I mean "system tasks" as opposed to application tasks. I think you are thinking "OS governs hardware entities", and that "init" or first actual process during boot is the OS. In some ways I can agree, but it forks and execs many processes which stabilize and remain in system space. I believe I have edited the lead to speak how you would say it now with jitter and latency concepts. Thank you. Neither priories nor context switching (nor an OS that is designed to interrupt itself) are unique to RTOS running alone with no apps, so if RTOS is not discussed in reference to application programmers and application handling, there is nothing special to mention. The lead now assumes an OS is understood, and focuses key real-time OS constraints. — CpiralCpiral 07:09, 3 January 2010 (UTC)

Scheduling

Round-robin is not cooperative scheduling

Round-robin is the nicest example of preemptive scheduling, not of cooperative scheduling. Using RR, process does not need to cooperate with others in order for the system to run smoothly. —Preceding unsigned comment added by 212.22.56.38 (talk) 14:36, 26 January 2009 (UTC)


Description of the three states of tasks

Basically, I think that on the section on "Scheduling", it should explain more what the three tasks are. It says that they are "1) running, 2) ready, 3) blocked", but it does not tell what a program is doing in these three states. It would help clarify a lot if this could be explained. This article is already a little bit too confusing for me anyway :P

It also mentions the ready list without including a simple sentence describing what it is.

--Eboyjr (talk) 16:43, 24 October 2009 (UTC) Devin Samarin

I entirely agree with Eboyjr! Please could someone with knowledge of RTOSes explain what the meaning of each of the three states is? zazpot (talk) 02:42, 22 April 2010 (UTC)
It is very simple, running=currently running (there can be more than one depending on the number of available cores or hardware threads), ready=eligible for running but not running because there are higher priority tasks using all the available cores or hardware threads, blocked(or sleeping)=task not ready to run because waiting for an external event such like a signal on a semaphore, the release of a mutex, a message, an event flags combination, a timer (there are a variety of synchronization mechanisms, not all of them present on all the RTOSes) etc. I would prefer somebody else writes in the article because english is not my native language and it may look poor but I agree it should be explained.--N'SallaNuto (talk) 12:10, 22 April 2010 (UTC)

Task switch

"Early CPU designs needed many cycles to switch tasks, during which the CPU could do nothing else useful. For example, with a 20 MHz 68000 processor (typical of late 1980s), task switch times are roughly 20 microseconds. (In contrast, a 100 MHz ARM CPU (from 2008) switches in less than 3 microseconds.)[3][4] "

What about an example with the number of cycles instead of absolute time. For me the first sentence suggests that today less cycles are needed. The example just shows that a newer processor with higher clockrate needs less time for a context switch. —Preceding unsigned comment added by 217.7.198.31 (talk) 10:48, 18 January 2011 (UTC)

Where did this sorting or searching queues ?>,./ come from

Has it never occurred to anybody in recent times to have multiple queues.

It's a simple matter to have multiple run queues linked by priority. Then you can have as many high priority queues as you need. High priority tasks could run round robin or a task could run until it relinquished it by blocking. Different algorithm for different types queues.

TOPS-10 task scheduling

HP queues preempt any running task of lower priority run until they block. Put on end of queue when runnable. On front if preempted.

normal run queues (non real time tasks) give priority to interactive tasks.

Used 3 queues. A task coming out of a wait state went to the higher of the three queues. On time slice expiring it went to a lower run queue depending on memory size. Swapping consideration. Bigger tasks to the lower run queue.

The scheduler selected normal priority tasks from one of the three queues. Using a countdown. Every n tasks run from a queue it run a task from the next lowest queue. The lower priority normal task queues were given higher number of ticks to run.