Posts

Showing posts from November, 2024

CST 334 Week 5

 This week I learned about threads in a process, a thread is like a process but all runs from the same base process. These threads allow for concurrency within a process to improve efficiency and performance. Threads behave like other processes in this sense as when one thread waits for I/O the CPU can jump to another thread so the system is not completely on hold. These threads often access the same data and files which is not common with concurrent processes. This unique quirk with threads means that special precautions need to be taken to ensure that integrity is upheld within the process. Locks are the best way to do this as they ensure that when one thread is accessing or updating data or files. By locking a thread it means that no other thread can hold that lock which prevent said thread from continuing. There are multiple kinds of locks that can be implemented depending on the type of program you are developing. Threads are an essential part of operating systems . 

CST 334 Week 4

 This week I learned about paging and how it can help virtualize memory. Paging breaks process into pages or small sections of memory so they can be better stored within the physical memory of a system. This helps to address the problem of segmentation within physical memory as these pages can fit into smaller gaps than full processes. The process needs to think it has its own private address space in physical memory so paging sheets, which track where pages are in physical memory, are used so that a virtual address can be seen by the process to create the illusion of a contiguous memory space.      I also learned that it can be costly and consume a lot of time to translate a virtual address to a physical address due to having to transverse the page tables. The translation look aside buffer addresses this problem as common address locations are stored here to allow quick access for the OS to find. Paging is a great way to virtualize memory. 

CST334 Week 3

 This week I learned about memory virtualization and the importance of choosing an adequate memory management method. Although there are downfalls to all of the management strategies, there are benefits that make them useful in specific applications. I also learned about the pipe and dup commands that can be used in C shell programs to perform tasks on the operating system. Pipe allows for two forked programs to pass information to each other. This can allow one operation to pass its output as the input to the other operation. dup allows for one file to be saved into another file descriptor which can allow for it to be used by other operations. 

CST 334 Week 2

 This week I learned all about processes which are programs that are currently being executed by the CPU. In order for a computer to function at it's fullest potential it needs to be able to run and keep track of multiple processes at once. This week I learned about the different methods that a CPU uses to complete process like FIFO and SJF both of which can end up with longer average completion times. I also learned about MLFQ or multi level feedback queue which learns from previous processes and optimizes the order that they are completed in. Managing how processes are completed by the CPU is a key part of how an OS functions and what allows us to create complex programs.