Linnéuniversitetet Projektrapport Grundläggande Operativsystem 1DV415 Prestandatest mellan Windows och Linux Erik Källqvist, Teddy Wong, Douglas Rikardsson 10 januari 2014
Sammanfattning Vi har i vårt laborativa experiment testat och analyserat skillnaden mellan Windows 8.1 och Ubuntu 12.04 LTS. Testerna simulerades helt virtuellt i VMWare. Genom att använda oss av testprogrammet Geekbench 3.1.3 har vi kunnat mäta flera olika delar, bla. grafik, minne och kryptering, samt fått fram ett slutgiltigt resultat som sammanfattar hela operativsystemen. Varje test genomfördes tre gånger på såväl Windows 8.1 som Ubuntu. Resultaten talar för en mindre ledning för Ubuntu med 1,6 procent i singlecore-tester samt 4,2 procent i multicore-tester. Detta är dock resultat man får ta med en nypa salt då det ofta finns en felmarginal samt att testerna är gjorda i en virtuell miljö. Vi hade även velat testa med flera olika testprogram som dels testar systemet på andra sätt men också samma typer av tester för att se hur dessa kan skilja sig åt. Tyvärr är det väldigt få testprogram som stödjer cross-platforms, dvs möjligheten att köras på olika operativsystem.
1 Introduktion Som grund för detta experiment användes programmet VMWare för att kunna simulera dessa beräkningar och ladda hem de program och mätverktyg som skulle användas. För att underlätta användargränssnittet och för att optimera testresultaten installerades VMWare Tools. Operativsystemen som användes genom VMWare var Windows 8.1 och Ubuntu 12.04 LTS vilka kördes i två separata maskiner med samma förutsättningar. Hårdvaran bestod av följande:. RAM-minne: 4GB 1066 MHz Processor: Intel Xeon W3530 2.8 GHz Grafikkort: NVIDIA Quadro FX 580 Lokal hårddisk: HITACHI GST Deskstar 7K1000.C - SATA 3.0Gb/s - 16MB Cache - 320 GB kapacitet Linnéuniversitetet använder även en nätverksbaserad hårddisk-lösning som våra virtuella maskiner lagras på. Denna faktor bör man begrunda då den kraftigt kan påverka resultatet i våra tester. I båda operativsystemen gjordes alla aktuella uppdateringar för att får fram ett så rättvist resultat som möjligt. Programvaran som användes för att utföra alla beräkningar var Geekbench 3.1.3. Detta är ett av de få testprogram som är kompatibelt för både Windows och Ubuntu. Sökandet efter ett program som stödjer båda operativsystemen var ett stort problem. Vi ratade flera program på vägen på grund av kompatibilitetsproblem mellan operativsystemen. Vi fann dock två andra program som vi försökte installera på Ubuntu-maskinen. Dessvärre gav dessa minnesfel och internal errors vid installationsprocessen. Av tidsskäl blev då Geekbench det enda program som vi valde att använda oss av. Vi började därefter undersöka dess funktioner och saker som programmet testade. När vi visste det kunde litteratur om just detta plockas fram. Eftersom att vi nu bildade oss en uppfattning om vad mätningarna omfattade så anser vi att dessa ger en tillräckligt komplett bild i ett jämförande av operativsystem. En annan fördel med Geekbench är dess flexibilitet att kunna köra flera olika typer av tester i samma program. Anledningen till att vi valde just dessa operativsystem är att Ubuntu är det mest kända operativsystem inom Linux desktops. Vi valde version 12.04 för det 2
är deras senaste Long Time Support version för närvarande. På Microsoftsidan valde vi Windows 8.1 då det är den senaste versionen från Microsoft och den versionen som många användare uppgraderar till. Ytterligare en aspekt som gör att just dessa två system känns intressanta att jämföra är deras divergens vad gäller kärnstrukturen. Ubuntu bygger sitt system på en monolitisk kärna utan user space. Detta innebär att man slipper overhead-tid. Windows 8 bygger däremot på en hybridkärna vilket är en kombination av en monolitisk kärna med en microkärna-arkitektur. I denna struktur jobbar vissa processer direkt från kernel space mot applikationen i fråga medan vissa passerar user mode. Detta bör ge viss overhead och då också påverka de slutliga resultaten. Med hjälp av litteratur har vi fått fram en teori som pekar på att Ubuntu bör få bättre resultat i våra tester tack vare dess monolitiska kärnstruktur. Då Linux generellt är mer komplext att använda gentemot Windows så tycker vi att det vore intressant att ställa dessa två mot varandra för att ta reda på eventuella fördelar hos Linux. Eftersom att vi inte har några större erfarenheter av Linux-miljöer är detta ett bra sätt att ta reda på om det finns några fördelar med detta OS som väger upp dess komplexitet gentemot Windows. Linux används idag mer och mer i Enterprise-miljön men har även börjat användas mer inom desktop-miljön där Ubuntu ligger högt [1]. Detta tycker vi är en intressant aspekt då många av dessa företag kan välja vilket OS de vill och trots det väljer Linux. Detta visar att Linux har utvecklats till att kunna erbjuda än bättre användarupplevelse än tidigare. De fördelarna som vi tror att dessa företag och privatpersoner uppskattar är förmodligen det minimala virushotet jämfört med Windows. Den finansiella delen är garanterat uppskattad då Ubuntu är open source och därmed gratis. De flesta versionerna av Linux är också simpla att uppdatera och installera[2]. Linux har generellt sett lägre hårdvarukrav för att drivas vilket bör ses som en fördel. Det är denna eventuella fördel som vi vill ta reda på. Hur stor skillnad kan det vara och skiljer det mycket vid flerkärniga applikationer? 2 Experiment Programmet Geekbench 3.1.3 är ett verktyg som fungerar på många system. Testerna som utförs på Ubuntu 12.04 LTS sker direkt i terminalen medan på Windows 8.1 körs programmet i ett grafiskt gränssnitt. Alla tester beräknar användning av Single-core och Multi-core och tog cirka fem minuter vardera. Testerna utfördes tre gånger per operativsystem för att på så sätt undvika felaktig mätning. Medelvärdet användes sedan för att fastställa ett acceptabelt resultat. 3
Följande tester beräknar hastigheten för algoritmberäkning i olika typer av krypteringsalgoritmer. Advanced Encryption Standard(AES), Twofish är separata krypteringsalgoritmer och SHA-2 är en samling hashfunktioner [3]. Även en funktion för Edge-detection som beräknar hastigheten det tar för systemet att analysera bilder och dess pixeluppbyggnad i kontraster presenteras i denna stapel (Sobel) [4]. Beräkningarna presenteras genom enheten MB/sek. Figur 1: Resultat av kryptering samt Edge-detection för Singlecore-användning Figur 2: Resultat av kryptering samt Edge-detection för Multicore-användning Här ser vi att Ubuntu vinner i tre fall av fyra. Algoritmberäkningar i olika typer av krypteringsalgoritmer har alltså generellt sett högre hastighet i Ubuntu jämfört med Windows 8.1 i de flesta fall. 4
Dessa tester beräknar hastigheten för att komprimera data där man med hjälp av källkod återskapar data med färre bitar [5]. Bzip2 är en välanvänd komprimeringsmjukvara i UNIX-miljöer. Även resultat från komprimering av bildfiler i Jpeg- och Png-format visas i denna stapel. Figur 3: Resultat av komprimering i Singlecore Figur 4: Resultat av komprimering i Singlecore Dessa diagram tydliggör att Ubuntu har en fördel vad gäller komprimering av filer i programmet Bzip2 vid både komprimering och dekryptering för både single- och multicore. Resterande resultat för både single- och multicore skiljer sig marginellt. Här sticker inte något av operativsystemen ut. 5
I detta test används algoritmen Dijkstra för att mäta kortaste vägen mellan givna noder i exempelvis ett nätverk [6]. I en verklig situation kan denna algoritm användas inom många områden, exempelvis vid dirigering för att finna den effektivaste vägen när transportsträckor läggs ut. Figur 5: Resultat av användning av Dijktstras algoritm. Även i dessa tester drar Ubuntu det längsta strået och presterar bäst i prestandatestet med såväl singlecore som multicore. 6
Följande diagram visar skillnaden på hur effektivt operativsystemen analyserar grafiska simulationer. N-body simulerar dynamiska partikelsystem, som stjärnor i rymdspel och dess banor påverkade av gravitation [7]. Ray-trace är en teknik för att rendera visuella ljusstrålar tillsammans med andra objekt [8]. Tekniken används inom 3D-grafik till främst stillbilder eller andra långsamma renderingar. Figur 6: Resultat vid användning av grafiska simulationer. Här blir det ingen större skillnad på resultaten. Man bör dock notera att det är väldigt gynnsamt att använda multicore när Ray-Trace används. 7
Följande stapeldiagram visar effektiviteten hos operativsystemen när de arbetar med filter inom området bildredigering [9]. Två filter används, ett för att skärpa upp bilden och ett som används för att ge oskärpa. Figur 7: Resultat av effektiviteten vid användning av filter inom bildredigering. Även här kan man se en klar fördel med användning av multicore. Dessa resultat blir markant bättre vid användning av just multicore. Som operativsystem är Ubuntu klart bäst i denna situation. Den klarar testerna bäst i såväl singlecore som multicore. 8
Slutligen kördes ett test på hur operativsystemen skiljer sig i minneshanteringen och dess förmåga att hantera olika typer av dataöverföring från och till systemets internminne. Testet består av att skiva till och från minnet och mäta skalningen och räknas i GB/sek. Figur 8: Resultat visar effektiviteten vid minneshantering. Detta test känns som ett av de mer väsentliga gällande den totala hastigheten av systemet. Ett snabbt internminne gör systemet responsivt och att operativsystemet flyter på bra. 9
Här är det slutgiltiga diagrammet som visar ett sammaställt resultat för både singlecore och multicore. Vi kan se att Ubuntu är starkast i båda testerna vilket visar på en seger för Ubuntu i vår prestandajämföring. Vad som också är värt att notera är den stora skillnaden på resultaten mellan single- och multicore. Vid generell användning av multicore höjs prestandan markant i flertrådade applikationer. Figur 9: Total summering av resultaten 10
3 Slutsatser Vi tyckte själva att experimentet gick som planerat. Programmet som vi använde som mätverktyg fungerade på ett tillfredsställande sätt och vi kunde få ut bra siffor och diagram. Det program vi skulle använda oss av tog lång tid att installera i Linux då våra kunskaper är här är begränsade. Windows 8.1 tog också lång tid då det var många uppdateringar som skulle genomföras innan vi kunde komma igång. Installationen av testprogrammet gick däremot smidigt i Windows. På grund av detta hann vi bara med att göra tre tester för vardera operativsystem. Här ställer vi oss frågan om tre försök är tillräckligt. Initiellt sett så tror vi det. Däremot kan man ställa sig frågande till om vi hade fått ut ett mer rättvist resultat om vi gjort testet än fler gånger? Som vi trodde hade Ubuntu med sin monolitiska kärna något bättre prestanda. I enskild desktop-miljö tycker vi att skillnaden inte är tillräckligt stor för att just det ska fälla avgörande vilket operativsystem man väljer att använda. Om vi däremot hade gjort samma tester i en server-version och fått samma resultat bör dessa siffror tas i beaktning vid större server-miljöer. Vi hade gärna gjort detta test med flera olika Linux-distributioner. Det hade då varit intressant att se vad som skiljer sig mellan de olika inriktningar, exempelvis server, multimedia eller laptop. Det hade även varit spännande att testa Windows 7 då detta operativsystem fortfarande används flitigt och anses av många vara bättre än Windows 8. 11
Litteraturförteckning [1] Distrowatch, Popularitet, 2013. [Online]. Available: http://distrowatch. com/index.php?dataspan=2013 [2] mnsgroup. (2012) Mac, windows and linux: The pros and cons of each operating system. [Online]. Available: http://www.mnsgroup.com/blog/ mac-windows-and-linux-the-pros-and-cons-of-each-operating-system/ [3] B. Esslinger. (2010) The cryptool script: Cryptography, mathematics, and more. [Online]. Available: https://web.archive.org/web/20110722183013/ http://www.cryptool.org/download/cryptoolscript-en.pdf [4] E. Aybar. Sobel edge-detection method for matlab. [Online]. Available: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.101. 9053&rep=rep1&type=pdf [5] G. E. Blelloch. (2013) Introduction to data compression. [Online]. Available: http://www.cs.cmu.edu/~guyb/realworld/compression.pdf [6] R. L. R. C. S. Thomas H. Cormen, Charles E. Leiserson. (2009) Introduction to algorithms. [Online]. Available: http://tberg.dk/books/introduction_ to_algorithms_3rd_edition.pdf [7] M. Trenti. (2008) Gravitational n-body simulations. [Online]. Available: http://arxiv.org/pdf/0806.3950.pdf [8] T. Nikodym. (2010) Ray tracing algorithm for interactive applications. [Online]. Available: https://dip.felk.cvut.cz/browse/pdfcache/nikodtom_ 2010bach.pdf [9] M. G. M. Zohair Al-Ameen, Ghazali Sulong. (2012) A comprehensive study on fast image deblurring techniques. [Online]. Available: http: //www.sersc.org/journals/ijast/vol44/1.pdf 12