| 1 | due: Thursday 22nd January | Five little programs to get used to BCPL. | |
| 2 | due: Monday 9th February | A small library of string functions. | |
| 3 | due: ??? | A unified input/output library with basic disc files. |
| A very slight introduction and two motivating mysteries. Starting BCPL, documentation sections 1 to 13 and 15. | ||||||
| Got up to section 38, nearly all done. | ||||||
| Extracting and inserting sub-word-length bit sequences, Frame pointers and how stack frames are organised, Debugging options and other tricks under our virtual machine. | ||||||
| String operations. This link explains what the next four links lead to, They are two different implementations of the essential parts of the string and "filestring" objects we had by the end of class, but much tidier than anything I could have written on the board. strings_one.b, stringstream_one.b, strings_two.b, stringstream_two.b. | ||||||
| (look briefly at the tidied strings_two and stringstream_two first) Taming an unfortunate but common situation: keyboard input, stringstream input. Design of a trivial and very unhelpful file system. | ||||||
| The implementation of file system version 0. FAT-16, a very bad idea. Single level index file system, multiple levels of indirection, consequences. | ||||||
| SSD needs consideration. Background:
C1,
C2,
C3,
C4,
C5,
C6,
C7. UVEPROMs: X1, X2, X3, X4, X5. Some SSD details. Some ancient background to the background: M1, M2, N1. | ||||||
| The SSD details that we didn't reach. NTFS (from Windows NT, 1993) with its runs, inodes (from unix) and fsck etc. | ||||||
| ReiserFS. Disc structure and directories, making very basic files. | ||||||
| Review of things fom the quiz, let's hope we learn the lesson. More with directories, creating and reading files (contiguous allocation), Here's a little example showing where everything is. | ||||||
| The free block list, how easy it is to change the structure of a file when it gets big, The fake magnetic tape example extended to copy as well as display. | ||||||
| Getting stack frames just right: Program and Memory contents. Base and Limit for a primitive version of virtual memory. Just a brief mention of paged and associative memory. Form your groups of 2 or 3. | ||||||
| (unsigned calculations for physical addresses with base and limit) Interrupts, user and system mode. Intel's segmentation, a version of base and limit. Pages and page tables, virtual address translation, 10/10/12, 10/11/11, 9/9/9/9/9/12. | ||||||
| Break | 9th to 13th | |||||