
As some of you are already tired of hearing, I am in the fifth year of Computer Engineering. At the beginning of the course I naturally struggled to learn Calculus, Algebra, Physics and those other subjects that make smoke come out of the calculator.
Since I could not leave my technical high school and go straight into a university, I worked in the field for a while until I could afford the monthly tuition at a college. Interns really do earn little. That time, besides bringing me a bit of extra cash each month, also brought me a little experience. It was not much, but enough to spot the occasional slip-ups by professors during the programming classes. The Computer Engineering course lasts six years, and during that time I still had to work, not least because I had to pay for college. Over that period I ended up reading a book or two, or three, four, five, well, a few.
It is natural for professors to tend not to explain exactly how things are or work, and thereby buy a little time to cover more topics in less detail. After all, you do not learn everything you need at university, but you do get a good sense of what you are getting yourself into when you go to work in the field, and where to start looking for more details on a given subject. I myself, in the driver courses I have taught, try to explain the essentials, what the student will actually use, but I always try to make it clear that there are details left to be seen.
During the course, I could hardly wait to reach the technical subjects, the ones that would open my eyes to a new way of seeing electronic devices, integrated circuits and computers. After swallowing a few things sideways from the C Language and Software Engineering professors, I finally began to study something really interesting. The Operating Systems subject really is surprising. In it we study different operating systems running on different computer architectures. Phew! At least one architecture and one operating system I know reasonably well.
It is fine for the professor to say that Thread and Process are the same thing, to explain Inter Process Communication without even touching on Virtual Memory and Marshaling, but it was quite something trying to swallow the explanation about Synchronization and Interrupt Management in operating systems. All right, I can only say that the professor slipped up on Windows; I do not know all the other operating systems. I think he just chose the wrong operating system when giving an unfortunate example. I do not remember the exact words, but my professor taught us that Windows XP is not yet a preemptive operating system, and that calls to the operating system could not happen concurrently. First one, then the other, and so on. Personally, I think he must have confused XP with 9X. After all, both have the letter X. At that point I had to stop reading the book I was reading and ask him to repeat that. I could have misheard, but unfortunately that is not what happened. He really did say it. Later in the same class he told us that Windows XP still cannot manage interrupts properly, that if an interrupt occurs while a process is running, the system normally waits for the entire process to finish so that only afterward can it service an interrupt.

As in every university classroom, there is always a little group of students who hate Windows and defend some other operating system option. Nothing against them, nor against their choice, but every now and then some real piece of work shows up. Anyway, these ones soon said, ironically and laughing: “Obviously! Because it is the smartest thing to do”. And so everyone in the room started laughing at that terrible example of Windows interrupt management. I never say anything; I am that guy who gets to the room about 30 minutes early so I can read my book in peace. I do not go around campaigning for Windows or against other systems. I do not go around explaining how to complete an IRP to every person I meet at the coffee shop, but this one I could not let slide. I asked the professor: “Wow, how interesting! Where was it again that you read that?”. “In any Operating Systems book” he answered me. See how naive of me: I imagined that the classic Operating Systems books had been written when Windows XP did not even exist yet. So I said: “No offense, it is just that this is not what I have been seeing in the books I have been reading. Maybe I am reading the wrong books.”
Anyway, it is obvious that I am not going to argue with my professor and turn my academic life into hell. Once again I will take a deep breath and let out that resounding “Ahhhh, right…”.
It is at moments like these that I get worried about another aspect. Fortunately I can listen to and filter what the C Language programming and Operating Systems professors say, but there is nothing I can do about the Electronics, Artificial Intelligence, Microcontrollers and so many other subjects we are learning. Could it be that we are hearing the same nonsense and do not know it?
In any case, the subject I thought would be the easiest is now one of those that torment me.
Keep reading…





Leave a Reply