dc.contributor.author |
Μαρινάκης, Θεόδωρος
|
el |
dc.contributor.author |
Marinakis, Theodoros
|
en |
dc.date.accessioned |
2016-07-25T10:59:11Z |
|
dc.date.available |
2016-07-25T10:59:11Z |
|
dc.date.issued |
2016-07-25 |
|
dc.identifier.uri |
https://dspace.lib.ntua.gr/xmlui/handle/123456789/43257 |
|
dc.identifier.uri |
http://dx.doi.org/10.26240/heal.ntua.13233 |
|
dc.rights |
Default License |
|
dc.subject |
Χρονοδρομολόγηση |
el |
dc.subject |
Ανταγωνισμός |
en |
dc.subject |
Μοιραζόμενοι πόροι |
el |
dc.subject |
Πολυπύρηνες αρχιτεκτονικές |
el |
dc.subject |
Δικαιοσύνη |
el |
dc.subject |
Scheduling |
en |
dc.subject |
Contention |
en |
dc.subject |
Shared resources |
en |
dc.subject |
Chip multiprocessor |
en |
dc.subject |
Fairness |
en |
dc.title |
Τεχνικές χρονοδρομολόγησης εφαρμογών για δίκαιη κατανομή πόρων σε πολυπύρηνες αρχιτεκτονικές |
el |
heal.type |
bachelorThesis |
|
heal.classification |
Scheduling--Computer programs |
el |
heal.classificationURI |
http://id.loc.gov/authorities/subjects/sh2008111220 |
|
heal.language |
el |
|
heal.language |
en |
|
heal.access |
free |
|
heal.recordProvider |
ntua |
el |
heal.publicationDate |
2016-07-01 |
|
heal.abstract |
Η χρονοδρομολόγηση είναι μια διαδικασία, η οποία αφορά το διαμοιρασμό πόρων σε εργασίες ανά τακτά χρονικά διαστήματα, με σκοπό τη βελτιστοποίηση ορισμένων στόχων. Ένας τομέας, στον οποίο χρησιμοποιείται κυρίως, είναι τα υπολογιστικά συστήματα. Όσον αφορά μονοπύρηνες αρχιτεκτονικές έχουν αναπτυχθεί τεχνικές χρονοδρομολόγησης, οι οποίες ανταπεξέρχονται αποδοτικά στο διαμοιρασμό του χρόνου του πυρήνα ανάμεσα στις διεργασίες του συστήματος. Η ανάγκη όμως για εξυπηρέτηση μεγαλύτερου φόρτου εργασίας οδήγησε τους κατασκευαστές στη δημιουργία πολυπύρηνων αρχιτεκτονικών ενσωματώνοντας πολλούς πυρήνες μέσα σε ένα ολοκληρωμένο κύκλωμα (CMP). Αντίθετα με τα συμμετρικά πολυπύρηνα συστήματα (SMP), οι πυρήνες των CMPs δεν θεωρούνται ανεξάρτητες μονάδες εφόσον μοιράζονται στοιχεία της αρχιτεκτονικής, όπως το τελευταίο επίπεδο κρυφής μνήνης και το δίαυλο μνήμης.
Στα πολυπύρηνα συστήματα αυτά (CMP) ενσωματώθηκαν, αυτούσιες ή με λίγες αλλαγές, οι τεχνικές χρονοδρομολόγησης, που είχαν υλοποιηθεί στις συμμετρικές (SMP) αρχιτεκτονικές. Εκτελώντας προγράμματα παράλληλα σε πυρήνες που μοιράζονται στοιχεία υπάρχει πιθανότητα να παρατηρήσουμε μείωση στην απόδοσή τους λόγω ανταγωνισμού μεταξύ τους. Υιοθετώντας τεχνικές που δε λαμβάνουν υπόψιν τους τον ανταγωνισμό αυτόν, θεωρώντας τους πυρήνες απομονωμένες μονάδες που δεν μοιράζονται στοιχεία, οδηγούμαστε σε αποτελέσματα που δεν πληρούν τις αρχές της χρονοδρομολόγησης. Μερικά προβλήματα που δημιουργούνται είναι τα εξής: πολύ χαμηλή απόδοση των εφαρμογών, άνισος διαμοιρασμός των πυρήνων μεταξύ τους και συνεπώς απρόβλεπτη και ασταθής συμπεριφορά του συστήματος.
Ο σκοπός αυτής της διπλωματικής είναι να παρουσιάσουμε τεχνικές που βελτιώνουν την άνιση κατανομή των πόρων, λαμβάνοντας υπόψιν την διαμάχη των διεργασιών για τα μοιραζόμενα στοιχεία του τσιπ και τις καταστροφικές συνέπειες που αυτή αποφέρει στην αξιοπιστία του συστήματος. Επικεντρωνόμαστε σε τεχνικές που προσφέρουν δικαιοσύνη στις εφαρμογές με τους παρακάτω τρόπους. Στην πρώτη προσέγγιση σχεδιάζουμε έναν χρονοδρομολογητή που προταιρεότητα του είναι να αποφύγει τον ανταγωνισμό των διεργασιών, βασισμένοι σε ένα σχήμα ταξινόμησης και σε ένα μοντέλο που προβλέπει πως οι διάφορες κατηγορίες διεργασιών αλληλεπιδρούν. Η επόμενη μέθοδος προσπαθεί να διαχειριστεί τον ανταγωνισμό των διεργασιών. Λαμβάνει υπόψιν τη μείωση της απόδοσης των διεργασιών και τις ευνοεί αναλόγως. Αυτο το επιτυγχάνει δίνοντας ευκαιρία συχνότερης εκτέλεσης σε εκείνες που υποφέρουν περισσότερο, σε βάρος εκείνων που εκτελούνται με υψηλότερη απόδοση. Τέλος επεκτείναμε την δεύτερη τεχνική μας, έτσι ώστε να αποφεύγει μέρος του ανταγωνισμού και να διαχειρίζεται το υπόλοιπο.
Δοκιμάζοντας τις τεχνικές μας σε μια ποικιλία πειραμάτων και συγκρίνοντας τα αποτελέσματα με χρονοδρομολογητή που χρησιμοποιείται σε εμπορικά πολυπύρηνα συστήματα (Linux scheduler), καταλήξαμε στο εξής συμπέρασμα. Οι προτεινόμενες εναλλακτικές είναι ικανές να βελτιώσουν σε μεγάλο βαθμό την άνιση κατανομή των πόρων και να προσφέρουν αξιοπιστία στην απόδοση του συστήματος. |
el |
heal.abstract |
Scheduling is a decision -making process that deals with the assignment of resources to tasks over given periods, aiming to optimize one or more objectives. Responsible for efficient distribution of the CPU time among the processes, scheduler has become an essential part of computer systems. OS schedulers for single processor architectures have become so optimized that need for further improvements dramatically subsided. The scheduling problem was considered solved until the arrival of chip multiprocessors (CMP).
Driven by the critical problems of transistor shrinking, heat generation, power consumption and poor performance improvement, manufacturers abandoned single core architectures and turned to chips with multiple cooler-
running, energy-efficient processing cores. In order to provide a cost -effective solution, they integrated the cores
into a single circuit die, sharing architectural components, such as the last level cache and the memory bus.
Scheduling policies developed for symmetric multiprocessors (SMP) have been integrated without modifications into CMPs.
While applications run on neighboring cores of a CMP, they
contend with each other for the shared resources. This contention can result in great performance degradation for the applications that are concurrently executed. For this reason, treating the cores of a CMP as isolated and independent units is a very optimistic abstraction and
can cause great problems to the objectives a scheduler tries to optimize. First and foremost, it cannot be
assured that applications would make adequate progress. In addition, it is observed that resources cannot be fairly distributed among the applications of the system. As a result, poor fairness enforcement can
lead to
unstable and unpredictable performance
of the system.
In this paper, we develop 3 scheduling techniques aiming to improve the unequal sharing of
the resources, taking into consideration the destructive effects of applications interference, when
contending for the shared resources. On our first
approach, we attempt to
avoid pairing applications
that
interfere destructively. We build a contention
-
aware scheduler, based on a
classification
scheme and an interference prediction
model. On the next approach, we
manage the results of the
interference,
boosting the performance of applications based on their IPC reduction. Applications
that are heavily impacted
have the opportunity to increase their running time at the expense of the
well
-
performed. Finally, we extend our
previous technique, aiming to av
oid a part of the contention
and manage the rest of it
.
Evaluating our proposed scheduling policies on a variety of workloads and comparing them
with the Linux scheduler, we come to the following conclusions. All of them manage to overcome
the problem of
unfair distribution, creating an environment where Quality of Service (QoS)
guarantees are possible to be provided and Service Level of Agreements (SLAs) can be enforced. |
en |
heal.advisorName |
Κοζύρης, Νεκτάριος |
el |
heal.committeeMemberName |
Κοζύρης, Νεκτάριος |
el |
heal.committeeMemberName |
Γκούμας, Γεώργιος |
el |
heal.committeeMemberName |
Τσουμάκος, Δημήτριος |
el |
heal.academicPublisher |
Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών |
el |
heal.academicPublisherID |
ntua |
|
heal.numberOfPages |
151 σ. |
|
heal.fullTextAvailability |
true |
|