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 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 |