Monday, April 19, 2010

OSome Months ...

Days 3, 4 and 5 were equally eventful and I started the "OSome" week with great enthusiasm. I realized that recording daily events was soon going to be monotonous. It was like this :
while(1) {
on receiving INT_SLEEP : sleep_for_a_while();

Never thought that I would regret a single decision of my life for more than 2 semesters. For some stupid reason, I decided to keep my Spring 2009 semester as light as possible. 2nd mistake. I dropped 15-410 without attending even a single class. 3rd mistake. I hardly spent time at INI during my first semester. 1st mistake. So I hardly knew anyone and I thought I would never get a partner for OS projects. For next two semesters, all I could hear was how great OS was, how people got internships/job only because they did OS and blah... There was a time; I started venerating these special people and it kinda gave me a complex. And finally, I decided not to runaway from this challenge but to face it. I had the golden opportunity where I could have graduated in Dec 2009, could have escaped the snowstorm, 4 months at the haunted house and could have "begun" my married life with my beloved but I had promised myself to rectify those "3 mistakes of my life". I knew I was getting into self-invited mental torture and sleepless nights just to compensate my "last-sem" frame of mind.

15-410... the 5 digits are probably fused in my brain forever. This time I was lucky with the partner. I casually asked one of my juniors (not-so-casually, I was impressed by his ES performance) and he immediately agreed. Well, he was saying yes to his ES TA so it was a perfect win-win situation :)

What's so great about 15-410? 15-410 - Operating System Design and Implementation - the course describes itself as "An experience like no other". Most people say it's a C course.. meaning it's an achievement to get a "C" in the course and it requires a hell lot of effort to get a B and an A is possible only if you are as smart as the CS undergraduate students here. Prof David and his teaching style is at the kernel of the success of this unparalleled course.

So the course began with simple ( most certainly didn't seem simple back then ) labs. The first one was stack crawler to traceback the function calls which was just a warm up exercise as says the handout. Then we wrote some device drivers for keyboard, console and timer and a small game, which gave us a hint of kernel programming. It was just a tip of iceberg! So far so good...

Along came P2 ... the first team project in OS. our own version of POSIX thread library. We had 2 weeks to complete this project. My partner and I manged to evade meeting each other for more than 1 week. Those were the days, when the snowstorm hit Pittsburgh and blanketed the region with a thick white coating and CMU, very reluctantly, closed all classes for 3 days. I was enjoying the snow and had no motivation to work with creeping simics from home. But finally we met, had the stack diagrams ready. I started with mutex implementation and he started with thread_fork(). We gradually conquered the further hurdles such as condition variables and thread_join() and just few hours before the midnight we nailed it. We were jumping with excitement when all test cases returned "END__SUCCESS". We actually worked only for 3 days, which was an achievement! It gained us a lot of respect from peers who thought we would never do it so gracefully.

We were all set to repeat our success story in P3 ... a preemptible multi-threaded kernel from scratch ! a 6 weeks project which carries 25% grade. To keep up the momentum, we started on day 1 !!! First things first, we set up a git repository; we had learnt our lesson during p2. What's next? We read the handout (39 pages) twice but still quite clueless. In other words, we didn't do anything. There comes the checkpoint 1. We missed it by small margin. In TA's words "we were 2 days behind the schedule". Good enough by our standards. The next week was spring break and we both were out of Pittsburgh. The enjoyment ended only to realize that we had missed the checkpoint 2 by a large margin. This time we were 1.5 weeks behind the schedule . Obviously we didn't write a single line of code ... Here after, things began to take a nasty turn.

More in my next post...
(It's 2am right now and I'm still not feeling sleepy. Thanks to 15-410 and my partner who kept me awake through those sleepless nights :P)


  1. Very intriguing experience which makes me wonder how did u manage to cover up 1.5 weeks lag and what all it took you to do so !!

    waiting for ur next post :)

  2. Hats off to your courage and perseverance!! I'm so PROUD OF YOU!! :-)

  3. Ohh yaar.. Those 6 weeks still haunt me..:P
    I didnt know that you did P2 in last 3 days.. It is an achievement.. :)

  4. Good to know u can doing awesome work in last few days :) ...all the best for the final project submission

  5. Sounds exciting. Eagerly waiting for the sequel to this post. Want to know how things were fixed and deadlines were met :-)

  6. I guess this training to put off things till just before deadlines comes from TI :)

  7. The training started in COEP but the got reinforced in TI ;)

  8. haha ! This post refreshed my OS memories ;) But seriously COEP has trained us well :P Still I want to read the ending !How did you guys manage to cover up 1.5 weeks lag !?

  9. nice one rads.. waiting for your post to see how u managed to cover 1.5 weeks lag... suprising thing is you are awake till 2AM :) for your assignment

  10. Hello Radhika!

    I read your blog posts on Android (few months back) and they were really helpful!

    And it was only today that I realized you were from CMU!
    I am heading to CMU for this Fall (INI - MSISTM) I was really thrilled to realize this!
    I've already heard a loooot about 15-410 and this post has only cemented the scare in my mind!

    Looking forward for your posts!

  11. Hi Sumaithri!

    First of all congratulations on your INI admit!
    I am glad you found the Android articles useful, I plan to write more; hopefully soon.

    Feel free to contact me if you have questions regarding courses or life at cmu .. Would be happy to help you!