Week 32: CST 334 Conclusion

This course was extremely brutal but rewarding to say the least. I spent a considerable amount of time staying up late to force myself to read through the dry content. But now that we're at the end I'm happy to walkaway with some understanding of how an operating system works. I'm glad to have taken this course in an 8-week online asynchronous setting as I definitely would've struggled through a 16-week in person course.

Operating Systems Key Takeaways

  • The Operating system virtualizes physical resources including CPU and memory which allows for the illusion of multitasking.
  • Processes is another layer of abstraction, which have states such as ready, running, and blocked. Additionally context switching allows for CPU cores to alternate between states to best take advantage of limited resources.
  • Paging is one of the methods for virtualization memory which essentially divides physical memory into fixed size units call frames.
  • Multi-threading allow for multiple processes to run in parallel, allows for processes to run across multiple CPU's. Avoid blocking I/O. Race conditions are dealt with using locks such as Mutex which is a mutual exclusion lock that is a mechanism to ensure that only one thread may be inside a critical section at the same time.
  • Atomic Operations are isolate from and independent of all other operations so that no thread can ever encounter a partially completed atomic operation.
  • Atomic variable is a variable that is thread-safe and modification can only take place as a single atomic operation
  • File system is the data structure used by the OS to store and retrieve data. Provides multiple abstraction layers such as application, logical file system, file organization module, base file system, IO control, and devices