Skip to content
Projects and resources for an intro to OS course (ECE59500 at Purdue) using DLXOS
C C++ Assembly Makefile Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

ECE595 Intro to OS (DLXOS) Projects

Student name: Andrew St. Pierre

Course: ECE595 Intro to Operating Systems, Fall 2018

ECE595 Programming Project 1


This first project first sets up the DLXOS directory structure and dev environment on an ECN Linux machine. Then, a new user trap called "Getpid" is implemented. This trap returns an integer representing the ID of the current process. When DLXOS is run on the hardware simulator, the integer PID is printed.

ECE595 Programming Project 2


The purpose of this lab is to become familiar with the problems of process synchronization and their solutions using OS-provided synchronization primitives. In particular, you will solve the classic producer-consumer problem using the following different combinations of synchronization primitives: locks, semaphores, and locks with conditional variables.
In addition to solving the producer-consumer problem, you will also implement one of the synchronization primitives inside the OS. In particular, for this lab, we will provide you with the implementation code for semaphores and locks in synch.c and synch.h, and you need to write the code to implement condition variables in synch.c and synch.h.

ECE595 Programming Project 3


The purpose of this lab is to become familiar with memory management techniques related to paging. In particular, you will accomplish the implementation of dynamic one-level paging in DLXOS, UNIX-style fork() with copy on write, and heap management on top of one-level paging in DLXOS.

ECE595 Programming Project 4


The purpose of this lab is to become familiar with file systems and their implementation. In particular, you will implement the following in a UNIX-lke file system called DlxFS (DFS for short): 1) implement a DFS system driver 2) implement fdisk to format a disk with the DFS filesystem 3) implement common libc-style file I/O functions 4) implement a filesystem buffer-cache


  1. DLX Instruction Set
  2. The DLX Architecture
  3. The DLX Operating System (DLXOS) Design
  4. MIT Open Courseware and OS Course


You can’t perform that action at this time.