To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.legosOpen lugnet.robotics.rcx.legos in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / legOS / 3143
3142  |  3144
Subject: 
brickOS in an Operating Systems Classroom
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Fri, 31 Jan 2003 01:14:09 GMT
Viewed: 
3690 times
  
*********************************************
* brickOS in an Operating Systems Classroom *
*********************************************

Hi.  I just want to report on a little project
we did here at East Carolina University last
semester.  Although we never posted to this
newsgroup for help, we need to thank you all for
the countless postings we have read.  Thanks
especially to Joseph Woolley for helpful comments
regarding the original project descriptions.

I taught a graduate operating systems class with
12 students, and used the legOS-0.2.6 environment
as the sole platform for our programming projects.
I am firmly convinced that brickOS is the most
natural and useful platform for the sort of class
we run here (not a lot of attention on peripheral
hardware).  The students were able to study the
kernel, modify it, compile it and test it all in
the span of a single semester.  Contrast this
with other somewhat contrived platforms where the
student writes a "memory manager" by filling in
the blank lines in some module.

Each of the 4 projects produced a kernel, a test
program and some documentation which I have made
available online at:
http://www.cs.ecu.edu/~hochberg/fall2002/brickOS/index.html

The four projects:

Project 1:  Memory management
Allows the user to select the memory allocation algorithm
from among:  first fit, worst fit, best fit and next fit.
They nailed this project perfectly!  Their kernel is perfectly
stable, and their implementation is slick and integrates
seamlessly into existing brickOS.

Project 2:  Realtime tasks
They also nailed it!  This kernel is stable and has very impressive
realtime capabilities.  Online is a movie showing a *fast* car detecting
a 1/4" black line with a low-priority process, while higher priority
processes are running in the foreground.  The car found the line
every time.

Project 3.  New scheduler
It works, but it is unstable in that after the new kernel is
loaded, the user has trouble stopping programs and
starting new ones.  It also assigns CPU time so that each
priority queue gets time proportional to the priority of that
queue, as opposed to per-process proportionality.

Project 4.  Linux-like scheduler
This is even more unstable, in that it will only run once as
well.  You can't stop programs and start them up again.
But they did get it to schedule according to Linux specs,
jiffies and all.

Some of this material may be useful in future releases, or
to programmers wishing to do what these students have
done.  Each of the kernels should compile to the original
kernel unless their particular "#define NEWKERNEL" is
defined, in which case their new kernel compiles.  See the
website for more info:
http://www.cs.ecu.edu/~hochberg/fall2002/brickOS/index.html

Thanks,
Rob Hochberg
hochberg@cs.ecu.edu



1 Message in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR