Ταυτόχρονη Διαχείριση Διεργασιών σε Ενσωματωμένα Συστήματα Εφαρμόσιμη σε Οδηγό Πολυμεσικών Εφαρμογών

Σχετικά έγγραφα
Ελαχιστοποίηση της Καταναλισκόμενης Ενέργειας σε Φορητές Συσκευές

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα

Βασίλης ΒλάχοςΕξεταστική Επιτροπή

«ΑΛΓΟΡΙΘΜΟΙ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΓΙΑ ΤΗΝ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΤΗΣ ΚΑΤΑΝΑΛΙΣΚΟΜΕΝΗΣ ΕΝΕΡΓΕΙΑΣ ΣΕ ΦΟΡΗΤΕΣ ΣΥΣΚΕΥΕΣ»

Διαφορές single-processor αρχιτεκτονικών και SoCs

Δομημένος Προγραμματισμός

Αρχιτεκτονικές Υπολογιστών

Επιτεύγµατα των Λ.Σ.

Λειτουργικά Συστήματα Η/Υ

ΥΠΗΡΕΣΙΑ ΕΙΚΟΝΙΚΟΥ ΕΡΓΑΣΤΗΡΙΟΥ ΣΧΕ ΙΑΣΜΟΥ

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Εισαγωγικά & Βασικές Έννοιες

ΠΡΟΣΟΜΟΙΩΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ. Διαφάνειες από το MicroArch 35 Tutorial του Simics

Αρχιτεκτονική Υπολογιστών

ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming)

Δομές Δεδομένων και Αλγόριθμοι

Ταχύτητα, Απλότητα & Αξιοπιστία

KOIOS SUMMER INTERNSHIP NETWORKS ON CHIP (NoC)

Αρχιτεκτονική Υπολογιστών

EM 361: Παράλληλοι Υπολογισμοί

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Διαχείριση Ετερογενών Δικτύων

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Λειτουργικά Συστήματα (Λ/Σ)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Λειτουργικά Συστήματα Η/Υ

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

Παράλληλος προγραμματισμός: Σχεδίαση παράλληλων προγραμμάτων

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ

Τεχνικές για διαμοιρασμό φορτίου και μακροεντολές Broadcast - Scatter για αποδοτικές πολύ-επεξεργαστικές εφαρμογές

Πληροφορική I. "Λογισμικό (Software)" B. Φερεντίνος

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου

ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ

Orchid: Integrating Schema Mapping and ETL ICDE 2008

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

Οντοκεντρικός Προγραμματισμός

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα

Minimum Spanning Tree: Prim's Algorithm

Τηλ.: , Φαξ: Η-ταχυδροµείο: Ιστοσελίδα: Καλλιπόλεως 75, Τ.Θ , 1678 Λευκωσία, Κύπρος

Network Algorithms and Complexity Παραλληλοποίηση του αλγορίθμου του Prim. Αικατερίνη Κούκιου

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

ΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Βασικές Δομές μοντέλων Petri Nets. C.A. Petri

Προγραµµατισµός Συστηµάτων Πραγµατικού Χρόνου

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ

Λειτουργικά Συστήματα. Εισαγωγή

Δομές Δεδομένων (Data Structures)

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

Μ.Π.Σ. «ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΙΟΝΤΩΝ ΑΠΟ ΞΥΛΟ» Μάθημα: Σχεδίαση και Εφαρμογές Διαδραστικών Συστημάτων. Διδάσκοντας: Α.

Επιλογές και Κριτήρια Σχεδιασμού ΑΤΔ Ανεξαρτήτως από Γλώσσα Υλοποίησης 24/4/2012

ver Επεξεργαστές κειμένου, λογιστικών φύλλων, παρουσιάσεων Οδηγοί συσκευών (Device Drivers)

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Ανοικτά Δεδομένα. Η εμπειρία του OpenDataCloud

Αρχιτεκτονική Υπολογιστών

Simulink The MathWorks, Inc.

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής

Εισαγωγικά & Βασικές Έννοιες


σφαλμάτων Δημήτρης Νικολός, Τμήμα Μηχ. Ηλεκτρονικών Υπολογιστών και Πληροφορικής, Παν. Πατρών

Αντικειμενοστρεφής Προγραμματισμός

Διαδίκτυο των Αντικειμένων - IoT.

Μικροηλεκτρονική - VLSI

Διεργασίες και Νήματα (2/2)

Βασικά Στοιχεία της Java

Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Λειτουργικά Συστήματα Η/Υ

Η Oracle μετασχηματίζει την αγορά λύσεων υποδομής Cloud

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Δρομολόγηση στο Internet (II) Αλγόριθμοι Distance Vector (Bellman) Αλγόριθμοι Link State (Dijkstra)

Παράλληλη Επεξεργασία

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy

Ειδικό Τεύχος : Linux και Ηχος. Η Υποδοµή

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών. Μανόλης Γ.Η.

Journal of the Graduate School of the Chinese Academy of Sciences. Application Dependent Software. Standard Application Components.

All-Optical Packet Switching

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Αρχές Προγραμματισμού Υπολογιστών

Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός;

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. 4o Εργαστήριο Σ.Α.Ε

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Transcript:

Ταυτόχρονη Διαχείριση Διεργασιών σε Ενσωματωμένα Συστήματα Εφαρμόσιμη σε Οδηγό Πολυμεσικών Εφαρμογών Εξεταστική Επιτροπή Καθηγητής κ. Κ. Γκούτης Καθηγητής κ. Δ. Σερπάνος Αναπ. Καθηγητής κ. Σ. Κουμπιάς Βασίλης Βλάχος ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΣΥΣΤΗΜΑΤΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ» ΠΜΣ-ΟΣΥΛ 1

Σχεδιασμός ενσωματωμένων συστημάτων Σκοπός της έρευνας μας Ανάπτυξη μεθοδολογίας για την σχεδίαση ενσωματωμένων συστημάτων τα οποία εκτελούν δυναμικές και ταυτόχρονες (concurrent) εφαρμογές πραγματικού χρόνου Επίλυση των προβλημάτων που εμφανίζονται σε ενσωματωμένα συστήματα 2

Σχεδιασμός ενσωματωμένων συστημάτων Υποστηριζόμενες λειτουργίες σήμερα Αναπαραγωγή μουσικής Ραδιόφωνο Παιχνίδια WAP Υποστηριζόμενες λειτουργίες στο μέλλον Αναπαραγωγή video Video conference Java εφαρμογές GPRS 3

Σχεδιασμός ενσωματωμένων συστημάτων Philips Nexperia Διαθέσιμα στην εποχή των δισεκατομμυρίων τρανζίστορ CMP: Chip Multi Processor SUN MAJC IBM Power4 MIT M-machine Stanford Hydra Philips Nexperia Improvsys Jazzu 4

Σχεδιασμός ενσωματωμένων συστημάτων Live from FZ-TV Τα πολυεπεξεργαστικά συστήματα χρησιμοποιούνται ευρύτατα ως servers και σε επιστημονικές εφαρμογές, άλλα όχι σε ενσωματωμένα συστήματα γιατί Δεν υπάρχουν αποτελεσματικοί compilers Η διαδικασία αυτή όταν γίνεται χειροκίνητα απαιτεί πολύ μεγάλη προσπάθεια 5

Σχεδιασμός ενσωματωμένων συστημάτων speed n power n3 energy n2 6

Σχεδιασμός ενσωματωμένων συστημάτων Μεγαλύτερη αυτονομία των ενσωματωμένων συστημάτων μπορεί να επιτευχθεί με Μείωση του μεγέθους των τρανζίστορ Βελτίωση των χρησιμοποιούμενων υλικών στα ολοκληρωμένα Βελτίωση στην τεχνολογία κατασκευής μπαταριών 7

Σχεδιασμός ενσωματωμένων συστημάτων Thread Node1 Thread Node2 ARM Vdd=3.0V 20nJ/instr. 1TU/instr. Thread Noden Energy TimeUnits 110 M TUs 110M instr. 2200 mj 8

Σχεδιασμός ενσωματωμένων συστημάτων TN1 TN2 Vdd=1.5V 5nJ/instr. 2TUs/instr. More TimeUnits 80 M TUs 180 M TUs TNn Vdd=3.0V 20nJ/instr. 1TU/instr. Tradeoff More energy 40M instr. 80M TU 200 mj 70M instr. 70M TU 1600 mj 1400 mj 90M instr. 180M TUs 450 mj 20M instr. 20M Tus 400 mj 850 mj 9

Σχεδιασμός ενσωματωμένων συστημάτων void BIFSDecoder :: ParseInsertionCommand () { int nid; MediaObject *pnode; if (!m_pscene) throw BifsException (BIFX_NODEID_NOT_FOUND);. switch (ParseInt (2, "type")) { case 0: nid = ParseInt (GetNodeIDbits (), "NodeID"); case 3: ParseRoute (m_pscene); Προσέγγιση Άσπρου Κουτιού Υπερβολικά λεπτομερές Όλες οι αποφάσεις πρέπει να ληφθούν κατά την διάρκεια του σχεδιασμού 10

Delivery Layer Σχεδιασμός ενσωματωμένων συστημάτων Data Buffer Data Channel Buffer Data Channel Buffer Data Channel Buffer Channel OD Wavelet BIFS Buffer Buffer Προσέγγιση Μαύρου Κουτιού Εύκολη διαχείριση Ανεπαρκείς πληροφορίες προκειμένου να ληφθούν οι κατάλληλες σχεδιαστικές αποφάσεις 11

Σχεδιασμός ενσωματωμένων συστημάτων Compression layer Synchronization layer TaskA TaskC TaskB TaskD TaskE P( ) V( ) Data dependency 12

C/C++ specification of dynamic concurrent system Extraction of the gray-box model Memory architecture Task-level DTSE Real-time partly constraints resolved Concurrency improving transformations Static task scheduling cost cost cost task1 task2 time time Run-time scheduler processor1 processor2 processor3 platform Real-time constraints task3 time platform Real-time constraints partly resolved fully resolved time 13

Καμπύλες Pareto Cost X: Non-optimal points x timing bottleneck move to higher cost processor/memory solution x x x x x scheduling alternatives TB6 TB5 TB4 TB3 TB2 TB1 Time Budget 14

Scheduling σε ενσωματωμένα συστήματα πραγματικού χρόνου Στατικό scheduling: 1 compiling 2 3 1 3 2 4 4 Δυναμικό scheduling: new task 4 1 3 run time 1 3 4 2 2 15

Γιατί χρειάζεται δυναμικό scheduling Cost operation point TB6 TB5 TB4 TB3 TB2 TB1 Time Budget Ο στατικός scheduler είναι υποχρεωμένος να επιλέξει ένα μόνο σημείο λειτουργίας Δεν διαθέτει ευελιξία Δεν είναι σε θέση να ανταποκριθεί σε μεταβαλλόμενα περιβάλλοντα όπου εμφανίζεται μη ντετερμινισμός, δυναμική δημιουργία/ διαγραφή αντικειμένων Πρέπει πάντα να επιλέγει την χειρότερη δυνατή περίπτωση 16

Γιατί χρειάζεται στατικό scheduling Cost operation point TB6 TB5 TB4 TB3 TB2 TB1 Time Budget Ο δυναμικός scheduler πρέπει να είναι ταχύτατος Απαιτείται ελάχιστη υπολογιστική πολυπλοκότητα κατά την διάρκεια του run-time O δυναμικός scheduler δεν είναι σε θέση να επιτύχει βελτιστοποιήσεις των scheduling σχημάτων Δεν επιτρέπει καθόλου προβλεψημότητα 17

Παράδειγμα δυναμικού scheduling Cost Task 1 Task 2 Cost cost increase 1 80 80 100 Time Budget Time Budget + Cost Task 3 cost decrease and 2 > 1 20 40 Time Budget 18

MTG μοντέλο: Συνδυασμός Petri-Net και CDFG μοντέλου Thread Task MTG Thread Thread Frame Thread Thread Frame TN Thread: ένα σύνολο από thread frames. Είναι ένα ανεξάρτητο κομμάτι κώδικα το οποίο εκτελεί μια TN : thread node συγκεκριμένη λειτουργία. TN TN TN Thread frame: ένα σύνολο από thread nodes. TN TN Event Thread Thread Frame Thread Thread Frame TN CDFG TN Thread node: το μικρότερο τμήμα κώδικα που μπορεί να scheduled από τον design-time scheduler. Αποτελείται από κόμβους και ακμές ενός CDFG γράφου 19

Συνδυασμός στατικού και δυναμικού scheduling thread 1 thread 2 2 1 A B 3 Static Scheduling Static Scheduling 1 P ro c 1 Dynamic 3 Scheduling 2 P ro c 2 1 P ro c 1 P ro c 1 2 3 P ro c 2 P ro c 2 B P ro c 1 B P ro c 2. B P ro c 1 P ro c 2 A 1 3 2 A A. Στατικό. scheduling:πραγματοποιείται κατά την διάρκεια.του compilation ερευνώντας όλες τις δυνατές βελτιστοποιήσεις Δυναμικό scheduling: πραγματοποιείται κατά την διάρκεια του.. run time, παρέχοντας ευελιξία και δυναμικότητα με χαμηλό κόστος 20

Scheduling σε ενσωματωμένα συστήματα πραγματικού χρόνου Γράφος διεργασιών Precedence constraint Χρόνος εκτέλεσης Κατανάλωση ενέργειας Πλατφόρμα Αριθμός επεξεργαστών 21

Scheduling σε ενσωματωμένα συστήματα πραγματικού χρόνου P2 P1 P3 task graph processors Προβλήματα που πρέπει να επιλυθούν: Ποίος κόμβος? Πότε θα ανατεθεί? Σε ποιόν επεξεργαστή? Στόχος: Ελαχιστοποίηση του ενεργειακού κόστους εντός των υφιστάμενων χρονικών περιορισμών 22

Αλγόριθμοι που έχουν χρησιμοποιηθεί στο design-time scheduling Γενετικοί αλγόριθμοι Αλγόριθμοι βασισμένοι σε Μεικτό Ακέραιο Γραμμικό Προγραμματισμό (MILP) Ευρηστικοί Αλγόριθμοι 23

Σύγκριση μεταξύ ευρηστικού αλγορίθμου και MILP 24

MILP αλγόριθμοι Πλεονεκτήματα Ικανοποιητικός αριθμός Pareto σημείων Ικανοποιητικό εύρος Pareto καμπύλης Εξαγωγή βέλτιστων σημείων Pareto Ντετερμινιστικοί Μειονεκτήματα Μεγάλος χρόνος εξαγωγής αποτελεσμάτων, λόγω αναζήτησης βέλτιστων σημείων 25

Γενετικοί αλγόριθμοι Οι γενετικοί αλγόριθμοι χρησιμοποιούν Μετάλλαξη Διασταύρωση Αναπαραγωγή Για να βελτιώσουν την υγεία των χρωμοσωμάτων και να προσεγγίσουν εγγύτερα την λύση του προβλήματος 26

Σύγκριση μεταξύ γενετικού αλγορίθμου και ευρηστικού αλγορίθμου 27 Πλατφόρμα 4 επεξεργαστών. Σύγκριση ευρηστικού αλγορίθμου γενετικού αλγορίθμου

Γενετικοί αλγόριθμοι Πλεονεκτήματα Ικανοποιητικός αριθμός σημείων Pareto Ικανοποιητικό εύρος καμπύλης Pareto Λογικός χρόνος εξαγωγής των αποτελεσμάτων Μειονεκτήματα Μη ντετερμινιστικοί δηλαδή τα αποτελέσματα διαφέρουν ακόμα και με την ίδια είσοδο 28

Ευρηστικός αλγόριθμος Πλεονεκτήματα Ταχύτατη εξαγωγή αποτελεσμάτων Ντετερμινιστικός Σχεδόν βέλτιστα σημεία Pareto Μειονεκτήματα Μη ικανοποιητικός αριθμός σημείων Pareto Μη ικανοποιητικό εύρος καμπύλης Pareto 29

Ευρηστικός Αλγόριθμος Design-time Scheduling Κριτήρια Βάρος (Weight): ο χρόνος εκτέλεσης στον χαμηλής ταχύτητας επεξεργαστή Φορτίο (Load): το άθροισμα των βαρών των εξαρτώμενων κόμβων Επιλογή του κατάλληλου υποψήφιου κόμβου Όταν ο κόμβος έχει το μέγιστο βάρος και το μέγιστο φορτίο Ένας κόμβος έχει το μέγιστο βάρος και ο άλλος έχει το μέγιστο φορτίο W = 10 L =6 W = 15 W=6 L = 18 L =0 W=2 L =6 30

31 Πλατφόρμα 4 επεξεργαστών. Σύγκριση στρατηγικών φορτίου-βάρους

32 Πλατφόρμα 6 επεξεργαστών. Σύγκριση στρατηγικών φορτίου-βάρους.

33 Πλατφόρμα 8 επεξεργαστών. Σύγκριση στρατηγικών φορτίου-βάρους

34 Πλατφόρμα 4 επεξεργαστών. Σύγκριση μεταξύ αρχικού αλγορίθμου και επεκταμένου αλγορίθμου. Πρώτη φάση.

35 Πλατφόρμα 6 επεξεργαστών. Σύγκριση μεταξύ αρχικού αλγορίθμου και επεκταμένου αλγορίθμου. Πρώτη φάση.

36 Πλατφόρμα 8 επεξεργαστών. Σύγκριση μεταξύ αρχικού αλγορίθμου και επεκταμένου αλγορίθμου. Πρώτη φάση.

Ψευδοκώδικας αρχικού ευρηστικού αλγορίθμου for (int i=0;i<number_of_processor_in_the_platform;i++) { // processor[0] is the fastest and highest Vdd processor if processor[i]==free { assign_node_to_the_processor(); break; } } else find_the_earliest_finishing_processor(); 37

Ψευδοκώδικας του επεκταμένου αλγόριθμου με την προσθήκη του «ευνοούμενου» επεξεργαστή. for (int i=0;i<number_of_processor_in_the_platform;i++) { // processor[0] is the fastest and highest Vdd // processor if processor[i]==free { assign_node_to_the_processor(); if processor[i]==preferred_processor break; } } else find_the_earliest_finishing_processor(); 38

39 Πλατφόρμα 4 επεξεργαστών. Σύγκριση μεταξύ αρχικού αλγορίθμου και επεκταμένου αλγορίθμου. Δεύτερη φάση

40 Πλατφόρμα 6 επεξεργαστών. Σύγκριση μεταξύ αρχικού αλγορίθμου και επεκταμένου αλγορίθμου. Δεύτερη φάση

41 Πλατφόρμα 8 επεξεργαστών. Σύγκριση μεταξύ αρχικού αλγορίθμου και επεκταμένου αλγορίθμου. Δεύτερη φάση

Ψευδοκώδικας του επεκταμένου αλγόριθμου με την προσθήκη του «ευνοούμενου» επεξεργαστή. for (int i=0;i<number_of_processor_in_the_platform;i++) { // processor[0] is the fastest and highest Vdd processor if processor[i]==free { assign_node_to_the_processor(); if processor[i]>=preferred_processor break; } } else find_the_earliest_finishing_processor(); 42

43 Πλατφόρμα 4 επεξεργαστών. Σύγκριση μεταξύ αρχικού αλγορίθμου και επεκταμένου αλγορίθμου, πλήρως βελτιστοποιημένου.

44 Πλατφόρμα 6 επεξεργαστών. Σύγκριση μεταξύ αρχικού αλγορίθμου και επεκταμένου αλγορίθμου, πλήρως βελτιστοποιημένου.

45 Πλατφόρμα 8 επεξεργαστών. Σύγκριση μεταξύ αρχικού αλγορίθμου και επεκταμένου αλγορίθμου, πλήρως βελτιστοποιημένου.

46 Πλατφόρμα 4 επεξεργαστών. Οι βελτιστοποιήσεις του επεκταμένου ευρηστικού αλγορίθμου βήμα προς βήμα.

47 Πλατφόρμα 6 επεξεργαστών. Οι βελτιστοποιήσεις του επεκταμένου ευρηστικού αλγορίθμου βήμα προς βήμα.

48 Πλατφόρμα 8 επεξεργαστών. Οι βελτιστοποιήσεις του επεκταμένου ευρηστικού αλγορίθμου βήμα προς βήμα.

49 Πλατφόρμα 4 επεξεργαστών. Σύγκριση αρχικού και επεκταμένου αλγορίθμου βασιζόμενη σε πλήρως σειριακή εφαρμογή OpenGL.

50 Πλατφόρμα 6 επεξεργαστών. Σύγκριση αρχικού και επεκταμένου αλγορίθμου βασιζόμενη σε πλήρως σειριακή εφαρμογή OpenGL.

51 Πλατφόρμα 8 επεξεργαστών. Σύγκριση αρχικού και επεκταμένου αλγορίθμου βασιζόμενη σε πλήρως σειριακή εφαρμογή OpenGL.

Επεκταμένος ευρηστικός αλγόριθμος Πλεονεκτήματα Ικανοποιητικός αριθμός σημείων Pareto Ικανοποιητικός εύρος καμπύλης Pareto Σχεδόν βέλτιστα σημεία Pareto Ντετερμινιστικός Λογικός χρόνος εξαγωγής αποτελεσμάτων Μειονεκτήματα Σειριακοί γράφοι? 52

Μελλοντικές επεκτάσεις Ο ευρηστικός αλγόριθμος θα πρέπει να ενσωματώνει Κόστος επικοινωνιών Κόστος μεταφοράς δεδομένων Κόστος context switching Χρησιμοποίηση ετερογενών επεξεργαστών Επίλυση προβλημάτων με σεμαφόρους και άλλα πολύπλοκα μη ντερμινιστικά ζητήματα 53

Λειτουργικά συστήματα πραγματικού χρόνου Επιλογή του κατάλληλου λειτουργικού συστήματος πραγματικού χρόνου για Ομογενές πολυεπεξεργαστικό περιβάλλον Εφαρμογή ενός νέου αλγορίθμου scheduling Εκτέλεση πολυμεσικών εφαρμογών 54

Λειτουργικά συστήματα πραγματικού χρόνου Περίπου 100 λειτουργικά συστήματα πραγματικού χρόνου LynxOs, Blue Cat Linux, Ecos, ChorusOS, VRXT, AMX Kadak, JMI C executive, CMX-RTX, CORTEX, Intime, irmx, IRX, Jbed, MQX,ON Time RTOS-32, OnCore OS, Linux for Real Time, OS-9, OSE, PDOS, QNX Neutrino, REDICE Linux, RTLinux, Prose, Katix, ucr, Maruti, Spring, Harmony, DeltaOS, embos, ertos, ETS-RTX, EYRX, INTERGRITY, RTSecure, Nucleus Plus, RTMach, SHARCOS, Smx, SuperTask!, TxOS&TxSDK, Vx Works, RTEms, RTXC, Hurd, Hard Hat, TimeSys, Virtuoso, Embedix, ElinOS, RED-Linux, uclinux, RTAI-Linux, RTXC, psosystem3, ADEOS 55

Λειτουργικά συστήματα πραγματικού χρόνου Λειτουργικά συστήματα από τον ακαδημαϊκό χώρο Λειτουργικά συστήματα από την βιομηχανία / εμπορικά λειτουργικά συστήματα Λειτουργικά συστήματα ανοιχτού κώδικα / ελεύθερου λογισμικού 56

Λειτουργικά συστήματα πραγματικού χρόνου Η αρχιτεκτονική του συστήματος Δυνατότητες πραγματικού χρόνου Κόστος απόκτησης Διαθεσιμότητα πηγαίου κώδικα Υποστηριζόμενο υλικό Εργαλεία, λογισμικό Τεκμηρίωση Υποστήριξη 57

Λειτουργικά συστήματα πραγματικού χρόνου Λειτουργικά συστήματα από τον ακαδημαϊκό χώρο + Κόστος απόκτησης + Διαθεσιμότητα πηγαίου κώδικα + Τεκμηρίωση - Υποστηριζόμενο υλικό - Εργαλεία, λογισμικό - Υποστήριξη 58

Λειτουργικά συστήματα πραγματικού χρόνου Λειτουργικά συστήματα από την βιομηχανία + Υποστηριζόμενο υλικό + Εργαλεία, λογισμικό + Τεκμηρίωση + Υποστήριξη -Κόστος απόκτησης -Διαθεσιμότητα πηγαίου κώδικα 59

Λειτουργικά συστήματα πραγματικού χρόνου Λειτουργικά συστήματα ανοιχτού κώδικα/ ελεύθερου λογισμικού + Κόστος απόκτησης + Διαθεσιμότητα πηγαίου κώδικα + Τεκμηρίωση + Υποστήριξη - Υποστηριζόμενο υλικό - Υποστήριξη 60

Λειτουργικά συστήματα πραγματικού χρόνου OS Virtuoso Distributed Central-controlled Distributed Memory Maps Memory Pools Memory Support Communication Link Drivers Synchronization Semaphores, Events, Queues, Mailboxes, Semaphore Channels, Linked-List Channels. Stack Channels Low power Όχι Free Όχι Source Code Όχι Platforms Supported Analog Devices [SHARC ADSP2106, HammerHead SHARC ADSP-2116X, ADSP-21020] TI [TM320C6x,RMS320C4x] Win NT simulation 61

Λειτουργικά συστήματα πραγματικού χρόνου OS QNX Development Environment Support QNX + Third Party Tools Modularity Scalability Modular Scalable MicroKernel Distributed Central-controlled Central-controlled SMP Supported Memory Support Physical memory is divided in 4k pages. Full protection model Private Virtual Memory Communication Message Passing, POSIX Message Queues, Pipes, FIFOs Synchronization Mutexes, Condvars, Barriers, Sleep on Locks, Read/Writer locks, Semaphores, Atomic Operations, Send /Receive Policy Low power Όχι Free Όχι Source Code Όχι Platforms Supported PowerPC, MIPS, ARM, x86 62

Λειτουργικά συστήματα πραγματικού χρόνου OS ECos Development Environment Support GNU Tool Chain + RedHat Tools Modularity Scalability Scalable Modular Distributed Central-controlled Central-controlled Memory Support Memory Pools Communication Message Boxes Synchronization Mutex, Conditions Variables, Event Flags, Messages Queueus Low power Όχι Free Ναι Source Code Ναι Platforms Supported ARM, Hitachi SH3, Intel x86,mips, Matsushita AMBx, PowerPC, SPARC 63

Λειτουργικά συστήματα πραγματικού χρόνου OS RTLinux Development Environment Support Modularity Scalability GNU Tool Chain + FSMLabs Distributed Central-controlled Memory Support Central-Controlled Partial SMP Support Communication SYS V IPC, Shared Memory, RT-FIFOs Synchronization Modular Scalable Linux Memory Management Memory Buffer Pool Standard Linux Synchronization Methods Low power Όχι Free Ναι Source Code Ναι Platforms Supported (IA32),PowerPC: 603, 604, 7400, MPC8260,MPC860, IBM 4056P, PowerMac G4, Synergy VGM5, MIPSAMD Elan NetSC520, Alpha (ev6) 64

Λειτουργικά συστήματα πραγματικού χρόνου Επιλέχθηκε το Virtuoso γιατί Εξαιρετικές δυνατότητες για κατανεμημένη επεξεργασία Μηδενικό κόστος απόκτησης Επαρκή τεκμηρίωση Επαρκή υποστήριξη Ισχυρά εργαλεία 65