Advanced aspects of operating systems Université Grenoble Alpes
Operating systems are the foundation of computer systems, often complemented with middleware systems to help with more domain-specific features. Operating systems wrap the underlying hardware platforms into an effective software platform, creating an illusion, hidding hardware details away and offering instead high-value services. In the end, operating systems create an effective virtual world for software developers and end users alike. As such, operating systems are virtual machines. Virtual platforms come in many shapes and sizes, creating virtual platforms with different specifics, for different application domains. Some virtual platforms are real-time operating systems for mission-critical systems such as avionics or aerospace systems. Others are sheer veneers above very specific hardware like in Game consoles or Aduino-like embedded systems for the Do-It-Yourself communities. Others are combining operating system kernels with high-level languages, such as the Google Android platform that combines the Linux kernel and the Java virtual machine. Others are for world-scale cloud infrastructures, often associating modified Linux and hypervisors, along with advanced distributed services such as shared storage or shared FPGA accelerators. Across this massive domain, there are only few key enabling technologies, technologies that we will help you learn and master in this course. The course starts with understanding some of the key evolutions of current hardware platforms; platforms facing the challenge to deliver increasing performance while keeping the energy consumption under control. The course then discusses what is an operating system kernels and what are the architectural options that have been tried so far, such as discussing monolithic kernels, micro-kernels, and hypervisors. We will discuss these approach, debating their original design goals and comparing them with the characteristics of their implementations. Then the course moves onto the key enabling technologies for the Cloud infrastructures. These technologies are the enablers of popular online services such as search engines, social networks, or streaming services. They are also the enablers of Big Data applications. All these complex systems share similar requirements such as requiring large amount of computing resources and having stringent constraints in terms of reliability, availability and performance. To fulfill such requirements, these complex systems are implemented above Cloud platforms that exploit large numbers of servers hosted in a data center, forming so-called “rack-scale” or even “warehouse-scale” platforms. These platforms are at the heart of companies like Google, Facebook, Twitter or Amazon. Everyday, these companies face the challenge of exploiting data center resources efficiently and reliably through well-designed software infrastructures. While a few challenges are specific to the massive size of the these giants, most of the design principles they rely on are also of interest for smaller scale systems. Through this course, you will learn about these design principles and get a chance to understand the underlying theoretical and practical challenges, including the study of scalability, fault tolerance, and data consistency---all in the context of virtualized hardware platforms.
Online Course Requirement
Course content can evolve at any time before the start of the course. It is strongly recommended to discuss with the course contact about the detailed program.
Please consider the following deadlines for inbound mobility to Grenoble:
- April 1st, 2020 for Full Year (September to June) and Fall Semester (September to January) intake ;
- September 1st, 2020 for Spring Semester intake (February – June).
Site for Inquiry
Please inquire about the courses at the address below.
Contact person: Bérengère DUC