email to grader521 @ rabbit.eng.miami.edu, include typescript/screenshot. | |||||||||
1 | due: | Just do it! | Simple program in BCPL. | ||||||
2 | due: | Sat 25th Jan | A basic data structure in BCPL. | ||||||
3 | due: | Sat 22nd Feb | newvec and freevec working on a tree of strings. | ||||||
4 | due: | Sat 4 Apr | Make a basic file system. | ||||||
5 | due: | Sat 2 May | Processes, part I. | ||||||
6 | due: | Wed 6 May | Processes, part II. | ||||||
The grader's reminders page. |
Class 1 ‑ | Tue 14‑1‑2020 | Quick introductions. Up to point 14 in the BCPL documentation. | ||||
Class 2 ‑ | Thur 16‑1‑2020 | Up to point 33, Beginning data structures. | ||||
Class 3 ‑ | Tue 21‑1‑2020 | Data structures: thre tree and the vector. Beginning to think about malloc() and free(). | ||||
Class 4 ‑ | Thur 23‑1‑2020 | Newvec and freevec (malloc and free). A more advanced version of newvec/freevec. | ||||
Class 5 ‑ | Tue 28‑1‑2020 | 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. 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. Our unfinished attempt to read from a tape. | ||||
Class 6 ‑ | Thur 30‑1‑2020 | The finished tape reading example. File systems: contiguous allocation. | ||||
Class 7 ‑ | Tue 4‑2‑2020 | Condensing a contiguous allocation system. What kind of meta-data does a file need? Time formats etc. 1-, 2-, and 3-level index formats, maximum file sizes and average access times. | ||||
Class 8 ‑ | Thur 6‑2‑2020 | Variable level index, size of a block pointer, partitions, clusters, I-nodes, linked list of nodes, contiguous allocation runs. | ||||
Class 9 ‑ | Tue 11‑2‑2020 | Free block management: as a linked list, as a free-file, and as a stack of free block numbers. | ||||
Class 10 ‑ | Thur 13‑2‑2020 | Separate compilation Code generation: how function calls and returns are handled. | ||||
Class 11 ‑ | Tue 18‑2‑2020 | Code generation: a complete program example How worms exploit the gets vulnerability. | ||||
Class 12 ‑ | Thur 20‑2‑2020 | Simple example dealing with interrupts, A proper keyboard buffer this time, but it has a problem. Critical sections. | ||||
Class 13 ‑ | Tue 25‑2‑2020 | Semaphores, Mutexes. The dining Philosophers. Intel's x86 interlocked instructions. | ||||
Class 14 ‑ | Thur 27‑2‑2020 | Monitors. Single user devices: card reader, (codes), line printer, graph plotter, ASR33 teletype, (paper tape). Mutual exclusion through software: A, B, C, D, E, F. | ||||
Class 15 ‑ | Tue 3‑3‑2020 | A very old-fashioned file system coded. | ||||
Class 16 ‑ | Thur 5‑3‑2020 | A look at FAT-16. Mercury delay lines, again, Nickel delay line, Core Memory: C2, C3, C4, C5, C6, C7. | ||||
Break | ||||||
Class 17 ‑ | Tue 17‑3‑2020 | (closed) | ||||
Class 18 ‑ | Thur 19‑3‑2020 | (closed) | ||||
Class 19 ‑ | Tue 24‑3‑2020 | (recorded class) | ||||
Class 20 ‑ | Thur 26‑3‑2020 |
Introducing Intel's paged virtual memory method. Illustrations of a system running with virtual memory. Under the emulator, making VM really happen, here's the plan. Now the big thing, Build the page tables, turn on VM, and run something in user mode. (recorded class) | ||||
Class 21 ‑ | Tue 31‑3‑2020 | Finishing up from Tuesday. Programming with processes under unix. (recorded class) | ||||
Class 22 ‑ | Thur 2‑4‑2020 | Timesharing and Processes, Life-cycle of a Unix process. (recorded class) | ||||
Class 23 ‑ | Tue 7‑4‑2020 |
A hint at a way of starting a process. Timesharing between two threads. (recorded class) | ||||
Class 24 ‑ | Thur 9‑4‑2020 |
A serious page map, and its implementation:
vm5.b,
os5.b,
usr5.b. os5.b improved. (recorded class) | ||||
Class 25 ‑ | Tue 14‑4‑2020 | Working with paged virtual memory. (recorded class) | ||||
Class 26 ‑ | Thur 16‑4‑2020 | Building a Virtual Machine, part 1. (recorded class) | ||||
Class 27 ‑ | Tue 21‑4‑2020 | Virtual machines part 2: virtual memory. Timesharing between two threads. (recorded class) | ||||
Class 28 ‑ | Thur 23‑4‑2020 | An adventure with Posix Threads. (recorded class) | ||||
Class 29 ‑ | Tue 28‑4‑2020 | End of threads, beginning of code generation (recorded class) | ||||
Class 30 ‑ | Thur 30‑4‑2020 | Part two of code generation (recorded class) | ||||
Class 31 ‑ | Thur 5‑5‑2020 | The end of code generation. (recorded class) |