ECE595 Intro to OS (DLXOS) Projects
Student name: Andrew St. Pierre
Course: ECE595 Intro to Operating Systems, Fall 2018
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.
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.
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.
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
- DLX Instruction Set
- The DLX Architecture
- The DLX Operating System (DLXOS) Design
- MIT Open Courseware and OS Course