EEN521 (Operating Systems) Autumn 2008
Assignments
- The assignment and
the accompanying explanation.
Here is the up-to-date compiler code for
you to build upon. Use as much of it as you want.
The 'setup521' command does not retrieve these files. Once you have taken them
and made your own modifications, you don't want any risk of accidentally re-downloading
the originals. Hence no automatic script.
To get the files all at once, the exact command 'cp /home/www/class/een521/compiler/* .'
will copy them all into your own directory.
Included amongst the files is a command script called "remake". Typing the command 'remake'
will automatically recompile all the components and create an executable called 'compile'.
Here is the emulator stuff.
- (due Thurs 6th Nov.)
part two of the accompanying explanation.
Complete the language implementation, making functions with local variables
work properly. You should be able to compile and execute a program with a useful
recursive function in it.
The language features not yet required are arrays, objects/structs, pointers, and strings.
Class History
- Class 1 (28-8-2008) General introductions, a few hints of future material
- Class 2 (2-9-2008) The general idea of a computer emulator and an assembler for it.
- Class 3 (4-9-2008) All about stack frames and high level programming. program, stack.
- Class 4 (9-9-2008) A recursive program and its stack use
- Class 5 (11-9-2008) the missing day.
- Class 6 (16-9-2008) Evolving a Compiler, part 1. (the code)
- Class 7 (18-9-2008) Evolving a Compiler, part 2. (the code)
- Class 8 (23-9-2008) Evolving a Compiler, part 3.
- Class 9 (25-9-2008) Design considerations for a system programming language.
- Class 10 (30-9-2008) Evolving a Compiler, part 4. (the code)
- Class 11 (2-10-2008) Physical characteristics of magnetic tapes and discs; blocks, checksums, gaps, etc.
- Class 12 (7-10-2008) Creating a file system, part 1.
- Class 13 (9-10-2008) Creating a file system, part 2.
- Class 14 (14-10-2008) multi-level index file structures.
- Class 15 (15-10-2008) maximum capacities, access speed, unix I-nodes.
- Class 16 (21-10-2008) Files-11/NTFS, ReiserFS.
- Class 17 (22-10-2008) Virtual memory, part 1.
- Class 18 (28-10-2008) Virtual memory, part 2.
- Class 19 (30-10-2008) Virtual memory the whole thing: interrupt vector, call gates, special registers. From
bios reset until OS is operational.
Today's material
class.html is exactly what we had at 6.15 pm.
editor.html is Mike's magical memory viewer. To see other stages of development, press LOAD, paste in
the content of the relevant .txt file, and press LOAD again. Firefox may not give full functionality.
rom.txt is computer immediately after reset
loader.txt is after bios has started the fixed-size o.s. loader
osstarted.txt is just after loader has turned on vm and jumped to 80000000.
- Class 20 (4-11-2008) About objects and arrays (source)
- Class 21 (6-11-2008) Today's notes: part 1.
- Class 22 (11-11-2008) Creating processes, time-sharing, etc.
- Class 23 (13-11-2008) Faking a disc in C/C++ for quick experiments.
Communications problems: shared variables, critical regions, semaphores, deadlock, intro to dining philosophers.
- Class 24 (18-11-2008) Investigating deadlock, philosophers, etc.
- Class 25 (20-11-2008) A bit of show-and-tell, Investigating process states and different systems' views of processes.
- Class 26 (25-11-2008)
- Class 27 (2-12-2008) Device Drivers, situations where semaphores make things worse.
- Class 28 (4-12-2008) Viewing memory allocation areas (BSD and microsoft specific), Implementing the Heap.
Latest Documentation, Explanations, and Stuff.