Virtualisation: Difference between revisions
Yuron [PHRhYmxlIGNsYXNzPSJ0d3BvcHVwIj48dHI+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 [[ | |||
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.
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 |
---|