Tuesday, March 28, 2023

Operating Systems: Journal 4

It has been an extensive week in this operating system class. I have had trouble understanding some of the abstract concepts, but nonetheless, I have learned a lot.

To start off, this week, I learned about paging. Paging essentially divides the memory into fixed sizes for the program/process to use. Additionally, the process of speeding up memory address translation is often implemented through a translation look-aside buffer, commonly referred to as TLB. TLB is important in the speed-up process because, by saving the most accessed address translations in the recent past, it speeds up the process of a memory lookup tremendously.

Lastly, I also learned about how commonly used algorithms like the first-in, first-out work and are used when the memory cache in an OS is full.

Overall, this week has been tough for me, and I definitely need to revisit some of the topics covered this week to get a firmer grasp on these fundamental operating system concepts.

Tuesday, March 21, 2023

Operating Systems: Journal 3

This week, I learned about how a computer program views and utilizes memory in a system. I learned about the address space, which can be thought of as an abstraction of how a program sees its memory in the physical system.

I also discovered that programs have two different types of memory locations. The stack memory is responsible for handling allocations and deallocations for the programmer; this is typically reserved for the running program. Another location for memory would be the heap memory; this is where the programmer can handle the allocations and deallocations using malloc() and the more important free() call.

Lastly, I was fascinated with how segmentation helps manage large address spaces by breaking them down into smaller segments, or what can be referred to as "chunks."

Overall, it was a fascinating week of learning about the intricacies of memory management in this operating systems class.

Tuesday, March 14, 2023

Operating Systems: Journal 2

Throughout the past week, I learned about various essential aspects of operating system design, specifically, regarding process management and scheduling. It was enlightening to discover that a process is an autonomous work unit that operates with its memory space and system resources. This feature allows multiple programs to run simultaneously on a single machine. Moreover, I also familiarized myself with the Process API, which comprises programming interfaces that enable developers to interact with the operating system's processes.

Another crucial concept that I learned about was Limited Direct Execution, a security mechanism that limits specific operations to designated code paths, preventing unauthorized code from executing in privileged contexts. Additionally, scheduling, the process of determining the execution order of processes by the operating system, was another topic I studied. The Multi-level Feedback Queue, a widely used scheduling algorithm, assigns processes to multiple priority levels based on their execution history and resource requirements.

Overall, my understanding of the critical role of processes and scheduling in modern operating systems has significantly increased. These elements play a crucial role in ensuring the efficient and secure operation of computer systems.

Tuesday, March 7, 2023

Operating Systems: Journal 1

This past week, I gained knowledge on crucial principles within the realm of operating systems. Specifically, I explored the concept of virtualizing the CPU and memory. This process allows for a level of separation between software and physical hardware, permitting multiple programs to access shared resources without causing disruptions. Additionally, I studied the topic of concurrency, which refers to an operating system's capacity to execute numerous tasks concurrently.

Another important topic covered was persistence, which is the ability of an OS to store data even when the system is turned off. I gained an understanding of how file systems work and how data is stored on hard drives and other storage devices. Finally, I delved into the history of operating systems, starting with Unix and tracing the evolution of OSes up to the present day, exploring the various types of OSes that have been developed over the years.

Overall, this week has provided me with a solid foundation in the core concepts of operating systems, and I am excited to delve deeper into this subject in the weeks to come.