- Module 1: Carnegie Mellon University's Cloud Developer course. Get an introduction to virtualization, one of the many technologies that power the cloud. Learn what virtualization is, its benefits, and how cloud resources are shared.
- Identify major reasons that virtualization is becoming essential, especially on the cloud
- Identify some of the main limitations of traditional operating systems to enable the cloud computing paradigm
- Indicate how system complexity can be managed in terms of levels of abstractions and well-defined interfaces, and specify their applicability to virtualization and the cloud
- Define resource sharing, explain why it is needed, discuss its two main implementations, and indicate its applicability to virtualization
- Outline the main differences between sharing of uniprocessor and multiprocessor systems and the pros and cons of sharing multiprocessor systems in time and space
- Module 2: Carnegie Mellon University's Cloud Developer course. Take a deep dive into virtualization by understanding its formal definition as well as the different types of virtual machines.
- Define virtualization, and distinguish between its applicability to a single system component and to an entire machine
- Identify different virtual machine types, and indicate the main technique that enables each type.
- Recognize the different classes of system virtual machines.
- Module 3: Carnegie Mellon University's Cloud Developer course. Learn about how computing power is virtualized using virtual CPUs. Covers different types of CPU virtualization.
- Distinguish between different modes of operations in various systems such as traditional operating systems and virtualized systems
- Identify the three main classes of system instructions
- Indicate the condition to enable efficient hypervisors
- Explain how a hypervisor can handle system traps
- Identify the difference between efficient hypervisors and hypervisors
- Describe why and when code patching is needed
- Recognize the dissimilarity between full virtualization and paravirtualization
- Explain the advantages and disadvantages of full virtualization and paravirtualization
- Identify the difference between emulation and direct native execution
- 'Recognize the two types of emulation: interpretation and binary translation'
- Explain some major interpretation and binary translation techniques
- Compare and contrast decode-and-dispatch, direct-threaded, and indirect-threaded interpreters
- Identify the difference in virtual CPU allocation between symmetric multiprocessing and uniprocessor virtual machines
- 'Describe the two major virtual CPU schedulers in Xen: Simple Earliest Deadline First and Credit Scheduler'
- Module 4: Carnegie Mellon University's Cloud Developer course. Learn how memory is virtualized to support cloud resources. Covers different types of memory mapping and related issues.
- Identify how most general-purpose operating systems support virtual memory
- Discuss the one-level page mapping between virtual and physical addresses
- Identify the difference between one-level page mapping, as provided in traditional operating systems, and two-level page mapping, as provided in system memory virtualization
- Discuss multiple-level page mapping as implied by various virtualized environments, such as native and user-mode hosted virtualized systems
- Define memory overcommitment, and discuss the benefits it provides to virtualized systems
- Describe what reclamation techniques are and why they are needed
- Explain memory ballooning in VMware ESXi as an example of a reclamation technique
- Module 5: Carnegie Mellon University's Cloud Developer course. Learn about how computer input/output is virtualized. Covers I/O basics and a case study of virtualizing I/O.
- Recognize how CPU and I/O devices communicate in traditional systems
- Identify how many I/O device drivers can/should be supported per physical device for different virtualized systems, such as native and dual-mode hosted virtualized systems
- Recognize the need for and ease of intercepting I/O requests by the hypervisor
- Identify at which system interfaces the hypervisor can intercept I/O requests
- Explain the pros and cons of intercepting I/O requests at different system interfaces
- Describe the overall I/O virtualization process as applied to a network interface card
- Discuss Xen Project's approach to I/O virtualization
- Module 6: Carnegie Mellon University's Cloud Developer course. Learn about how storage and network resources can be virtualized to support software defined datacenters.
- Recall the design considerations in datacenter networks and describe the need for virtualization to support multiple tenants
- Compare and contrast traditional datacenter networks and software-defined networking (SDN) for the purposes of multi-tenant networks
- List the various types of storage systems used in datacenters
- Compare and contrast traditional datacenter storage and software-defined storage (SDS) and list some of the benefits of SDS
In this module, you will:
In partnership with Dr. Majd Sakr and Carnegie Mellon University.
In this module, you will:
In partnership with Dr. Majd Sakr and Carnegie Mellon University.
In this module, you will:
In partnership with Dr. Majd Sakr and Carnegie Mellon University.
In this module, you will:
In partnership with Dr. Majd Sakr and Carnegie Mellon University.
In this module, you will:
In partnership with Dr. Majd Sakr and Carnegie Mellon University.
In this module, you will:
In partnership with Dr. Majd Sakr and Carnegie Mellon University.