CPSC 410 / CPSC 611 -- Operating Systems: Projects
CPSC 410 / CPSC 611 -- Operating Systems: Projects
This page contains information about the projects.
Presentations about the Project Environment
Topic |
Slides |
|
|
Introduction |
slides
The Boot Process
Compiling and Linking a Kernel
Issues when Building a Kernel in C++
|
Low-Level Programming |
slides
Exceptions
Interrupts
Simple Devices
|
Handing in Projects
You are to submit your projects through the department's turn-in
system. Proceed as follows:
- Log into http://csnet.cs.tamu.edu. (You
may need to establish a VPN connection first; not sure.)
- Follow the "My Courses" link.
- Select CSCE 410 or CSCE 611 from the given list of courses. you
will see the class information and buttons for turn-in.
- Use the buttons to upload your files.
- NOTE: Subsequent submissions overwrite your earlier
submissions for the same assignment!!
- If you have more than one file to submit, compress them into
one file using zip.
Grading Criteria:
- Code Compiles: 40% (This basically means that you get at least 40% for each machine problem)
- Feature Completeness and functional correctness: 20%
- Documentation : 10%
- Efficiency : 10%
- Report 20%
- Grand Total: 100%
Turn in suggestions for Machine Problems:
- Follow a consistent code formatting style. This will ensure that the TA spends most of his time in understanding the logic of your code rather than on the structure of your code.
- Handle error conditions well. Try your best to make sure that your code prints out relevant progress messages on the console, so that the TA can figure how far along your code progressed in case the code crashes.
- Pay attention to efficiency. Although the grading criteria includes only 10 points for it, efficiency is an important factor in real product code in the industry. It is best to cultivate this habit sooner rather than later. Thinking about efficiency will also help you in writing an better report (20 points) by reasoning for/against design decisions.
Points to remember throughout the development of solutions to the machine problems:
- Since we are developing OS level code, we can only use the library
support available from within the bare bones version of the code
provided. For example, we cannot use the standard IO library or the
STL.
- Before submission, make sure to check that your code compiles
using the DJGPP compiler. To make sure that you have submitted the
correct version of your code, download the submitted version from
the submission page and recompile it on top of a clean version of
the provided bare bones code. This will ensure that you will not
lose out on any of the 40% for correct compilations. In the past we
have seen students losing points becase of code compilation
issues.
Mention "CSCE 410" in the subject while communicating with the TA. All
course related communication will be sent to your CS email
address. Please check it regularly or forward it to another email that
you check regularly.
Infrastructure for Machine Problems
Check out the TA's Page for
a very thorough overview of the setup of the infrastructure needed for
the machine problems.
Machine Problem 1 (Due Date: Check CSNET)
This first machine problem is easy and should get you used to the
machine problem environment, such as the Bochs emulator, the
compilers, and so on.
The handout for MP1 is available here, and the source code that you need
to work with is contained in this ZIP file.
Machine Problem 2 (Due Date: Check CSNET)
In the second machine problem you start working on the virtual
memory management of your operating system. You will set up
the paging system and initialize the page table.
The code for this MP can be found here. You will receive the handout
associated with this MP by e-mail.
Machine Problem 3 (Due Date: Check CSNET)
In the third machine problem you will further develop the memory
manager developed in MP2 to have page tables in virtual memory.
In addition, you will write a simple virtual memory allocator and
link it up to the new/delete operators in C++. With dynamic memory
available, life
will be much simpler!
The code for this MP can be found here. You will receive the handout
associated with this MP by e-mail.
Machine Problem 4 (Due Date: Check CSNET)
In the fourth machine problem you will work with the low-level
threading system of your operating system. You will implement a
scheduler and work on the interaction between low-level threads
and your scheduler subsystem.
The code for this MP can be found here. You will receive the handout
associated with this MP by e-mail.
Machine Problem 5 (Due Date: Check CSNET)
In the fifth machine problem you improve a simple device
driver for a disk to support asynchronous operations and
(optionally) mirroring. In addition, you will implement a simple
file system on top of the disk device. The code for this MP can be found here.