Today was my last day of work at Viz. It was good… got the testing infrastructure started. Did as much as I could given I only had 8 hours to work on it. Managed to get it done after 5.5 (Wednesday plus some of today) and did some final bug fixing and integrating afterwards. Bid farewell to everyone.
Today was our P3 interview, which marked the end of our kernel project. His main criticism was that we used 5 locking primitives in our kernel (mutex, cond [condition variable], icond [internal condition variable], ENTER_CRIT/EXIT_CRIT, and disable_interrupts/enable_interrupts). He said this was indicative of “running away” from problems by creating more locking primitives than figuring out those problems. Yeah, sounds about right. He also found a potential deadlock in our kernel (that, at least, is very very unlikely) and a few problems with the scheduler. Also, one part of our kernel (a function that either copies to/from userspace/kernel space or vice versa depending on where the pointer you pass to it is) was called a 1337 hax and we were told that 1337 hax should be very well documented (whereas ours was lacking any documentation… oops). Also, we generally had bad quality/missing documentation in our kernel. Not surprising, given how we mostly did the documentation in the last 2 days.
Today was our pen-based computing presentation, which marks the end of the pen-based class and also of our adventure game mapping tool project. That went pretty well… we managed to implement all desired features and Carl and Edmund got saving/scrolling working at the last minute. Woo.
Also, today was our P4 late day. We went into it rather confused on why free was causing page faults left and right and wondering if it was a kernel issue. After about 5 hours of debugging (in addition to the debugging yesterday), as I read through the code because I was completely stumped, I discovered the lines:
file_desc* fd_struct;
...
fd_struct = (file_desc*)malloc(sizeof(fd_struct));
...
Oops.
So yeah, the end of OS projects (and our ~7 hour debug issue) and of the semester of workdeath was a stupid typo bug. Whee.
Overall, it’s been a good semester. I think I’ve decided on a job (the one I kinda decided I wanted since the beginning), and I’ll send out the acceptance letter tomorrow (along side my last rejection letter).