ECE421 T, Operating Systems, Spring 2019
Tues, Thurs at 5:00 p.m. in MM 100

The Book

Documentation

Assignments

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 History

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.