Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Timervirtualisering för hypervisors.
KTH, School of Computer Science and Communication (CSC).
2012 (Swedish)Independent thesis Advanced level (professional degree), 10 credits / 15 HE creditsStudent thesis
Abstract [en]

A hypervisor is installed directly on top of a computer's hardware. Above this hypervisor is then several operating systems installed, called guests. This technique offers a number of efficient solutions: better resource utilisation; less hardware and physical space is needed; and security in the form of isolation.

For a hypervisor to be able to offer these possibilities it must be able to do context switches in order to give all guests execution time. But this can also be said about the guests and their applications. To perform these context switches a timer is used.

This means that the same timer shall be used by several users simultaneously. Because of the possibilities and the timer's importance it is interesting to investigate how a timer component can be constructed for a hypervisor. This was done by means of a general design and by an implementation on the ARM architecture.

An important decision was how the timers should be counting the guests' time: either continuously or the execution time. The last option was chosen because it shows the guest operating systems for how long time their applications have been executing, and thereby unnecessary context switches are avoided.

Another important question is for how long does a hypervisor delay the timer interrupt for the guest operating system. The ambition was to not execute more than 100 instructions between the interrupt occurred and till the operating system was executing the interrupt routine. This ambition was achieved with circa 40 instructions.

One conclusion was that a timer component shall offer the guest operating systems several different types of timers. Therefore this timer component is only one part of a complete timer component.

Abstract [sv]

En hypervisor installeras direkt på datorns hårdvara, och ovanpå hypervisorn installeras ett antal operativsystem, kallade gästsystem. Denna teknik erbjuder ett flertal möjligheter: effektivare användning av hårdvara; mindre hårdvara och mindre fysiskt utrymme behövs; och säkerhet i form av isolering.

För att denna teknik skall fungera krävs det att dels hypervisorn skall kunna utföra byten av operativsystem, men även gästoperativsystemen skall kunna byta sina applikationer. För att hypervisorn och gästoperativsystemen skall veta när ett byte skall ske används en timer.

Detta betyder att samma timer skall användas av flera användare samtidigt. Då hypervisors kan användas till flera nyttiga tillämpningar och beror på en timer är det intressant att undersöka hur en timerkomponent kan konstrueras för en hypervisor. Hypervisorn skall kunna använda timerkomponenten för att ge sig själv en timer men även för varje gästsystem. Detta illustreras med en generell design av en timerkomponent och genom en implementation på ARM-arkitekturen.

En designfråga som dök upp var hur gästsystemens timers skulle räkna ned: kontinuerligt eller endast när de exekverar? Det sistnämnda alternativet valdes på grund av att det antogs att operativsystem behöver en timer som visar hur lång tid de exekverat, speciellt i samband när applikationer skall bytas.

Då hypervisors kan användas i många olika tillämpningar är det även viktigt att undersöka vilken tidsfördröjning hypervisorn ger upphov till vid leverans av realtidsavbrott. Målet var att hypervisorn inte skulle exekvera fler än 100 instruktioner från det att timeravbrottet uppstod tills dess att det levererades till gästoperativsystemet.

Angående mängden instruktioner som exekverades under leveransen av avbrottet uppskattades dessa till cirka 40 stycken vilket resulterade i en tidsfördröjning på under 200 ns på en ARM9-processor på 300 MHz.

Det visades att räkna gästsystemens exekveringstid inte alltid är bra då avbrott endast levereras medan gästsystemen exekverar. Anledningen är att ibland önskas realtidsavbrott oavsett om gästsystemet exekverar eller ej. Med tanke på detta och att det finns många olika timers en dator kan behöva så är denna timerkomponent otillräcklig. Istället bör en timerkomponent erbjuda flera olika sätt att räkna tid för att vara så tillämpningsbar som möjligt.

Place, publisher, year, edition, pages
2012.
Series
Kandidatexjobb CSC, K12031
National Category
Computer Science
Identifiers
URN: urn:nbn:se:kth:diva-131036OAI: oai:DiVA.org:kth-131036DiVA: diva2:654482
Educational program
Master of Science in Engineering - Computer Science and Technology
Uppsok
Technology
Supervisors
Examiners
Available from: 2013-10-07 Created: 2013-10-07

Open Access in DiVA

No full text

Other links

http://www.csc.kth.se/utbildning/kandidatexjobb/datateknik/2012/rapport/haglund_jonas_K12031.pdf
By organisation
School of Computer Science and Communication (CSC)
Computer Science

Search outside of DiVA

GoogleGoogle Scholar

urn-nbn

Altmetric score

urn-nbn
Total: 37 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf