CS-442 Systems Programming

Mathematics, Statistics & Computer Science Department

COURSE NO./TITLE: CS-442 (354-442) SYSTEMS PROGRAMMING

CREDITS: 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
  • 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. 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.
  2. 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. Review of Macro-level Machine Architecture
  2. Assemblers
  3. Loaders and Linkers
  4. Macro Processors
  5. Compilers
  6. Operating Systems

Revised 1/05