Approach: C o m p u t e r systems, their hardware and basic operating software, are studied, with attention to the h u m a n
115
factors involved in computer system operation and maintenance.
Types of modules and types of system function mode (batch, inter- active, online, etc.) should be carefully distinguished. The basic components of file and communication systems are presented and analyzed. The functioning of these systems as integral components of an information system is stressed. When possible, if a file man- agement language is available, a small file system design and im- plementation project would be desirable.
Content:
1. Hardware modules (15%)
Processor, memory, input/output, mass storage, remote trans- mission modules; function and possible realization of each. Micro- programming. Styles of buffering, interfacing, communication and interrupt handling. Channel management, virtual configurations.
Network and multiprocessor configurations.
2. Execution software, multiprogramming, and multiprocessing
(10%)
General interpretive modules for execution support, e.g. list processors. Modules for memory management in real and virtual memory systems. Processor and channel modules for support of input/output, mass storage and remote transmission units in real and virtual configurations. Concepts of multiply-reentrant programs and cooperating processes. Levels of multiaccessing and multiplexing. Batch and interactive modes.
3. Operation software ( 1 0 % )
Loading, interrupt monitoring, diagnostic modules. Scheduling, resource allocation, performance monitoring packages. Concepts of state resurrection and interprocess protection.
4. Data and program handling software ( 1 5 % )
Media and format conversion modules. File handling facilities.
Control specifications for datasets. Translating, compiling, generat- ing modules. Editing and debugging facilities. Linkage and job control specifications for subroutines, and standard packages.
Problems of identification and security.
5. Functions of file and communication systems ( 1 0 % )
Role of information acquisition, storage and transmission in an organization. Typical operations in file systems: file creation, maintenance, interrogation. Typical operations using communica- tion systems. Issues of information availability, privacy, security.
6. File systems {10%)
Characteristics of auxiliary storage devices. Capacity, access, cost. Device types: tape, disk, mass storage. Data fields, records, files, hierarchies of files. Directories and indices, inverted files.
Structure and access: sequential, direct indexed sequential, ran- domized, randomized with buckets. Storage allocation and control techniques. Estimating capacity and timing requirements.
7. Review of data management systems and analysis ( 1 5 % )
Generalized data management systems. Directory maintenance, query languages, data description, job management. Characteristics of available systems.
8. Review of communication systems ( 5 % )
Theoretical concepts: channels and channel capacity, noise, error detection and correction. Existing communication facilities;
ine types, exchanges; utilities and tariffs. Transmission modes.
Line termination and terminal devices. Single line: point-to-point, multidrop. Networks: centralized, decentralized, distributed. Con- trol and protocol; acknowledgment, wait-requests, contention, polling. Switched, store-and-forward. Data concentrators and dis- tributors. Estimating line and terminal requirements.
9. Examples ( 1 0 % )
The data base concept: integrated data approach, coordination, control, multiple use of data. The data administrator; the computer utility. System resiliency and integrity, privacy, and security con- siderations.
References: There is no single introductory text for a combined hardware/software course at this level. The references given for Curriculum 68 courses 13 and 14 are in general relevant. Text materials may also be drawn from the operating manuals of what- ever large-scale computer system is available for use in the course.
1. Hardware modules: Bell and Newell (1971); Buchholz (1962);
Gear (1969); Husson (1970); Martin (1967).
2. Execution software, multiprogramming and multiprocessing:
Daley and Dennis (1968); Denning (1970); Dijkstra (1968b);
Rosen (1967) Pt. 5; Stimler (1969); Watson (1970); Wilkes (1967).
3. Operation software: Rosin (1969).
4. Data and program handling software: R o s e n ( 1 9 6 7 ) .
5. Function of file and communications systems: G r u e n b e r g e r
(1969); Martin (1967); Meadow (1967); Minker and Sable (1967); - Salton (1968); Senko (1969).
6. File systems: CODASYL (1969); CODASYL (1971); Dodd (1969); IBM (1969); IFIP (1969); Martin (1967); Meadow (1967);
Salton (1968); Senko (1969).
7. Review of data management systems and analysis: C O D A S Y L
(1969); CODASYL (1971); Gruenberger (1969); IFIP (1969);
McGee (1968); Martin (1967); Senko (1969).
8. Review of communication systems: Davenport (1971); Gentle (1965); Martin (1967); Martin (1969).
9. Examples: Martin (1967); Parkhill (1966).
Bibliography: The references are to the combined bibliography given below.
Combined Bibliography—Course Group U C
Bell, C.G., and Newell, A. (1971) Computer Structures: Readings and Examples. McGraw-Hill, New York. CR 12, 5(71)21, 279;
also CR 12, 7(71)21, 618.
A systematic treatment of computer architecture, with ex- amples drawn from existing computer families. A definitive work, containing notational and pedagogical innovations which should set the style for future works in this area.
Berztiss, A . T . ( 1 9 7 1 ) Data Structures: Theory and Practice. A c a -
demic Press, New York CR 12, 11(71)22,086.
Combines an introduction to discrete structures with a treat- ment of modeling and storage structures. Example program segments use FORTRAN; last chapter describes several other programming languages for information structures. Contains an extensive bibliography.
Buchholz, W. (Ed.) (1962) Planning a Computer System. McGraw- Hill, New York, CR 4, 6(63)4786.
An earlier but still useful discussion of how a computer hard- ware system is designed. Based on the development of the IBM Stretch computer.
CODASYL Data Base Task Group (1969) October 69 Report.
Report to the CODASYL Programming Language Committee, available through ACM. CR 11, 5(70)19,080.
Contains a proposal for a Data Description Language for describing a data base and a Data Manipulation Language which when associated with the facilities of a host language, allows manipulation of data bases described in the Data De- scription Language.
CODASYL Systems Committee (1971) Feature Analysis of General-
ized Data Base Management Systems. T e c h n i c a l r e p o r t , a v a i l -
able from ACM, New York.
Gives the reader a good feel for the state of the art in some widely-used generalized data base management systems. The introduction to this report also appears in Comm. ACM 14, 5, 308-318.
C u a d r a , C . A . ( E d . ) ( 1 9 6 6 - 1 9 7 1 ) Annual Review of Information
Science and Technology. Vols. 1-6, CR 8, 1(67)11,128 (Vol. 1);
CR 10, 4(69)16,550 (Vol. 3); CR 11, 7(70)19,391 (Vol. 4).
An excellent survey and review publication, covering mainly information storage and retrieval systems.
Daley, R.C., and Dennis, J.B. (1968) Virtual memory, processes, and sharing in MULTICS. Comm. ACM 11, 5, 306-12. CR 9, 8(68)14,978.
Discusses the concepts of dynamic linking and loading, and the sharing of procedures and data in virtual memory.
Davenport, W.P. (1971) Modern Data Communications. Hayden, New York.
An introductory textbook covering many topics in data com- munications in an elementary way.
Denning, P.J. (1970) Virtual memory. Computing Surveys 2, 3, 153-89. CR 12, 4(71)21,031.
A thorough treatment of this fundamental concept for design of multiprogramming systems.
Dijkstra, E.W. (1968a) The structure of "THE"-multiprogramming system. Comm. ACM 11, 5, 341-46.
The techniques described here for program design, implementa- tion, and verification are quite useful in illustrating program aesthetics.
116
Dijkstra, E.W. (1968b) Co-operating sequential processes. In Genuys (1968).
A definitive article which sets forth the basic aspects of concur- rently running processes in computer systems.
D o d d , G . G . (1969) Elements of data management systems. Com- puting Surveys 1, 2, 117-33. CR 10, 11(69)17,780.
Title is misleading. Actually a presentation of information structures in the context of data management systems.
Flores, 1. (1969a) Computer Sorting. Prentice-Hall, Englewood Cliffs, N.J. CR JO, 1(69)16,053.
Presents various sorting techniques, with assembly language level procedures.
Galler, B., and Perlis, A. (1970) A View of Programming Languages.
Addison-Wesley, Reading, Mass.
Gauthier, R., and Ponto, S. (1970) Designing Systems Programs.
Prentice-Hall, Englewood Cliffs, N.J. CR 12, 3(71)20,829.
See particularly Ch. 7 (Data Representation) and Ch. 8 (Search Structures).
Gear, C.W. (1969) Computer Organization and Programming.
McGraw-Hill, New York. CR JO, 9(69)17,372.
A good text in assembly-level programming, which treats both hardware and basic software in this context.
Genuys, F. (Ed.) (1968) Programming Languages. Academic Press, New York.
G o r d o n , G . (1969) System Simulation. Prentice-Hall, Englewood Cliffs, N.J. CR 11, 3(70)18,682.
Griswold, R.E., Poage, J.F., and Polonsky, J.P. (1968) The SNO- BOL 4 Programming Language. Prentice-Hall, Englewood Cliffs, N.J. CR 10, 11 (69) 17,858.
Gruenberger, F. (Ed.) (1969) Critical Factors in Data Management.
Prentice-Hall, Englewood Cliffs, N.J. CR 11, 2(70)18,384.
A collection of symposium papers.
Hassitt, A. (1967) Computer Programming and Computer Systems.
Academic Press, New York. CR 8, 4(67) 12,355.
Ch. 8 on debugging philosophy and Ch.9 on the dynamic use of storage are most useful.
Head, R.V. (1971) A Guide to Packaged Systems. Wiley, New York.
Hopgood, F.R.A. (1969) Compiling Techniques. American Elsevier, New York. CR 10, 11(69)17,773.
Distinguishes between abstract data structures and internal storage structures. Ch. 2 (Data Structures), Ch. 3 (Data Struc- ture Mappings), and Ch. 4 (Tables) are particularly relevant here.
Husson, S. (1970) Microprogramming: Principles and Practices.
Prentice-Hall, Englewood Cliffs, N.J.
C o n t e m p o r a r y treatment of the implementation of computer control, using several existing processor designs as extended examples.
IBM Corporation. (1969) File Design Handbook. Information Sciences Depart., IBM Research, San Jose, Calif.
A prototype file design handbook with special emphasis on providing equations, guidelines, and simulation data for use by the file designed in meeting user constraints on cost, storage capacity, response time, etc.
IFIP. (1969) File Organization. Selected papers f r o m File 68—an I.A.G. Conference. Swets and Zeitlinger N.V., Amsterdam, T h e Netherlands.
Papers ranging f r o m the nature of management and informa- tion systems, and details of file structure design and program- ming support systems, through specific case studies.
Iverson, K . E . (1962) A Programming Language. Wiley, New York.
Contains considerable material on data structures, graphs, trees, and sorting, as well as descriptions of these in APL.
Johnson, L . R . (1970) System Structure in Data, Programs and Computers. Prentice-Hall, Englewood Cliffs, N.J. CR 12, 1(71)20,504. Systematic treatment of much of computer science, taking the tree as a basic structural element.
K n u t h , D.E. (1968) The Art of Computer Programming, Vol. 1:
Fundamental Algorithms. Addison-Wesley, Reading, Mass.
CR 9, 6(68)14,505.
A n extensive compendium (Ch. 2. Information Structures) of information and techniques on data structures and storage management. Does not distinguish between modeling and implementation structures. Section 1.4 on subroutines, co- routines, and linking is must reading. Other related topics are thoroughly covered. Many good examples a n d exercises.
M a r t i n , J . ( 1 9 6 7 ) Design of Real-Time Computer Systems. P r e n - tice-Hall, Englewood Cliffs, N . J . CR 9, 2(68)13,607.
A thorough treatment of analysis a n d design methodology for implementing real-time computer systems. C o n t a i n s much material on both file and communications subsystems. Ch. 2, 3, and 10 on basic techniques and building blocks f o r these pro- grams are quite good. Ch. 9 on the dynamic use of memory is also relevant.
Martin, J. (1969) Telecommunications and the Computer. Prentice- Hall, Englewood Cliffs, N.J. CR 11, 8(70)19,602-19,603.
See annotation in bibliography for Course G r o u p D . Meadow, C.T. (1967) The Analysis of Information Systems. Wiley,
New York. CR 9, 8(68) 14,939.
Subtitled " A Programmer's Introduction t o Information Re- trieval." A thoughtful presentation f r o m the standpoints of both library science and computer science.
Mealy, G . H . (1967) Another look at data. Proc. AFIPS 1967 FJCC, Vol. 31, A F I P S Press, Montvale, N.J., 525-34.
Sketches a theory of data based on relations.
Minker, J., and Sable, J. (1967) File organization and data manage- ment. In C u a d r a (1967), Vol. 2, 123-60.
A report of then-recent developments in file organization and data management, organized in a tutorial a n d expository framework, with an extensive bibliography.
Morris, R. (1968) Scatter storage techniques. Comm. ACM 11, 1, 38-44.
Surveys hashing schemes for symbol table algorithms. Presents analytic formulations of processing requirements.
Parkhill, D. (1966) The Challenge of the Computer Utility. Addison- Wesley, Reading, Mass. CR 8 1 (67) 11,053.
Discusses the history, technology, economic, and legal aspects of computer utilities.
Rosen, S. (Ed.) (1967) Programming Systems and Languages. Mc- Graw-Hill, New York. CR 10, 1(69)15,975.
Pt. 2 of this collection contains reprint articles on the major programming languages, and Pt. 3 articles on compiling and assembling. Pt. 4 contains papers of historical interest on various string and list processing languages. Pt. 5 is devoted to operating systems.
Rosin, R.F. (1969) Supervisory and monitor systems. Computing Surveys 1, 1, 37-54. CR 10, 8(69)17, 284.
A survey of operating system development, tracing the evolu- tion f r o m the earliest crude monitor systems to the present.
Salton, G.J. (1968) Automatic Information Organization and Re- trieval. McGraw-Hill, New York, CR 10, 6(69)16,841.
Concentrates on automatic computer-based information re- trieval systems. Includes a selective bibliography in informa- tion storage and retrieval and related topics.
Senko, M.E. (1969) File organization and management information systems. In Cuadra (1969), Vol. 4, 111-43.
A review of management information systems applications and structure, viewed f r o m the standpoints of both the in- formation scientist and the systems programmer. Includes an extensive bibliography.
Stimler, S. (1969) Real-Time Data-Processing Systems. M c G r a w - Hill, New York. CR 10, 9(69)17,391.
A text on hardware configuration design, emphasizing file and communications subsystems. Develops and illustrates many evaluation and optimization techniques.
Van Horn, E.C. (1968) Three criteria for designing computer sys- tems to facilitate debugging. Comm. ACM 11, 5, 360-64.
C/? 9, 11(68)5,580.
Walsh, D . (1969) A Guide for Software Documentation. Inter-ACT, McGraw-Hill, New York. CR 11, 7(70)19,392.
Contains a number of models for the design of documenta- tion procedures.
Wegner, P. (1968) Programming Languages, Information Struc- tures, and Machine Organization. McGraw-Hill, New York.
CR 10, 2(69)6,228.
There is a good section on coroutines, tasks, and asynchronous processing (4.10). Includes an extensive bibliography.
Williams, R . (1971) A survey of data structures for computer graphics systems. Computing Surveys 3, 1, 1-21. CR 12, 7(71)21,621.
Includes an extensive bibliography.
Wirth, N . (1971) Program development by stepwise refinement.
Comm. ACM 14, 4, 321-27. CR 12, 8(71)21,630.
An interesting exposition of the program design process.