Posts

Showing posts from March, 2024

Operating Systems Week 4

 This week I learned about memory virtualization. With paging we are able to virtualize memory, allowing for parts of a process to be stored on the disk. By giving processes more memory than is physically available, more complex processes are able to be efficiently managed by only loading the pages that are required. Other pages or parts of the process can be loaded from logical memory and used by the process when needed. In addition, much more efficiency is afforded to a system implementing paging as physical memory can be freed from each process, allowing more processes to fit into physical memory.

Operating Systems Week 3

 This week we delved into many things, however what was most interesting to me was learning about programs used in shell scripting. Throughout my time using Linux and doing other programming activities I've been familiar with regex, grep, sed, and awk. I would mostly use them after reading documentation where it was listed. Though I've never actually had and understanding of what each of these programs do, and how powerful they really are. One program in particular that I use a lot and never knew its true function is grep. Given a string, grep will print out all lines in a file or output that contain the string in it. Options such as -i and -v can be provided to match regardless of casing, or to get the lines not including the provided string.  When I'm debugging my virtual machines and containers I often use the command "netstat -tulpn | grep  LISTEN" to check if ports are open and listening. I didn't realize how useful the grep command was until I removed it...

Operating Systems Week 2

 This week I've learned about processes and their scheduling. I learned about some scheduling metrics such as turnaround time, fairness, and response time. Additionally I've learned about several different scheduling methods such as first in first out, round robin, shortest job first, and many more. In lab 2 I was able to calculate average turnaround times for the first in first out, shortest job first, and round robin methods. Later in the week I also learned about Multi-Level Feedback Queues in which the priority of a job is reduced the longer it runs.

Operating Systems Week 1

       This week was a bit rough as there was a lot of detailed information needing to be grasped. Though with that being said, I was able to learn a lot. I've spent a lot of time this week getting more familiar with the C language. I learned more about how to use addresses and pointers, characters arrays, and memory allocation with the "malloc" function. Additionally, I've learned how to use the GDB command line tool to debug my code by setting breakpoints and stepping through it.      Apart from C, I was also introduced to operating systems and system architecture this week through readings and lectures. I learned about layers of functionality which have user and kernel modes, separating access to hardware. With that I learned about the TRAP instruction, allowing the user mode process to call functions from within the operating system's memory. In addition to these readings and lectures, I had a discussion with my classmates about file permissions an...