1 | due: Fri. 7th February. | Finish the primitive single-block file system. | |
2 | due: Mon. 24th February. | Integrate your disc file system with the iosb system. Additional reminders, already said in class, but brought together in one place. | |
3 | due: some time after the break | Improve the disc file system so that file size is only limited by disc size. |
Quick introductions. Learning BCPL, looked at these: functions, local array and floating point, binary tree. | ||||||
Hadn't finished this: extracting words from a string. Tapes and discs: tape drive 1950's, computer room 1970's, important probability fact, A mostly forgotten intermediary 1950's-60's one, two, three, A disc drive, 1963, access 50-205 mS, 15MB, 440V, 20KW. | ||||||
Beginning the almost trivial first file system, Every file exactly one block long, file "name" is block number. | ||||||
The primitive file system is now usable, and here it is. | ||||||
How to use the virtual machine's debugging assistance. Improved systems for making disc blocks into files: Contiguous allocation, simple but slow; level-1 index: header block with pointers to data blocks, limited; header block with "runs" of consecutive blocks, as in NTFS; Maybe extend level-1 index to a tree-like structure? All of this applies almost equally to the new solid state devices. | ||||||
Other file formats: multi (variable) level indexes, header block has ptrs to (ptr blocks with ptrs to)* data blocks. level 0 index good trick for efficient small files. Max and min file size, access times for sequential and random access. Directory entries, the sorts of things they need to contain. Hard links and reference counts (no good for possibly cyclic structures). | ||||||
I-nodes, recovery after disc failure. Learning from mistakes: FAT-16. Clusters and partitions still survive. | ||||||
ReiserFS, a file system for murderers. RAID systems. Journalling file systems. | ||||||
Solid state "discs". Managing free blocks. | ||||||
Some thoughts on the second and third assignments. IOSB: a generalised and improved IO system, same handling for anything like a file. | ||||||
The virtual machine's instruction set. The regions of memory available to a running program. How functions use the stack (pre-call and pre-function instruction sequences) | ||||||
Post-call and post-function instruction sequences and the extra word. Memory technology: M1, M2, N1, C1, C2, C3, C4, C5, C6, C7. | ||||||
Virtual memory, virtual address, physical address, address translation. A primitive but viable hardware solution: multiple segments, base and limit registers. The modern way: paged memory, page tables, TLB in cache for speed. | ||||||
Intel's 32-bit scheme, (CR3; 10, 10, 12), now (CR3; 9, 9, 9, 9, 9, 12). Page protection, how a unix process is created, how interrupts are handled. The big picture, VM is use with two processes. | ||||||
Doing something real but basic with virtual memory. tiny notes from today. Organising the free page list in four steps: one, two, three, four. | ||||||
Setting up virtual memory, almost ready to go. | ||||||
Break | 10th to 14th | |||||