System Support for Distributed Energy Management in Modular Operating Systems
Total Page:16
File Type:pdf, Size:1020Kb
' $ System Support for Distributed Energy Management in Modular Operating Systems zur Erlangung des akademischen Grades eines Doktors der Ingenieurwissenschaften von der Fakultat¨ fur¨ Informatik des Karlsruher Instituts fur¨ Technologie genehmigte Dissertation von Jan Stoess aus Karlsruhe Tag der mundlichen¨ Prufung¨ : 5. Februar 2010 Hauptreferent: Prof. Dr. Frank Bellosa Karlsruher Institut fur¨ Technologie Korreferent: Prof. Dr. Gernot Heiser University of New South Wales &KIT – Universitat¨ des Landes Baden-Wurttemberg¨ und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu % ii Abstract Energy management has become a challenge for modern computing environments that needs to be addressed by all involved components, including the operating system. At the same time, the trend in operating-system design is moving away from monolithic to modular structures; modern operating systems often come as a small kernel and a set of unprivileged service modules atop. Their custom operating-system abstractions render them extensible; their integrated virtualiza- tion capabilities retain compatibility to existing applications. Nonetheless, most existing energy-management schemes are tailored to monolithic operating sys- tems, where software and hardware can be directly controlled to meet thermal or energy constraints. A modern operating system, however, consists of multiple components, and direct or centralized energy management is unfeasible. This thesis proposes a novel approach for managing energy in modular opera- ting systems. Our approach strives to enable energy awareness and energy mana- gement if the resource-management subsystem is distributed and scattered among operating-system modules rather than being centralized and monolithic. There are four key achievements: a model for modularization-aware energy management; the support for exposed and distributed energy accounting and allocation; the use of different energy-management interaction protocols; and, finally, the support for virtualization of energy effects. We have implemented a prototype of our approach for a modular, virtualization- capable microkernel operating system. Our prototype supports processor and disk energy management, at the level of physical and virtual devices. To that end, it features distributed and exposed mechanisms for accounting and allocation of processor and disk energy both to complete virtual machines and to individual virtualized applications. Experiments show that the prototype accurately accounts and allocates processor and disk energy consumption to different notions of appli- cations at runtime. Our mechanisms enable extensible and easily adaptable energy policies. Overheads for processor energy management may be dramatic for micro- benchmarks, but percolate to application level at a more moderate level. Over- heads for combined processor and disk management are limited to an increase in processor utilization. Our experiments also reveal that there is an interdependen- cy between accuracy and performance of energy-management mechanisms; using different management protocols, our prototype enables developers of energy poli- cies to choose themselves the particular point in the trade-off space. iii iv Zusammenfassung Uber¨ Jahrzehnte hinweg waren Leistung und Leistungssteigerung die bestimmen- den Ziele bei der Entwicklung von Rechensystemen. In jungster¨ Zeit hat sich allerdings eine weitere Herausforderung dazugesellt: die Energieeffizienz. Der Wunsch nach energieeffizienteren Computern hat zwei Hauptursachen: Erstens erfreuen sich mobile Rechensysteme wie tragbare Telefone oder andere Klein- computer einer zunehmenden Verbreitung, was Computerhersteller vor die Her- ausforderung stellt, leistungsfahige¨ Computergerate¨ mit begrenztem Energievor- rat zu entwickeln. Zweitens hat die Computerindustrie insgesamt mit einem stetig steigenden Energiehunger der Rechensysteme (insbesondere der Serversysteme) und einer damit verbundenen Kostenexplosion zu kampfen.¨ Der wachsende Ener- giehunger ist vor allem auf die gesteigerten Energiedichten in modernen Rechne- rarchitekturen zuruckzuf¨ uhren;¨ der dadurch entstehende Bedarf an aufwandiger¨ Kuhlung¨ vergroßert¨ den Energiebedarf entsprechend zusatzlich.¨ Nicht uberraschend¨ herrscht daher mittlerweile ein breiter Konses in Forschung und Technik, dass Energieeffizienz ein Hauptkriterium bei der Entwicklung von Computeranlagen sein sollte. Im Bereich der mobilen Computergerate¨ steht dabei naturgemaߨ der Wunsch im Vordergrund, moglichst¨ lange Batterielaufzeiten zu ermoglichen.¨ Bei Standrechnern und Serversystemen wiederum stellt die Reduk- tion der Energiekosten das Hauptziel dar. Das allgemeingehaltene Ziel der Ener- gieeffizienz zergliedert sich somit in mehrere Teilziele, von denen die folgenden vier als maßgeblich bezeichnet werden konnen:¨ erstens sollten Computersysteme naturlich¨ weniger Leistung aufnehmen, sowohl um die Nutzbarkeit der Mobil- gerate¨ zu erhohen¨ als auch um Energiekosten und deren okologische¨ Auswirkun- gen zu reduzieren; daruber¨ hinaus sollten zweitens Computersysteme aber auch moglichst¨ die Betriebstemperaturen gering halten, weil sich dadurch Bedarf und Kosten der Kuhlung¨ in Grenzen halten lassen, was erneut den Energieverbrauch der Rechenanlage verringert. Drittens sollten Computersysteme nach Moglichkeit¨ das Auftreten von Leistungs- und Temperaturspitzen vermeiden, weil Kuhlung¨ und Elektizitatsversorgung¨ von Computern oftmals nach Maximalbedarf und Ma- ximaltemperaturen entworfen werden; jedes Vermeiden von Spitzenbedarf erlaubt daher eine bessere Anpassung der Strom- und Kuhlinfrastruktur¨ an tatsachliche,¨ durchschnittliche Gegebenheiten. Viertens schließlich sollten Computersysteme eine anwendungsgetriebene Form des Energiemanagements betreiben, da nur der v vi ZUSAMMENFASSUNG Miteinbezug von Software und Anwendungen die Ziele der Energieeffizienz mit anderen, ebenso wichtigen Anforderungen an Rechenanlagen wie Dienstgute,¨ Be- nutzerfairness, oder bedarfsgerechter Kostenabrechnung in Einklang zu bringen erlaubt. Traditionell hat man sich dem Ziel energieeffizienter Computer meist auf der Ebene der Hardware und Anlagen gewidmet, beispielsweise durch energieeffizi- ente Rechnerarchitekturen oder durch thermodynamisch effizientere Kuhlanlagen.¨ Tatsachlich¨ sollte dieses Ziel aber auf allen Ebenen der Rechenanlagen ange- gangen werden; insbesondere das Betriebssystem tragt¨ hierbei eine Schlussel-¨ rolle, da diesem die Laufzeitkontrolle sowohl der Hardware als auch der Soft- ware untersteht. Ein betriebsystemseitiges Energiemanagement kann somit dafur¨ sorgen, dass das Erreichen von Energieeffienz global und dynamisch erfolgt, al- so alle Hardwaregerate¨ und Anwendungen umfasst und zur Laufzeit stattfindet. In der Tat hat sich eine Vielzahl von wissenschaftlichen Untersuchungen dem Problem des betriebssystemseitigen Energiemanagements verschrieben. Generell stutzt¨ man sich hier zumeist auf Laufzeitmechanismen zur Uberwachung¨ und Steuerung sowohl der Gerate¨ und ihrer Energiezustande,¨ als auch der Anwendun- gen und deren Auswirkungen auf den Energieverbrauch. Mit Hilfe solcher Me- chanismen versucht man sodann, Leistungs- und Nutzbarkeitsanforderungen mit Energiezielen unter einen Hut zu bringen; ublicherweise¨ bedeutet das entweder, ein gegebenes Mass an Rechenleistung und Dienstgute¨ zur Verfugung¨ zustellen, das aber mit moglichst¨ wenig Energie, mit moglichst¨ geringer Temperatur und mit moglichst¨ wenig Energie- und Temperaturspitzen. Oder man konzentriert sich um- gekehrt darauf, im Rechensystem gewisse Auflagen bezuglich¨ Energieverbrauch oder Temperatur nicht zu uberschreiten,¨ dabei aber ein Maximum an Leistung und Dienstgute¨ herauszuholen. Neben der gesteigerten Wichtigkeit des betriebssystemseitigen Energiemana- gements lasst¨ sich noch ein zweiter wichtiger Trend in der Betriebsystemfor- schung und -praxis beobachten: der Trend zu modularen Betriebssystemstruk- turen. Der traditionelle Betriebssystemaufbau unterscheidet lediglich zwischen Nutzer- und Kernbereich: Anwendungen laufen im Nutzerbereich, wahrend¨ die gesamte Funktionalitat¨ des Betriebssystems monolithisch im privilegierten Kern- bereich verbleibt. Waren fruhe¨ Betriebssysteme verhaltnism¨ aßig¨ klein und ber- schrankt¨ in ihren Funktionen, so sind mit zunehmender Leistungsfahigkeit¨ der Rechenanlagen auch Große¨ und Komplexitat¨ des Betriebssystems betrachtlich¨ gewachsen: ein moderner Betriebssystemkern wie Windows or Linux hat einen Quellcodeumfang von Millionen von Zeilen Code und umfasst eine unuberschau-¨ bare Anzahl von Funktionen und Diensten. Die wachsende Anzahl von Anwen- dungsszenarien, welcher sich moderne Betriebsysteme ausgesetzt sehen — so wird beispielsweise Linux heutzutage sowohl in mobilen Kleinstgeraten¨ als auch in Rechenzentren eingesetzt —, hat ihren Teil zur wachsenden Komplexitat¨ beige- vi vii tragen. Die Kombination aus monolitischem Betriebssystemaufbau einerseits und wachsender Betriebssystemkomplexitat¨ anderseits fuhrt¨ jedoch zu betrachtlichen¨ strukturellen Problemen. Als wichtigste Probleme sind die starken Einschrankung-¨ en hinsichtlich Flexibilitat¨ und Ausfallsicherheit zu nennen, welche sich aus der gemeinsamen Unterbringung aller Betriebssystemfunktionen in einem einzigen privilegierten Kern und aus dem Fehlen von Modulgrenzen innerhalb dieses Kerns ergeben. Zur Behebung der Probleme monolitschen Betriebssystemaufbaus hat die For- schung eine Vielzahl unterschiedlicher Losungsans¨ atze¨ beigetragen; die vorlie- gende Arbeit befasst