EEN521 (Operating Systems) Autumn 2004
- Syllabus for the Course.
- Downloads: Software to make things work
- The book
- vi editor cheat-sheets as Word .doc and as Normal HTML
- Information concerning the emulator:
- Mid-Term: To be determined.
- Final Examination: To be determined.
- Assignments:
- The Gets Worm, report due (Tuesday 28th September).
(Sample (bad) report showing depth expected, in PDF format)
- File System, report due by Monday after end of classes.
(download fakedisc files for use with unix systems).
Expanded description: (word .doc), (plain .html)
- Better File System, report due one week later.
Expanded description: (word .doc), (plain .html)
(Make sure you have read the library documentation properly)
Networking is now available in the emulator. Documentation:
(word .doc),
(plain .html). (with samples)
Either make a network version of your file system (network program samples here, now with both TCP and UDP, with a peer-to-peer chat program),
Or give your file system the ability to handle subdirectories (create, list, and everything), and big files,
Or make keyboard and screen i/o (keyboard through interupts) compatible with your disc files, in the
style of standard C FILE*'s.
- Class History:
- Class 1 (26-8-2003) General introductions; memory mysteries.
- Class 2 (31-8-2003) Background to compilation and linking; using the emulator and compiler.
- Class 3 (2-9-2003) Cancelled, campus was closed.
- Class 4 (7-9-2003) The compilation process, stack frames, calling conventions, addressing modes.
- Class 5 (9-9-2003) Memory allocation in a running program: global, heap, and stack.
- Class 6 (14-9-2003) The "gets buffer overrun" worm assignment.
- Class 7 (16-9-2003) starting heap memory; heap maintainence; fragmentation; handles.
- Class 8 (21-9-2003) heap memory systems (malloc and free); beginning of virtual memory.
- Class 9 (23-9-2003) Virtual memory support: required hardware, etc.
- Class 10 (28-9-2004) Base and offset; associative memory, cache set-aside; page and offset
- Class 11 (30-9-2004) Static and dynamic allocation; VM translation; page fault handling.
- Class 12 (5-10-2004) recording on tape; probability of good read vs. block length; CRCs
- Class 13 (7-10-2004) finding files on tape: binary chop, tree, hash; sorting a tape file equiv. sorting a disc file.
- Class 14 (12-10-2004) floppy and hard discs, hardware, physical structure, blocks, capacity.
- Class 15 (14-10-2004) disc access speed; files by contiguous allocation; CHS and LBA.
- Class 16 (19-10-2004) logical disc structure: MBR, FAT, and better alternatives.
- Class 17 (21-10-2004) Free list implementation (queue with window), bad blocks, high-level language access.
- Class 18 (26-10-2004) FAT-16 true sample; dates and times; file vs directory content; level-0 to 2 index files.
- Class 19 (28-10-2004) Sensible file formats: access times, capacities, index buffering, reliability.
- Class 20 (2-11-2004) I-nodes (for unixes); NTFS, runs and MFT; crash-proof file systems.
- Class 21 (4-11-2004) the FILE buffer; second level buffer for shared file access; file locks.
- Class 22 (9-11-2004) NFS (network file system); networking in general, ethernet, ARP, IP.
- Class 23 (11-11-2004) second half of networking, UDP, TCP, DNS.
- Class 24 (16-11-2004) Device drivers; Dos-compatible example; proper version decoupled from user programs.
- Class 25 (18-11-2004) Asynchronous input (code samples); Interrupt handling.
- Class 26 (23-11-2004) Real interrupts; protected based on mode; call gates and descriptor tables.
- Class 27 (30-11-2004) (evaluations); Processes: components, representation, implementation, and suspending for timesharing.
- Class 28 (2-12-2004) Processes, inter-process communication, scheduling, deadlock.