Σύγχρονα Θέματα Πληροφορική Σύγχρονα Θέματα Πληροφορική ΝΙΚΟΣ ΠΑΠΑΔΑΚΗΣ
Ύλη του Μαθήματος Εισαγωγή: Γνωριμία με τον υπολογιστή, ο κύκλος επεξεργασίας της πληροφορίας Το εσωτερικό του Υπολογιστή: Τα βασικά μέρη του υπολογιστή, η κεντρική μονάδα επεξεργασίας (CPU), συνήθεις CPU, είδη μνήμης, θύρες επέκτασης, πύλες και δυαδική λογική. Είσοδος και Έξοδος δεδομένων Αποθήκευση Δεδομένων: Διαφορές μνήμης και μέσων αποθήκευσης Επεξεργασία Δεδομένων: Πληροφορίες και δεδομένα. Αριθμητικά συστήματα και δυαδική λογική. Παράσταση κι επεξεργασία δεδομένων. Το Λειτουργικό Σύστημα: Μέρη του λογισμικού του OS, ρόλος και λειτουργικότητα του OS, τι συμβαίνει κατά την εκκίνηση τού Η/Υ, είδη Διεπαφών Χρήστη, δυνατότητες και αδυναμίες σύγχρονων OS, βασικά utilities, backup. Λογισμικό Εφαρμογών. Δίκτυα και επικοινωνίες Ο Παγκόσμιος Ιστός Ηλεκτρονικό Εμπόριο Εγκληματικότητα και Ασφάλεια Προγραμματισμός Δομές ελέγχου αλγορίθμων Εισαγωγή στην Πληροφορκή
Στοιχεία Διδάσκοντα Δρ Νίκος Παπαδάκης Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Κρήτης E-mail npapadak@cs.teicrete.gr Γραφείο 2ος όροφος κτίριο απέναντι από την ΣΤΕΓ Ώρες Γραφείου Τρίτη 10-1 ή μετά από συνεννόηση με e-mail.
Ιστοσελίδα – Τρόπος αξιολόγησης Ιστοσελίδα Μαθήματος https://eclass.teicrete.gr/courses/TP105/ Τρόπος αξιολόγησης 40% πρόοδος(10 Δεκεμβρίου) 60% τελική εξέταση Εισαγωγή στην Πληροφορκή
Αρχιτεκτονική Υπολογιστών Εισαγωγή στην Πληροφορική Νίκοσ Παπαδάκησ Αρχιτεκτονική Υπολογιστών
Η αρχιτεκτονική von Neumann (1/3) Ο όρος Αρχιτεκτονική ενός ηλεκτρονικού υπολογιστικού συστήματος αναφέρεται στον βασικό λειτουργικό σχεδιασμό του συστήματος δηλαδή στον τρόπο με τον οποίο τα επί μέρους στοιχεία του συστήματος είναι δομημένα Ο von Neumann θεωρείται ο πατέρας των σύγχρονων μηχανών Η αρχιτεκτονική von Neumann χρησιμοποιείται σχεδόν σε όλους τους ηλεκτρονικούς υπολογιστές Βασικό στοιχείο της αρχιτεκτονικής αυτής είναι ότι οι μονάδες για την επεξεργασία της πληροφορίας διαχωρίζονται από τις μονάδες που αποθηκεύουν την πληροφορία Εισαγωγή στην Πληροφορκή
Η αρχιτεκτονική von Neumann (2/3) Πρόκειται για μία αφαιρετική αρχιτεκτονική δόμησης υπολογιστικών συστημάτων, σύμφωνα με την οποία ένα σύστημα μπορεί να διαχωριστεί στα παρακάτω βασικά τμήματα: Κεντρική Μονάδα Επεξεργασίας: Αποτελείται από δύο επιμέρους μονάδες: Μονάδα Ελέγχου: Λειτουργεί ως διαχειριστής των υπόλοιπων μονάδων για να εξασφαλίσει ότι όλα τα μέρη λειτουργούν ορθά Αριθμητική/Λογική Μονάδα: Είναι ικανή να εκτελεί αριθμητικές και λογικές πράξεις στα δεδομένα με βάση τις αποθηκευμένες εντολές Μονάδα Μνήμης: Περιέχει τα δεδομένα αλλά και τις οδηγίες-εντολές για την επεξεργασία τους Συσκευές Εισόδου: Μεταφέρουν («εισάγουν») τα δεδομένα στο εσωτερικό του υπολογιστικού συστήματος Συσκευές Εξόδου: Μεταφέρουν τα αποτελέσματα της επεξεργασίας των δεδομένων από το εσωτερικό του υπολογιστικού συστήματος στον «έξω» κόσμο Εισαγωγή στην Πληροφορκή
Η αρχιτεκτονική von Neumann (3/3) Συσκευές Εισόδου Κεντρική Μονάδα Επεξεργασίας Μονάδα Ελέγχου Αριθμητική/Λογική Μονάδα Συσκευές Εξόδου Βοηθητικές Συσκευές Αποθήκευσης Μονάδα Μνήμης Εισαγωγή στην Πληροφορκή
Περιφερειακές συσκευές Με τον όρο Περιφερειακές συσκευές (peripheral devices) αναφερόμαστε στις συσκευές που συνδέονται με το κεντρικό σύστημα, με σκοπό την επικοινωνία του με τον εξωτερικό κόσμο Οι συσκευές αυτές είναι ανεξάρτητες από το σύστημα, δηλαδή δεν αποτελούν μέρος αυτού Χρησιμοποιούνται για να επεκτείνουν τις δυνατότητες του συστήματος και διαχωρίζονται σε συσκευές εισόδου και συσκευές εξόδου Εισαγωγή στην Πληροφορκή
Συσκευές εισόδου δεδομένων Μία συσκευή (ή μονάδα) εισόδου δεδομένων είναι μία συσκευή δια μέσω της οποίας, δεδομένα και προγράμματα εισάγονται από τον έξω κόσμο στον ηλεκτρονικό υπολογιστή Οι συσκευές εισόδου συμπεριλαμβάνουν το πληκτρολόγιο διάφορες συσκευές μετακίνησης του δρομέα στην οθόνη και επιλογής όπως το ποντίκι, η ιχνόσφαιρα, η χειριστήρια λαβή, ο πίνακας ψηφιοποίησης και οι οθόνες αφής οι σαρωτές οι συσκευές ανάγνωσης χαρακτήρων με μαγνητική μελάνη οι συσκευές οπτικής αναγνώρισης καρτών-σημείων η ψηφιακή κάμερα και το μικρόφωνο Εισαγωγή στην Πληροφορκή
Συσκευές επιλογής Πρόκειται για συσκευές που χρησιμοποιούνται για τον έλεγχο του δρομέα, επιλογή μιας εντολής/αντικειμένου ή το χειρισμό ενός αντικειμένου που έχει ήδη επιλεγεί Υπάρχουν διάφοροι τύποι τέτοιων συσκευών Το ποντίκι Η ιχνόσφαιρα Η χειριστήρια λαβή Ο πίνακας ψηφιοποίησης Η οθόνη αφής Εισαγωγή στην Πληροφορκή
Κατηγοριοποίηση συσκευών επιλογής Συσκευή Επιλογής Πλεονεκτήματα Μειονεκτήματα Κατάλληλη Για… Ποντίκι Χαμηλό κόστος, ευχρηστία, δεν απαιτεί ιδιαίτερη επιφάνεια εργασίας Μικρή ακρίβεια Προσωπικοί υπολογιστές, εφαρμογές αυτοματισμού γραφείου Ιχνόσφαιρα Ακρίβεια, ενσωμάτωση πολλαπλών εντολών Δυσκολία χρήσης, ευαισθησία στη ρύπανση Φορητοί υπολογιστές, βιομηχανικά περιβάλλοντα Χειριστήρια Λαβή Χαμηλό κόστος, ενσωμάτωση πολλαπλών εντολών Μηχανές παιχνιδιών, βιομηχανικά περιβάλλοντα Πίνακας Ψηφιοποίησης Ακρίβεια, ευχρηστία Μεγάλο κόστος, απαιτεί μεγάλο χώρο εργασίας Βιομηχανική σχεδίαση, χαρτογραφία Οθόνη Αφής Απλή στη χρήση, δεν απαιτείται συγχρονισμός χεριού ματιού Μειωμένη ευχρηστία (δυσκολία διεκπεραίωσης κάποιων εργασίων) Κιόσκια παροχής πληροφοριών/ υπηρεσιών σε δημόσιους χώρους Εισαγωγή στην Πληροφορκή
Συσκευές εισόδου δεδομένων Εισαγωγή στην Πληροφορκή
Συσκευές εξόδου δεδομένων Μία συσκευή (ή μονάδα) εξόδου δεδομένων είναι μία συσκευή δια μέσω της οποίας, αποτελέσματα αποθηκευμένα στον ηλεκτρονικό υπολογιστή, τα οποία προέρχονται από την επεξεργασία των δεδομένων, μεταφέρονται στον εξωτερικό κόσμο. Οι πιο δημοφιλής συσκευές εξόδου συμπεριλαμβάνουν την οθόνη τα ηχεία τους εκτυπωτές Εισαγωγή στην Πληροφορκή
Οθόνη Η οθόνη χρησιμοποιείται για την οπτική αναπαράσταση της εξόδου του υπολογιστή Ανάλογα με τη συσκευή απεικόνισης που χρησιμοποιούν χωρίζονται σε δύο κατηγορίες: Οθόνες καθοδικού σωλήνα (CRT) Επίπεδες οθόνες Οθόνη υγρών κρυστάλλων Οθόνη πλάσματος Εισαγωγή στην Πληροφορκή
Γενικά Χαρακτηριστικά Επιλογής μίας Οθόνης (1/4) Τα κυριότερα χαρακτηριστικά επιλογής μίας οθόνης είναι: η διάσταση της οθόνης το μήκος της διαγωνίου της οθόνης και μετριέται σε ίντσες (π.χ. 15’’, 17’’) η ανάλυση της εικόνας περιγράφει τον μέγιστο αριθμό εικονοστοιχείων (pixels) που μπορεί να απεικονίσει η οθόνη, σε κάθε μια από τις δύο διαστάσεις Τυπικές αναλύσεις είναι: 640 x 480, 640 x 400, 800 x 600, 1024 x 768, 1280x1024 pixels (γραμμές x στήλες) και εξαρτώνται από την κάρτα και τη μνήμη της κάρτας οθόνης η συχνότητα ανανέωσης εκφράζει το ρυθμό με τον οποίο «ζωγραφίζονται» τα pixels στην οθόνη Για να έχουμε μια «καλή» απόκριση αυτή πρέπει να είναι κατά προτίμηση μεγαλύτερη από 144 Hz Εισαγωγή στην Πληροφορκή
Γενικά Χαρακτηριστικά Επιλογής μίας Οθόνης (2/4) … η απόσταση των κουκκίδων ελέγχουν την απεικόνιση των χρωμάτων περιγράφει την απόσταση μεταξύ των pixels Γενικά, όσο μικρότερη είναι αυτή η απόσταση τόσο καθαρότερη εικόνα επιτυγχάνεται, αφού έχουμε περισσότερα pixels σε μία περιοχή Οι τιμές της απόστασης των κουκκίδων κυμαίνονται από 0,24mm - 0,31mm η συμβατότητα με τα πρότυπα χαμηλής ακτινοβολίας αφορά τη συμβατότητα της οθόνης με κάποιο ή κάποια από τα πρότυπα αυτά, όπως είναι τα MPRII, TCO 92/95/99 και ELF&VLF Εισαγωγή στην Πληροφορκή
Γενικά Χαρακτηριστικά Επιλογής μίας Οθόνης (3/4) … το βάθος χρώματος περιγράφει το πλήθος των διαφορετικών χρωμάτων που μπορούν να αναπαρασταθούν Πιο αναλυτικά, κάθε pixel απεικονίζει ένα χρώμα Κάθε χρώμα για την κωδικοποίησή του απαιτεί έναν αριθμό από bits Π.χ. αν έχουμε στη διάθεσή μας 16 bits για την αναπαράσταση των χρωμάτων, τότε μπορούμε να κωδικοποιήσουμε 216 = 65.536 αριθμούς και επομένως να αναπαραστήσουμε 65.536 χρώματα Ένας πολύ συνηθισμένος τρόπος αναπαράστασης χρωμάτων σε έναν υπολογιστή είναι η παλέτα Με την αναπαράσταση RGB (Red-Green-Blue), τα χρώματα δημιουργούνται από συνδυασμούς τριών βασικών χρωμάτων (κόκκινου, πράσινου και μπλε), επιλέγοντας την κατάλληλη απόχρωση από το καθένα από αυτά Κάθε ένα από τα τρία βασικά χρώματα κωδικοποιείται από 8 bits, δηλαδή μπορούν να αναπαρασταθούν 28 = 256 αποχρώσεις του Συνολικά δημιουργούνται 256 * 256 * 256 = 16.777.216 ≈ 16,5 ΜΒ χρώματα (ή αλλιώς 3*8 = 24 bits συνολικά, άρα 224 = 16.777.216 ≈ 16,5 ΜΒ) Εισαγωγή στην Πληροφορκή
Γενικά Χαρακτηριστικά Επιλογής μίας Οθόνης (4/4) Επιλογή χρώματος από την παλέτα Εισαγωγή στην Πληροφορκή
Συσκευές εισόδου/εξόδου (1/2) Οι συσκευές εισόδου/εξόδου είναι συσκευές που μεταφέρουν τόσο δεδομένα και προγράμματα από τον έξω κόσμο στον υπολογιστή, όσο και αποτελέσματα, που προέρχονται από επεξεργασία δεδομένων εισόδου, προς τον εξωτερικό κόσμο Χαρακτηριστικό παράδειγμα τέτοιας συσκευής είναι η οθόνη αφής (που ανήκει στις συσκευές επιλογής), καθώς πέρα από την είσοδο δεδομένων χρησιμοποιείται και για απεικόνιση/έξοδο αποτελεσμάτων προς το χρήστη Επίσης, μία άλλη συσκευή εισόδου/εξόδου είναι ο διαμορφωτής/αποδιαμορφωτής (modulator/demodulator) ή πιο απλά modem. To modem επιτρέπει την επικοινωνία δυο υπολογιστών με τη χρήση της ίδιας τηλεφωνικής γραμμής και λειτουργεί ως εξής: αρχικά μετατρέπει το ψηφιακό σήμα σε αναλογικό το εκπέμπει στην τηλεφωνική γραμμή και στη συνέχεια, όταν το σήμα φτάσει στο δεύτερο υπολογιστή, κάνει την αντίστροφη δουλειά Τα modem διακρίνονται σε εξωτερικά και εσωτερικά Εισαγωγή στην Πληροφορκή
Συσκευές εισόδου/εξόδου (2/2) Όλες οι συσκευές που έχουμε περιγράψει μέχρι στιγμής δεν αποθηκεύουν δεδομένα, γι’ αυτό και ονομάζονται μη αποθηκευτικές Υπάρχουν όμως, και οι αποθηκευτικές συσκευές Τέτοιες συσκευές εισόδου/εξόδου είναι οι μαγνητικές και οι οπτικές συσκευές, στις οποίες μπορούμε τόσο να γράφουμε δεδομένα (έξοδος) όσο και να διαβάζουμε δεδομένα (είσοδος) Εισαγωγή στην Πληροφορκή
Η Κεντρική Μονάδα Συστήματος Η κεντρική μονάδα του συστήματος (base unit ή system unit) αποτελεί τον πυρήνα ενός υπολογιστή Σε έναν προσωπικό ηλεκτρονικό υπολογιστή την ονομάζουμε απλά κουτί (box) ή πύργο (tower) Τα συστατικά από τα οποία αποτελείται απαρτίζουν το βασικό σύστημα του υπολογιστή Τα κυριότερα από αυτά είναι η μητρική πλακέτα η κεντρική μονάδα επεξεργασίας η κύρια μνήμη Εισαγωγή στην Πληροφορκή
Μητρική Πλακέτα (1/2) Η μητρική πλακέτα είναι η βασικότερη μονάδα του υπολογιστή Είναι αυτή που καθορίζει την αξιοπιστία και τη σταθερότητα λειτουργίας του υπολογιστή Πρόκειται για μία επίπεδη επιφάνεια (πλακέτα) πάνω στην οποία στηρίζονται η κεντρική μονάδα επεξεργασίας, η κύρια μνήμη, καθώς και όλα τα υπόλοιπα εξαρτήματα του υπολογιστή Όλα τα εξαρτήματα τοποθετούνται πάνω στην πλακέτα με τη χρήση υποδοχών και συνδέσμων που βρίσκονται σε αυτήν Εκτός όμως από τα εξαρτήματα, στην πλακέτα συνδέονται και κάποιες άλλες περιφερειακές συσκευές (π.χ. πληκτρολόγιο, εκτυπωτής, εξωτερικά μέσα αποθήκευσης), με τη χρήση θυρών Οι θύρες (ports) είναι ειδικές υποδοχές που δίνουν τη δυνατότητα στον υπολογιστή να επικοινωνεί με περιφερειακές συσκευές Εισαγωγή στην Πληροφορκή
Μητρική Πλακέτα (1/2) Κάθε μητρική πλακέτα κατασκευάζεται για ένα συγκεκριμένο τύπο επεξεργαστή Επίσης, πάνω στη μητρική πλακέτα είναι χαραγμένοι διάδρομοι ή αλλιώς δίαυλοι (buses), οι οποίοι επιτρέπουν την επικοινωνία μεταξύ των διαφόρων εξαρτημάτων Εισαγωγή στην Πληροφορκή
Η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) (1/2) Η κεντρική μονάδα επεξεργασίας (Central Processing Unit, CPU) ή απλά επεξεργαστής αποτελεί την καρδιά του υπολογιστή Αναλαμβάνει την επεξεργασία των πληροφοριών και ελέγχει και συντονίζει όλες τις άλλες μονάδες του υπολογιστή Τοποθετείται πάνω στη μητρική πλακέτα σε ειδική υποδοχή, ενώ συνοδεύεται πάντα από μία ψύκτρα με ανεμιστηράκι η οποία διασφαλίζει την προστασία της από υπερθέρμανση, καθώς αποβάλλει μεγάλο ποσό θερμότητας Εισαγωγή στην Πληροφορκή
Η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) (2/2) Η ΚΜΕ έχει ως κύριες αρμοδιότητες την εκτέλεση πράξεων και την μεταφορά δεδομένων Η μεταφορά των δεδομένων από και προς αυτήν επιτυγχάνεται μέσω των δίαυλων, οι οποίοι την τροφοδοτούν συνεχώς με δεδομένα Τα δεδομένα αυτά μπορούν να κατηγοριοποιηθούν σε δύο είδη: Οι εντολές (instructions) είναι σχετικές με το πώς η κεντρική μονάδα επεξεργασίας θα διαχειριστεί τα υπόλοιπα δεδομένα Στην ουσία πρόκειται για τον κώδικα ενός προγράμματος Περιλαμβάνει τα συνεχή μηνύματα που στέλνουμε στον υπολογιστή μέσω των διαφόρων μονάδων εισόδου (π.χ. μηνύματα εκτύπωσης ή αποθήκευσης) Τα δεδομένα (data) είναι η πληροφορία προς επεξεργασία, την οποία η ΚΜΕ πρέπει να διαχειριστεί ακολουθώντας τις εντολές Τα δεδομένα είναι τα τυπικά δεδομένα που εισάγει ο χρήστης Π.χ. όταν πληκτρολογούμε κείμενο στέλνουμε στον υπολογιστή δεδομένα, ενώ όταν ζητάμε αποθήκευση του κειμένου μας του στέλνουμε εντολές Εισαγωγή στην Πληροφορκή
Είσοδος και έξοδος δεδομένων στην ΚΜΕ Κεντρική Μονάδα Επεξεργασίας (CPU) Εντολές για επεξεργασία δεδομένων Έξοδος επεξεργασμένων δεδομένων Είσοδος δεδομένων για επεξεργασία Εισαγωγή στην Πληροφορκή
Υπομονάδες της ΚΜΕ Η κεντρική μονάδα επεξεργασίας αποτελείται από 3 βασικές υπομονάδες: τη μονάδα ελέγχου την αριθμητική και λογική μονάδα τους καταχωρητές Εισαγωγή στην Πληροφορκή
Μονάδα Ελέγχου – ΜΕ (Control Unit, CU) (1/2) Η Μονάδα Ελέγχου είναι η οργανωτική δύναμη στον υπολογιστή καθώς διευθύνει τη λειτουργία του (ορίζοντας τη διαδοχή των πράξεων) και φροντίζει για το συντονισμό των μερών του Συγκεκριμένα, κατά την εκτέλεση του προγράμματος, η μονάδα ελέγχου ανακτά από τη μνήμη τις εντολές Οι εντολές είναι στην ουσία κωδικοποιημένα ηλεκτρικά σήματα, τα οποία, η μονάδα ελέγχου αφού τα «αποκωδικοποιήσει» και προσδιορίσει τον τύπο τους στη συνέχεια εκπέμπει σήματα ελέγχου προς τις κατάλληλες μονάδες Αυτά τα σήματα ελέγχου μπορεί να σταλούν είτε στη μνήμη για την εξαγωγή πληροφοριών προς τις άλλες μονάδες του υπολογιστή ή τη λήψη πληροφοριών απ’ αυτές και την αποθήκευσή τους στη μνήμη είτε στην αριθμητική και λογική μονάδα για την εκτέλεση των επιθυμητών υπολογισμών είτε, τέλος, στις μονάδες εισόδου/εξόδου για τη μεταφορά πληροφοριών από τον υπολογιστή προς το εξωτερικό του περιβάλλον, και αντιστρόφως Εισαγωγή στην Πληροφορκή
Μονάδα Ελέγχου – ΜΕ (Control Unit, CU) (1/2) Άλλες Μονάδες Μετρητής Προγράμματος Program Counter (PC) Μνήμη Καταχωρητής Εντολής Instruction Register (IR) Εισαγωγή στην Πληροφορκή
Αριθμητική και Λογική Μονάδα - Α/Λ (Arithmetic and Logical Unit, ALU) (1/2) Η Αριθμητική και Λογική Μονάδα είναι η μονάδα που εκτελεί όλες τις πράξεις και τους υπολογισμούς που απαιτούνται για την εκτέλεση των εντολών Συγκεκριμένα, εκτελεί αριθμητικές πράξεις όπως πρόσθεση (+), αφαίρεση (-), πολλαπλασιασμό (*), διαίρεση (/), λογικές πράξεις όπως σύζευξη (AND), διάζευξη (OR), άρνηση (NOT) Οι λογικές πράξεις είναι αυτές που διαπιστώνουν αν μία (λογική) παράσταση είναι αληθής ή ψευδής συγκρίσεις π.χ. x<5 υπολογισμούς διευθύνσεων (για προσπέλαση στη μνήμη) Εισαγωγή στην Πληροφορκή
Αριθμητική/Λογική Μονάδα (Arithmetic Logical Unit) Αριθμητική και Λογική Μονάδα - Α/Λ (Arithmetic and Logical Unit, ALU) (2/2) Όλες οι πράξεις γίνονται βάση προκαθορισμένων λειτουργιών, μετασχηματίζοντας ή συνδυάζοντας τα απαραίτητα δεδομένα, για τη δημιουργία των εκάστοτε επιθυμητών αποτελεσμάτων Οι κωδικοποιημένες παραστάσεις των δεδομένων δίδονται στην αριθμητική και λογική μονάδα από τη μνήμη Η μονάδα ελέγχου, η οποία γνωρίζει την πράξη που πρέπει να εκτελεστεί, μεταδίδει στην αριθμητική και λογική μονάδα τα απαραίτητα σήματα ελέγχου, ώστε αυτή να υπολογίσει τα επιθυμητά αποτελέσματα των πράξεων Αριθμητική/Λογική Μονάδα (Arithmetic Logical Unit) Κύκλωμα Αριθμητικών/Λογικών Πράξεων Συσσωρευτής Accumulator (ACCU) Καταχωρητής Μνήμη Καταχωρητής Εισαγωγή στην Πληροφορκή
Καταχωρητές (Registers) (3/3) Η πρόσβαση σε καταχωρητές είναι πιο γρήγορη από πρόσβαση σε θέσεις μνήμης καθώς αποτελούν την ταχύτερη μονάδα μνήμης του υπολογιστή Το μέγεθος των καταχωρητών καθορίζει το πόσα δεδομένα μπορεί να διαχειριστεί ο επεξεργαστής σε μία δεδομένη στιγμή, και μάλιστα το μέγεθος αυτό προσδιορίζει και το μέγεθός του Για παράδειγμα, ένας επεξεργαστής 32 bit σημαίνει ότι οι καταχωρητές του είναι της τάξης των 32 bit Το μέγεθος των καταχωρητών είναι ίσο με το μήκος λέξης του υπολογιστή Εισαγωγή στην Πληροφορκή
Καταχωρητές (Registers) (2/3) Οι καταχωρητές του κάθε επεξεργαστή χωρίζονται σε δύο βασικές κατηγορίες: καταχωρητές ειδικής χρήσης είναι υπεύθυνοι για συγκεκριμένες λειτουργίες του επεξεργαστή καταχωρητές γενικής χρήσης είναι αυτοί που δεν έχουν δεσμευτεί από το σύστημα για μία συγκεκριμένη λειτουργία, αλλά χρησιμοποιούνται για να κρατούν δεδομένα τα οποία επεξεργάζονται την τρέχουσα στιγμή Εισαγωγή στην Πληροφορκή
Καταχωρητές (Registers) (1/3) Καταχωρητές ειδικής χρήσης Ο καταχωρητής εντολής (instruction register, IR) περιέχει την εντολή που εκτελείται την τρέχουσα χρονική στιγμή Ο μετρητής προγράμματος (program counter, PC) περιέχει τη διεύθυνση μνήμης της επόμενης εντολής που πρόκειται να εισαχθεί και να εκτελεστεί Η τιμή του ενημερώνεται κατάλληλα κατά την εκτέλεση της εντολής ώστε στο τέλος της να περιέχει τη νέα διεύθυνση της επόμενης εντολής Με απλά λόγια, θα λέγαμε ότι ο PC δείχνει στην επόμενη εντολή που πρόκειται να ανακτηθεί από τη μνήμη Και οι δύο παραπάνω καταχωρητές βρίσκονται στη μονάδα ελέγχου Ο συσσωρευτής (accumulator, ACCU) βρίσκεται στην αριθμητική και λογική μονάδα και συγκεντρώνει τα αποτελέσματα των υπολογισμών Εισαγωγή στην Πληροφορκή
Ο Κύκλος Φέρε-Εκτέλεσε (Fetch-Execute Cycle) Για να εκτελεστεί ένα πρόγραμμα, ο επεξεργαστής ανακτά μία μία τις εντολές του προγράμματος και επιτελεί τις λειτουργίες που καθορίζει κάθε μία από αυτές Ο κύκλος εκτέλεσης εντολών ή κύκλος μηχανής ή απλά κύκλος φέρε-εκτέλεσε αναφέρεται στο διάστημα που απαιτείται για την ολοκλήρωση της εκτέλεσης μίας εντολής Ο κύκλος αυτός διέρχεται από δύο φάσεις: φάση ανάκτησης (fetch phase) μεταφέρεται από τη μνήμη στην κεντρική μονάδα επεξεργασίας η επόμενη εντολή που θα εκτελεστεί φάση εκτέλεσης (execution phase) η κεντρική μονάδα επεξεργασίας εκτελεί την εντολή και αν χρειάζεται αποθηκεύει τα αποτελέσματα στη μνήμη Εισαγωγή στην Πληροφορκή
Φάση Ανάκτησης Ο PC (μετρητής προγράμματος) περιέχει τη διεύθυνση της θέσης μνήμης της επόμενης εντολής που πρόκειται να εκτελεστεί Ο επεξεργαστής διαβάζει αυτή τη διεύθυνση και στη συνέχεια ανακτά τα περιεχόμενα της θέσης μνήμης στην οποία δείχνει αυτή Τα περιεχόμενα που διάβασε είναι στην ουσία η εντολή που θα εκτελεστεί και τα φορτώνει στον IR (καταχωρητή εντολής) Δηλαδή, διαβάζει το περιεχόμενο του PC, πηγαίνει στη διεύθυνση μνήμης που μόλις διάβασε και αντιγράφει το περιεχόμενο αυτής της διεύθυνσης στον IR Στη συνέχεια ανανεώνει τον PC ώστε να περιέχει τη διεύθυνση της επόμενης εντολής που θα εκτελεστεί Έχοντας λοιπόν την προς εκτέλεση εντολή στον IR, το επόμενο βήμα αυτής της φάσης είναι η αποκωδικοποίηση (decode) της εντολής Η εντολή διασπάται και ερμηνεύεται από την κεντρική μονάδα επεξεργασίας, δηλαδή αποκωδικοποιείται σε σήματα ελέγχου και προσδιορίζεται η λειτουργία που θα εκτελεστεί (για παράδειγμα αν πρόκειται για εντολή που έχει πρόσβαση από μονάδα εισόδου ή για εντολή που στέλνει δεδομένα σε μονάδα εξόδου) Εισαγωγή στην Πληροφορκή
Φάση εκτέλεσης Η εκτέλεση μιας εντολής συνήθως σημαίνει εκτέλεση ενός ή περισσότερων επιμέρους βημάτων Οι στοιχειώδεις αυτές λειτουργίες που αν εκτελεστούν σε συγκεκριμένη σειρά συνθέτουν μία εντολή περιλαμβάνουν: Μεταφορά δεδομένων από έναν καταχωρητή του επεξεργαστή σε κάποιον άλλον ή στην ALU Εκτέλεση μίας αριθμητικής ή λογικής πράξης (στην ALU) και αποθήκευση του αποτελέσματος σε έναν καταχωρητή Ανάκτηση των περιεχομένων μίας συγκεκριμένης θέσης μνήμης και τοποθέτησή τους σε έναν καταχωρητή Αποθήκευση δεδομένων από έναν καταχωρητή σε μία συγκεκριμένη θέση μνήμης Εισαγωγή στην Πληροφορκή
Ο Κύκλος Φέρε-Εκτέλεσε (Fetch-Execute Cycle) Μονάδα Ελέγχου Φάση Ανάκτησης Μεταφορά της επόμενης εντολής Αποκωδικοποίηση της εντολής Καταχωρητές Αριθμητική/Λογική Μονάδα Φάση Εκτέλεσης Μεταφορά των απαραίτητων δεδομένων Εκτέλεση της εντολής Μνήμη Εισαγωγή στην Πληροφορκή
Ταχύτητα της ΚΜΕ (1/2) Η κεντρική μονάδα επεξεργασίας είναι σχεδιασμένη ώστε να λειτουργεί σύμφωνα με ένα ηλεκτρικό σήμα χρονισμού, που ονομάζεται ρολόι (processor clock) Το ρολόι είναι ένας παλμός που εκπέμπεται και εναλλάσσεται περιοδικά μεταξύ μηδέν και ένα Ο χρόνος που χρειάζεται το ρολόι για να μεταπηδήσει από το μηδέν στο ένα και πίσω στο μηδέν, ονομάζεται περίοδος ή κύκλος του ρολογιού (clock cycle), και μετριέται σε δευτερόλεπτα Ο επεξεργαστής για να εκτελέσει μία εντολή, πρώτα διαμερίζει τη διαδικασία που πρέπει να εκτελεστεί σε απλούστερα βήματα έτσι ώστε καθένα από αυτά να μπορεί να εκτελεστεί σε ένα κύκλο ρολογιού Εισαγωγή στην Πληροφορκή
Ταχύτητα της ΚΜΕ (2/2) Το αντίστροφο της διάρκειας ενός κύκλου ρολογιού ονομάζεται συχνότητα ρολογιού (clock rate) δηλαδή Συχνότητα = 1/Κύκλος_Ρολογιού Η συχνότητα μετριέται σε κύκλους ανά δευτερόλεπτο ή αλλιώς Hertz (Hz) Οι επεξεργαστές των σύγχρονων προσωπικών υπολογιστών έχουν συχνότητες ρολογιού οι οποίες κυμαίνονται από μερικές εκατοντάδες εκατομμύρια έως σε περισσότερους από πέντε δισεκατομμύρια κύκλους ανά δευτερόλεπτο Για παράδειγμα, ένας επεξεργαστής των 3,1 GHz εκτελεί 3,1 δισεκατομμύρια (3.100.000.000) κύκλους ανά δευτερόλεπτο Εισαγωγή στην Πληροφορκή
Συσκευές Αποθήκευσης (Μνήμη) Η μονάδα μνήμης επιτελεί μία από τις βασικότερες λειτουργίες ενός υπολογιστικού συστήματος, την αποθήκευση και ανάκτηση δεδομένων και προγραμμάτων Ο όρος μνήμη (memory) αναφέρεται γενικά σε οποιαδήποτε συσκευή έχει την ιδιότητα να αποθηκεύει πληροφορίες αν και συχνά για τις συσκευές δευτερεύουσας μνήμης προτιμάμε τον όρο μέσο αποθήκευσης Ένα υπολογιστικό σύστημα διαθέτει πολλές κατηγορίες μνήμης, καθεμία από τις οποίες έχει τα δικά της ειδικά χαρακτηριστικά, τα οποία καθορίζουν και τον τρόπο χρήσης της μνήμης στον υπολογιστή Εισαγωγή στην Πληροφορκή
Κύρια μνήμη Η κύρια μνήμη (main memory) είναι μία γρήγορη μνήμη στην οποία αποθηκεύονται τα εκτελέσιμα προγράμματα και όλα τα απαραίτητα δεδομένα για την εκτέλεση των προγραμμάτων καθώς και για την ορθή λειτουργία του υπολογιστή Ο μνήμη αυτή έχει σταθερό χρόνο προσπέλασης δηλαδή κάθε λέξη της (ο όρος εξηγείται παρακάτω) μπορεί να προσπελαθεί σε καθορισμένο χρόνο, ο οποίος είναι ανεξάρτητος από τη θέση της λέξης στη μνήμη Η κύρια μνήμη αυτή είναι απευθείας συνδεδεμένη με τον επεξεργαστή και μπορεί συνήθως να επικοινωνήσει άμεσα με οποιαδήποτε άλλη μνήμη Χωρίζεται σε δύο κατηγορίες: τη μνήμη τυχαίας προσπέλασης τη μνήμη μόνο για ανάγνωση Εισαγωγή στην Πληροφορκή
Μνήμη Τυχαίας Προσπέλασης (Random Access Memory, RAM) Η Μνήμη Τυχαίας Προσπέλασης διατηρεί τις εντολές και τα δεδομένα προς επεξεργασία, καθώς και τα αποτελέσματα της εκτέλεσης των εντολών Όλα τα δεδομένα αποθηκεύονται προσωρινά στη μνήμη αυτή, καθώς δεν παρέχει δυνατότητα μόνιμης αποθήκευσης Πρόκειται δηλαδή για πτητική μνήμη (volatile memory) που σημαίνει ότι μόλις σταματήσει η παροχή ηλεκτρικού ρεύματος τα δεδομένα χάνονται Όταν ολοκληρωθεί η εκτέλεση ενός προγράμματος, η RAM αποστέλλει τα αποτελέσματα στην κατάλληλη έξοδο ή σε κάποια δευτερεύουσα μνήμη για μόνιμη αποθήκευση Εισαγωγή στην Πληροφορκή
Μνήμη Μόνο για Ανάγνωση (Read Only Memory, ROM) Η Μνήμη Μόνο για Ανάγνωση είναι ένας ειδικός τύπος μνήμης, που είναι μόνο για ανάγνωση Τα περιεχόμενά της δε μεταβάλλονται, δηλαδή μπορούμε να διαβάσουμε από αυτήν αλλά όχι και να γράψουμε σε αυτήν Η ταχύτητα μιας μνήμης ROM είναι μικρότερη από την ταχύτητα μίας μνήμης RAM Γι’ αυτό το λόγο οποτεδήποτε χρειαζόμαστε δεδομένα της μνήμης ROM, αυτά μεταφέρονται πρώτα στη μνήμη RAM προτού γίνουν έτοιμα να χρησιμοποιηθούν Πρόκειται για μη πτητική μνήμη (non-volatile memory) δηλαδή τα δεδομένα διατηρούνται σε αυτήν ακόμα και αν διακόψουμε την παροχή ηλεκτρικού ρεύματος Η ιδιότητά της αυτή εξασφαλίζει δύο επιθυμητά χαρακτηριστικά: μονιμότητα και ασφάλεια Έτσι, χρησιμοποιείται σε καταστάσεις όπου τα δεδομένα χρειάζεται να αποθηκευτούν μόνιμα, χωρίς να μπορούν να δεχθούν μεταβολές (ασφάλεια) Η κυριότερη χρήση της είναι κατά τη διάρκεια της διαδικασίας εκκίνησης του υπολογιστή Εισαγωγή στην Πληροφορκή
Διαδικασία εκκίνησης (boot process) Η διαδικασία εκκίνησης περιέχει εντολές και πληροφορίες απαραίτητες για την εκκίνηση του υπολογιστή και για τον έλεγχο της ορθής λειτουργίας του Κατά τη διαδικασία εκκίνησης, ένας υπολογιστής δέχεται κάποιες εντολές προτού να είναι έτοιμος να δεχτεί τις εντολές του χρήστη Αποτελείται από 6 βασικά στάδια εντολών: Αρχικά διοχετεύεται ηλεκτρικό ρεύμα στη μητρική πλακέτα Ο υπολογιστής εκτελεί εντολές που βρίσκονται αποθηκευμένες στη μνήμη ROM και πραγματοποιεί διάφορα διαγνωστικά τεστ του συστήματος Στη συνέχεια το λειτουργικό σύστημα φορτώνεται στη μνήμη RAM. Ο επεξεργαστής φορτώνει δεδομένα από διάφορους οδηγούς (όπως ο σκληρός δίσκος ή η δισκέτα) Ο επεξεργαστής «τρέχει» ιδιαίτερα προγράμματα σχετικά με το συγκεκριμένο χρήστη Τέλος, μία οθόνη υποδεικνύει ότι ο υπολογιστής είναι έτοιμος να δεχτεί τις εντολές του χρήστη Εισαγωγή στην Πληροφορκή
Δευτερεύουσα μνήμη Η δευτερεύουσα (ή βοηθητική) μνήμη (secondary storage) αποτελείται από συσκευές που παρέχουν μόνιμη αποθήκευση των δεδομένων Καθώς η κύρια μνήμη στο μεγαλύτερο μέρος της είναι πτητική, με περιορισμένες δυνατότητες αποθήκευσης, δημιουργείται η ανάγκη για συσκευές αποθήκευσης που θα παρέχουν μόνιμη αποθήκευση (volatile) ενός μεγάλου όγκου δεδομένων Οι συσκευές αυτές χαρακτηρίζονται από χαμηλό κόστος αποθήκευσης και σχετικά μεγάλο χρόνο προσπέλασης Μπορούν είτε να είναι εγκατεστημένες από την αρχή, είτε να προστεθούν αργότερα στον υπολογιστή Σε κάθε περίπτωση, για την επεξεργασία των δεδομένων που βρίσκονται σε τέτοιες συσκευές, απαιτείται πρώτα η μεταφορά τους στην κύρια μνήμη Μία μεγάλη ποικιλία συσκευών δευτερεύουσας μνήμης είναι διαθέσιμη, η οποία μεταξύ άλλων περιλαμβάνει τους μαγνητικούς δίσκους, τις μαγνητικές ταινίες και τους οπτικούς δίσκους Εισαγωγή στην Πληροφορκή
Μαγνητικός δίσκος (magnetic disk) Ο μαγνητικός δίσκος χρησιμοποιείται για μόνιμη αποθήκευση δεδομένων, παρέχοντας σχετικά μικρό κόστος αποθήκευσης και μεγάλο χρόνο προσπέλασης Αποτελείται από έναν ή περισσότερους δίσκους, οι οποίοι είναι τοποθετημένοι σε έναν άξονα που περνάει από το κέντρο τους Γύρω από αυτόν τον άξονα μπορούν να περιστρέφονται οι δίσκοι, όλοι με ομοιόμορφη ταχύτητα Τα δεδομένα είναι αποθηκευμένα στις επιφάνειες των δίσκων, πάνω στις οποίες τοποθετούνται κεφαλές ανάγνωσης/εγγραφής (read/write) Σε κάθε επιφάνεια αντιστοιχεί μία κεφαλή Αυτές είναι υπεύθυνες για την ανάγνωση και την εγγραφή των δεδομένων Είναι τοποθετημένες πάνω σε έναν βραχίονα, ο οποίος μπορεί να μετακινείται κατά μήκος των δίσκων, επιτρέποντας έτσι στις κεφαλές να μετακινούνται ακτινικά στην επιφάνεια των δίσκων Εισαγωγή στην Πληροφορκή
Δομή των μαγνητικών δίσκων Η μηχανική δομή των μαγνητικών δίσκων αποτελείται από τρία βασικά υποσυστήματα δίσκος (disk) είναι οι μαγνητικοί δίσκοι οδηγός δίσκου (disk drive) είναι ο μηχανισμός που περιστρέφει το δίσκο και μετακινεί τις κεφαλές ελεγκτής δίσκου (disk controller) είναι το κύκλωμα που ελέγχει τη λειτουργία όλου του συστήματος Ο όρος δίσκος συχνά χρησιμοποιείται για να αναφερθούμε σε ολόκληρη τη δομή Εισαγωγή στην Πληροφορκή
Επιφάνεια Δίσκου Πώς οργανώνονται τα δεδομένα πάνω στην επιφάνεια του δίσκου; Κάθε επιφάνεια χωρίζεται σε ομόκεντρους κύκλους, καθένας από τους οποίους ονομάζεται τροχιά ή ίχνος (track) Κάθε τροχιά χωρίζεται σε τομείς (sectors) Συνήθως όλες οι τροχιές περιέχουν το ίδιο πλήθος τομέων Αν πάρουμε από όλες τις επιφάνειες των δίσκων τις αντίστοιχες τροχιές, τότε έχουμε έναν λογικό κύλινδρο (logical cylinder) Για να προσπελάσουμε τα δεδομένα χρειάζεται να καθορίσουμε την επιφάνεια, την τροχιά και τον τομέα (π.χ. μπορούμε να ζητήσουμε ανάγνωση δεδομένων από την Επιφάνεια 3, Τροχιά 8, Τομέας 4) Η λειτουργίες ανάγνωσης/εγγραφής ξεκινούν στα όρια των τομέων Επίσης, μπορούμε να προσπελάσουμε τα δεδομένα που βρίσκονται σε όλες τις τροχιές ενός κυλίνδρου χωρίς να μετακινήσουμε τις κεφαλές ανάγνωσης/γραφής αρκεί να περιστρέψουμε τους δίσκους, υπό την προϋπόθεση βέβαια ότι οι κεφαλές βρίσκονται στην επιθυμητή τροχιά Εισαγωγή στην Πληροφορκή
Δομή ενός Σκληρού Δίσκου Κεφαλή Τροχιά (Track) Άξονας Τομέας Κύλινδρος Τομέας (Sector) Τροχιά Τομέας Επιφάνεια ενός Δίσκου Σκληρός Δίσκος Εισαγωγή στην Πληροφορκή
Χρόνος προσπέλασης του δίσκου (1/2) Παρόλο που ο μαγνητικός δίσκος είναι μία μνήμη τυχαίας προσπέλασης, διακρίνεται από μεγάλο χρόνο προσπέλασης λόγω των κινουμένων μερών που επηρεάζουν το χρόνο μετακίνησης σε μία συγκεκριμένη θέση μνήμης Ο χρόνος προσπέλασης του δίσκου (disk access time) εξαρτάται από τρεις επιμέρους χρόνους: τον χρόνο αναζήτησης την καθυστέρηση μεταφοράς τον χρόνο μεταφοράς Εισαγωγή στην Πληροφορκή
Χρόνος προσπέλασης του δίσκου (2/2) Ο χρόνος αναζήτησης (seek time) είναι ο χρόνος που απαιτείται για να μετακινηθεί η κεφαλή ανάγνωσης/εγγραφής στην κατάλληλη τροχιά Ο χρόνος αυτός εξαρτάται από την αρχική θέση της κεφαλής σε σχέση με την τελική θέση στην οποία πρέπει να μετακινηθεί Η καθυστέρηση μεταφοράς (latency time) ή καθυστέρηση περιστροφής (rotational delay) είναι ο χρόνος που απαιτείται (μετά την τοποθέτηση της κεφαλής στην κατάλληλη τροχιά) για να περιστραφεί ο δίσκος, έτσι ώστε το σημείο έναρξης του επιθυμητού τομέα να βρεθεί κάτω από την κεφαλή ανάγνωσης/εγγραφής Ο χρόνος μεταφοράς (transfer time) είναι ο χρόνος που απαιτείται για να μεταφερθεί μία ομάδα από bits, τυπικά τα δεδομένα ενός τομέα, στην κύρια μνήμη Ο χρόνος μεταφοράς είναι πολύ μικρότερος σε σχέση με τους δύο άλλους χρόνους Εισαγωγή στην Πληροφορκή
Μαγνητική ταινία (magnetic tape) (1/2) Η μαγνητική ταινία χρησιμοποιείται για αποθήκευση μεγάλου όγκου δεδομένων καθώς έχει το μικρότερο κόστος αποθήκευσης από όλες τις υπόλοιπες μονάδες Πρόκειται για την πρώτη συσκευή μαζικής αποθήκευσης Όμως είναι πολύ αργή (έχει το μεγαλύτερο χρόνο προσπέλασης) Αυτό οφείλεται στην σειριακή προσπέλαση των δεδομένων Λόγω των παραπάνω χαρακτηριστικών αυτής της μονάδας αποθήκευσης, η κύρια εφαρμογή της είναι η μόνιμη αποθήκευση δεδομένων που δεν χρησιμοποιούνται συχνά από την κεντρική μονάδα επεξεργασίας Συγκεκριμένα, χρησιμοποιείται για τήρηση εφεδρικών αντιγράφων (back up) αρχειοθέτηση (archiving) των δεδομένων μας Ο όρος αρχειοθέτηση αναφέρεται στην αποθήκευση δεδομένων για μεγάλο χρονικό διάστημα, που θα προσπελαστούν ελάχιστες φορές Εισαγωγή στην Πληροφορκή
Μαγνητική ταινία (magnetic tape) (2/2) Μπομπίνα ταινίας Μπομπίνα τυλίγματος Κεφαλή ανάγνωσης/εγγραφής Ταινία Εισαγωγή στην Πληροφορκή
Οπτικός δίσκος Ο οπτικός δίσκος είναι μία συσκευή μεγάλης χωρητικότητας που χρησιμοποιεί οπτικά μέσα Ο συμπιεσμένος δίσκος (Compact Disk, CD) χρησιμοποιεί αυτήν την τεχνολογία σε συστήματα αναπαραγωγής ήχου Συγκεκριμένα, μία ακτίνα laser διαπερνάει την επιφάνεια του δίσκου και διαβάζει τα δεδομένα που είναι αποθηκευμένα σε αυτόν Το γνωστό σε όλους μας CD-ROM (Compact Disk – Read Only Memory) είναι ένας συμπιεσμένος δίσκος μόνο για ανάγνωση Εκτός όμως από αυτό, έχουν αναπτυχθεί και εγγράψιμα CDs, τα οποία ονομάζονται CDs εγγραφής καθώς επίσης και επανεγγράψιμα CDs, όπου μπορεί ο χρήστης να γράψει ή να επανεγγράψει (πάνω από μία φορά) δεδομένα, αντίστοιχα Τέλος, ο ψηφιακός πολυμορφικός δίσκος (DVD) έχει σημαντικά αυξημένες ικανότητες αποθήκευσης από ένα CD, καθώς μπορεί να αποθηκεύσει μία πλήρους μεγέθους ταινία Εισαγωγή στην Πληροφορκή
Κρυφή μνήμη (cache memory) (1/2) Η κρυφή μνήμη είναι μία πολύ γρήγορη μνήμη πιο γρήγορη από την κύρια μνήμη αλλά πιο αργή από τους καταχωρητές της κεντρικής μονάδας επεξεργασίας Κεντρική Μονάδα Επεξεργασίας (CPU) Κρυφή Μνήμη Κύρια Μνήμη Πρόκειται για μία μικρή μνήμη (το μέγεθός της μετριέται συνήθως σε kilobyte) η οποία παρεμβάλλεται μεταξύ της κεντρικής μονάδας επεξεργασίας και της κύριας μνήμης Εισαγωγή στην Πληροφορκή
Κρυφή μνήμη (cache memory) (2/2) Σε αυτήν αποθηκεύονται προγράμματα και δεδομένα που χρησιμοποιούνται από την ΚΜΕ πολύ συχνά Στην ουσία πρόκειται για δεδομένα που έχουμε αντιγράψει από την κύρια μνήμη στην κρυφή μνήμη, ώστε να επιτύχουμε πιο γρήγορη επεξεργασία (λόγω της υψηλότερης ταχύτητας της μνήμης αυτής) Συγκεκριμένα, όταν η ΚΜΕ χρειάζεται να προσπελάσει μια λέξη από τη μνήμη, αρχικά ελέγχεται η κρυφή μνήμη Αν η λέξη υπάρχει εκεί τότε μεταφέρεται στους καταχωρητές της κεντρικής μονάδας επεξεργασίας Αν η λέξη δεν βρεθεί στην κρυφή μνήμη, τότε προσπελαύνεται η κύρια μνήμη, όπου αντιγράφεται το τμήμα της το οποίο ξεκινάει με την επιθυμητή λέξη Το τμήμα αυτό γράφεται στην κρυφή μνήμη (ώστε να είναι διαθέσιμο και για μελλοντική χρήση), αντικαθιστώντας τα προηγούμενα περιεχόμενα αυτής Τέλος, η ΚΜΕ αντιγράφει τη λέξη από την κρυφή μνήμη στους καταχωρητές της Εισαγωγή στην Πληροφορκή
Μονάδες μέτρησης μνήμης Η βασική μονάδα μέτρησης της μνήμης στα υπολογιστικά συστήματα είναι το μπάιτ (byte, B) Ένα byte ισοδυναμεί με οκτώ bit Συνήθως χρησιμοποιούνται τα πολλαπλάσια του byte: Ονομασία Μονάδας Σύμβολο Ακριβές Πλήθος Bytes Bytes κατά Προσέγγιση Μπάιτ (byte) B 1 Κιλομπάιτ (kilobyte) KB 210 = 1.024 103 Μεγκαμπάιτ (megabyte) MB 220 = 1.048.576 106 Γκικγαμπάιτ (gigabyte) GB 230 = 1.073.741.824 109 Τεραμπάιτ (terabyte) TB 240 = 1.099.511.627.776 1012 Πεταμπάιτ (petabyte) PB 250 = 1.125.899.906.842.624 1015 Εξαμπάιτ (exabyte) EB 260 = 1.152.921.504.606.846.976 1018 Εισαγωγή στην Πληροφορκή
Διαχείριση μνήμης (1/5) Η κύρια μνήμη αποτελείται από μία συλλογή από θέσεις αποθήκευσης Κάθε τέτοια θέση αποτελείται από μία ομάδα bits που ονομάζεται λέξη (word) Η λέξη έχει σταθερό μέγεθος, και μάλιστα, συχνά χρησιμοποιούμε τον όρο μήκος λέξης ή μέγεθος λέξης (word length) για να δηλώσουμε τον αριθμό των bits αυτής Τυπικά μήκη λέξης είναι τα 8, 16, 32 ή 64 bits Τα δεδομένα μεταφέρονται από και προς τη μνήμη ανά λέξη Κάθε θέση αποθήκευσης διαθέτει ένα μοναδικό αναγνωριστικό, ώστε να μπορούμε να έχουμε εύκολη πρόσβαση σε αυτήν, που ονομάζεται διεύθυνση (address) Το σύνολο των δυνατών διευθύνσεων, δηλαδή ο συνολικός αριθμός των θέσεων αποθήκευσης, ονομάζεται χώρος διευθύνσεων (address space) Εισαγωγή στην Πληροφορκή
Διαχείριση μνήμης (2/5) Π.χ. μία μνήμη με μέγεθος 64 KB (64 KB = 26 KB = 26 * 210 bytes = 216 bytes = 65,536 bytes) και μήκος λέξης 1 byte διαθέτει χώρο διευθύνσεων με εύρος από 0 έως 65,535 Η ίδια μνήμη με μήκος λέξης 2 bytes διαθέτει χώρο διευθύνσεων με εύρος (65,536 / 2 = 32,768) από 0 έως 32,768, κοκ. Καθώς οι υπολογιστές λειτουργούν αποθηκεύοντας αριθμούς ως σχήματα bit, οι διευθύνσεις αναπαρίστανται κι αυτές με τον ίδιο τρόπο Π.χ. έστω πάλι η μνήμη με μέγεθος 64 KB (216 bytes) και μήκος λέξης 1 byte Όλες οι διαφορετικές διευθύνσεις είναι 65,536 Οπότε, για να προσδιορίσουμε 65,536 διαφορετικούς αριθμούς χρειαζόμαστε 16 bits (αφού 65,536 = 216) Άρα για τον προσδιορισμό της κάθε διεύθυνσης απαιτείται ένα σχήμα 16 bit Εισαγωγή στην Πληροφορκή
Διαχείριση μνήμης (3/5) Αντιστοίχηση μεταξύ ενός αριθμού και του πλήθους των bits που απαιτούνται για την αναπαράστασή του Πλήθος αριθμών (διευθύνσεων) που θέλουμε να αναπαραστήσουμε (N) Αριθμός εκφρασμένος σαν δύναμη του 2 (N = 2x) Δυαδικός λογάριθμος (log2N) Όλες οι δυνατές τιμές Πλήθος bits που απαιτούνται 2 21 1 0, 1 4 22 00, 01, 10, 11 8 23 3 000, 001, 010, 011, 100, 101, 110, 111 Εισαγωγή στην Πληροφορκή
Διαχείριση μνήμης (4/5) Κύρια Μνήμη Οι διευθύνσεις μνήμης καθορίζονται με τη χρήση μη προσημασμένων δυαδικών ακεραίων, δηλαδή θετικών αριθμών (δεν υπάρχουν αρνητικές διευθύνσεις) Επιστρέφοντας στο παράδειγμά μας και στο σχήμα των 16 bit για την αναπαράσταση των διευθύνσεων, είχαμε ότι το εύρος του χώρου διευθύνσεων θα είναι από 0 έως 65,535 Γενικά, αν ένας υπολογιστής διαθέτει N λέξεις μνήμης (δηλαδή ο χώρος διευθύνσεών του είναι N), για την αναφορά όλων των θέσεων μνήμης απαιτούνται log2N bits Διευθύνσεις Περιεχόμενα Εισαγωγή στην Πληροφορκή
Διαχείριση μνήμης (5/5) Έστω ένας υπολογιστής με μνήμη 32 MB Για να υπολογίσουμε πόσα bits απαιτούνται για τη διευθυνσιοδότηση κάθε byte της μνήμης (δηλαδή όταν το μήκος λέξης είναι 1 byte), αρκεί να βρούμε το δυαδικό λογάριθμο των θέσεων μνήμης Αρχικά μετατρέπουμε τη μνήμη σε bytes: 32 MB = 25 MB = 25 * 220 bytes = 225 bytes Επομένως έχουμε: log2225 = 25 Άρα, για κάθε διεύθυνση απαιτούνται 25 bits Έστω τώρα ότι ο υπολογιστής μας έχει 128 MB μνήμης, με μήκος λέξης 8 bytes και θέλουμε ξανά να υπολογίσουμε πόσα bits χρειάζονται για τη διευθυνσιοδότηση κάθε λέξης μνήμης Μετατρέπουμε τη μνήμη σε bytes: 128 MB = 27 MB = 27 * 220 bytes = 227 bytes Όμως, το μήκος κάθε λέξης είναι 8 bytes, δηλαδή 8 bytes = 23 bytes, άρα ο χώρος διευθύνσεων είναι 227 : 23 = 227-3 = 224 Επομένως, για κάθε διεύθυνση απαιτούνται log2224 = 24 bits Εισαγωγή στην Πληροφορκή
Ιεραρχία της μνήμης (1/2) Οι διαφορετικές κατηγορίες μονάδων μνήμης οφείλονται στα ιδιαίτερα χαρακτηριστικά που έχει καθεμία, τα οποία καθορίζουν και τη χρήση της Τα κυριότερα χαρακτηριστικά μίας μονάδας μνήμης είναι ο χρόνος προσπέλασης (access time) δηλαδή ο χρόνος που απαιτείται για να προσπελάσουμε μία λέξη της μνήμης το κόστος ανά μονάδα αποθηκευμένης πληροφορίας το κόστος αναφέρεται στην κατασκευή της μνήμης το μήκος λέξης (word length) η χωρητικότητα (capacity) της δηλαδή η συνολική ποσότητα πληροφοριών που μπορεί να αποθηκεύσει Εισαγωγή στην Πληροφορκή
Ιεραρχία της μνήμης (1/2) Συνήθως, μικρός χρόνος προσπέλασης μιας μνήμης συνοδεύεται από υψηλό κόστος αποθήκευσης και αντιστρόφως Επίσης, η χωρητικότητα μίας μνήμης καθορίζεται από το κόστος αυτής, δηλαδή υψηλό κόστος συνεπάγεται μικρή χωρητικότητα και αντιστρόφως Η προσπέλαση μιας λέξης ορίζεται από τη στιγμή που επιλέγουμε μία θέση μνήμης μέχρι τη στιγμή που το περιεχόμενο της θέσης αυτής έχει διαβαστεί ή γραφτεί Καταχωρητές Χωρητικότητα Ταχύτητα - Κόστος Κρυφή Μνήμη Κύρια Μνήμη Μονάδα Δίσκων Μονάδα Ταινιών Εισαγωγή στην Πληροφορκή
Εσωτερική Διασύνδεση (1/6) Οι μονάδες συνδέονται μεταξύ τους μέσω μιας συλλογής καλωδίων που ονομάζεται δίαυλος (bus) Ο δίαυλος δίνει τη δυνατότητα της ροής των δεδομένων μεταξύ των μονάδων, σύμφωνα με προκαθορισμένους κανόνες μεταφοράς Σε κάθε χρονική στιγμή μόνο δύο μονάδες μπορούν να χρησιμοποιούν το δίαυλο, καθώς ο τελευταίος μπορεί να εκτελεί μία μόνο μεταφορά τη φορά Αποτελείται από έναν αριθμό καλωδίων που επιτρέπουν τη διαχείριση πολλαπλών αιτημάτων χρήσης του διαύλου Κάθε καλώδιο μπορεί να μεταφέρει 1 bit τη φορά (0 ή 1) Εισαγωγή στην Πληροφορκή
Εσωτερική Διασύνδεση (2/6) Όσον αφορά την επικοινωνία μεταξύ της ΚΜΕ και της (κύριας) μνήμης, αυτή επιτυγχάνεται με τη χρήση τριών διαφορετικών ομάδων καλωδίων, καθεμία από τις οποίες εξυπηρετεί και ένα διαφορετικό σκοπό: το δίαυλο δεδομένων το δίαυλο διευθύνσεων το δίαυλο ελέγχου ΚΜΕ Μνήμη Δίαυλος Συσκευές Εισόδου Συσκευές Εξόδου Εισαγωγή στην Πληροφορκή
Εσωτερική Διασύνδεση (3/6) Ο δίαυλος δεδομένων (data bus) είναι υπεύθυνος για τη μεταφορά μιας λέξης κάθε φορά Αποτελείται από πολλά καλώδια, το πλήθος των οποίων εξαρτάται από το μήκος της λέξης (συγκεκριμένα ισούται με τα bits κάθε λέξης) Π.χ. αν η λέξη είναι 32 bits (4 bytes), τότε ο δίαυλος δεδομένων θα αποτελείται από 32 καλώδια, έτσι ώστε να μπορεί να μεταφέρει ταυτόχρονα τα 32 bits της λέξης Ο δίαυλος διευθύνσεων (address bus) επιτρέπει την προσπέλαση μιας συγκεκριμένης λέξης στη μνήμη, μεταφέροντας τη διεύθυνσή της Ο αριθμός των καλωδίων του διαύλου αυτού εξαρτάται από το χώρο διευθύνσεων της μνήμης (συγκεκριμένα ισούται με τα bits κάθε διεύθυνσης) Π.χ. αν κάθε διεύθυνση έχει 32 bits, τότε ο δίαυλος διευθύνσεων θα αποτελείται από 32 καλώδια Εισαγωγή στην Πληροφορκή
Εσωτερική Διασύνδεση (4/6) Ο δίαυλος ελέγχου (control bus) μεταφέρει τον κωδικό της πράξης που θα εκτελεστεί Αν σε έναν υπολογιστή επιτρέπεται μόνο η λειτουργία ανάγνωσης και εγγραφής, τότε ένα bit αρκεί (0 για ανάγνωση και 1 για εγγραφή) Στη γενική περίπτωση, όπου το πλήθος των επιτρεπόμενων εντολών ελέγχου είναι Μ, τότε χρειάζονται log2M καλώδια Όσον αφορά την επικοινωνία με τις συσκευές εισόδου/εξόδου, καθώς η φύση αυτών των συσκευών είναι διαφορετική από τη φύση της ΚΜΕ και της μνήμης, δεν είναι δυνατή η άμεση σύνδεσή τους στους διαύλους που συνδέουν τον επεξεργαστή με τη μνήμη Η μονάδα μνήμης και ο επεξεργαστής είναι ηλεκτρονικές συσκευές, γεγονός που τις καθιστά τα πιο γρήγορα μέρη του υπολογιστή Από την άλλη πλευρά, οι περιφερειακές μονάδες είναι είτε ηλεκτρομηχανικές (πολύ αργές), είτε μαγνητικές ή οπτικές (πιο γρήγορες) Εισαγωγή στην Πληροφορκή
Εσωτερική Διασύνδεση (5/6) Οι συσκευές εισόδου/εξόδου συνδέονται με τους διαύλους μέσω μιας συσκευής που ονομάζεται ελεγκτής εισόδου/εξόδου ή διασύνδεση (interface) η οποία εξομαλύνει τις διαφορές μεταξύ των αργών περιφερειακών συσκευών και της γρήγορης μνήμης και επεξεργαστή Οι ελεγκτές διακρίνονται σε σειριακοί ελεγκτές διαθέτουν μόνο μία σύνδεση καλωδίου (όπως η USB) με τη συσκευή (π.χ. πληκτρολόγιο, ποντίκι) παράλληλοι ελεγκτές διαθέτουν πολλές συνδέσεις με τη συσκευή, ώστε να μπορούν να μεταφέρουν πολλά bits ταυτόχρονα Π.χ. ο δίσκος ή σαρωτής μπορούν να έχουν παράλληλη σύνδεση με 8, 16 ή 32 καλώδια Οι σειριακοί ελεγκτές χρησιμοποιούνται για τη σύνδεση πιο αργών συσκευών, ενώ οι παράλληλοι για τη σύνδεση συσκευών με σχετικά πιο γρήγορες ταχύτητες Εισαγωγή στην Πληροφορκή
Εσωτερική Διασύνδεση (6/6) Δίαυλος Δεδομένων Δίαυλος Διευθύνσεων ΚΜΕ Μνήμη Ελεγκτής Οθόνης Ελεγκτής Εκτυπωτή Ελεγκτής Δίσκου Δίαυλος Ελέγχου Εισαγωγή στην Πληροφορκή
ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Εισαγωγή στην Πληροφορική Νίκοσ Παπαδάκησ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ
Κατηγορίες Λογισμικού Με τον όρο λογισμικό (software) αναφερόμαστε τόσο στα προγράμματα και τα δεδομένα που συντονίζουν τη λειτουργία του υλικού όσο και σε αυτά που είναι υπεύθυνα για την εκτέλεση συγκεκριμένων εργασιών (που υποδεικνύει ο χρήστης). Το λογισμικό είναι υπεύθυνο για την επικοινωνία του χρήστη με τον υπολογιστή, καθώς επίσης και για την αυτοματοποιημένη διαχείριση της κεντρικής μονάδας επεξεργασίας, της μνήμης και των περιφερειακών συσκευών Δύο είναι οι βασικές κατηγορίες στις οποίες μπορούμε να το διακρίνουμε: στο λογισμικό συστήματος στο λογισμικό εφαρμογών Λογισμικό Εφαρμογών Λογισμικό Συστήματος Υλικό Εισαγωγή στην Πληροφορκή
Λογισμικό συστήματος (system software) (1/2) Το λογισμικό συστήματος περιλαμβάνει όλα τα απαραίτητα προγράμματα που είναι υπεύθυνα για τον έλεγχο και τη διαχείριση των πόρων του υπολογιστή Παρέχει στους χρήστες τα εργαλεία για να εκμεταλλευτούν τους πόρους αυτούς, παρόλο που η λειτουργία του δεν είναι άμεσα αντιληπτή από τους χρήστες Στην ουσία το λογισμικό συστήματος αποτελείται από γενικευμένα προγράμματα που συντονίζουν της λειτουργίες του συστήματος και διαχειρίζονται τις μονάδες του, όπως τον επεξεργαστή, τη μνήμη και τις περιφερειακές συσκευές Λειτουργεί ως ενδιάμεσος μεταξύ του υλικού και του λογισμικού εφαρμογών καθώς ελέγχει τις λειτουργίες του υλικού, ενώ παράλληλα υποστηρίζει τις εφαρμογές του χρήστη (παρέχοντάς τους τις απαραίτητες υπηρεσίες) διευθύνει τον υπολογιστή σε χαμηλό/βασικό επίπεδο, αφού έχει την ικανότητα να αλληλεπιδρά απευθείας με το υλικό παρόλο που είναι ανεξάρτητο από συγκεκριμένες εφαρμογές, είναι αυτό που παρέχει τα εργαλεία και το περιβάλλον ανάπτυξης και εκτέλεσης των λογισμικών εφαρμογών Εισαγωγή στην Πληροφορκή
Λογισμικό συστήματος (system software) (2/2) Όλα τα τμήματα του λογισμικού συστήματος παραδίδονται προεγκατεστημένα σε ένα νέο υπολογιστή, και περιλαμβάνουν: Το λειτουργικό σύστημα (operating system) Π.χ. Windows, Unix, Linux, MacOS, DOS, OS/2 Τους οδηγούς υλικού (device drivers) δηλαδή τις οδηγίες (εντολές) για το χειρισμό των συσκευών υλικού πρόκειται για μικρά προγράμματα που περιέχουν τις οδηγίες για το πώς μία συγκεκριμένη συσκευή αποστέλλει και παραλαμβάνει δεδομένα Τους μεταγλωττιστές (compilers) και μεταφραστές (interpreters) μαζί με κάποια ακόμα προγράμματα, που όλα μαζί αναφέρονται συνήθως ως λογισμικό μετάφρασης γλωσσών προγραμματισμού Αυτά τα προγράμματα παρέχουν στους προγραμματιστές τα απαραίτητα «εργαλεία» για την ανάπτυξη και δημιουργία νέων προγραμμάτων Τα προγράμματα υπηρεσιών ή βοηθητικά προγράμματα (utilities) τα οποία είναι υπεύθυνα για την εκτέλεση συνηθισμένων και επαναλαμβανόμενων εργασιών (όπως είναι η δημιουργία ενός φακέλου) Εισαγωγή στην Πληροφορκή
Λογισμικό εφαρμογών (application software) (1/3) Το λογισμικό εφαρμογών περιλαμβάνει ολοκληρωμένα προγράμματα που επιτελούν μία συγκεκριμένη εργασία Τα προγράμματα αυτά έχουν κατασκευαστεί από εξειδικευμένους προγραμματιστές, προκειμένου να καλύψουν και να επιλύσουν συγκεκριμένες ανάγκες και απαιτήσεις των χρηστών Κάποια χαρακτηριστικά παραδείγματα λογισμικού εφαρμογών είναι τα εξής: προγράμματα επεξεργασίας κειμένου επεξεργασίας εικόνων σχεδίασης γραφικών διαχείρισης βάσεων δεδομένων παιχνίδια λογιστικά φύλλα εφαρμογές δημιουργίας πολυμέσων Εισαγωγή στην Πληροφορκή
Λογισμικό εφαρμογών (application software) (2/3) Το λογισμικό εφαρμογών αποτελείται από προγράμματα σχεδιασμένα να βοηθήσουν τους χρήστες στην ολοκλήρωση των εργασιών τους, με τρόπο εύκολο, γρήγορο και αποδοτικό Συχνά υπάρχει μεγάλη ποικιλία προγραμμάτων, από διαφορετικούς κατασκευαστές, που καλύπτουν την ίδια ανάγκη Η επιλογή εξαρτάται από το χρήστη ο οποίος εξετάζει συνήθως το κόστος και τη λειτουργικότητα της εφαρμογής, τη συμβατότητα του λογισμικού και την αξιοπιστία του κατασκευαστή Εισαγωγή στην Πληροφορκή
Λογισμικό εφαρμογών (application software) (3/3) Μπορούμε να διακρίνουμε τρεις κατηγορίες για το λογισμικό εφαρμογών: το γενικευμένο λογισμικό εφαρμογών αφορά ανάγκες που καλύπτουν πολλούς διαφορετικούς χρήστες, όπως είναι ο Internet Explorer και το Outlook το εξειδικευμένο λογισμικό εφαρμογών αναπτύσσεται για εξειδικευμένες ανάγκες, όπως είναι μία εφαρμογή μισθοδοσίας για μια επιχείρηση το ολοκληρωμένο λογισμικό που παρέχει ένα ολοκληρωμένο πακέτο υπηρεσιών, όπως το Microsoft Office ή το Lotus Notes Εισαγωγή στην Πληροφορκή
Λειτουργικό σύστημα (operating system, OS) (1/4) Είναι υπεύθυνο για τον έλεγχο και την επίβλεψη των λειτουργιών του υλικού, καθώς επίσης και για το συντονισμό και επικοινωνία με τις εργασίες των εφαρμογών Συγκεκριμένα, διαχειρίζεται και διευθύνει τους πόρους του συστήματος (όπως είναι η ΚΜΕ, η μνήμη και οι περιφερειακές συσκευές), παρέχοντάς τους διάφορες υπηρεσίες Επίσης, δίνει στο χρήστη τη δυνατότητα άμεσης επικοινωνίας, μέσα από το περιβάλλον (διεπαφή) που του παρέχει Εισαγωγή στην Πληροφορκή
Λειτουργικό σύστημα (operating system, OS) (2/4) Εκτός από το υλικό, αλληλεπιδρά και με τις εφαρμογές, στις οποίες επιτρέπει να έχουν πρόσβαση στους πόρους του συστήματος, είτε άμεσα είτε μέσω άλλων προγραμμάτων του λογισμικού συστήματος Αυτά τα «άλλα προγράμματα» του λογισμικού συστήματος είναι συνήθως υπεύθυνα για μια συγκεκριμένη εργασία όπως είναι η βιβλιοθήκη γραφικών που δίνει εικόνα στην οθόνη ή οι οδηγοί συσκευών Το λειτουργικό σύστημα μεσολαβεί μεταξύ αυτών των προγραμμάτων και των εφαρμογών, όταν απαιτείται επικοινωνία μεταξύ τους, για την επίτευξη αυτής Χρήστες Εφαρμογές Λειτουργικό Σύστημα Άλλα Προγράμματα Λογισμικού Συστήματος Υλικό Εισαγωγή στην Πληροφορκή
Λειτουργικό σύστημα (operating system, OS) (3/4) Το λειτουργικό σύστημα είναι απαραίτητο στοιχείο κάθε υπολογιστικού συστήματος, και μάλιστα, από το ξεκίνημα του υπολογιστή, καθώς ενεργοποιείται και αποκτά τον έλεγχο της διαχείρισης κατά τη διαδικασία εκκίνησης Πιο αναλυτικά, όταν ανοίγουμε τον υπολογιστή μας, το υλικό φορτώνει ένα μικρό σύνολο εντολών του συστήματος από τη μνήμη ROM Στη συνέχεια, αυτές οι εντολές φορτώνουν ένα μεγαλύτερο τμήμα του λογισμικού συστήματος από τη δευτερεύουσα μνήμη Με την ολοκλήρωση όλων αυτών των απαραίτητων στοιχείων του λειτουργικού συστήματος, εκτελούνται τα προγράμματα εκκίνησης, και μόλις η διεπαφή για το χρήστη ετοιμαστεί, το σύστημα είναι έτοιμο για χρήση Εισαγωγή στην Πληροφορκή
Λειτουργικό σύστημα (operating system, OS) (4/4) Η βασική λειτουργία του λειτουργικού συστήματος είναι ο έλεγχος και η διαχείριση των μονάδων του υπολογιστικού συστήματος, για τη διεκπεραίωση και ολοκλήρωση των εργασιών των διαφόρων εφαρμογών Ο τρόπος με τον οποίο λειτουργεί το λειτουργικό σύστημα για το διαμοιρασμό των πόρων στις διάφορες εφαρμογές βασίζεται στο «δίκαιο καταμερισμό» Δηλαδή, όλοι οι πόροι του συστήματος πρέπει να μοιράζονται δίκαια στα προγράμματα που είναι απαραίτητοι, και το λειτουργικό σύστημα θα φροντίσει γι’ αυτή τη δίκαιη διανομή Από τη στιγμή που περισσότερα από ένα προγράμματα μπορούν να εκτελούνται ταυτόχρονα και να χρησιμοποιούν από κοινού τόσο τη μνήμη όσο και τις υπόλοιπες μονάδες, δημιουργείται η ανάγκη του ελέγχου για τη σωστή διανομή των πόρων αυτών Έτσι, για κάθε εφαρμογή που εκτελείται και συναγωνίζεται με τις υπόλοιπες για τη χρήση του επεξεργαστή και των συσκευών εισόδου/εξόδου, το λειτουργικό σύστημα έχει το ρόλο του ελεγκτή για να διασφαλίσει ότι όλα τα μέρη συνεργάζονται και έχουν την ευκαιρία να χρησιμοποιήσουν τους πόρους αυτούς Εισαγωγή στην Πληροφορκή
Κατηγορίες Λειτουργικού Συστήματος (1/3) Υπάρχει μία μεγάλη ποικιλία λειτουργικών συστημάτων, τα οποία μπορούν να κατηγοριοποιούν ανάλογα με διάφορα κριτήρια, όπως Ο αριθμός των χρηστών Ο αριθμός των εργασιών που μπορούν να υποστηρίξουν Όσον αφορά τον αριθμό των χρηστών τα λειτουργικά συστήματα διακρίνονται Ενός χρήστη σύστημα (single user) είναι αυτό όπου μόνο ένας χρήστης μπορεί να χρησιμοποιεί τον υπολογιστή σε μια δεδομένη χρονική στιγμή χρησιμοποιείται ευρέως σε φορητές συσκευές χαρακτηριστικό παράδειγμα αποτελεί το PalmOS για τον προσωπικό ψηφιακό βοηθό (personal digital assistant, PDA) και το Symbian για κινητά τηλέφωνα Πολλών χρηστών (multi-user) επιτρέπουν την ταυτόχρονη χρήση του υπολογιστή από πολλούς χρήστες τέτοια συστήματα απαντώνται στους προσωπικούς υπολογιστές χαρακτηριστικά παραδείγματα είναι τα Unix, Linux, Windows, MacOS Εισαγωγή στην Πληροφορκή
Κατηγορίες Λειτουργικού Συστήματος (2/3) Όσον αφορά τον αριθμό των εργασιών τα λειτουργικά συστήματα διαχωρίζονται σε συστήματα μίας εργασίας (single tasking) είναι αυτά που μπορούν να διεκπεραιώνουν μία εργασία τη φορά, όπως το PalmOS συστήματα πολλών εργασιών (multi-tasking) έχουν τη δυνατότητα να εκτελούν πολλές εφαρμογές ταυτόχρονα, όπως τα Unix, Linux, Windows, MacOS Εισαγωγή στην Πληροφορκή
Κατηγορίες Λειτουργικού Συστήματος (3/3) Εισαγωγή στην Πληροφορκή
Διαχείριση Πόρων (1/10) Στα πρώτα χρόνια των υπολογιστών, όπου μόνο ένα πρόγραμμα είχε τη δυνατότητα να βρίσκεται στην κύρια μνήμη και να εκτελείται, η διαχείριση της μνήμης ήταν απλή διαδικασία: ακολουθούνταν ο κύκλος φέρε-εκτέλεσε, όπου κάθε μία εντολή του προγράμματος προσκομιζόταν και εκτελούνταν Με ποιο τρόπο όμως μπορούν να υποστηριχθούν και να εκτελεστούν παραπάνω από ένα προγράμματα ταυτόχρονα; Στην πραγματικότητα, τα προγράμματα που φαινομενικά εκτελούνται ταυτόχρονα, εκτελούνται διαδοχικά Οι εργασίες των προγραμμάτων εναλλάσσονται μεταξύ τους, διαμοιραζόμενες τους πόρους του συστήματος, με τρόπο ώστε να δίνουν την αίσθηση της παράλληλης εκτέλεσης Ένα πρόγραμμα κάθε φορά είναι αυτό που «τρέχει» (δηλαδή οι εντολές του μεταφέρονται στον επεξεργαστή και εκτελούνται) Εισαγωγή στην Πληροφορκή
Διαχείριση Πόρων (2/10) Πολυπρογραμματισμός (multiprogramming) ονομάζεται η ταυτόχρονη συνύπαρξη των προγραμμάτων προκειμένου να αποκτήσουν πρόσβαση στην κεντρική μονάδα επεξεργασίας και να εκτελεστούν Τα προγράμματα αυτά εναλλάσσονται ταχύτατα, δημιουργώντας την αίσθηση ότι εκτελούνται παράλληλα Η τεχνική αυτή επιτυγχάνει ολοκλήρωση των εργασιών σε μικρότερο χρόνο (συνολικά) και αποδοτικότερη χρήση του υλικού αλλά αυξάνει την πολυπλοκότητα του συστήματος Ο πολυπρογραμματισμός δημιουργεί την ανάγκη για διαχείριση μνήμης δηλαδή για παρακολούθηση των προγραμμάτων που βρίσκονται στην κύρια μνήμη, καθώς και της ακριβής θέσης αυτών Εισαγωγή στην Πληροφορκή
Διαχείριση Πόρων (3/10) Μία άλλη σημαντική σημαντική έννοια είναι η διεργασία (process) είναι ένα πρόγραμμα που εκτελείται, που βρίσκεται όπως λέμε στη φάση εκτέλεσής του Ένα πρόγραμμα αποτελεί απλά ένα στατικό σύνολο εντολών, όμως, η έννοια της διεργασίας έχει δυναμικό χαρακτήρα, καθώς αντιπροσωπεύει το πρόγραμμα καθώς εκτελείται Περιλαμβάνει τις τρέχουσες τιμές του μετρητή προγράμματος (PC), των καταχωρητών και των μεταβλητών που χρησιμοποιούνται Εισαγωγή στην Πληροφορκή
Διαχείριση Πόρων (4/10) Ένα υπολογιστικό σύστημα που υποστηρίζει πολυπρογραμματισμό μπορεί να έχει αρκετές ενεργές διεργασίες σε μία δεδομένη χρονική στιγμή Σε αυτήν την περίπτωση, το λειτουργικό σύστημα είναι υπεύθυνο για το χειρισμό των διεργασιών αυτών Πραγματοποιεί ελέγχους για την κατάσταση των διεργασιών γνωρίζει σε ποια φάσης εκτέλεσης βρίσκονται και γενικά διατηρεί όλες τις απαραίτητες πληροφορίες που τις αφορά Μία διεργασία ενδέχεται να διακοπεί από το λειτουργικό σύστημα καθώς εκτελείται, προκειμένου να εκτελεστεί μία άλλη διεργασία (που επίσης μπορεί να είχε αρχίσει να εκτελείται και να διακόπηκε νωρίτερα) Εισαγωγή στην Πληροφορκή
Διαχείριση Πόρων (5/10) Η εναλλαγή των διεργασιών διαχειρίζεται από ένα τμήμα του λειτουργικού συστήματος, που ονομάζεται χρονοδρομολόγηση (scheduling) ορίζει ποια διεργασία από αυτές που βρίσκονται στη μνήμη θα επιλεγεί για εκτέλεση σε μια δεδομένη χρονική στιγμή Ακόμα και το ίδιο το λειτουργικό σύστημα αποτελεί ένα πρόγραμμα που πρέπει να εκτελεστεί Επομένως, οι διεργασίες του λειτουργικού συστήματος πρέπει να διαχειριστούν και να διατηρηθούν στην κύρια μνήμη μαζί με άλλα προγράμματα συστήματος και εφαρμογών Εισαγωγή στην Πληροφορκή
Διαχείριση Πόρων (6/10) Εισαγωγή στην Πληροφορκή
Διαχείριση Πόρων (7/10) Τα λειτουργικά συστήματα πέρασαν από πολλά στάδια εξέλιξης μέχρι να φτάσουν στη σημερινή τους μορφή και πολυπλοκότητα Στις δεκαετίες 1960 και 1970 ο υπολογιστής ήταν ένα ογκώδες, δύσχρηστο μηχάνημα που είχε μόνο ένα χειριστή (operator) Ο χειριστής αυτός αναλάμβανε να συλλέξει τις διάφορες προς εκτέλεση εργασίες από τους χρήστες και να τις οργανώσει σε δεσμίδες Μία δεσμίδα (batch) είναι ένα σύνολο από εργασίες που απαιτούν τους ίδιους πόρους Μία εργασία (job) είναι ένα πρόγραμμα μαζί με κάποιες εντολές που αφορούν το λογισμικό συστήματος και τους απαιτούμενους πόρους για την εκτέλεση του προγράμματος Οι δεσμίδες αυτές δίνοντας στη συνέχεια στον υπολογιστή για επεξεργασία Αυτή η τεχνική είχε σκοπό να βελτιώσει τον προηγούμενο τρόπο λειτουργίας, όπου ο χειριστής έπρεπε να «φορτώσει» κάθε εργασία (ξεχωριστά) πριν από κάθε εκτέλεση, η οποία ήταν μία αρκετά χρονοβόρα διαδικασία Εισαγωγή στην Πληροφορκή
Διαχείριση Πόρων (8/10) Η έννοια της δεσμίδας σήμερα έχει αλλάξει και αναφέρεται σ’ ένα σύστημα όπου τα προγράμματα και οι πόροι του συστήματος συντονίζονται και εκτελούνται χωρίς τη διαμεσολάβηση του χρήστη Ο χρήστης μπορεί να ορίσει ένα σύνολο από εντολές λειτουργικού συστήματος σε ένα αρχείο δεσμίδας (batch file), προκειμένου να έχει τον έλεγχο της επεξεργασίας ενός μεγάλου προγράμματος Χαρακτηριστικό παράδειγμα αρχείων που περιέχουν εντολές του συστήματος είναι τα αρχεία με προέκταση .bat στα Windows Εργασία 1 (Job 1) Δεσμίδα 1 (Batch 1) Εργασία 2 (Job 2) Χειριστής (Operator) Υπολογιστής Δεσμίδα 2 (Batch 2) Εργασία N (Job N) Εισαγωγή στην Πληροφορκή
Διαχείριση Πόρων (9/10) Ο χρονικός κατακερματισμός (time sharing) είναι μία πολιτική που εφαρμόζεται για την παράλληλη εκτέλεση πολλαπλών διεργασιών Συγκεκριμένα, επιτρέπει την ταυτόχρονη χρήση του υπολογιστή από πολλούς χρήστες, καθώς διαμοιράζει (καταμερίζει) το χρόνο του επεξεργαστή στους ενεργούς χρήστες και τις διεργασίες τους Ο διαμερισμός των πόρων διαχειρίζεται από το λειτουργικό σύστημα, και με αυτόν τον τρόπο, μπορούν οι προγραμματιστές να επικοινωνούν με τον υπολογιστή και να μοιράζονται τους διαθέσιμους πόρους Κάθε διεργασία έχει συγκεκριμένο χρόνο που μπορεί να εκτελείται, ενώ όταν εξαντληθεί ο χρόνος αυτός ο έλεγχος μεταφέρεται στην επόμενη διεργασία Έτσι, εξασφαλίζεται δίκαιη διαχείριση και διαμερισμός των πόρων για όλες τις διεργασίες Εισαγωγή στην Πληροφορκή
Διαχείριση Πόρων (10/10) Σε ένα σύστημα που υποστηρίζει χρονικό κατακερματισμό, ο κάθε χρήστης έχει τη δική του νοητή μηχανή δηλαδή έχει την αίσθηση ότι χρησιμοποιεί αποκλειστικά και εξ’ ολοκλήρου ο ίδιος τον υπολογιστή, καθώς βλέπει σχεδόν ό,τι θα έβλεπε αν η διεργασία του ήταν η μόνη που εκτελούνταν στον επεξεργαστή Στην πραγματικότητα, όμως, όλοι οι πόροι του συστήματος διαμοιράζονται μεταξύ των χρηστών με πολύ γρήγορη εναλλαγή, έτσι ώστε να δημιουργούν την ψευδαίσθηση αυτή Οι χρήστες ενδέχεται μόνο να αντιληφθούν πτώση στην απόδοση του συστήματος, στην περίπτωση που έχουμε μεγάλο πλήθος ενεργών χρηστών (και κατ’ επέκταση και διεργασιών) ή στην περίπτωση που ο επεξεργαστής μας έχει περιορισμένες ικανότητες Εισαγωγή στην Πληροφορκή
Διαχείριση Μνήμης (1/6) Η μνήμη αποτελείται από θέσεις μνήμης, κάθε μία από τις οποίες είναι ένα σύνολο από bits με σταθερό μέγεθος, που ονομάζεται μήκος λέξης Κάθε θέση μνήμης προσδιορίζεται από ένα μοναδικό αναγνωριστικό, τη διεύθυνση Η μνήμη φιλοξενεί τα ενεργά προγράμματα, παρέχοντας σε καθένα από αυτά το δικό του χώρο Ένα πρόγραμμα αναφέρεται στα δεδομένα του (ή σε άλλα μέρη του κώδικα του προγράμματος) μέσω λογικών διευθύνσεων, όπως είναι για παράδειγμα η θέση τους μέσα στο ίδιο το πρόγραμμα, αφού δεν είναι δυνατό να γνωρίζουν εκ των προτέρων σε ποια διεύθυνση στη μνήμη θα τοποθετηθούν Όταν τα προγράμματα φορτώνονται στην κύρια μνήμη, πρέπει να μπορούν να «βρίσκουν» τα δεδομένα τους Να κάνουν, δηλαδή, την αντιστοίχιση μεταξύ της λογικής και της πραγματικής διεύθυνσης Εισαγωγή στην Πληροφορκή
Διαχείριση Μνήμης (2/6) Από τα παραπάνω, γίνεται αντιληπτή η ανάγκη ύπαρξης δύο διαφορετικών ειδών διεύθυνσης: λογική ή σχετική ή εικονική διεύθυνση (virtual address) είναι μία τιμή που αναφέρεται σε μία γενική θέση, η οποία είναι σχετική με το πρόγραμμα και όχι με την κύρια μνήμη κατά τη συγγραφή του προγράμματος, ο προγραμματιστής μπορεί να γνωρίζει μόνο τη λογική διεύθυνση φυσική διεύθυνση (physical address) είναι μία πραγματική διεύθυνση στην κύρια μνήμη το λειτουργικό σύστημα γνωρίζοντας την ακριβή θέση κάθε προγράμματος στη μνήμη έχει τη δυνατότητα να μετατρέπει τις λογικές διευθύνσεις σε φυσικές διευθύνσεις Η διαδικασία αυτής της μετατροπής ονομάζεται συσχέτιση διευθύνσεων (address binding) Συγκεκριμένα, κατά τη μεταγλώττιση ενός προγράμματος, όλες οι αναφορές (όπως για παράδειγμα μιας μεταβλητής) μετατρέπονται σε λογικές διευθύνσεις Στη συνέχεια, κατά τη φόρτωση του προγράμματος στην κύρια μνήμη προκειμένου να εκτελεστεί, κάθε λογική διεύθυνση αντιστοιχίζεται σε μία συγκεκριμένη φυσική διεύθυνση Εισαγωγή στην Πληροφορκή
Διαχείριση Μνήμης (3/6) Σε μία δεδομένη χρονική στιγμή, στην κύρια μνήμη βρίσκεται το λειτουργικό σύστημα και το πρόγραμμα που εκτελείται Κάθε πρόγραμμα έχει το δικό του χώρο στη μνήμη, ο οποίος μπορεί να δοθεί με διάφορες πολιτικές Η πιο απλή προσέγγιση είναι όλο το πρόγραμμα να φορτωθεί σε ένα μεγάλο κομμάτι από συνεχόμενες θέσεις στη μνήμη Η προσέγγιση αυτή ονομάζεται διαχείριση συνεχούς μνήμης (single contiguous memory management), και μόνο ένα πρόγραμμα μπορεί να βρίσκεται στη μνήμη μαζί με το λειτουργικό σύστημα Στην περίπτωση αυτήν, κάθε λογική διεύθυνση έχει μία τιμή που αντιστοιχεί σε μία θέση σχετική με το σημείο εκκίνησης του προγράμματος Πιο αναλυτικά, είναι σαν να φορτώνουμε το πρόγραμμά μας στην αρχή της κύριας μνήμης (στη διεύθυνση 0), καταλαμβάνοντας συνεχόμενα όλες τις απαραίτητες θέσεις μνήμης Εισαγωγή στην Πληροφορκή
Διαχείριση Μνήμης (4/6) Για παράδειγμα, αν ένα πρόγραμμα καταλαμβάνει Μ θέσεις, τότε οι λογικές διευθύνσεις στις οποίες τοποθετείται είναι οι θέσεις 0 έως Μ-1 Για να προσδιορίσουμε τη φυσική διεύθυνση, αρκεί να προσθέσουμε τη λογική διεύθυνση με τη διεύθυνση του σημείου εκκίνησης του προγράμματος στη φυσική κύρια μνήμη Δηλαδή, χρειάζεται απλά να υπολογίσουμε την αριθμητική παράσταση: Φυσική Διεύθυνση = Λογική Διεύθυνση + Σημείο Εκκίνησης Προγράμματος Το σημείο εκκίνησης ενός προγράμματος είναι μία φυσική διεύθυνση που αντιστοιχεί στην πρώτη θέση μνήμης όπου έχει τοποθετηθεί το πρόγραμμα Εισαγωγή στην Πληροφορκή
Διαχείριση Μνήμης (5/6) Κύρια Μνήμη Κύρια Μνήμη Λειτουργικό Σύστημα Φυσική Διεύθυνση Προγράμματα Εφαρμογών Λογική Διεύθυνση Εισαγωγή στην Πληροφορκή
Διαχείριση Μνήμης (6/6) Εκτός, όμως, από τη διαχείριση συνεχούς μνήμης υπάρχουν και άλλες πολιτικές διαχείρισης μνήμης, οι οποίες παρέχουν περισσότερη ευελιξία και μπορούν να υποστηρίξουν τον πολυπρογραμματισμό Δύο τέτοιες πολύ δημοφιλής προσεγγίσεις είναι η διαμερισμένη μνήμη η σελιδοποιημένη μνήμη Εισαγωγή στην Πληροφορκή
Διαμερισμένη μνήμη (partitioning) Η διαμερισμένη μνήμη μπορεί να υποστηρίξει την εκτέλεση πολλαπλών προγραμμάτων, καθώς χωρίζει τη μνήμη σε κομμάτια (διαμερίσματα) όπου καθένα από αυτά μπορεί να φιλοξενεί ένα πρόγραμμα Τα κομμάτια αυτά μπορεί να είναι όλα ίσου μεγέθους ή άνισα, καθώς επίσης μπορεί να είναι σταθερού μεγέθους ή μεταβλητού, ανάλογα με τις ανάγκες των προγραμμάτων Τα μειονεκτήματα αυτής της προσέγγισης, όσον αφορά τα σταθερά κομμάτια, σχετίζονται με τη δυσκολία επιλογής του σωστού μεγέθους Π.χ. αν επιλέξουμε μικρό μέγεθος, τότε ίσως κάποια προγράμματα να μη χωρέσουν, ενώ αν επιλέξουμε μεγάλο μέγεθος, μπορεί να οδηγηθούμε σε σπατάλη του χώρου της μνήμης Επίσης, όταν τα κομμάτια αυτά είναι μεταβλητού μεγέθους, αυξάνεται η πολυπλοκότητα του συστήματος και έχει σαν αποτέλεσμα επιπλέον χρονική επιβάρυνση Εισαγωγή στην Πληροφορκή
Σελιδοποιημένη μνήμη (paging) (1/2) Η σελιδοποιημένη μνήμη χωρίζει και αυτή τη μνήμη σε κομμάτια που ονομάζονται πλαίσια (frames) καθώς επίσης χωρίζει και τα ίδια τα προγράμματα σε κομμάτια που ονομάζονται σελίδες (pages) Οι σελίδες και τα πλαίσια έχουν το ίδιο, σταθερό μέγεθος Όταν ένα πρόγραμμα φορτώνεται στη μνήμη, κάθε σελίδα του τοποθετείται σε ένα πλαίσιο μνήμης Τα πλαίσια που φιλοξενούν ένα πρόγραμμα δεν είναι απαραιτήτως γειτονικά Αυτή η προσέγγιση επιτυγχάνει αποδοτικότερη χρήση της μνήμης Πρόγραμμα 1 Κύρια Μνήμη Πρόγραμμα 2 Πρόγραμμα 3 Εισαγωγή στην Πληροφορκή
Σελιδοποιημένη μνήμη (paging) (2/2) Επίσης, αντιμετωπίζει το πρόβλημα του να μη χωράει ένα πρόγραμμα εξ’ ολοκλήρου στη μνήμη (γεγονός που δεν ισχύει για τις προηγούμενες δύο προσεγγίσεις) Σε αυτήν την περίπτωση, το πρόγραμμα μπορεί να εκτελεστεί ακόμα και αν δεν βρίσκονται όλες οι σελίδες του στην κύρια μνήμη Μόλις μία σελίδα που δεν βρίσκεται στην κύρια μνήμη ζητηθεί, τότε αυτή η σελίδα φορτώνεται σε κάποιο άλλο πλαίσιο σελίδας που δεν χρησιμοποιείται και η εκτέλεση συνεχίζεται κανονικά Το αποτέλεσμα αυτής της διαδικασίας ονομάζεται εικονική μνήμη (virtual memory) Η εικονική μνήμη, με τη μεταφορά των σελίδων από τη δευτερεύουσα στην κύρια μνήμη και αντίστροφα, δημιουργεί την αίσθηση ότι η κύρια μνήμη είναι αρκετά μεγάλη για να χωρέσει οποιοδήποτε πρόγραμμα Εισαγωγή στην Πληροφορκή
Διαχείριση Διεργασιών (1/5) Ο όρος διεργασία (process) αναφέρεται σε ένα πρόγραμμα που εκτελείται, και περιλαμβάνει όλες τις πληροφορίες της τρέχουσας κατάστασής του Σε ένα σύστημα που υποστηρίζει πολυπρογραμματισμό, μπορούμε να έχουμε πολλές διεργασίες να εκτελούνται παράλληλα και οι οποίες θέλουν να αποκτήσουν τον έλεγχο στον επεξεργαστή και να εκτελεστούν Τη διαχείριση αυτή, για το πότε και πόσο θα εκτελείται μία διεργασία, την καθορίζει το λειτουργικό σύστημα Μία διεργασία από τη στιγμή που θα δημιουργηθεί μέχρι να ολοκληρωθεί και να τερματίσει τη λειτουργία της περνάει από διάφορες καταστάσεις Εισαγωγή στην Πληροφορκή
Διαχείριση Διεργασιών (2/5) Συγκεκριμένα, μία διεργασία μπορεί να: Εκτελείται (running): Χρησιμοποιεί πραγματικά τον επεξεργαστή την τρέχουσα στιγμή, καθώς οι εντολές της επεξεργάζονται από τον Φέρε-Εκτέλεσε κύκλο Είναι έτοιμη για εκτέλεση (ready): Έχει διακοπεί προσωρινά προκειμένου να εκτελεστεί κάποια άλλη, και περιμένει τη σειρά της για να χρησιμοποιήσει την κεντρική μονάδα επεξεργασίας Έχει μπλοκαριστεί (blocked): Δεν μπορεί να συνεχίσει την εκτέλεσή της καθώς περιμένει για πόρους (συνήθως περιμένει για είσοδο δεδομένων) Εκτελείται (Running) Έχει μπλοκαριστεί (Blocked) Έτοιμη για εκτέλεση (Ready) Εισαγωγή στην Πληροφορκή
Διαχείριση Διεργασιών (3/5) Πολλές διεργασίες μπορούν να βρίσκονται στη φάση ετοιμότητας (ready) ή στη φάση μπλοκαρίσματος (blocked) την ίδια χρονική στιγμή αλλά μόνο μία διεργασία μπορεί να είναι στη φάση εκτέλεσης (running) Το λειτουργικό σύστημα είναι υπεύθυνο για τη διαχείριση των διεργασιών Οι αρμοδιότητές του μεταξύ άλλων περιλαμβάνουν: τη δημιουργία και τον τερματισμό τη διακοπή και την επανεκκίνηση καθώς και το συγχρονισμό των διεργασιών ώστε να μπορούν να τρέχουν όλες ομαλά και να αξιοποιούν τους πόρους του συστήματος κατά τον καλύτερο δυνατό τρόπο Εισαγωγή στην Πληροφορκή
Διαχείριση Διεργασιών (4/5) Το λειτουργικό σύστημα διατηρεί μία δομή δεδομένων για κάθε διεργασία που ονομάζεται ομάδα ελέγχου διεργασίας (process control block, PCB) Η ομάδα ελέγχου διεργασίας διαθέτει όλη την απαραίτητη πληροφορία για τη διεργασία όπως είναι η κατάσταση της διεργασίας η κατοχή των πόρων του συστήματος καθώς και οι τιμές των καταχωρητών της κεντρικής μονάδας επεξεργασίας Εφόσον για κάθε διεργασία υπάρχει και μία ομάδα ελέγχου διεργασίας, σε κάθε φάση εκτέλεσης θα διατηρείται μια λίστα από ομάδες ελέγχου διεργασίας, με πλήθος ίσο με αυτό των ενεργών διεργασιών Εισαγωγή στην Πληροφορκή
Διαχείριση Διεργασιών (5/5) Σε μία δεδομένη χρονική στιγμή, μόνο μία διεργασία μπορεί να εκτελείται και να χρησιμοποιεί τον επεξεργαστή και τους άλλους πόρους του συστήματος Οι καταχωρητές, όπως είναι λογικό, περιέχουν τις τιμές που αφορούν τη διεργασία που εκτελείται τη συγκεκριμένη χρονική στιγμή Έτσι, κάθε φορά που μία διεργασία διακόπτεται για να μπει στη φάση εκτέλεσης η επόμενη διεργασία, λαμβάνουν χώρα μία σειρά από ενέργειες που ονομάζονται μεταγωγή περιβάλλοντος (context switching) Συγκεκριμένα, οι τιμές των καταχωρητών της διεργασίας που εκτελείται αποθηκεύονται στην ομάδα ελέγχου της διεργασίας Στη συνέχεια, φορτώνονται στους καταχωρητές οι καινούριες τιμές της διεργασίας που πρόκειται να εκτελεστεί, και ξεκινάει η εκτέλεση της διεργασίας Εισαγωγή στην Πληροφορκή
Χρονοδρομολόγηση Κεντρικής Μονάδας Επεξεργασίας (1/2) Σε μία δεδομένη χρονική στιγμή μπορούν πολλές διεργασίες να είναι σε ετοιμότητα, αλλά μόνο μία να εκτελείται Η διαδικασία επιλογής της διεργασίας που θα εκτελεστεί (και θα μετακινηθεί από τη φάση ετοιμότητας στη φάση εκτέλεσης), ονομάζεται χρονοδρομολόγηση της κεντρικής μονάδας επεξεργασίας (CPU scheduling) Η χρονοδρομολόγηση της κεντρικής μονάδας επεξεργασίας χωρίζεται σε δύο μεγάλες κατηγορίες ανάλογα με τον τρόπο με τον οποίο γίνεται η επιλογή της επόμενης προς εκτέλεση διεργασίας: Προεκτοπιστική χρονοδρομολόγηση Μη-προεκτοπιστική χρονοδρομολόγηση Εισαγωγή στην Πληροφορκή
Χρονοδρομολόγηση Κεντρικής Μονάδας Επεξεργασίας (2/2) Προεκτοπιστική χρονοδρομολόγηση (preemptive scheduling) Πρόκειται για την περίπτωση που το λειτουργικό σύστημα αποφασίσει να διακόψει την υπό εκτέλεση διεργασία, για να εκτελεστεί μία άλλη διεργασία Σε αυτήν την περίπτωση η πρώτη διεργασία μετακινείται από τη φάση εκτέλεσης στη φάση ετοιμότητας, προκειμένου να συνεχίσει αργότερα την εκτέλεσή της Μη-προεκτοπιστική χρονοδρομολόγηση (Non-preemptive scheduling) Σε αυτήν την περίπτωση η διεργασία που εκτελείται αποφασίζει μόνη της να σταματήσει να χρησιμοποιεί την κεντρική μονάδα επεξεργασίας Αυτό συνήθως συμβαίνει όταν η διεργασία πρέπει να περιμένει είσοδο από κάποιους πόρους του συστήματος, και μεταβαίνει από τη φάση εκτέλεσης στη φάση αναμονής Εισαγωγή στην Πληροφορκή
Αλγόριθμοι Χρονοδρομολόγησης (1/5) Υπάρχουν διάφοροι αλγόριθμοι χρονοδρομολόγησης της κεντρικής μονάδας επεξεργασίας (scheduling algorithms) προκειμένου να αποφασισθεί ποια διεργασία θα είναι η επόμενη που θα εκτελεστεί Καθένας από αυτούς αποφασίζει με διαφορετικά κριτήρια, τα οποία κρίνει ως τα πιο σημαντικά για την επιλογή Κάποιοι από τους πιο γνωστούς και δημοφιλείς αλγορίθμους είναι οι εξής: Με σειρά άφιξης Επιλογή μικρότερης διεργασίας Κυκλική επιλογή Εισαγωγή στην Πληροφορκή
Αλγόριθμοι Χρονοδρομολόγησης (2/5) Ο αλγόριθμος Με σειρά άφιξης (first-come first-served) εξυπηρετεί της διεργασίες με τη σειρά με την οποία φτάνουν Αν υποθέσουμε ότι όλες οι διεργασίες, που βρίσκονται στη φάση ετοιμότητας, έχουν τοποθετηθεί σε μία σειρά (με κάθε νέα άφιξη να τοποθετείται στο τέλος), τότε ο αλγόριθμος επιλέγει την πρώτη διεργασία κάθε φορά Με άλλα λόγια, δίνει πάντα προτεραιότητα στην πιο παλιά διεργασία (σε αυτήν που περιμένει για περισσότερο χρόνο) Είναι ένας δίκαιος αλγόριθμος, αφού εξυπηρετεί διατηρώντας την προτεραιότητα της κάθε διεργασίας όμως μπορεί να κάνει μικρές διεργασίες (που χρειάζονται ελάχιστο χρόνο για να εκτελεστούν) να περιμένουν για πολλή ώρα Ο αλγόριθμος αυτός ανήκει στην κατηγορία της Μη-προεκτοπιστικής χρονοδρομολόγησης. Εισαγωγή στην Πληροφορκή
Αλγόριθμοι Χρονοδρομολόγησης (3/5) Η Επιλογή μικρότερης διεργασίας (shortest job next) είναι ο αλγόριθμος που επιλέγει τη διεργασία με το λιγότερο χρόνο εκτέλεσης Το λειτουργικό σύστημα, γνωρίζοντας τον τύπο της κάθε διεργασίας, μπορεί να εκτιμήσει πόσο χρόνο θα πάρει η εκτέλεση της κάθε διεργασίας Αυτός ο αλγόριθμος δίνει προτεραιότητα στις μικρές διεργασίες προκειμένου να εκτελεστούν γρήγορα, χωρίς να χρειάζεται να περιμένουν άλλες πιο χρονοβόρες διεργασίες Έχει το πλεονέκτημα ότι διεκπεραιώνει περισσότερες διεργασίες σε λιγότερο χρόνο όμως το κύριο μειονέκτημά του είναι ότι οι μεγάλες διεργασίες μπορεί να περιμένουν για πολύ μεγάλο χρονικό διάστημα μέχρι να τους δοθεί ο έλεγχος της κεντρικής μονάδας επεξεργασίας Ο αλγόριθμος αυτός ανήκει στην κατηγορία της Μη-προεκτοπιστικής χρονοδρομολόγησης Εισαγωγή στην Πληροφορκή
Αλγόριθμοι Χρονοδρομολόγησης (4/5) Τέλος, ο αλγόριθμος της Κυκλικής επιλογής (round robin) διανέμει τον ίδιο χρόνο σε όλες τις διεργασίες, οι οποίες εκτελούνται κυκλικά μέχρι να ολοκληρωθούν Συγκεκριμένα, επιλέγει αρχικά το χρόνο που θα δοθεί σε κάθε διεργασία Στη συνέχεια, και έχοντας τοποθετηθεί όλες οι διεργασίες σε μία σειρά, επιλέγεται η πρώτη διεργασία και αρχίζει να εκτελείται για τον καθορισμένο χρόνο Μόλις αυτός ο χρόνος παρέλθει, η διεργασία μεταβαίνει από τη φάση εκτέλεσης στη φάση ετοιμότητας και τοποθετείται στο τέλος της σειράς Η επόμενη διεργασία επιλέγεται, η οποία μεταχειρίζεται με τον ίδιο ακριβώς τρόπο Όταν φυσικά μία διεργασία ολοκληρωθεί απομακρύνεται από τη σειρά των διεργασιών Εισαγωγή στην Πληροφορκή
Αλγόριθμοι Χρονοδρομολόγησης (5/5) Ο αλγόριθμος αυτός έχει το πλεονέκτημα ότι είναι δίκαιος, αφού διατηρεί μία σειρά εκτέλεσης, και παράλληλα, δίνει σε όλες τις διεργασίες την ευκαιρία να εκτελεστούν Δηλαδή, τόσο οι μικρές διεργασίες δεν είναι υποχρεωμένες να περιμένουν να ολοκληρωθεί η εκτέλεση μεγάλων διεργασιών που ενδεχομένως προηγούνται, όσο και οι μεγάλες διεργασίες δεν περιμένουν επ’ αόριστον τις μικρές διεργασίες να ολοκληρωθούν Η επιβάρυνση αυτού του αλγορίθμου είναι η πολυπλοκότητα υλοποίησης σε σχέση με την απλότητα των δύο προηγούμενων αλγορίθμων Ο αλγόριθμος αυτός ανήκει στην κατηγορία της Προεκτοπιστικής χρονοδρομολόγησης Εισαγωγή στην Πληροφορκή
Παράδειγμα Έστω 5 διεργασίες οι οποίες βρίσκονται σε φάση ετοιμότητας. Η σειρά άφιξής τους είναι p1 p2 p3 p4 p5 Οι χρόνοι εξυπηρέτησης για κάθε μία δίνονται στον πίνακα: Διεργασία Χρόνος Εξυπηρέτησης p1 140 p2 75 p3 320 p4 280 p5 125 Εξυπηρέτηση των διεργασιών με βάση τον αλγόριθμο Με σειρά άφιξης: Εξυπηρέτηση των διεργασιών με βάση τον αλγόριθμο Επιλογή μικρότερης διεργασίας: Εξυπηρέτηση των διεργασιών με βάση τον αλγόριθμο Κυκλικής επιλογής: Χρόνος εκτέλεσης διεργασίας ανά κύκλο: 50 χρονικές μονάδες Εισαγωγή στην Πληροφορκή
Σύστημα Αρχείων (1/2) Η κύρια μνήμη είναι η μνήμη που διατηρεί τα προγράμματα που εκτελούνται και τα δεδομένα τους Όλες οι πληροφορίες αποθηκεύονται προσωρινά και χάνονται όταν σταματήσει η παροχή ηλεκτρικού ρεύματος Σε αντίθεση, η δευτερεύουσα μνήμη διατηρεί τις πληροφορίες ακόμα και μετά τη διακοπή του ηλεκτρικού ρεύματος Επίσης, έχει τη δυνατότητα αποθήκευσης μεγάλου όγκου δεδομένων Έτσι, η δευτερεύουσα μνήμη είναι αυτή που χρησιμοποιείται για τη μόνιμη αποθήκευση των δεδομένων μας, με επικρατέστερη συσκευή τον σκληρό δίσκο Τα δεδομένα και οι πληροφορίες μας αποθηκεύονται σε δίσκους οργανωμένες σε μονάδες που ονομάζονται αρχεία Το αρχείο (file) είναι μία συλλογή δεδομένων που σχετίζονται μεταξύ τους Πρόκειται για έναν μηχανισμό που χρησιμοποιούμε για να οργανώσουμε τα δεδομένα μας στη δευτερεύουσα μνήμη Καθώς όλες οι πληροφορίες βρίσκονται μέσα σε αρχεία, η οργάνωσή τους επιτυγχάνει έναν ομοιόμορφο τρόπο παρουσίασης Κάθε αρχείο έχει ένα μοναδικό όνομα που το διακρίνει από τα υπόλοιπα Εισαγωγή στην Πληροφορκή
Σύστημα Αρχείων (2/2) Η διαχείριση των αρχείων γίνεται από το λειτουργικό σύστημα Το τμήμα αυτό του λειτουργικού συστήματος, που ασχολείται με τα αρχεία, ονομάζεται σύστημα αρχείων (file system) Το σύστημα αρχείων ταξινομεί την πληροφορία σε ένα σύνολο αρχείων Τα αρχεία αυτά οργανώνονται και ομαδοποιούνται σε κατηγορίες και υποκατηγορίες που ονομάζονται κατάλογοι (directories) Εισαγωγή στην Πληροφορκή
Αρχεία κειμένου, ψηφιακά και δεδομένων (1/3) Τα αρχεία είναι ένας μηχανισμός που χρησιμοποιούμε για να αποθηκεύουμε πληροφορίες στο δίσκο Τα αρχεία αυτά ανάλογα με τα δεδομένα που διατηρούν μπορούν να διακριθούν σε διάφορες κατηγορίες Ένα αρχείο κειμένου (text file) περιέχει δεδομένα σε bytes, τα οποία αποτελούν χαρακτήρες του πίνακα χαρακτήρων ASCII ή Unicode Οι πίνακες αυτοί χαρακτήρων κωδικοποιούν τους χαρακτήρες (ή κάποιες ειδικές μορφές χαρακτήρων) ως μία ακολουθία από bits (8 bits αντιστοιχούν σε ένα χαρακτήρα ASCII και 16 bits σε ένα χαρακτήρα Unicode) Μπορούμε να χρησιμοποιήσουμε έναν συντάκτη κειμένου για να δημιουργήσουμε, να δούμε ή να επεξεργαστούμε τα περιεχόμενα ενός τέτοιου αρχείου Εισαγωγή στην Πληροφορκή
Αρχεία κειμένου, ψηφιακά και δεδομένων (2/3) … Ένα ψηφιακό/δυαδικό αρχείο (binary file) περιέχει δεδομένα σε ειδική μορφή Η αποκωδικοποίηση και ερμηνεία των bits του δε γίνεται βάση κάποιου γνωστού πίνακα, όπως συμβαίνει με τα αρχεία κειμένου, αλλά βάση κανόνων που ορίζονται μέσα στο ίδιο το αρχείο Καθώς αυτά τα αρχεία έχουν ειδική εσωτερική μορφή, έχουν κατασκευαστεί ειδικά προγράμματα για την ανάγνωση, προβολή και επεξεργασία τους Συγκεκριμένα, μπορούμε να έχουμε πολλούς διαφορετικούς τύπους τέτοιων αρχείων, επομένως και τα αντίστοιχα προγράμματα για καθέναν από αυτούς Π.χ. μία εικόνα μπορεί να αποθηκευτεί με διάφορες μορφές, όπως JPEG, GIF, TIFF Ένα συγκεκριμένο πρόγραμμα μπορεί να ανοίξει μία εικόνα JPEG, αλλά όχι απαραίτητα και μία εικόνα TIFF Εισαγωγή στην Πληροφορκή
Αρχεία κειμένου, ψηφιακά και δεδομένων (3/3) Τόσο στα αρχεία κειμένου, όσο και στα ψηφιακά/δυαδικά αρχεία όλα τα δεδομένα αποθηκεύονται προφανώς σε ψηφιακή μορφή ως δυαδικά ψηφία μηδέν και ένα Ο παραπάνω διαχωρισμός των αρχείων αναφέρεται στην ερμηνεία των bits, τα οποία μπορούν να ερμηνευτούν ως χαρακτήρες (αρχεία κειμένου) ή με κάποια άλλη ειδική μορφή (ψηφιακά/δυαδικά αρχεία) Επίσης, κάποια αρχεία μπορεί να «μοιάζουν» με αρχεία κειμένου, αλλά στην πραγματικότητα δεν είναι Π.χ. τα προγράμματα επεξεργασίας κειμένου που επιτρέπουν πέρα από την αποθήκευση των χαρακτήρων διάφορες μορφοποιήσεις, όπως χρώματα, στυλ γραφικά και πλαίσια, αποθηκεύουν τις πληροφορίες ως δυαδικά/ψηφιακά αρχεία και όχι ως αρχεία κειμένου Αυτό είναι απαραίτητο για την αποθήκευση όλων των επιπρόσθετων πληροφοριών που μπορεί να περιέχει το αρχείο πέραν των χαρακτήρων Εισαγωγή στην Πληροφορκή
Τύποι Αρχείων (1/4) Τα περισσότερα λειτουργικά συστήματα υποστηρίζουν διάφορους τύπους αρχείων Ο τύπος αρχείου (file type) δηλώνει το είδος της πληροφορίας που περιέχει το αρχείο Κάθε αρχείο, είτε κειμένου, είτε ψηφιακό περιέχει ένα συγκεκριμένο, ειδικό τύπο πληροφορίας Π.χ. μία εικόνα αποθηκευμένη σε μορφή JIF ή ένα μουσικό κομμάτι αποθηκευμένο σε μορφή mp3 Κάθε αρχείο συνοδεύεται από ένα μοναδικό όνομα Το όνομα αυτό αποτελείται από δύο μέρη τα οποία διαχωρίζονται από μία τελεία Το πρώτο μέρος (αριστερά) είναι το κυρίως όνομα, δηλαδή το όνομα που καθορίζει ο χρήστης κατά την αποθήκευση του αρχείου Το δεύτερο μέρος (δεξιά) είναι η κατάληξη ή προέκταση του αρχείου (file extension) και δίνει κάποιες πληροφορίες για το αρχείο, όπως ο τύπος του Εισαγωγή στην Πληροφορκή
Τύποι Αρχείων (2/4) Ο τύπος του αρχείου επιτρέπει στο λειτουργικό σύστημα να λειτουργεί πάνω στο αρχείο με τέτοιο τρόπο που να έχει νόημα για το αρχείο Το λειτουργικό σύστημα από την πλευρά του, διατηρεί μία λίστα από τους διάφορους τύπους αρχείων που μπορεί να αναγνωρίσει και συσχετίζει καθέναν από αυτούς με ένα κατάλληλο πρόγραμμα εφαρμογής, το οποίο μπορεί να «ανοίξει» το αρχείο Τύπος Αρχείου Κατάληξη Απλά αρχεία κειμένου txt Αρχεία κειμένου με μορφοποίηση mp3, mp4, wav Μουσικά αρχεία jpeg, gif, jpg, tiff Αρχεία εικόνων doc, docx, wp3 Αρχεία πηγαίου κώδικα (προγράμματα) java, c, cpp Εισαγωγή στην Πληροφορκή
Τύποι Αρχείων (3/4) Συνήθως, μπορούν να υπάρξουν περισσότερα από ένα προγράμματα που μπορούν να εκτελέσουν έναν τύπο αρχείου Το αρχείο φορτώνεται πάντα με το προεπιλεγμένο πρόγραμμα που έχει οριστεί για μία συγκεκριμένη κατάληξη, εκτός και αν ο χρήστης ζητήσει κάτι διαφορετικό Επίσης, ένα συγκεκριμένο εικονίδιο συσχετίζεται με έναν τύπο αρχείου και το πρόγραμμα εφαρμογής του Όταν κάνουμε διπλό κλικ στο εικονίδιο αυτό, ξεκινάει το πρόγραμμα εφαρμογής που έχει συσχετιστεί με το αρχείο, το οποίο στη συνέχεια φορτώνει και το ίδιο το αρχείο Εισαγωγή στην Πληροφορκή
Τύποι Αρχείων (4/4) Ένα αρχείο μπορούμε να του δώσουμε οποιοδήποτε όνομα θέλουμε, με όποια κατάληξη επιθυμούμε Αν αλλάξουμε την κατάληξη του αρχείου δεν αλλάζουν ούτε τα δεδομένα που υπάρχουν μέσα στο αρχείο, ούτε και η ειδική μορφή του αρχείου Αυτό σημαίνει ότι αν προσπαθήσουμε να ανοίξουμε το αρχείο με λανθασμένη κατάληξη, δηλαδή διαφορετική από αυτήν που αντιστοιχεί στην ειδική μορφή του συγκεκριμένου αρχείου, το πρόγραμμα θα μας εμφανίσει μηνύματα λάθους Τα αρχεία δεδομένων περιέχουν πληροφορία που αποτελείται από εγγραφές του ίδιου τύπου Η εγγραφή (record) είναι ένα σύνολο από πεδία που συνδέονται μεταξύ τους λογικά Το πεδίο (field) είναι ένα σύνολο από χαρακτήρες που παριστάνει μία λέξη, ένα σύνολο από λέξεις ή έναν αριθμό Παρακάτω βλέπουμε ένα παράδειγμα μιας εγγραφής που αποτελείται από πέντε πεδία Το πρώτο πεδίο μιας εγγραφής είναι το κλειδί (key), το οποίο είναι ένα συγκεκριμένο, απαραίτητο πεδίο που χαρακτηρίζει μοναδικά την εγγραφή Πεδίο 1 Πεδίο 2 Πεδίο 3 Πεδίο 4 Πεδίο 5 CW-9483 Γιώργος ΤΕΙ Κρήτης Θεσσαλονίκη 4543 Εισαγωγή στην Πληροφορκή
Λειτουργίες των Αρχείων (1/2) Τα αρχεία χρησιμοποιούνται για την αποθήκευση πληροφοριών και την ανάκτησή τους σε κάποια μελλοντική στιγμή Οι βασικότερες λειτουργίες που μπορούν να επιτελεστούν σε ένα αρχείο είναι οι εξής: Δημιουργία αρχείου (Create) Διαγραφή αρχείου (Delete) Άνοιγμα αρχείου (Open) Κλείσιμο αρχείου (Close) Διάβασμα δεδομένων (Read) Εγγραφή δεδομένων (Write) Εγγραφή δεδομένων στο τέλος του αρχείου (Append) Μετονομασία αρχείου (Rename) Αντιγραφή αρχείου (Copy) Εισαγωγή στην Πληροφορκή
Λειτουργίες των Αρχείων (2/2) Όσον αφορά τα αρχεία βάσεων δεδομένων, οι κυριότερες λειτουργίες που σχετίζονται με αυτά είναι οι εξής: Ανάκτηση (retrieval) εγγραφών: Πρόκειται για τη λήψη των περιεχομένων μιας εγγραφής, χωρίς να γίνει καμία μεταβολή στην εγγραφή Ενημέρωση (updating) εγγραφών: Αφορά κάθε λειτουργία που επιφέρει αλλαγές στα περιεχόμενα ή στην ίδια την εγγραφή (όπως είναι η προσθήκη ή η διαγραφή μιας εγγραφής ή η αλλαγή σε κάποιο από τα πεδία της) Ταξινόμηση (sorting) εγγραφών: Πρόκειται για μια λειτουργία όπου οι εγγραφές ενός αρχείου ταξινομούνται κατά αύξουσα ή φθίνουσα σειρά, ανάλογα με την τιμή ενός πεδίου ή συνδυασμού αυτών Εισαγωγή στην Πληροφορκή
Ιεραρχία ή δένδρο Καταλόγων (1/3) Για την καλύτερη οργάνωση των αρχείων μας, αυτά ταξινομούνται σε καταλόγους Ένας κατάλογος (directory) είναι μια δομή που ομαδοποιεί ένα σύνολο αρχείων Μπορεί να περιέχει αρχεία ή άλλους καταλόγους (οποιουδήποτε πλήθους) Έτσι, δημιουργείται μία ιεραρχική δομή μεταξύ των καταλόγων του συστήματος, η οποία αναπαριστά την οργάνωση των εμφωλευμένων καταλόγων ενός συστήματος αρχείων Η δομή αυτή ονομάζεται ιεραρχία ή δένδρο καταλόγων (directory tree) Ο κατάλογος που βρίσκεται στο πιο υψηλό επίπεδο είναι μοναδικός κα ονομάζεται κατάλογος ρίζα (root directory) Μεταξύ δύο καταλόγων που ο ένας βρίσκεται μέσα στον άλλον, ο κατάλογος που περιέχει τον άλλον κατάλογο ονομάζεται πατρικός κατάλογος (parent directory), ενώ αυτός που εμπεριέχεται στον πρώτο ονομάζεται υποκατάλογος (subdirectory) Εισαγωγή στην Πληροφορκή
Ιεραρχία ή δένδρο Καταλόγων (2/3) Σε μία δεδομένη χρονική στιγμή, ο χρήστης έχει τη δυνατότητα να χειρίζεται ένα συγκεκριμένο κατάλογο Ο κατάλογος αυτός ονομάζεται κατάλογος εργασίας (working directory) Προκειμένου να μπορούμε να βρίσκουμε τα αρχεία και τους καταλόγους που επιθυμούμε κάθε φορά, χρειάζεται να δηλώσουμε την ακριβή τοποθεσία αυτών Αυτό επιτυγχάνεται περιγράφοντας τη διαδρομή (path) δηλαδή τη σειρά των καταλόγων που πρέπει να ανοίξουμε για να φτάσουμε στο επιθυμητό αρχείο ή κατάλογο Υπάρχουν δύο διαφορετικοί τρόποι που μπορούμε να χρησιμοποιήσουμε: απόλυτη διαδρομή (absolute path) σχετική διαδρομή (relative path) Εισαγωγή στην Πληροφορκή
Ιεραρχία ή δένδρο Καταλόγων (3/3) Η απόλυτη διαδρομή (absolute path) είναι η διαδρομή που ξεκινάει από το βασικό κατάλογο (δηλαδή τη ρίζα) και φτάνει μέχρι το αρχείο ή κατάλογο που αναζητούμε Π.χ. η διαδρομή C:\Program Files\Outlook Express (ή ισοδύναμα \Program Files\Outlook Express) σημαίνει ότι ο βασικός κατάλογος περιέχει τον υποκατάλογο Program Files, ο οποίος με τη σειρά του περιέχει τον υποκατάλογο Outlook Express Η σχετική διαδρομή (relative path) είναι αυτή όπου τα ονόματα των διαδρομών δεν ξεκινούν από τον βασικό κατάλογο, αλλά προσδιορίζονται σε σχέση με τον κατάλογο εργασίας Π.χ. αν εργαζόμαστε στο Desktop (δηλαδή ο κατάλογος εργασίας είναι ο C:\Documents and Settings\user\Desktop), το αρχείο με απόλυτη διαδρομή C:\Documents and Settings\user\Desktop\mySchedule.txt μπορεί να προσδιοριστεί απλούστατα ως mySchedule.txt Εισαγωγή στην Πληροφορκή
Δέντρο Καταλόγων του Windows Εισαγωγή στην Πληροφορκή
Δέντρο Καταλόγων του UNIX Εισαγωγή στην Πληροφορκή
Φυσική Αποθήκευση Αρχείων (1/3) Τα αρχεία αποθηκεύονται συνήθως στο σκληρό δίσκο, επομένως η διαχείριση του χώρου του δίσκου και η αποθήκευση των αρχείων με αποδοτικό τρόπο είναι ένα εξαιρετικά σημαντικό θέμα Παρόλο που εμείς έχουμε την αίσθηση ότι το κάθε αρχείο είναι αποθηκευμένο στο δίσκο σε συνεχείς θέσεις μνήμης, αυτό δεν συμβαίνει τις περισσότερες φορές Στην πραγματικότητα, οι εγγραφές των αρχείων καταλαμβάνουν διάφορες περιοχές του δίσκου, οι οποίες συχνά απέχουν αρκετά μεταξύ τους Συγκεκριμένα, η αποθήκευση ξεκινά με τις εγγραφές να αποθηκεύονται στις θέσεις ενός τομέα (sector) και μόλις αυτός συμπληρωθεί, οι επόμενες εγγραφές παίρνουν θέσεις και αποθηκεύονται στον επόμενο διαθέσιμο τομέα Όταν συμπληρωθεί η περιοχή ενός ίχνους (track), συνεχίζουμε στον τομέα του επόμενου ίχνους με τον ίδιο ακριβώς τρόπο Επομένως, αρκετά συχνά ένα αρχείο δεδομένων μπορεί να είναι αποθηκευμένο σε διάσπαρτες θέσεις στο δίσκο Εισαγωγή στην Πληροφορκή
Φυσική Αποθήκευση Αρχείων (2/3) Το λειτουργικό σύστημα είναι υπεύθυνο για την ψευδαίσθηση που δημιουργείται στο χρήστη (και τις εφαρμογές) ότι το αρχείο βρίσκεται σε συνεχόμενες θέσης στη μνήμη Αυτό είναι και ένα χαρακτηριστικό παράδειγμα αφαιρετικότητας (abstraction), δηλαδή απομόνωσης των τεχνικών υλοποίησης και απλοποίησης της εικόνας του προβλήματος Εισαγωγή στην Πληροφορκή
Φυσική Αποθήκευση Αρχείων (3/3) Record 1 Record 2 Record 3 Record 4 ίχνος (track) τομέας (block) Εισαγωγή στην Πληροφορκή
Χρονοδρομολόγηση Δίσκου Καθώς πολλά προγράμματα μπορούν να τρέχουν ταυτόχρονα σε έναν υπολογιστή, μπορούν να δημιουργηθούν πολλές αιτήσεις προσπέλασης δίσκου Έτσι, δημιουργείται η ανάγκη για έναν αποδοτικό τρόπο προσπέλασης των αρχείων μας Θυμηθείτε ότι ο χρόνος προσπέλασης του δίσκου εξαρτάται από τρεις παράγοντες: το χρόνο αναζήτησης την καθυστέρηση περιστροφής τον χρόνο μεταφοράς των δεδομένων Η τεχνική που χρησιμοποιείται από το λειτουργικό σύστημα για την επιλογή και εξυπηρέτηση αιτημάτων προσπέλασης ονομάζεται χρονοδρομολόγηση δίσκου (disk scheduling) Εισαγωγή στην Πληροφορκή
Αλγόριθμοι Χρονοδρομολόγησης Δίσκου Χρονοδρομολόγηση με σειρά άφιξης (First-Come First Served disk scheduling, FCFS) Σε αυτόν τον αλγόριθμο τα αιτήματα εξυπηρετούνται με τη σειρά που φτάνουν, ανεξάρτητα με το που βρίσκονται οι κεφαλές του δίσκου Χρονοδρομολόγηση με το μικρότερο χρόνο ανίχνευσης (Shortest-Seek Time-First disk scheduling, SSTF) Σε αυτόν εξυπηρετείται πάντα πρώτα το αίτημα που απαιτεί τη λιγότερη κίνηση των κεφαλών του δίσκου Χρονοδρομολόγηση με σάρωση δίσκου (SCAN disk scheduling) Σε αυτόν οι κεφαλές του δίσκου κινούνται προς και μακριά από τον άξονα καθώς ο δίσκος περιστρέφεται συνεχώς προς μία κατεύθυνση Μόλις ένα από τα τμήματα που έχουν ζητηθεί για προσπέλαση βρεθεί κάτω από την κεφαλή, τότε αυτή το διαβάζει Εισαγωγή στην Πληροφορκή
Άσκηση Έστω ένας δίσκος με 100 κυλίνδρους Σε μία δεδομένη χρονική στιγμή έχουν δημιουργηθεί τα παρακάτω αιτήματα κυλίνδρων με αυτή τη σειρά: 49, 91, 22, 61, 7, 62, 33, 35 Επίσης, υποθέστε ότι οι κεφαλές ανάγνωσης/εγγραφής του δίσκου βρίσκονται εκείνη τη στιγμή στον κύλινδρο 26 και κινούνται εσωτερικά προς τον άξονα δηλαδή προς τις χαμηλότερες τιμές κυλίνδρων Δώστε τη σειρά με την οποία θα εξυπηρετηθούν τα αιτήματα για καθέναν από τους τρεις αλγορίθμους χρονοδρομολόγησης δίσκου Εισαγωγή στην Πληροφορκή
Απάντηση (1/2) Χρονοδρομολόγηση με σειρά άφιξης: Τα αιτήματα εξυπηρετούνται με τη σειρά που φτάνουν, επομένως: 49, 91, 22, 61, 7, 62, 33, 35 Χρονοδρομολόγηση με το μικρότερο χρόνο ανίχνευσης: Από τον κύλινδρο 26 που βρισκόμαστε αρχικά, το πιο κοντινό αίτημα είναι αυτό στον κύλινδρο 22. Από τον κύλινδρο 22 το πιο κοντινό αίτημα είναι αυτό στον κύλινδρο 33. Από τον κύλινδρο 33 το πιο κοντινό αίτημα είναι αυτό στον κύλινδρο 35. Από τον κύλινδρο 35 το πιο κοντινό αίτημα είναι αυτό στον κύλινδρο 49. Από τον κύλινδρο 49 το πιο κοντινό αίτημα είναι αυτό στον κύλινδρο 61. Από τον κύλινδρο 61 το πιο κοντινό αίτημα είναι αυτό στον κύλινδρο 62. Από τον κύλινδρο 62 το πιο κοντινό αίτημα είναι αυτό στον κύλινδρο 91. Από τον κύλινδρο 91 το πιο κοντινό αίτημα είναι αυτό στον κύλινδρο 7. Άρα, τα αιτήματα θα εξυπηρετηθούν ως εξής: 22, 33, 35, 49, 61, 62, 91, 7. Εισαγωγή στην Πληροφορκή
Απάντηση (2/2) Χρονοδρομολόγηση με σάρωση δίσκου: Από τον κύλινδρο 26 που βρισκόμαστε αρχικά και κινούμαστε προς τον άξονα, ο πρώτος κύλινδρος που θα συναντήσουμε είναι ο 22 και ο επόμενος ο 7 Στη συνέχεια, και αφού φτάσει μέχρι τον πρώτο κύλινδρο, η κεφαλή θα αρχίσει να κινείται προς τα έξω Οι άξονες που θα συναντήσει με τη σειρά είναι: 33, 35, 49, 61, 62, 91 Άρα, τα αιτήματα θα εξυπηρετηθούν ως εξής: 22, 7, 33, 35, 49, 61, 62, 91 Εισαγωγή στην Πληροφορκή
Προσπέλαση Αρχείου (1/2) Το λειτουργικό σύστημα για τη διαχείριση των αρχείων, τόσο την αποθήκευση νέων όσο και την προσπέλαση υπαρχόντων αρχείων, διατηρεί διάφορες σημαντικές πληροφορίες Κατ’ αρχήν, διατηρεί έναν πίνακα που δείχνει ποιοι τομείς (sectors) της δευτερεύουσας μνήμης είναι ελεύθεροι, προκειμένου να έχει άμεση εποπτεία και γνώση του διαθέσιμου χώρου Επίσης, όσον αφορά τα δεσμευμένα κομμάτια της μνήμης, για κάθε κατάλογο διατηρεί έναν πίνακα, ο οποίος περιέχει πληροφορίες σχετικά με τα αρχεία σε αυτόν τον κατάλογο Όταν ένα αρχείο βρίσκεται υπό επεξεργασία, τότε χρησιμοποιείται ένας υφιστάμενος δείκτης αρχείου (current file pointer), ο οποίος δείχνει τη θέση όπου θα συμβεί η επόμενη λειτουργία ανάγνωσης ή εγγραφής Αυτός ο δείκτης ανανεώνεται μετά από κάθε ανάγνωση/εγγραφή, έτσι ώστε να περιέχει τη νέα, σωστή θέση της επόμενης ανάγνωσης/εγγραφής Εισαγωγή στην Πληροφορκή
Προσπέλαση Αρχείου (2/2) Η προσπέλαση ενός αρχείου αφορά τον τρόπο με τον οποίο θα ανακτήσουμε τις πληροφορίες του Υπάρχουν διάφορες τεχνικές προσπέλασης οι οποίες πρακτικά ορίζουν τους τρόπους με τους οποίους ο υφιστάμενος δείκτης αρχείου μπορεί να επανατοποθετηθεί Οι δύο κυριότερες τέτοιες τεχνικές είναι οι εξής: σειριακή προσπέλαση άμεση προσπέλαση Κάποια λειτουργικά συστήματα παρέχουν μόνο έναν τύπο προσπέλασης αρχείου, ενώ κάποια άλλα παρέχουν επιλογή Ο τύπος προσπέλασης αρχείου που είναι διαθέσιμος καθορίζεται κατά τη δημιουργία του αρχείου Εισαγωγή στην Πληροφορκή
Σειριακή προσπέλαση Η σειριακή προσπέλαση (sequential access) αποτελεί την πιο συνηθισμένη και την πιο εύκολη προς υλοποίηση τεχνική Σε αυτήν τα δεδομένα του αρχείου επεξεργάζονται με την ίδια σειρά με την οποία αποθηκεύονται Οι λειτουργίες ανάγνωσης/εγγραφής μετακινούν τον υφιστάμενο δείκτη αρχείου τόσο όσο απαιτείται για να διαβάσουμε/γράψουμε δεδομένα Το μειονέκτημα αυτής της τεχνικής είναι ότι για να διαβάσουμε ένα συγκεκριμένο κομμάτι του αρχείου μας πρέπει πρώτα να διαβάσουμε με τη σειρά όλα τα προηγούμενα κομμάτια, μέχρι να φτάσουμε στην επιθυμητή θέση Εισαγωγή στην Πληροφορκή
Άμεση προσπέλαση Η άμεση προσπέλαση (direct access) είναι αυτή που επιτρέπει στο χρήστη να έχει άμεση πρόσβαση σε οποιαδήποτε θέση, χωρίς να απαιτείται ανάγνωση όλων των προηγούμενων κομματιών του αρχείου Αυτό επιτυγχάνεται με την διαίρεση του αρχείου σε μικρά λογικά αριθμημένα τμήματα-εγγραφές (records) Χρησιμοποιώντας τον αριθμό του επιθυμητού τμήματος μπορούμε να αποκτήσουμε άμεση πρόσβαση σε αυτό Η τεχνική της άμεσης προσπέλασης είναι πιο πολύπλοκη ως προς την υλοποίησή της, όμως δίνει τη δυνατότητα γρήγορης προσπέλασης σε περιπτώσεις που απαιτείται ταχύτητα, όπως είναι οι βάσεις δεδομένων, ανεξάρτητα από το μέγεθος του αρχείου Εισαγωγή στην Πληροφορκή
Σειριακή και Άμεση προσπέλαση Αρχείο Αρχείο Αρχή Αρχή Υφιστάμενος Δείκτης Αρχείου (Current File Pointer) Υφιστάμενος Δείκτης Αρχείου (Current File Pointer) Ανάγνωση ή Εγγραφή Μετακίνηση σε μία εγγραφή και έπειτα Ανάγνωση ή Εγγραφή Τέλος Τέλος Εισαγωγή στην Πληροφορκή
Προστασία Αρχείων (1/2) Σε ένα σύστημα πολλαπλών χρηστών η προστασία των αρχείων είναι ένα πολύ σημαντικό ζήτημα Τα αρχεία ενός χρήστη πρέπει να προστατεύονται από παρεμβάσεις άλλων χρηστών (δηλαδή ένας χρήστης δεν θα πρέπει να μπορεί να διαβάζει ή να επεξεργάζεται τα αρχεία ενός άλλου χρήστη) εκτός και αν ο κάτοχος (δημιουργός του αρχείου) το επιτρέπει Γι’ αυτό το λόγο έχει αναπτυχθεί ένας μηχανισμός προστασίας των αρχείων ο οποίος ελέγχει ποιος χρήστης θα έχει πρόσβαση σε ένα αρχείο και για ποιο σκοπό Εισαγωγή στην Πληροφορκή
Προστασία Αρχείων (1/2) Στο λειτουργικό σύστημα Unix η προστασία ορίζεται αυτόματα σε τρεις κατηγορίες, όπου για κάθε μία μπορούν να οριστούν διαφορετικά δικαιώματα: Δημιουργός (Owner) είναι ο δημιουργός του αρχείου, π.χ. student1 Ομάδα (Group) είναι μία λίστα χρηστών, π.χ. epp_006 Υπόλοιποι (World) είναι όλοι οι χρήστες που έχουν πρόσβαση στο σύστημα, π.χ. epp Δικαιώματα Ανάγνωση Εγγραφή/Διαγραφή Εκτέλεση Δημιουργός Ναι Όχι Ομάδα Υπόλοιποι Εισαγωγή στην Πληροφορκή
Τύποι Ιατρικών Δεδομένων (1/2) Η τηλεϊατρική εμπεριέχει ένα σύνολο πρακτικών που στοχεύουν στην καλύτερη φροντίδα υγείας και περιλαμβάνει διαφορετικές τεχνολογίες και εφαρμογές Μπορεί να χαρακτηριστεί από: τον τύπο των δεδομένων που στέλνονται π.χ. εξετάσεις εικόνων, κλινικές εξετάσεις, κλπ και από τα χρησιμοποιούμενα μέσα για τη μετάδοσή τους Πολλές από τις περιοχές της ιατρικής έχουν πιθανές τηλεϊατρικές εφαρμογές Εισαγωγή στην Πληροφορκή
Τύποι Ιατρικών Δεδομένων (1/2) Η τηλεϊατρική μπορεί να φανεί χρήσιμη σε περιπτώσεις στις οποίες φυσικά εμπόδια εμποδίζουν την άμεση μεταφορά πληροφορίας μεταξύ των ασθενών και των παρεχόντων την ιατρική φροντίδα Η διαθεσιμότητα της πληροφορίας είναι το κλειδί για την κατάλληλη (ιατρική) διαχείριση του περιστατικού Οι τηλεϊατρικές υπηρεσίες μπορούν να καταταχθούν σε τρεις βασικούς τύπους, ανάλογα με τον τύπο των δεδομένων που μεταφέρεται Δεδομένα Ήχο Εικόνες Μέσα σε αυτούς τους βασικούς τύπους, υπάρχουν αντίστοιχες διαβαθμίσεις Εισαγωγή στην Πληροφορκή
Δεδομένα Ένα από τα χαρακτηριστικά ορισμένων εφαρμογών τηλεϊατρικής είναι η μετάδοση δεδομένων: Στατικών όπως για παράδειγμα ο ιατρικός φάκελος ενός ασθενή Δυναμικών όπως η μεταφορά ζωτικών σημείων (καρδιακοί χτύποι, αρτηριακή πίεση, κλπ.) Η μεταφορά των δεδομένων εντάσσεται σε δύο διαφορετικές εφαρμογές: τις εφαρμογές τηλεμετρίας τις υπηρεσίες πληροφόρησης Εισαγωγή στην Πληροφορκή
Τηλεμετρία Η τηλεμετρία παρέχει τη δυνατότητα παρακολούθησης των φυσιολογικών λειτουργιών των ασθενών από ένα απομακρυσμένο σημείο Ένα από τα πρώτα πειράματα τηλεμετρίας διεξήχθη από τη NASA, όταν ιατροί στο κέντρο ελέγχου της παρακολουθούσαν τις φυσιολογικές λειτουργίες των αστροναυτών, όταν αυτοί βρίσκονταν στο διάστημα Εισαγωγή στην Πληροφορκή
Υπηρεσίες Πληροφόρησης (1/3) Πολλά νοσοκομεία και ιδιώτες ιατροί ανταλλάσσουν πληροφορία όπως αρχεία που αφορούν την εξέλιξη της υγείας των ασθενών και των χρησιμοποιούμενων διαγνωστικών μεθόδων προσπελαύνουν ηλεκτρονικούς πίνακες ανακοινώσεων για τις τελευταίες εξελίξεις στην επιστήμη τους και μεταδίδουν φακέλους ασθενών, παραπεμπτικά σημειώματα και αποτελέσματα εργαστηριακών εξετάσεων μεταξύ εξωτερικών ιατρών και νοσηλευτικών ιδρυμάτων Εισαγωγή στην Πληροφορκή
Υπηρεσίες Πληροφόρησης (2/3) Πολλά νοσηλευτικά ιδρύματα παγκοσμίως χρησιμοποιούν υπολογιστικά συστήματα σε καθημερινή βάση στα οποία διατηρούν αποθηκευμένους τους φακέλους των ασθενών τους σε ηλεκτρονικές βάσεις δεδομένων, επιτρέποντας έτσι στους ιατρούς να ανακτούν άμεσα πληροφορίες για τους ασθενείς τους Η τηλεϊατρική μπορεί να χρησιμοποιηθεί για την ενημέρωση των αρχείων αυτών, καθώς ιατροί εκτός του χώρου εργασίας τους μπορούν να προσπελαύνουν τους φακέλους των ασθενών και να τους ενημερώνουν από απόσταση Εισαγωγή στην Πληροφορκή
Υπηρεσίες Πληροφόρησης (3/3) Υπάρχουν πολλές εξειδικευμένες ιατρικές βάσεις δεδομένων, οι οποίες προσπελαύνονται χρησιμοποιώντας ηλεκτρονικούς υπολογιστές και πρωτόκολλα επικοινωνίας Παραδείγματα τέτοιων βάσεων είναι η MEDLINE στις ΗΠΑ, η οποία είναι προσπελάσιμη μέσω του Internet, η Health Online στην Ευρώπη, κλπ. Οι βάσεις αυτές παρέχουν στους χρήστες τους πληροφορίες για ιατρικά περιστατικά και τρόπους αντιμετώπισής τους, ιατρικά προϊόντα, νέα συνέδρια, κλπ. Τέλος, δεν πρέπει να αγνοεί κανείς ότι τα μηνύματα που ανταλλάσσονται μέσω fax χρησιμοποιούνται ευρέως για την ανταλλαγή πληροφορίας Εισαγωγή στην Πληροφορκή
Ήχος Μία από τις απλούστερες τηλεϊατρικές υπηρεσίες είναι η επικοινωνία και παροχή συμβουλών μεταξύ δύο ιατρών χρησιμοποιώντας το τηλέφωνο Η παραδοσιακή υπηρεσία τηλεφωνίας είναι πιθανότατα ο πιο αποτελεσματικός και οικονομικά συμφέρων τρόπος για τη διευκόλυνση της επικοινωνίας απομακρυσμένων περιοχών με αστικά κέντρα παροχής φροντίδας υγείας Το τηλέφωνο μπορεί να χρησιμοποιηθεί και για παροχή ιατρικών συμβουλών από έναν ιατρό σε έναν ασθενή Μία άλλη χρήση της παραδοσιακής τηλεφωνίας είναι η δημιουργία γραμμών τηλεφωνικής εξυπηρέτησης, όπου εξειδικευμένο προσωπικό απαντούν σε απορίες ασθενών και θα παρέχουν απλές ιατρικές συμβουλές Εισαγωγή στην Πληροφορκή
Εικόνες (1/2) Οι ιατρικές εικόνες μπορούν να είναι: ακίνητες εικόνες για παράδειγμα ακτινογραφίες κινούμενες εικόνες για παράδειγμα video Η μεγαλύτερη μετακίνηση ιατρικών εικόνων στα πλαίσια μίας τηλεϊατρικής εφαρμογής είναι για εφαρμογές τηλε-ακτινολογίας η οποία είναι πιθανότατα η πιο ευρέως χρησιμοποιούμενη τηλεϊατρική εφαρμογή προς το παρόν Η ακτινολογία αφορά στη χρήση ακτινών-Χ και άλλων τεχνικών στην ιατρική απεικονιστική ενώ η τηλε-ακτινολογία αναφέρεται στη μεταφορά των εικόνων αυτών Κάθε ένα από τα χρησιμοποιούμενα ιατρικά μηχανήματα (modalities) παράγει μία ανατομική ή λειτουργική εικόνα του ασθενή Εισαγωγή στην Πληροφορκή
Εικόνες (2/2) Έχουμε τα ακόλουθα είδη εικόνων: Παραδοσιακές Ακτινογραφίες (Conventional X-ray) Αξονική Τομογραφία (Computed Tomography) Μαγνητική Τομογραφία (Magnetic resonance) Υπέρηχοι (Ultrasound) Πυρηνική Ιατρική (Nuclear medicine) Θερμογραφία (Thermography) Φλουοροσκοπία (Fluoroscopy) Αγγειογραφία και Αγγειογραφία ψηφιακής αφαίρεσης (Angiography and digital subtraction angiography) Εισαγωγή στην Πληροφορκή
ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΔΙΑΔΙΚΤΥΟ
Δίκτυο Υπολογιστών Με τον όρο Δίκτυο Υπολογιστών αναφερόμαστε σε ένα υπολογιστικό σύστημα το οποίο επιτρέπει τη διασύνδεση μεταξύ δύο ή περισσότερων υπολογιστών. Σκοπός της δικτύωσης είναι: η ανταλλαγή δεδομένων ή/και υπηρεσιών μεταξύ των διασυνδεδεμένων υπολογιστών. Νικόλαος Παπαδάκης
Δίκτυο δύο υπολογιστών Η πιο απλή μορφή δικτύου υπολογιστών με δικτύωση μόλις δύο υπολογιστών Η διασύνδεση μεταξύ των υπολογιστών επιτυγχάνεται μέσω ειδικού καλωδίου δικτύωσης. Νικόλαος Παπαδάκης
Δικτύωση τριών και τεσσάρων υπολογιστών Νικόλαος Παπαδάκης
Δικτύωση Με τη δικτύωση επιδιώκεται η επικοινωνία κάθε υπολογιστή που συμμετέχει σε ένα δίκτυο με κάθε άλλο μέλος του συγκεκριμένου δικτύου. Σε μεγάλο πλήθος μελών ενός δικτύου, η δικτύωση μέσω καλωδιώσεων, δεν είναι πρακτική γιατί: Υπάρχει δυσκολία και ακαταστασία από το τράβηγμα καλωδίων από τον ένα υπολογιστή στον άλλο, οι οποίοι είναι πιθανό να μη βρίσκονται στο ίδιο δωμάτιο ή να ανήκουν σε χρήστες άγνωστους μεταξύ τους, και αφετέρου στην απουσία επαρκών θυρών στον υπολογιστή μας για να «κουμπώσει» το άκρο του κάθε καλωδίου δικτύωσης. Νικόλαος Παπαδάκης
Δικτύωση μέσω ενδιάμεσης συσκευής Η δικτύωση μεταξύ υπολογιστών επιτυγχάνεται μέσω ειδικών συσκευών δικτύωσης Hubs, Switches, Routers. Η δικτύωση με τον τρόπο αυτό γίνεται πολύ απλούστερη δε χρειάζεται συνολική εικόνα του δικτύου στο οποίο επιθυμεί να συμμετάσχει. Αρκεί ένα καλώδιο δικτύου, μια κατάλληλη θύρα δικτύου στον υπολογιστή του και μια κενή θύρα στην ενδιάμεση συσκευή. Νικόλαος Παπαδάκης
Δικτύωση μέσω ενδιάμεσης συσκευής Νικόλαος Παπαδάκης
Ανατομία ενός δικτύου Υπολογιστών Ένα δίκτυο αποτελείται από το αντίστοιχο Hardware και Software, όπως και ένας υπολογιστής Το Hardware αναφέρεται στα εξαρτήματα που χρειάζονται για τη δικτύωση Το Software στα αντίστοιχα πρωτόκολλα επικοινωνίας μεταξύ των διασυνδεδεμένων υπολογιστών. Νικόλαος Παπαδάκης
Δικτυακό Hardware Το Hardware ενός δικτύου περιλαμβάνει : Κάρτες δικτύου ή Νetwork Interface Cards. Αποτελούν τη διεπαφή επικοινωνίας μεταξύ δικτύου και Η/Υ. Μέσω αυτής ψηφιακά σήματα από το δίκτυο εισέρχονται στον Η/Υ για επεξεργασία και αντίστροφα. Καλώδια δικτύου. Αποτελούν το μέσο για τη ροή της πληροφορίας μεταξύ των διασυνδεδεμένων υπολογιστών. Η πληροφορία εντός τους ρέει υπό τη μορφή ηλεκτρικών παλμών. Ενδιάμεσες συσκευές δικτύωσης hubs, switches, Routers Modems εξασφαλίζουν σύνδεση με ένα δίκτυο μέσω τηλεφωνικών γραμμών. Νικόλαος Παπαδάκης
Δικτυακό Hardware Ο επεξεργαστής (CPU) και κατ’ επέκταση ολόκληρος ο Η/Υ λειτουργούν με βάση το δυαδικό σύστημα. καταλαβαίνουν και να επεξεργάζονται μονάχα δύο αριθμούς, το 0 και το 1. Τα σήματα χωρίζονται στα εξής σήματα αναλογικά είναι μια ηλεκτρική τάση η οποία μεταβάλλεται χρονικά, συνήθως με ομαλό και συνεχή τρόπο Ψηφιακά είναι μια σειρά από τιμές τάσης οι οποίες επιλέγονται από ένα προκαθορισμένο σύνολο, στο οποίο η τάση μπορεί να έχει τις τιμές +5 ή -5 Volt. Νικόλαος Παπαδάκης
Αναλογικό σήμα Νικόλαος Παπαδάκης
Ψηφιακό σήμα Νικόλαος Παπαδάκης
Δικτυακό Hardware Όλες οι ηλεκτρονικές μηχανές λειτουργούν μέσω ηλεκτρισμού, και πιο συγκεκριμένα μέσω ηλεκτρικών παλμών. Για την απλούστευση της κατασκευής τους, χρησιμοποιούμε το δυαδικό σύστημα. διάκριση μεταξύ δύο μόλις αριθμών, του 0 και του 1. Σύμβαση: Ονομάζω ως 0 την ανυπαρξία σήματος στην είσοδο και ως 1 την ύπαρξη. Με βάση τους χτύπους του ρολογιού στον επεξεργαστή της ηλεκτρονικής μου συσκευής, παρακολουθώ την είσοδο στο σύστημά μου και για κάθε χτύπο του ρολογιού ονομάζω ως 1 κάθε ηλεκτρικό παλμό που υπερβαίνει μια συγκεκριμένη στάθμη τάσης (συνήθως χρησιμοποιείται ως κατώφλι η τιμή των 2,5 Volts) 0 τους υπόλοιπους Νικόλαος Παπαδάκης
Μετατροπή ψηφιακού αριθμού σε ηλεκτρική κυματομορφή Νικόλαος Παπαδάκης
Ψηφιοποίηση Ένα αναλογικό σήμα μπορεί να μετατραπεί σε ψηφιακό με κατάλληλη επεξεργασία η οποία ονομάζεται ψηφιοποίηση. Κατά την ψηφιοποίηση λαμβάνονται δείγματα του αναλογικού σήματος και οι τιμές τους (το πλάτος τους δηλαδή) μετατρέπονται σε μια ακολουθία από 0 και 1, μέσω της μετατροπής δεκαδικών σε δυαδικούς αριθμούς. Η ψηφιοποίηση λαμβάνει χώρα σε συσκευές που ονομάζονται αναλογοψηφιακοί μετατροπείς ή ADC (Analog to Digital Converters). Για τη μετατροπή ψηφιακού σήματος σε αναλογικό εφαρμόζεται η αντίστροφη διαδικασία, η οποία λαμβάνει χώρα στους λεγόμενους ψηφιακοαναλογικούς μετατροπείς ή DAC (Digital to Analog Converters). Νικόλαος Παπαδάκης
Μετατροπή αναλογικού σήματος σε ψηφιακό Νικόλαος Παπαδάκης
Modem Τι συμβαίνει όμως στην περίπτωση του διαδικτύου όπου η πρόσβαση για τους περισσότερους οικιακούς συνδρομητές γίνετε μέσω του τηλεφωνικού δικτύου; Με δεδομένο, ότι το τηλεφωνικό δίκτυο είναι σχεδιασμένο για τη μετάδοση αναλογικών σημάτων φωνής, για τη μετάδοση ψηφιακών δεδομένων από ένα υπολογιστικό σύστημα σε ένα άλλο μέσω του τηλεφωνικού δικτύου απαιτείται πρώτα η κατάλληλη κωδικοποίηση τους ώστε αυτά να μετατραπούν σε αναλογικά. Τα χαρακτηριστικά του παραγόμενου αναλογικού σήματος θα πρέπει να είναι κατάλληλα για τη διέλευσή του μέσα από μια απλή τηλεφωνική γραμμή. Αυτή η κωδικοποίηση επιτυγχάνεται με το Modem. Νικόλαος Παπαδάκης
Λειτουργία ενός modem Νικόλαος Παπαδάκης
Ρυθμός μετάδοσης δεδομένων Βασικό στοιχείο που προσδιορίζει ένα modem είναι ο ρυθμός μετάδοσης δεδομένων στο δίκτυο ο οποίος μας δείχνει πόσο γρήγορα μπορεί να στείλει ή να λάβει δεδομένα ένα modem. Η ταχύτητα διασύνδεσης θεωρείται το πιο σημαντικό μέγεθος κατά τη χρήση ενός δικτύου και έχει ως μονάδα μέτρησης τα bits ανά δευτερόλεπτο ή bits per second (bps). Πολλαπλάσια αυτής είναι τα Κbps, Mbps, κλπ. Ως μονάδα μέτρησης του μεγέθους των αρχείων χρησιμοποιείται το byte και τα πολλαπλάσια αυτού. Νικόλαος Παπαδάκης
Modem Η ταχύτητα αποστολής χαρακτηρίζει την ταχύτητα με την οποία πραγματοποιείται η μεταφορά δεδομένων από το χρήστη προς το δίκτυο και ονομάζεται upload (ή ανέβασμα), Η ταχύτητα λήψης χαρακτηρίζει τη μεταφορά δεδομένων από το δίκτυο προς το χρήστη και ονομάζεται download (ή κατέβασμα). Οι ανάγκες λήψης είναι μεγαλύτερες της ανάγκης αποστολής. Το upload λαμβάνει χώρα μέσω του καναλιού μιας σύνδεσης και ονομάζεται uplink, Το download μέσω του downlink. Το άθροισμα των ταχυτήτων σε μία σύνδεση για upload και download δεν μπορούν να υπερβαίνουν την ονομαστική ταχύτητα μετάδοσης δεδομένων της σύνδεσης. Νικόλαος Παπαδάκης
Modem Όταν η διασύνδεση ενός δικτύου με άλλα δίκτυα ή το διαδίκτυο γίνεται μέσω τηλεφωνικής γραμμής, χρειάζεται το απαιτούμενο modem. Στις περισσότερες περιπτώσεις, η λειτουργία του modem είναι ενσωματωμένη στην ενδιάμεση συσκευή δικτύωσης, ώστε να μην απαιτείται η αγορά πρόσθετου εξοπλισμού. Αυτό συμβαίνει στα σπίτια μας, όπου η συσκευή που μας δίνεται από τον διαδικτυακό πάροχο με τον οποίο έχουμε συνδρομή ενσωματώνει τις λειτουργίες του router και του modem. Νικόλαος Παπαδάκης
Δικτύωση μέσω modem Νικόλαος Παπαδάκης
Δικτυακό Software Το λογισμικό που είναι απολύτως απαραίτητο για την επικοινωνία μεταξύ Η/Υ μέσω δικτύων είναι τα επονομαζόμενα πρωτόκολλα επικοινωνίας. Τα πιο συνηθισμένα από αυτά εγκαθίστανται σε έναν υπολογιστή κατά την εγκατάσταση του λειτουργικού συστήματος, ενώ κάποια περισσότερο εξειδικευμένα κατά την εγκατάσταση των προγραμμάτων που συνοδεύουν ένα νέο δικτυακό εξάρτημα του υπολογιστή μας. Ως πρωτόκολλο επικοινωνίας ορίζεται ένα σύνολο κανόνων συμφωνημένων και από τα δυο επικοινωνούντα μέρη και που εξυπηρετούν την μεταξύ τους ανταλλαγή πληροφοριών. Νικόλαος Παπαδάκης
Πρωτόκολλο Επικοινωνίας Το πρωτόκολλο επικοινωνίας είναι μια δέσμη κανόνων στους οποίους στηρίζεται η επικοινωνία των συσκευών σε ένα δίκτυο. Οι κανόνες αυτοί καθορίζουν τη μορφή, το χρόνο και τη σειρά μετάδοσης των πληροφοριών στο δίκτυο. Και εκτελούν έλεγχο διόρθωση σφαλμάτων στη διάρκεια μετάδοσης των πληροφοριών. Νικόλαος Παπαδάκης
Πρωτόκολλο Επικοινωνίας Τα πρωτόκολλα δεν εξυπηρετούν σε τίποτα περισσότερο απ’ ότι σήμερα τα Αγγλικά για την επικοινωνία μεταξύ ανθρώπων. Όπως μεταξύ ανθρώπων, έτσι και μεταξύ των υπολογιστών που συμμετέχουν σε ένα δίκτυο υπάρχουν ανάγκες επικοινωνίας και συνεννόησης. Ο σκοπός της δικτύωσης είναι: η ανταλλαγή πληροφοριών, αφού κάποιοι υπολογιστές κατέχουν κάποια πληροφορία ή υπηρεσία την οποία ζητούν κάποιοι άλλοι. Προκειμένου, όμως, ένας υπολογιστής να είναι σε θέσει να ζητήσει πληροφορίες από έναν άλλον και αυτός να είναι σε θέσει να καταλάβει τι ακριβώς του ζητήθηκε και να απαντήσει, χρειάζεται προηγουμένως να οριστεί και να δημοσιευτεί ένα σύνολο κανόνων που θα διέπουν κάθε συναλλαγή τέτοιας φύσεως. Με τον τρόπο αυτό, κάθε υπολογιστής που επιθυμεί να συμμετάσχει σε ένα δίκτυο και να μοιραστεί πληροφορία αρκεί, να συμμορφώνεται με τους κανόνες επικοινωνίας του συγκεκριμένου δικτύου. Νικόλαος Παπαδάκης
Πρωτόκολλο Επικοινωνίας Όταν όλοι οι υπολογιστές γνωρίζουν την ίδια γλώσσα, η επικοινωνία μεταξύ τους είναι απλή. Ο ρόλος των πρωτοκόλλων σε ένα δίκτυο είναι: Να εξασφαλίζουν την επικοινωνία μεταξύ απομακρυσμένων και εν γένει διαφορετικών (ετερογενών) συσκευών. Για τον ορισμό και την λεπτομερή προδιαγραφή των διαφόρων πρωτοκόλλων χρειάζεται να συναντηθούν και να έλθουν σε συμφωνία όσο το δυνατόν περισσότεροι από τους: μεγάλους επιχειρησιακούς παίκτες, φορείς κι εταιρίες του χώρου των υπολογιστών και των τηλεπικοινωνιών, Όσοι περισσότεροι υποστηρίξουν ένα πρωτόκολλο, τόσο μεγαλύτερες πιθανότητες επικράτησης και διάδοσης έχει έναντι των ανταγωνιστικών του πρωτοκόλλων. Και τόσο πιο πιθανό να μην υπάρχουν ζητήματα ασυμβατότητας κατά τη δικτύωση συσκευών από διαφορετικούς κατασκευαστές Νικόλαος Παπαδάκης
Ταξινόμηση Δικτύων Η/Υ Ανάλογα με το χαρακτηριστικό γνώρισμα που θα επιλέξει κανείς, τα δίκτυα υπολογιστών κατατάσσονται σε διάφορες κατηγορίες. Από τις πιο συνηθισμένες είναι η διάκρισή τους με βάση το γεωγραφικό εύρος που καλύπτουν, με βάση το φυσικό μέσο ή την τεχνολογία που χρησιμοποιείται για την πρόσβαση σε αυτό, με βάση τον τρόπο που γίνεται η μεταγωγή των δεδομένων στους εσωτερικούς κόμβους του δικτύου. Νικόλαος Παπαδάκης
Με βάση το γεωγραφικό εύρος Τοπικά δίκτυα (Local Area Networks ή LAN) Τα τοπικά δίκτυα είναι δίκτυα, τα οποία εκτείνονται σε περιορισμένη γεωγραφικά περιοχή όπως για παράδειγμα ένα κτήριο ή συγκρότημα κτηρίων και σε έκταση μερικών μέτρων και σπάνια λίγων χιλιομέτρων. Μητροπολιτικά Δίκτυα (Metropolitan Area Networks ή ΜΑΝ) Τα μητροπολιτικά δίκτυα είναι μια σχετικά νέα κατηγορία δικτύου, καλύπτουν συνήθως μια γεωγραφική περιοχή εύρους 5-50 Km, και συχνά χρησιμοποιούνται ως δίκτυα υψηλών ταχυτήτων για τη διασύνδεση τοπικών δικτύων μεταξύ τους ή με δίκτυα ευρείας περιοχής. Δίκτυα Ευρείας Περιοχής (Wide Area networks ή WAN). Τα δίκτυα ευρείας περιοχής προσφέρουν ευρύτερη κάλυψη σε σχέση με τα LAN και ΜΑΝ καθώς καλύπτουν μια εκτεταμένη γεωγραφικά περιοχή, όπως για παράδειγμα μια πόλη, ή περιοχές που βρίσκονται στο ίδιο ή ακόμη και σε διαφορετικά κράτη. Νικόλαος Παπαδάκης
Τοπικά δίκτυα Τα δίκτυα LΑΝ χαρακτηρίζονται από υψηλούς ρυθμούς μεταφοράς δεδομένων (10Mps έως 1000 Mbps) και μικρό αριθμό σφαλμάτων μετάδοσης. Επίσης, έχουν μικρό σχετικά αριθμό συνδεμένων συσκευών και χρησιμοποιούν ιδιωτικά μέσα μετάδοσης. Τοπικά δίκτυα συναντάμε σε σχολεία, πανεπιστήμια, εταιρείες, οργανισμούς, ιδρύματα και αλλού. Νικόλαος Παπαδάκης
Τοπικά δίκτυα Τα τοπικά δίκτυα μπορούν, διασυνδεόμενα μεταξύ τους με ειδικό δικτυακό εξοπλισμό, να σχηματίζουν είτε μεγαλύτερα τοπικά δίκτυα είτε, αν η απόσταση είναι μεγάλη, δίκτυα ευρείας περιοχής. Νικόλαος Παπαδάκης
Τοπολογίες τοπικών δικτύων Τοπολογία δικτύου ονομάζεται η μορφή της σύνδεσης μεταξύ των υπολογιστών (ή των κόμβων γενικότερα) που απαρτίζουν ένα δίκτυο. Οι τοπολογίες μπορούν να είναι είτε φυσικές είτε λογικές. Οι πιο συνηθισμένες τοπολογίες είναι η τύπου δακτυλίου, αστέρα και διαύλου Νικόλαος Παπαδάκης
Τοπολογία τύπου δακτυλίου Στην τοπολογία δακτυλίου (ring) οι υπολογιστές συνδέονται με τη μορφή ενός κλειστού βρόχου, έτσι ώστε κάθε συσκευή να συνδέεται άμεσα με δύο άλλες συσκευές, μία από κάθε πλευρά. Οι τοπολογίες δακτυλίων είναι σχετικά ακριβές και δύσκολο να εγκατασταθούν, αλλά προσφέρουν υψηλές ταχύτητες μετάδοσης και μπορούν να εκταθούν σε μεγάλες αποστάσεις. Συνήθως χρησιμοποιούνται στα δίκτυα οπτικών ινών. Νικόλαος Παπαδάκης
Τοπολογία τύπου αστέρα Στην τοπολογία αστέρα (star) οι υπολογιστές συνδέονται μέσω ενός κεντρικού hub. Τα δίκτυα τύπου αστέρα είναι σχετικά εύκολο να εγκατασταθούν και να διαχειριστούν γι’ αυτό και αποτελούν την πιο συνηθισμένη τοπολογία. Οι δυσλειτουργίες που εμφανίζονται οφείλονται συνήθως στο γεγονός ότι όλα τα στοιχεία πρέπει να περάσουν μέσω του hub. Νικόλαος Παπαδάκης
Τοπολογία τύπου αστέρα Η σύνδεση των διαφόρων υπολογιστών που έχουμε στο σπίτι μας πάνω στο ADSL router που διαθέτουμε συνιστά μια τοπολογία αστέρα. Νικόλαος Παπαδάκης
Τοπολογία τύπου διαύλου Στην τοπολογία διαύλου (bus) οι υπολογιστές διασυνδέονται μέσω ενός κεντρικού καλωδίου, το οποίο αποκαλείται δίαυλος (ή αρτηρία). Τα δίκτυα τύπου διαύλου είναι σχετικά ανέξοδα και εύκολο να εγκατασταθούν για μικρά δίκτυα. Τα δίκτυα Ethernet σχηματίζουν μια τοπολογία διαύλου. Νικόλαος Παπαδάκης
Μητροπολιτικά Δίκτυα Ο ρόλος ενός ΜΑΝ είναι παρόμοιος με εκείνο του Πάροχου Υπηρεσιών Διαδικτύου, με τη διαφορά ότι οι υπηρεσίες του παρέχονται σε εταιρικούς χρήστες για τη διασύνδεση μεγάλων τοπικών δικτύων εταιριών, οργανισμών και φορέων. Η δικτυακή υποδομή των MAN στις περισσότερες περιπτώσεις δεν ανήκει σε κάποιο συγκεκριμένο οργανισμό ή φορέα, αλλά είτε σε μια κοινοπραξία εταιρειών ή οργανισμών, είτε σε ένα συγκεκριμένο οργανισμό, ο οποίος εγκαθιστά την υποδομή του ΜΑΝ και ακολούθως την εκμεταλλεύεται παρέχοντας υπηρεσίες διασύνδεσης ΜΑΝ στους συνδρομητές του. Νικόλαος Παπαδάκης
Δίκτυα Ευρείας Περιοχής Ένα WAN είναι ένα επικοινωνιακό δίκτυο το οποίο διασυνδέει μικρότερα δίκτυα ή μεμονωμένους χρήστες, με άλλα απομακρυσμένα δίκτυα ή χρήστες. Το WAN καλύπτει μια ευρεία γεωγραφική περιοχή και συνήθως χρησιμοποιεί την υποδομή των υπαρχόντων φορέων, όπως για παράδειγμα των τηλεπικοινωνιακών εταιριών. Στα δίκτυα WAN, χρησιμοποιούνται διάφορες τεχνολογίες για τη διασύνδεση των συστημάτων, όπως απλές τηλεφωνικές γραμμές, μισθωμένες τηλεφωνικές γραμμές, οπτικές ίνες και ασύρματες δορυφορικές ζεύξεις. Τα δίκτυα ευρείας περιοχής χαρακτηρίζονται από χαμηλές ταχύτητες και μεγάλες καθυστερήσεις. Νικόλαος Παπαδάκης
Με βάση τον τρόπο πρόσβασης Ένα γεωγραφικά εκτεταμένο δίκτυο συνήθως διακρίνεται σε δίκτυο κορμού (backbone network) δίκτυο πρόσβασης (access network) Νικόλαος Παπαδάκης
Το δίκτυο κορμού Το δίκτυο κορμού αποτελείται συνήθως από δρομολογητές (Routers) ή γενικότερα μεταγωγούς, οι οποίοι τοποθετούνται στα σημεία διακλάδωσης ενός δικτύου και έχουν προορισμό να προωθούν τα δεδομένα που διακινούνται μέσω δικτύου πλησιέστερα προς τον προορισμό τους. Οι δρομολογητές διασυνδέονται μεταξύ τους με γραμμές υψηλής ταχύτητας. Η σύνδεση των τελικών χρηστών, οι οποίοι μπορεί να είναι είτε τοπικά δίκτυα είτε μεμονωμένα υπολογιστικά συστήματα, με το δίκτυο κορμού γίνεται μέσω του αντίστοιχου δικτύου πρόσβασης. Η σύγχρονη τεχνολογία προσφέρει ένα πλήθος λύσεων για την υλοποίηση του δικτύου πρόσβασης, επιτρέποντας την επιλογή της καταλληλότερης λύσης σε σχέση με τις απαιτήσεις των τελικών χρηστών. Νικόλαος Παπαδάκης
Ενσύρματα και Ασύρματα Λαμβάνοντας ως κριτήριο το μέσο μετάδοσης που χρησιμοποιείται στα δίκτυα πρόσβασης, τα δίκτυα μπορούν να διακριθούν σε ενσύρματα και ασύρματα. Στα ενσύρματα δίκτυα, η σύνδεση μεταξύ των Η/Υ γίνεται καλωδιακά, για παράδειγμα μέσω τηλεφώνου, οπτικών ινών ή άλλου ενσύρματου δικτύου επικοινωνιών. Στα ασύρματα δίκτυα οι Η/Υ συνδέονται μεταξύ τους μέσω του αέρα κάνοντας χρήση κατάλληλα διαμορφωμένων δεσμών ηλεκτρομαγνητικής ακτινοβολίας (δηλαδή φωτός) που μπορούν να λειτουργούν σε διάφορες συχνότητες (π.χ. ραδιοκύματα ή μικροκύματα), ενώ στην περίπτωση πολύ μεγάλων αποστάσεων είναι δυνατό να γίνεται και χρήση δορυφόρου. Νικόλαος Παπαδάκης
Τεχνολογίες Ενσύρματης Πρόσβασης Οι πιο διαδεδομένες τεχνολογίες ενσύρματης πρόσβασης είναι οι ακόλουθες: Μέσω απλής τηλεφωνικής γραμμής PSTN (Dial-Up) Μέσω μόνιμων ή μισθωμένων γραμμών (leased lines) Μέσω γραμμών ΙSDN Μέσω Ψηφιακής Συνδρομητικής Γραμμής DSL/ADSL/VDSL Νικόλαος Παπαδάκης
Απλή τηλεφωνική γραμμή PSTN (Dial-Up) Είναι ο πιο πρωτόγονος και πιο «αργός», αλλά απλός τρόπος πρόσβασης. Για τη μετάδοση των δεδομένων χρησιμοποιείται το τηλεφωνικό δίκτυο) Δημόσιο Τηλεφωνικό Δίκτυο Μεταγωγής (Public Swtched Telephone Network – PSTN. Η τεχνολογία Dial-Up PSTN παρέχει χαμηλή ταχύτητα η οποία φθάνει τα 56 kbps. Υλοποιείται μέσω μιας PSTN τηλεφωνικής γραμμής και μιας συσκευής (modem). Χαρακτηριστικά της είναι ότι έχει το χαμηλότερο αρχικό κόστος, αλλά η αργή της ταχύτητα συνεπάγεται υψηλότερο κόστος χάσιμο χρόνου σε αναμονές, δυσκολία τηλεφωνικής επαφής αν δε διαθέτουμε άλλη τηλεφωνική σύνδεση. Η σύνδεση γίνεται με κλήση ενός Ενιαίου Πανελλαδικού Αριθμού Κλήσης (ΕΠΑΚ). Πρόκειται για ένα ειδικό αριθμό κλήσης για κάθε ISP με δυνατότητα σύνδεσης στο Internet από οποιοδήποτε σημείο στην Ελλάδα. Νικόλαος Παπαδάκης
Μόνιμες ή Μισθωμένες γραμμές Σε αντίθεση με τις γραμμές Dial-Up, οι μισθωμένες γραμμές είναι συνεχώς διαθέσιμες, παρέχοντας αδιάλειπτα μια προκαθορισμένη ταχύτητα μετάδοσης δεδομένων. Οι γραμμές αυτές μισθώνονται από έναν πάροχο τηλεπικοινωνιακών υπηρεσιών και η χρέωσή τους γίνεται με βάση την ταχύτητα και το μήκος τους και όχι με το χρόνο χρήσης τους ή τον όγκο των δεδομένων που μεταφέρουν. Οι μισθωμένες γραμμές είναι σχετικά ακριβή επιλογή και χρησιμοποιούνται σε περιπτώσεις που απαιτείται εγγυημένη ταχύτητα μετάδοσης δεδομένων. Νικόλαος Παπαδάκης
Γραμμές ΙSDN Αμέσως ταχύτερη είναι η σύνδεση που μπορούμε να κάνουμε μέσω τηλεφωνικής γραμμής ISDN. To ISDN (Ψηφιακό Δίκτυο Ενοποιημένων Υπηρεσιών – Integrated Services Digital Network) υλοποιείται στο υπάρχον τηλεφωνικό δίκτυο και παρέχει ψηφιακή επικοινωνία μέχρι και τον τελικό χρήστη. Προϋποθέτει κατάλληλη συσκευή modem, καθώς και διαφορετικές ρυθμίσεις της βασικής τηλεφωνικής μας σύνδεσης. Στα πλεονεκτήματά της συγκαταλέγονται η αυξημένη ταχύτητα, η πιο αξιόπιστη σύνδεση η παροχή δεύτερου αριθμού τηλεφώνου. Νικόλαος Παπαδάκης
Γραμμές ΙSDN Μπορούμε να συνδέσουμε έως και οχτώ συσκευές σε μια γραμμή ISDN, από τις οποίες δύο μπορούν να λειτουργούν ταυτόχρονα. Στα μειονεκτήματα συγκαταλέγονται το αρχικά ακριβότερο κόστος εγκατάστασης το υψηλότερο πάγιο κόστος της γραμμής ISDN σε σχέση με τη γραμμή PSTN. Η ταχύτητα μεταφοράς δεδομένων με γραμμή ISDN μπορεί να είναι 64 Κbps ή 128 Κbps, ενώ η σύνδεση γίνεται πάλι με την κλήση του ΕΠΑΚ. Γενικά η τεχνολογία ISDN είναι συμφέρουσα για σποραδική μεταφορά δεδομένων, σε συνδυασμό με τηλεφωνικές κλήσεις. Γίνεται όμως ασύμφορη όταν χρησιμοποιείται για μακρόχρονη σύνδεση με το δίκτυο, εφόσον η χρέωση είναι ανάλογη της διάρκειας σύνδεσης. Νικόλαος Παπαδάκης
Ψηφιακής Συνδρομητικής Γραμμής DSL/ADSL O όρος DSL (Digital Subscriber Line) ή xDSL περιγράφει μια οικογένεια τεχνολογιών που παρέχουν μετάδοση δεδομένων πάνω από το παραδοσιακά τηλεφωνικά καλώδια. Η πιο δημοφιλής τεχνολογία DSL είναι το ADSL (Asymmetric Digital Subscriber Line). Η τεχνολογία DSL κάνει δυνατή την επίτευξη πολύ υψηλών ταχυτήτων μεταφοράς δεδομένων μέσα από την υπάρχουσα PSTN τηλεφωνική καλωδιακή υποδομή, χρησιμοποιώντας τα ήδη εγκατεστημένα χάλκινα ζεύγη καλωδίων τα οποία συνδέουν τους συνδρομητές σταθερής τηλεφωνίας με τον τηλεπικοινωνιακό φορέα. Η τεχνολογία DSL χρησιμοποιεί ειδικά modem τα οποία με κατάλληλη κωδικοποίηση επιτυγχάνουν ταχύτητες της τάξης των Mbps με μέγιστο τα 56 Mbps. Νικόλαος Παπαδάκης
Ψηφιακής Συνδρομητικής Γραμμής DSL/ADSL Τα modem αυτά χρησιμοποιούν το τηλεφωνικό δίκτυο για να συνδεθούν με το Συγκεντρωτή Πρόσβασης DSL (DSL Access Module – DSLAM) του παροχέα υπηρεσιών DSL. Επιτρέπει την ταυτόχρονη χρήση τηλεφώνου, συν του ότι μπορούμε πλέον να τιμολογούμαστε με πάγιο τέλος και όχι βάσει της διάρκειας σύνδεσής μας στο διαδίκτυο. Επιπλέον, δεν απαιτείται η διαρκής αποσύνδεση και επανασύνδεσή μας. Αποτελεί σήμερα τον πιο διαδεδομένο τρόπο πρόσβασης στο διαδίκτυο για οικιακούς συνδρομητές. Νικόλαος Παπαδάκης
Τεχνολογίες Ασύρματης Πρόσβασης Οι πιο διαδεδομένες τεχνολογίες ασύρματης πρόσβασης είναι οι ακόλουθες: Πρόσβαση μέσω WiFi/WLAN Πρόσβαση μέσω δικτύου κινητής τηλεφωνίας Δορυφορική Πρόσβαση Νικόλαος Παπαδάκης
Πρόσβαση μέσω WiFi/WLAN Το μοντέλο είναι το εξής: υπάρχει ένα ενσύρματο δίκτυο κορμού στο οποίο συνδέονται τα σημεία πρόσβασης (Access Points-AP) του ασύρματου δικτύου. Μέσω των ΑΡ ένας υπολογιστής αποκτά πρόσβαση στο διαδίκτυο. Μονάχα η επικοινωνία μεταξύ υπολογιστή και ΑΡ γίνεται ασύρματα, το υπόλοιπο της επικοινωνίας γίνεται μέσω ενσύρματων μέσων. Για την πρόσβαση σε κάποιο ασύρματο δίκτυο απαραίτητη προϋπόθεση είναι η συσκευή μας να είναι εξοπλισμένη με ασύρματη κάρτα δικτύωσης συμβατή με το ασύρματο δίκτυο στο οποίο επιθυμούμε να συνδεθούμε. Στα ασύρματα τοπικά δίκτυα γίνεται χρήση του πρωτοκόλλου IEEE 802.11 Νικόλαος Παπαδάκης
Πρόσβαση μέσω WiFi/WLAN Είναι αρκετά δημοφιλή λόγω της κινητικότητας που επιτρέπουν στο χρήστη. Νικόλαος Παπαδάκης
Πρόσβαση μέσω δικτύου κινητής τηλεφωνίας Με τον όρο κινητά δίκτυα αναφερόμαστε στα δίκτυα που χρησιμοποιούν τεχνολογίες κινητής τηλεφωνίας προκειμένου να προσφέρουν δυνατότητα ασύρματων συνδέσεων σε μετακινούμενους χρήστες. Σε ένα σύστημα κινητής επικοινωνίας η κυψέλη αποτελεί τη βασική οντότητα για τον χρήστη και ορίζεται ως η περιοχή στην οποία η ραδιοκάλυψη δίνεται από έναν σταθμό βάσης (base station). Η πρόσβαση στο διαδίκτυο μέσω κινητών δικτύων μπορεί να γίνει μέσω τεχνολογίας GPRS ή ακόμη καλύτερα UMTS (γνωστής και ως 3G) για υψηλότερες ταχύτητες πρόσβασης. Νικόλαος Παπαδάκης
Πρόσβαση μέσω δικτύου κινητής τηλεφωνίας Η πρόσβαση στο διαδίκτυο μέσω κινητών δικτύων προσφέρει μεγάλη γεωγραφική κάλυψη αντίστοιχη δυνατότητα κινητικότητας, απλοποιημένη πρόσβαση, ικανοποιητικές ταχύτητες μετάδοσης (της τάξης μερικών Mbps). Μειονεκτήματα Πιο υψηλή χρέωση Μεταβολές στην ποιότητα λήψης κατά τη διάρκεια μιας σύνδεσης. Νικόλαος Παπαδάκης
Δορυφορική Πρόσβαση Μια δορυφορική σύνδεση μέσω «πιάτου» προσφέρει ταχύτητες περίπου επταπλάσιες από αυτές του ISDN και κατά κάτι μικρότερες από αυτές της DSL. Είναι όμως αρκετά ακριβή λόγω του εξειδικευμένου εξοπλισμού και της αντίστοιχα ακριβής συνδρομής. Συνήθως χρησιμοποιείται σε περιπτώσεις που δεν είναι εφικτή κάποια εναλλακτική μέθοδος πρόσβασης. Νικόλαος Παπαδάκης
Με βάση τον τρόπο μεταγωγής Η διακίνηση των δεδομένων μέσα σε ένα δίκτυο υλοποιείται με τη μεταγωγή τους μέσω των κόμβων (μεταγωγείς ή δρομολογητές) που απαρτίζουν ένα δίκτυο κορμού. Κατά τη διάρκεια μιας τυπικής φωνητικής τηλεφωνικής κλήσης μέσω ενός τηλεφωνικού δικτύου, δεν παρατηρούνται αυξομειούμενες καθυστερήσεις στη μετάδοση και στη λήψη της φωνής. Στην περίπτωση που το τηλεφωνικό δίκτυο είναι φορτωμένο υπάρχει το ενδεχόμενο να πραγματοποιήσουμε πολλές απόπειρες κλήσης μέχρι αυτή να επιτευχθεί. Όσο φορτωμένο και να είναι το τηλεφωνικό δίκτυο, από τη στιγμή που θα αποκατασταθεί μια τηλεφωνική κλήση, η ποιότητα της φωνής (καθυστερήσεις, παραμόρφωση φωνής κλπ) παραμένει γενικά σταθερή κατά τη διάρκειά της. Νικόλαος Παπαδάκης
Με βάση τον τρόπο μεταγωγής Η ίδια σταθερότητα παρατηρείται και στην περίπτωση που δυο υπολογιστές συνδέονται μεταξύ τους μέσω του τηλεφωνικού δικτύου, με χρήση του Modem. Οι χρήστες του Διαδικτύου είναι σαφώς γνώστες των σημαντικών επιπτώσεων που έχει στην ταχύτητα αποστολής και λήψης δεδομένων η υπερφόρτωση του Διαδικτύου κατά τις ώρες αιχμής. Πού οφείλεται η παραπάνω διαφοροποίηση, εφόσον τόσο τα τηλεφωνικά δίκτυα όσο και το Διαδίκτυο μεταφέρουν δεδομένα; Η βασική διαφορά εντοπίζεται στη διαφορετική τεχνολογία μεταγωγής που εφαρμόζουν. Νικόλαος Παπαδάκης
Τεχνολογίες Μεταγωγής Οι δύο πιο σημαντικές τεχνολογίες μεταγωγής που εφαρμόζονται σήμερα στα δίκτυα Η/Υ είναι η μεταγωγή κυκλώματος πριν από οποιαδήποτε ανταλλαγή δεδομένων μεταξύ δύο τερματικών συσκευών συνδεδεμένων στο δίκτυο (π.χ. τηλεφωνικές συσκευές, modem, κλπ), αναζητείται από το σύστημα ένα “μονοπάτι” μεταφοράς δεδομένων το οποίο, εφόσον βρεθεί, δεσμεύεται και χρησιμοποιείται αποκλειστικά για να διακινηθούν τα δεδομένα μεταξύ των δύο τερματικών συσκευών . η μεταγωγή πακέτων. κοινή χρήση του μέσου μετάδοσης των δεδομένων (π.χ. ενός καλωδίου) από πολλές τερματικές συσκευές ταυτόχρονα, η οποία επιτυγχάνεται με την πολυπλεξία στο χρόνο των πακέτων δεδομένων που μεταδίδονται μέσω του καναλιού μεταφοράς Νικόλαος Παπαδάκης
Μεταγωγή Κυκλώματος Αυτό το «μονοπάτι» μεταφοράς δεδομένων συνιστά ένα κύκλωμα μεταξύ των δύο τερματικών συσκευών. Το κύκλωμα αυτό μπορεί να αποτελείται από ένα ή περισσότερα φυσικά (π.χ. χάλκινα σύρματα) ή λογικά κυκλώματα (π.χ. κυκλώματα πολυπλεγμένα σε οπτικές ή μικροκυματικές ζεύξεις), συνδεδεμένα σε σειρά μεταξύ τους. Το κύκλωμα διατηρείται όσο διαρκεί η σύνδεση μεταξύ των δύο τερματικών συσκευών και καταργείται μόνο με τον τερματισμό της σύνδεσης μεταξύ τους, οπότε και τα επιμέρους κυκλώματα που το αποτελούν απελευθερώνονται και μπορούν να χρησιμοποιηθούν σε επόμενες συνδέσεις. Νικόλαος Παπαδάκης
Μεταγωγή Κυκλώματος Με τη μεταγωγή κυκλώματος η ταχύτητα μετάδοσης των δεδομένων δεν επηρεάζεται από το φόρτο του δικτύου, δεδομένου ότι ο κάθε χρήστης έχει την αποκλειστική χρήση του κυκλώματος που του έχει αποδοθεί κατά τη διάρκεια της σύνδεσής του. Λαμβάνοντας όμως υπόψη ότι ο χρόνος κατά τον οποίο διακινούνται δεδομένα είναι μικρότερος από τη διάρκεια της σύνδεσης (άρα και του χρόνου δέσμευσης του κυκλώματος), συμπεραίνουμε εύκολα ότι η μεταγωγή κυκλώματος δε χρησιμοποιεί αποτελεσματικά τη δικτυακή υποδομή καθώς δεσμεύει πόρους του δικτύου οι οποίοι παραμένουν αδρανείς για μεγάλα χρονικά διαστήματα. Νικόλαος Παπαδάκης
Μεταγωγή Κυκλώματος Νικόλαος Παπαδάκης
Μεταγωγή Πακέτων Το παραπάνω μειονέκτημα αντιμετωπίζεται επαρκώς με την τεχνολογία μεταγωγής πακέτων, η οποία βρίσκει ευρύτατη εφαρμογή στο Διαδίκτυο και γενικά στα δίκτυα Η/Υ,. Το βασικό χαρακτηριστικό της είναι η κοινή χρήση του μέσου μετάδοσης των δεδομένων (π.χ. ενός καλωδίου) από πολλές τερματικές συσκευές ταυτόχρονα, η οποία επιτυγχάνεται με την πολυπλεξία στο χρόνο των πακέτων δεδομένων που μεταδίδονται μέσω του καναλιού μεταφοράς. Νικόλαος Παπαδάκης
Μεταγωγή Πακέτων Απαραίτητη προϋπόθεση για τη λειτουργία αυτή είναι ο τεμαχισμός της πληροφορίας που πρόκειται να μεταδοθεί μέσα από το κανάλι και η ενθυλάκωσή της μέσα σε πακέτα σταθερού μεγέθους που θα φέρουν τις κατάλληλες αναγνωριστικές επικεφαλίδες προκειμένου να είναι εφικτή η ανασύσταση της αρχικής πληροφορίας από τα επί μέρους πακέτα κατά τη λήψη τους στον τελικό προορισμό. Η διαδικασία του τεμαχισμού και του σχηματισμού των πακέτων λαμβάνει χώρα στο λειτουργικό σύστημα του αποστολέα πριν ξεκινήσει η μετάδοση, ενώ η αντίστροφη διαδικασία πραγματοποιείται από το λειτουργικό σύστημα του παραλήπτη. Νικόλαος Παπαδάκης
Μεταγωγή Πακέτων Νικόλαος Παπαδάκης
Μεταγωγή Πακέτων Στο παράδειγμα του σχήματος, οι σταθμοί Α, Β και C θέλουν να στείλουν δεδομένα στους σταθμούς D, E και F αντίστοιχα. Τα πακέτα δεδομένων που αποστέλλει ο κάθε σταθμός καταλήγουν στο κέντρο μεταγωγής πακέτων 1 όπου και πολυπλέκονται και προωθούνται στο μέσο μετάδοσης. Η τεχνολογία μεταγωγής πακέτων επιτρέπει την αποτελεσματικότερη χρήση της δικτυακής υποδομής, εφόσον οι πόροι του δικτύου χρησιμοποιούνται μόνο εφόσον υπάρχουν δεδομένα προς μετάδοση. Χαρακτηριστικά παραδείγματα δικτύων που χρησιμοποιούν την τεχνολογία μεταγωγής πακέτων είναι Το διαδίκτυο Γενικά όλα τα δίκτυα επικοινωνίας Η/Υ. Νικόλαος Παπαδάκης
Μοντέλα αναφοράς OSI και διαδικτύου Στα δίκτυα υπολογιστών η αποστολή και η λήψη δεδομένων γίνεται σε βήματα κατά τη διάρκεια των οποίων τα δεδομένα που διακινούνται υφίστανται διαδοχικά επίπεδα επεξεργασίας και εκτελούνται συγκεκριμένες λειτουργίες. Οι λειτουργίες που συμβαίνουν σε κάθε επίπεδο επεξεργασίας, καθώς και η προτυποποιημένη μορφή των δεδομένων που υφίστανται επεξεργασία σε κάθε επίπεδο, ρυθμίζονται από το αντίστοιχο πρωτόκολλο επικοινωνίας του κάθε επιπέδου. Τα πρωτόκολλα αυτά σχηματίζουν μία "στοίβα" πρωτοκόλλων η οποία χαρακτηρίζει επακριβώς την επικοινωνία μεταξύ αποστολέα και παραλήπτη. Νικόλαος Παπαδάκης
Μοντέλα αναφοράς OSI και διαδικτύου H συνηθέστερη κατηγοριοποίηση των επιπέδων της στοίβας, από το χαμηλότερο προς το υψηλότερο, είναι γνωστή ως μοντέλο αναφοράς OSI (Open System Interconnection) και περιλαμβάνει Φυσικό επίπεδο (physical layer) Επίπεδο ζεύξης δεδομένων (data link layer) Επίπεδο δικτύου (network layer) Επίπεδο μεταφοράς (transport layer) Επίπεδο συνόδου (session layer) Επίπεδο παρουσίασης (presentation layer) Επίπεδο εφαρμογών (application layer) Νικόλαος Παπαδάκης
Μοντέλα αναφοράς OSI και διαδικτύου Αυτή η πολύπλοκη διαστρωμάτωση εξυπηρετεί τις ανάγκες συντήρησης κι επέκτασης των δικτύων και είναι απαραίτητη λόγω των διαφορετικών υπηρεσιών που παρέχει κάθε επίπεδο: Το φυσικό επίπεδο και το επίπεδο ζεύξης δεδομένων, από κοινού, ουσιαστικά επιτυγχάνουν την αξιόπιστη μετάδοση δεδομένων στο φυσικό μέσο και υλοποιούνται μέσω της κάρτας δικτύου (ενσύρματης ή ασύρματης). Το επίπεδο δικτύου προδιαγράφει τη δρομολόγηση των πακέτων διαμέσου διαφορετικών αλληλοσυνδεόμενων δικτύων ("διαδίκτυο") και επιτρέπει την αποστολή δεδομένων κατά μήκος μεγάλων γεωγραφικών αποστάσεων από έναν υπολογιστή σε έναν άλλον. Νικόλαος Παπαδάκης
Μοντέλα αναφοράς OSI και διαδικτύου Το επίπεδο μεταφοράς παρέχει μία αφαίρεση επικοινωνίας από άκρο σε άκρο, σαν να μη μεσολαβεί ένα πλήθος ενδιάμεσων δικτύων και η διαδικασία της δρομολόγησης κι επιτρέπει την επικοινωνία μεταξύ εφαρμογών που τρέχουν στον υπολογιστή του αποστολέα και του παραλήπτη διαμέσου του δικτύου. Το επίπεδο εφαρμογών, τέλος, ορίζει τα πραγματικά δεδομένα και τις πραγματικές υπηρεσίες που παρέχονται απευθείας στον χρήστη. Αξίζει να τονίσουμε, εδώ, πως κατά τη διάρκεια μιας δικτυακής σύνδεσης ο τελικός χρήστης δεν αντιλαμβάνεται τις επεξεργασίες που λαμβάνουν χώρα στα διάφορα επίπεδα πρωτοκόλλων. Το μόνο που αντιλαμβάνεται είναι το τελικό αποτέλεσμα των διεργασιών στο επίπεδο εφαρμογής το οποίο είναι αυτό που παρουσιάζεται στην οθόνη του. Νικόλαος Παπαδάκης
Μοντέλα αναφοράς OSI και διαδικτύου Η σειριακή μετάβαση των δεδομένων από το ένα επίπεδο επεξεργασίας στο άλλο πραγματοποιείται κατά την αποστολή και τη λήψη τους με την ίδια σειρά αλλά με αντίστροφη φορά. Στον αποστολέα η επεξεργασία των δεδομένων ξεκινά από το επίπεδο εφαρμογής και ολοκληρώνεται στο φυσικό επίπεδο. περιλαμβάνει τη μετάδοση των δεδομένων μέσα από το αντίστοιχο φυσικό κανάλι (π.χ. το καλώδιο) Στον παραλήπτη η επεξεργασία ξεκινάει από τη λήψη των δεδομένων μέσω του φυσικού επιπέδου και ολοκληρώνεται με την ανασύσταση της ληφθείσας πληροφορίας στο επίπεδο εφαρμογής. Νικόλαος Παπαδάκης
Επίπεδα Διαδικτύου Η στοίβα πρωτοκόλλων του διαδικτύου περιλαμβάνει τα ακόλουθα επίπεδα: Φυσικό επίπεδο (physical layer) Επίπεδο ζεύξης δεδομένων (data link layer) Επίπεδο δικτύου (network layer) Επίπεδο μεταφοράς (transport layer) Επίπεδο εφαρμογών (application layer) Νικόλαος Παπαδάκης
Επίπεδα επεξεργασίας πληροφορίας σε αποστολέα και παραλήπτη Μία εφαρμογή συλλέγει τα δεδομένα, τα οποία επιθυμεί να αποστείλει στο δίκτυο, σύμφωνα με κάποιο πρωτόκολλο εφαρμογών, το οποίο εξαρτάται από αυτήν. Το πρωτόκολλο αυτό προδιαγράφει τι επιπλέον στοιχεία προστίθενται στα υπό εξέταση δεδομένα προκειμένου να υποστηριχθούν κάποιες λειτουργίες π.χ. κάποιου είδους "ετικέτες" ώστε να γίνει κατανοητή από τον παραλήπτη η φύση των δεδομένων. Έτσι, σχηματίζεται ένα πακέτο επιπέδου εφαρμογών, που ονομάζεται μήνυμα, το οποίο προωθείται στον πυρήνα του λειτουργικού συστήματος, όπου είναι υλοποιημένο το επίπεδο μεταφοράς, σύμφωνα με κάποιο χρησιμοποιούμενο πρωτόκολλο μεταφοράς. Το επίπεδο μεταφοράς προσθέτει τα δικά του στοιχεία (την "κεφαλίδα" του), προκειμένου να υποστηριχθούν οι επιπλέον δικές του λειτουργίες, και το τελικό πακέτο προωθείται στο επίπεδο δικτύου. Νικόλαος Παπαδάκης
Επίπεδα επεξεργασίας πληροφορίας σε αποστολέα και παραλήπτη Το επίπεδο δικτύου προσθέτει επίσης τη δική του κεφαλίδα και προωθεί το άθροισμα, το πακέτο επιπέδου δικτύου, στο επίπεδο ζεύξης δεδομένων. Το τελευταίο προσθέτει τις δικές του επικεφαλίδες και προβαίνει σε αποστολή των τελικών πακέτων σύμφωνα με τους κανόνες του χρησιμοποιούμενου πρωτοκόλλου φυσικού επιπέδου. Οι κανόνες αυτοί ορίζουν τον τρόπο κωδικοποίησης σε κάποιο φυσικό μέσο, τον τυχόν τρόπο διαμόρφωσης και τον τρόπο μετάδοσης. Κατά τη λήψη του μεταδιδόμενου πακέτου στον παραλήπτη, οι διαδικασίες επαναλαμβάνονται με αντίστροφη σειρά. Νικόλαος Παπαδάκης
Επίπεδα επεξεργασίας πληροφορίας σε αποστολέα και παραλήπτη Νικόλαος Παπαδάκης
Πρωτόκολλα Διαδικτύου Στην περίπτωση του Διαδικτύου τα πιο σημαντικά πρωτόκολλα σε κάθε επίπεδο είναι το πρωτόκολλο διαδικτύου ή IP (Internet Protocol) στο επίπεδο δικτύου, το TCP (Transmission Control Protocol) στο επίπεδο μεταφοράς το HTTP (HyperText Transfer Protocol) στο επίπεδο εφαρμογής. Επειδή το διαδίκτυο, ως το κατεξοχήν δίκτυο ευρείας ζώνης, ουσιαστικά αποτελεί τη συνένωση πολλών διαφορετικών τοπικών δικτύων, δεν προτείνει κάποιο συγκεκριμένο πρωτόκολλο για το επίπεδο ζεύξης. Ως εκ τούτου, όλα τα δημοφιλή πρωτόκολλα αυτού του επιπέδου (π.χ. για πρόσβαση μέσω Ethernet, WLAN, ADSL) μπορούν να χρησιμοποιηθούν χωρίς εξαίρεση. Νικόλαος Παπαδάκης
Λειτουργία Διαδικτύου το Διαδίκτυο αποτελεί ένα δίκτυο ευρείας ζώνης με παγκόσμια κάλυψη που χρησιμοποιείται για τη διασύνδεση τοπικών δικτύων ή μεμονωμένων χρηστών μεταξύ τους. Το Διαδίκτυο στηρίζεται στη μεταγωγή πακέτων και η λειτουργία του προδιαγράφεται από τη στοίβα πρωτοκόλλων που είναι ευρέως γνωστή ως TCP/IP. Αν και στις μέρες μας το Internet έχει ταυτιστεί με τις υπηρεσίες που έχουν χτιστεί και τρέχουν πάνω από αυτό π.χ. WWW, e-mail, ftp, δίκτυα peer-to-peer, social networks, chat Εν τούτοις το όνομά του το οφείλει στο πρωτόκολλο επιπέδου δικτύου που χρησιμοποιείται για τη δρομολόγηση των πακέτων μεταξύ αποστολέα και παραλήπτη, το οποίο ονομάζεται Internet Protocol ή εν συντομία IP. Νικόλαος Παπαδάκης
Διασύνδεση μέσω διαδικτύου Νικόλαος Παπαδάκης
Λειτουργία Διαδικτύου Πρόγονος του Internet θεωρείται το ARPANET το οποίο ήταν το πρώτο στον κόσμο δίκτυο μεταγωγής πακέτων και λειτούργησε το διάστημα 1969-1990. Το ARPANET χρηματοδοτήθηκε από το Γραφείο Ερευνών Αμύνης των Ηνωμένων Πολιτειών και δόθηκε για χρήση στα πανεπιστήμια κι εργαστήρια ερευνών στις Η.Π.Α. Σήμερα το διαδίκτυο δεν ανήκει ουσιαστικά σε κανέναν, καθώς δεν υπάρχει κάποιο άτομο ή οργανισμός που να έχει στην κατοχή του η έστω υπό τον έλεγχο του ολόκληρο το διαδίκτυο. Σαν δίκτυο ευρείας ζώνης, το διαδίκτυο αποτελείται από πολλά μικρότερα δίκτυα που ανήκουν σε άτομα και οργανισμούς. Το διαδίκτυο δημιουργείται μέσω των διασυνδέσεων μεταξύ αυτών των δικτύων. Νικόλαος Παπαδάκης
Λειτουργία Διαδικτύου Το δίκτυο κορμού του διαδικτύου αποτελείται από ένα σύνολο δικτύων υψηλής ταχύτητας και χωρητικότητας, που συνήθως ανήκουν στις μεγάλες εταιρίες τηλεπικοινωνιών, μέσω των οποίων μπορεί να διακινείται μεγάλος όγκος δεδομένων. Για την πρόσβαση στο διαδίκτυο απαιτείται η συνδρομή με κάποιον Πάροχο Υπηρεσιών διαδικτύου (Internet service provider - ΙSP), ο οποίος διαθέτει την κατάλληλη υποδομή και διασυνδέσεις με το δίκτυο κορμού ώστε να εξασφαλίζει την πρόσβαση των συνδρομητών του σε αυτό. Συνδρομητές σε έναν ISP μπορούν να είναι τόσο εταιρείες, όσο μεμονωμένα άτομα. Νικόλαος Παπαδάκης
Μοντέλο Client-Sever Τα δίκτυα έχουν σκοπό το διαμοιρασμό πληροφοριών και υπηρεσιών μεταξύ των υπολογιστών που συμμετέχουν σε αυτά. Το πιο διαδεδομένο μοντέλο αλληλεπίδρασης μεταξύ υπολογιστών για την ανταλλαγή δεδομένων και υπηρεσιών είναι το επονομαζόμενο ως μοντέλο Client-Server ή πελάτη-εξυπηρετητή (ή διακομιστή). Ο όρος αυτός σχετίζεται με τον τύπο του δικτύου όπου τα στοιχεία φυλάσσονται κεντρικά σε ένα κεντρικό υπολογιστή (server) και χρησιμοποιούνται τοπικά από τους χρήστες - τερματικά (clients). Ο κεντρικός υπολογιστής είναι συνήθως ένα πολύ ισχυρό PC (ή ομάδα από PCs). Συνήθως, το ρόλο του πελάτη τον αναλαμβάνει ένα πρόγραμμα εφαρμογής (software) που εκτελείται σε ένα τοπικό τερματικό μηχάνημα και το οποίο αιτείται μία υπηρεσία ή πληροφορία από τον εξυπηρετητή. Νικόλαος Παπαδάκης
Μοντέλο Client-Sever Ο εξυπηρετητής, με τη σειρά του, είναι ένα άλλο πρόγραμμα εφαρμογής σε ένα απομακρυσμένο σύστημα. Η επικοινωνία μεταξύ του προγράμματος πελάτη και του προγράμματος εξυπηρετητή υλοποιείται μέσω της ανταλλαγής κατάλληλων μηνυμάτων του επιπέδου εφαρμογής. Για το σκοπό αυτό χρησιμοποιούνται τα τυποποιημένα μηνύματα ενός πρωτοκόλλου του επιπέδου εφαρμογής, το οποίο είναι εκ των προτέρων γνωστό και στις δύο πλευρές. Η επικοινωνία αυτής της μορφής έχει συνήθως τη μορφή αίτησης-απόκρισης (request-response) με την αίτηση να περιγράφει το αίτημα του πελάτη προς τον εξυπηρετητή και την απόκριση την απάντηση του εξυπηρετητή προς τον πελάτη. Νικόλαος Παπαδάκης
Μοντέλο Client-Sever Ειδικά όσον αφορά το διαδίκτυο, το μοντέλο client-server είναι το πλέον διαδεδομένο μοντέλο υπηρεσιών στο οποίο υπακούν οι περισσότερες από τις δημοφιλείς υπηρεσίες του συμπεριλαμβανομένου του Παγκόσμιου Ιστού (World Wide Web - WWW). Το WWW υλοποιείται με την ανταλλαγή μηνυμάτων του πρωτοκόλλου εφαρμογής HTTP μεταξύ πελατών-εξυπηρετητών. Νικόλαος Παπαδάκης
Μοντέλο Client-Sever Το ρόλο του πελάτη στο WWW τον έχει το πρόγραμμα λογισμικού που είναι γνωστό ως browser ή φυλλομετρητής . Πρόκειται για τους γνωστούς σε όλους μας Internet Explorer, Firefox Mozilla, Google Chrome, Opera, κλπ. Ο browser ουσιαστικά αποτελεί την υλοποίηση του πρωτοκόλλου HTTP στην πλευρά του πελάτη και μπορεί να στέλνει μηνύματα του πρωτοκόλλου αυτού (ΗΤΤΡ requests όπως είναι γνωστά) στην πλευρά του εξυπηρετητή. Ο εξυπηρετητής, με τη σειρά του, στην περίπτωση του WWW ονομάζεται Web Server και είναι ικανός να δέχεται ΗΤΤΡ requests από τους πελάτες, να τα επεξεργάζεται και να αποκρίνεται στέλνοντας σε κάθε πελάτη το περιεχόμενο που ζήτησε (ΗΤΤΡ response) πολυμεσικό ή μη. Γνωστοί web servers σήμερα είναι αυτοί των Facebook, Google, YouTube, WindowsLive, Yahoo, και γενικά κάθε ιστοσελίδας που επισκεπτόμαστε μέσω του browser μας, Ελληνικής ή μη. Νικόλαος Παπαδάκης
Μοντέλο Client-Sever Κάθε Web Server δεν κάνει τίποτε περισσότερο από το να εκθέτει σε δημόσια θέα τα αρχεία και το υλικό που έχει στην κατοχή του και διατηρεί αποθηκευμένα στο σκληρό του δίσκο. Για να διευκολύνεται η επικοινωνία μεταξύ πελατών-εξυπηρετητών στο www, το υλικό που ανταλλάσσεται (οι ιστοσελίδες δηλαδή) κωδικοποιείται με βάση τους κανόνες της γλώσσας HTML (HyperText Markup Language), η οποία είναι γνωστή σε όλους τους browsers. Για παράδειγμα, ένα HTTP request προς έναν server, φυσιολογικά, έχει την ακόλουθη μορφή: /images/logo.html HTTP/1.1 Host: www.servername.gr Νικόλαος Παπαδάκης
Μοντέλο Client-Sever Με το μήνυμα αυτό του πρωτοκόλλου ΗΤΤΡ, ένας πελάτης ζητάει από τον server με όνομα www.servername.gr να δει το αρχείο με όνομα logo.html το οποίο ο server διατηρεί αποθηκευμένο μέσα στο φάκελο image (αρχείο με απόλυτη διαδρομή /image/logo.html). Το μονοπάτι www.servername.gr/image/logo.html, το οποίο προσδιορίζει μοναδικά το ζητούμενο αρχείο ονομάζεται, γενικά, URL (Uniform Resource Locator). GET είναι το όνομα του τυποποιημένου HTTP μηνύματος που χρησιμοποιείται σε τέτοιου είδους συναλλαγές. Στο πρότυπο IETF RFC 2616, που περιγράφει το πρωτόκολλο ΗΤΤΡ, ορίζεται πλήθος μηνυμάτων, καθένα με συγκεκριμένη χρήση, όμως το GET είναι το πιο συνηθισμένο. Ο web server, μόλις λάβει ένα τέτοιο μήνυμα, ανακτά από το σκληρό του δίσκο το περιεχόμενο που του έχει ζητηθεί και απαντά με το κατάλληλο ΗΤΤΡ μήνυμα στον πελάτη. Νικόλαος Παπαδάκης
Μοντέλο Client-Sever Αυτή ακριβώς είναι η διαδικασία που επαναλαμβάνεται κάθε φορά που γράφουμε μια διεύθυνση της μορφής http://www... στη γραμμή διευθύνσεων του browser μας και πατάμε enter ή απλώς κάνουμε αριστερό click πάνω σε μια υπερσύνδεση (hyperlink ή απλά link) σε μια ιστοσελίδα που μας έχει ήδη εμφανιστεί. Νικόλαος Παπαδάκης
Δρομολόγηση στο Διαδίκτυο – ο ρόλος των πρωτοκόλλων ΙΡ και TCP Τα μηνύματα που ανταλλάσσονται μεταξύ client και server, οι οποίοι ενδέχεται να βρίσκονται σε διαφορετικές ηπείρους, πρέπει να διασχίσουν ολόκληρο το δίκτυο που μεσολαβεί προκειμένου να παραδοθούν στον προορισμό τους. Απαραίτητη προϋπόθεση για την επικοινωνία υπολογιστών μέσω οποιουδήποτε δικτύου είναι η απόδοση σε κάθε μέλος του δικτύου ενός αναγνωριστικού που θα το ταυτοποιεί μοναδικά. Στο διαδίκτυο υπεύθυνο για την απόδοση ταυτοτήτων στους υπολογιστές είναι το επίπεδο δικτύου. Οι διαδικτυακές διευθύνσεις ονομάζονται διευθύνσεις ΙΡ και χρησιμοποιούνται απαραιτήτως κατά τη δρομολόγηση που λαμβάνει χώρα μέσω του πρωτοκόλλου IP. Νικόλαος Παπαδάκης
Δρομολόγηση στο Διαδίκτυο – ο ρόλος των πρωτοκόλλων ΙΡ και TCP Κάθε υπολογιστής, με την είσοδό του στο διαδίκτυο, αποκτάει δυναμικά από τον ISP με τον οποίο έχει συνδρομή μια μοναδική ΙΡ διεύθυνση που του επιτρέπει να επικοινωνεί με άλλους. Οι ΙΡ διευθύνσεις είναι αριθμοί των 32 bits χωρισμένοι σε 4 bytes και παραμένουν αμετάβλητες για όση ώρα ένας χρήστης παραμένει συνδεδεμένος στο διαδίκτυο. Με την έξοδο και επανασύνδεσή του στο διαδίκτυο κάθε υπολογιστής λαμβάνει νέα ΙΡ διεύθυνση, η οποία ενδέχεται να διαφέρει από την προηγούμενη. Όμοια με το σταθερό τηλεφωνικό δίκτυο, όπου οι αριθμοί τηλέφωνων στην ίδια γεωγραφική περιοχή έχουν κοινά ψηφία, και οι ΙΡ διευθύνσεις περιέχουν «γεωγραφικό» προσδιορισμό στην απόδοσή τους. Έτσι, κάποια από τα bits σε μια ΙΡ διεύθυνση εκφράζουν την ήπειρο, τη χώρα, τον οργανισμό ή τον πάροχο στον οποίο ανήκει η διεύθυνση, το υποδίκτυο στο οποίο έχει συνδεθεί ένας υπολογιστής και μόνο τα τελευταία τον ίδιο τον υπολογιστή. Νικόλαος Παπαδάκης
Δρομολόγηση στο Διαδίκτυο – ο ρόλος των πρωτοκόλλων ΙΡ και TCP Η δρομολόγηση στο διαδίκτυο λαμβάνει χώρα μέσω των ΙΡ διευθύνσεων. Υποχρεωτικά κάθε πακέτο του επιπέδου δικτύου που οδηγείται για μετάδοση στο φυσικό μέσο περιέχει την ΙΡ διεύθυνση του αποστολέα και του παραλήπτη στην επικεφαλίδα που προσθέτει το πρωτόκολλο ΙΡ. Τα πακέτα αυτά ονομάζονται ΙΡ πακέτα. Νικόλαος Παπαδάκης
Δρομολόγηση στο Διαδίκτυο – ο ρόλος των πρωτοκόλλων ΙΡ και TCP Κάθε δρομολογητής (router) που λαμβάνει ένα τέτοιο πακέτο διαβάζει την ΙΡ διεύθυνση προορισμού του πακέτου και προωθεί το πακέτο στην έξοδο που θα το φέρει πιο κοντά στον προορισμό του. Η διαδικασία αυτή επαναλαμβάνεται σε κάθε δρομολογητή που συναντάει το πακέτο στο δρόμο του, έως ότου, βήμα-βήμα, περνώντας διαδοχικά από όσους δρομολογητές χρειαστεί, φτάσει εν τέλει στον υπολογιστή προορισμού. Ο υπολογιστής αυτός, και συγκεκριμένα το επίπεδο δικτύου του, διαβάζοντας την ΙΡ διεύθυνση προορισμού του πακέτου αντιλαμβάνεται ότι το πακέτο αναφέρεται σε αυτόν, οπότε το προωθεί στο επίπεδο μεταφοράς για περεταίρω επεξεργασία. Νικόλαος Παπαδάκης
Δρομολόγηση στο Διαδίκτυο – ο ρόλος των πρωτοκόλλων ΙΡ και TCP Η ΙΡ διεύθυνση αποστολέα στο ΙΡ πακέτο χρησιμεύει στον παραλήπτη προκειμένου να προσδιορίσει τον αποστολέα του πακέτου και να μπορέσει να του απαντήσει κατάλληλα. Δηλαδή το ΙΡ πακέτο που ο παραλήπτης θα στείλει στον αποστολέα ως απάντηση το οποίο, για παράδειγμα, μπορεί να περιέχει την ιστοσελίδα που ζήτησε να δει ένας πελάτης, Θα περιέχει τις ίδιες ακριβώς ΙΡ διευθύνσεις με πριν αλλά αντιμετατιθέμενες. Νικόλαος Παπαδάκης
Δρομολόγηση στο Διαδίκτυο – ο ρόλος των πρωτοκόλλων ΙΡ και TCP Νικόλαος Παπαδάκης
Δρομολόγηση στο Διαδίκτυο – ο ρόλος των πρωτοκόλλων ΙΡ και TCP Καθένα από τα διαφορετικά προγράμματα που χρειάζεται να τρέξουν παράλληλα στον ίδιο υπολογιστή μέσω της ίδιας διαδικτυακής σύνδεσης έχουν την ίδια ΙΡ διεύθυνση αφού τρέχουν στον ίδιο υπολογιστή. Όταν μια απάντηση από έναν server καταφθάνει σε έναν υπολογιστή, σε ποιον από τους παραπάνω πελάτες θα πρέπει να προωθηθεί; Πώς μπορεί, για παράδειγμα, να ξέρει το λειτουργικό μας σύστημα σε ποια καρτέλα ενός browser απευθύνεται μια απάντηση που μόλις έλαβε ώστε να μη γίνει λάθος κατά την εμφάνισή της στον χρήστη; Νικόλαος Παπαδάκης
Δρομολόγηση στο Διαδίκτυο – ο ρόλος των πρωτοκόλλων ΙΡ και TCP Πέρα από την ΙΡ διεύθυνση χρειαζόμαστε και ένα δεύτερο αναγνωριστικό το οποίο θα μας προσδιορίζει μοναδικά τον πελάτη από τον οποίο ξεκινά ένα διαδικτυακό αίτημα. Το αναγνωριστικό αυτό στην περίπτωση του διαδικτύου είναι ένας αριθμός των 16 bits που ονομάζεται θύρα TCP και υπεύθυνο για την απόδοση και διαχείρισή τους είναι το αντίστοιχο πρωτόκολλο του επιπέδου μεταφοράς. Κάθε μήνυμα που αποστέλλει ένα πελάτης, καθώς περνάει μέσα από το επίπεδο μεταφοράς, του αναρτώνται δύο αριθμοί οι οποίοι προσδιορίζουν τον πελάτη εκκίνησης και τον πελάτη προορισμού. Ο πρώτος είναι η θύρα TCP αποστολής και ο δεύτερος η θύρα TCP προορισμού και αποτελούν τα βασικά πεδία της επικεφαλίδας TCP που τοποθετεί το επίπεδο μεταφοράς στα μηνύματα από το επίπεδο εφαρμογής. Νικόλαος Παπαδάκης
Δρομολόγηση στο Διαδίκτυο – ο ρόλος των πρωτοκόλλων ΙΡ και TCP Για το WWW και το ΗΤΤΡ η θύρα TCP προορισμού έχει συνήθως την τιμή 80. Αυτό γίνεται για λόγους συμβατότητας, ώστε κάθε πελάτης να γνωρίζει εκ των προτέρων τη θύρα TCP του server που θα τον εξυπηρετήσει και να μη χρειάζεται να ψάχνει να τη βρει καθυστερώντας την επικοινωνία. Η θύρα TCP αποστολής είναι σταθερή για όση ώρα εκκρεμεί η απάντηση σε κάποιο δικτυακό αίτημα και καταργείται μόλις ληφθεί η απάντηση του server. Δηλαδή αιτήματα που εκκινούν από τον ίδιο πελάτη συνήθως έχουν διαφορετικές θύρες TCP αποστολής. Νικόλαος Παπαδάκης
Δρομολόγηση στο Διαδίκτυο – ο ρόλος των πρωτοκόλλων ΙΡ και TCP Οι ΙΡ διευθύνσεις χρησιμοποιούνται για το μοναδικό προσδιορισμό των υπολογιστών που συμμετέχουν στο διαδίκτυο Και οι θύρες TCP για το μοναδικό προσδιορισμό των αιτημάτων που εκκινούν οι διάφοροι διαδικτυακοί πελάτες που τρέχουν εντός τους. Νικόλαος Παπαδάκης
Ο ρόλος του DNS Όταν πληκτρολογούμε τη διεύθυνση κάποιου server στον browser μας ποτέ δε γράφουμε κάποιον αριθμό αλλά, απλώς, το URL που αντιστοιχεί στον server (π.χ. http://www.google.gr). Μεταξύ των διευθύνσεων τύπου URL που πληκτρολογεί ο χρήστης και των ΙΡ διευθύνσεων που χρησιμοποιεί το πρωτόκολλο ΙΡ, μεσολαβεί ένα ακόμη βήμα. Το βήμα αυτό περιλαμβάνει τη μετατροπή των URL σε ΙΡ διευθύνσεις και λαμβάνει χώρα μέσω του επονομαζόμενου DNS (Domain Name System). Τα ο DNS αποτελεί μια διαδικτυακή κατανεμημένη βάση δεδομένων η οποία χρησιμοποιείται κυρίως στη μετάφραση των ονομάτων που προσδίδονται στους διάφορους web servers (γνωστά ως hostnames) σε IP διευθύνσεις. Νικόλαος Παπαδάκης
Ο ρόλος του DNS Ο λόγος που δε χρησιμοποιούμε απ’ ευθείας τις ΙΡ διευθύνσεις αλλά χρειάζεται να μεσολαβήσει αυτό το ενδιάμεσο είναι η φιλικότητα προς το χρήστη που προσφέρει η χρήση των hostnames. Προφανώς, δεν είναι το ίδιο εύκολο να απομνημονεύει κανείς αριθμούς των 32 bits, όσο ονόματα του στυλ facebook, google, κλπ. Χωρίς DNS δεν είναι δυνατή η επικοινωνία μας με τον έξω κόσμο. Αν ο DNS που μας εξυπηρετεί γνωρίζει να μεταφράσει το hostname που δώσαμε σε IP διεύθυνση το κάνει, διαφορετικά ζητά από κάποιον άλλον DNS να κάνει τη μετάφραση. Υπάρχουν πολλοί DNS, με διαφορετική πληροφορία μεταξύ τους, που συνεργάζονται για την αντιμετώπιση ενός ερωτήματος. Νικόλαος Παπαδάκης
Ο ρόλος του DNS Όταν πλέον επιστραφεί στον υπολογιστή μας η απάντηση του DNS με την ΙΡ διεύθυνση που χρειαζόμαστε για τη δρομολόγηση του αιτήματός μας στο διαδίκτυο, ξεκινάει η διαδικασία για το σχηματισμό των ΙΡ πακέτων. Οι απαντήσεις που λαμβάνονται από τον DNS αποθηκεύονται τοπικά στον υπολογιστή μας για μελλοντική χρήση, ώστε την επόμενη φορά που θα χρειαστεί να επισκεφθούμε έναν συγκεκριμένο ιστότοπο να μη χρειαστεί αλληλεπίδραση με τον DNS και η διαδικασία να ολοκληρωθεί γρηγορότερα. Σ τους διαδικτυακούς χώρους τύπου Google ή Facebook, που φιλοξενούν πολλές επισκέψεις ημερησίως, συνήθως αντιστοιχούν περισσότερες ΙΡ διευθύνσεις στο ίδιο hostname. Αυτό συμβαίνει επειδή το συγκεκριμένο δικτυακό τόπο, για λόγους σταθερότητας κι αποδοτικής εξυπηρέτησης των επισκεπτών, τον εξυπηρετούν ταυτόχρονα πολλοί διαφορετικοί υπολογιστές. Νικόλαος Παπαδάκης
Ο ρόλος του DNS Νικόλαος Παπαδάκης
Ο ρόλος του DNS Όσον αφορά τα διαδικτυακά ονόματα των διαφόρων web servers, συνήθως αποτελούνται από το «προσωπικό» όνομα του υπολογιστή (το hostname που λέγαμε πιο πριν) ακολουθούμενο από το όνομα του τομέα (Domain Name) στον οποίο ανήκει. Για παράδειγμα ο υπολογιστής: venus.cs.teicrete.gr Έχει το hostname “venus” και υπάγεται στον τομέα “cs.teicrete.gr”. Η ονομασία του τομέα, με τη σειρά της, χωρίζεται σε δύο η περισσότερα μέρη που αντιπροσωπεύουν έναν οργανισμό και πολλές φορές το συγκεκριμένο τμήμα του οργανισμού στο οποίο ανήκει ένας κόμβος. Ο παραπάνω υπολογιστής για παράδειγμα βρίσκεται τοποθετημένος κάπου στην Ελλάδα (gr), Μέσα στον Οργανισμό με όνομα ΤΕΙ ΚΡΗΤΗΣ (teicrete) και πιο συγκεκριμένα στις εγκαταστάσεις του τομέα Επιστήμης Υπολογιστών (cs). Έτσι, δύο οργανισμοί μπορούν να έχουν κοινά hostnames στους υπολογιστές τους καθώς το διαφορετικό όνομα του τομέα καθορίζει τον σωστό υπολογιστή στον οποίο γίνεται αναφορά. Νικόλαος Παπαδάκης
Ερμηνεία των κυριοτέρων Top-Level Domains Το τελευταίο σκέλος ενός ονόματος κόμβου ονομάζεται Top-Level Domain (TLD) Νικόλαος Παπαδάκης
Top-Level Domains για web servers εκτός των ΗΠΑ Επειδή τα TLD χρησιμοποιούνται σχεδόν αποκλειστικά από web servers που είναι εγκατεστημένοι στις ΗΠΑ, για τους web servers που βρίσκονται σε χώρες εκτός των ΗΠΑ χρησιμοποιούνται ως top-level domains κωδικοί δύο χαρακτήρων που αντιπροσωπεύουν τη χώρα εγκατάστασης του καθενός. Νικόλαος Παπαδάκης
Παραδείγματα χρήσης των δικτύων και του Διαδικτύου Εργασία σε ομάδες Η ιδέα της εργασίας σε ομάδες είναι ότι ομάδες χρηστών εργάζονται μαζί και μπορεί να κάνουν κοινή χρήση πραγμάτων. Οι χρήστες μιας ομάδας μπορεί να κάνουν κοινή χρήση πληροφοριών ενός σκληρού δίσκου ή εκτυπωτών, modems και σαρωτών. Η ομάδα αυτή των χρηστών είναι συνδεδεμένη μέσω ενός δικτύου Η/Υ. Αυτό το δίκτυο Η/Υ μπορεί να αποτελείται απλά από μερικούς Η/Υ σε κάποιο χώρο που είναι συνδεδεμένοι μεταξύ τους με καλώδια δικτύου, ή Η/Υ συνδεδεμένοι μέσω Διαδικτύου. Πολλά προγράμματα είναι σχεδιασμένα για να χρησιμοποιούνται σε δίκτυο Η/Υ. Για παράδειγμα, μια εταιρία μπορεί να χρησιμοποιεί ένα συγκεκριμένο επιστολόχαρτο για την αποστολή Fax. Αν υπάρχει το αρχείο αυτό σε κάποιο μεμονωμένο Η/Υ αλλά είναι δυνατόν να χρησιμοποιηθεί από όλους μέσω του δικτύου, τότε οποιαδήποτε αλλαγή κάνουμε στο αρχείο γίνεται μια φορά και όχι σε όλους τους υπολογιστές. Νικόλαος Παπαδάκης
Εργασία σε ομάδες Πλεονεκτήματα Μειονεκτήματα Καθώς δεν υπάρχει άμεση σχέση με τον κεντρικό Η/Υ, είναι μικρότερη η πιθανότητα για προβλήματα αν ένας Η/Υ σβήσει για λίγο. Με δεδομένο ότι τα μέλη μιας ομάδας έχουν δικαιώματα στη χρήση των δεδομένων, μπορούν να κάνουν κοινή χρήση περιστασιακά με άλλους χρήστες, όπως απαιτείται, χωρίς να χρειάζεται η εμπλοκή του Διαχειριστή του Δικτύου. Σε μικρά γραφεία δεν απαιτείται η ύπαρξη του Διαχειριστή Δικτύου και αυτό οδηγεί σε μείωση κόστους. Μειονεκτήματα Η κοινή χρήση αρχείων με άλλους σε έναν υπολογιστή καθυστερεί αρκετά τη λειτουργία του κοινόχρηστου υπολογιστή. Η ασφάλεια του κοινόχρηστου υπολογιστή δεν είναι τόσο καλή. Μπορεί να δώσεις πλήρη έλεγχο των αρχείων του υπολογιστή σου σε άλλους χρήστες, οι οποίοι μπορεί να τα χαλάσουν ή να τα σβήσουν. Νικόλαος Παπαδάκης
Παραδείγματα χρήσης των δικτύων και του Διαδικτύου Intranet Το Intranet είναι μια μικρότερη σε μέγεθος έκδοση του Internet, η οποία μπορεί να χρησιμοποιηθεί μόνο από εξουσιοδοτημένους χρήστες ενός οργανισμού. Τα Intranets γίνονται αρκετά δημοφιλή λόγω του τρόπου που μοιράζεται η πληροφορία μέσα σε μια εταιρία ή ένα οργανισμό. Το Intranet χρησιμοποιεί τεχνολογία Internet για να επιτρέψει πρόσβαση στα δεδομένα της εταιρίας, να ψάξεις για βάσεις δεδομένων, να οργανώσεις συναντήσεις και φυσικά να στείλεις ηλεκτρονικό ταχυδρομείο. Από τη στιγμή που μια εταιρία έχει εγκαταστήσει ένα μικρό Intranet, οι χρήστες μπορούν να το χρησιμοποιούν μέσω ενός web browser. Νικόλαος Παπαδάκης
Παραδείγματα χρήσης των δικτύων και του Διαδικτύου Extranet Ένα Extranet είναι ένα Intranet στο οποίο μπορούν να έχουν μερική μόνο πρόσβαση κάποιοι εξουσιοδοτημένοι εξωτερικοί χρήστες. Ενώ το Intranet συνήθως είναι προσβάσιμο μόνο από άτομα της ίδιας εταιρίας ή οργανισμού, το extranet επίσης επιτρέπει προσβασιμότητα και σε εξωτερικούς χρήστες οι οποίοι έχουν κωδικό πρόσβασης για περιορισμένη χρήση πληροφοριών του δικτύου της εταιρίας. Τα Extranets χρησιμοποιούνται μεταξύ συνεταίρων (business partners) για να μοιράζονται πληροφορίες. Νικόλαος Παπαδάκης
Παραδείγματα χρήσης των δικτύων και του Διαδικτύου Μεγάλες εφαρμογές στις επιχειρήσεις Συστήματα διοίκησης επιχειρήσεων: Όλα τα στοιχεία της διοίκησης επιχειρήσεων, έχουν μπει σε υπολογιστικά συστήματα. Επεξεργασία πληρωμών ασφαλίστρων: Όλες οι ασφαλιστικές εταιρίες χρησιμοποιούν μεγάλα υπολογιστικά συστήματα, που συνδυάζονται με ειδικό λογισμικό για την διαχείριση των εργασιών τους. Το λογισμικό αυτό μπορεί να διαχειρισθεί όλες τις μορφές πληρωμών. Σχετικά με πολύ μεγάλα υπολογιστικά συστήματα, πολλές ασφαλιστικές εταιρίες έχουν επενδύσει πολλά χρήματα για τη μηχανογράφησή τους, υπάρχουν όμως πολλά παραδείγματα για επενδύσεις που χάθηκαν χωρίς αποτέλεσμα. Νικόλαος Παπαδάκης
Παραδείγματα χρήσης των δικτύων και του Διαδικτύου Εφαρμογές του Διαδικτύου Η ιδιαιτερότητα του Internet είναι πως ότι ενδιαφέροντα και αν έχει κανείς μπορεί να ψάξεις και να βρει πληροφορίες για τα πιο εξειδικευμένα θέματα. Όταν κάποιος εκδίδει υλικό στο Internet θα πρέπει να γνωρίζει ότι αυτό μπορεί να χρησιμοποιηθεί από όλους στο δίκτυο. Σαν εργαλείο προώθησης (marketing) πάλι, έχει πολλές και ενδιαφέρουσες δυνατότητες. Είναι δυνατόν για μια εταιρία να πουλάει προϊόντα και υπηρεσίες σε παγκόσμια κλίμακα, χωρίς την απασχόληση πωλητή. Νικόλαος Παπαδάκης
Εφαρμογές του Διαδικτύου Χρήση από επιχειρήσεις Συστήματα κράτησης αεροπορικών θέσεων Τραπεζικές συναλλαγές Οι περισσότερες Τράπεζες προσφέρουν κάποιας μορφής online συναλλαγών. Ηλεκτρονική διακυβέρνηση Εγγραφές αυτοκινήτων Πληρωμή εισφορών Ηλεκτρονική ψήφος Σε μερικές χώρες, οι κυβερνήσεις, πειραματίζονται με συστήματα αυτόματης ψήφου, σε πολλές περιπτώσεις λόγω του μειωμένου ποσοστού ψηφοφόρων. Νικόλαος Παπαδάκης
Εφαρμογές του Διαδικτύου Χρήση σε νοσοκομεία και το σύστημα υγείας Ηλεκτρονική καρτέλα ασθενούς Τα συστήματα ραντεβού και καρτέλας είναι πλήρως μηχανογραφημένα και on line στα περισσότερα νοσοκομεία στον κόσμο. Σύστημα ελέγχου ασθενοφόρων Τα ασθενοφόρα ελέγχονται κεντρικά και τα υπολογιστικά συστήματα, έχουν τη δυνατότητα εντοπισμού τους μέσω δορυφόρου. Διαγνωστικά εργαλεία και ειδικό χειρουργικό υλικό Στα χειρουργεία κάποιες εργασίες γίνονται από υπολογιστές, όπως η μέτρηση της αρτηριακής πίεσης, οι κτύποι της καρδιάς κ.λ.π., ενώ επεμβάσεις έχουν διεξαχθεί από απόσταση με χρήση συστημάτων τηλεματικής. Νικόλαος Παπαδάκης
Εφαρμογές του Διαδικτύου Χρήση στην εκπαίδευση Εγγραφές σπουδαστών και γραμματειακή υποστήριξη Εκπαίδευση με χρήση Η/Υ (CBT) Εύρεση στοιχείων σχολικών εργασιών Εξ αποστάσεως εκπαίδευση Τηλεργασία Αναφέρεται σε ανθρώπους που εργάζονται από το σπίτι συνδεδεμένοι με την υπόλοιπη εταιρία ή οργανισμό μέσω ενός δικτύου υπολογιστών. πλεονεκτήματα Μεγαλύτερη δυνατότητα συγκέντρωσης Ευέλικτος προγραμματισμός Μικρότερος εταιρικός χώρος Μειονεκτήματα Έλλειψη ανθρώπινης επαφής Αρνητική επιρροή σε ομαδική εργασία Αποδυνάμωση του συνδικαλισμού Νικόλαος Παπαδάκης
Εφαρμογές του Διαδικτύου Ηλεκτρονικό ταχυδρομείο (e-mail) Ηλεκτρονικό Εμπόριο (e-commerce και e-shopping) Ο όρος Ηλεκτρονικό Εμπόριο είναι συνδεδεμένος με αγορές ή πωλήσεις μέσω Internet. Πλεονεκτήματα Υπηρεσίες διαθέσιμες 24 x 7 Μεγάλος αριθμός αποθεμάτων Αναλυτικές πληροφορίες για το προϊόν Δυνατότητα σύγκρισης τιμών Ισότιμη διανομή σε μεγάλες πόλεις και επαρχία Δυνατότητα επιστροφής ελαττωματικού εμπορεύματος Μειονεκτήματα Πιθανότητα υποκλοπής των στοιχείων πιστωτικών καρτών Πόσο ασφαλείς είναι οι αγορές μέσω διαδικτύου Επιστροφή ελαττωματικών αγαθών Αγορές από άλλη χώρα Δυνατότητα επικοινωνίας με υπαλλήλους της εταιρίας Νικόλαος Παπαδάκης
Εφαρμογές του Διαδικτύου Ηλεκτρονικές τραπεζικές συναλλαγές (e-banking) Ο όρος e-banking σχετίζεται με την αυτόματη (online) διαχείριση των τραπεζικών καταθέσεων. Αντί για συναλλαγές μέσω τραπεζικών καταστημάτων, οι ίδιες συναλλαγές μπορούν να γίνουν αυτόματα μέσω διαδικτύου. Έτσι, μπορεί κανείς αυτόματα να πληρώσει λογαριασμούς ή να μεταφέρει χρήματα από λογαριασμό σε λογαριασμό. Μερικές τράπεζες που χρησιμοποιούν αυτόματο σύστημα συναλλαγών δεν έχουν καν καταστήματα, αλλά έχουν μεγάλα κέρδη. Νικόλαος Παπαδάκης
Αλγόριθμος Αλγόριθμος είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος πρέπει να ικανοποιεί 5 κριτήρια [Stanat77]: Είσοδος: Πρέπει να υπάρχουν μηδέν ή περισσότερα δεδομένα/στοιχεία τα οποία να δίνονται στον αλγόριθμο από το εξωτερικό περιβάλλον (δεδομένα εισόδου). Έξοδος: Θα πρέπει ο αλγόριθμος να παράγει δεδομένα (αποτελέσματα). Σαφήνεια: Κάθε εντολή του αλγορίθμου θα πρέπει να είναι σαφής. Πεπεραστηκότης: Εάν ανιχνεύσουμε τις εντολές ενός αλγορίθμου, σ' όλες τις περιπτώσεις ο αλγόριθμος θα πρέπει να τελειώνει μετά από ένα πεπερασμένο αριθμό βημάτων. Αποτελεσματικότης: Όλες οι εντολές του αλγορίθμου θα πρέπει να είναι αρκετά βασικές και να εκτελούνται σε πεπερασμένο χρόνο από άνθρωπο με χρήση μολυβιού και χαρτιού.
Αλγόριθμος Ένας αλγόριθμος μπορεί να περιγραφεί με πολλούς τρόπους. Στην γλώσσα την οποία ομιλούμε (όπως η Ελληνική). Σ' αυτή την περίπτωση θα υπάρχουν ασάφειες επειδή οι ομιλούμενες γλώσσες από την φύση τους είναι ασαφείς. Ένας πιο βελτιωμένος τρόπος είναι το διάγραμμα ροής (flowchart) στο οποίο διαφορετικά σχήματα παριστούν διάφορα είδη πράξεων. Βέλη δείχνουν την ακολουθία εκτέλεσης των πράξεων. Το διάγραμμα ροής έχει το μειονέκτημα ότι όσο μεγαλώνει γίνεται πιο δυσνόητο λόγω των πολλών σχημάτων και βελών. Ένας πιο βελτιωμένος τρόπος περιγραφής των αλγορίθμων είναι ο ψευδοκώδικας. Οι εντολές του ψευδοκώδικα είναι παρόμοιες μ' αυτές των γλωσσών προγραμματισμού, βέβαια το ερώτημα που τίθεται είναι γιατί ένας αλγόριθμος να μην γραφτεί κατευθείαν σε κάποια γλώσσα προγραμματισμού αλλά σε ψευδοκώδικα
Γλώσσες προγραμματισμού Οι αλγόριθμοι περιγράφουν την λύση των προβλημάτων. Όμως οι Η/Υ δεν καταλαβαίνουν την φυσική γλώσσα την οποία χρησιμοποιήσαμε για την περιγραφή των αλγορίθμων Πρέπει να γράψουμε τους αλγορίθμους σε γλώσσα η οποία είναι κατανοητή από των υπολογιστή. Για τον σκοπό αυτό έχουν κατασκευαστεί πολλές γλώσσες προγραμματισμού.
Γλώσσες προγραμματισμού Οι γλώσσες προγραμματισμού σε αντίθεση με την φυσική γλώσσα έχουν αυστηρό συντακτικό. Πχ. στην φυσική γλώσσα τα παρακάτω έχουν την ίδια σημασία τέλος_για, τέλοςγια, τέλος για. Σε μια γλώσσα προγραμματισμού αυτό δεν ισχύει. Υπάρχει αυστηρό καθορισμός του συντακτικού. Επίσης στους αλγορίθμους χρησιμοποιούμε τις μεταβλητές χωρίς να τις έχουμε ορίσει. Δηλαδή να καθορίσουμε αν είναι ακέραιες, πραγματικές, πίνακες ακεραίων κτλ. Σε μια γλώσσα προγραμματισμού πριν χρησιμοποιήσουμε μια μεταβλητή πρέπει να έχει οριστεί ο τύπος της μεταβλητής.
Γλώσσες προγραμματισμού Οι γλώσσες προγραμματισμού έχουν ένα μεταγλωττιστή ή ένα μεταφραστή. Αυτός μετατρέπει το πρόγραμμα το οποίο γράφουμε σύμφωνα με το συντακτικό της γλώσσα σε ακολουθία από 0 και 1 την οποία μπορεί να εκτελέσει ο υπολογιστής. Η διαδικασία για να γίνει αυτό είναι Έλεγχος για συντακτικά και σημασιολογικά λάθη. Αν υπάρχουν τέτοια λάθη εμφανίζονται τα κατάλληλα μηνύματα και δεν προχωράει η διαδικασία Αλλιώς το πρόγραμμα μετατρέπεται σε ακολουθία από 0 και 1. Αυτή η ακολουθία είναι η γλώσσα μηχανής την οποία καταλαβαίνει ο υπολογιστής.
Επίλυση προβλημάτων με υπολογιστή Οι υπολογιστές μπορούν να επιλύσουν μόνο τα προβλήματα τα οποία μπορεί να επιλύσει και ο άνθρωπος. Ο υπολογιστής δεν μπορεί να έχει την κρίση που έχει ο άνθρωπος. Το μόνο που μπορεί να κάνει είναι να εκτελεί μια ακολουθία από εντολές. Ο υπολογιστής όμως μπορεί να κάνει πολλές πράξεις και να αποθηκεύει και να επεξεργάζεται τεράστιο όγκο δεδομένων.
Γιατί επιλέγουμε τον υπολογιστή για την επίλυση προβλήματος Την πολυπλοκότητα των υπολογισμών Την επαναληπτικότητα των διαδικασιών Την ταχύτητα εκτέλεσης Το μεγάλο πλήθος των δεδομένων
Παράδειγμα Αλγορίθμου Θέλουμε να περιγράψομε ένα αλγόριθμο για το πρόβλημα της απόφασης αν ένας αριθμός είναι πρώτος ή όχι. Ξεκίνα από το 2 αν το 2 διαιρεί τον αριθμό τότε δεν είναι πρώτος. Κάνε το ίδιο για το 3 Επανέλαβε το βήμα 2 για όλους τους αριθμούς μέχρι να φτάσεις στο ίδιο των αριθμό Αν κανείς αριθμός δεν διαιρεί τον αριθμό τότε είναι πρώτος
Περί αλγορίθμων Δίνουμε έναν πιο λεπτομερή ορισμό για το τι είναι αλγόριθμος: Ο αλγόριθμος είναι μία αλληλουχία από σαφείς και μη διφορούμενες εντολές που όλες δύναται να εκτελεστούν και να περατωθούν ο οποίος όταν εκτελείται παράγει το επιθυμητό αποτέλεσμα και οδηγεί σε τερματισμό της όλης διαδικασίας σε πεπερασμένο χρόνο.
Αλγόριθμοι Για να μπορεί το κάθε βήμα του αλγορίθμου να είναι σαφή και απλό θα πρέπει να καθορίσουμε ακριβώς τι μπορεί να είναι το κάθε βήμα Δηλαδή να καθορίσουμε με ακρίβεια ποίες εντολές μπορεί να περιέχει ένας αλγόριθμος. Επίσης ο αλγόριθμος εκτελεί εντολές Σειριακά Αν ισχύει κάποια συνθήκη Επαναληπτικά
Εντολές που χρειαζόμαστε για να περιγράψομε τον αλγόριθμο Εντολές ανάθεσης Αριθμητικές πράξεις Λογικές πράξεις Εντολές εισόδου εξόδου Εντολές αριθμητικών και λογικών πράξεων Σειριακή εκτέλεση εντολών Εντολές επιλογής Επαναληπτικές εντολές
Αλγόριθμος Αλγόριθμος είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος πρέπει να ικανοποιεί 5 κριτήρια [Stanat77]: Είσοδος: Πρέπει να υπάρχουν μηδέν ή περισσότερα δεδομένα/στοιχεία τα οποία να δίνονται στον αλγόριθμο από το εξωτερικό περιβάλλον (δεδομένα εισόδου). Έξοδος: Θα πρέπει ο αλγόριθμος να παράγει δεδομένα (αποτελέσματα). Σαφήνεια: Κάθε εντολή του αλγορίθμου θα πρέπει να είναι σαφής. Πεπεραστηκότης: Εάν ανιχνεύσουμε τις εντολές ενός αλγορίθμου, σ' όλες τις περιπτώσεις ο αλγόριθμος θα πρέπει να τελειώνει μετά από ένα πεπερασμένο αριθμό βημάτων. Αποτελεσματικότης: Όλες οι εντολές του αλγορίθμου θα πρέπει να είναι αρκετά βασικές και να εκτελούνται σε πεπερασμένο χρόνο από άνθρωπο με χρήση μολυβιού και χαρτιού.
Αλγόριθμος Ένας αλγόριθμος μπορεί να περιγραφεί με πολλούς τρόπους. Στην γλώσσα την οποία ομιλούμε (όπως η Ελληνική). Σ' αυτή την περίπτωση θα υπάρχουν ασάφειες επειδή οι ομιλούμενες γλώσσες από την φύση τους είναι ασαφείς. Ένας πιο βελτιωμένος τρόπος είναι το διάγραμμα ροής (flowchart) στο οποίο διαφορετικά σχήματα παριστούν διάφορα είδη πράξεων. Βέλη δείχνουν την ακολουθία εκτέλεσης των πράξεων. Το διάγραμμα ροής έχει το μειονέκτημα ότι όσο μεγαλώνει γίνεται πιο δυσνόητο λόγω των πολλών σχημάτων και βελών. Ένας πιο βελτιωμένος τρόπος περιγραφής των αλγορίθμων είναι ο ψευδοκώδικας. Οι εντολές του ψευδοκώδικα είναι παρόμοιες μ' αυτές των γλωσσών προγραμματισμού, βέβαια το ερώτημα που τίθεται είναι γιατί ένας αλγόριθμος να μην γραφτεί κατευθείαν σε κάποια γλώσσα προγραμματισμού αλλά σε ψευδοκώδικα
Γλώσσες προγραμματισμού Οι αλγόριθμοι περιγράφουν την λύση των προβλημάτων. Όμως οι Η/Υ δεν καταλαβαίνουν την φυσική γλώσσα την οποία χρησιμοποιήσαμε για την περιγραφή των αλγορίθμων Πρέπει να γράψουμε τους αλγορίθμους σε γλώσσα η οποία είναι κατανοητή από των υπολογιστή. Για τον σκοπό αυτό έχουν κατασκευαστεί πολλές γλώσσες προγραμματισμού.
Γλώσσες προγραμματισμού Οι γλώσσες προγραμματισμού σε αντίθεση με την φυσική γλώσσα έχουν αυστηρό συντακτικό. Πχ. στην φυσική γλώσσα τα παρακάτω έχουν την ίδια σημασία τέλος_για, τέλοςγια, τέλος για. Σε μια γλώσσα προγραμματισμού αυτό δεν ισχύει. Υπάρχει αυστηρό καθορισμός του συντακτικού. Επίσης στους αλγορίθμους χρησιμοποιούμε τις μεταβλητές χωρίς να τις έχουμε ορίσει. Δηλαδή να καθορίσουμε αν είναι ακέραιες, πραγματικές, πίνακες ακεραίων κτλ. Σε μια γλώσσα προγραμματισμού πριν χρησιμοποιήσουμε μια μεταβλητή πρέπει να έχει οριστεί ο τύπος της μεταβλητής.
Γλώσσες προγραμματισμού Οι γλώσσες προγραμματισμού έχουν ένα μεταγλωττιστή ή ένα μεταφραστή. Αυτός μετατρέπει το πρόγραμμα το οποίο γράφουμε σύμφωνα με το συντακτικό της γλώσσα σε ακολουθία από 0 και 1 την οποία μπορεί να εκτελέσει ο υπολογιστής. Η διαδικασία για να γίνει αυτό είναι Έλεγχος για συντακτικά και σημασιολογικά λάθη. Αν υπάρχουν τέτοια λάθη εμφανίζονται τα κατάλληλα μηνύματα και δεν προχωράει η διαδικασία Αλλιώς το πρόγραμμα μετατρέπεται σε ακολουθία από 0 και 1. Αυτή η ακολουθία είναι η γλώσσα μηχανής την οποία καταλαβαίνει ο υπολογιστής.
Επίλυση προβλημάτων με υπολογιστή Οι υπολογιστές μπορούν να επιλύσουν μόνο τα προβλήματα τα οποία μπορεί να επιλύσει και ο άνθρωπος. Ο υπολογιστής δεν μπορεί να έχει την κρίση που έχει ο άνθρωπος. Το μόνο που μπορεί να κάνει είναι να εκτελεί μια ακολουθία από εντολές. Ο υπολογιστής όμως μπορεί να κάνει πολλές πράξεις και να αποθηκεύει και να επεξεργάζεται τεράστιο όγκο δεδομένων.
Γιατί επιλέγουμε τον υπολογιστή για την επίλυση προβλήματος Την πολυπλοκότητα των υπολογισμών Την επαναληπτικότητα των διαδικασιών Την ταχύτητα εκτέλεσης Το μεγάλο πλήθος των δεδομένων
Παράδειγμα Αλγορίθμου Θέλουμε να περιγράψομε ένα αλγόριθμο για το πρόβλημα της απόφασης αν ένας αριθμός είναι πρώτος ή όχι. Ξεκίνα από το 2 αν το 2 διαιρεί τον αριθμό τότε δεν είναι πρώτος. Κάνε το ίδιο για το 3 Επανέλαβε το βήμα 2 για όλους τους αριθμούς μέχρι να φτάσεις στο ίδιο των αριθμό Αν κανείς αριθμός δεν διαιρεί τον αριθμό τότε είναι πρώτος
Περί αλγορίθμων Δίνουμε έναν πιο λεπτομερή ορισμό για το τι είναι αλγόριθμος: Ο αλγόριθμος είναι μία αλληλουχία από σαφείς και μη διφορούμενες εντολές που όλες δύναται να εκτελεστούν και να περατωθούν ο οποίος όταν εκτελείται παράγει το επιθυμητό αποτέλεσμα και οδηγεί σε τερματισμό της όλης διαδικασίας σε πεπερασμένο χρόνο.
Αλγόριθμοι Για να μπορεί το κάθε βήμα του αλγορίθμου να είναι σαφή και απλό θα πρέπει να καθορίσουμε ακριβώς τι μπορεί να είναι το κάθε βήμα Δηλαδή να καθορίσουμε με ακρίβεια ποίες εντολές μπορεί να περιέχει ένας αλγόριθμος. Επίσης ο αλγόριθμος εκτελεί εντολές Σειριακά Αν ισχύει κάποια συνθήκη Επαναληπτικά
Εντολές που χρειαζόμαστε για να περιγράψομε τον αλγόριθμο Εντολές ανάθεσης Αριθμητικές πράξεις Λογικές πράξεις Εντολές εισόδου εξόδου Εντολές αριθμητικών και λογικών πράξεων Σειριακή εκτέλεση εντολών Εντολές επιλογής Επαναληπτικές εντολές
Μεταβλητές - Σταθερές Μεταβλητές είναι αυτές που μπορούν αλλάξουν τιμή κατά την διάρκεια εκτέλεσης ενός προγράμματος. Π.χ α=4 α=8 το α αλλάζει τιμή Σταθερές – δεν μπορούν να αλλάξουν τιμή κατά την διάρκεια της εκτέλεσης ενός προγράμματος. τα 2 ‘α’ ‘β’ είναι σταθερές.
Μεταβλητές Οι μεταβλητές μπορούν να πάρουν οποιαδήποτε τιμή. Όχι η κάθε μεταβλητή έχει ένα τύπο. π.χ ακέραιο. Σημαίνει ότι μπορεί να πάρει μόνο ακέραιες τιμές. Π.χ. Α=4 Α=54 Α=‘η’ λάθος το ‘η’ είναι χαρακτήρας.
υπολογιστικό πρόβλημα Προγραμματισμός Προγραμματισμός: η διαδικασία του να επινοή-σουμε αλγόριθμο και να συντάξουμε πρόγραμμα. υπολογιστικό πρόβλημα Δίνεται ακέραιος x. Να υπολογιστεί το τετράγωνό του, x2. Αρχή. Διάβασε x. Τύπωσε x*x. Τέλος. αλγόριθμος Πρόγραμμα: αλγόριθμος σε τυπική μορφή (δηλ. μορφή έτοιμη να μετα- φραστεί σε μορφή κατά-νοητή από τον Η/Υ). #include <stdio.h> void main(void) { int x; scanf(“%d”, &x); printf(“%d”, x*x); } πρόγραμμα Μετάφραση (compilation) Εκτελέσιμο αρχείο: αλγόριθμος σε μορφή κατανοητή από τον Η/Υ. εκτελέσιμο αρχείο 001010100101011110111010101011010010010011010101010001010100 296
Προγραμματισμός Το σύνολο των γραμματικών και συντακτικών κανόνων που ακολουθούμε κατά την συγγραφή ενός προγράμμα-τος λέγεται γλώσσα προγραμματισμού (programming language). H μετατροπή του προγράμματος σε εκτελέσιμο αρχείο λέγεται μετάφραση (compilation). Το ειδικό λογισμικό που επιτελεί την μετάφραση λέγεται μεταφραστής (compiler). 297
Κύκλος ανάπτυξης προγράμματος Γενικά, η πορεία μέχρι το εκτελέσιμο αρχείο είναι πιο σύνθετη από την απλή ακολουθία «προγραμματισμός + μετάφραση». Είναι μια διαδικασία που αποτελείται από πολλά στάδια και ενδέχεται να μην τερματίσει ποτέ. Η διαδικασία αυτή ονομάζεται κύκλος ανάπτυξης προγράμματος (program development cycle). 298
Κύκλος ανάπτυξης προγράμματος Τον κύκλο ανάπτυξης προγράμματος συνιστούν 6 στάδια: Περιγραφή του προβλήματος και τυχόν περιορισμών. Ανάλυση του προβλήματος και επιλογή μιας λύσης. Σχεδίαση της επιλεγμένης λύσης. Κωδικοποίηση σε γλώσσα προγραμματισμού. Έλεγχος του προγράμματος και διόρθωση λαθών. Συντήρηση του προγράμματος. 299
Στάδιο 1: Περιγραφή Τις περισσότερες φορές, το υπολογιστικό πρόβλημα δεν μας δίνεται στην απλή μορφή «Δίνεται… . Να βρεθεί… .». Αντιθέτως, αυτό που έχουμε μπροστά μας είναι ένα πρόβλημα του πραγματικού κόσμου. Πρέπει οι ίδιοι να διακρίνουμε ποια συστατικά αυτού του προβλήματος είναι σημαντικά και να τα καταγράψουμε με σαφήνεια. Ποια είναι τα δεδομένα (είσοδος, input); Ποια αποτέλεσματα πρέπει να προκύψουν (έξοδος, output); Εκτός από τον προφανή περιορισμό (να προκύπτουν πάντα τα σωστά αποτελέσματα που αντιστοιχούν στα δεδομένα), μήπως πρέπει να ικανοποιούνται και άλλοι, πρόσθετοι περιορισμοί; 300
Στάδιο 1: Περιγραφή (Παράδειγμα) Παράδειγμα: Μόλις τελείωσε το εξάμηνο, και θέλουμε να μάθουμε ποιος ήταν ο μέγιστος βαθμός στο ΕΠΛ001. Ποιο ακριβώς είναι το υπολογιστικό πρόβλημα; Είσοδος: Ο κατάλογος όλων των φοιτητών & των βαθμών τους. Ο κατάλογος όλων των βαθμών. Έξοδος: Το όνομα του φοιτητή με τον μεγαλύτερο βαθμό. Ο μεγαλύτερος από όλους τους βαθμούς. Περιορισμοί: Το πρόγραμμα θα πρέπει να λειτουργεί γρήγορα. 301
Στάδιο 1: Περιγραφή (Παράδειγμα) Παράδειγμα: Μόλις τελείωσε το εξάμηνο, και θέλουμε να μάθουμε ποιος ήταν ο μέγιστος βαθμός στο ΕΠΛ002. Ποιο ακριβώς είναι το υπολογιστικό πρόβλημα; Είσοδος: Μια ακολουθία μη αρνητικών αριθμών x1, x2, …, xN από το πληκτρολόγιο (σήμα τέλους: αριθμός < 0). Έξοδος: Ο μεγαλύτερος από τους δεδομένους αριθμούς, δηλ. ο max(x1, x2, …, xN), τυπωμένος στην οθόνη. Περιορισμοί: Το πρόγραμμα θα πρέπει να λειτουργεί γρήγορα. 302
Στάδιο 2: Ανάλυση Τώρα που το υπολογιστικό πρόβλημα είναι απολύτως σαφές, προσπαθούμε να επινοήσουμε κάποια λύση. Θυμηθείτε: λύση υπολογιστικού προβλήματος = αλγόριθμος που λύνει το υπολογιστικό πρόβλημα. Προσέξτε: Ίσως υπάρχουν πολλές λύσεις, δηλαδή πολλοί αλγόριθμοι που λύνουν το ίδιο πρόβλημα! Για κάθε λύση που σκεφτόμαστε, προσπαθούμε να βεβαιωθούμε ότι σε κάθε είσοδο θα παράγει τη σωστή έξοδο και ότι θα ικανοποιεί τους περιορισμούς. Διερευνούμε το ενδεχόμενο να υπάρχουν περισσότερες από μία λύσεις. Αν όντως επινοήσουμε περισσότερες από μία, τότε πρέπει να επιλέξουμε τη βέλτιστη. 303
Στάδιο 2: Ανάλυση (Παράδειγμα) Στο παράδειγμά μας, μια λύση είναι η εξής: Είναι αυτή η μέθοδος πράγματι λύση; Παράγει το σωστό αποτέλεσμα για οποιεσδήποτε τιμές των x1, x2, …, xN ; Ναι. Διαβάζουμε τους x1, x2, …, xN από το πληκτρολόγιο και τους αποθηκεύουμε. Έπειτα, για κάθε xi ελέγχουμε μήπως είναι μέγιστος, δηλαδή: Διατρέχουμε τους άλλους και ελέγχουμε αν είναι όλοι ≤ xi . Αν ναι, τότε τυπώνουμε τον xi στην οθόνη, και τερματίζουμε. 304
Στάδιο 2: Ανάλυση (Παράδειγμα) Μια άλλη λύση είναι η εξής: Είναι αυτή η μέθοδος πράγματι λύση; Παράγει το σωστό αποτέλεσμα για οποιεσδήποτε τιμές των x1, x2, …, xN ; Ναι. Διαβάζουμε τους x1, x2, …, xN από το πληκτρολόγιο και ανά πάσα στιγμή παρακολουθούμε ποιος ήταν μέγιστος από τους μέχρι τώρα διαβασμένους. Στο τέλος τυπώνουμε στην οθόνη όποιον θυμόμαστε ως μέγιστο. 305
Στάδιο 2: Ανάλυση (Παράδειγμα) Ποια από τις δύο λύσεις είναι καλύτερη; Η δεύτερη λύση διατρέχει τους αριθμούς μόνο 1 φορά. Αντιθέτως, η πρώτη λύση ενδέχεται να τους διατρέχει πολλές φορές. (Στη χειρότερη περίπτωση, αν ο μέγιστος έχει δοθεί τελευταίος, οι αριθμοί διατρέχονται N φορές!) Άρα η δεύτερη λύση είναι ταχύτερη. Επομένως πρέπει να επιλέξουμε αυτήν. 306
Στάδιο 3: Σχεδίαση Τώρα που γνωρίζουμε ποια λύση θέλουμε να υλοποιή-σουμε, αναπτύσσουμε τον αλγόριθμο λεπτομερώς: Μετατρέπουμε την λύση που έχουμε περιγράψει σε διαγραμμα ροής (flow chart). Αυτό αναπαριστά σχη- ματικά τη ροή του ελέγχου στον αλγόριθμό μας. Μετατρέπουμε το διάγραμμα ροής σε ψευδοκώδικα (pseudocode). Αυτός αναπαριστά τον αλγόριθμό μας ως ακολουθία βημάτων, καθένα από τα οποία περι-γράφεται μέσω ενός μείγματος λέξεων της ελληνικής ή της αγγλικής γλώσσας και κάποιων εντολών που είναι κοινές σε πολλές γλώσσες προγραμματισμού. 307
Στάδιο 3: Σχεδίαση (Παράδειγμα) Διάγραμμα ροής για τη δεύτερη λύση. αρχή max ← -1 x max<x Ψ Α max max ← x x≥0 Α Ψ τέλος 308
Στάδιο 3: Σχεδίαση (Παράδειγμα) Ψευδοκώδι κας για τη δεύτερη λύση. Αρχή. max ← -1 . Επανάληψη: Διάβασε x . Αν max < x τότε max ← x . Όσο x ≥ 0 . Τύπωσε max . Τέλος. 309
Στάδιο 3: Σχεδίαση Βασικά σύμβολα σε διάγραμμα ροής: γραμμές ροής τερματικό σύζευξη εκτύπωση είσοδος από πληκτρολόγιο είσοδος/έξοδος από αρχείο έλεγχος συνθήκης κλήση υπομονάδας 310 ανάθεση
Στάδιο 3: Σχεδίαση Αρχή / Τέλος τερματικό Διάβασε … Βασικές εντολές σε ψευδοκώδικα: Αρχή / Τέλος τερματικό Διάβασε … είσοδος από πληκτρολόγιο Τύπωσε … εκτύπωση Διάβασε/Γράψε … είσοδος /έξοδος από αρχείο … ← … ανάθεση Αν … τότε … έλεγχος συνθήκης Αν … τότε … αλλιώς … Επανάληψη … όσο … βρόχος επανάληψης Όσο … επανέλαβε … 311
Στάδιο 4: Κωδικοποίηση Από τον ψευδοκώδικα, συντάσσουμε πρόγραμμα σε κάποια γλώσσα προγραμματισμού (π.χ. C, Java, κ.ά.). Μέσω μεταφραστή μετατρέπουμε το πρόγραμμα σε γλώσσα η οποία είναι αναγνωρίσιμη από τη μηχανή. Στο στάδιο αυτό γίνεται ο έλεγχος και η διόρθωση των συντακτικών λαθών (syntax errors), δηλαδή των λαθών που οφείλονται σε λανθασμένη χρήση των κανόνων της γλώσσας προγραμματισμού. 312
Στάδιο 4: Κωδικοποίηση (Παράδειγμα) Πρόγραμμα στη γλώσσα C για τη δεύτερη λύση. #include <stdio.h> void main(void) { int x, max = -1; do { scanf("%d", &x); if (max<x) max=x; } while (x>=0); printf("%d\n", max); } 313
Στάδιο 4: Κωδικοποίηση (Παράδειγμα) #include <stdio.h> void main(void) { int x, max = -1; do { scanf("%d", &x); if (max<x) max=x; } while (x>=0); printf("%d\n", max); } 001010100101011011110111011001011010110010010110011010110010100101001001001010101010010000000111111010111100100111001001100100100100000001111110101111011010010010011100100100100100100111001001010101001000100000011111111111011111110111101010010101010010010010111000010010010101010101010000001111110101111100110000011111010101001011001001 μετάφραση Ο μεταφραστής δέχεται στην είσοδο ένα αρχείο κειμένου (π.χ.: findmax.c) που περιέχει το πρόγραμ-μα και παράγει στην έξοδο ένα εκτελέσιμο αρχείο (findmax.exe). (Ή μία αναφορά με όλα τα συντακτικά λάθη που εντόπισε.) πρόγραμμα στη γλώσσα C για τη δεύτερη λύση εκτελέσιμο αρχείο για τη δεύτερη λύση 314
Στάδιο 5: Έλεγχος Πραγματοποιούμε πολλές δοκιμές προκειμένου να βεβαιωθούμε ότι το πρόγραμμα δουλεύει σωστά. Διορθώνουμε τυχόν λογικά σφάλματα που ανακύπτουν, δηλ. σφάλματα που αφορούν στη σχεδίαση της λύσης. 315
Στάδιο 5: Έλεγχος (Παράδειγμα) Στο παράδειγμά μας, ίσως κατά την κωδικοποίηση να πληκτρολογήσαμε “max>x” αντί για “max<x” : Ή ίσως να κάναμε το ίδιο λάθος κατά την σχεδίαση: Ο μεταφραστής δεν μπορεί να ανιχνεύσει τέτοια λογικά σφάλματα. Εντοπίζονται μόνο στο στάδιο του ελέγχου. scanf("%d", &x); if (max>x) max=x; max>x max ← x Α Ψ 316
Στάδιο 6: Συντήρηση Συντάσσουμε τεκμηρίωση (documentation), δηλαδή ένα εγχειρίδιο που να εξηγεί την χρήση του προγράμματος. Εγκαθιστούμε το πρόγραμμα και αρχίζουμε να το χρησιμοποιούμε. Παρακολουθούμε την χρήση του προγράμματος και ενημερωνόμαστε για τυχόν νέες απαιτήσεις ή σφάλματα που ανακύπτουν. Όποτε είναι απαραίτητο, τροποποιού-με το πρόγραμμα καταλλήλως. 317
Προβλήματα Άκολουθεί σειρά προβλημάτων, που πρέπει να επιλύ- σουμε έως και τη φάση της σχεδίασης. Δηλαδή πρέπει: Περιγραφή: Να παραθέσουμε μια σαφή περιγραφή του προβλήματος (αν δεν μας έχει ήδη δοθεί). Ανάλυση: Να επινοήσουμε κάποιον αλγόριθμο (ή αλγορίθμους, και να επιλέξουμε τον καλύτερο). Σχεδίαση: Για τον αλγόριθμό μας, να σχεδιάσουμε ένα διάγραμμα ροής και έπειτα έναν ψευδοκώδικα. 318
Πρόβλημα 1 Να γραφεί πρόγραμμα που να υπολογίζει τον μέσο όρο δύο αριθμών. Μια πιο σαφής περιγραφή: Δίνονται δύο πραγματικοί αριθμοί x και y, από το πληκτρολόγιο. Να υπολογιστεί ο μέσος όρος τους, (x+y)/2, και να τυπωθεί στην οθόνη. 319
Πρόβλημα 1: Διάγραμμα ροής αρχή x ο 1ος αριθμός εισόδου y ο 2ος αριθμός εισόδου average ο ζητούμενος μέσος όρος x , y average ← (x+y)/2 average 320 τέλος
Πρόβλημα 1: Ψευδοκώδικας Αρχή. Διάβασε x , y . average ← (x+y)/2 . Τύπωσε average . Τέλος. x ο 1ος αριθμός εισόδου y ο 2ος αριθμός εισόδου average ο ζητούμενος μέσος όρος 321
Πρόβλημα 2 Να γραφεί πρόγραμμα που να υπολογίζει τον ελάχιστο δύο αριθμών. Μια πιο σαφής περιγραφή: (Διευκρίνιση: Σε μια ανάθεση, η παράσταση δεξιά του ← μπορεί να περιέχει μόνο τις πράξεις +, -, *, και / .) Δίνονται δύο πραγματικοί αριθμοί x και y, από το πληκτρολόγιο. Να υπολογιστεί ο ελάχιστος των αριθμών, min(x,y), και να τυπωθεί στην οθόνη. 322
Πρόβλημα 2: Διάγραμμα ροής αρχή x ο 1ος αριθμός εισόδου y ο 2ος αριθμός εισόδου min ο ζητούμενος ελάχιστος x , y x ≤ y min ← y Ψ Α min ← x min 323 τέλος
Πρόβλημα 2: Ψευδοκώδικας Αρχή. Διάβασε x , y . Αν x ≤ y τότε min ← x αλλιώς min ← y . Τύπωσε min . Τέλος. x ο 1ος αριθμός εισόδου y ο 2ος αριθμός εισόδου min ο ζητούμενος ελάχιστος 324
Πρόβλημα 2: Εναλλακτικό διάγραμμα ροής Πρόβλημα 2: Εναλλακτικό διάγραμμα ροής αρχή x ο 1ος αριθμός εισόδου y ο 2ος αριθμός εισόδου x , y x ≤ y Α Ψ x y 325 τέλος
Πρόβλημα 2: Εναλλακτικός ψευδοκώδικας Πρόβλημα 2: Εναλλακτικός ψευδοκώδικας Αρχή. Διάβασε x , y . Αν x ≤ y τότε Τύπωσε x αλλιώς Τύπωσε y . Τέλος. x ο 1ος αριθμός εισόδου y ο 2ος αριθμός εισόδου 326
Ασκήσεις 1 & 2 Δώστε διάγραμμα ροής και ψευδοκώδικα για αλγορίθ-μους που λύνουν τα παρακάτω προβλήματα: Δίνονται τρεις πραγματικοί αριθμοί x, y, z, από το πληκτρολόγιο. Να υπολογιστεί ο μέσος όρος τους, (x+y+z)/3, και να τυπωθεί στην οθόνη. Δίνονται τρεις πραγματικοί αριθμοί x, y, z, από το πληκτρολόγιο. Να υπολογιστεί ο ελάχιστος των αριθμών, min(x,y,z), και να τυπωθεί στην οθόνη. 327
Άσκηση 1: Διάγραμμα ροής αρχή x ο 1ος αριθμός εισόδου y ο 2ος αριθμός εισόδου z ο 3ος αριθμός εισόδου average ο ζητούμενος μέσος όρος x , y , z average ← (x+y+z)/3 average 328 τέλος
Άσκηση 1: Ψευδοκώδικας Αρχή. Διάβασε x , y , z . average ← (x+y+z)/3 . Τέλος. x ο 1ος αριθμός εισόδου y ο 2ος αριθμός εισόδου z ο 3ος αριθμός εισόδου average ο ζητούμενος μέσος όρος 329
Άσκηση 2: Διάγραμμα ροής αρχή x ο 1ος αριθμός εισόδου y ο 2ος αριθμός εισόδου z ο 3ος αριθμός εισόδου min ο ζητούμενος ελάχιστος x , y , z x ≤ y Α Ψ x ≤ z y ≤ z Α Ψ Α Ψ min ← x min ← z min ← y min ← z min 330 τέλος
Άσκηση 2: Ψευδοκώδικας Αρχή. Διάβασε x , y, z . Αν x ≤ y τότε Αν x ≤ z τότε min ← x αλλιώς min ← z αλλιώς Αν y ≤ z τότε min ← y αλλιώς min ← z . Τύπωσε min . Τέλος. x ο 1ος αριθμός εισόδου y ο 2ος αριθμός εισόδου z ο 3ος αριθμός εισόδου min ο ζητούμενος ελάχιστος 331
Άσκηση 2: Εναλλακτικό διάγραμμα ροής Άσκηση 2: Εναλλακτικό διάγραμμα ροής αρχή x ο 1ος αριθμός εισόδου y ο 2ος αριθμός εισόδου z ο 3ος αριθμός εισόδου x , y , z x ≤ y Α Ψ x ≤ z y ≤ z Α Ψ Α Ψ x z y z 332 τέλος
Άσκηση 2: Εναλλακτικός ψευδοκώδικας Άσκηση 2: Εναλλακτικός ψευδοκώδικας Αρχή. Διάβασε x , y, z . Αν x ≤ y τότε Αν x ≤ z τότε Τύπωσε x αλλιώς Τύπωσε z αλλιώς Αν y ≤ z τότε Τύπωσε y αλλιώς Τύπωσε z . Τέλος. x ο 1ος αριθμός εισόδου y ο 2ος αριθμός εισόδου z ο 3ος αριθμός εισόδου 333
Πρόβλημα 3 Να γραφεί πρόγραμμα που να δέχεται μια απροσδιόρι-στα μεγάλη ακολουθία αριθμών (η οποία τερματίζει με τον αριθμό 0) και να υπολογίζει τα τετράγωνα αυτών. Μια πιο σαφής περιγραφή: Δίνεται μια ακολουθία αριθμών x1, x2, …, xN, από το πληκτρολόγιο (σήμα τέλους: xN = 0). Να υπολογιστούν και να τυπωθούν στην οθόνη τα τετράγωνα των αριθμών, x12, x22, …, xN2 . 334
Πρόβλημα 3: Διάγραμμα ροής αρχή x ο τρέχων αριθμός square το τρέχον τετράγωνο x square ← x*x square x ≠ 0 Α Ψ 335 τέλος
Πρόβλημα 3: Ψευδοκώδικας Αρχή. Επανάληψη: Διάβασε x . square ← x* x . Τύπωσε square . όσο x ≠ 0 . Τέλος. x ο τρέχων αριθμός square το τρέχον τετράγωνο 336
Πρόβλημα 4 Να γραφεί πρόγραμμα που να δέχεται μια απροσδιόρι-στα μεγάλη ακολουθία αριθμών (η οποία τερματίζει με τον αριθμό 0) και να υπολογίζει το άθροισμα αυτών. Μια πιο σαφής περιγραφή: Δίνεται μια ακολουθία αριθμών x1, x2, …, xN, από το πληκτρολόγιο (σήμα τέλους: xN = 0). Να υπολογιστεί και να τυπωθεί στην οθόνη το άθροισμά τους, x1+ x2 + . . . + xN . 337
Πρόβλημα 4: Διάγραμμα ροής αρχή x ο τρέχων αριθμός sum το μέχρι στιγμής άθροισμα sum ← 0 x sum ← sum + x Α x ≠ 0 Ψ sum 338 τέλος
Πρόβλημα 4: Ψευδοκώδικας Αρχή. sum ← 0 . Επανάληψη: Διάβασε x . sum ← sum + x . όσο x ≠ 0 . Τύπωσε sum . Τέλος. x ο τρέχων αριθμός sum το μέχρι στιγμής άθροισμα 339
Ασκήσεις 3 & 4 Δώστε διάγραμμα ροής και ψευδοκώδικα για αλγορίθ-μους που λύνουν τα παρακάτω προβλήματα: Δίνεται μια ακολουθία αριθμών x1, x2, …, xN, από το πληκτρολόγιο (σήμα τέλους: xN = 1). Να υπολογιστεί και να τυπωθεί στην οθόνη το γινόμενό τους, x1 * x2 * . . . * xN . Δίνεται μια ακολουθία αριθμών x1, x2, …, xN, από το πληκτρολόγιο (σήμα τέλους: xN = 0). Να υπολογιστεί το πλήθος τους, N, και να τυπωθεί στην οθόνη. 340
Άσκηση 3: Διάγραμμα ροής αρχή x ο τρέχων αριθμός prod το μέχρι στιγμής γινόμενο prod ← 1 x prod ← prod * x Α x ≠ 1 Ψ prod 341 τέλος
Άσκηση 3: Ψευδοκώδικας Αρχή. prod ← 1 . Επανάληψη: Διάβασε x . prod ← prod * x . όσο x ≠ 1 . Τύπωσε prod . Τέλος. x ο τρέχων αριθμός prod το μέχρι στιγμής γινόμενο 342
Άσκηση 4: Διάγραμμα ροής αρχή x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος N ← 0 x N ← N + 1 Α x ≠ 0 Ψ N 343 τέλος
Άσκηση 4: Ψευδοκώδικας Αρχή. N ← 0 . Επανάληψη: Διάβασε x . N ← N + 1 . όσο x ≠ 0 . Τύπωσε N . Τέλος. x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος 344
Πρόβλημα 5 Να γραφεί πρόγραμμα που να δέχεται μια απροσδιόρι-στα μεγάλη ακολουθία αριθμών (η οποία τερματίζει με τον αριθμό 0) και να υπολογίζει τον μέσο όρο τους. Μια πιο σαφής περιγραφή: Δίνεται μια ακολουθία αριθμών x1, x2, …, xN, από το πληκτρολόγιο (σήμα τέλους: xN = 0). Να υπολογιστεί και να τυπωθεί στην οθόνη ο μέσος όρος τους, (x1+ x2 + . . . + xN)/N. 345
Πρόβλημα 5: Διάγραμμα ροής x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος sum το μέχρι στιγμής άθροισμα average ο ζητούμενος μέσος όρος αρχή N ← 0 x sum ← 0 Πρόβλημα! Αυξάνεται ακόμη και όταν x=0 N ← N + 1 sum ← sum + x average ← sum/N Α x ≠ 0 Ψ average 346 τέλος
Πρόβλημα 5: Ψευδοκώδικας Αρχή. Ν ← 0 . sum ← 0 . Επανάληψη: Διάβασε x . Ν ← Ν + 1 . sum ← sum + x . όσο x ≠ 0 . average ← sum / N . Τύπωσε average . Τέλος. x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος sum το μέχρι στιγμής άθροισμα average ο ζητούμενος μέσος όρος Πρόβλημα! Αυξάνεται ακόμη και όταν x=0 347
Πρόβλημα 5: Διάγραμμα ροής x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος sum το μέχρι στιγμής άθροισμα average ο ζητούμενος μέσος όρος αρχή N ← 0 x ≠ 0 sum ← 0 Ψ Α x N ← N + 1 average ← sum/N sum ← sum + x average x 348 τέλος
Πρόβλημα 5: Ψευδοκώδικας Αρχή Ν ← 0 sum ← 0 Διάβασε x Όσο x ≠ 0 επανέλαβε: Ν ← Ν + 1 sum ← sum + x Διάβασε x όσο x ≠ 0 average ← sum / N Τύπωσε average Τέλος x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος sum το μέχρι στιγμής άθροισμα average ο ζητούμενος μέσος όρος 349
Πρόβλημα 6 Να γραφεί πρόγραμμα που να δέχεται μια απροσδιόρι-στα μεγάλη ακολουθία φυσικών αριθμών (που τερματίζει με τον αριθμό 0) και να υπολογίζει τον μέγιστο αυτών. Μια πιο σαφής περιγραφή: Δίνεται μια ακολουθία φυσικών αριθμών x1, x2, …, xN, από το πληκτρολόγιο (σήμα τέλους: xN = 0). Να υπολογιστεί ο μέγιστος αυτών, max(x1, x2, …, xN), και να τυπωθεί στην οθόνη. 350
Πρόβλημα 6: Διάγραμμα ροής αρχή x ο τρέχων αριθμός max ο μέχρι στιγμής μέγιστος max ← 0 x Ψ max<x Α max ← x max x ≠ 0 Α Ψ 351 τέλος
Πρόβλημα 6: Ψευδοκώδικας Αρχή. max ← 0 . Επανάληψη: Διάβασε x . Αν max < x τότε max ← x . όσο x ≠ 0 . Τύπωσε max . Τέλος. x ο τρέχων αριθμός max ο μέχρι στιγμής μέγιστος 352
Ασκήσεις 5 & 6 Δώστε διάγραμμα ροής και ψευδοκώδικα για αλγορίθ-μους που λύνουν τα παρακάτω προβλήματα: Δίνεται μια ακολουθία αριθμών x1, …, xN στο [0..100] από το πληκτρολόγιο (σήμα τέλους: xN = 101). Να υπολογιστεί ο ελάχιστος αυτών, min(x1, …, xN), και να τυπωθεί στην οθόνη. Δίνεται μια ακολουθία φυσικών αριθμών x1, x2, …, xN, από το πληκτρολόγιο (σήμα τέλους: xN = 0). Να υπολογιστεί το πλήθος, ο μέσος όρος, και ο μέγι-στος αυτών, και να τυπωθούν στην οθόνη. 353
Άσκηση 5: Διάγραμμα ροής αρχή x ο τρέχων αριθμός min ο μέχρι στιγμής ελάχιστος min ← 101 x Ψ x < min Α min ← x min x ≠ 101 Α Ψ 354 τέλος
Άσκηση 5: Ψευδοκώδικας Αρχή. min ← 101 . Επανάληψη: Διάβασε x . Αν x < min τότε min ← x . όσο x ≠ 101 . Τύπωσε min . Τέλος. x ο τρέχων αριθμός min ο μέχρι στιγμής ελάχιστος 355
Άσκηση 6: Διάγραμμα ροής αρχή x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος sum το μέχρι στιγμής άθροισμα max ο μέχρι στιγμής μέγιστος average ο ζητούμενος μέσος όρος x N ← 0 N ← N + 1 sum ← 0 sum ← sum + x Ψ max<x Α average ← sum/N max ← 0 max ← x average, max Α x ≠ 0 Ψ 356 τέλος
Άσκηση 6: Ψευδοκώδικας Αρχή. Ν ← 0 . sum ← 0 . max ← 0 . Επανάληψη: Ν ← Ν + 1 . sum ← sum + x . Αν max < x τότε max ← x . όσο x ≠ 0 . average ← sum / N . Τύπωσε average, max . Τέλος. x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος sum το μέχρι στιγμής άθροισμα max ο μέχρι στιγμής μέγιστος average ο ζητούμενος μέσος όρος 357
Πρόβλημα 7 Τα στοιχεία των φοιτητών του ΕΠΛ002 είναι αποθηκευ-μένα σε αρχείο με όνομα students.dat, ως εξής: Να γραφεί πρόγραμμα που διαβάζει το αρχείο και τυπώνει στην οθόνη τα ονόματα των φοιτητών που αρίστευσαν (δηλ. έλαβαν βαθμό ≥ 8). id name year grade 123456 Τάκης Χατζητάκης 1 6.5 121212 Στέλλα Μαυροπούλου 2 9 552244 Πέτρος Πετρόπουλος 7 … 358
Πρόβλημα 7: Διάγραμμα ροής αρχή rec η τρέχουσα εγγραφή άνοιξε students.dat όχι EOF Ψ Α διάβασε rec Α rec.grade ≥ 8 Ψ rec.name κλείσε students.dat διάβασε rec 359 τέλος
Πρόβλημα 7: Ψευδοκώδικας Αρχή. Άνοιξε students.dat . Διάβασε rec . Όσο όχι EOF επανέλαβε: Αν rec.grade ≥ 8 τότε Τύπωσε rec.name . Κλείσε students.dat . Τέλος. rec η τρέχουσα εγγραφή 360
grade = 0.7*final + 0.3*midterm Πρόβλημα 8 Τα στοιχεία των φοιτητών του ΕΠΛ002 είναι αποθηκευ-μένα σε αρχείο με όνομα students.dat, ως εξής: Να γραφεί πρόγραμμα που διαβάζει το αρχείο και ενη-μερώνει το πεδίο grade κάθε φοιτητή με τον βαθμό που προκύπτει από την ενδιάμεση και την τελική εξέτα-ση, σύμφωνα με τον τύπο: grade = 0.7*final + 0.3*midterm id name grade final midterm 123456 Τάκης Χατζητάκης 6.5 5 121212 Στέλλα Μαυροπούλου 9 7 552244 Πέτρος Πετρόπουλος 8 … 361
Πρόβλημα 8: Διάγραμμα ροής αρχή rec η τρέχουσα εγγραφή άνοιξε students.dat όχι EOF Ψ Α διάβασε rec rec.grade ← 0.7*rec.final + 0.3*rec.midterm γράψε rec κλείσε students.dat διάβασε rec 362 τέλος
Πρόβλημα 8: Ψευδοκώδικας Αρχή. Άνοιξε students.dat . Διάβασε rec . Όσο όχι EOF επανέλαβε: rec.grade ← 0.7*rec.final + 0.3*rec.midterm . Γράψε rec . Κλείσε students.dat . Τέλος. rec η τρέχουσα εγγραφή 363
Άσκηση 7 Τα στοιχεία των φοιτητών του ΕΠΛ002 είναι αποθηκευ-μένα σε αρχείο με όνομα students.dat, ως εξής: Να γραφεί πρόγραμμα που διαβάζει το αρχείο, υπολογί-ζει το πλήθος των φοιτητών που βρίσκονται στο πρώτο έτος των σπουδών τους (δηλ. year = 1), και τυπώνει στην οθόνη αυτό το πλήθος. id name year grade 123456 Τάκης Χατζητάκης 1 6.5 121212 Στέλλα Μαυροπούλου 2 9 552244 Πέτρος Πετρόπουλος 7 … 364
Άσκηση 7: Διάγραμμα ροής αρχή rec η τρέχουσα εγγραφή N το τρέχον πλήθος άνοιξε students.dat όχι EOF Ψ N ← 0 Α Α rec.year = 1 Ψ N διάβασε rec N ← N+1 κλείσε students.dat διάβασε rec 365 τέλος
Άσκηση 7: Ψευδοκώδικας Αρχή. Άνοιξε students.dat . N ← 0 . Διάβασε rec . Όσο όχι EOF επανέλαβε: Αν rec.year = 1 τότε N ← N + 1 . Τύπωσε N . Κλείσε students.dat . Τέλος. rec η τρέχουσα εγγραφή N το τρέχον πλήθος 366
Άσκηση 8 Τα στοιχεία των φοιτητών του ΕΠΛ001 είναι αποθηκευ-μένα σε αρχείο με όνομα students.dat, ως εξής: Να γραφεί πρόγραμμα που διαβάζει το αρχείο, υπολογί-ζει τον μέσο όρο των βαθμών όλων των φοιτητών, και τυπώνει στην οθόνη αυτόν τον μέσο όρο. id name year grade 123456 Τάκης Χατζητάκης 1 6.5 121212 Στέλλα Μαυροπούλου 2 9 552244 Πέτρος Πετρόπουλος 7 … 367
Άσκηση 8: Διάγραμμα ροής αρχή rec η τρέχουσα εγγραφή N το τρέχον πλήθος sum το τρέχον άθροισμα average ο μέσος όρος άνοιξε students.dat N ← 0 όχι EOF Ψ sum ← 0 average ← sum/N Α διάβασε rec N ← N+1 average sum ← sum + rec.grade κλείσε students.dat διάβασε rec 368 τέλος
Άσκηση 8: Ψευδοκώδικας Αρχή. Άνοιξε students.dat . N ← 0 . sum ← 0 . Διάβασε rec . Όσο όχι EOF επανέλαβε: N ← N + 1 . sum ← sum + rec.grade . average ← sum / N . Τύπωσε average . Κλείσε students.dat . Τέλος. rec η τρέχουσα εγγραφή N το τρέχον πλήθος sum το τρέχον άθροισμα average ο μέσος όρος 369
The World Wide Web
Στόχοι Κεφαλαίου Σύγκριση μεταξύ Internet και του World Wide Web Δημιουργία απλών σελίδων HTML Περιγραφή κάποιων HTML tags 371
Στόχοι Κεφαλαίου (συνέχεια.) Περιγραφή επεξεργασίας Java applets and Java server pages Σύγκριση μεταξύ HTML και XML Ορισμός απλού κειμένου XML και του σχετικού DTDs Πως μπορεί να επιδειχθεί στην οθόνη ένα κείμενο XML; 372
Η ιστορία του WWW Το WWW ξεκίνησε το 1989 από το Ευρωπαϊκό Κέντρο Πυρηνικών Ερευνών, (CERN) στην Ελβετία. Βασικός του σκοπός ήταν να προσφέρει στους επιστήμονες ένα μέσο προκειμένου να ανταλλάσσουν στοιχεία επιστημονικά δεδομένα και μελέτες, μέσω του διαδικτύου. Η όλη προσπάθεια στηρίχτηκε στην υλοποίηση ενός μέσου που θα επιτρέπει την σύνδεση μεταξύ διαφορετικών εγγράφων. 373
Η ιστορία του WWW Το μέσο αυτό ονομάστηκε υπερκείμενο(Hyper text) Το 1994 κατασκευάστηκε το πρόγραμμα Mosaic, το οποίο έδινε την δυνατότητα στους χρήστες να προσπελαύνουν τις πληροφορίες που ήταν διαθέσιμες στο WWW με γραφικό τρόπο. Στα επόμενα χρόνια το WWW έγινε το απόλυτο μέσο αναζήτησης πληροφοριών για εκατομμύρια χρήστες του διαδικτύου. 374
Το Διαδίκτυο και το WWW Η πλατιά χρήση του WWW δημιούργησε σύγχυση σε πολλούς χρήστες οι οποίοι ταύτισαν το WWW με το Internet. Στην πραγματικότητα όμως είναι δύο διαφορετικά πράγματα. Το Ιnternet αποτελεί το φυσικό χώρο στον οποίο διασυνδέονται εκατομμύρια Η/Υ από όλο τον κόσμο, Το WWW αποτελεί το εργαλείο με το οποίο μπορούμε να οργανώσουμε και να διαχειριστούμε τον τεράστιο όγκο πληροφοριών που έχει συσσωρευτεί στο διαδίκτυο. 375
Το Διαδίκτυο ως εργαλείο Αναζήτησης πληροφοριών (Ειδήσεις, νέα, πρόσβαση σε διεθνείς οργανισμούς, σε βάσεις δεδομένων δημόσιας διοίκησης κλπ) Επικοινωνίας (ανταλλαγή μηνυμάτων, τηλεδιάσκεψη, τηλεφωνική συνομιλία, κλπ) Διενέργειας Συναλλαγών (Ηλεκτρονικό εμπόριο, ανταλλαγή αρχείων εγγράφων, τραπεζικές οικονομικές συναλλαγές κλπ) Δημιουργίας Διαδικτυακού Χώρου (προσωπικές σελίδες, εταιρικές τοποθεσίες κλπ) Διασκέδασης και Ψυχαγωγίας (παιχνίδια, ραδιόφωνο, τηλεόραση κλπ). 376
World Wide Web To Web περιλαμβάνει κατανεμημένη πληροφορία, καθώς και το σχετικό λογισμικό που χρησιμοποιεί τα δίκτυα ως μέσο ανταλλαγής αυτής της πληροφορίας. Μία σελίδα Web είναι ένα κείμενο που περιέχει ή αναφέρεται σε διάφορα είδη δεδομένων, όπως κείμενο, εικόνες, γραφικά και προγράμματα Οι σελίδες Web περιέχουν συνδέσμους σε άλλες σελίδες τις οποίες ο χρήστης μπορεί να επισκεφθεί 377
The World Wide Web Ένας δικτυακός τόπος (Web Site) είναι μία συλλογή σχετιζομένων σελίδων web To Internet είναι αυτό που επιτρέπει την επικοινωνία, αλλά το Web διευκολύνει την επικοινωνία, την κάνει παραγωγικότερη και περισσότερο διασκεδαστική 378
Πως κατασκευάζουμε ένα υπερκείμενο; Για την περιγραφή ενός υπερκειμένου χρησιμοποιούμε μια ειδική γλώσσα την Hyper Text Markup Language (HTML). Η γλώσσα αυτή επιτρέπει στον συγγραφέα να διαμορφώσει ένα κείμενο το οποίο θα παρέχει συνδέσμους με άλλα έγγραφα και διάφορα αρχεία 379
Πως κατασκευάζουμε ένα υπερκείμενο; Τα υπερκείμενα που βρίσκονται στο WWW ονομάζονται ιστοσελίδες (web pages). Το σύνολο των ιστοσελίδων αποτελούν το site (δικτυακός τόπος). Τα προγράμματα τα οποία απεικονίζουν τις ιστοσελίδες, επιτρέποντας μας την ξενάγησή μας στο διαδίκτυο ονομάζονται πλοηγοί / φυλλομετρητές (Browsers), π.χ, Netscape & Internet Explorer 380
Web Browser Ένας browser είναι το λογισμικό Μόλις έρθει η σελίδα, την επιδεικνύει στην οθόνη Συχνά λέμε ότι επισκεπτόμαστε ένα δικτυακό τόπο, ως να είμασταν πράγματι εκεί Στην πραγματικότητα, προσδιορίζουμε την πληροφορία που επιθυμούμε,και αυτή έρχεται σε εμάς 381
Web Browser Ο υπολογιστής που ανταποκρίνεται στις αιτήσεις για σελίδες Web λέγεται Web server Mία διεύθυνση Web είναι το κύριο μέρος του Uniform Resource Locator (URL) που προσδιορίζει την σελίδα που έχετε επιλέξει, ανάμεσα σε όλες τις σελίδες poy είναι διαθέσιμες σε όλο τον κόσμο 382
Φυλλομετρητής Web (Web Browser) 383
Browsers: Internet Explorer 384
Browsers: Netscape Communicator 385
HTML Οι σελίδες WEB δημιουργούνται χρησιμοποιώντας μία γλώσσα που λέγεται Hypertext Markup Language, ή HTML O όρος markup language δηλώνει ότι τα πρωτόγονα σύμβολα της γλώσσας έχουν τη μορφή των tags (ετικέτες), τα οποία βάζουμε σε ένα κείμενο για την επισημείωση της πληροφορίας που είναι αποθηκευμένη σε αυτό. Τα tags δείχνουν πώς η πληροφορία θα πρέπει να εμφανιστεί. Π.χ. μέγεθος, χρώμα, στυλ γραμματοσειράς παράγραφος, εικόνα, λίστα από κουκκίδες, κλπ. 386
HTML Ένα επισημειωμένο κείμενο 387
HTMLσελίδα H σελίδα Student Dynamics στον Netscape Navigator 388
HTML κείμενο Το κείμενο HTML που αντιστοιχεί στην προηγούμενη σελίδα 389
HTML Τα tags περικλείονται από το μικρότερο και μεγαλύτερο σύμβολο: < > Λέξεις όπως τα HEAD, TITLE, και BODY λέγονται elements και προσδιορίζουν τον τύπο του tag Tα tags, συχνά υπάρχουν ανά ζεύγη, π.χ. υπάρχει το αρχικό tag <BODY> και το tag τέλους το </BODY> 390
HTML O browser, προσδιορίζει τον τρόπο εμφάνισης μίας σελίδας βασισμένος στα tags Αγνοεί τον τρόπο μορφοποίησης του HTML, δηλαδή τα enter, τα επιπλέον κενά και τις κενές γραμμές Λαμβάνει υπ’όψιν το πλάτος και το ύψος του παραθύρου του browser Εάν αλλάξετε το μέγεθος του παραθύρου τα περιεχόμενα της Web σελίδας θα αλλάξουν ώστε να προσαρμοστούν στο νέο μέγεθος 391
βασικά tags στην HTML Τα tags (<P> . . . </P>) δηλώνουν κείμενο που αποτελεί ξεχωριστή παράγραφο. Τα tags (<CENTER> . . . </CENTER>) δηλώνουν ότι η περικλειόμενη πληροφορία θα πρέπει να κεντραριστεί στο παράθυρο του browser 392
βασικά tags στην HTML Τα elements Β, Ι, U δηλώνουν ότι το περικλειόμενο κείμενο θα πρέπει να είναι σε μορφή bold, italic ή υπογραμμισμένο, αντίστοιχα. Το tag <HR> χαράσσει μία οριζόντια γραμμή κατά μήκος της σελίδας 393
βασικά tags στην HTML Αν θέλω να δημιουργήσω μία λίστα στοιχείων: Χρησιμοποιώ το UL element (unordered list) το οποίο δηλώνει τη μη-διατεταγμένη λίστα (bullets), και το LI element (list item) αναπαριστά ένα στοιχείο της λίστας. Για μια διατεταγμένη λίστα (αριθμημένη), χρησιμοποιώ το OL element (ordered list). Διάφορα elements χρησιμοποιούνται για να δηλώσουν επικεφαλίδες σε ένα κείμενο: Υπάρχουν έξι προκαθορισμένα elements επικεφαλίδων στην HTML: H1, H2, H3, H4, H5 και H6 394
Εικόνες και σύνδεσμοι Πολλά tags μπορούν να περιέχουν επιπλέον πληροφορίες που δηλώνουν πώς η περικλειόμενη πληροφορία πρέπει να επιδειχθεί Μία εικόνα μπορεί να ενσωματωθεί σε ένα Web κείμενο με τη χρήση του στοιχείου (element) IMG, το οποίο έχει ως ιδιότητα (attribute) το αρχείο που θα επιδείξει <IMG SRC = "myPicture.gif"> 395
Εικόνες και σύνδεσμοι (συνέχεια) Ένας σύνδεσμος προσδιορίζεται από το στοιχείo A, που σημαίνει anchor To tag περιέχει την ιδιότητα που λέγεται HREF, και προσδιορίζει το URL του κειμένου στόχος Παράδειγμα <A HREF = "http://duke.csc.villanova.edu/docs/"> Documentation Central!</A> 396
Διαδραστικές σελίδες Web Όταν πρωτο-σχεδιάστηκε η HTML, δεν υπήρχε τρόπος αλληλεπίδρασης με την πληροφορία και τις εικόνες μίας σελίδας Web Οι χρήστες επιθυμούσαν μία δυναμικότερη συμπεριφορά από το Web. Αυτό είχε σαν συνέπεια την ανάπτυξη νέων τεχνολογιών που θα την εξυπηρετούσαν. Πολλές από αυτές τις ιδέες προήλθαν από την τότε νέα γλώσσα προγραμματισμού Java 397
Java Applets Ένα Java applet είναι ένα πρόγραμμα που σχεδιάστηκε ώστε να ενσωματώνεται σε ένα κείμενο HTML (ενεργό έγγραφο). Ένα Java applet μεταφέρεται από τον Web server σε αυτόν που θέλει να τρέξει το πρόγραμμα. Εκτελείται (τρέχει) στο browser. Για να ενσωματώσω ένα applet σε κώδικα HTML, χρησιμοποιώ το tag APPLET <APPLET code="MyApplet.class" width=250 height=150 ></APPLET> Π.χ. κινούμενη εικόνα. 398
Java Applets O browser έχει ένα ενσωματωμένο διερμηνέα που εκτελεί το applet, επιτρέποντας στον χρήστη να αλληλεπιδρά με αυτό Υπάρχουν όμως δυσκολίες… Πώς μπορεί να εκτελείται ένα πρόγραμμα που γράφτηκε σε ένα τύπο υπολογιστή σε πιθανόν πολλούς άλλους υπολογιστές 399
Java Applets Τα προγράμματα Java μετατρέπονται σε Bytecode, που είναι μία αναπαράσταση χαμηλού επιπέδου, αλλά δεν είναι κώδικας μηχανής που αφορά μια συγκεκριμένη KME. Το ByteCode εκτελείται από έγκυρο διερμηνέα, ανεξαρτήτου του τύπου υπολογιστών που τρέχει. Τα Java applets έχουν περιορισμούς για θέματα ασφαλείας Για παράδειγμα, ένα Java applet δεν μπορεί να προσπελάζει τοπικά αρχεία, ή να αλλάξει τη διαμόρφωση του υπολογιστή (system settings) 400
Σελίδες Java Server Μία Java Server Page (JSP), είναι μία σελίδα Web που έχει ενσωματωμένα JSP scriptlets (δυναμικό έγγραφο) Ένα scriptlet είναι ένα μικρό κομμάτι εκτελέσιμου κώδικα που υπάρχει μέσα σε ένα κείμενο HTML 401
Σελίδες Java Server Ένα JSP scriptlet περικλείεται σε ειδικά tags που αρχίζουν με το <% και τελειώνουν με το %> Τα JSP scriptlets, είναι μία πλήρης γλώσσα προγραμματισμού 402 σελίδα 488
Java Server Pages Τα JSPs εκτελούνται στον server (όπου βρίσκεται και η σχετική σελίδα) Τι στιγμή που η σελίδα φθάσει στον υπολογιστή σας, όλη η επεξεργασία έχει ήδη ολοκληρωθεί στο server. Εσείς λαμβάνετε μία σελίδα (που έχει δημιουργηθεί δυναμικά στον server) Τα JSPs είναι ιδιαίτερα χρήσιμα για το συσχετισμό μεταξύ μίας σελίδας Web με μία βάση δεδομένων Π.χ. JSP σελίδα για αγορά προϊόντων: Όταν αιτούμαστε για πληροφορίες σχετικά με ένα είδος προϊόντος (π.χ. LCD TV), τρέχουν scriptlets που αλληλεπιδρούν με τη βάση δεδομένων και παίρνουν τις απαραίτητες πληροφορίες, οι οποίες εμφανίζονται στην Web σελίδα. 403
XML Η HTML έχει προκαθορισμένο σύνολο από tags, και κάθε tag έχει συγκεκριμένη σημασία Τα tags της HTML δεν περιγράφουν το πραγματικό περιεχόμενο ενός κειμένου Η eXtensible Markup Language (XML), επιτρέπει στον δημιουργό ενός κειμένου να περιγράψει τα περιεχόμενα του κειμένου με ένα σύνολο δικών του tag 404
XML H XML είναι μία μεταγλώσσα Μία μεταγλώσσα είναι μία γλώσσα για να μιλήσουμε, ή να ορίσουμε άλλες γλώσσες. 405
XML Όπως στην HTML, έτσι και στην XML το κείμενο έχει επισημειωμένα δεδομένα Κείμενο XML που περιέχει διάφορα δεδομένα για βιβλία 406
XML Document Type Definition (DTD): είναι μία προδιαγραφή της οργάνωσης του κειμένου. Η δομή ενός XML περιγράφεται από το σχετικό κείμενο DTD Το κείμενο DTD που αντιστοιχεί στο κείμενο XML για τα βιβλία 407
XML XML είναι τρόπος οργάνωσης δεδομένων, χωρίς να προσδιορίζεται ο τρόπος που αυτά θα φανούν στην έξοδο. eXtensible Stylesheet Language (or XSL): Μία γλώσσα για τον ορισμό μετασχηματισμών κειμένων XML σε κείμενα διαφόρων μορφών Ένα κείμενο XML μπορεί να μετραπεί σε πολλές μορφές εξόδου
Πως αναζητούμε την πληροφορία στο WWW, αν δεν γνωρίζουμε το URL της; Πολλές φορές ο χρήστης που αναζητά πληροφορίες στο διαδίκτυο, αισθάνεται ότι βρίσκεται σε ένα λαβύρινθο αδυνατώντας να ‘φιλτράρει’ αυτό που πραγματικά τον ενδιαφέρει. Οι πληροφορίες που διακινούνται στο διαδίκτυο υπό μορφή εγγράφων, χαρακτηρίζονται: από την άναρχη δόμηση τους από την έλλειψη ευρετηρίων αναζήτησης και από τις συνεχείς μετατοπίσεις των σελίδων σε διαφορετικές διευθύνσεις κλπ. Όλα τα παραπάνω καθιστούν την αναζήτηση πληροφοριών στο διαδίκτυο μια αρκετά δύσκολη υπόθεση. 409
Η λύση του προβλήματος Προκειμένου ο χρήστης να διευκολυνθεί στην αναζήτηση των πληροφοριών που τον ενδιαφέρουν, δημιουργήθηκαν οι κατάλογοι πληροφοριών και οι μηχανές αναζήτησης (Search Engines). Οι κατάλογοι πληροφοριών οργανώνουν την διάσπαρτη πληροφορία με βάση προεπιλεγμένες θεματικές κατηγορίες. Π.χ www.yahoo.com 410
Η λύση του προβλήματος Οι μηχανές αναζήτησης δημιουργούν το δικό τους ευρετήριο μέσα από το οποίο ψάχνουν την πληροφορία που εμείς τους έχουμε ζητήσει. Π.χ www.google.com Η αναζήτηση γίνεται με βάση τη χρήση λέξεων κλειδιών και με την βοήθεια λογικών τελεστών (AND-OR), αλλά και πρόσθετων κριτηρίων (χρονικά, γλωσσικά κλπ) 411
Η λύση του προβλήματος Όμως Οι μηχανές αναζήτησης δεν ψάχνουν σε όλες τις ιστοσελίδες αλλά μόνο σε εκείνες που υπάρχουν στο ευρετήριο τους. Τις περισσότερες φορές δεν υπάρχει αξιολόγηση της πληροφορίας Όλες οι μηχανές αναζήτησης δεν είναι ίδιες. 412
Η μηχανή αναζήτησης Google 413
Θέματα δεοντολογίας: Cookies Τα Internet cookies είναι μικρά αρχεία κειμένου (συνήθως 50 με 150 bytes) που προέρχονται από ένα Web server, και φθάνουν στον Web browser Τα Cookies επιτρέπουν στον server να αποθηκεύσει σημαντικές πληροφορίες σχετικά με προηγούμενες επισκέψεις της συγκεκριμένης τοπικής μηχανής στο συγκεκριμένο server. Για παράδειγμα, ένα cookie μπορεί να περιέχει το username και το password για ένα δικτυακό τόπο, ούτως ώστε δε χρειάζεται να επαναπληκτρολογείται η πληροφορία αυτή από το χρήστη. 414
Θέματα δεοντολογίας: Cookies Αυτές συνεργάζονται με Web Sites ώστε να τους στέλνουν αντίγραφα των cookies κάθε συναλλαγής, και κατά συνέπεια μπορούν να φτιάξουν το προφίλ των συνηθειών του χρήστη Αυτή η πληροφορία μπορεί να χρησιμοποιηθεί για σκοπούς marketing και διαφήμισης Μερικοί άνθρωποι αρέσκονται στην ιδέα να λαμβάνουν διαφημίσεις που σχετίζονται με τα ενδιαφέροντα τους Άλλοι το εκλαμβάνουν ως παραβίαση της ιδιωτικής τους σφαίρας 415
Μηχανές αναζήτησης στον Παγκόσμιο Ιστό Search Engines 416
Μηχανές αναζήτησης (Search Engines) Οι μηχανές αναζήτησης είναι προγράμματα που έχουν σχεδιαστεί για την εύρεση πληροφοριών στο Web News groups Προσωπικούς υπολογιστές (Windows Desktop Search στα windows) Intranets O χρήστης προσδιορίζει κάποιο ερώτημα, και η μηχανή αναζήτησης επιστρέφει τα αποτελέσματα 417
Μέγεθος web και μηχανές αναζήτησης Μία μηχανή αναζήτησης (Google) μπορεί να λαμβάνει και 200 εκατομμύρια ερωτήματα κάθε ημέρα Έχει πληροφορίες (Ιούνιος 2005), για 8.05 δισεκατομμύρια σελίδες web 1.3 δισεκατομμύρια εικόνες Περισσότερο από 1 δισεκατομμύριο Usenet messages Σύνολο 10.4 δισεκατομμύρια πληροφορίες! 418
Κεντρικά της Google, Καλιφόρνια 419
Δορυφορική από ύψος 32m 420
Προσφερόμενες υπηρεσίες από τo Google 421
Αναζήτηση πληροφοριών Αναζήτηση κειμένου Εικόνας Μηνύματος σε Newsgroup Δορυφορικής φωτογραφίας (google earth) 422
Αναζητώντας κείμενο στο Google α’ Γίνετε όσο το δυνατόν σαφέστεροι στις πληροφορίες που αναζητάτε. Οι τρεις όροι σημαίνουν αναζήτηση και με vacation και Hawaii και gold Το google διαγράφει από τους όρους που του δίνετε κάποιες κοινές λέξεις, όπως from, the, καθώς και μερικά απομονωμένα γράμματα και αριθμούς Αν θέλετε να συμπεριληφθούν στην αναζήτηση πρέπει να προτάξετε το + Η να βάλετε όλη την πρόταση σε διπλά εισαγωγικά 423
Αναζητώντας κείμενο στο Google β’ Αν θέλετε να αναζητήσετε μία συγκεκριμένη φράση πρέπει να την περικλείσετε σε εισαγωγικά Αν θέλετε να αποκλείσετε κάποια λέξη βάζετε το – προ αυτής. Π.χ. αν ψάχνετε για το ψάρι bass (πέρκα) και όχι για τον μουσικό όρο πρέπει να γράψετε όπως φαίνεται αριστερά 424
Αναζητώντας κείμενο στο Google γ’ Αν επιλέξετε το κουμπί I’m feeling Lucky το google θα σας πάει στην πρώτη επιλογή από τα αποτελέσματα που επιστρέφει. Αν γράψετε pet lemur dietary needs το Google θα ψάξει και για pet lemur diet needs. Παραλλαγές λέξεων (stemming) 425
Αναζητώντας επιστημονική γνώση Google scholar μπορεί να ανακαλύψει επιστημονικά άρθρα 426
Αναζητώντας εικόνες Αναζήτηση φωτογραφιών με περιεχόμενο: nicosia 427
Αναζητώντας πληροφορίες σε ομάδες συζητήσεων Αναζήτηση σε newsgroups των όρων alfa romeo brera. Το google βρήκε σχετικές πληροφορίες στο newsgroup alt.autos.ferrari 428
Google Earth Δορυφορικές φωτογραφίες από την περιοχή της υδρογείου που θα επιλέξετε 429
Πως λειτουργεί μία μηχανή αναζήτησης; Μία μηχανή αναζήτησης επιτελεί τα παρακάτω βήματα: Crawling Indexing Searching 430
Μηχανές αναζήτησης β’ Crawling O Crawler: Είναι ένα πρόγραμμα που επισκέπτεται εκατομμύρια σελίδων web ακολουθεί όλα τα links κάθε σελίδας που επισκέπτεται 431
Μηχανές αναζήτησης β’ Indexing Διάφορες λέξεις εξάγονται από τις επικεφαλίδες ή από κάποια πεδία που λέγονται meta tags Οι παραπάνω λέξεις αποτελούν τα δεδομένα που θα καταγραφούν σε μία βάση δεδομένων (Indexing database). Google: αποθηκεύει όλη ή τμήμα κάθε σελίδας που επισκέπτεται (cache) καθώς και πληροφορίες για τη σελίδα. Αυτό είναι χρήσιμο όταν η αρχική σελίδα δεν υπάρχει πλέον 432
μηχανές αναζήτησης γ’; Searching (αναζήτηση) Όταν ο χρήστης χρησιμοποιεί μία μηχανή αναζήτησης, σχηματίζει ένα ερώτημα (query), το οποίο αποτελείται από λέξεις κλειδιά Στη συνέχεια η μηχανή αναζήτησης ψάχνει στο ευρετήριο για να βρει τις σελίδες web που ταιριάζουν όσο το δυνατόν περισσότερο στα κριτήρια του χρήστη. Επιστρέφει στο χρήστη ένα κατάλογο αυτών των σελίδων καθώς και μία μικρή περίληψη κάθε σελίδας Η χρησιμότητα μίας μηχανής αναζήτησης εξαρτάται από το πόσο σχετικά είναι τα αποτελέσματα αναφορικά με το ερώτημα του χρήστη Για παράδειγμα μία λέξη ή φράση που αναζητάει ο χρήστης μπορεί να βρίσκεται σε χιλιάδες ή και εκατομμύρια σελίδες. Οπότε πρέπει η μηχανή αναζήτησης να κατατάξει τα αποτελέσματα βάσει κάποιας βαθμολογίας που υποδεικνύει το βαθμό συνάφειας με τις ερωτήσεις του χρήστη 433
Προκλήσεις για τις μηχανές αναζήτησης Το web μεγαλώνει ταχύτερα από ό,τι οποιαδήποτε τεχνολογία μηχανών αναζήτησης μπορεί να κατατάξει Πολλές σελίδες web αλλάζουν συχνά, συνεπώς πρέπει οι μηχανές αναζήτησης να τις επισκέπτονται περιοδικά Ως επί το πλείστον, οι ερωτήσεις αφορούν σε λέξεις κλειδιά (keywords) και τα αποτελέσματα έχουν πολλά false positives Για τους δικτυακούς τόπους που δημιουργούνται δυναμικά μπορεί να είναι δύσκολο ή και αδύνατο να τους καταγράψει ένας web crawler Πολλοί δικτυακοί τόποι, που δημιουργούνται δυναμικά, δεν καταγράφονται από μηχανές αναζήτησης αυτό το φαινόμενο είναι γνωστό ως το αόρατο web (invisible web) Μερικές μηχανές δεν ταξινομούν τα αποτελέσματα βάσει της σχετικότητας με τις ερωτήσεις του χρήστη, αλλά ανάλογα με τα χρήματα που έχει πληρώσει το site Μερικά site μετέρχονται τεχνασμάτων, ώστε η μηχανή αναζήτησης να τα εμφανίζει ως έχοντα υψηλή συσχέτιση 434