10.07.2015 Views

DTJ Number 3 September 1987 - Digital Technical Journals

DTJ Number 3 September 1987 - Digital Technical Journals

DTJ Number 3 September 1987 - Digital Technical Journals

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

New Productshigher-level langage and fairly strict codingstandards to shorten our development time. Wealso had to initiate a search for code fragmentsalready existing within <strong>Digital</strong> that were alsorequired in our product. We felt that incorporatingrelated code could also greatly reduce boththe development and debugging time.The MS-DOS environment is quite similar tothe UNIX environment. Many C compilers basedon MS-DOS machines offer libraries similar tothe one on the UNIX system. Therefore, it wasquite fortuitous that the DECnet-ULTRIX system,<strong>Digital</strong>'s DECnet implementation for the ULTRIXsystem, had just been completed. It was writtenalmost entirely in the C programming language.We felt that some of the DECnet-ULTRIX codecould be used successfully in DECnet-DOS. Ourstrategy was to do the following tasks:• Write as much code as possible in C. Do notpreclude the use of assembler languageif required to access devices or servicesunavailable in C or to reduce execution timewhere necessary.• Use common coding and style practices forall code.• Adopt the DECnet-ULTRIX programminginterface. The programmer's access to networkservices is not part of the architecturebut is specific to the operating system andthe DECnet implementation.• Port code from the DECnet-ULTRIX softwarewhenever it is applicable and easier thanwriting original code.• Include trace facilities in the basic driverand all utilities as part of the design.Training IssuesAt the start of this project, few engineers in<strong>Digital</strong>'s Network and Communications Grouphad extensive experience with MS-DOS internalsor C programming. To prevent a certain delay ofseveral months while people were trained, theproject team decided to pursue two avenues ofexternal assistance: temporary in-house consultants,and external engineering. Three consultantswith MS-DOS and C programming backgroundswere employed, being gradually replacedby <strong>Digital</strong> employees as they completedtheir training. An arrangement was made with theComputing Resources Department of the Univer-sity of Texas Health Science 1 Center, San Antonio,to implement the file transfer utility. They hadexpertise developing an in-house DECnet implementationon another small system.Background Task DesignThe MS-DOS system is a single-task operating system;no services are providd to support the concurrentexecution of two tasks. This fact raised aproblem because a number ! of the requirementsfor the DECnet-DOS system! demand the concurrentoperation of some network tasks with theuser's current application. Such tasks include the.transmission and reception of periodic routingand line confidence messages, and the concurrentoperation of multiple connections. Moreover,a particular constraint was that applicationprograms have to run as wrtten, without codingchanges, while the network! is active. We simplycould not require that the thousands of applica-1tions currently on the market for MS-DOS-basedsystems be changed.To solve this problem, we devised a schemethat would allow network tasks to run either atperiodic intervals or from an interrupt from acommunications controller. This design envisionedthat network tasks wre interruptable andcould run in the background completely transparentto the application prgram running in theforeground. This scheme I had to be designedquickly and work the first ! time for the projectteam to complete the product on schedule.Unfortunately, the design of task scheduling inthe DECnet-ULTRIX software was incompatiblewith our scheme. Therefore, that portion of theDECnet-ULTRIX code could not be ported tosolve this problem. However, the interrupt architectureof the PDP- 11 syst.em and those of theIntel processors in the target machines are verysimilar. Therefore, the intetrupt design from theDECnet-RSX software thatlruns on the PDP- 11system could be used for the , interrupt functionin DECnet-DOS.The DECnet-RSX CPU scheduler uses a set ofwork queues in which request packets calledcommunication control blocks (CCB) arequeued for processing. Any data buffers associatedwith the requests are pointed to by fieldswithin the CCBs. ;For example, if a messag is received from thecommunications controllet, a CCB will be createdby the device driver fr the controller. Thereceived data is placed in a. buffer pointed to by<strong>Digital</strong> TechnkalJournalNo. 3 <strong>September</strong> 1986109

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!