Operating Systems

Objectives

  • Understand, through an integrated vision, the interaction between applications, the operating system, and hardware.
  • Understand the evolution of operating systems based on changes in terms of applications and hardware over the years.
  • Explore the concepts of process, multi-programming, and scheduling in the context of operating systems.
  • Acquire knowledge of physical and virtual memory management mechanisms.
  • Understand different designs and mechanisms for storing and accessing persistent data, from the file system interface to the block interface to the storage devices (disks).
  • Explore operating system mechanisms that enable better performance, isolation, and security for applications sharing critical resources.
  • Demonstrate the ability to write efficient and reliable programs that take advantage of the process, memory, and I/O management mechanisms of a modern operating system.

Program

  • Introduction to base concepts and the evolution of operating systems. Process management:
  • Concept of process, multi-programming, and scheduling strategies.
  • Isolation and security mechanisms for multi-process environments. Memory management:
  • Physical memory management, data structures, paging, and segmentation.
  • Virtual memory systems and page swapping mechanisms.
  • Isolation and security in shared memory access. Data storage:
  • Storage stack of an operating system
  • File systems and block interfaces
  • Storage devices and I/O request scheduling.

Bibliography

Operating Systems: Three Easy Pieces, Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau, Arpaci-Dusseau. Books, 2018. Operating System Concepts, Abraham Silberschatz et al. John Wiley & Sons, 10th edition, 2021. Modern Operating Systems, Andrew S. Tanenbaum, Herbert Bos. Prentice Hall, 5th edition, 2022. Sistemas Operativos, Alves Marques et al. FCA Editora de Informática, 2a edição, 2012.

Updated: