TDOS5.WS4 --------- - "The Networking Capabilities of TurboDOS" Michel Simon and William Poole (Commercial Dynamics) "Microsystems", Vol.5, No.8, August 1984, p.78 (Retyped by Emmanuel ROCHE.) By now, most people in the CP/M world are, at least vaguely, familiar with TurboDOS. It is fairly well known that TurboDOS runs most off-the-shelf CP/M software, and that it can be found on S-100 Bus-based, multi-user, multi- processor systems (networks). Less well known is the fact that a multitude of network configurations are possible with TurboDOS. Some manufacturers are now experimenting with different network architectures, and a number of interesting products already exist. Given the availability of TurboDOS on 16- bit processors and the growing list of manufacturers integrating TurboDOS with their hardware, we should see the use of TurboDOS networks increase in the days to come. TurboDOS is truly a network operating system. This article focuses on the networking aspects of TurboDOS, including its capabilities and uses. First, we will describe the features of TurboDOS that distinguish it as a network operating system. Second, we will discuss the various possible networking configurations. Next, we will address the limitations of TurboDOS in configuring larger networks. The remainder of this article contains some general guidelines for choosing a TurboDOS network, followed by a review of TurboDOS networking products currently available. Detailed descriptions of the network architectures of 3 different manufacturers' products are included as examples. What makes TurboDOS a network operating system? ----------------------------------------------- The single most important characteristics of TurboDOS -- one which, in essence, distinguishes a network operating system from a single-processor operating system -- is that it permits transparent message routing between physically-connected processors. This feature allows a request for a *DEVICE* (TurboDOS devices are disk drives, printers, and queues) to be automatically routed, in logical form (see below), to the processor on the network that controls the device. Routing takes place between nodes on a circuit and, in a multi-circuit network, between circuits via common nodes. TurboDOS recognizes a 'world' that consists of 1 to 255 network *CIRCUITS*, each of which can have from 1 to 255 *NODES* connected to it. A node is a microcomputer (single-board, standalone, diskless, etc.), and a circuit is the means (hardware and software) by which nodes are connected. The S-100 Bus is currently the most widely-used transmission facility (hardware) for a TurboDOS circuit, although there is a rapid growth in the use of Local Area Network (LAN) circuits (RS-422/SDLC, ARCnet, Omninet, Ethernet, etc.) with TurboDOS. A node can be connected to, and thus can transfer information between, more than one circuit. In order to illustrate and clarify what makes TurboDOS a network operating system, let us compare the way CP/M handles a resource request with the way TurboDOS handles the same request. When the operator of a single-user CP/M system makes a request for a resource, such as: A>DIR C: the chain of events is as follows: 1. CP/M's command line interpreter sees a request for directory information from the C drive, and makes a *LOGICAL FUNCTION REQUEST* (in CP/M, a BDOS system call) requesting this information. 2. The BDOS makes the appropriate calls to the BIOS, which contains disk drivers and has access to information about the particular characteristics of drive C. 3. The BDOS retrieves the information from the BIOS, and passes it back to the command line interpreter, which then displays the information on the console. All along, CP/M assumes that the drive is attached to the requesting processor, since CP/M does not recognize the existence of more than one processor. Under TurboDOS, however, the chain of events is quite different: 1. The TurboDOS command line interpreter sees a request for directory information from the C drive, and makes a logical function request to the TurboDOS file system, asking for this information. 2. TurboDOS checks an internal table to see if drive C is attached to the requesting processor (i.e., is a "Local" resource) or if it is attached to some other processor on the network (i.e., is a non-local, "Remote" resource). 3. If drive C is a local resource, the procedure followed is similar to that followed by CP/M. 4. If drive C is not a local resource, TurboDOS gets a *NETWORK ADDRESS* from its internal table. The address indicates the circuit and node numbers of the processor to which the resource is attached. 5. TurboDOS forms a *MESSAGE PACKET* consisting of the logical function request, the data, and the network address, and passes it on to the *CIRCUIT DRIVER* of the circuit indicated in the network address. 6. The circuit driver has access to all the information it needs about the hardware characteristics of its physical transmission facility, and transmits the message packet to the processor indicated in the network address. 7. At the receiving processor, the same cycle is repeated: the TurboDOS system on that processor checks to see if the resource is local or non-local (remote). If the resource is local, the receiving processor carries out the request; if non-local (remote), the processor forwards the message packet. The requested information is returned, via the same path, to the originating processor. This processor passes the information to the command line interpreter, which displays it on the console. The internal tables mentioned in Events 2 and 4, which are called *DEVICE ASSIGNMENT TABLES*, are configured when the TurboDOS operating system on each processor is generated. Thus, the message-forwarding process is completely transparent to the user, who enters a DIR command to get a directory listing. In the above scenario, it is important to note that messages are transmitted over the network in the form of logical function requests, enabling TurboDOS to meet one of the fundamental requirements of a network operating system: that only one processor recognizes the hardware characteristics of a given device. For example, it is imperative that only one processor maintain a disk drive's allocation vector or storage-used list; otherwise, assuring data integrity in a multi-user environment would be impractical. To meet this requirement, TurboDOS messages are transmitted in a device-independent format until they arrive at their final destination. Print spooling is accomplished through a network in the same manner as drives are accessed: printer and queue requests are forwarded to the processor that controls the resource, just as drive requests are forwarded. Other features -------------- An important and related feature of TurboDOS is its modular construction. Networking hardware dependencies are isolated in circuit driver modules, while peripheral hardware dependencies are isolated in device driver modules. Device drivers and circuit drivers take hardware-independent instructions from TurboDOS, and execute them on the specific device or network hardware that they control. In addition, modules of the operating system and device drivers are easily linked by the TurboDOS GEN command. Therefore, individual versions of the operating system can be configured to contain only those modules needed to control the resources attached to a given processor on the network. A notable consequence of TurboDOS's modularity is that a wide variety of peripheral devices and network hardware can be integrated into TurboDOS systems by EOMs and system integrators. Device drivers can be replaced or updated as new disk and networking hardware becomes available. Another feature of TurboDOS that deserves note is its support of network file- and record-locking. The processor that controls a given device keeps an open file and record list locally. When a logical function request for a locked file or record is received, access to that file or record is denied, and a return code indicating the error is sent back over the network. TurboDOS's network file and record locking allows almost all single-user CP/M and multi-user MP/M software to run on a TurboDOS network without modification. File lockout prevents single-user programs from corrupting files when they are simultaneously accessed by more than one user. Record lockout allows simultaneous multi-user access to data files in an organized fashion. The above features combine to make TurboDOS a versatile operating system for configuring a wide variety of networks with different topologies and transmission facilities. We will now classify and describe some of these network configurations. Tightly-coupled networks ------------------------ As we mentioned earlier, the most common TurboDOS networks currently available are on multi-user, multi-processor S-100 Bus-based systems, including IMS, North Star, MuSYS, and Advanced Digital, to name but a few; for a more complete list, refer to Table 1. Table 1. TurboDOS networking products Format: Manufacturers Tightly-coupled architecture Loosely-coupled architecture: Server-to-server Satellite-to-satellite Topology Maximum distance (feet) (NOTE: In this table, K = kiloBAUDS, M = megaBAUDS.) Advanced Computer Technology S-100 Bus star (In development) Advanced Digital S-100 Bus star (In development) Alspa RS-422 800K bus, 2000 ft No No Business Operating Systems Parallel star, 10 ft RS-232 19.2K RS-232 19.2K Point-to-point 300 California Computer Systems S-100 Bus star No RS-232 9.6K Point-to-point 300 Commercial Dynamics S-100 Bus star No Differential 300K Bus 1000 HM Systems, Ltd. (UK) S-100 Bus star 2.5M ARCnet No Ring 2000 Intercontinental Micro Systems S-100 Bus star 2.5M ARCnet No Ring 2000 Independent Business Systems S-100 Bus star No RS-422 800K / RS-232 38.4K Point-to-point 600 / 5000 Industrial Micro Systems S-100 Bus star No Differential 307K Bus 1000 JC Systems 2.4M Parallel bus, 600 ft No Parallel 2.4M Bus 600 Litton Industries (Sweda Int'l.) 2M Token-passing LAN 2M Token-passing LAN 2M Token-passing LAN Ring 2000 MuSYS S-100 Bus star 10M Ethernet RS-422 500K / RS-232 9.6K Ethernet bus / Point-to-point 9000 / 900 / 300 NCR Corp. No 2M Omninet No Bus 2000 North Star S-100 Bus star No No Philips (Netherlands) Euro-Bus star 2M Token-passing LAN No Ring 2000 QDP Computer Systems S-100 Bus star No No Sierra Data Sciences S-100 Bus star No No Teletek S-100 Bus star No No Televideo RS-422 800K star, 300 ft RS-422 800K No Point-to-point 300 Networks of this type are referred to as *TIGHTLY-COUPLED* networks. In a tightly-coupled networks, disk resources are largely centralized, and all the processors are booted from one disk. The master processor is called a "server" because it services requests from the satellites for access to the (many or all) global resources attached to it (disks, printers, etc.). Slave processors are called "satellites" because this is a more accurate description of their function as part of the network. Although their primary function is to execute user programs, and they are booted by the server and dependent on it for most operations, satellites are independent processors and, in some cases, possess local disk or printer resources. In a discussion of network configurations, it is important to distinguish between the hardware architecture of the transmission facility and the logical topology. For example, in a typical S-100 Bus implementation of a TurboDOS network, the S-100 Bus is the transmission facility, but the network has a star topology (see Figure 1). That is to say: even though all the processors are physically connected on the S-100 Bus, the satellites cannot directly communicate with each other; all communication on the tightly-coupled, S-100 Bus-based network is controlled by the server. Although tightly-coupled networks are predominantly S-100 Bus-based, other tightly-coupled architectures have been implemented. Examples include Alspa, JC Systems, and Televideo (see Table 1). Figure 1. Tightly-coupled network, star topology Loosely-coupled networks ------------------------ Networks having processors that are independent of each other for basic operations, and disk resources that are distributed throughout the network, are referred to as *LOOSELY-COUPLED* networks. Loosely-coupled networks can connect standalone, single-user systems or tightly-coupled networks. Loosely-coupled networks of tightly-coupled systems require that at least one processor on each tightly-coupled network belong to both its internal circuit and the loosely-coupled circuit (see Figure 2). Either the server of the tightly-coupled circuit or a satellite can be the dual-purpose processor, providing, of course, that it has a physical means to transmit messages. Server-to-server networks typically require additional hardware; they are generally considered desirable when the loosely-coupled network will be used for high-volume disk access and/or chassis expansion (e.g., MuSYS and Intercontinental Micro Systems). Satellite-to-satellite networks use hardware already on satellite boards, and run at low-to-medium speeds for file and peripheral sharing (e.g., Commercial Dynamics, MuSYS and IBS). Eight-bit single-user personal computers have not been widely networked using TurboDOS because of memory considerations. Until recently, TurboDOS did not support more than 64K of memory, and a fully-configured TurboDOS (including file system and disk drivers) leaves only a 43K-to-45K TPA on a 64K system. With TurboDOS now available on the Intel 8088/8086 family of processors, we can expect to see TurboDOS become a popular environment for implementing networks of 16-bit single-user machines, such as the IBM PC. Figure 2. Loosely-coupled networks Gateways -------- As TurboDOS networks become available for a wide variety of processors, *GATEWAYS* will become increasingly important. Since a processor can be connected to as many TurboDOS network circuits as it has circuit drivers (and corresponding transmission facilities), a gateway processor that has different types of network interfaces can interconnect networks using dissimilar hardware (see Figure 3). (ROCHE> "Internet" means "interconnected networks"... This article, describing it using 8-bit microcomputers, was written 12 years before Bill Gates reluctantly provided "Internet Explorer" under Microsoft Windows...) Because of the TurboDOS network's forwarding mechanism, each network circuit connected by a gateway processor can be accessed by nodes throughout the entire network. If a processor is not itself connected to a given circuit, its internal *NETWORK FORWARDING TABLE* tells it how to access the other circuits. Network forwarding is part of the general message-forwarding mechanism of TurboDOS described earlier, and is transparent to the user. As TurboDOS networks for IBM PC and PC-compatibles begin to appear, we can expect to see gateways implemented to connect them to existing TurboDOS networks. The introduction of banked memory support in Z80 TurboDOS 1.3 has made it both feasible and desirable to network 8-bit, as well as 16-bit, PCs together. Figure 3. Multiple networks linked by a gateway processor TurboDOS limitations -------------------- Any TurboDOS network that has fewer than 16 devices of any type can be configured to emulate a large computer system; no matter how the hardware is physically distributed, users have access to all network devices at all times. However, since TurboDOS uses the CP/M device-naming convention (letters A through P), when there are more than 16 devices on a network, users may access only a subset of the network at any one time. While 16 devices may seem sufficient, it is easy to imagine a network that has more than 16 drive volumes (or printers); it is also reasonable for network users to want to access most, if not all, of them. This situation can be handled in 3 different ways. First, the network can be restricted to a maximum of 16 of each device. This limitation is reasonable for small point-to-point systems (e.g., 2 systems communicating directly over a dedicated wire) but is prohibitive for larger networks. Second, one might change the device assignments of one or more processors. This has the serious disadvantage that TurboDOS has no mechanism for changing device assignments in a running system; device assignments can be made only when the system is generated. Thus, this scheme would entail generation of a separate version of the system for each set of device assignments; to change the assignments, the user would have to shut down the current system and reboot it with a different version. Since few end-users generate their own systems, this is not a very practical solution. Last, TurboDOS networking products can be provided with utilities that allow device assignments to be edited and patched while the system is running, without reSYSGENing the operating system or rebooting it (see the Commercial Dynamics example, below). Choosing a TurboDOS network --------------------------- If you already owns a TurboDOS tightly-coupled network, your choice for further networking products will probably be limited to whatever network hardware your manufacturer or dealer supports. However, if you have not yet purchased a system or are in a position to choose between different types of networks, an analysis of your applications is important to determine which type of tightly-coupled and/or loosely-coupled network will best suit your needs. All of the currently-available tightly-coupled networks provide similar network performance. Tightly-coupled networks that use an RS-422 transmission facility have a somewhat slower network transfer rate and, therefore, will not perform as well as S-100 and Parallel Bus systems, especially in disk- intensive operations. The costs of most tightly-coupled systems are similar, so your choice will depend primarily on the other features of the TurboDOS system, including disk storage, application software, dealer support, etc. Loosely-coupled networks, on the other hand, differ significantly in price and performance. A low-speed network can cost less than $100 per node to implement, while the highest speed system currently available costs more than $2000 per node. Loosely-coupled network transmission rates also vary significantly, anywhere from 9.6 Kbaud to 10 Mbaud per second. Low-speed networks (9.6 Kbaud to 40 Kbaud) are primarily useful for occasional file transfers, low-volume printer sharing, and the transmission of user-to- user mail and messages. They are generally unacceptable in situations where large volumes of data must be transferred or more than a few nodes use the network at the same time. Medium-speed networks (100 Kbaud to 500 Kbaud) provide adequate throughput for all but the most intensive networking speeds. A network in this speed range should be able to load executable files, transfer large amounts of data, and have multi-user access over the network. Medium-speed networks are most often used in situations where network nodes use primarily local disk resources and only go to the network for access to globally-shared resources. Sharing printers and file transfers between a loosely-coupled network of otherwise independent, tightly-coupled systems is an excellent application for a medium- speed network. High-speed networks (500 Kbaud and higher) are needed for good performance in situations where network nodes make their primary disk requests over the network. A common use of high-speed networks is for chassis expansion; e.g., 2 separate tightly-coupled S-100 Bus networks sharing a single large hard disk. In this case, the system without the hard disk uses only a floppy or small hard disk to boot its processors and, from that point on, all disk requests are transmitted over the high-speed network to the system with the large hard disk. To determine whether a given network speed suits your specific needs, you must first calculate, in bits, the average and maximum amounts of data that will be transferred over the network simultaneously. Divide each of these figures into the effective transfer rate of the network (which is usually 10 to 50 percent of the manufacturer's stated transfer rate...) to determine the actual transmission time under average and maximum conditions. This simple calculation should give you a reasonable estimate of how well a network will perform. Trends ------ Given the increasing availability of lower-cost networking hardware and the decreasing price of hard disks, we expect to see large multi-user TurboDOS networks configured somewhat differently than they are at present. S-100 Bus- based systems are usually loaded with as many users as they can hold (10 to 20). To add more users, another S-100 Bus system is networked to the first (provided there is a networking product available), and the second system is loaded to its fullest potential. The major advantage of this approach is that it offers the lowest cost per user; the disadvantage is that contention for shared network resources slows down all users on the system. In most common applications, better overall performance can be obtained by distributing the users throughout several smaller (4- to 8-user) systems. These systems can then be networked together to provide all users with access to all network resources. The arrival of inexpensive hard disks and networking products will make distributed networks more common. The distributed approach also provides more protection against system failure: if one small network goes down, all others can still continue to operate. In a large, centralized system, a system crash can disable all users. Sample architectures -------------------- The MuSYS product line provides examples of all of the most common TurboDOS network configurations. Their tightly-coupled network includes satellite processors with an S-100 Bus star topology. They also offer an Ethernet board set that connects tightly-coupled S-100 Bus star networks into a loosely- coupled high-speed master-to-master bus network. A user will see very little difference in response time between making a disk request over this high-speed master-to-master network and making the same request on a local disk. For lower-volume applications, MuSYS provides both a medium-speed (RS-422) and a low-speed (RS-232) point-to-point, satellite-to-satellite network that uses a dedicated satellite processor board as a controller. It would not be cost- effective to connect more than 2 or 3 tightly-coupled systems with these latter 2 networks, since each system must contain one dedicated satellite for each of the other systems to which it is connected. The Televideo 808/816 network architecture is significantly different from other TurboDOS networks. At the center of Televideo's tightly-coupled star network is a dedicated server processor that controls hard and floppy disks, printers, and either 8 or 16 RS-422 ports. Each RS-422 port may be connected point-to-point to a workstation, which is a terminal with processor, memory and, optionally, a local floppy disk. Although the workstations can have local disk storage, they are not capable of booting off the local disk and connecting to the network at the same time; thus, the system is a tightly- coupled network, even though the processors are physically distributed. The Televideo network also allows point-to-point, master-to-master networking through the same RS-422 ports. As with MuSYS, an RS-422 port must be dedicated to each system that is networked. But, since the ports are provided with the initial purchase of the system, 2 Televideo 816 systems can be networked for a very small incremental cost. Commercial Dynamics provides a workable solution to the network size limitations imposed by TurboDOS. They introduce the concept of a network *ENVIRONMENT*, which is a particular view of a network. An environment consists of a set of logical-to-physical device assignments that specify which physical devices (disk drives, printers, queues) are accessed when a logical device is requested. Commercial Dynamics supplies utility programs to create, store, modify and activate the environments desired by the users. Each user on a network can define any number of environments by running a menu-driven, environment-editing utility. Environment definitions are stored in files, to be activated when they are needed by running the ACTIVATE command, and specifying the environment to be activated. Although only one environment can be active at a time, a new environment can be activated with one command. Thus, a given user's view of the network can easily be redefined and activated without affecting any of the other users on the network, and without regenerating the TurboDOS operating system. These utility programs are supplied with Commercial Dynamics' satellite processor and TurboNET network, and can also be obtained for any TurboDOS network. Commercial Dynamics also produces a satellite processor with an onboard network interface. As many as 16 tightly-coupled S-100 Bus networks that contain at least one Commercial Dynamics satellite can be connected at medium speed over a S-100 Bus network. The Commercial Dynamics satellite can be a user processor and a network interface at the same time; thus, loosely-coupled networks can be configured for a very low cost. The Commercial Dynamics satellite can be integrated into any S-100 Bus TurboDOS network, and is currently running on IMS systems. Summary ------- A wide variety of networking options are available with TurboDOS, using different network topologies and networking hardware. TurboDOS's (ROCHE> ???? Missing Text ???) EOF