OS 502 Project Home Page

This is an overview of the documentation available for the project. It will seem a bit overwhelming to begin with, but as you continue to read this morass of words, you will find that it makes sense.

The student manual specifies how to acquire and build the Z502 simulator code base, shows initial output from test runs, and specifies the deliverables for project phase 1 and project phase 2.

The user manual presents the overall project description, specifies the project phase assignments, and provides reference material necessary for the project.   It is subdivided into the following chapters and appendices:

Preface -- Describes general structure of the user manual.

Introduction -- Describes the project goals, general philosophy, and introduces the Z502 machine and the development environment.

Project Phase 1 -- Describes the project phase 1 assignment.   This includes descriptive text of the overall operation of the kernel in the presence of multiprogramming and devices as well as the specifics of the assignment. (phase 1 grading guide .doc .pdf)

Project Phase 2 -- Describes the project phase 2 assignment.   This again includes considerable description as well as project phase specifics.

Z502 Architecture Specification -- Describes the hardware architecture of the (simulated) Z502 processor. 

Test Environment -- Describes the OS 502 application program user environment and the set of test programs provided for testing the correctness and functionality of your Operation System.

System Call Interface -- Specifies the interface to the OS502 Operating System, specifically the set of system calls available and their invocation.

Output Generation -- Specifies the print interface provided to trace the OS operations through the test suite.

The source code for the project can be loaded in either of the two following ways:

All Source Code -- This is a rollup of all the source files. There are headers at the beginning of each source that will enable you to cut them apart with your favorite editor. You can either obtain this one file OR all of the files listed below. If you get the separate files, you will not need to split them apart.

base.c -- Contains the beginnings of an operating system. It is this code you will expand upon to produce your OS.

sample.c -- Shows you how to interface to the hardware. Very useful to help you getting started.

z502.c -- This is the simulator code. It contains the underlying "hardware" mechanism. You will not need to modify this, but may want to look at it for coding examples.

test.c -- This file contains the tests that you will execute in order to assure that your implementation of the OS is running correctly.

scheduler_printer.c -- A tool that enables you to print out information in an organized and structured way.

z502.h -- An include file.

global.h -- An include file.

protos.h -- An include file.

syscalls.h -- An include file.