Misplaced Pages

OS-9

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

Real-time computing ( RTC ) is the computer science term for hardware and software systems subject to a "real-time constraint", for example from event to system response . Real-time programs must guarantee response within specified time constraints, often referred to as "deadlines".

#672327

59-520: OS-9 is a family of real-time , process-based , multitasking , multi-user operating systems , developed in the 1980s, originally by Microware Systems Corporation for the Motorola 6809 microprocessor . It was purchased by Radisys Corp in 2001, and was purchased again in 2013 by its current owner Microware LP . The OS-9 family was popular for general-purpose computing and remains in use in commercial embedded systems and amongst hobbyists. Today, OS-9

118-497: A hard real-time system is to ensure that all deadlines are met, but for soft real-time systems the goal becomes meeting a certain subset of deadlines in order to optimize some application-specific criteria. The particular criteria optimized depend on the application, but some typical examples include maximizing the number of deadlines met, minimizing the lateness of tasks and maximizing the number of high priority tasks meeting their deadlines. Hard real-time systems are used when it

177-412: A semaphore flag for disk access, allowing multiple WRITES to the same files; the disk is shared by multiple DEC systems. SIMACS existed on VAX and PDP-11 RSTS systems. It's " 80 Mbytes of storage for under $ 12K! " ad was considered noteworthy by Computerworld , which in 2007, 2012 and 2017 headlined " ... And other ad favorites ," "... And other IT ad favorites ," and " 10 fun tech ads through

236-596: A 68B09E processor running OS9 in its QIC ( quarter-inch cartridge ) tape backup controllers in VAX installations. The best known hardware (due to its low price and broad distribution) was the TRS-80 Color Computer (CoCo) and the similar Dragon series. Even on the CoCo, a quite minimalist hardware platform, it was possible under OS-9/6809 Level One to have more than one interactive user running concurrently (for example, one on

295-499: A HW/SW project which included a daughter board with an MMU as well as the OS-9 distribution disks. With two processors, 96 KB, a 25×80 screen and serial, parallel and IEEE-488 ports and many peripherals this was one of the most capable OS-9 systems available. OS-9's multi-user and multi-tasking capabilities make it usable as a general-purpose interactive computer system. Many third-party interactive applications have been written for it, such as

354-423: A chess program designed to play in a tournament with a clock will need to decide on a move before a certain deadline or lose the game, and is therefore a real-time computation, but a chess program that is allowed to run indefinitely before moving is not. In both of these cases, however, high performance is desirable: the more work a tournament chess program can do in the allotted time, the better its moves will be, and

413-503: A memory management unit. It was developed as a supporting operating system for the BASIC09 project, contracted for by Motorola as part of the 6809 development. A later 6809 version ("Level Two") takes advantage of memory mapping hardware, supported up to 2 MB of memory (ca. 1980) in most implementations, and included a GUI on some platforms. In 1983, OS-9/6809 was ported to Motorola 68000 assembly language and extended (called OS-9/68K); and

472-475: A mixture of hard real-time and non real-time applications. Firm real-time systems are more nebulously defined, and some classifications do not include them, distinguishing only hard and soft real-time systems. Some examples of firm real-time systems: Soft real-time systems are typically used to solve issues of concurrent access and the need to keep a number of connected systems up-to-date through changing situations. Some examples of soft real-time systems: In

531-541: A process, these lightweight processes share memory, I/O paths, and other resources in accordance with the POSIX threads specification and API. OS-9 schedules the threads using a fixed-priority preemptive scheduling algorithm with round-robin scheduling within each priority. Time slicing is supported. The priority levels can be divided into a range that supports aging and a higher-priority range that uses strict priority scheduling. Each process can access any system resource by issuing

590-440: A real-time digital signal processing (DSP) process, the analyzed (input) and generated (output) samples can be processed (or generated) continuously in the time it takes to input and output the same set of samples independent of the processing delay. It means that the processing delay must be bounded even if the processing continues for an unlimited time. That means that the mean processing time per sample, including overhead ,

649-560: A real-time system: temporal failures (delays, time-outs, etc.) are typically small and compartmentalized (limited in effect) but are not catastrophic failures . In a real-time system, such as the FTSE 100 Index , a slow-down beyond limits would often be considered catastrophic in its application context. The most important requirement of a real-time system is consistent output, not high throughput. Some kinds of software, such as many chess-playing programs , can fall into either category. For instance,

SECTION 10

#1732854757673

708-509: A real-world process is simulated at a rate that matched that of the real process (now called real-time simulation to avoid ambiguity). Analog computers , most often, were capable of simulating at a much faster pace than real-time, a situation that could be just as dangerous as a slow simulation if it were not also recognized and accounted for. Minicomputers, particularly in the 1970s onwards, when built into dedicated embedded systems such as DOG ( Digital on-screen graphic ) scanners, increased

767-420: A response within any timeframe, although typical or expected response times may be given. Real-time processing fails if not completed within a specified deadline relative to an event; deadlines must always be met, regardless of system load . A real-time system has been described as one which "controls an environment by receiving data, processing them, and returning the results sufficiently quickly to affect

826-442: A still later (1989) version was rewritten mostly in C for further portability. The portable version was initially called OS-9000 and was released for 80386 PC systems around 1989, then ported to PowerPC around 1995. These later versions lack the memory mapping facilities of OS-9/6809 Level Two simply because they do not need them. They used a single flat address space that all processes share; memory mapping hardware, if present,

885-426: A subsidiary named Silonics , which made ink-jet printers . By 1980, System Industries found it more profitable to focus on its disk business. System Industries developed a capability for having more than one DEC CPU, but not at the same time, have write access to a shared disk. They implemented an enhancement called SIMACS (SImultaneous Machine ACceSs), which allowed their special disk controller to set

944-464: A sufficient limit to throughput delay so as to be tolerable to performers using stage monitors or in-ear monitors and not noticeable as lip sync error by the audience also directly watching the performers. Tolerable limits to latency for live, real-time processing is a subject of investigation and debate but is estimated to be between 6 and 20 milliseconds. Real-time bidirectional telecommunications delays of less than 300 ms ("round trip" or twice

1003-400: A task: namely a bound or worst-case estimate for how long the task must execute. Specific algorithms for scheduling such hard real-time tasks exist, such as earliest deadline first , which, ignoring the overhead of context switching , is sufficient for system loads of less than 100%. New overlay scheduling systems, such as an adaptive partition scheduler assist in managing large systems with

1062-403: Is real-time. The grocer might go out of business or must at least lose business if they cannot make their checkout process real-time; thus, it is fundamentally important that this process is real-time. A signal processing algorithm that cannot keep up with the flow of input data with output falling farther and farther behind the input, is not real-time. But if the delay of the output (relative to

1121-454: Is a product name used by both a Motorola 68000 -series machine language OS and a portable ( PowerPC , x86 , ARM , MIPS , SH4 , etc.) version written in C , originally known as OS-9000 . The first version ("OS-9 Level One"), which dates back to 1979–1980, was written in assembly language for the Motorola 6809 CPU, and all of its processes ran within the 64KB address space of the CPU without

1180-407: Is also supported by popular SSL/TLS libraries such as wolfSSL . Real-time computing The term "real-time" is also used in simulation to mean that the simulation's clock runs at the same speed as a real clock. Real-time responses are often understood to be in the order of milliseconds, and sometimes microseconds. A system not specified as operating in real time cannot usually guarantee

1239-451: Is assumed not to be necessary. High-performance is indicative of the amount of processing that is performed in a given amount of time, whereas real-time is the ability to get done with the processing to yield a useful output in the available time. The term "near real-time" or "nearly real-time" (NRT), in telecommunications and computing , refers to the time delay introduced, by automated data processing or network transmission, between

SECTION 20

#1732854757673

1298-431: Is imperative that an event be reacted to within a strict deadline. Such strong guarantees are required of systems for which not reacting in a certain interval of time would cause great loss in some manner, especially damaging the surroundings physically or threatening human lives (although the strict definition is simply that missing the deadline constitutes failure of the system). Some examples of hard real-time systems: In

1357-571: Is mostly used to ensure that processes access only memory they have the right to access. The 680x0 and 80386 (and later) MPUs all directly support far more than 1 MB of memory in any case. As a consequence of early pervasive design decisions taking advantage of the easily used reentrant object code capabilities of the 6809 processor, programs intended for OS-9 are required to be reentrant; compilers produce reentrant code automatically and assemblers for OS-9 offer considerable support for it. OS-9 also uses position-independent code and data because

1416-436: Is no greater than the sampling period, which is the reciprocal of the sampling rate . This is the criterion whether the samples are grouped together in large segments and processed as blocks or are processed individually and whether there are long, short, or non-existent input and output buffers . Consider an audio DSP example; if a process requires 2.01 seconds to analyze , synthesize , or process 2.00 seconds of sound, it

1475-460: Is not real-time. However, if it takes 1.99 seconds, it is or can be made into a real-time DSP process. A common life analogy is standing in a line or queue waiting for the checkout in a grocery store. If the line asymptotically grows longer and longer without bound, the checkout process is not real-time. If the length of the line is bounded, customers are being "processed" and output as rapidly, on average, as they are being inputted then that process

1534-404: Is one in which real-time control offers genuine advantages in terms of process performance and safety. A system is said to be real-time if the total correctness of an operation depends not only upon its logical correctness, but also upon the time in which it is performed. Real-time systems, as well as their deadlines, are classified by the consequence of missing a deadline: Thus, the goal of

1593-527: Is similar to ../../../file in Unix. But . and .. , with just one or two periods, each work the same in both OS-9 and Unix. OS-9 has had a modular design from the beginning, influenced by notions of the designers of the 6809 and how they expected software would be distributed in the future (see the three-part series of articles in January–March 1979 Byte by Terry Ritter, et al. of Motorola who designed

1652-698: The Dynacalc spreadsheet , the VED text formatter, and the Stylograph and Screditor-3 WYSIWYG word processors . TSC 's nroff emulating formatter was ported to OS-9 by MicroWay, as well. In mid 1980s, OS-9 was selected for the CD-i operating system. Around the same time, Microsoft approached Microware for acquisition of the company primarily because it was attracted by CD-RTOS, the CD-i operating system. The negotiation failed and no deal

1711-475: The Motorola 6809 , SS-50 Bus and SS-50C bus systems from companies such as SWTPC , Tano , Gimix , Midwest Scientific , and Smoke Signal Broadcasting , STD-bus 6809 systems from several suppliers, personal computers such as the Fujitsu FM-11 , FM-8 , FM-7 and FM-77, Hitachi MB-S1  [ jp ] , and many others. System Industries , a third-party provider of DEC compatible equipment, used

1770-779: The Motorola 680x0 family CPUs, Intel 80386 , and PowerPC . The OS-9000/680x0 was a marketing failure and withdrawn very quickly, probably because few customers wanted to try the fatter and slower operating system over the existing OS-9/680x0 proven record of stability. That the Motorola 680x0 family and VME board computer system vendors were nearing their end of life might have affected the unpopularity of OS-9000/680x0. Microware later started calling all of its operating systems — including what had been originally called OS-9000 — simply OS-9, and started shifting its business interest towards portable consumer device markets such as cellphones, car navigation, and multimedia. In late 1980s and early 1990s,

1829-404: The file system is not a single tree, but instead is a forest with each tree corresponding to a device. Second, OS-9 does not have a Unix-style fork() system call—instead it has a system call which creates a process running a specified program, performing much the same function as a fork-exec or a spawn . Additionally, OS-9 processes keep track of two "current directories" rather than just one;

OS-9 - Misplaced Pages Continue

1888-451: The "current execution directory" is where it will by default look first to load programs to run (which is similar to the use of PATH environment variable under UNIX). The other is the current data directory. Another difference is that in OS-9, grandparent directories can be indicated by repeating periods three or more times, without any intervening slashes (a feature also found in 4DOS / 4OS2 / 4NT / TC ). For example, ..../file in OS-9,

1947-650: The 6809 also supports it directly; compilers and assemblers support position independence. The OS-9 kernel loads programs (including shared code), and allocates data, wherever sufficient free space is available in the memory map. This allows the entire OS and all applications to be placed in ROM or Flash memory, and eases memory management requirements when programs are loaded into RAM and run. Programs, device drivers, and I/O managers under OS-9 are all 'modules' and can be dynamically loaded and unloaded (subject to link counts) as needed. OS-9/6809 runs on Motorola EXORbus systems using

2006-505: The CPU completely and use its own scheduler , without using native machine language and thus bypassing all interrupting Windows code. However, several coding libraries exist which offer real time capabilities in a high level language on a variety of operating systems, for example Java Real Time . Later microprocessors such as the Motorola 68000 and subsequent family members (68010, 68020, ColdFire etc.) also became popular with manufacturers of industrial control systems. This application area

2065-572: The CPU). The module structure requires more explanation: OS-9 keeps a "module directory", a memory-resident list of all modules that are in memory either by having been loaded, or by having been found in ROM during an initial scan at boot time. When one types a command to the OS-9 shell, it will look first in the current module directory for a module of the specified name and will use it (and increase its link count) if found, or it will look on disk for an appropriately named file if not. In OS-9/6809 and OS-9/68000,

2124-539: The Character Generators computers used in Broadcast Systems used OS-9 and OS-9000 extensively. The now defunct Pesa Electronica used OS-9 on their CGs such as CG 4722 and CG4733. In 1999, nineteen years after the first release of OS-9, Apple Computer released Mac OS 9 . Microware sued Apple that year for trademark infringement, although a judge ruled that there would be little chance for confusion between

2183-707: The USA) announced that they signed an Asset Purchase Agreement to buy the rights to the names Microware, OS-9 and all assets from RadiSys . OS-9 (especially the 68k version and thereafter) clearly distinguishes itself from the prior generation of embedded operating systems in many aspects. When compared with more modern operating systems: OS-9's real-time kernel allows multiple independent applications to execute simultaneously through task switching and inter-process communication facilities. All OS-9 programs run as processes containing at least one lightweight process (thread) but may contain an effectively unlimited number of threads. Within

2242-436: The appropriate OS-9 service request. At every scheduling point, OS-9 compares the priority of the thread at the head of the active queue to the priority of the current thread. It context switches to the thread on the active queue if its priority is higher than the current processes' priority. Aging artificially increases the effective priority of threads in the active queue as time passes. At defined intervals, time slicing returns

2301-456: The console keyboard, another in the background, and perhaps a third interactively via a serial connection) as well as several other non-interactive processes. One system, the Positron 9000, was positioned as a multi-user system for educational use, offering Microware's BASIC and Pascal environments, fitted with 64 KB to 512 KB of RAM, and featuring four to twelve serial ports. Responsiveness

2360-435: The context of multitasking systems the scheduling policy is normally priority driven ( pre-emptive schedulers). In some situations, these can guarantee hard real-time performance (for instance if the set of tasks and their priorities is known in advance). There are other hard real-time schedulers such as rate-monotonic which is not common in general-purpose systems, as it requires additional information in order to schedule

2419-428: The current thread to the active queue behind other threads at the same priority. The following list of commands is supported by the OS-9 shell. Shell built-in commands Utilities for operating system functions System management utilities General utilities OS-9's notion of processes and I/O paths is quite similar to that of Unix in nearly all respects, but there are some significant differences. Firstly,

OS-9 - Misplaced Pages Continue

2478-684: The environment at that time". The term "real-time" is used in process control and enterprise systems to mean "without significant delay". Real-time software may use one or more of the following: synchronous programming languages , real-time operating systems (RTOSes), and real-time networks, each of which provide essential frameworks on which to build a real-time software application. Systems used for many safety-critical applications must be real-time, such as for control of fly-by-wire aircraft, or anti-lock brakes , both of which demand immediate and accurate mechanical response. The term real-time derives from its use in early simulation , in which

2537-401: The faster an unconstrained chess program runs, the sooner it will be able to move. This example also illustrates the essential difference between real-time computations and other computations: if the tournament chess program does not make a decision about its next move in its allotted time it loses the game—i.e., it fails as a real-time computation—while in the other scenario, meeting the deadline

2596-551: The foreground to threads/tasks with the highest priority. Real-time operating systems would also be used for time-sharing multiuser duties. For example, Data General Business Basic could run in the foreground or background of RDOS and would introduce additional elements to the scheduling algorithm to make it more appropriate for people interacting via dumb terminals . Early personal computers were sometimes used for real-time computing. The possibility of deactivating other interrupts allowed for hard-coded loops with defined timing, and

2655-405: The hardware and software for an anti-lock braking system have been designed to meet its required deadlines, no further performance gains are obligatory or even useful. Furthermore, if a network server is highly loaded with network traffic, its response time may be slower but will (in most cases) still succeed before it times out (hits its deadline). Hence, such a network server would not be considered

2714-411: The input) is bounded regarding a process that operates over an unlimited time, then that signal processing algorithm is real-time, even if the throughput delay may be very long. Real-time signal processing is necessary, but not sufficient in and of itself, for live signal processing such as what is required in live event support . Live audio digital signal processing requires both real-time operation and

2773-513: The low interrupt latency allowed the implementation of a real-time operating system, giving the user interface and the disk drives lower priority than the real-time thread. Compared to these the programmable interrupt controller of the Intel CPUs (8086..80586) generates a very large latency and the Windows operating system is neither a real-time operating system nor does it allow a program to take over

2832-467: The module directory is flat, but OS-9000 made the module directory tree-structured. The OS-9000 shell looks in one's alternative module directory for a MODPATH environment variable, analogous to the PATH variable in all versions, indicating the sequence of module directories in which to look for pre-loaded modules. Modules are not only used to hold programs, but can also be created on the fly to hold data, and are

2891-458: The need for low-latency priority-driven responses to important interactions with incoming data and so operating systems such as Data General 's RDOS (Real-Time Disk Operating System) and RTOS with background and foreground scheduling as well as Digital Equipment Corporation 's RT-11 date from this era. Background-foreground scheduling allowed low priority tasks CPU time when no foreground task needed to execute, and gave absolute priority within

2950-399: The occurrence of an event and the use of the processed data, such as for display or feedback and control purposes. For example, a near-real-time display depicts an event or situation as it existed at the current time minus the processing time, as nearly the time of the live event. The distinction between the terms "near real time" and "real time" is somewhat nebulous and must be defined for

3009-531: The other database can import/export on a scheduled basis so that they can sync/share common data in "near real-time" with each other. Several methods exist to aid the design of real-time systems, an example of which is MASCOT , an old but very successful method which represents the concurrent structure of the system. Other examples are HOOD , Real-Time UML, AADL , the Ravenscar profile , and Real-Time Java . System Industries System Industries, Inc. ,

SECTION 50

#1732854757673

3068-462: The situation at hand. The term implies that there are no significant delays. In many cases, processing described as "real-time" would be more accurately described as "near real-time". Near real-time also refers to delayed real-time transmission of voice and video. It allows playing video images, in approximately real-time, without having to wait for an entire large video file to download. Incompatible databases can export/import to common flat files that

3127-552: The two. Some Macintosh users who are unaware of Microware's lesser known OS-9 have posted to the comp.os.os9 newsgroup not realizing what OS-9 is. In 2001, RadiSys purchased Microware to acquire the Intel IXP-1200 network processor resources. This acquisition infused Microware with capital and allowed Microware to continue OS-9 development and support. On February 21, 2013, Microware LP (a partnership formed by Freestation of Japan, Microsys Electronics of Germany and RTSI LLC of

3186-404: The unidirectional delay) are considered "acceptable" to avoid undesired "talk-over" in conversation. Real-time computing is sometimes misunderstood to be high-performance computing , but this is not an accurate classification. For example, a massive supercomputer executing a scientific simulation may offer impressive performance, yet it is not executing a real-time computation. Conversely, once

3245-429: The way in which OS-9 supports shared memory. OS-9/non-68000 supports POSIX threads . A single process can start any number of threads. OS-9 has faded from popular use, though Microware LP does still support it and it does run on modern architectures such as ARM and x86. The compiler provided, Ultra C/C++, supports C89 , but supports neither C99 nor C++98 . Ultra C++ does provide limited support for C++ templates. It

3304-524: Was an American computer hardware company active from 1968 to 1993. It produced printers and disk drives for minicomputers. The firm was founded in 1968 by Ed Zschau with backing from Brentwood Associates , a private equity firm. Corporate earnings were followed by The New York Times . Their focus was to be a third-party provider of DEC-compatible equipment, especially for printers and disk drives (and their controllers). In 1992 they acquired Emulex 's disk drive business. By 1993 System Industries

3363-407: Was dealing with a Chapter 11 bankruptcy . That same year they introduced an eraseable optical disc product and an 8mm magnetic tape storage devices. System Industries was one of 19 manufacturers of disk drive products that were sued in the late 1980s and early 1990s by Digital Equipment Corporation for alleged patent violations. Individual settlements were reached. System Industries had

3422-400: Was made; Microware decided to remain independent. In late 1980s, Microware released OS-9000, a more portable version of the operating system. The vast majority of the operating system kernel was rewritten in C leaving a handful of hardware-dependent parts in assembly language. A few "more advanced features" were added such as tree-like kernel module name space. OS-9000 was initially ported to

3481-563: Was reportedly impacted by multi-user operations in the system's minimal configuration, however. A second processor implementation of OS-9 for the BBC Micro was produced by Cumana . It included on-board RAM, SCSI hard disk interface and a MC68008 processor. OS-9 was also ported to the Commodore SP-9000 or SuperPET, which had a 6809 in addition to the 6502 of the base 8032 model, as well as 64 KB more. The Toronto PET Users Group sponsored

#672327