Lab 4 by Kempak Kernels (Team No. 24)
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
- Linux
- gcc-dlx
- dlxsim
- dlxasm
Simply, unzip and run given you have the required programs
unzip ee469lab4_g24.zip
This repository actually contains three OS's. The first OS deals with questions 1 and 2 of lab 4. To run these tests, change directories (cd) into one-level and execute the following commands:
chmod u+x make.sh
make.sh -R q2
This will run the tests for question 2 on a one-level system.
To run the test for fork, cd into fork and execute the following commands:
chmod u+x make.sh
make.sh -R q2
To run the test for heap, cd into heap and execute the following commands:
chmod u+x make.sh
make.sh -R tests
To view the heap after each allocation and free, enter debug mode by executing:
make.sh -D tests
The flag "-D h" will run the fancyPrint function and display heaps.
Note that in any OS, you can always cd into the os folder and run
make
make run
and then cd into the folder of the application you wish to run and run
make
make run
To clean, run "make clean" from any project folder, or simply run "make.sh -c" from the heap, fork, or one-level folders.
Add notes about how to use the system.
-
before you exit from ssh session: Please make sure that you copy the contents of your tmp folder into your home for backup
cp -r /tmp/$USER/ee469 ~/
-
When you login again to ecegrid, you can restore your work to tmp as:
cp -r ~/ee469 /tmp/$USER/"
Add additional notes about how to deploy this on a live system.
- @mitchellciupak - Teammate
- @ckemmet - Teammate
./
apps/: user programs go here
bin/: put any executable DLX files here
include/:
header files for user programs are here
os/: header files for the operating system are here
lib/: precompiled object files for user programs (i.e. usertraps.o) go here
os/
- memory.c: contains functions dealing with paging and other memory managment tasks.
- process.c: contains functions dealing with process maintenance and switching.
- misc.c: contains miscellaneous helpful functions such as string manipulation functions.
- queue.c: contains functions related to queue management.
- synch.c: contains functions related to synchronization primitives such as semaphores.
- sysproc.c: contains functions used primarily for tesing the other operating system functions.
- traps.c: contains functions that respond to traps.
- filesys.c: contains functions for reading and writing to a filesystem.
- dlxos.s: contains low-level operating system code such as the bootloader.
- osend.s: a bookkeeping file listing the last address of the operating system.
- trap_random.s: contains the trap subroutines to generate random numbers.
- usertraps.s: contains the trap subroutines that are available to user programs.