Skip to content

Commit

Permalink
Final update before committing release
Browse files Browse the repository at this point in the history
  • Loading branch information
Kujawadl committed Feb 12, 2016
1 parent 27a5d90 commit f8f223f
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions README.md
Expand Up @@ -2,11 +2,9 @@

### by Aaron Baker, Andrew Ballard, and Dylan Jager-Kujawa

#### CSC 341, Spring 2016
#### Submitted under cs341109

##### Submitted under cs341109

## Table of contents
# Table of Contents
- [Project overview](#project-overview)
- [Machine](#machine)
- [OS](#os)
Expand All @@ -16,6 +14,7 @@
- [Time Spent](#time-spent)
- [Verification](#verification)
- [Project Listing](#project-listing)
- [Execution Listing](#out_txt)
- [machine.h](#listing_machine_h)
- [machine.c](#listing_machine_c)
- [os.h](#listing_os_h)
Expand All @@ -24,7 +23,7 @@
- [part1x.dat](#listing_part1x_dat)
- [makefile](#listing_makefile)

## Project overview
## Project Overview
During this course of this class we are going to be exploring and creating operating system concepts and components. In this first lab we are going to implement a machine language interpreter for the given architecture. This will serve as the foundation for later projects, which will highlight more specific concepts in OS design.

### Machine
Expand Down Expand Up @@ -111,7 +110,7 @@ GitHub tracks contributions over time.

## Verification

###### Verifying program load:
#### Verifying program load:
To start, we'll verify that the program loads into memory correctly. The program in question is listed in part1.dat. The assembly equivalent of this program is:

Operation | Addressing Mode | Register | Operand
Expand Down Expand Up @@ -156,7 +155,7 @@ Address | Value (Decimal)

We can see from the first `dmp` in out.txt that this is indeed how are memory has been loaded.

###### Running u1
#### Running u1
The program that is loaded essentially does the following:
- Load the immediate value 10 into the default register (rA)
- Store the default register into memory address 6
Expand All @@ -166,12 +165,12 @@ The program that is loaded essentially does the following:
- Halt
Basically, the end result of this program is that locations 6 and 7 are overwritten with the value 10, and this is what we should expect to see in our output. The second `dmp` verifies that the program has run as expected.

###### Running u2
#### Running u2
Once u1 has finished running, the value in address 7 has changed to 10. This address is still u2's starting location. Thus, u2's program now starts with decimal 10, which would be binary 0000000000001010, which loads the value in memory address 10 into the default register (rA). The program then proceeds as expected, its only side effect being that the value in rA is written to addresses 6 and 7.

The value in address 10 is decimal 16640. Our third `dmp` shows that addresses 6 and 7 were correctly overwritten with this value.

###### Scheduler
#### Scheduler
We can see throughout the output listing that the scheduler runs as expected. Each user gets three ticks, including entering input as one tick, or if a `nop` is received the user's turn is skipped.

Additionally, if a user is currently executing a program, their turn is skipped. For example, when u1 is running its program, the scheduler executes its statements, then switches to u2. From the CLI (ignoring debug output) it would appear that the scheduler has skipped u1 entirely, though we can see from debug output that this is not the case, and u1 did still get its 3 turns.

0 comments on commit f8f223f

Please sign in to comment.