![]() |
![]() |
Real Time Operating System A real time operating system is designed to maximize responsiveness to new inputs. It is designed to
Every time you service an interrupt or fetch new data, you must suspend execution of other tasks if you have only one central processing unit. Some computers have separate hardware dedicated to data acquisition, such as the boards and software produced by National Instruments that can be used by PCs and workstations. Their software includes the LabView product line which is used in industry and by engineering schools. The definition of "acceptably short" depends upon the application.
The tasks performed by a real time operating system and its application software must be limited in scope in order to satisfy performance goals. Batch Operating Systems A batch operating system is one that schedules non-interactive jobs for execution without intervention by the programmer or user that submitted the job. The user places the job into the input stream along with accounting, computer resource requirements, and priority setting data. The operating system considers jobs waiting in the input queue to determine scheduling strategy, and makes the decision on when and how to run which job. The emphasis in a modern batch operating system is to maximize the efficient use of the computer resources and job throughput. Satisfying a user's desire for responsive attention and feedback is not a system goal. As described above, this is a generalization of the card and tape scenario that was the grandfather of today's batch systems. The classic batch operating system runs each job as it is presented. Only one job is run at a time. A print spooler is a modern example of a batch operating system that almost fits this mold. Many jobs can be preparing output for a printer simultaneously. The print spooler collects output from programs. Once the print file for a program has been closed, the print job is placed into the print queue. An old print spooler would print output jobs as they appear in the queue, first come, first served. A more sophisticated spooler would take more into consideration when selecting which file to print next. For example, the spooler might consider the number of pages to be printed, a priority declaration (customer is willing to pay more for fast response), or other factors. Once a job starts printing, it is permitted to continue without interruption until completed. Time Share Operating System A time share operating system is one that
A time share operating system differs from a real time operating system. The time share operating system is not designed to complete tasks at a rate equal to or faster than the rate of input of new data. The time share system makes more efficient use of the central processing unit and other computer resources than the real time operating system can. Inventory control management for a national chain store is an example of an application that is naturally suitable for a time sharing system, but not a real time system. You want to record changes nationally in inventory as they occur on a daily basis. This is used to update reorder and shipping decisions. This is an optimization problem that can require sophisticated analysis that cannot be done instantly. A college computing center is another situation that naturally lends itself to a time share environment. Students write programs for class assignments. The execution of a job is done in a time sharing environment. This is not a good environment for interactive programs, such as development of games. It is quite adequate for the majority of programs that students are expected to write. Program editing and job submission process is done real time. Humans take a lot of time between keystrokes. There is plenty of time between keystrokes for the computer to do other tasks. Hybrid Systems Most machines that permitted time sharing also performed batch processing in the background. Often, batch jobs are longer jobs that need to be completed sometime during a day or weekend, but not while a person is standing at a terminal waiting for results. It is not as common for a real time system to include other modes of operation unless there is much excess capability left over. You could conceivably have a real time system controlling processes, such as navigation, and use the excess memory cycles for other scientific and engineering calculations. Daze of Olde You never want to go back to the moldy oldies. Punching binary code into registers is time consuming. It's fun for short programs, the first five times you do it. After that, you get the idea there has to be a better way. On old machines, programs were keyed in using front panel switches. Once keyed in, the programmer could single-step through the program, one instruction at a time, or select automatic execution mode. Single-step mode was a great way to debug small programs. This is not feasible for large or complicated programs. The first electronic computer was used to compute ballistic tables for artillery shells. Using the computer increased security by reducing the number of people involved in the calculations and it also increased the reliability of computation. (Calculations for aircraft structural design were done using a hanger full of women using adding machines.) On later old machines with magnetic core, such as the IBM 7040, there was a bootstrap program that read more of the operating system from disk or tape. That bootstrap program resided in low core. Because core was magnetic, it was nonvolatile... except during lightning storms. When this program was contaminated or wiped out, the computer operator had to key it back in, bit by little bit. University of South Carolina in 1970 had an IBM 1620 (a small scientific computer) that automatically controlled experimental apparatus and collected data. It then sent that data to an IBM 7040 main frame computer. The IBM 7040 stored the data on hard disk, and analyzed the data on the midnight shift. This was an early example of special purpose computer networking. The operating systems of both machines had to be modified by local programmers to enable this data sharing operation. A machine contemporary to the IBM 7040 was the CDC 8090 (Control Data Corporation). It had a Mylar tape reader that optically sensed holes punched into the tape. This was the device for loading the bootstrap program. The rest of the operating system resided on paper tape, such as used on an old teletype. It also had a Burroughs card reader that read the holes in the cards optically. This was a great improvement over the IBM wire brush card reader. Early disk operating systems, such as for the NOVA 840, merely placed its paper tape operating system onto disk. Aside: The NOVA 840 had a sizable collection of educational software on paper tape that was appropriate for high school students. |
Maverick Productions 1997 - 2000 |