Skip to Content - Skip to Navigation

COSC 430 Introduction to System Programming

Loading...

Prerequisites:  COSC 300 and COSC 310

Concepts and techniques of systems programming with an emphasis on assembly, linking, loading, and macro processing for user programs.  Overviews of higher-level language translation and system control.  Programming and research projects.

Course Objectives

Upon successful completion of the course, the student will be able to

A. Analyze an assembly language to determine the complexity of the assembler and the architecture of the machine that it runs on.

B. Describe several ways the passes of an assembler can be constructed to accommodate the architecture and loading.

C. Write a two-pass assembler that creates object modules for programs written in a simple assembly language.

D. Describe how a linker/loader creates an executable program from an object module and write such a linker/loader for a simple two-pass assembler.

E. Describe how a macro processor works and write a simple one.

F. Describe the phases of compilation.

G. Describe the functioning of the principal parts of an operating system.

H. Use the systems programming problem solving approach.

Detailed Course Outline

1.  What is System Programming?    (4 hrs)
     A.  Discussions of the assignments
     B.  Explanations of specific system features
     C.  Suggestions on use of resources

2.  Operating system functions  (3 hrs)
     A.  Device management
     B.  Memory management
     C.  CPU management
     D.  File system management
     E.  Accounting and security
     F.  User services

3.  Machine Considerations for Assemblers  (3 hrs)
     A.  Instruction Formats
     B.  Instruction Types
     C.  Addressing Modes
     D.  Addressable Units and Address Spaces
     E.  Registers
     F.  Data Types and Representations

4.  Assembly Language Forms  (1 hr)
     A.  Statement Formats
     B.  Directives
     C.  Literals

5.  Assembly Process
     A.  Data Bases    (2 hrs)
          (1)  Fixed Tables (Opcodes and Directives)
          (2)  Dynamic Tables (Symbols and Literals)
          (3)  Organization and Access
     B.  Pass 1 Actions     (4 hrs)
          (1)  Building Tables
          (2)  Keeping the Location Counter
          (3)  Error Handling
          (4)  Handling Multiple CSECTs
     C.  Pass 2 Actions    (3 hrs)
          (1)  Error Handling
          (2)  Parsing Operands and Expressions
          (3)  Code Generation
     D.  One-Pass Assemblers  (1 hr)

6.  Linking and Loading
     A.  Object Files    (4 hrs)
          (1)  Relocation Information
          (2)  Unresolved Forward References
          (3)  Inter-PSECT References
          (4)  External References
          (5)  Record Forms
     B.  Linking Tasks    (1 hr)
                 (Allocation, Relocation, Resolution and Loading)

     C.  Approaches/Implementations    (4 hrs)
          (1)  Absolute Loader
          (2)  Transfer Vectors
          (3)  Direct Linking Loaders
          (4)  Linkage Editor
          (5)  Dynamic Loading
          (6)  Dynamic Linking
     D.  Effects of Memory Management Approaches   (1 hr)

7.  Macro Processing     (6 hrs)
     A.  Types of Macros
     B.  Definitions (including nesting)
     C.  Invocation (including nesting)
     D.  Expansion, Substitution, and Labels
     E.  Macro Processor Organizations
     F.  Interaction with the Assembler
     G.  Functions and Loops

8.  Compilation process    (3 hrs)
     A.  Lexical analysis
     B.  Syntax analysis (parsing)
     C.  Semantic analysis
     D.  Storage allocation
     E.  Code generation and optimization

Evaluation Methods

45%  Examinations.  Two mid-term exams and the final exam each count equally toward the 45%.  Examinations consist of short-answer, analysis, and what-if questions.

35%  Challenges.  Students are given a collection of tasks related to systems programming.  Some involve programming, some do not, most require some type of research into manuals and the computer system being used. Each task (challenge) is worth a specific number of points.  A number of points smaller than the actual total is set as a perfect score to encourage sutdent selection in doing the tasks.

15%  Programming Project.  A medium sized programming project (500-1000) lines is given related to the lecture material.  Possible projects include writing a machine emulator, a linker, a debugger, a disassembler.

5%   Research Project.  An analysis of the workings of a specific machine.

Required Textbook, Supplemental Books and Readings

Ellzey, R.S., Computer System Software, SRA, 1987.

A large subset of the manuals for the computer system being used.

Loading...
  • Computer Science Department
  • Stright Hall, Room 319
    210 South Tenth Street
    Indiana, PA 15705
  • Phone: 724-357-2524
  • Fax: 724-357-2724
Loading...
  • Office Hours
  • Monday through Friday
  • 7:30 a.m. – 12:00 p.m.
  • 1:00 p.m. – 4:00 p.m.