Section 10: Advanced Topics and Algorithms - bmitch26/Operating-Systems GitHub Wiki

Section 10. Advanced Topics and Algorithms

  • Virtualization
    • Taking the physical hardware resources of a computer and splitting them up into multiple digitally separate environments. Each have their own allocated resources to mimic a physical computer. Source
  • Hypervisors
    • Software component that manages each virtual machine, making sure they each have their own allocated resources and don't interfere with the others.
  • Containerization
    • Bundles application code with the configurations, libraries and dependencies it needs. This entire package is abstracted away from the host OS and is made portable. Source
  • Distributed Systems
    • Collection of programs that use resources from multiple systems to run a task. Source
  • Distributed File Systems
    • File system that is spread across multiple servers/locations and allows programs to interact with files like they would on a local system. Source
  • Remote Procedure Call (RPC)
    • Technique for client-server based applications, allowing for processes to be carried out on either same system or across others with a connected network. Source RPC
  • Distributed Synchronization
    • Focus on the challenges with keeping data consistent, managing simultaneous processes, and maintaining coherent behavior across network nodes. Source
  • Cloud Computing
    • On-demand availability of computing resources to provide services over the internet. Source
  • Real-Time Systems
    • These systems are meant to serve real-time systems with minimal response times and are utilized for extremely time-sensitive systems requiring almost immediate deployment (e.g. missile systems, air traffic control, airbags, etc.) Source RTOS
  • Hard vs. Soft Real-Time Systems
    • Hard RTOS are meant for applications where time-delay is not tolerated and time constraints are strict. Soft RTOS are meant for applications where the time-constraints are loosened up and not as strict.
  • Algorithms:
    • Peterson’s Algorithm
      • Related solution algorithm to the Producers-consumers problem meant to implement mutual exclusion in shared memory. Source
    • Lamport’s Bakery Algorithm
      • Related to first come first serve property, where each process receives a "ticket", with the smallest number ticket being allowed into the critical section and any duplicates have the lower process ID as the priority. Source
    • Readers-Writers Variations
      • The three variations to the Readers-Writers Problem.
        • First is "no reader shall be kept waiting if the share is currently opened for reading"
        • Second is "no writer, once added to the queue, shall be kept waiting longer than absolutely necessary"
        • Third is "no thread shall be allowed to starve" Source
    • Ricart–Agrawala Algorithm (Distributed Mutual Exclusion)
      • Algorithm for permission-based approach to mutual exclusion in a distributed system Source
    • Bully Election Algorithm
      • Method for electing a coordinator in a distributed system by having the nodes "bully" each other to check ID, and the one with the highest becomes the leader. Source Bully
    • Ring Election Algorithm
      • Different method for electing a coordinator in a distributed system. Focuses on messages being passed between each node, and discarding any messages smaller than the one they received. The highest becomes coordinator. Source Ring