email to grader521 at rabbit.eng.miami.edu, include typescript/screenshot. | |||||||||
1 | due: | Sun 27 Jan | BCPL practice: the Collatz sequence. | ||||||
2 | due: | Sun 17 Feb | Create a binary tree of strings input by the user, then print all the strings out in alphabetical order | ||||||
3 | due: | Sun 10 Mar | A basic but properly working version of newvec and freevec. Use it with your solution to assignment 2 to demonstrate that it works. | ||||||
4 | due: | Sat 13 Apr | Create a basic disc file system. It must use at least a 1-level index file format. | ||||||
5 | due: | Sat 27 Apr | Single processing under virtual memory. | ||||||
6 | due: | 8th May | Multiprocessing. | ||||||
The grader's reminders page. |
Class 1 | Tue 15‑1‑2019 | General introductions. A quick look at some of the topics we'll be studying. | ||||
Class 2 | Thur 17‑1‑2019 | Remember to bring the BCPL documentation with you. We finished up to point 21. | ||||
Class 3 | Tue 22‑1‑2019 | Mac login: use terminal and type ssh -oHostKeyAlgorithms=+ssh-dss username@rabbit.eng.miami.edu We finished up to point 33, And the quick vector example. | ||||
Class 4 | Thur 24‑1‑2019 | Finishing the run through BCPL | ||||
Class 5 | Tue 29‑1‑2019 | Planning a string library, and beginning to think about newvec and freevec. | ||||
Class 6 | Thur 31‑1‑2019 | A paid programming opportunity. The heap, newvec and freevec basic implementation. | ||||
Class 7 | Tue 5‑2‑2019 |
A more advanced version of newvec/freevec. The "buddy" system. | ||||
Class 8 | Thur 7‑2‑2019 | Exploring local variables and the compilation of functions. | ||||
Class 9 | Tue 12‑2‑2019 | Code generation for a recursive example program. Just how gets() allows malicious software to break in. | ||||
Class 10 | Thur 14‑2‑2019 | 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. | ||||
Class 11 | Tue 19‑2‑2019 | The size of a pointer to a block, partitions and clusters. Header block = meta-data + pointers, miniml directory entries. 1-, 2-, 3-level indexes, variable level, inodes. | ||||
Class 12 | Thur 21‑2‑2019 | A look at FAT-16 | ||||
Class 13 | Tue 26‑2‑2019 | A very old-fashioned file system coded. | ||||
Class 14 | Thur 28‑2‑2019 | Interrupt processing: keyboard and timer together. A keyboard buffer with a problem. | ||||
Class 15 | Tue 5‑3‑2019 | 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 7‑3‑2019 | The Dining Philosophers. Mutual exclusion through software: A, B, C, D, E, F. | ||||
Class 17 | Tue 19‑3‑2019 | A primitive implmentation of virtual memory (segmented, base and limit registers). Introducing Intel's paged virtual memory method. | ||||
Class 18 | Thur 21‑3‑2019 |
Mercury delay lines,
again,
Nickel delay line, Core Memory: C2, C3, C4, C5, C6, C7. Illustrations of a system running with virtual memory. | ||||
Class 19 | Tue 26‑3‑2019 |
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 20 | Thur 28‑3‑2019 | The life-cycle of a process under unix. | ||||
Class 21 | Tue 2‑4‑2019 |
A hint at a way of starting a process. Timesharing between two threads. | ||||
Class 22 | Thur 4‑4‑2019 | |||||
Class 23 | Tue 9‑4‑2019 |
A serious page map, and its implementation:
vm5.b,
os5.b,
usr5.b. os5.b improved. | ||||
Class 24 | Thur 11‑4‑2019 | Accessing any physical address when VM is on. Virtualisation: building a virtual machine. | ||||
Class 25 | Tue 16‑4‑2019 | Building virtual machines part 2. | ||||
Class 26 | Thur 18‑4‑2019 | Networks of very small low-power processors, Beginning of modern networking. | ||||
Class 27 | Tue 23‑4‑2019 | More networking, Some packet formats. | ||||
Class 28 | Thur 25‑4‑2019 | RC4, essential number theory, Diffie-Hellman, RSA. |