Of course, that left me unable to study or write a memory allocator. I therefore did my CSE361 project in three days, and wrote a version of malloc with extremely good memory utilization, and response time that is, in most normal cases, four times as fast as the library malloc. That's impressive- I beat the standard Linux library!
Ignoring, of course, the one pathological case in which my allocator takes 34 times as long to run, on average. It's an improvement from the original form, which took 9,400 times as long to run as malloc. (Ouch.) Tip: When the efficiency of your system is built on being able to split up your free lists to keep them at or below log2 of the main index size, forcing logarithmic performance for the whole thing, don't allow a pathological case... say, 4,000 non-coalescable blocks of the same size so the list can't be split... to make a list be, ooh, 4,000 elements long, instead of the usual five.
It's a gotcha inherent to the design that I couldn't crop out in the time I had to code, since I never went to the Infirmary and can't force a medical extension. At least I did it anyway, and I did fairly well. And yes, if I may be so egotistical, I consider writing over 800 lines of code in three days, fully debugged, to be an Accomplishment.
And I have to wake up in four hours tomorrow to head back to campus for my last two final exams, then I'm done with the semester. Of course, I didn't get to study for either of them, seeing as how I've been sick and then busy. I'll see what I can do for half an hour in the car- they're both open-book, but I need to be familiar enough with the book to find the material.
Wish me luck, y'all!