Συσκευές Εισόδου / Εξόδου (Ε/Ε) Input/Output (I/O)

Σχετικά έγγραφα
Οργάνωση Υπολογιστών (IΙI)

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Λειτουργικά Συστήματα Ι. Συστήματα Εισόδου/Εξόδου (I/O --- Input/Output)

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

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

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

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

Λιβανός Γιώργος Εξάμηνο 2017Β

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Μάθημα 10 ο ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT)

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

ΛΟΓΙΣΜΙΚΟ (software)

Πανεπιστήµιο Θεσσαλίας

Εικονική Μνήμη (Virtual Μemory)

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική

Κύρια & Περιφερειακή Μνήµη

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

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

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΕΡΩΤΗΣΕΙΣ ΓΙΑ ΕΠΑΝΑΛΗΨΗ

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

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

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Κεφάλαιο 3 Λειτουργικά Συστήματα Β ΕΠΑΛ

ΠΛΕ- 027 Μικροεπεξεργαστές 11ο μάθημα: Είσοδος- Εξοδος (Ε/Ε)

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Κεφ. 10: Δομές Αποθήκευσης

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Αδιέξοδα (Deadlocks)

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

Προχωρηµένα Θέµατα Αρχιτεκτονικής Η/Υ. Storage Systems.. Λιούπης

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

3.1 Λειτουργικό Σύστηµα. Λειτουργικό Σύστηµα (2) ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα. Ο υπολογιστής σαν σκέτο hardware έχει περιορισµένη χρησιµότητα

ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

ΗΜΥ 313: Τεχνολογία Λειτουργικών Συστηµάτων

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

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

Τι είναι το HARDWARE στην σημερινή εποχή; Σελίδα 3 Το καθένα από αυτά σε τι χρησιμεύει; Σελίδα 4

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

Τεχνολογίες Κύριας Μνήμης

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

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

Κεφάλαιο 2.4: Εργασία με εικονίδια

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

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

Βασικές Έννοιες της Πληροφορικής

Διασυνδετικοί Δίαυλοι. Τι διασυνδέει ένας δίαυλος; Μεταφορά δεδομένων. Διασύνδεση Εισόδου-Εξόδου. Μ.Στεφανιδάκης

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

Δίκτυα Απευθείας Ζεύξης. Επικοινωνία µεταξύ δύο υπολογιστών οι οποίοι είναι απευθείας συνδεδεµένοι.

Ηλεκτρονικός Υπολογιστής

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων

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

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

Εισαγωγή στην Πληροφορική

Εικονική Μνήμη (Virtual Μemory)

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


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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Οργάνωση Υπολογιστών (ΙI)

Αρχιτεκτονική Μηχανής. Αποθήκευση εδοµένων

Περιγραφή και Έλεγχος ιεργασιών

Ε-85: Ειδικά Θέµατα Λογισµικού

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

1. Οργάνωση της μνήμης 2. Κύρια μνήμη 3. Κρυφή μνήμη 4. Κώδικες διόρθωσης λαθών 5. Δευτερεύουσα μνήμη 6. Μονάδες εισόδου/εξόδου

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

DIRECT MEMORY ACCESS - DMA

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

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βασική δοµή και Λειτουργία Υπολογιστή

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 9

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Περιεχόμενα. Κατηγορίες συσκευών Ε/Ε

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

Transcript:

Συσκευές Εισόδου / Εξόδου (Ε/Ε) Input/Output (I/O) Πως το ΛΣ χειρίζεται τις συσκευές Ε/Ε Περίληψη Ρόλος του ΛΣ Κατηγοριοποίηση συσκευών Υλικό (Hardware) Direct Memory Access (DMA) Λογισµικό (Software) Προσωρινή αποθήκευση (buffering) ίσκοι (Disks) ρονοπρογραµµατισµός δίσκων Εύρωστη Αποθήκευση ρονόµετρα Τερµατικά αρακτήρων και ιεπαφές GUI ιαχείριση Ενέργειας 1

Ρόλος του ΛΣ Ένας από τους κυριότερους ρόλους του ΛΣ είναι η διαχείριση των συσκευών Ε/Ε Πρέπει να µπορεί να επικοινωνεί µε τις συσκευές, Να τους στέλνει εντολές Να παίρνει απαντήσεις τις οποίες να µπορεί να αποκωδικοποιεί Να ανταποκρίνεται σε σήµατα διακοπής (interrupts) Να αντιδρά σε περιπτώσεις σφαλµάτων Το ΛΣ έχει δύο βασικούς ρόλους Παρέχει εύκολη πρόσβαση στις συσκευές Ε/Ε µε τυποποιηµένες εντολές ιαχειρίζεται τις συσκευές έτσι που να µεγιστοποιεί την απόδοση τους Ελεγκτές Συσκευών (Device Controllers) ιαβάζει µια σειρά από χαρακτήρες και τους µετατρέπει σε κάποιο σήµα το οποίο εµφανίζει τον χαρακτήρα στη οθόνη Monitor Ελέγχει την κίνηση του δίσκου και µετατρέπει µια σειρά από bits σε ένα µπλοκ µε τον δεδοµένο αριθµό λέξεων (words) Bus 2

Κατηγοριοποίηση Συσκευών Ε/Ε Η διαχείριση των συσκευών Ε/Ε είναι το πιο πολύπλοκο κοµµάτι του ΛΣ. Το ΛΣ πρέπει να υποστηρίζει ένα µεγάλο αριθµό συσκευών οι οποίες έχουν σηµαντικές διαφορές µεταξύ τους. Ρυθµός δεδοµένων (data rate) Πληκτρολόγιο ~100bps, σκληρός δίσκος ~100Mbps, Εφαρµογή (application) Ένας δίσκος για αρχεία έχει διαφορετικές απαιτήσεις από έναν ο οποίος χρησιµοποιείται µόνο για backup. Πολυπλοκότητα του ελεγκτή (controller complexity) Ο εκτυπωτής δεν χρειάζεται πολύπλοκο έλεγχό, όµως ο έλεγχος του δίσκου γίνεται πολύ πιο πολύπλοκος Η πολυπλοκότητα του ελεγκτή µπορεί να κρυφτεί µέσα στη µονάδα που εξειδικεύεται στον έλεγχο της συσκευής Κατηγοριοποίηση Συσκευών Ε/Ε ιαφορές µεταξύ συσκευών Ε/Ε. Μονάδα µεταφοράς δεδοµένων Σειριακή µεταφορά (serial streams or character devices) ή µεγάλα κοµµάτια (block devices) Κωδικοποίηση (data encoding) Πως αντιπροσωπεύονται χαρακτήρες και άλλα δεδοµένα στις διάφορες συσκευές. Συνθήκες Σφαλµάτων (error conditions and reporting) Πως κωδικοποιούνται τα διάφορα σφάλµατα και πως µεταφέρονται στο ΛΣ για περαιτέρω δράση. 3

Πρόσβαση σε Συσκευές Ε/Ε Κάθε ελεγκτής έχει ορισµένους καταχωρητές τους οποίους χρησιµοποιεί για να επικοινωνήσει µε τον επεξεργαστή Μεταφορά εντολών και δεδοµένων Επίσης κάθε ελεγκτής µπορεί να έχει ενδιάµεση µνήµη (buffer) για τη µεταφορά δεδοµένων Πως ο επεξεργαστής επικοινωνεί µε τον ελεγκτή της συσκευής (µε τους καταχωρητές ή την ενδιάµεση µνήµη); Επικοινωνία Επεξεργαστή και Ελεγκτών ρησιµοποιώντας εξειδικευµένες εντολές εισόδου εξόδου (π.χ., IN ή OUT) και ένα σύνολο από πύλες (ports) Σε αυτή την περίπτωση υπάρχουν δύο διαφορετικοί χώροι διευθύνσεων (address spaces) Μνήµη Πύλες Ε/Ε Όλα τα παλαιότερα συστήµατα χρησιµοποιούσαν αυτή την αρχιτεκτονική Memory-Mapped I/O: Σε κάθε καταχωρητή µιας συσκευής κατανέµεται µια διεύθυνση µνήµης, οπόταν οι ίδιες ακριβώς εντολές που χρησιµοποιούνται για πρόσβαση στη µνήµη, χρησιµοποιούνται και για πρόσβαση στους καταχωρητές των συσκευών Ε/Ε. Υβριδικό µοντέλο στο οποίο κάποιες συσκευές χρησιµοποιούν διευθύνσεις µνήµης και κάποιες εξειδικευµένες πύλες Ο επεξεργαστής Pentium χρησιµοποιεί αυτή την αρχιτεκτονική 4

Memory Mapped I/O Πλεονεκτήµατα εν χρειάζεται εξειδικευµένος κώδικας (assembly) για την πρόσβαση στις συσκευές. Οι καταχωρητές εµφανίζονται σαν απλές µεταβλητές Εύκολη προστασία αφού η διεύθυνση της συσκευής δεν µπαίνει στο χώρο του χρήστη. Κάθε εντολή που µπορεί να χρησιµοποιηθεί για πρόσβαση στη µνήµη µπορεί να χρησιµοποιηθεί επίσης και για πρόσβαση στις συσκευές Ε/Ε. Μειονεκτήµατα Caching δεν µπορεί να δουλέψει και πρέπει να απενεργοποιηθεί για τις διευθύνσεις που αναφέρονται σε συσκευές Ε/Ε. Γιατί; ρειάζεται περισσότερη προσπάθεια για να βρεθεί τι πρέπει να ανταποκριθεί σε µια εντολή (η µνήµη ή κάποια συσκευή;) Πολλές συσκευές είναι πιο αργές από την κύρια µνήµη Αρχιτεκτονικές µε 2 ή περισσότερες αρτηρίες Direct Memory Access (DMA) Ο σκοπός του είναι να απελευθερώσει τον επεξεργαστή από τη χρονοβόρα διαδικασία της µεταφορά δεδοµένων από και προς τη µνήµη Το DMA είναι ένας εξειδικευµένος επεξεργαστής ο οποίος δέχεται κάποιες εντολές Τη διεύθυνση της συσκευής Την αρχική διεύθυνση στην οποία βρίσκονται τα δεδοµένα Τον αριθµό των bytes ή words που χρειάζονται Κάποιες παραµέτρους ελέγχου (π.χ., read/write) Στη συνέχεια αναλαµβάνει την µεταφορά των δεδοµένων από και προς την κύρια µνήµη, Μόλις ολοκληρωθεί η διαδικασία τότε στέλνει σήµα διακοπής στον επεξεργαστή. 5

Direct Memory Access (DMA) Disk CPU CPU DMA DMA Disk Program requests Controller DMA Address Transfer Interrupt Wrd Count Strt Add. Control ACK Buffer Data Trans. Main Memory Copy Πιο πολύπλοκα DMA είναι δυνατόν να εκτελούν πολλαπλές µεταφορές Direct Memory Access (DMA) To DMA µπορεί να µεταφέρει ένα byte ή ένα µπλοκ από δεδοµένα κάθε φορά Εάν µεταφέρει ένα byte κάθε φορά (cycle stealing) τότε για κάθε µεταφορά πρέπει να πάρει τον έλεγχο της αρτηρίας (bus) πριν αρχίσει η µεταφορά και να την κρατήσει µέχρι µα τελειώσει η µεταφορά. Εάν µεταφέρει ένα µπλοκ από δεδοµένα (burst mode) τότε για όλη τη χρονική διάρκεια της µεταφοράς (η οποία µπορεί να διαρκέσει και αρκετή ώρα) δεν µπορεί ο επεξεργαστής να χρησιµοποιήσει την αρτηρία. Γιατί η µεταφορά των δεδοµένων γίνεται σε 2 στάδια, πρώτα στην ενδιάµεση µνήµη του ελεγκτή και µετά στην κύρια µνήµη; Ο ελεγκτής ελέγχει την ορθότητα των δεδοµένων (checksum) Η µεταφορά είναι συνεχής και υπάρχει περίπτωση να πρέπει να διακοπεί η µεταφορά αφού η αρτηρία πρέπει να χρησιµοποιηθεί 6

Σήµατα ιακοπής Κάθε συσκευή µπορεί να στείλει ένα σήµα διακοπής στον ελεγκτή σηµάτων διακοπής Εάν ο ελεγκτής δεν είναι ήδη απασχοληµένος µε κάποιο άλλο σήµα τότε το προωθεί στον επεξεργαστή Ο επεξεργαστής µπορεί να έχει διαφορετικές ρουτίνες (υλικού ή λογισµικού) οι οποίες εκτελούν το κάθε σήµα διακοπή. Ο επεξεργαστή ενηµερώνει τον ελεγκτή ότι έλαβε το σήµα έτσι που ο ελεγκτής να µπορεί να προχωρήσει στο επόµενο σήµα. Σήµατα ιακοπής Ποιο είναι το πρώτο πράγµα που πρέπει να κάνει ο επεξεργαστής µόλις λάβει ένα σήµα διακοπής; Να αποθηκεύσει τους καταχωρητές! Που αποθηκεύονται οι καταχωρητές; Στη στοίβα (stack) του προγράµµατος που τρέχει; Υπάρχει περίπτωσή η εφαρµογή να έχει κάποιο πρόβληµα. Υπάρχει περίπτωση η σελίδα στην οποία βρίσκεται η στοίβα να έχει µόλις γεµίσει και να χρειάζεται να φορτωθεί µια νέα σελίδα από την εικονική µνήµη. Στη στοίβα του πυρήνα; ρειάζεται να υπάρξει εναλλαγή από το χώρο του χρήστη στο χώρο του πυρήνα (context switching). Επεξεργαστές µε τεχνολογία pipeline Είναι δύσκολο να βρούµε πια ήταν η τελευταία εντολή που εκτελέσθηκε Για να λυθεί το πρόβληµα πρέπει να αποθηκεύονται πολλές πληροφορίες (κατάσταση επεξεργαστή) στη στοίβα µε αποτέλεσµα ή διαχείριση σηµάτων να γίνεται αρκετά αργή. 7

Λογισµικό για Συσκευές Ε/Ε Στόχοι του λογισµικού Λογισµικό ανεξάρτητο από την συγκεκριµένη συσκευή (device independence) Π.χ πρόσβαση σε αρχεία στο δίσκο, CD-ROM ή floppy drive Οµοιόµορφη ονοµατοδωσία (uniform naming) Το όνοµα του αρχείου δεν πρέπει να εξαρτάται από τη συσκευή ιαχείριση Σφαλµάτων Τα περισσότερα σφάλµατα συµβαίνουν στις συσκευές Ε/Ε Σύγχρονη και Ασύγχρονη µεταφορά δεδοµένων Busy waiting (σύγχρονη): Ο επεξεργαστής δίνει µια εντολή στη συσκευή και ελέγχει συνέχεια µέχρι να εκτελεσθεί η εντολή Σήµατα ιακοπής (interrupts) (ασύγχρονη): Ο επεξεργαστής δίνει την εντολή και αρχίζει κάτι καινούργιο µέχρι που να εκτελεσθεί η εντολή οπόταν θα λάβει κάποιο σήµα διακοπής Direct Memory Access (ασύγχρονη): Όπως το πιο πάνω, απλά οµαδοποιούνται πολλές εντολές µαζί Επίπεδα Λογισµικού Για να επιτευχθεί ο στόχος για όσο το δυνατό πιο ανεξάρτητο λογισµικό από τις συσκευές, το λογισµικό των συσκευών οργανώνεται σε διάφορα επίπεδα (στρώµατα, layers) Κάθε επίπεδο παρέχει κάποιες υπηρεσίες το αµέσως πιο πάνω επίπεδο. Υπάρχει σχετική ανεξαρτησία µεταξύ των επιπέδων οπόταν µια αλλαγή σε ένα επίπεδο δεν επηρεάζει τον κώδικα στα υπόλοιπα Λογισµικό ρήστη Ανεξάρτητο Λογισµικό ΛΣ Οδηγός Συσκευής Device Driver Interrupt Handler Υλικό (Hardware) 8

Interrupt Handler Ελέγχει τις πρώτες λειτουργίες που πρέπει να γίνουν µόλις συµβεί το σήµα διακοπής Αποθηκεύονται καταχωρητές Αρχικοποιείται το περιβάλλον (context) στο οποίο θα τρέξει η διεργασία ελέγχου του σήµατος διακοπής Αρχικοποίηση της νέας στοίβας Επιβεβαιώνεται το σήµα διακοπής έτσι που ο ελεγκτής να είναι έτοιµος να δεχτεί το επόµενο σήµα Επιλέγεται η επόµενη διεργασία που θα τρέξει Αρχικοποιείται το περιβάλλον της επόµενης διεργασίας Φορτώνεται και τρέχει η επόµενη διεργασία. Οδηγός Συσκευής (Device Driver) Οοδηγός της συσκευής συµπεριλαµβάνει το κώδικα που είναι υπεύθυνος για τη σωστή λειτουργία και τον έλεγχο της συγκεκριµένης συσκευής. Συνήθως παρέχεται από τον κατασκευαστή της συσκευής Υπάρχουν διαφορετικές εκδόσεις για κάθε ΛΣ 9

Οδηγός Συσκευής (Device Driver) Παρέχει µια τυποποιηµένη διεπαφή η οποία χρησιµοποιείται για την επικοινωνία της συσκευής µε το υπόλοιπο ΛΣ Ο οδηγός δέχεται εντολές (υψηλότερου επιπέδου, π.χ., open, read, write) από το πιο πάνω επίπεδο και δίνει µια σειρά εντολών (χαµηλότερου επιπέδου) στον ελεγκτή της συσκευής οι οποίες διεκπεραιώνουν την εντολή του υψηλότερου επιπέδου. Εάν χρειαστεί ο οδηγός περνά πληροφορίες πίσω στο ΛΣ ύο γενικοί τύποι οδηγών: Block vs Character devices Ο ελεγκτής είναι εξοπλισµένος µε καταχωρητές στους οποίους ο οδηγός γράφει τις εντολές και από τους οποίους διαβάζει τυχόν απαντήσεις ή κωδικούς σφαλµάτων Λογισµικό Ε/Ε Ανεξάρτητο από τη Συσκευή Οµοιόµορφη διεπαφή για όλες τις συσκευές Όλοι οι οδηγοί πρέπει να υλοποιούν το ίδια σύνολο από ρουτίνες (π.χ., open, read, write). Προσωρινή Αποθήκευση (Buffering) Για πιο αποδοτική λειτουργία των συσκευών Ε/Ε πληροφορίες από και προς τις συσκευές µπορεί να αποθηκεύονται σε ενδιάµεση µνήµη είτε στον πυρήνα είτε στο χώρο του χρήστη. Εάν οι πληροφορίες αποθηκεύονται σε πολλές προσωρινές µνήµες, τότε υπάρχει περίπτωση η επικοινωνία να γίνει πολύ αργή. 10

Λογισµικό Ε/Ε Ανεξάρτητο από τη Συσκευή Η διεργασία του χρήστη διαβάζει ένα-ένα τους χαρακτήρες Η διεργασία του χρήστη διαβάζει n χαρακτήρες Τι θα συµβεί αν η σελίδα µε τους χαρακτήρες δεν είναι στη κύρια µνήµη; Οι χαρακτήρες φυλάγονται στον πυρήνα. Αφού διαβαστούν n χαρακτήρες µεταφέρονται στο χώρο του χρήστη Τι θα συµβεί αν πριν µεταφερθούν φτάσουν επιπρόσθετοι χαρακτήρες; Double Buffering Επικοινωνία ικτύων User Space Kernel Space User process packet Network Controller User Space Kernel Space Network Μεταφορά του πακέτου σε πολλές ενδιάµεσες µνήµες µπορεί να επηρεάσει την ταχύτητα της επικοινωνίας 11

Λογισµικό Ε/Ε Ανεξάρτητο από τη Συσκευή ιαχείριση σφαλµάτων Κάποια σφάλµατα είναι δυνατόν να διορθωθούν στα χαµηλότερα στρώµατα έτσι που να µην χρειάζεται η ενηµέρωση του χρήστη Θα πρέπει να υπάρχει υποδοµή (ανεξάρτητη από τη συσκευή) η οποία να χειρίζεται τα σφάλµατα και να ενηµερώνει τον χρήστη. Πρέπει να υπάρχει µηχανισµός που να επιτρέπει στους χρήστες να δεσµεύουν τις συσκευές Θυµηθείτε πως υπάρχουν συσκευές οι οποίες είναι preemptive και non-preemptive καθώς και συσκευές οι οποίες µπορούν να χρησιµοποιούνται µόνο από µια διεργασία (π.χ., CD-ROM). Για συσκευές που µεταφέρουν τµήµατα από δεδοµένα (blocks) το λογισµικό του ΛΣ µπορεί να παίζει ρόλο στον καθορισµό του µεγέθους των τµηµάτων. Λογισµικό στο ώρο του ρήστη Στο χώρο του χρήστη υπάρχουν βιβλιοθήκες (π.χ., C libraries) οι οποίες επιτρέπουν στον χρήστη να έχει εύκολη πρόσβαση στις συσκευές Ε/Ε Οι βιβλιοθήκες αυτές µπορεί να επιτρέπουν την ανταλλαγή δεδοµένων (read, write) ή και την διαµόρφωση (format) µιας σειράς χαρακτήρων (printf(), scanf()). Spooling 12

ίσκοι (Disks) Υπάρχουν πολλά ήδη δίσκων Μαγνητικοί (hard disks και floppy drives) Γράφουν και διαβάζουν µε την ίδια ταχύτητα Η τεχνολογία των τελευταίων 20 χρόνων κατάφερε Να αυξήσει τη χωρητικότητα των δίσκων περίπου 50,000 φορές (τα bits έχουν συµπιεστεί), Να αυξήσει τη µεταφορά δεδοµένων περίπου 1300 φορές όµως, Ο χρόνος αναζήτησης (seek time) δεν µειώθηκε παρά µόνο 5-6 φορές. Οπτικοί (R-CD, RW-CD, DVD) ιατάξεις δίσκων για µεγαλύτερη ταχύτητα και αξιοπιστία RAID (Redundant Array of Inexpensive (Independent) Disks) Μαγνητικοί Σκληροί ίσκοι (Hard Disks) Ηεπιφάνεια του δίσκου χωρίζεται σε ζώνες, κυλίνδρους (cylinders) διαδρόµους (tracks) και τοµείς (sectors) Εξωτερικοί διάδροµοι µπορεί έχουν χώρο για περισσότερους τοµείς πράγµα που περιπλέκει τη διαχείριση του δίσκου. Ο οδηγός µπορεί να έχει µια συνάρτηση η οποία να αντιστοιχεί µια γραµµική διεύθυνση (x-cylinder, y-head, z-sector) µε την πραγµατική διεύθυνση. Σε µια γραµµική διεύθυνση όλοι οι κύλινδροι έχουν τον ίδιο αριθµό από τοµείς 13

RAID ιασύνδεση δίσκων µε σκοπό την αύξηση της απόδοσης (ταχύτητα) και της αξιοπιστίας (χρησιµοποιώντας πλεονασµό - redundancy) Υπάρχουν διάφοροι τρόποι διάταξης (configuration) Οι διάφοροι τρόποι έχουν τυποποιηθεί σαν επίπεδο 0-5 (level 0-5) Το επίπεδο 0 (level 0) επιτυγχάνει µόνο καλύτερη απόδοση σε περίπτωση που τα αρχεία είναι αρκετά µεγάλα Όταν ο οδηγός µεταφέρει ένα τοµέα ενός δίσκου, οι υπόλοιποι µπορούν παράλληλα να ψάχνουν για τους ζητούµενους τοµείς Strip 0 Strip 1 Strip 2 Strip 3 Strip 4 Strip 5 Strip 6 Strip 7 Strip 8 Strip 9 Strip 10 Strip 11 RAID Το επίπεδο 1 (level 1) διατηρεί αντίγραφα των δεδοµένων σε περισσότερους από 1 δίσκους Strip 0 Strip 1 Strip 2 Strip 3 Strip 0 Strip 1 Strip 2 Strip 3 Strip 4 Strip 5 Strip 6 Strip 7 Strip 4 Strip 5 Strip 6 Strip 7 Strip 8 Strip 9 Strip 10 Strip 11 Strip 8 Strip 9 Strip 10 Strip 11 Το επίπεδο 2 σπάζει κάθε byte σε bits τα οποία κωδικοποιούνται (Hamming Code) έτσι που να µπορεί να ανιχνευθεί και να διορθωθεί πιθανό σφάλµα bit 1 bit 2 bit 3 bit 4 bit 5 bit 6 bit 7 14

RAID Το επίπεδο 3 είναι πιο παρόµοιο µε το επίπεδο 2 αλλά µε πιο απλή κωδικοποίηση (parity check) Ξέροντας ποιος δίσκος έχει χαλάσει µπορούµε να υπολογίσουµε τις πληροφορίες του δεδοµένου δίσκου από το parity bit. Οι δίσκοι πρέπει να είναι συγχρονισµένοι bit 1 bit 2 bit 3 bit 4 parity Τα επίπεδα 4-5 δουλεύουν επίσης µε τοµείς. Ορίζουν ένα δίσκο ο οποίος έχει πλεονάζοντα δεδοµένα τα οποία χρησιµοποιούνται σε περίπτωση που κάποιος δίσκος χαλάσει. Οπτικοί ίσκοι CD-ROMS R-CD, RW-CD, DVD Υπάρχουν διαφορές στις τεχνολογίες κατασκευής Για να υπάρχει οµοιόµορφη ροή δεδοµένων από το CD θα πρέπει ο δίσκος να γυρίζει µε µεγαλύτερη ταχύτητα για τις εσωτερικές σπείρες Για καλύτερη αξιοπιστία τα δεδοµένα χωρίζονται σε πλαίσια τα οποία έχουν πλεονάζουσες πληροφορίες για ανίχνευση και διόρθωση σφαλµάτων. 15

DVDs Tα DVDs έχουν αυξήσει τη χωρητικότητα των δίσκων Κάνοντας τα pits πιο µικρά (από 0.8µ στα CD σε 0.4µ) Φέρνοντας τις σπείρες πιο κοντά (0.74µ αντί 1.6µ στα CD) ρησιµοποιώντας κόκκινο λέιζερ (αντί πράσινο) Επίσης υπάρχου διάφορες διατάξεις Μια πλευρά και ένα επίπεδο (single-sided, single-layer) (4.7GB) Μια πλευρά και δύο επίπεδα (single-sided, double-layer) (8.5GB) ύο πλευρές και ένα επίπεδο (double-sided, single-layer) (9.4GB) ύο πλευρές και δύο επίπεδα (double-sided, double-layer) (17GB) Αλγόριθµοι ρονοπρογραµµατισµού ίσκων Ο χρόνος πρόσβασης στα δεδοµένα ενός σκληρού δίσκου αποτελείται από 3 κύρια µέρη ρόνος αναζήτησης (seek time) Καθυστέρηση Περιστροφής (rotational delay) Μεταφορά δεδοµένων (data transfer time) Καθώς φτάνουν αιτήµατα για πρόσβαση (read or write) στο δίσκο, ο οδηγός του δίσκου έχει την ευχέρεια να επιλέξει πιο αίτηµα θα είναι το αµέσως επόµενο το οποίο θα ικανοποιηθεί. Παράδειγµα Υποθέστε πως ο δίσκος έχει 40 κυλίνδρους και υπάρχουν αιτήµατα τα οποία έχουν φτάσει µε την εξής σειρά (ο αριθµός είναι ο κύλινδρος στον οποίο είναι ο ζητούµενος τοµέας) 12 11 34 9 16 1 36 Υποθέστε πως ο βραχίονας αρχικά είναι πάνω από τον κύλινδρο 11 16

Αλγόριθµοι ρονοπρογραµµατισµού ίσκων First Come First Serve Algorithm Ο δίσκος ανταποκρίνεται σε κάθε αίτηµα µε τη σειρά µε την οποία παραλήφθηκε 12 11 34 9 16 1 36 0 5 10 15 20 25 30 35 Γενικά ο αλγόριθµος είναι αργός αλλά δεν υπάρχει περίπτωση παρατεταµένης στέρησης Αλγόριθµοι ρονοπρογραµµατισµού ίσκων Last In First Out 0 Ο δίσκος ανταποκρίνεται στα αιτήµατα µε την ανάποδη σειρά από αυτή που παραλείφθηκαν 12 11 34 9 16 1 36 5 10 15 20 25 30 35 Πολλές φορές ο αλγόριθµος αυτός δουλεύει αρκετά καλά εξ αιτίας της τοπικότητας (locality). Υπάρχει ο κίνδυνος παρατεταµένης στέρησης αιτηµάτων 17

Αλγόριθµοι ρονοπρογραµµατισµού ίσκων Shortest Seek Time First 0 Ο δίσκος ανταποκρίνεται στo αίτηµα το οποίο βρίσκεται πιο κοντά στη θέση του βραχίονα 12 11 34 9 16 1 36 5 10 15 20 25 30 35 Ο αλγόριθµος έχει καλή απόδοση όµως υπάρχει ο κίνδυνος παρατεταµένης στέρησης αιτηµάτων Αλγόριθµοι ρονοπρογραµµατισµού ίσκων Elevator Algorithm (SCAN) 0 Ο δίσκος ανταποκρίνεται µόνο στα αιτήµατα τα οποία βρίσκονται στη ίδια κατεύθυνση. Αν δεν υπάρχουν άλλα αιτήµατα, τότε αλλάζει η κατεύθυνση αναζήτησης 12 11 34 9 16 1 36 5 10 15 20 25 30 35 Ο αλγόριθµος έχει πολύ καλή απόδοση χωρίς να υπάρχει ο κίνδυνος παρατεταµένης στέρησης αιτηµάτων 18

Αλγόριθµοι ρονοπρογραµµατισµού ίσκων Elevator Algorithm (C-SCAN) 0 Ο δίσκος ανταποκρίνεται µόνο στα αιτήµατα τα οποία βρίσκονται στη ίδια κατεύθυνση. Αν δεν υπάρχουν άλλα αιτήµατα, τότε µεταπηδά στον πιο µικρό κύλινδρο και επαναλαµβάνει 12 11 34 9 16 1 36 5 10 15 20 25 30 35 Ο αλγόριθµος έχει καλή απόδοση και µειώνει το µέγιστο χρόνο αναµονής Αλγόριθµοι ρονοπρογραµµατισµού ίσκων Επιπρόσθετα υπάρχουν αρκετές άλλες στρατηγικές χρονοπρογραµµατισµού οι οποίες λαµβάνουν υπόψη Προτεραιότητα Προθεσµία (deadline) Τι αιτήµατα αναµένουν στο µέλλον LINUX Anticipatory Scheduler: ρησιµοποιεί το βασικό αλγόριθµο SCAN (elevator) Μόλις τελειώσει το διάβασµα ενός τοµέα τότε υπάρχει µια µικρή καθυστέρηση πριν ο βραχίονας προχωρήσει στον επόµενο. Το σκεπτικό του αλγορίθµου βασίζεται στην τοπικότητα. Υπάρχει καλή πιθανότητα η διεργασία που ζήτησε τον παρόν τοµέα να ζητήσει να διαβαστεί και κάποιος άλλος κοντινός τοµέας. Caching: όταν ο δίσκος αναζητά κάποιο τοµέα τότε υπάρχει καλή πιθανότητα να ζητηθεί και κάποιος άλλος κοντινός, οπόταν ο οδηγός µπορεί να διαβάζει και τοµείς που δεν έχουν ζητηθεί και να τους αποθηκεύει στο cache σε περίπτωση που ζητηθούν αργότερα. 19

Εύρωστη Αποθήκευση (Stable Storage) Α αποθήκευση ενός τοµέα παίρνει κάποιο χρόνο (µικρό αλλά όχι µηδενικό). Υποθέστε ένα τοµέα µε 512 bytes. Εάν ξεκινήσει να αλλάζει το περιεχόµενο του τοµέα και συµβεί κάτι (crash, σφάλµα του δίσκου κλπ) πριν τελειώσει, τότε ολόκληρο το περιεχόµενο του τοµέα έχει καταστραφεί (ο κώδικας διόρθωσης σφαλµάτων θα είναι µάλλον λανθασµένος). Σαν αποτέλεσµα έχουν χαθεί και οι προηγούµενες πληροφορίες καθώς και οι νέες! Πώς θα µπορούσαµε να πετύχουµε εύρωστη αποθήκευση έτσι που να µην υπάρχει περίπτωση να χαθούν δεδοµένα; Εάν δεν συµβεί οτιδήποτε, τότε τα νέα δεδοµένα θα είναι αποθηκευµένα. Εάν συµβεί κάτι τότε θα έχουµε τουλάχιστον αντίγραφο των προηγούµενων δεδοµένων. Εύρωστη Αποθήκευση (Stable Storage) ρησιµοποιούµε δύο πανοµοιότυπους δίσκους Γράφουµε στο δίσκο 1 και διαβάζουµε το περιεχόµενο του τοµέα για επαλήθευση. Εάν δεν επιτύχει αυτό το βήµα n φορές τότε δηλώνουµε χαλασµένο τοµέα. Επαναλαµβάνουµε την ίδια διαδικασία για το δίσκο 2. Όταν διαβάζουµε, τότε αρχίζουµε από το δίσκο 1. Εάν ο τοµέας έχει ορθό ECC τότε υπάρχει επιτυχία. Εάν όχι τότε επαναλαµβάνουµε τη διαδικασία n φορές. Εάν καµία φορά δεν έχει ορθό ECC, τότε διαβάζουµε το δίσκο 2. Ο δίσκος 2 πρέπει τουλάχιστον να έχει το προηγούµενα δεδοµένα. Μετά από κάποιο crash ελέγχουµε και τους δύο δίσκους Εάν και οι δύο έχουν τα ίδια ορθά δεδοµένα δεν κάνουµε τίποτα Εάν ο ένας έχει ορθά δεδοµένα και ο άλλος όχι αντιγράφουµε τα ορθά Εάν και οι δύο έχουν ορθά αλλά διαφορετικά δεδοµένα, τότε αντιγράφουµε από το δίσκο 1 στο δίσκο 2. 20

ρονόµετρα (clocks/timers) Κρατούν την ώρα και ηµεροµηνία Ελέγχουν έτσι που να µην µπορεί µια διεργασία να πάρει όλο το χρόνο του επεξεργαστή ρονοµετρούν και συντονίζουν διάφορα γεγονότα Σφάλµατα σελίδων, σήµατα διακοπής, χρήση επεξεργαστή κλπ Υλικό Μετρητής (counter) Ταλαντωτής (crystal oscillator) Καταχωρητής ρονόµετρα Το µέγεθος των καταχωρητών που αποθηκεύουν το χρόνο και η συχνότητα ενηµέρωσης των µετρητών είναι σηµαντικές παράµετροι οι οποίες πρέπει να ληφθούν υπόψη όταν σχεδιάζονται τα χρονόµετρα. Υποθέστε σύστηµα στο οποίο ο ταλαντωτής έχει συχνότητα 60Hz. Επίσης υποθέστε ένα καταχωρητή µε 32 bits. Πόσος χρόνος χρειάζεται µέχρι να υπερχειλίσει ο καταχωρητής; Η µέγιστη τιµή του καταχωρητή είναι 2 32 = 4,294,967,296 O καταχωρητής θα γεµίσει σε 71,582,788 δευτερόλεπτα = 1,193,046 λεπτά =19,844 ώρες = 828 µέρες = 2.3 χρόνια! Σε περίπτωση που ο µετρητής αυξάνεται µε συχνότητα 1Hz, τότε ο καταχωρητής θα υπερχειλίσει σε 136 χρόνια. Η άλλη επιλογή είναι να µεγαλώσει ο καταχωρητής σε 64 bits 21

Πολλαπλά ρονόµετρα Είναι δυνατό µε µόνο ένα χρονόµετρο και κάποιες δοµές δεδοµένων να δηµιουργήσουµε πολλαπλά χρονόµετρα Next Timer Current Time 4200 Next Signal 3 3 4 6 2 2 4203 4207 4213 4215 4217 ρονόµετρα Λογισµικού Σήµατα διακοπής (interrupts) και χρονόµετρα Τα σήµατα διακοπής συµπεριλαµβάνουν αρκετή δουλειά (overhead) Αλλαγή περιβάλλοντος (context switch) Φόρτωση νέων καταχωρητών Κλπ. Σε συστήµατα µε υψηλές ταχύτητες (π.χ., Gigabit Ethernet) συνεπάγεται πολύ συχνή χρήση των σηµάτων διακοπής άρα και πολλή επιπρόσθετη δουλεία Εναλλακτικά µπορούµε να χρησιµοποιήσουµε κάποια χρονόµετρα και να ελέγχουµε περιοδικά εάν το γεγονός που περιµένουµε έχει συµβεί Π.χ., εάν υπήρξε άφιξη πακέτου Το µειονέκτηµα παρουσιάζεται στην περίπτωση που το γεγονός συµβεί αµέσως µετά τη λήξη του χρονοµέτρου. Soft timers: Ο πυρήνας κάθε φορά που είναι έτοιµος να δώσει τον έλεγχο στο χρήστη ελέγχει εάν κάποιο χρονόµετρο έχει λήξει. 22

Τερµατικά Βασισµένα σε αρακτήρες Η επικοινωνία του τερµατικού µε τον υπολογιστή γίνεται µέσω σειριακής γραµµής όπου οι χαρακτήρες αποστέλλονται ένα bit κάθε φορά (RS232 interface). Μια οθόνη αποτελείται συνήθως από ένα µέγιστο αριθµό γραµµών οι οποίες περιέχουν ένα αριθµό από χαρακτήρων Συνήθως 25 γραµµές µε 80 χαρακτήρες η κάθε γραµµή Η κάρτα διεπαφής στέλνει ένα χαρακτήρα κάθε φορά και µετά περιµένει επαλήθευση Τερµατικά Βασισµένα σε αρακτήρες Τα «έξυπνα τερµατικά» υποστηρίζουν εκτός από τους χαρακτήρες ASCII και ένα σύνολο από χαρακτήρες ελέγχου (escape sequences) Μετακινούν τον cursor Παρεµβάλλουν χαρακτήρες στο µέσο της οθόνης Το πληκτρολόγιο (keyboard) διαβάζει χαρακτήρες τους οποίους και αποθηκεύει σε ενδιάµεση µνήµη (buffers) Οι χαρακτήρες περνούν στην διεργασία που τα χρειάζεται είτε ο ένας χαρακτήρας µετά το άλλο, είτε γραµµή µε γραµµή. Οι χαρακτήρες αποθηκεύονται σε ενδιάµεση µνήµη Κάθε τερµατικό µπορεί να έχει την δική του ενδιάµεση µνήµη Ο πυρήνας µπορεί να διαθέτει πολλά µικρά buffers τα οποία δίνει στα τερµατικά όταν τα χρειαστούν 23

ιεπαφές Γραφικών (GUI) GUI: Graphical User Interface Παράθυρα (windows) Εικονίδια (icons) Μενού (menu) Pointing devices (mouse ή track ball) Σους υπολογιστές Pentium το πληκτρολόγιο είναι εξοπλισµένο µε «ενθυλακωµένο» (embedded) επεξεργαστή ο οποίος επικοινωνεί µε τον ελεγκτή στέλνοντας του τη στιγµή που πατήθηκε ή ελευθερώθηκε το κάθε πλήκτρο. Pointing devices: Ενηµερώνουν τον υπολογιστή για την κίνηση του δείκτη ( x, y) και για τα κουµπιά τα οποία έχουν πατηθεί. ιεπαφές Γραφικών (GUI) Οθόνη Vector Graphics: κάθε σχήµα αποτελείται από µια σειρά από σηµεία τα οποία ενώνονται για να σχηµατίσουν το σχήµα. Bitmap (raster) Graphics: κάθε σηµείο στην οθόνη αντιπροσωπεύεται από ένα αριθµό ο οποίος προσδιορίζει το χρώµα 24

ιεπαφές Γραφικών (GUI) Οι οθόνες GUI µπορεί να έχουν µεγάλες απαιτήσεις σε µνήµη. Για κάθε pixel αποθηκεύεται ένας αριθµός µε 24- bits (Red-Green-Blue) Για εξοικονόµηση µνήµης και χρόνου τα 24 bits µπορεί να µειωθούν σε 16 ή 8. Ο ελεγκτής της οθόνης θα πρέπει να έχει ένα πίνακα ο οποίος να αντιστοιχεί τα 8 ή 16 bits µε κάποιο χρώµα. Γραµµατοσειρές (Fonts) True-type fonts: κάθε χαρακτήρας αποτελείται από µια σειρά σηµείων τα οποία αποτελούν το περίγραµµα του χαρακτήρα Το µέγεθος της γραµµατοσειράς µπορεί εύκολα να αλλάξει ιαχείριση Ενέργειας Η διαχείριση ενέργειας παίζει ιδιαίτερα σηµαντικό ρολό στις περιπτώσεις φορητών υπολογιστών Σε ποια κατάσταση να µπαίνουν τα διάφορα µέρη του υπολογιστή και πόσο συχνά; Εξοικονόµηση ενέργειας όταν η κατάσταση είναι on, off ή µειωµένη ένταση Ενέργεια που «σπαταλείται» για να επανέλθει το σύστηµα στην κατάσταση on. Εξοικονόµηση ενέργειας µπορεί να επιτευχθεί µε καλή διαχείριση της οθόνης, του επεξεργαστή, του δίσκου, της µνήµης και της κάρτας ασύρµατου δικτύου 25

ιαχείριση Ενέργειας Απενεργοποίηση της οθόνης για σκοπούς εξοικονόµησης ενέργειας είναι σχετικά εύκολη αφού δεν υπάρχει κάποιο ιδιαίτερο κόστος ενεργοποίησης της. Απλά το ΛΣ πρέπει να υπολογίσει πότε να απενεργοποιήσει την οθόνη και µπορεί να λάβει την παράµετρο αυτή από το χρήστη. Υπάρχει και η περίπτωση να χωριστεί η οθόνη σε τοµείς. Μόνο οι τοµείς µε δραστηριότητα θα είναι αναµµένοι ενώ οι µπορούν να είναι σε κατάσταση ύπνου. Απενεργοποίηση του δίσκου συνεπάγεται κάποιο κόστος ρειάζεται επιπρόσθετη ενέργεια για την ενεργοποίηση ρειάζεται κάποιος χρόνος µέχρι ο δίσκος να αρχίσει να περιστρέφεται µε τις κανονικές του στροφές ιαχείριση Ενέργειας Απενεργοποίηση του επεξεργαστή Η απόδοση του επεξεργαστή εξαρτάται από την τάση (voltage). Εάν είναι µειωµένη, τότε η απόδοση του επεξεργαστή είναι επίσης µειωµένη. Π.χ., µειώνοντας την τάση στο µισό µειώνουµε επίσης και την ταχύτητα στο µισό Η κατανάλωση του επεξεργαστή είναι επίσης µειωµένη. Μειώνοντας την τάση στο µισό, η κατανάλωση µειώνεται στο ¼. Το ΛΣ µπορεί να επιβλέπει τη χρήση του υπολογιστή και να ρυθµίζει την τάση ανάλογα µε τις ανάγκες. Η κάρτα ασύρµατης επικοινωνίας είναι επίσης µια συσκευή µε υψηλή κατανάλωση. Μια λύση είναι να απενεργοποιείται περιοδικά και να αποθηκεύονται τα µηνύµατα (είτε στο σταθµό βάσης είτε στον υπολογιστή) ιαχείριση θερµοκρασίας ιαχείριση µπαταρίας (έξυπνες µπαταρίες). 26