EEN521 (Operating Systems) Autumn 2007
Useful Things
- Working compiler, use it as you will: Compiler.cpp
- Complete documentation for compiler
- Complete documentation my emulator language
- Useful files:
everything.h
useful.h
useful.cpp
compat.h
unicompat.h
unicompat.cpp
wincompat.h
wincompat.cpp
- Sample programs:
for_loop,
useless_function,
arrays(1),
arrays(2),
structs,
single_bits,
arrays_as_parameters,
inline_assembly,
chars_from_a_string,
bit_selection,
modifying_a_string,
complicated_bit_selection,
recursive_function,
another_one,
pointers.
Class History
- Class 1 (23-8-2006) Introductions, a few snippets of future material.
- Class 2 (28-8-2006) The general idea of a computer emulator and an assembler for it.
- Class 3 (30-8-2006) Just how easy assemblers and emulators really are
(sample).
- Class 4 (4-9-2006) Hints about making everything work, formats, address calculation.
(sample assembly syntax).
- Class 5 (6-9-2006) Memory allocation for a modern programming language. Heap, stack, and static.
- Class 6 (11-9-2006) The horrible details of stack frames. Today's notes:
(word)
(pdf).
(somebody asked about memory leaks. I found
this,
but have never tried it.)
- Class 7 (13-9-2006) Magnetic tapes and discs. Blocks and IBGs, error rate, CRCs and hashes.
- Class 8 (18-9-2006) Structuring a disc, and making files, part 1:
FAT-16.
- Class 9 (20-9-2006) Pictures of old memory. Improved file system (part 1) 0, 1, and 2-level indexes.
- Class 10 (25-9-2006) variable-format files, capacities, access speed, NTFS run-lists, structure of I-nodes.
- Class 11 (27-9-2006) emulating a disc drive .h and .c files.
unix/windows compatibility code (improved, Sat 29th).
- Class 12 (2-10-2007) You are the compiler. Useful assembly things, directievs vs instructions. I/O parameter block. Superblock.
- Class 13 (4-10-2007) Free block management, the windows into the queue. I-node list in unix.
- Class 14 (9-10-2007) B+-trees as a file system, ReiserFS.
- Class 15 (11-10-2007) Hardware byte operations, Relocatable files, Position independence through PC relative addressing.
a note.
- Class 16 (16-10-2007) Address translation by base and limit hardware registers for stack and statics
- Class 17 (18-10-2007) Introducing interrupt processing, interrupt vector, system/user mode, the need for virtual memory.
- Class 18 (23-10-2007) Microsoft recruiting, no class, but go there: Flamingo Ballroom A, in UC.
- Class 19 (25-10-2007) Virtual memory for real, with pages and offsets, per-page protection
- Class 20 (30-10-2007) Page tables, Context switches, paging and swapping. Valid and Dirty bits. (tidy diagrams)
- Class 21 (1-11-2007) Modern page structures, process creation and loading
- Class 22 (6-11-2007) Management of memory for system and processes, designing a PCB.
- Class 23 (8-11-2007) Interrupt systems, vectors, handlers, prioritisation.
- Class 23 (13-11-2007) Structure of a process, preparing for execution, inter-process protection.
- Class 24 (15-11-2007) Interrupt driven actions, device drivers.
- Class 25 (20-11-2007) Timesharing, context switches, scheduling.
- Class 26 (22-11-2007) Shared resources, process life-cycle, inter-process communications, race conditions.
- Class 27 (27-11-2007) Critical sections, Atomic operations, semaphores, P() and V().
- Class 28 (29-11-2007) Deadlock, Philosophers, Summary of process control.