TDOS1.WS4 --------- - "TurboDOS: A Multiprocessor Operating System" William Schultz, President, MuSYS Corporation Proceedings of the ACM 1983 Annual Conference on Computers, p.138 (Retyped by Emmanuel ROCHE.) Permission to copy without fee all or part of this material is granted, provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. (C) 1983 ACM 0-89791-120-2/83/010/0138 $00.75 The TurboDOS operating system is a product of Software 2000, Inc., and is trademarked and copyrighted by them. At MuSYS Corp., we have used TurboDOS in conjunction with various slave processor boards to construct a wide variety of S-100 Bus-based computer systems, ranging from two to over sixty users. TurboDOS is designed for multiprocessor networks of Zilog Z-80-based computers, although single-user versions are available. Extensive use is made of the Zilog Z-80 instruction set to achieve a highly table-oriented and re- entrant architecture, which is very adaptable to the user's environment. In addition to MuSYS, many companies are selling TurboDOS for specific hardware configurations, on an OEM basis. This is one of the primary distinctions with other multiprocessor operating systems, which are supported by only a single vendor. While TurboDOS is currently restricted to Zilog Z-80 processors, a preliminary version of an Intel 8086 slave processor is working, and it is expected that this will be released sometime late this year (1983). The full Intel 8086 implementation will be written in the C language, and will be available sometime in 1985. Eventual conversion to other processors will depend on the availability of software tools for porting TurboDOS onto any given CPU. This version of TurboDOS is expected to successfully compete against Unix as well as the traditional CP/M-MP/M versions for 16-bit machines. TurboDOS will offer interface layers to application software written for some other operating systems, including the MS-DOS/PC-DOS family. The multiprocessor nature of TurboDOS is its most unique feature. Unlike other operating systems where networking of processors is a recent add-on, or which really only support a file transfer protocol, TurboDOS was designed from the ground up as a multiprocessor operating system. This means that the application program does not have to be aware of the nature of the hardware configuration it is running on. It can run in a single-user system, a network master (Server), or a network slave (Requestor), with no modification. The user has a consistent operating method in all of these same environments. He does not have to pay attention to loading his networking package, nor does he have to modify the application software. In all cases, TurboDOS allows each user the private use of single-user software and data bases, and also allows complete sharing of files, if the application has been written with multi-user shared data bases in mind. In effect, a TurboDOS network system can be viewed as a single computer, in which each user has access to any resource in the system, if allowed by his privilege level and configuration. Since TurboDOS is designed as a CP/M-compatible operating system, well over 95% of CP/M software will run without any modification. Most of the software which does not run properly malfunctions due to direct BIOS calls for disk I/O, which cannot be successfully emulated in a multiprocessor network of any kind. As software vendors become more aware of TurboDOS, the percentage of compatible products will increase, and the number of vendors supporting extra functions for use under TurboDOS will also increase. Also, since TurboDOS is a multiprocessing network-based operating system, each user executing an application package appears to have the dedicated attention to the entire system, with very little degradation due to the operations performed by other users of the system. While 2-3 users can kill a bank- switched system (e.g., WordStar under MP/M), MuSYS has systems in the field running 12 users at a time in an intensive software development and execution environment for educational purposes. Major features of TurboDOS -------------------------- In addition to the items discussed above, TurboDOS has several major features which should be mentioned. TurboDOS supports very large files (up to 134MB) and disk drives (up to 1048MB). However, many programs which were only written for CP/M (not MP/M) will not recognize files larger than the older CP/M (BDOS Version 2) limits of 512KB and 8MB. The largest disks in use on a regular basis are about 150MB, since single disks larger than that become cost prohibitive. With the continuing advance of technology, the TurboDOS limits will be approached. TurboDOS is modular in construction, with operating system generation based on a relocating, linking, loader program. This makes the incorporation of different hardware driver modules quite easy, particularly for bus-oriented systems, such as the IEEE-696 (S-100) bus commonly-used for TurboDOS systems. User friendliness is a key attribute of TurboDOS, with meaningful diagnostic messages, real alternatives for error recovery, a consistent set of command line switches for utility programs, and many small touches that give a minicomputer feel to this microcomputer operating system. TurboDOS throughput considerations ---------------------------------- One of the main benefits of TurboDOS is better throughput than standard CP/M. However, performance comparison are very dependent on the specific implementations being compared and the applications being executed. The networking aspect of TurboDOS has both positive and negative impacts on performance. Any individual application will run somewhat slower under networking than in a single-user environment, due to the overhead of the network. However, in the multiprocessor systems for which TurboDOS is designed, several users, each executing in a separate processor, will achieve far greater throughput than could ever be obtained in a single processor system, even if the single processor is a relatively advanced 16-bit system. TurboDOS is based on a sophisticated buffer manager which performs multiple buffering of disk I/O. It uses a Least Recently Used algorithm, with a slight bias toward directory blocks. This significantly reduces the number of physical disk access required, particularly as the number of users on the system increases. Typically, one processor in the network is devoted solely to buffering disk I/O to and from a hard disk, providing 16-24KB of disk buffers, in addition to control of the network and print despooling for one or more printers. Use of this processor for program execution is, usually, restricted to system functions on a semi-dedicated basis, such as when disk format or back-up is required. The operating system kernel of TurboDOS is fully re-entrant and allows disk operations for several users to proceed on a time-shared basis. This provides a significant increase in performance when multiple disk controllers are used. Having said all of the above, the primary determinant of system throughput is the sector size and interleave factor used for the various disks on the system. This is as true for other operating systems as well, and it is perhaps a little unfair to compare CP/M, with a standard sector size of 128 bytes and an interleave factor of 6 (6 revolutions to read one track of data), and TurboDOS, with a standard sector size of 1024 bytes and an interleave factor of 1 (1 revolution to read one track of data). It is primarily on this basis, in conjunction with the buffer manager mentioned above, that claims for greatly increased speed of TurboDOS over CP/M are made. Based on the characteristics and criteria for the selected benchmark, a good CP/M implementation will perform on a par with the TurboDOS system, perhaps winning, or perhaps losing. However, good CP/M implementations are very rare. Good TurboDOS implementations are the rule, rather than the exception. Networking considerations ------------------------- Since TurboDOS is, primarily, a network operating system, a few words on possible networking configurations are in order. TurboDOS does not impose an arbitrary network architecture on the system designer. There is no bias toward a particular Ring, Star, or Hierarchical network. The designer is left to his own devices, which are both good and bad points. The primary consideration for a network interface is speed, since most users are concerned about throughput. If a TurboDOS network interface is being used, as opposed to a simple file transfer program, it can be assumed that the amount of data being transferred is very large. The TurboDOS network protocol imposes an overhead of between 50 and 100% on top of the actual data being transferred. This includes such things as packet headers, register snapshots, FCB snapshots, and other internal information. These days, most people complain about the slowness of floppy disks, and they operate at 250-500K BPS. Most hard disks operate in the range of 5000-10000K BPS, or about 20 times faster than a floppy disk. Most of the serial networking hardware available today is in the range of 20-1000K BPS, with the majority of offerings at the top end of that range. Even there, the speed is only about twice as fast as a floppy disk, and a user who is used to hard disk operation will complain about that speed. For these reasons, MuSYS is trying to promote the use of ETHERNET, which runs at 10000K BPS, as the default standard for interprocessor networking. Recently, low-cost ETHERNET chip sets and board-level products have become available at the retail level. Eventually, ETHERNET will become a standard, primarily due to the market power of XEROX, INTEL, and DEC, who combined efforts on the design. We have demonstrated an ETHERNET implementation for TurboDOS which showed almost no degradation when accessing the remote hard disk, as compared with accessing the local hard disk. That compares with serial networks that crawl along at painfully slow rates. The TurboDOS network is packet-oriented, with a 16-bit address field. This allows up to 65,536 discrete processors, each supporting one or more time- shared tasks. When a task in a processor accesses a remote resource, TurboDOS builds the packet and passes it to the network circuit driver, who is totally responsible for seeing to it that the packet gets to where it is addressed. Replies return in a similar manner. For this reason, it makes no difference if the network is point-to-point or a multiple access type. This choice can be made on the basis of cost, expected traffic patterns, and desired throughput, without consideration of any fixed requirements of TurboDOS. Due to internal constraints, such as table sizes and CP/M-compatibility considerations, each processor is limited to a maximum of 16 disk drives, 16 print queues, and 16 printers, each of which may be either local (directly attached to the processor) or remote (attached to another specified processor on the network). Certain additional functions, primarily those associated with communications channel I/O, may also be either local or remote to a designated processor. However, the total number of disks, print queues, and printers in a given network is effectively unlimited, since there is no requirement that every user have access to every peripheral. In fact, most implementors of larger networks will severely limit the global resources available to all users, and restrict the majority of accesses to the relatively local resources of an individual mainframe (which still could be a multiple processor system). An example of this would be a network of departmental-level systems, with one globally-accessible disk used as a central mailbox repository. This central system could also have other global resources, such as a high-speed line printer, magnetic tape drive, or typesetting equipment. Anything which is too expensive to buy more than one of is a good candidate for the central system. Conclusions ----------- Each of us needs to rethink our own purchasing priorities. The cost of computer hardware is going down, and the cost of good software remains high. The usefulness of TurboDOS is that it provides access to a wide range of high- quality software, both in CP/M-compatible and enhanced shared operation, with high throughput at a low cost per user station. The really significant problems do not lend themselves to containment on the small floppy disk drives found on most "workstation" computers. With a TurboDOS network, each user can have access to one or more large hard disks, with all of the throughput and capacity advantages that entails, and still have a much lower cost per user than any discrete computer approach. EOF