email to grader521 at rabbit.eng.miami.edu, include typescript/screenshot. | |||||||||
1 | do it this week | BCPL practice: the Collatz sequence. | |||||||
2 | Due | 14th March | One-level index file system. | ||||||
3 | Due | 24th April | Multi-processing with virtual memory. | ||||||
4 | Due | 9th May | Make newvec and freevec work together properly, not necessarily with virtual memory. | ||||||
The grader's reminders page. |
Class 1 | Tue 16‑1‑2018 | Introductions, etc. A quick look at some of the mysterious things we'll be studying. | ||||
Class 2 | Thur 18‑1‑2018 | Remember to have the BCPL documentation available today. The compile-assemble-link process, looking at assembly code. Introduction to BCPL programming. | ||||
Class 3 | Tue 23‑1‑2018 | Pointers, vec, newvec, and freevec. Data structures: binary trees and strings. | ||||
Class 4 | Thur 25‑1‑2018 | Magnetic tapes as an introduction to disc technology:
A single magnetic tape unit, and
a bunch of them in a typical large installation. A reminder about probability theory for disc and tape drives. Blocks, checksums, the inter-block gap, hard disc geometry. Emulated magnetic tape access in BCPL. Magnetic drums, and one of them opened up, 1957 specs. A disc drive from 1965, with specs. Writing output to a "magnetic tape" in BCPL, almost ready but needs to flush its buffer on closing. | ||||
Class 5 | Tue 30‑1‑2018 | Making a library, buffers and FILE-stars. The library wtape.b, and the program that uses it usetape.b Basic plans for a disc-based system. | ||||
Class 6 | Thur 1‑2‑2018 | Partitions, clusters, and block numbers. Contiguous allocation and the need to condense (or defragment) disc space. Files as linked-lists of blocks. Header blocks and the level-1 index structure, a very restricted tree of blocks. | ||||
Class 7 | Tue 6‑2‑2018 | 1-, 2-, 3-, and N-level indexes for file formats: file sizes and access times. The effect of cluster size on the calculations. ReiserFS - the whole file system is a B-Tree indexed by file number and fragment number. | ||||
Class 8 | Thur 8‑2‑2018 | A starting point for a file system. | ||||
Class 9 | Tue 13‑2‑2018 | PhD student Lalintha Polpitiya's teaching day. | ||||
Class 10 | Thur 15‑2‑2018 | |||||
Class 11 | Tue 20‑2‑2018 | Today's notes. | ||||
Class 12 | Thur 22‑2‑2018 | Today's notes. | ||||
Class 13 | Tue 27‑2‑2018 | Some unpredictable things that have to be dealt with. A little bit of real interrupt processing. Also processing keyboard interrupts. | ||||
Class 14 | Thur 1‑3‑2018 | The same thing with less assembly language usage, The keyboard buffer, and its race condition problem. Critical sections, semaphores and mutexes, P, and V. | ||||
Class 15 | Tue 6‑3‑2018 | Semaphores, Mutexes, and Monitors. Intel's x86 interlocked instructions. Single user devices: card reader, (codes), line printer, graph plotter, ASR33 teletype, (paper tape). The card-reader, line-printer allocation deadlock. Introducing the dining philosophers. | ||||
Class 16 | Thur 8‑3‑2018 | How can we save the dining philosophers from themselves? A very primitive view of segmented memory. | ||||
Class 17 | Tue 20‑3‑2018 | Beginning virtual memory (paged). Page directory base register, page directories, page tables, virtual to physical address translation. | ||||
Class 18 | Thur 22‑3‑2018 | Illustrations of a system running with virtual memory. Under the emulator, making VM really happen, here's the plan. Organise memory: Make a list of all the free pages. Now the big thing, Build the page tables, turn on VM, and run something in user mode. | ||||
Class 19 | Tue 27‑3‑2018 | Running a simple function in user mode without virtual memory. | ||||
Class 20 | Thur 29‑3‑2018 | The states and life-cycle of a unix process. Mercury delay lines, again, Nickel delay line, Core Memory: C2, C3, C4, C5, C6, C7. | ||||
Class 21 | Tue 3‑4‑2018 | A serious page map. Creating and using it: vm1.b, vm5.b, os5.b, usr5.b. Special event at 6.00. | ||||
Class 22 | Thur 5‑4‑2018 | Page faults and system calls. | ||||
Class 23 | Tue 10‑4‑2018 | Two functions running together Newvec and freevec (malloc and free), part one. | ||||
Class 24 | Thur 12‑4‑2018 | Newvec and freevec, part two, A diagram. An alternative: the Buddy system. | ||||
Class 25 | Tue 17‑4‑2018 | Manipulating physical pages under virtual memory. A quick look at FAT-16. | ||||
Class 26 | Thur 19‑4‑2018 | Special file systems, RAID. | ||||
Class 27 | Tue 24‑4‑2018 | Security: Digital fingerprints, Exclusive Or, RC4, | ||||
Class 28 | Thur 26‑4‑2018 | More security: some very basic things from number theory, RSA, Diffie-Hellman. |