Posts

Week 33

 I know. I'm late. But there was quite the bit going on this week. First there was a Canvas breach that hit 275 million students nation-wide, then there was a phishing attempt that was masquerading as some "career accelerator" or some nonsense along those lines. Real circus that.  Beyond this, the networking class is going rather well. I've already gotten to grips on much of the terms and names involved, and the layers that a network is comprised of. You have know idea how much that "____ has layers" line from Shrek  kept showing up in my mind as I was working this week. The second programming assignment has ben posted and I've been informed that such assignments are designed to build off of one another. As in, some of the files from the first assignment will be modified in the second. I'm curious as to how that works in practice.  Man, this post is short. I need to figure out how to adapt Sam's framework, sharpish.

Week 32

 Here at the beginning of Intro to Computer Networks and I can already tell that Sam's journal format isn't going to be much help here. Or, at least, not for this week. Bootstrap week (yes, I'm still calling it that) is more getting everything set up for the rest of the class than it is learning anything groundbreaking. The class is already looking like most of the headache is in the demonstration side than it is learning the material side. Had to restart the first lab multiple times, and it wasn't to address needing to adjust configuration options. In any case, I pulled through it fairly well. The virtual machine, or, I guess its more of a virtual network, is a fascinating thing to work with, and when its all working as it should its very satisfying. I'll admit, I was expecting it to be a lot more difficult to grasp going in.

Weeks 30 & 31

 And now here I am at the end of our fifth class in the program. I don't know whether or not its too early to say I'm past the 50% mark yet. I can't say I'm not nervous going forward with the program, I still have a foreign language requirement to consider, and the capstone is still something I have more questions than ideas for. Still, I have asked the questions about the language requirement, and I have a couple of potential questions about the capstone drafted to ask later, once the Operating Systems final is over and done with. There is something that's been settled: I'm using Sam's format for these journal posts going forward. So much more interesting to write about. As for week 7's topics, we covered: I/O Devices - Things like mice, disk drives, and keyboards and the various busses used to connect everything together. A fair bit of what was covered here had been seen, albeit briefly, elsewhere. Or, at least, I had seen it elsewhere, can't remem...

Week 29

Another week down, another set of projects finished. Not much more to say really. There is still the topic of needing to take a foreign language course to sate the requirements, but that's its own matter. As for this week in Operating Systems: The topics were on  Condition Variables -  The book itself expressly calls them 'queues', despite behaving like a memory variable. Threads can place themselves onto said 'queue' when a condition isn't satisfied. While waiting for the condition to be satisfied, the thread goes to sleep. No, really. While the condition the thread is waiting on isn't met, that thread would still be 'spinning', or 'running around in circles in place'. This wastes precious CPU time. The thread enters the sleep-like waiting state with the wait() method, which frees up the CPU to work on other threads. When another thread has done what it needs to it uses the signal() method to wake up a sleeping thread once the condition has ...

Week 28

Normally, I'd have something more to say in this little prelude, I guess, before getting into the post itself. I'm convinced I've said it several times at this point, but I always fall short of things to say. And, now that I'm writing, I don't think that's really changed. Far and away, the main source of these recent posts content has been Sam's prompt. Might end up keeping it for my future classes. As for this week, once the midterm and its difficulties were done and out of the way, we covered: Concurrency and Threads - The general idea of, and motivation to use threads. Threads are, for lack of a better phrase, processes within processes. Strings of executions of instructions within the same process. Up until now we've had single-threaded examples, with one memory block for code, one for the heap, and one for the stack. And much of what happens between threads is about the same as what happens between processes, switching from one thread to another wit...

Week 27

 Halfway through the class already. Not sure what to make of it, beyond that it's all progress. Much of this weeks work was on memory management, with a lot of emphasis on the paging process. I didn't expect to catch on quite so quick this week but here we are. I've put off any sort of serious work until Thursday. Because tomorrow is April 1st. April Fool's day. The day I can't get anything serious done. Anyhow onto the weekly framework for the class. I've mentioned it before, but I'll mention it again: I like the framework that Sam's given us for the weekly journal. This week was a continuation of the memory management techniques learned last week. The topics included: Free Space management - Or "How to Keep the Free Spaces in Memory From Becoming Too Small to Use". It happens more often with segmentation than paging, but external fragmentation is a problem that occurs when the spaces between reserved spaces get too small for anything useful t...

Week 26

The OS work is continuing at steady pace now. This week's work wasn't as much of a headache as I thought that it would be. Going forward, there is now the additional task of a group project. In which, we are to read a foundational systems paper, and produce a summary, video presentation, and a personal reflection on it. I've opted to go it alone, if only to try and break a procrastination issue I've had for years.  As for the Week's work, we covered: Address Spaces - Blocks of memory set aside by an OS for programs to work in. They're usually composed of a three segments: The program code, the heap, and the stack. The Heap contains dynamic data structures and any data storage requested via the malloc() method. The stack contains local variables, arguments for routines, return values, etc. OSs have three goals when virtualizing memory: transparency, which actually means the program doesn't realize its memory is virtual, efficiency, in terms of time and space,...