Many of the write-ups coming in for lab #9 are expressing angst and frustration. Lab #9 is one of those labs where I want you to mess around and experiment and explore. It’s one of those horrible vague lab handouts because in the real world you won’t be given a checklist of things to do in order to succeed at your job. Bosses never say things like, “please go to this site, download abc.tar.gz, use the command tar xzvf abc<TAB> to uncompress it into directory /usr/src/project9, then cd to that directory, type configure, then make, then make install, and edit the file /var/www/html/conf.php with the following…”
Bosses are going to lundberg up to your cube on a Friday afternoon and go, “hi Peter, what’s happening… yeah… we want a corporate blog server for our TPS reports… can you have that done by Monday… great…. bye”
That’s why there a few labs in my classes that are not formatted in the standard “follow the 12 steps and record your answer.” Yes, lab #9 is one of them. I want you to play around with fork(), exec(), system(), top, ps, and vmstat. I want you to experiment on your own and try different things. Try to break the OS. Try to freeze your machine. Play CSI with the child parent relationship in Linux processes. Who dies or zombies when you start killing things? Can you renice your way into a dog-slow system and can you renice your way to a recovery?
Please don’t fear for your grade on this lab. If you did some work and documented it, rest assured you will get credit. If you blew it off or just copy/paste my same code with little to no write up, then expect a lesser grade.
The purpose of the lab is to goof around with processes, parent/child relationships, and process priorities. If you did that, then you accomplished what I wanted you to do.