Utility computing

CS111 Fall 2014

Dec. 10, 2014

Scribe Notes by Kyle Nguyen and Richard Sun


OSv
OSv is a cloud computing focused computer operating system, described in this paper.

Currently, virtual machines in the cloud typically run existing general-purpose operating systems, such as Linux, on top of the cloud's hypervisor kernel. The cloud’s hypervisor already provides some features, such as isolation and hardware abstraction, which are duplicated by traditional operating systems (in this case Linux), and that this duplication comes at a cost. OSv aims to replace Linux by addressing the duplication issues by using a low-overhead library-OS-like design.

OSv Model

In the current model on the left, system calls need to go through the JVM, Linux kernel, and Hypervisor kernel. This is inefficient, and the OSv model on the right aims to make it simpler and faster.

Goals of OSv:
  1. Run Linux apps (although not all)
  2. Faster (app performance)
  3. Faster boot time (instead of fork/exec, use VM)
  4. Use C++11 (atomic synchronization)

The library OS seeks to achieve the following:
What we need to build OSv:
For performance, OSv avoids spinlocks. Spinlocks cause a lock-holder preemption problem. Instead, OSv uses lock-free algorithms by utilizing the atomic operations C++11 provides for accessing shared memory.

OSv Network

In Linux, an application knows that a packet for it is received by using the Linux socket mechanism. This mechanism is considered inefficient for OSv. The application must copy data from system space to user space after it has been received through the network. OSv avoids that by using a dedicated thread for receiving and sending packets. The use of this new mechanism is not enforced, however, because OSv still wants Linux applications to be able to run.
The dedicated thread for receiving and sending packets can run lockless. However, it doesn't provide the LInux/POSIX API! Applications will need to be written differently to accomodate the new API provided by OSv.

OSv also runs tickless. Instead of interrupting each thread at set intervals, OSv uses hardware timers on a per thread basis to cut down on interrupts per second. However, the paper notes that OSv still has to interrupt threads sometimes to deal with specific types of hardware.

OSv only works with JVM-like apps. The idea behind OSv is to modify JVM to use these new socket APIs more effectively. It is designed to run existing Java apps on top of a modified JVM. However, doing so limits OSv to the Java world as only Java apps can run on OSv.

ClickOS is another OS that does not use system calls, developed by Kohler in 2008. This type of operating system has not succeeded yet, but if it does, it could change the way operating systems work with system calls.

Recurring OS Themes

Evolution of Utility Computing
Mainframes were developed by IBM and used during the 1960s to 1980s. The main goal of these mainframes was throughput.

Mainframe Image

Clusters were developed during the 1990s, and is even used for some applications in the present. Each node has its own disk and network. These separate machines need to be managed for booting, upgrading kernel version, etc. Many different types of software managers were developed, and the most popular one was Beowulf.

Mainframe Cluster

Clusters tent to work best when the app is CPU constrained. For example, scientific computational centers use this type of framework.
One downside to this design is that clusters are hard to expand. One solution is to use a "cluster of clusters", but this approach has its limitations as well.

Other contributers to the cloud idea

Cloud Computing
Advantages of cloud computing
Some popular public cloud service providers are:
A recent (2013) survey of what type of cloud computing organizations use:
Problems with clouds