EEN521, Operating Systems, Autumn 2010
Mon Wed 5:00-6:15 in MM214

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.
     1   due   Wed 15th Sept      A simple program in assembly language.     
2   due   Wed 22nd Sept The same program, but with proper stack frames and local variables.
3   due   Mon 18th Oct Make your own BIOS.
3   due   Due Later Make your own File-System.

Class History

Class 1  Wed 25‑8‑2010   Some groundwork: the assembly-linking-loading process, how wide should memory be?, varieties of instruction formats, introducing the mystery of virtual memory.
Class 2  Mon 30‑8‑2010 Reminders about the internal structure of a CPU, the fetch execute cycle, our first traditional assembly language program.
Class 3  Wed 1‑9‑2010 (consoles: a, b, c, d) Some very low-level programming, and seeing what a linker does (the library file, the main program, transcript of run).
Class 4  Wed 8‑9‑2010 Memory structure, working out the calling convention (i.e. how functions work in high level languages, with local variables and supporting recursion). Beginning a simple implementation of virtual memory.
Class 5  Mon 13‑9‑2010 Full consideration of the structure of a stack frame, a worked example with crazy recursion. The full picture of Primitive virtual memory hardware, leading to ideas about interrupts and modes of operation.
Class 6  Wed 15‑9‑2010 Automatic generation of assembly code: the picture, step 1, step 2, step 3, step 4, step 5, step 6.
Class 7  Mon 20‑9‑2010 How to make an Operating System.
Class 8  Wed 22‑9‑2010 Enormous example with interrupts, timesharing, system calls, process deletion, etc.
Class 9  Mon 27‑9‑2010 How input/output operations are really done, PERI-like instructions, and data structures in assembly language.
Magnetic tapes, drums, and discs: blocks, checksums, the inter-block gap.
A single magnetic tape unit, and a bunch of them in a typical large installation.
a reminder about probability theory for disc drives.
A magnetic drum storage device, and one of them opened up, 1957 specs.
A disc drive from 1965, with specs.
Class 10  Wed 29‑9‑2010 Disc fundamentals, bad old CHS, DOS horrors, partitions, clusters. Structure of files and directories, contiguous allocation of files good for access speed but very bad when files are deleted or modified.
Class 11  Mon 4‑10‑2010 Observations on BIOS-making. Structures for files and header blocks, files as linked lists of blocks, header containing array of block numbers, pointer blocks.
Class 12  Wed 6‑10‑2010 Concrete implementations of all the disc block structures, formatting and using a disc; some physics to assess access time claims.
Class 13  Mon 11‑10‑2010 File formats: contiguous allocation, N-level-indexes, I-nodes; maximum file capacities, minimum space requirements, sequential and random access times.
Class 14  Wed 13‑10‑2010 B-trees as disc data structures. The ReiserFS file system.
Class 15  Mon 18‑10‑2010 File systems implemented as layered software systems, basic block oriented operations supporting system-level functions (such as open, read, write) with block-sized buffers, supporting user-level functions (such as getchar, putchar, printf). Two bad ways of building a free list.
Class 16  Wed 20‑10‑2010 Full consideration of the free-list (collection of unused blocks). The device driver with its queue of requests from different processes - what happens if two processes try to enqueue a request at the same time? Multiple processes cooperating through shared memory - the race condition caused by concurrent update operations. The race condition in Read-Modify-Write instructions when multiple CPU cores access same memory unit. Critical Sections, Semaphores, Atomic and Interlocked Operations.
Class 17  Mon 25‑10‑2010 helpful things for inspecting filesystems.
Minor variations on semaphores, Monitors and Synchronised methods. Competition for shared resources, Deadlock. Introducing the Dining Philosophers.
Class 18  Wed 27‑10‑2010 Examining the world of the dining philosophers and how they correspond to processes in an operating system. Butler, Footman, Fork Boy, Fork Monster, Requiring ordered resource allocation, Workstudy with transfusions: off-line device access. Leases on resources. Considering the problems with Network File Systems.
Class 20  Wed 3‑11‑2010 Network systems: Token ring, Aloha (U. of Hawaii) net, ethernet, hardware (MAC) addresses, IP addresses, ARP system.
Class 21  Mon 8‑11‑2010 Ethernet, IEEE802, IP, UDP, and TCP.
Class 22  Wed 10‑11‑2010 server programming, client programming, DNS, setting non-blocking mode for multi-source interactive input.
Class 23  Mon 15‑11‑2010 Security problems: the "gets worm", "!" shell escapes, and other acts of careless programmers. Un-reversable encryption for passwords, the perfect one-time-pad and its hopeless relatives.
Class 24  Wed 17‑11‑2010 One-way hashes, password files, fingerprinted data, symmetric encryption, DES, asymmetric public key/private key encryption, RSA, guaranteed sender and/or receiver.
Class 25  Mon 22‑11‑2010 A modern paged virtual memory system.
Class 26  Mon 29‑11‑2010 Details of paged virtual memory, proecss life-cycle.
Class 27  Wed 1‑12‑2010 Heap management: new/malloc and delete/free; garbage collection.