Virtualisation: Difference between revisions

From COMP15212 Wiki
gravatar Yuron [userbureaucratinterface-adminsysopPHRhYmxlIGNsYXNzPSJ0d3BvcHVwIj48dHI+PHRkIGNsYXNzPSJ0d3BvcHVwLWVudHJ5dGl0bGUiPkdyb3Vwczo8L3RkPjx0ZD51c2VyPGJyIC8+YnVyZWF1Y3JhdDxiciAvPmludGVyZmFjZS1hZG1pbjxiciAvPnN5c29wPGJyIC8+PC90ZD48L3RyPjwvdGFibGU+] (talk | contribs)
m (1 revision imported)
pc>Yuron
No edit summary
Line 2: Line 2:
-->{{Path|OS Topics|9}}<!--
-->{{Path|OS Topics|9}}<!--
-->{{#invoke:Dependencies|add|Concepts,4}}  
-->{{#invoke:Dependencies|add|Concepts,4}}  
A computer has a certain amount of various resources.  These are all
A computer has a certain amount of various resources.  These are all limited, except, possibly time; in a [[Real Time|real-time]] system time may also be limited.  Numerous processes may compete for resources; each process has its own balance of requirements and these can differ widely.
limited, except, possibly time; in a [[Real_Time|real-time]] system
time may also be limited.  Numerous processes may compete for
resources; each process has its own balance of requirements and these
can differ widely.


[[Image:virtualisation.png|link=|alt=Virtualisation]]
[[Image:virtualisation.png|link=|alt=Virtualisation]]


The main job of an operating system is to present an idealised
The main job of an operating system is to present an idealised computer to every process – offering it every possible service,
computer to every process – offering it every possible service,
independent (as far as possible) of other processes – whilst exploiting the available resources to the maximum.
independent (as far as possible) of other processes – whilst
exploiting the available resources to the maximum.


It’s a sort of multi-dimensional, dynamically changing jigsaw puzzle.
It’s a sort of multi-dimensional, dynamically changing jigsaw puzzle.


The most prominent aspects of virtualisation in (many) operating
The most prominent aspects of virtualisation in (many) operating systems are:
systems are:


*[[Virtual_Memory|Virtual memory]] – where any process can use (almost) any address at any time.
*[[Virtual_Memory|Virtual memory]] – where any process can use (almost) any address at any time.
*Timesharing – where all processes can execute ‘concurrently’ although really they are [[Process_Scheduling|scheduled]] on the physical processors.
*Timesharing – where all processes can execute ‘concurrently’ although really they are [[Process_Scheduling|scheduled]] on the physical processors.


In addition, modern systems may virtualise the whole machine, with a
In addition, modern systems may virtualise the whole machine, with a [[hypervisor]] layer and other resources – such as the
[[hypervisor]] layer and other resources – such as the
[[Filing_System|file system]] or other multiplexed I/O like [[Extra:USB|USB]] – may be managed so that concurrent processes can use them as if they were private resources.
[[Filing_System|file system]] or other multiplexed I/O like [[Extra:USB|USB]]
– may be managed so that concurrent processes can use them as if they
were private resources.
----
----


=== An important principle ===
=== An important principle ===
The department store, [https://en.wikipedia.org/wiki/Harrods Harrods] has a motto: “Omnia Omnibus Ubique” (all things for all people, everywhere).  This does not mean they keep everything you might imagine buying <em>in stock</em> though.  Presumably the shop keeps items that they expect might be wanted in stock and will order
The department store, [https://en.wikipedia.org/wiki/Harrods Harrods] has a motto: “Omnia Omnibus Ubique” (all things for all people, everywhere).  This does not mean they keep everything you might imagine buying <em>in stock</em> though.  Presumably the shop keeps items that they expect might be wanted in stock and will order (reputedly) anything else you might ask for.
(reputedly) anything else you might ask for.


In virtualising various resources, most operating systems employ a
In virtualising various resources, most operating systems employ a similar principle: they maintain the <em>potential</em> of many resources and organise the actual resources around the demand.
similar principle: they maintain the <em>potential</em> of many resources and
organise the actual resources around the demand.


Examples:
Examples:
Line 43: Line 30:
*Printing: output can be printed at any time.  (Actually the output may be saved in a queue until a free printer is discovered and then allocated to that).
*Printing: output can be printed at any time.  (Actually the output may be saved in a queue until a free printer is discovered and then allocated to that).


There are many examples: compile some more of your own as you peruse
There are many examples: compile some more of your own as you peruse future articles.
future articles.
----
----
 
{{BookChapter|1.7|34-35}}
{{PageGraph}}
{{PageGraph}}
{{Category|Concepts}}
{{Category|Concepts}}
{{Category|IO}}
{{Category|IO}}
{{Category|Major concepts}}
{{Category|Major concepts}}

Revision as of 14:45, 4 August 2019

On path: OS Topics 1: Concepts • 2: Cache • 3: Context • 4: Processor Privilege • 5: Process Scheduling • 6: Exceptions • 7: Interrupts • 8: Direct Memory Access (DMA) • 9: Virtualisation • 10: Hypervisor
Depends on Concepts

A computer has a certain amount of various resources. These are all limited, except, possibly time; in a real-time system time may also be limited. Numerous processes may compete for resources; each process has its own balance of requirements and these can differ widely.

Virtualisation

The main job of an operating system is to present an idealised computer to every process – offering it every possible service, independent (as far as possible) of other processes – whilst exploiting the available resources to the maximum.

It’s a sort of multi-dimensional, dynamically changing jigsaw puzzle.

The most prominent aspects of virtualisation in (many) operating systems are:

  • Virtual memory – where any process can use (almost) any address at any time.
  • Timesharing – where all processes can execute ‘concurrently’ although really they are scheduled on the physical processors.

In addition, modern systems may virtualise the whole machine, with a hypervisor layer and other resources – such as the file system or other multiplexed I/O like USB – may be managed so that concurrent processes can use them as if they were private resources.


An important principle

The department store, Harrods has a motto: “Omnia Omnibus Ubique” (all things for all people, everywhere). This does not mean they keep everything you might imagine buying in stock though. Presumably the shop keeps items that they expect might be wanted in stock and will order (reputedly) anything else you might ask for.

In virtualising various resources, most operating systems employ a similar principle: they maintain the potential of many resources and organise the actual resources around the demand.

Examples:

  • Memory: a process may be able to use any address it fancies, but the memory may not be allocated until it actually does.
  • Printing: output can be printed at any time. (Actually the output may be saved in a queue until a free printer is discovered and then allocated to that).

There are many examples: compile some more of your own as you peruse future articles.


Also refer to: Operating System Concepts, 10th Edition: Chapter 1.7, pages 34-35


Articles on Concepts
About this resource • Application Binary Interface (ABI) • Arrays • Atomicity • Boot • Cache • Cacheability • Caching • Concepts • Containers • Context • Context Switching • Deadlock • Direct Memory Access (DMA) • Environment Variables • Exceptions • File Attributes • Fragmentation • Hypervisor • Interrupts • Operation Ordering • PATH • Pointers • Process Scheduling • Processes • Processor Privilege • Queues • Real Time • Reentrancy • Relocatable Code • Spooling and Buffering • Synchronisation • Thrashing • Threads • Virtual Memory • Virtualisation
Articles on IO
Cacheability • Device Drivers • Direct Memory Access (DMA) • IO • Interprocess Communication • Interrupt Controller • Interrupt Service Routines (ISRs) • Interrupts • Libraries • Peripheral devices • Pipes • Queues • Queues Extra • Resources • Shell • Sockets • Spooling and Buffering • Starvation • Streams • System Calls • Thrashing • Timers • Using Peripherals • Virtualisation • Write Buffer
Articles on Major concepts
Cache • Cacheability • Concepts • Context • Direct Memory Access (DMA) • Exceptions • Hypervisor • Metadata • Process Scheduling • Processor Privilege • Real Time • Reentrancy • Synchronisation • Virtualisation