Mathematics, Statistics & Computer Science Department COURSE NO./TITLE: CREDITS: CS-442 (354-442) SYSTEMS PROGRAMMING 3 COURSE DESCRIPTION: Design, organization and case studies of major systems software: assemblers, loaders, linkers, macro processors, compilers, and operating systems. Relationship between machine architecture and system software. Prerequisite: CS-441. TEXTBOOK: Modern Operating Systems, 2nd Ed., by Tanenbaum and UNIX Systems Programming: Communication, Concurrency & Threads, 2nd Ed. by Robbins (adopted SP05) (Adopted SP99: System Software, 2nd Ed., by Beck; Operating Systems, 2nd Ed., by Stallings. (Previously used: Introduction to Operating Systems, 1st Ed., by Deitel and System Software-An Introduction To, 1st Ed., by Beck) COURSE OBJECTIVES: Upon completion of the course the student will be able to: 1. 2. Explain the following items for each type of system software studied (assemblers, linker/loaders, macro processors, compilers, and operating systems: a. Essential features of the system. b. Common machine independent extension features. c. Machine dependent features. d. Major design options. e. Important features of state-of-the-art real implementations. Design, implement, and document the following software systems: a. An assembler for a simple assembly language. b. A compiler for a simple high-level language. c. A simple program utilizing the concepts of concurrency. COURSE OUTLINE: 1. 2. 3. 4. 5. 6. Review of Macro-level Machine Architecture Assemblers Loaders and Linkers Macro Processors Compilers Operating Systems Revised 1/05