EEN521, Operating Systems, Autumn 2011
Tues, Thurs at 5:00 p.m. in MM106

The Book

"Operating System Concepts" A. Silberschatz, ISBN 0470128720 or 978-0470128725.
You do NOT need to have the very newest edition.

Documentation

Assignments

email to grader521 at rabbit.eng.miami.edu, include typescript/screenshot.
Individual Effort, everyone must have their own versions of these two
     1   due   2nd October      File System (stage 1).     
     2   due   30th October The Gets Worm.
Group Effort, each partnership produces one version of these three between them
     3   due   4th or 11th Dec. Completed File System.       Either 3 or 4 must be turned in by 4th Dec
     4   due   4th or 11th Dec. Reliable Network Protocol.       The other must be turned in by 11th Dec
     5   due   14th December Network File System.

Class History

Class 1  Thur 25‑8‑2011   Magnetic tapes as an introduction to disc technology: blocks, checksums, the inter-block gap, hard and soft errors.
A single magnetic tape unit, and a bunch of them in a typical large installation.
A reminder about probability theory for disc drives.
Practical reliability.
Class 2  Tue 30‑8‑2011   Drums and discs: A magnetic drum storage device, and one of them opened up, 1957 specs.
A disc drive from 1965, with specs.
Disc speed considerations, Cylinder-Head-Sector, FAT-16, starting to combine raw blocks into a system of files.
Class 3  Thur 1‑9‑2011   An emulated disc drive.
Practicalities of access, considerations about directories and other details.
Class 4  Tue 6‑9‑2011   File structures that do not depend on contiguous allocation: mostly multi-level indexes; working out maximum file sizes and expected times for sequential and random accesses. The trouble with file allocation tables.
Class 5  Thur 8‑9‑2011   The effect of clusters on max file size; Free-list implementations: bitmap, linked list, stack of block numbers, queue to allow undelete, one big empty file. Defragmentation of files and free space restores speed that contiguous allocation gave. NTFS file structure based on "runs"; unix i-nodes.
Class 6  Tue 13‑9‑2011   (files for compatibility: compat.h, unicompat.h, wincompat.h)
The unix virtual file system, the fsck operation.
ReiserFS: B-trees as a file system.
Class 7  Thur 15‑9‑2011   Primitive virtual memory, address translation with base and limit registers.
(non-volatile memory pictures one, two, three, four, five, six, seven)
Class 8  Tue 20‑9‑2011   Intel's virtual memory implementation with page directories, page tables, and pages. Interaction with cache content-addressable memory, the translation lookaside buffer.
Class 9  Thur 22‑9‑2011   System protection, mode=system/user, hidden (system mode) registers and flags.
Interrupt vector, call gates, system stack pointer for interrupt processing.
The bits in a page table entry, system/user r/w/x, COW, dirty, valid. The page file.
Class 10  Tue 27‑9‑2011   More about page table entries; paging: the importance of "dirty" and "used" and "valid"; fork and exec: the importance of COW.
The process life-cycle init-R-D-S-I-T-Z; unix signals, they are not interrupts. ps -augx.
Class 11  Thur 29‑9‑2011   sys$creprc, show sys. Priorities and queues and states. Threads are like processes that share a virtual address space. Allocating memory for a process only when it is needed, dynamic and static linking.
Class 12  Tue 4‑10‑2011   Inventing the stack frame.
Class 13  Thur 6‑10‑2011   Success in assembly language programming: a recursive program with real stack frames.
Class 14  Tue 11‑10‑2011   gets(), buffer overrun, and the internet worm.
The problem with sharing system resources, the card-reader and line-printer example, Deadlock, introducing the Dining Philosophers.
Class 15  Thur 13‑10‑2011   (the little bit about strings).
Fixing the dining philosophers with servants: butler, footman, fork-boy, fork-monster, murderer. Deadlock can't generally be predicted, when it is detected the murderer is the only solution. Requiring ordered allocation of resources.
Class 16  Tue 18‑10‑2011   Processes interacting with the real world through Device Drivers and their queues of IORPs. The Race Condition in adding an item to the end of a queue. Critical Sections whenever a read-modify-write sequence happens on shared memory. Trying to design a Semaphore, but the first attempt was hopeless.
Class 17  Thur 20‑10‑2011   How to implement the P and V operations on a semaphore properly. Memory interlocked instructions. The popular but almost pointless "enhancements" to P and V. Monitors and Synchronised classes. P and V don't prevent deadlock, they cause it in preference to a worse problem. Leased resources.
Class 18  Tue 25‑10‑2011   Networked file systems also have shared resource problems, so first we must examine networks. Serial-line networks, Token Ring, Packet format, Aloha-net, Ethernet, CSMA/CD, collisions, MAC and IP addresses, ARP protocol, layering and separation between ethernet, device drivers, IP/ARP software. the packet formats.
Class 19  Thur 27‑10‑2011   IP datagrams, fragmentation, routing, and reassembly, TTL time to live. ICMP internet comntrol message protocol mostly for error messages. DNS domain name service. UDP user datagram protocol, connectionless, unreliable but fast application level communications. TCP transmission control protocol, establishes reliable connections but generates much more traffic, three way handshake, SYN, ACK, RST, PSH, FIN.
Class 20  Tue 1‑11‑2011   Investigating some major protocols. SMTP for email, and using telnet to fake an email. FTP for file transfers with its control and data ports and client/server duality. HTTP for web pages. and we made our own little web server.
Class 21  Thur 3‑11‑2011   RPC, the Remote Procedure Call protocol, portmapper, and network file systems; the problems of both stateless and "stateful" designs.
Class 22  Tue 8‑11‑2011   IP simulator: documentation, fakeip.h, fakeip.cpp, main.cpp.
Hints about file systems.
Class 23  Thur 10‑11‑2011   Tightly-coupled systems of very light-weight parallel processes: Communicating Sequential Processes and Occam.
Class 24  Tue 15‑11‑2011   Reminders about how to make a worm properly.
Parallel processing for video cards, and a self-sorting list.
Class 25  Thur 17‑11‑2011   Heap Management - the various ways in which new/malloc/delete/free work.
Class 26  Tue 22‑11‑2011   (about assessments of presentations)
Garbage collection: eliminating free/delete. Mark and Sweep. The need to find all active pointers - maps of stack frames left by the compiler and run-time type tagging. Two heaps, moving live objects from old to new, and an object table, handles. Making the object scan non-recursive.
Class 27  Tue 29‑11‑2011   Group project presentations:
       Thomas and Cody
       Luis and Justin
       Andy and Sukru
       Ryan and John
Class 28  Thur 1‑12‑2011   Group project presentations:
       Frank, Brandon, and Andreas
       Thamer and Enrico
       Pedro and Chris