<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IBM Virtualization &#187; octal-cores</title>
	<atom:link href="http://virtualizationconversation.com/tag/octal-cores/feed/" rel="self" type="application/rss+xml" />
	<link>http://virtualizationconversation.com</link>
	<description>IBM Virtualization</description>
	<lastBuildDate>Thu, 24 Sep 2009 21:47:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Introduction to Virtualization</title>
		<link>http://virtualizationconversation.com/2008/11/12/introduction-to-virtualization/?nucrss=1</link>
		<comments>http://virtualizationconversation.com/2008/11/12/introduction-to-virtualization/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 22:32:46 +0000</pubDate>
		<dc:creator>Johan De Gelas</dc:creator>
				<category><![CDATA[Server Virtualization Conversation]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Dual-core]]></category>
		<category><![CDATA[kernal]]></category>
		<category><![CDATA[multi-core]]></category>
		<category><![CDATA[octal-cores]]></category>
		<category><![CDATA[quad-core]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://ibmvirt.blendinteractive.com/?p=144</guid>
		<description><![CDATA[First dual-core in 2005, then quad-core in 2007: the multi-core snowball is rolling. The desktop market is still trying to find out how to wield all this power; meanwhile, the server market is eagerly awaiting the octal-cores in 2009. The difference is that the server market has a real killer application, hungry for all that [...]<img height="1" width="1" src="http://services.nuconomy.com/i.nsi?methId=log&projTok=695ac3c5-1f&ownus=johan.degelas&sver=WordPress%2F1.48+%28nuconomy%29&srcId=http%3A%2F%2Fvirtualizationconversation.com%2F2008%2F11%2F12%2Fintroduction-to-virtualization&crtId=148&dt=1280569636">]]></description>
			<content:encoded><![CDATA[<p>First dual-core in 2005, then quad-core in 2007: the multi-core snowball is rolling. The desktop market is still trying to find out how to wield all this power; meanwhile, the server market is eagerly awaiting the octal-cores in 2009. The difference is that the server market has a real killer application, hungry for all that CPU power:  virtualization.</p>
<p>While a lot has been written about the opportunities that virtualization brings (consolidation, hosting legacy applications, resource balancing, faster provisioning&#8230;), most publications about virtualization are rather vague about the &#8220;nuts and bolts&#8221;.</p>
<p>Performance? Isn&#8217;t that a non-issue? Modern virtualization solutions surely do not lose more than a few percent in performance, right? The answer is quite a bit different from what some of the sponsored white papers want you to believe.<span id="more-144"></span></p>
<p>Every one of us has already used virtualization in some degree. In fact, most of us wouldn&#8217;t be very productive without the virtualization that a modern OS offers us. A &#8220;natively running&#8221; server or workstation with a modern OS already virtualizes quite a few resources: memory, disks, and CPUs for example. For example, while there may only be only 4GB RAM in a Windows 2003 server, each of the tens of running application is given the illusion that they can use the full 2GB (or 3GB) user-mode address space. There might only be three disks in a RAID-5 array available, but as you have created 10 volumes (or LUNs), it appears as if there are 10 disks in the machine.  Although there might only be two CPUs in the server, you get the impression that five actively running applications are all working in parallel at full speed.</p>
<p>So why do we install a hypervisor (or VMM) to make fully virtualized servers possible if we already have some degree of virtualization in our modern operating systems? Operating systems isolate the applications weakly by giving each process a well-defined memory space, separating data from instructions. At the same time, processes share the same files, may have access to some shared memory, and share the same OS configuration. In many situations, this kind of isolation was and is not sufficient. One process that takes up 100% of the CPU time may slow the other applications to snail speed for example, despite the fact that modern OSes use preemptive multitasking. In case of pure hardware virtualization, you will have completely separate virtual servers with their own OS (guest OS), and communication is only possible via a virtual network.</p>
<p><strong>A Matter of Privileges</strong></p>
<div class="wp-caption alignright" style="width: 248px"><img style="margin-left: 10px;" title="Hyper Visor" src="http://images.anandtech.com/reviews/it/2008/virtualization-nuts-bolts/hypervisor.gif" alt="Hyper Visor" width="238" height="238" /><p class="wp-caption-text">Ring deprivileging with software virtualization: the guest OSes are no longer running in ring 0, but with less rights in ring 1.</p></div>
<p>To create several virtual servers on one physical machine, a new software layer is necessary: the hypervisor, also called Virtual Machine Monitor (VMM). The most important role is to arbitrate the access to the underlying hardware, so that guest OSes can share the machine. You could say that a VMM manages virtual machines (Guest OS + applications) like an OS manages processes and threads.</p>
<p>To understand how the VMM actually works, we first have to understand how a modern operating systems works. Most modern operating system work with two modes:</p>
<p>- A kernel mode that is allowed to run almost any CPU instructions, including &#8220;privileged&#8221; instructions that deal with interrupts, memory management, and so on. This is of course the mode that the operating system runs in.</p>
<p>- A user mode that allows only instructions that are necessary to calculate and process data. Applications run in this mode and can only make use of the hardware by asking the kernel to do some work (a system call).</p>
<p>The whole user/kernel mode arrangement is based on the fact that RAM is divided into pages. (It is also possible to work with segment registers and tables, but that is a discussion for another article.) Before a privileged instruction is executed, the CPU first checks if the page from where the instruction originates actually has the right 2-bit code. The most privileged instructions require a 00 &#8220;privilege code&#8221;. This 2-bit code allows four levels of code, with &#8220;11&#8243; being the lowest level.</p>
<p>To illustrate this, this 2-bit code is graphically represented in many publications by four &#8220;onion rings&#8221; (as you can see in this article).  Ring 0 is the most privileged layer, ring 1 is a bit less privileged, and ring 3 is where the user applications reside with no privileges to manage the hardware resources at all.</p>
<p>A technique that all (software based) virtualization solutions use is thus ring deprivileging: the operating system that runs originally on ring 0 is moved to another less privileged ring like ring 1. This allows the VMM to control the guest OS access to resources. It avoids for example one guest OS kicking another out of memory, or a guest OS controlling the hardware directly.</p>
<p>Next time we&#8217;ll talk a bit more about the challenges of virtualization and some of the earliest forms of it.</p>
<img height="1" width="1" src="http://services.nuconomy.com/i.nsi?methId=log&projTok=695ac3c5-1f&ownus=johan.degelas&sver=WordPress%2F1.48+%28nuconomy%29&srcId=http%3A%2F%2Fvirtualizationconversation.com%2F2008%2F11%2F12%2Fintroduction-to-virtualization&crtId=148&dt=1280569636">]]></content:encoded>
			<wfw:commentRss>http://virtualizationconversation.com/2008/11/12/introduction-to-virtualization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
