Επιστήμη υπολογιστών_Βασικές έννοιες

Page 1

Επιστήμη Υπολογιστών: Βασικές έννοιες

PDF που παράγονται χρησιμοποιώντας την ανοικτού περιεχομένου εργαλειοθήκη mwlib. Βλέπε http://code.pediapress.com/ για περισσότερες πληροφορίες. PDF generated at: Mon, 20 Dec 2010 17:19:44 UTC


Περιεχόμενα Άρθρα Επιστήμη υπολογιστών

Access control list Access control list

BIOS

1 7 7 9

BIOS

9

Carputer

11

Carputer

Demoscene Demoscene

11 14 14

Hellenic Quest

18

Hellenic Quest

18

INRIA INRIA

Labelflash Labelflash

Microsoft SQL Server Microsoft SQL Server

21 21 22 22 23 23

Original equipment manufacturer

27

Original equipment manufacturer

27

RFID RFID

Αναδρομή Αναδρομή

Ανάλυση προγράμματος (πληροφορική) Ανάλυση προγράμματος (πληροφορική)

28 28 29 29 30 30


Αντικειμενικό αρχείο Αντικειμενικό αρχείο

Αποσφαλμάτωση Αποσφαλμάτωση

Βιβλιοθήκη (υπολογιστές) Βιβλιοθήκη (υπολογιστές)

Βιβλιόφωνο Βιβλιόφωνο

Βιομετρία Βιομετρία

Δεδομένα Δεδομένα

Δείκτης (πληροφορική) Δείκτης (πληροφορική)

Δεκαεξαδικό σύστημα αρίθμησης Δεκαεξαδικό σύστημα αρίθμησης

Διαδίκτυο Διαδίκτυο

Διαδραστικότητα Διαδραστικότητα

Διεπαφή Διεπαφή

Δυαδικό σύστημα Δυαδικό σύστημα

Δυναμική ανάλυση Δυναμική ανάλυση

Δυναμική δέσμευση μνήμης

31 31 32 32 34 34 38 38 40 40 41 41 42 42 43 43 45 45 54 54 55 55 56 56 59 59 61


Δυναμική δέσμευση μνήμης

61

Εικονικοποίηση

64

Εικονικοποίηση

64

Εισαγωγή δεδομένων Εισαγωγή δεδομένων

Εννοιολογικό πλαίσιο

67 67 68

Εννοιολογικό πλαίσιο

68

Εξαγωγή πληροφοριών

70

Εξαγωγή πληροφοριών

Εξισορρόπηση φόρτου (υπολογιστές) Εξισορρόπηση φόρτου (υπολογιστές)

Επεξεργασία δεδομένων Επεξεργασία δεδομένων

70 73 73 74 74

Επικοινωνία γραμμής ρεύματος

75

Επικοινωνία γραμμής ρεύματος

75

Επίλυση προβλημάτων (τεχνητή νοημοσύνη) Επίλυση προβλημάτων (τεχνητή νοημοσύνη)

Ηλεκτρονική μάθηση

78 78 86

Ηλεκτρονική μάθηση

86

Ηλεκτρονικό βιβλίο

87

Ηλεκτρονικό βιβλίο

Θεωρία Δραστηριοτήτων

87 88

Θεωρία Δραστηριοτήτων

88

Ιστορία των υπολογιστών

94

Ιστορία των υπολογιστών

Κάρτα ήχου Κάρτα ήχου

94 103 103


Κατάλογος (υπολογιστές) Κατάλογος (υπολογιστές)

Κατασκευή ιστοσελίδων Κατασκευή ιστοσελίδων

Κβαντική πληροφορική Κβαντική πληροφορική

Κεντρική Μονάδα Επεξεργασίας Κεντρική Μονάδα Επεξεργασίας

Κιλομπάιτ

108 108 109 109 113 113 114 114 125

Κιλομπάιτ

125

Κιμπιμπάιτ

127

Κιμπιμπάιτ

Κοιλάδα του Πυριτίου Κοιλάδα του Πυριτίου

Κυτταρικά αυτόματα

127 129 129 130

Κυτταρικά αυτόματα

130

Κωδικοποίηση Huffman

131

Κωδικοποίηση Huffman

Λογισμικό

131 133

Λογισμικό

133

Μεμπιμπάιτ

136

Μεμπιμπάιτ

136

Μεταδεδομένα

137

Μεταδεδομένα

137

Μη ντετερμινιστικό πεπερασμένο αυτόματο Μη ντετερμινιστικό πεπερασμένο αυτόματο

Μηχανή αναζήτησης

140 140 143


Μηχανή αναζήτησης

143

Μηχατρονική

144

Μηχατρονική

144

Μικροελεγκτής

151

Μικροελεγκτής

151

Μικροεπεξεργαστής Μικροεπεξεργαστής

156 156

Μοντέλο Αποδοχής Τεχνολογίας

157

Μοντέλο Αποδοχής Τεχνολογίας

157

Μοντέλο δεδομένων Μοντέλο δεδομένων

159 159

Μοντελοποίηση δεδομένων

160

Μοντελοποίηση δεδομένων

160

Νόμος του Μουρ Νόμος του Μουρ

Ντετερμινιστικό πεπερασμένο αυτόματο Ντετερμινιστικό πεπερασμένο αυτόματο

Περιφερειακή συσκευή Περιφερειακή συσκευή

161 161 162 162 168 168

Πληροφορική

169

Πληροφορική

169

Προγραμματισμός

172

Προγραμματισμός

Προεπεξεργαστής Προεπεξεργαστής

172 173 173

Προσωρινή μνήμη (υπολογιστές)

176

Προσωρινή μνήμη (υπολογιστές)

176


Στατική ανάλυση

177

Στατική ανάλυση

177

Στοίβα κλήσεων

180

Στοίβα κλήσεων

180

Συμβολομεταφραστής

187

Συμβολομεταφραστής

187

Συνέχεια (πληροφορική)

188

Συνέχεια (πληροφορική)

Σύστημα αρχείων

188 196

Σύστημα αρχείων

196

Σχεδίαση για Όλους

198

Σχεδίαση για Όλους

198

Τεκμήριο (υπολογιστές)

205

Τεκμήριο (υπολογιστές)

Τεχνητή νοημοσύνη Τεχνητή νοημοσύνη

Τσιπσετ Τσιπσετ

Υλικό υπολογιστών Υλικό υπολογιστών

Υπερκείμενο Υπερκείμενο

Υπερμέσο Υπερμέσο

205 206 206 211 211 213 213 214 214 216 216

Υπολογισμός

217

Υπολογισμός

217

Υπολογιστικό σύστημα

219


Υπολογιστικό σύστημα

Χρόνος αδράνειας Χρόνος αδράνειας

219 220 220

Ψηφιακό σήμα

221

Ψηφιακό σήμα

221

Παραπομπές Πηγές άρθρων και Συνεισφέροντες

223

Πηγές Εικόνων, Άδειες και Συνεισφέροντες

226

Άδειες Άρθρου Άδεια

227


Επιστήμη υπολογιστών

Επιστήμη υπολογιστών Επιστήμη υπολογιστών ονομάζεται η θετική και εφαρμοσμένη επιστήμη η οποία ερευνά τα θεωρητικά θεμέλια των εννοιών της πληροφορίας και του υπολογισμού, καθώς και την τεχνολογική υλοποίηση και εφαρμογή τους σε, συνήθως ηλεκτρονικά και ψηφιακά, αυτοματοποιημένα υπολογιστικά συστήματα[1] [2] [3] . Ο όρος σχετίζεται πολύ στενά με την πληροφορική, ενώ ως διακριτή επιστήμη προέκυψε κατά τη δεκαετία του 1940 χάρη στην εύρεση των μαθηματικών ιδιοτήτων του υπολογισμού και την κατασκευή ηλεκτρονικών υπολογιστικών μηχανών.

Η επιστήμη υπολογιστών ερευνά τα θεωρητικά θεμέλια των εννοιών της πληροφορίας και του υπολογισμού, καθώς και την τεχνολογική υλοποίηση και εφαρμογή τους σε αυτοματοποιημένα υπολογιστικά συστήματα. Η επιστήμη υπολογιστών έχει πολλούς κλάδους, κάποιοι εκ των οποίων δίνουν έμφαση στον υπολογισμό συγκεκριμένων αποτελεσμάτων (όπως τα γραφικά υπολογιστών), κάποιοι σχετίζονται με ιδιότητες υπολογιστικών προβλημάτων (όπως η θεωρία πολυπλοκότητας), ενώ άλλοι επικεντρώνονται στις προκλήσεις που παρουσιάζονται κατά την υλοποίηση υπολογισμών. Για παράδειγμα, η θεωρία γλωσσών προγραμματισμού μελετά προσεγγίσεις για την περιγραφή υπολογισμών, ενώ ο προγραμματισμός υπολογιστών εφαρμόζει συγκεκριμένες γλώσσες προγραμματισμού για να λύσει προκαθορισμένα υπολογιστικά προβλήματα. Ο κλάδος της αλληλεπίδρασης ανθρώπου-υπολογιστή ασχολείται με το ζήτημα της ευχρηστίας και προσβασιμότητας των υπολογιστών, όσον αφορά το ευρύ κοινό. Ο Έντσγκερ Ντάικστρα (Edsger Dijkstra) είπε: Η επιστήμη υπολογιστών έχει τόση σχέση με τους υπολογιστές, όση έχει η αστρονομία με το τηλεσκόπιο. Ο φυσικός Ρίτσαρντ Φάινμαν (Richard Feynman) είπε: Η επιστήμη υπολογιστών δεν είναι τόσο παλιά όσο η φυσική, υστερεί χρονικά μερικούς αιώνες. Ωστόσο, αυτό δεν σημαίνει ότι υπάρχουν λιγότερα στο πιάτο του επιστήμονα των υπολογιστών απ' ότι σε αυτό του φυσικού: μπορεί να είναι νεότερη αλλά είχε μια πολύ πιο έντονη γέννηση! Από ορισμένους έχει υποστηριχθεί ότι η επιστήμη υπολογιστών, με κεντρικό άξονα τις έννοιες της πληροφορίας, του υπολογισμού και του αυτοματισμού, συνθέτει σε ένα διακριτό σύνολο τις μεθοδολογικές παραδόσεις των θετικών επιστημών («μαθηματική» προσέγγιση), των φυσικών επιστημών («εμπειρική» προσέγγιση) και των επιστημών μηχανικών (προσέγγιση «μηχανικού»)[4] . Ακόμα έχει διατυπωθεί η άποψη πως η έρευνα για τον φυσικό κόσμο, η οποία κατά παράδοση διακρίνεται μεθοδολογικά σε «θεωρητικές» προσεγγίσεις (κομψές, αφηρημένες, στηριγμένες σε απλουστευτικές υποθέσεις και λογικούς κανόνες) και σε «πειραματικές» προσεγγίσεις (εστιασμένες στον θόρυβο, στην τυχαιότητα και στα σφάλματα του πραγματικού κόσμου), με την επιστήμη υπολογιστών συμπληρώνεται από μία τρίτη προσέγγιση βασισμένη στην in silico προσομοίωση φυσικών φαινομένων. Η προσέγγιση αυτή συνθέτει τις ιδιότητες και ενσωματώνει τα χαρακτηριστικά και των δύο προηγούμενων[5] .

1


Επιστήμη υπολογιστών

Όρια και συγγενή πεδία Η επιστήμη υπολογιστών συσχετίζεται στενά με άλλα επιστημονικά πεδία τα οποία, παρά τις σημαντικές διαφορές όσον αφορά την έμφαση και τις ιστορικές ρίζες, επικαλύπτονται με επιμέρους κλάδους της. • • • • • • • • • •

Κυβερνητική Κρυπτογραφία Γλωσσολογία Λογική Στατιστική Εφαρμοσμένα μαθηματικά Ηλεκτρονική Επιστήμη ηλεκτρολόγου μηχανικού Γνωσιακή επιστήμη Κβαντικός υπολογισμός

Ορισμένοι κάνουν διάκριση μεταξύ επιστήμης υπολογιστών και μηχανικής υπολογιστών, με την τελευταία να αποτελεί έναν συναφή κλάδο ασχολούμενο με τη σχεδίαση και υλοποίηση υλικού υπολογιστών. Στον βαθμό που το υλικό αυτό είναι ηλεκτρονικής φύσης, η μηχανική υπολογιστών μελετάται και από την ηλεκτρονική μηχανική. Με παρόμοια λογική έχει προταθεί και η διάκριση μεταξύ επιστήμης υπολογιστών και μηχανικής λογισμικού, όπου ο κλάδος αυτός επικεντρώνεται στην ανάπτυξη λογισμικού για συγκεκριμένες εφαρμογές με τυποποιημένες μεθόδους. Ωστόσο δεν υπάρχει καθολικά αποδεκτή διαφοροποίηση μεταξύ προγραμματισμού υπολογιστών και μηχανικής λογισμικού, με τα περισσότερα πανεπιστημιακά τμήματα να ακολουθούν στην πράξη ένα μεικτό πρόγραμμα σπουδών το οποίο συμπεριλαμβάνει και τη μηχανική λογισμικού και τη μηχανική υπολογιστών. Η επιστήμη υπολογιστών με την ευρεία έννοια περίπου ταυτίζεται με την πληροφορική, ωστόσο η τελευταία μπορεί να ιδωθεί και υπό συμφραζόμενα τα οποία δεν περιλαμβάνουν πραγματικές τεχνολογικές εφαρμογές όπως οι ηλεκτρονικοί υπολογιστές, αφορούν όμως παραγωγή, διαχείριση, αξιοποίηση, αποθήκευση ή μετάδοση πληροφοριών. Από την άλλη, η επιστήμη υπολογιστών με τη στενή έννοια, όπως αυτή που υιοθετεί ο Έντσγκερ Ντάικστρα στο διάσημο απόφθεγμά του, περίπου ταυτίζεται με τη θεωρητική πληροφορική και τα συναφή μαθηματικά της θεμέλια. Σε αυτή την περίπτωση μόνο, συνήθως θεωρείται πως η πληροφορική συμπεριλαμβάνει τη μηχανική λογισμικού, τα υπολογιστικά συστήματα και τη μηχανική υπολογιστών (δείτε π.χ. το [6]), ενώ η επιστήμη υπολογιστών όχι.

Ιστορικό Η ιστορία της επιστήμης υπολογιστών ξεκινά με ποικίλες προσπάθειες κατασκευής υπολογιστικών μηχανών με στόχο την αυτοματοποίηση αριθμητικών υπολογισμών, πολύ πριν από την ανάπτυξη των σύγχρονων ψηφιακών υπολογιστών. Η επιστήμη αυτή εμφανίστηκε ως πεδίο των διακριτών μαθηματικών κατά τη δεκαετία του 1930. Στη συνέχεια, ο ENIAC (1946) υπήρξε ο πρώτος επαναπρογραμματιζόμενος ηλεκτρονικός υπολογιστής γενικού σκοπού. Οι υπολογιστές που προηγήθηκαν του ENIAC ήταν είτε μηχανικές κατασκευές ειδικού σκοπού (π.χ. μηχανισμός των Αντικυθήρων), είτε ηλεκτρομηχανολογικές κατασκευές (π.χ. Ζ3), είτε ηλεκτρονικές συσκευές που δεν είχαν όμως καθολικές δυνατότητες υπολογισιμότητας (π.χ. Colossus). Από τα τέλη της δεκαετίας του 1950, οπότε καθιερώθηκε η αρχιτεκτονική φον Νόιμαν των σύγχρονων ψηφιακών υπολογιστών, η αυτονομημένη πλέον πληροφορική άρχισε να αναπτύσσεται σε μεγάλο βαθμό ανεξάρτητα από τις ίδιες τις μηχανές. Αυτό σταδιακά έχει οδηγήσει σε εξελίξεις που πολλοί εκλαμβάνουν συνολικά ως «επανάσταση της πληροφορίας» και «κοινωνία της γνώσης». Σήμερα η πληροφορική ασχολείται με ένα ευρύ φάσμα θεμάτων, όπως η ανάπτυξη αλγορίθμων για την αποτελεσματική επίλυση προβλημάτων, η κατασκευή και βελτίωση συστημάτων λογισμικού και υλικού

2


Επιστήμη υπολογιστών υψηλής απόδοσης, η ταχεία και ασφαλής διακίνηση πληροφοριών μέσω τηλεπικοινωνιακών δικτύων, η δημιουργία συστημάτων διαχείρισης δεδομένων, η διερεύνηση του τρόπου με τον οποίο ο άνθρωπος διατυπώνει συλλογισμούς, η προσομοίωση της λειτουργίας του ανθρώπινου εγκεφάλου κλπ. Έτσι, η πληροφορική συνδέεται άμεσα με όλες τις θετικές επιστήμες, αλλά και με πολλές άλλες όπως η φιλοσοφία, η ψυχολογία, η γλωσσολογία, η νομική, η ιατρική, τα οικονομικά και η διοίκηση επιχειρήσεων.

Κλάδοι της επιστήμης υπολογιστών Μαθηματικά θεμέλια • • • • • • • •

Αριθμητική ανάλυση Άλγεβρα Μπουλ Διακριτά μαθηματικά Θεωρία γράφων Μαθηματική λογική Θεωρία πεδίων Πιθανότητες Στατιστική

• Επεξεργασία σήματος • Θεωρία πληροφοριών

Θεωρητική πληροφορική • • • • • • • • •

Θεωρία τυπικών γλωσσών Θεωρία υπολογισιμότητας Θεωρία πολυπλοκότητας Ανάλυση αλγορίθμων Κατανεμημένος υπολογισμός Δομές δεδομένων Θεωρία γλωσσών προγραμματισμού Κρυπτογραφία Θεωρία ουρών

Υλικό (Δείτε επίσης μηχανική υπολογιστών) • • • • • • •

Μικροπρογραμματισμός Αριθμητική υπολογιστών Μικροεπεξεργαστές Αρχιτεκτονική υπολογιστών Μνήμη υπολογιστή Λογική σχεδίαση Ολοκληρωμένα κυκλώματα • VLSI

3


Επιστήμη υπολογιστών

4

Υπολογιστικά συστήματα (Δείτε επίσης υπολογιστικά συστήματα) • Δίκτυα υπολογιστών • • • • •

• Κατανεμημένα συστήματα Παράλληλα συστήματα Λειτουργικά συστήματα Ενσωματωμένα συστήματα Συστήματα πραγματικού χρόνου Κινητά συστήματα

Λογισμικό • Μηχανική λογισμικού • Προγραμματισμός • Γλώσσες προγραμματισμού • Παράλληλος προγραμματισμός • Μεταγλωττιστές • Βάσεις δεδομένων

Εφαρμογές υπολογιστών • • • • • • • • • •

Γραφικά υπολογιστή Αλληλεπίδραση ανθρώπου-υπολογιστή Τεχνητή νοημοσύνη Αναγνώριση προτύπων Βιοπληροφορική Προσομοίωση μοντέλων Επεξεργασία ήχου Επεξεργασία εικόνας και βίντεο Συμπίεση δεδομένων Ρομποτική

Επιστήμονες με σημαντική συμβολή Πρόσωπο

Επίτευγμα

Ραμόν Λουλ

(Ramon Llull): Για τις πολλαπλές μηχανές συμβολικής αναπαράστασης, την εργασία του Ars Combinatoria, και τις πρωτοποριακές του ιδέες της συμβολικής αναπαράστασης και χειρισμού των συμβόλων αυτών για την παραγωγή γνώσης. Επηρέασε σημαντικά τον Λάιμπνιτς.

Γκότφριντ Βίλχελμ Λάιμπνιτς

(Gottfried Wilhelm Leibniz): Η μεγάλη συνεισφορά του στη συμβολική λογική, κυρίως με την εργασία του Calculus Ratiocinator, επηρέασε σημαντικά τον Γκότλομπ Φρέγκε, του οποίου η ανάπτυξη του κατηγορηματικού λογισμού πρώτης τάξης ήταν κρίσιμη για τη θεωρητική θεμελίωση της επιστήμης υπολογιστών.

Τσαρλς Μπάμπατζ

(Charles Babbage): Σχεδίασε και κατασκεύασε το πρωτότυπο ενός μηχανικού υπολογιστή, ενώ στη συνέχεια σχεδίασε την, ακόμα πιο ισχυρή, αναλυτική μηχανή.

Άντα Λάβλεϊς

(Ada Lovelace): Κόρη του Λόρδου Βύρωνα και υπήρξε βοηθός του Τσαρλς Μπάμπατζ. Μελέτησε επιστημονικά την έννοια του υπολογισμού και με την εργασία της Προσχέδιο μιας αναλυτικής μηχανής ανέλυσε το έργο του Τσαρλς Μπάμπατζ. Η γλώσσα προγραμματισμού Ada ονομάστηκε έτσι προς τιμήν της.

Γκότλομπ Φρέγκε

(Friedrich Ludwig Gottlob Frege): Η ανάπτυξη του κατηγορηματικού λογισμού πρώτης τάξης από τον Φρέγκε αποτέλεσε σημαντικό προαπαιτούμενο για την ανάπτυξη της θεωρίας υπολογισμού.


Επιστήμη υπολογιστών

Κούρτ Γκέντελ

(Kurt Gödel): Ιστορική υπήρξε η απόδειξή του (1931) ότι η αριθμητική βασισμένη σε αξιώματα του Πεάνο δεν μπορεί να είναι και λογικά συνεπής και πλήρης στον κατηγορηματικό λογισμό πρώτης τάξης. Ο Wittgenstein στην ύστερή του περίοδο ανέπτυξε ισχυρή κριτική στο έργο του.

Αλόνζο Τσερτς

(Alonso Church): Συνεισέφερε στη θεμελίωση της θεωρίας υπολογισμού, ιδιαίτερα με την ανάπτυξη του λ-λογισμού και τη διερεύνηση μέσω αυτού του προβλήματος της μη-αποφασισιμότητας.

Στίβεν Κολ Κλέινι

(Stephen Cole Kleene): Πρωτοποριακή δουλειά με τον Αλόνζο Τσερτς στον λ-λογισμό, με τον οποία τέθηκαν τα θεμέλια την θεωρίας υπολογισμού.

Άλαν Τούρινγκ

(Alan Turing): Θεμελιώδεις υπήρξαν οι συνεισφορές του στη θεωρία υπολογισμού, κι επομένως στην αυτονόμηση της επιστήμης υπολογιστών από τα μαθηματικά, στην αυστηρή διατύπωση των εννοιών του υπολογισμού και του αλγορίθμου μέσω της Μηχανής Τούρινγκ, καθώς και στον σχεδιασμό του Pilot ACE.

Μόρις Ουΐλκς

(Maurice Wilkes): Κατασκεύασε τον πρώτο υπολογιστή με αποθηκευμένο πρόγραμμα, ενώ του αποδίδονται και πολλές ιδέες δομών υψηλού επιπέδου γλωσσών προγραμματισμού.

Κόνραντ Τσούζε

(Konrad Zuse): Κατασκεύασε τον ψηφιακό υπολογιστή Z3, τον πρώτο που λειτούργησε με το δυαδικό σύστημα αρίθμησης, για τον οποίο επινόησε επίσης και τη γλώσσα προγραμματισμού υψηλού επιπέδου, Plankalkül.

Τζον Βίνσεντ Ατανάσοφ

(John Vincent Atanasoff): Κατασκεύασε τον πρώτο ηλεκτρονικό ψηφιακό υπολογιστή, τον ABC. Αντίθετα με τον ENIAC, ο οποίος θεωρείται ο πρώτος πλήρης ηλεκτρονικός υπολογιστής που σχεδιάστηκε να είναι Τούρινγκ-πλήρης, ο ABC δεν ήταν προγραμματίσιμος.

Τζον Μάκλεϊ and Τζέι Πρέσπερ Έκερτ

(John Mauchly και J. Presper Eckert): Σχεδίασαν και κατασκεύασαν τον ENIAC, τον πρώτο ηλεκτρονικό Τούρινγκ-πλήρη υπολογιστή και τον UNIVAC I, τον πρώτο διαθέσιμο εμπορικά υπολογιστή στις Η.Π.Α.. Η εργασία τους στον ENIAC στο Πανεπιστήμιο της Πενσυλβάνια επηρέασε σημαντικά τον Τζον φον Νόιμαν στο Ίδρυμα Προηγμένων Ερευνών, καθώς η εργασία τους στην αρχιτεκτονική υπολογιστών ήταν πρωτοποριακή.

Τζον φον Νόιμαν

(John von Neumann): Επινόησε την αρχιτεκτονική φον Νόιμαν, πάνω στην οποία βασίζονται οι σύγχρονοι υπολογιστές. Ακόμα εφηύρε τα κυτταρικά αυτόματα.

Κλοντ Σάνον

(Claude E. Shannon): Υπήρξε ο θεμελιωτής της θεωρίας πληροφορίας και το έργο του βοήθησε στην έναρξη της σύγχρονης εποχή των τηλεπικοινωνιών.

Τζον Μπάκους

(John Backus): Επινόησε τη FORTRAN (Formula Translation), την πρώτη πρακτική υψηλού επιπέδου γλώσσα προγραμματισμού και τη Μορφή Backus-Naur, ένα μετασυντακτικό για Γραμματικές χωρίς συμφραζόμενα, με το οποίο περιέγραψε τη σύνταξή της.

Νίκλαους Βιρτ

(Niklaus Wirth): Επινόησε τη γλώσσα προγραμματισμού Pascal, την οποία ονόμασε έτσι προς τιμήν του Γάλλου πρωτοπόρου Μπλεζ Πασκάλ (Blaise Pascal).

Τζέιμς Κούλεϊ και Τζον Τάκει

(James W. Cooley και John W. Tukey): Επινόησαν έναν τρόπο για τον υπολογισμό του Ταχέως Μετασχηματισμού Φουριέ

Όλε-Γιόχαν Ντάαλ και Κρίστεν Νάιγκααρντ

(Ole-Johan Dahl, Kristen Nygaard): Επινόησαν την πρώτη αντικειμενοστρεφή γλώσσα προγραμματισμού Simula (Simulation Language).

Έντσγκερ Ντάικστρα

(Edsger Dijkstra): Σημαντική είναι η προσφορά του στην ανάλυση αλγορίθμων, στην απαξίωση της προγραμματιστικής εντολής Goto, στην επινόηση των σημαφόρων κλπ. Ονομάσθηκε πατέρας του παράλληλου προγραμματισμού και υπήρξε πρωτοπόρος στη μελέτη των λειτουργικών συστημάτων.

Τόνυ Χόαρ

(Tony Hoare): Ανέπτυξε την τυπική γλώσσα Communicating Sequential Processes (CSP) και τον αλγόριθμο ταξινόμησης Quicksort.

Γκρέις Μάρει Χόπερ

(Grace Murray Hopper): Η Χόπερ έκανε πρωτοποριακή δουλειά στην υποστήριξη της αναγκαιότητας των γλωσσών προγραμματισμού υψηλού επιπέδου, που αποκάλεσε αυτόματο προγραμματισμό. Έγραψε επίσης τον Α-0 μεταγλωττιστή που επηρέασε την COBOL (Commercial Business Oriented Language).

Κένεθ Άιβερσον

(Kenneth Iverson): Επινόησε την APL (A Programming Language) και συνεισέφερε στον κλάδο της αλληλεπίδρασης ανθρώπου-υπολογιστή.

Τζάσεκ Καρπίνσκι

(Jacek Karpinski): Ανάπτυξε τον πρώτο διαφορικό αναλυτή που χρησιμοποιούσε τρανζίστορ, και επίσης ανέπτυξε έναν από τους πρώτους αλγόριθμους αναγνώρισης εικόνων και χαρακτήρων. Τέλος, είναι ο εφευρέτης του πρώτου μίνι-υπολογιστή, του K-202.

Ντόναλντ Κνουθ

(Donald Knuth): Για τη σειρά βιβλίων The Art of Computer Programming και το λογισμικό για τυπογραφία TeX.

5


Επιστήμη υπολογιστών

Τζον Μακάρθι

(John McCarthy): Επινόησε την LISP (List Programming), μια συναρτησιακή γλώσσα προγραμματισμού.

Τιμ Μπέρνερς-Λι

(Tim Berners-Lee): Επινόησε τον Παγκόσμιο Ιστό World Wide Web στο Διαδίκτυο.

Αναφορές [1] Department of Computer and Information Science, Guttenberg Information Technologies: «Computer science is the study of information» (http:/ / www. njit. edu/ v2/ archivecatalog/ undergraduate/ 91/ 19-und. html) [2] Computer Science Department, College of Saint Benedict, Saint John's University: «Computer science is the study of computation» (http:/ / www. csbsju. edu/ computerscience/ curriculum) [3] Massey University: «Computer Science is the study of all aspects of computer systems, from the theoretical foundations to the very practical aspects of managing large software projects» (http:/ / study. massey. ac. nz/ major. asp?major_code=2010& prog_code=93068) [4] Know your Discipline: Teaching the Philosophy of Computer Science (http:/ / informingscience. org/ jite/ documents/ Vol6/ JITEv6p105-122Tedre266. pdf) [5] Flake Gary William, The Computational Beauty of Nature, 2000, The MIT Press [6] http:/ / www. csd. uoc. gr/ index. jsp?tID=studies& sub=2& exp=2c Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το science άρθρο computer science (http:/ / en. wikipedia. org/ wiki/ computer) της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 3.0 (http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/ ). ( science ιστορικό/συντάκτες (http:/ / en. wikipedia. org/ wiki/ computer)).

Εξωτερικοί σύνδεσμοι • Το Iνστιτούτο Πληροφορικής του Ιδρύματος Τεχνολογίας και Έρευνας (ΙΤΕ) (http://www.ics.forth.gr/ index-gr.html)

6


7

Access control list Access control list Στην επιστήμη των υπολογιστών, μία Access Control List (ACL) ή στα ελληνικά Λίστα Ελέγχου Πρόσβασης είναι λίστα με δικαιώματα που χαρακτηρίζουν κάποιο συγκεκριμένο αντικείμενο. Η λίστα αυτή καθορίζει με ακρίβεια ποιός μπορεί να εκτελέσει κάποια εργασία πάνω σε ένα αντικείμενο και τι είδους εργασία θα είναι αυτή. Σε μία τυπική Access control list, κάθε καταχώρηση στην λίστα περιλαμβάνει δύο πεδία: το υποκείμενο και την πράξη που επιτρέπεται να κάνει πάνω στο αντικείμενο. Για παράδειγμα μία καταχώρηση στην Access control list ενός αρχείου μπορεί να είναι (Γιάννης, διαγραφή). Αυτό σημαίνει ότι ο Γιάννης έχει το δικαίωμα να διαγράψει το εν λόγω αρχείο. Όταν ένας χρήστης προσπαθήσει να εκτελέσει κάποια εργασία πάνω σε ένα αντικείμενο, τότε το σύστημα ελέγχει την Access control list του αντικειμένου για να διαπιστώσει εάν πράγματι ο συγκεκριμένος χρήστης διαθέτει τα απαραίτητα δικαιώματα. Εάν τα διαθέτει, τότε η εργασία εκτελείται. Στην αντίθετη περίπτωση η εργασία απορρίπτεται από το σύστημα.

ACLs στα συστήματα αρχείων Στα διάφορα συστήματα αρχείων (filesystems) η πρόσβαση σε κάθε αρχείο ελέγχεται συνήθως με ACLs. Συγκεκριμένα, όταν κάποια διεργασία προσπαθήσει να διαβάσει, να γράψει ή να εκτελέσει κάποιο αρχείο, τότε το σύστημα ελέγχει το όνομα του χρήστη που ξεκίνησε την διεργασία και ανάλογα επιτρέπει την πρόσβαση στο αρχείο ή όχι. Η λίστα αυτή καθ' αυτή είναι μία απλή δομή δεδομένων, συνήθως ένας πίνακας, που περιλαμβάνει αντιστοιχίσεις δικαιωμάτων σε κατηγορίες χρηστών. Οι καταχωρήσεις αυτές ονομάζονται Access Control Entries (ACE) στα λειτουργικά συστήματα Linux, Microsoft Windows, OpenVMS και Mac OS X. Μία ACL μπορεί επίσης να καθορίζει κατά πόσο κάποιος χρήστης θα έχει το δικαίωμα να αλλάξει την ίδια την ACL προσθέτοντας ή αφαιρώντας δικαιώματα από άλλους χρήστες. Τέλος, αξίζει να αναφερθεί πως κάθε κατηγορία λειτουργικού συστήματος συνήθως περιέχει μία διαφορετική υλοποίηση των ACLs σε σχέση με τα άλλα λειτουργικά συστήματα.

Δικτυακές ACLs Οι Access Control Lists χρησιμοποιούνται επίσης στα δίκτυα υπολογιστών. Στην περίπτωση αυτή αποτελούν ένα σύνολο κανόνων που υπαγορεύουν ποιοί υπολογιστές του δικτύου θα έχουν πρόσβαση σε ποιά συγκεκριμένη υπηρεσία. Access Control Lists έχουν οι δρομολογητές του δικτύου και οι διάφοροι servers που προσφέρουν υπηρεσίες. Αυτές οι λίστες μπορούν να ρυθμιστούν ούτως ώστε να φιλτράρουν τόσο τα εισερχόμενα όσο και τα εξερχόμενα πακέτα, παίζοντας κατά κάποιο τρόπο παρόμοιο ρόλο με αυτόν των firewalls.


Access control list

Δείτε επίσης • • • • •

Άδειες συστήματος αρχείων Firewall Αρχείο (υπολογιστές) Δρομολογητής Server

Εξωτερικές συνδέσεις • Οι ACLs στο Linux [1] • Οι ACLs στα MS Windows .NET [2]

Παραπομπές [1] http:/ / www. suse. de/ ~agruen/ acl/ linux-acls/ online/ [2] http:/ / msdn2. microsoft. com/ en-us/ library/ ms229742. aspx

8


9

BIOS BIOS Στην επιστήμη υπολογιστών, το Basic Input/Output System (BIOS), στα Ελληνικά Βασικό Σύστημα Εισόδου/Εξόδου, γνωστό και ως το «BIOS του συστήματος» (System BIOS), είναι ένα συμβατικό πρότυπο που προσδιορίζει το λογισμικό διεπαφής για IBM συμβατούς υπολογιστές. Το BIOS είναι υλικολογισμικό (firmware) εκκίνησης (boot), και είναι ο αρχικός κώδικας που εκτελείται κατά την έναρξη της λειτουργίας του υπολογιστή. Η πρωταρχική λειτουργία του BIOS είναι ο εντοπισμός, ο έλεγχος (POST) και η αρχικοποίηση συσκευών του συστήματος όπως ο προσαρμογέας Τυπική αρχική οθόνη εισόδου στη διαχείριση του BIOS οθόνης, ο σκληρός δίσκος, ο οδηγός δισκέτας και άλλο υλικό. Αυτό γίνεται ώστε να μεταβεί το μηχάνημα σε μια δεδομένη κατάσταση, έτσι ώστε το λογισμικό που είναι αποθηκευμένο σε συμβατά αποθηκευτικά μέσα να μπορεί να φορτωθεί, να εκτελεστεί, και να αποκτήσει τον έλεγχο του υπολογιστή. Στους σύγχρονους υπολογιστές, το λογισμικό αυτό είναι το λειτουργικό σύστημα, στο οποίο το BIOS μεταβιβάζει τον έλεγχο μετά την ολοκλήρωση της εκτέλεσης του κώδικά του. Η διαδικασία αυτή είναι γνωστή ως εκκίνηση (Αγγλ. booting ή booting up, που αποτελεί συντόμευση του "bootstrapping"). Το λογισμικό του BIOS βρίσκεται αποθηκευμένο σε ένα ολοκληρωμένο κύκλωμα της μητρικής κάρτας, που αποτελείται από μνήμη flash στα πιο σύγχρονα μοντέλα μητρικών καρτών (παλιότερα το τσιπ του BIOS ήταν EPROM). Το λογισμικό αυτό περιλαμβάνει μια μικρή βιβλιοθήκη βασικών λειτουργιών εισόδου/εξόδου οι οποίες μπορούν να κληθούν για τη λειτουργία και τον έλεγχο περιφερειακών συσκευών, όπως το πληκτρολόγιο, η οθόνη και ούτω καθεξής. Σε ορισμένα μοντέλα μητρικών το τσιπ του BIOS είναι αφαιρούμενο, έτσι ώστε να μπορεί να αντικατασταθεί σε περίπτωση καταστροφής του χωρίς να αλλαχθεί ολόκληρη η μητρική κάρτα. Το τσιπ είναι επαναπρογραμματιζόμενο και σε ορισμένες περιπτώσεις, όπως για παράδειγμα όταν συνδεθεί στον υπολογιστή κάποιο υλικό για το οποίο δεν υπάρχει υποστήριξη στο BIOS, μπορεί να ανανεωθεί στην τελευταία έκδοση με τη χρήση δισκέτας ή ειδικού λογισμικού μέσω Ιντερνέτ (το λεγόμενο «φλασάρισμα» του BIOS). Το BIOS,μέσα στο πλαίσιο ελέγχου που πραγματοποιεί, έχει την δυνατότητα να πληροφορήσει το χρήστη σχετικά με τυχόν προβλήματα που παρουσιάζονται. Κατά την εκκίνηση του υπολογιστή, δεδομένης της ύπαρξης ενός μεγαφώνου ή ενός βομβητή, η μητρική πλακέτα στέλνει ένα σήμα το οποίο ο χρήστης αντιλαμβάνεται με ένα "μπιπ". Αυτό που πραγματοποιείται είναι ο έλεγχος της μητρικής πλακέτας, της μνήμης RAM, του επεξεργαστή και της κάρτας γραφικών. Αυτά είναι τα βασικά συστήματα του υπολογιστή. Χωρίς αυτά ο υπολογιστής δεν εκκινεί. Με σκοπό ο χρήστης να γνωρίζει πως αυτά τα στοιχεία λειτουργούν κανονικά, πριν εμφανιστεί η μαύρη οθόνη της εκκίνησης του υπολογιστή, η μητρική κάρτα στέλνει ένα σήμα στο βομβητή ή το μεγάφωνο. Όταν όλα λειτουργούν σωστά, πριν ανάψει η οθόνη ακούγεται ένα μόνον "beep'. Αυτό καταδεικνύει ότι τα απαραίτητα συστήματα και υποσυστήματα του υπολογιστή είναι εγκατεστημένα και λειτουργούν σωστά. Σε αντίθετη περίπτωση, δηλαδή στην περίπτωση που κάτι δεν λειτουργεί σωστά από τα


BIOS

10

ζωτικά συστήματα του υπολογιστή, θα ακουστούν περισσότερα "μπιπ", εκτός αν η μητρική πλακέτα έχει καταστραφεί εντελώς και δεν είναι σε θέση να στείλει το μικρό αυτό σήμα. Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το άρθρο BIOS [2] [1] FDL και την CC-BY-SA 3.0 . (ιστορικό/συντάκτες ).

Παραπομπές [1] http:/ / en. wikipedia. org/ wiki/ BIOS [2] http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/

[1]

της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την GNU


11

Carputer Carputer Το Carputer είναι όρος που αναφέρεται σε ένα PC εγκατεστημένο σε ένα αυτοκίνητο. Εναλλακτικά χρησιμοποιείται επίσης ο όρος CarPC. Τα συστήματα Carputer μπορούν να αποτελούνται από έναν μεγαλύτερο υπολογιστή γραφείου, ένα λάπτοπ ή άλλο μικρότερο υπολογιστή μορφή-παράγοντα. Οι χρήστες των Carputer είναι η χομπιστική κατηγορία της βιομηχανίας της εμπορικής τηλεπληροφορικής. Κατωτέρω είναι ένας κατάλογος πραγμάτων που ένα carputer μπορεί (ενδεχομένως) να κάνει. Αυτός ο κατάλογος δεν είναι από τη φύση του ποτέ πλήρης.

Χαρακτηριστικό σύστημα Ένα χαρακτηριστικό σύστημα Carputer αποτελείται από τέσσερα μέρη, τη μηχανή, την οθόνη, το υλικό διεπαφών και την παροχή ηλεκτρικού ρεύματος.

Μηχανή Η μηχανή είναι η καρδιά ενός συστήματος carputer. Με βάση τον προϋπολογισμό, οι χρήστες μπορούν εύκολα να ενσωματώσουν και να εγκαταστήσουν ουσιαστικά οποιοδήποτε υπολογιστή. Το 2000 - όταν οι τιμές υλικού ήταν ακόμα αρκετά υψηλές και τα lap-top κόστιζαν χιλιάδες ευρώ, τα πρώτα συστήματα carputer βασίστηκαν στο υλικό, όπως: 400 MHz eMachine desktops. Οι τιμές έχουν πέσει κάτω σε τόσο μεγάλο μέρος στις μικρής μορφής μητρικές κάρτες ώστε ακόμη και εκείνοι, με μικρό προϋπολογισμό να μπορούν να φτιάξουν μια μικρών δυνατοτήτων μηχανή με λίγα χρήματα. Επίσης, υπάρχει μια αναπτυσσόμενη αγορά χρησιμοποιημένου carputer υλικού για πώληση - που βοηθά τον αρχάριο να αντέξει οικονομικά στη δημιουργία ενός συστήματος και να αποκτήσει εμπειρία. Το 2006, τα μέσα carputer έτρεχαν με ταχύτητες CPU που προσέγγιζαν 1 GHz. Η χαρακτηριστική χρήση μνήμης ποικίλλει από 256MB ως 1GB. Όπως πάντα, η απόδοση και η ευελιξία θα είναι μια λειτουργία των διαθέσιμων επεξεργαστών και μνήμης.

οθόνη Πρέπει να είστε σε θέση να δώσετε εντολές στο σύστημα carputer σας, κατά προτίμηση, αυτή η διαδικασία πρέπει να είναι όσο το δυνατόν ευκολότερη. Τα αρχικά carputers (προ-2000) χρησιμοποίησαν οθόνες LCD για να προβάλουν και να παίξουν μουσική, οι εντολές στελνονταν χαρακτηριστικά στο carputer με τη βοήθεια ενός πληκτρολογίου. Όχι μακριά μετά από την αρχική εμφάνιση του carputer, πολλοί άρχισαν να χειρίζονται ασύρματα τις μηχανές τους. Αυτό ήταν το χρόνο που οι μικρές οθόνες TV έγιναν προσιτές. Η πλειοψηφία των πρώτων (προσιτών) carputer οθονών είχαν τηλεοπτική εισαγωγή RCA μόνο. Οι σύγχρονες οθόνες έχουν κάνει άλματα σε σχέση με μερικά έτη πριν. Η πιο κοινή σύγχρονη οθόνη που οι χρήστες χρησιμοποιούν είναι η οθόνη αφής VGA 7 ιντσών. Τα χαρακτηριστικά χρησιμοποιούμενα πρότυπα είναι οθόνες Lilliput ή Xenarc.


Carputer

Υλικό διεπαφών Εκτός από την οθόνη, πολλές άλλες επιλογές υπάρχουν για να αλληλεπιδράσουν με ένα CarPC, με έναν τρόπο που δεν αποσπά τον οδηγό από το σημαντικότερο στόχο την οδήγηση. Το 2005, οι χρήστες άρχιζαν να πειραματίζονται με το Heads Up Display, αν και αυτό συνήθως τοποθετείται παρά ανήκει στη μαζική παραγωγή. Οι Bluetooth συσκευές χρησιμοποιούνται συνήθως στο περιβάλλον CarPC για να συνδεθούν ασύρματα με GPS συσκευές, κινητά τηλέφωνα, ή πληκτρολόγια που χρησιμοποιούνται για να διαχειριστούν και να ολοκληρώσουν το σύστημα. Άλλες εναλλακτικές λύσεις για τον έλεγχο περιλαμβάνουν τη χρήση είτε του IR είτε του RF τηλεχειριστηρίου κάνοντας την οδήγηση ευκολότερη.

Τροφοδοσία Η πιο βασική ερώτηση των νέων σε Carputers είναι πώς να τροφοδοτήσει τη μηχανή. Οι χρήστες lap-top έχουν μια ευκολότερη επιλογή, τη χρήση των εσωτερικών μπαταριών. Όλες οι άλλες μηχανές Carputer χρειάζονται τη μια από δύο μεθόδους για τη τροφοδοσία. Μια μέθοδος είναι η χρήση ενός αναστροφέα, άλλη είναι η χρήση μιας παροχής ηλεκτρικού ρεύματος συνεχές ρεύμα-συνεχές ρεύμα.

Βασικά χαρακτηριστικά γνωρίσματα Μερικά από τα χαρακτηριστικά γνωρίσματα/τις ιδέες κατωτέρω μπορεί να είναι παράνομο να τρέξουν σε ένα όχημα ενώ είναι σε λειτουργία. • Παραγωγή μουσικής από CDs, DVDs, τον σκληρό δίσκο ( MP3s , άλλα συμπιεσμένα αρχεία) ή εξωτερική συσκευή, (USB, PCI FM ραδιο δέκτη, κ.λπ...) • Παραγωγή βίντεο από DVDs , VCDs ή από τον σκληρό δίσκο. • GPS : Εύρεση τοποθεσιών και διαδρομής, κ.λπ. (σημείωση: οι σκληροί δίσκοι είναι ευαίσθητοι στη δόνηση, έτσι η οδήγηση με το carputer σας ανοιγμένο μπορεί να μικρύνει τη ζωή του σκληρού δίσκου. • δορυφορικό ραδιόφωνο http://en.wikipedia.org/wiki/Satellite_radio ραδιόφωνο μέσω των εξωτερικών δεκτών(Και Sirius και XM διαθέσιμα). • ευκολία λειτουργίας μέσω της οθόνης αφής http://en.wikipedia.org/wiki/Touchscreen • Διαδίκτυο μέσω ενός επιλέξιμου κινητού τηλεφώνου ή μιας ασύρματης 802.11 σύνδεσης. • Hands free έλεγχος κινητού τηλεφώνου μέσω λογισμικού με το bluetooth. • Άλλες υποστηρίξεις εξωτερικής εφαρμογής.

Ενδιάμεσα χαρακτηριστικά γνωρίσματα • Επίδειξη βίντεο από το αυτοκίνητο με τοποθέτηση ψηφιακής φωτογραφικής μηχανής ή κάμερας (οι υπέρυθρες φωτογραφικές μηχανές ή κάμερες είναι διαθέσιμες τη νύχτα). • Καταγραφή βίντεο από μια webcam mini-dv camera και με δυνατότητα αποθήκευσης βίντεο στο carputer για μελέτη. • Συνδέστε την OBD-II του αυτοκίνητου σας σε πραγματικό χρόνο και πάρτε στοιχεία όσον αφορά όλες τις διαγνωστικές πληροφορίες που είναι διαθέσιμες (στροφές/θερμοκρασία/ταχύτητα/κ.α.),πάρτε τους κώδικες λάθους αμέσως, μην αναρωτηθείτε ποτέ τι ένα φως έλεγχος-μηχανής είναι πάλι. • Wardriving: Χρησιμοποιήστε την 802.11b http://en.wikipedia.org/wiki/802.11b ή την g ασύρματη σύνδεση και το GPS για να εντοπίζουν και να καταγράφουν τις θέσεις των ασύρματων δρομολογητών. • Παιχνίδια, με τη βοήθεια εξομοιωτή.

12


Carputer • Κατεβάστε την κυκλοφορία/τις καιρικές πληροφορίες από το Διαδίκτυο (από το σπίτι μέσω WIFI χρήσης ή συνδεθείτε μέσω κινητού τηλεφώνου). • Συνδεθείτε με ένα κινητό τηλέφωνο ή άλλη συσκευή χρησιμοποιώντας Bluetooth (χρήσιμο για επικοινωνία φωνητική και δεδομένων και συγχρονιστείτε με το PDA σας, κ.λπ....) διασύνδεση με το τιμόνι. • Παροχή δυνατότητας nightvision με τις υπέρυθρες ψηφιακές φωτογραφικές μηχανές ή κάμερες. • Ασύρματος συγχρονισμός των αρχείων μεταξύ υπολογιστή γραφείου και carputer. • Χρησιμοποίηση broadband internet τηλεφώνου με cellular data card.

Προηγμένα χαρακτηριστικά γνωρίσματα • Διαδικασία βίντεο από το αυτοκίνητο σε πραγματικό χρόνο με δυνατότητα χρησιμοποίησης λογισμικού αναγνώρισης εικόνας. • Χρησιμοποιώντας το GPS , αποθηκεύστε την θέση εναντίον της ταχύτητας και του χρόνου της ημέρας. Αυτό θα μπορούσε να φορτωθεί σε μια συνεργάσιμη περιοχή για την πρόβλεψη των χρόνων ταξιδιού εναντίον του χρόνου της ημέρας (πολύ χρήσιμη στις περιοχές όπου η συμφόρηση αυτοκινητόδρομων είναι μεταβλητή) • Παροχή σε πραγματικό χρόνο της θέσης του οχήματος.

Εξωτερικές συνδέσεις • • • •

Άρθρο για carputer [1] Άρθρο για carputer [2] http://www.carputermania.gr/Forum carputer] Η μεγαλύτερη κοινότητα carputer στον Ιστό [3]

Παραπομπές [1] http:/ / tovima. dolnet. gr/ print_article. php?e=B& f=12480& m=C24& aa=1 [2] http:/ / www. in. gr/ Articles/ Article. asp?ArticleId=20060& CurrentTopId=19952& IssueTitle=RAM [3] http:/ / www. mp3car. com

13


14

Demoscene Demoscene Η demoscene είναι μια υποκουλτούρα τέχνης υπολογιστών η οποία ειδικεύεται στην παραγωγή demos (επιδείξεων), τα οποία είναι προγράμματα υπολογιστή και αποτελούνται από γραφικά που σχεδιάζονται σε πραγματικό χρόνο στην οθόνη, ζωγραφισμένα γραφικά και μουσική, συνδυασμένα και συγχρονισμένα αρμονικά μεταξύ τους με σκοπό να επιδείξουν τόσο τις δυνατότητες του υπολογιστή στον οποίο τρέχουν, όσο και τις ικανότητες των ανθρώπων που το έφτιαξαν τόσο ως μονάδες, όσο και σαν ομάδα. Θα μπορούσε κανείς να πει ότι ένα demo θυμίζει σε πολλούς τομείς ένα video clip, μία παραγωγή προς τέρψη του θεατή. Η demoscene πρωτοεμφανίστηκε κατά την οκτάμπιτη εποχή σε υπολογιστές όπως ο Commodore 64, o ZX Spectrum και ο Amstrad CPC, και έγινε δημοφιλής κατά την άνοδο των δεκαεξάμπιτων και τριανταδυάμπιτων οικιακών υπολογιστών (η Amiga και το Atari ST). Στα πρώιμα χρόνια, τα demos είχαν ισχυρή σύνδεση με το σπάσιμο λογισμικού. Όταν ένα σπασμένο πρόγραμμα ξεκίναγε, ο cracker ή η ομάδα του έπαιρναν τα εύσημα με μια γραφική εισαγωγή η οποία καλείται "crack intro" (συντομογραφία cracktro). Αργότερα, η παραγωγή εισαγωγών και αυτόνομων demos εξελίχθηκε σε μια νέα υποκουλτούρα ανεξάρτητη της πειρατικής.

Προέλευση Την εποχή των πρώτων οικιακών υπολογιστών στους οποίους άνθισε η βιομηχανία των παιχνιδιών (Commodore 64, Amstrad 464, Spectrum), άνθισε παράλληλα και η πειρατεία των παιχνιδιών. Ταλαντούχοι προγραμματιστές (προερχόμενοι κατά κύριο λόγο από Σκανδιναβικές χώρες) σχημάτιζαν groups όπου "έσπαγαν" την προστασία των παιχνιδιών, και διένειμαν τα παιχνίδια στην αγορά σαν πειρατικά. Καθώς αυτό άρχισε να γίνεται μία επικερδής "επιχείρηση", ο ανταγωνισμός μεταξύ αυτών των groups μεγάλωσε και τους έδωσε έναυσμα πέραν από το να σπάνε και να διανείμουν τα παιχνίδια γρηγορότερα, να διαφημίσουν και το ίδιο τους το group. Στο λιγοστό χώρο που έμενε ελεύθερος στη δισκέτα του παιχνιδιού λοιπόν, έβαζαν μία μικρή εισαγωγή που συνήθως αποτελείτο από ένα εφέ (προγραμματισμένο πάντα), κάποιο όμορφο γραφικό, ένα μικρό μουσικό κομμάτι και αρκετό κείμενο που διαφήμιζε το group και πολλές φορές υποβίβαζε τα ανταγωνιστικά groups. Επόμενο ήταν ότι ο ανταγωνισμός των groups μεταφέρθηκε και σε αυτό τον τομέα, στο ποιο group θα έχει την καλύτερη εισαγωγή στις διανομές του. Επόμενο ήταν λοιπόν, τα groups αυτά να επιστρατεύσουν ταλαντούχα άτομα σε προγραμματισμό, γραφικά και μουσική ώστε να φτιάχνουν ακόμα καλύτερες εισαγωγές στον μικρότερο δυνατό χώρο (που δεν ξεπέρναγε τα 4kb). Έτσι λοιπόν πέραν της σκηνής του "cracking" των παιχνιδιών, γεννήθηκε και η σκηνή των εισαγωγών, τα λεγόμενα "Intros" (από το "Introductions"), η πρώιμη μορφή των σημερινών Demos. Με τον καιρό, τα άτομα που έφτιαχναν Intros, έβλεπαν ότι ήταν πολύ πιο γοητευτική η ενασχόληση με τη δημιουργία όμορφων και εντυπωσιακών Intros. Έτσι, σιγά σιγά τα άτομα αυτά αποσχίστηκαν από την πειρατεία και ασχολήθηκαν αποκλειστικά με αυτό. Ελλείψει του παιχνιδιού από την δισκέτα, είχαν πλέον στη διάθεση τους πολύ περισσότερο χώρο για να φτιάξουν πολύ πιο εντυπωσιακά και σύνθετα πράγματα. Άρχισαν να δημιουργούνται groups στην Ευρώπη όπου κάνανε μόνο αυτό και δείχνανε τη δουλειά τους σε άλλα groups χωρίς να αποσκοπούν σε κάποιο οικονομικό όφελος, λαμβάνοντας μόνο την επιβεβαίωση από άλλα άτομα της σκηνής όταν κάνανε κάτι που ήταν φαινομενικά αδύνατο να μπορεί να γίνει στους περιορισμένης δύναμης - τότε - υπολογιστές. Τα groups αυτά στην πλειοψηφία τους αποτελούνταν από έναν η περισσότερους προγραμματιστές, μουσικούς και


Demoscene γραφίστες. Οι παραγωγές πλέον δεν αποτελούσαν εισαγωγές για κάτι άλλο (παιχνίδι), έτσι χάσανε τον χαρακτηρισμό Intros και πλέον μετονομαστήκανε σε Demos. Τα κανάλια επικοινωνίας εκείνη την εποχή ήταν δύσκολα και λιγοστά. Διαδίκτυο δεν υπήρχε οπότε οι παραγωγές κυκλοφορούσαν είτε από χέρι σε χέρι, είτε σε BBS (Bulletin Board System) οι οποίες πολύ συχνά βρίσκονταν σε διαφορετικές χώρες και οδηγούσαν σε φουσκωμένους από υπεραστικά τηλεφωνήματα λογαριασμούς. Οι συνθήκες αυτές, οδήγησαν τα άτομα της σκηνής να διοργανώνουν ετήσια parties, όπου συγκεντρωνόντουσαν τα groups, και δείχνανε τις παραγωγές τους, και ενίοτε διαγωνιζόντουσαν μεταξύ τους για το ποιο group είχε φτιάξει το καλύτερο Demo. Η σκηνή μεγάλωνε, τα parties πληθαίνανε, και τα Demos διαδόθηκαν σε όλη την Ευρώπη, και στους "πολύ ψαγμένους" της Αμερικής. Την μεγάλη τους άνθιση την γνώρισαν με την έλευση της Amiga, ενός επαναστατικού τότε υπολογιστή με εξωπραγματικές δυνατότητες ισχύος, γραφικών και ήχου για την εποχή. Εντυπωσιακές τεχνικές, εφέ, γραφικά, design και εμπνευσμένη μουσική, μετέτρεψαν τα Demos σε μικρές μορφές ψηφιακής τέχνης.

Τα parties Οι διαγωνισμοί μεταξύ των groups στα parties είχαν γίνει πλέον δεδομένοι. Όλο και περισσότερα groups πηγαίνανε στα parties (τα οποία κατά γενικό κανόνα διαρκούσαν 3 μέρες). Αρχικά σε υπόγεια, σπίτια και μικρούς νοικιασμένους χώρους. Όσο μεγάλωνε η συμμετοχή τόσο μεγαλώνανε και τα parties, και από την τότε εποχή των υπογείων και των parties των 10-20 ατόμων, έχουν φτάσει σήμερα να διεξάγονται σε στάδια Hockey, με πολλούς και μεγάλους σπόνσορες, και να φιλοξενούν πάνω από 5000 άτομα. Σχεδόν κάθε Ευρωπαϊκή χώρα υιοθέτησε το θεσμό του Demo Party και δημιούργησε το δικό της σε ετήσια βάση. Κάποια από αυτά τα parties όπως το "Assembly" της Φινλανδίας, απέκτησε τόσο μεγάλο κύρος που κάθε χρόνο θεωρείται η Μέκκα των απανταχού Demosceners, όπου η προβολή ενός Demo σε αυτό και μία καλή θέση στο διαγωνισμό αποτελεί διεθνή αναγνώριση για το group που το έφτιαξε, καθώς επίσης και επιβράβευση με δώρα ή χρηματικά έπαθλα προερχόμενα κατά κανόνα από τους σπόνσορες του Party.

Η demoscene της Eλλάδας Η ελληνική demoscene δημιουργήθηκε αργά. Ήταν βέβαια κρυφός θεατής από την περίοδο της Amiga με λιγοστούς οπαδούς, αλλά αποφάσισε να κάνει το πρώτο βήμα στα μέσα της δεκαετίας του 1990. Το 1995, έγινε το πρώτο ελληνικό demoparty στην Πάτρα και ονομάστηκε "The Gardening". Οι συμμετοχές σε demos ήταν ελάχιστες, όπως ελάχιστες ήταν και οι συμμετοχές στους παράπλευρους διαγωνισμούς που κατά παράδοση διεξαγόντουσαν πλέον σε όλα τα parties (όπως διαγωνισμοί intros σε 4kb, σε 64kb, διαγωνισμοί μουσικής, γραφικών, animation, παιχνιδιών και πολλοί άλλοι «παράξενοι» διαγωνισμοί όπως πετάγματος δισκέτας ή φαγώματος μερέντας). Τα επόμενα χρόνια, το 1996 και το 1997, το Gardening απέδειξε ότι εν τέλει είχε δημιουργηθεί ελληνική demoscene, και υπήρχαν λιγοστά αλλά αξιόλογα demogroups που ήταν σε θέση να φτιάξουν εντυπωσιακά demos. Οι συμμετοχές περισσότερες σε όλους τους διαγωνισμούς, ο ανταγωνισμός μεγαλύτερος, η παρουσία χορηγών αλλά και η ύπαρξη μεγαλύτερου χώρου για τη διεξαγωγή του The Gardening (θέατρο φοιτητικής εστίας πανεπιστημίου Πατρών) ώστε να μπορεί να φιλοξενήσει περί τα 100 άτομα με τους υπολογιστές τους, αριθμός εντυπωσιακός για τα Ελληνικά δεδομένα. Μετά το Gardening '97, η ελληνική σκηνή εξαφανίστηκε. Η μεταβατική περίοδος των PC όπου πολλές νέες τεχνολογίες άλλαξαν τα δεδομένα (με σημαντικότερη την εμφάνιση των επιταχυντών τρισδιάστατων γραφικών). Η αλλαγή δεν άφησε όμως ανεπηρέαστη ούτε την παγκόσμια demoscene. Για ένα διάστημα 3 χρόνων, υπήρχε η γενικότερη εντύπωση ότι η demoscene είχε πεθάνει.

15


Demoscene Ο καιρός έδειξε όμως ότι η demoscene έκανε απλά διάλειμμα. Το 2000, ξεκίνησαν πάλι τα demoparties στην Ελλάδα και συνεχίζονται μέχρι και σήμερα. Το demoparty React από το 2002 ως το 2004 αποτελεί τη συνέχεια του Gardening και διεξάγεται σταθερά στο ίδιο μέρος στην Πάτρα, όπως και το Pixelshow 2005 και 2007. Επίσης υπάρχει το Digital Nexus που διεξάχθηκε το 2001 στο Εθνικό Μετσόβιο Πολυτεχνείο. Καινούρια groups σχηματίστηκαν, καινούρια demos εμφανίστηκαν και με τη βοήθεια και του Internet η σκηνή γνωρίζει πλέον τη δεύτερη άνθισή της.

Τα σημερινά demos Τα σημερινά demos όχι μόνο εκμεταλλεύονται τις νέες τεχνολογίες των PC, αλλά πολλές φορές τις απαιτούν. Πλέον το 95% των demos απαιτεί ύπαρξη επιταχυντή τρισδιάστατων γραφικών (τουλάχιστον Geforce 2 ή αντίστοιχη κάρτα της ATI) και επεξεργαστή άνω των 800Mhz. Η μεγαλύτερη πηγή για demos στεγάζεται στο site pouet.net [1] όπου μπορεί ο καθένας να κατεβάσει όλα τα τελευταία demos καθώς και παλιότερα, όπως επίσης να διαβάσει και σχόλια των υπολοίπων demosceners για αυτά.

Χαρακτηριστικά Οι κυριότερες διαφορές ενός demo/intro από ένα video clip ή ένα animation σε 3dstudio είναι ότι η απεικόνιση στην οθόνη δεν προέρχεται από ένα έτοιμο αρχείο δεδομένων, αλλά αναλαμβάνει ο επεξεργαστής και η κάρτα γραφικών να απεικονίσουν το demo σε πραγματικό χρόνο, όπως ακριβώς κάνουν για ένα παιχνίδι. Σαν αποτέλεσμα αυτού, τα demos καταλαμβάνουν πολύ μικρότερο χώρο στο δίσκο από ότι ένα animation ή video clip. Υπάρχουν πολλά εντυπωσιακά intros τα οποία έχουν μέγεθος 64kb και απεικονίζουν γραφικά και ήχο τα οποία αν ήταν video της ίδιας ποιότητας θα χρειαζόταν πολλά megabytes, ίσως και gigabytes για να απεικονιστούν. Τέλος, έχουν πολύ μεγαλύτερη καλλιτεχνική αξία, καθώς έχουν ωριμάσει και πλέον μπορούν να χαρακτηριστούν ως πραγματική ψηφιακή τέχνη.

Εξωτερικοί σύνδεσμοι Διεθνής demoscene • pouet.net [1], βάση δεδομένων demos, με συνδέσμους για κατέβασμα. • scene.org [2], μη κερδοσκοπική οργάνωση με στόχο την παροχή της «σκηνής ηλεκτρονικής τέχνης» με ένα φόρουμ για επικοινωνία και μοίρασμα της δουλειάς της.

Ελληνική demoscene • demoscene.gr [3], ιστότοπος για την ελληνική demoscene (Internet Archive, 2/2008) • deus.gr [4], ιστότοπος του demogroup dEUS • asd.gr [5], ιστότοπος του demogroup Andromeda Software Development

16


Demoscene

Παραπομπές [1] [2] [3] [4] [5]

http:/ / pouet. net http:/ / www. scene. org/ http:/ / web. archive. org/ web/ 20080214230934/ http:/ / www. demoscene. gr/ http:/ / www. deus. gr/ http:/ / www. asd. gr/

17


18

Hellenic Quest Hellenic Quest Το Hellenic Quest είναι ένας γνωστός αστικός μύθος που κυκλοφόρησε και αναπαρήχθη από ελληνικές ιστοσελίδες και άλλα Μέσα Μαζικής Ενημέρωσης. Σύμφωνα με άρθρο που δημοσιεύθηκε στην εφημερίδα Ημερησία στις 9 Οκτωβρίου ο τίτλος της είδησης, από το περιοδικό της 2003, είναι πρόγραμμα ηλεκτρονικού υπολογιστή εκμαθήσεως Ελληνικής Πρεσβείας, Ελληνική Παιδεία της ελληνικής γλώσσας για αγγλόφωνους και ισπανόφωνους[1] . Σύμφωνα με το άρθρο, το πρόγραμμα παράγεται από την εταιρεία λογισμικού Apple και διανέμεται από το τηλεοπτικό δίκτυο CNN. Το δημοσίευμα καταγράφει επίσης πως «η μέθοδος διδασκαλίας του στηρίζεται στην προβολή πληροφοριών στην οθόνη του ηλεκτρονικού υπολογιστή με ταυτόχρονη μετάδοση ήχου και κινούμενης εικόνας». Το πρωτότυπο άρθρο γρήγορα εξαπλώθηκε στο Διαδίκτυο, και εμπλουτιζόταν συνεχώς με νέες πληροφορίες. Μια εμπλουτισμένη μορφή του άρθρου βρίσκεται επίσης και στην ιστοσελίδα της ελληνικής πρεσβείας στην Ουάσινγκτον των Ηνωμένων Πολιτειών, η οποία δημοσίευσε το εμπλουτισμένο άρθρο σε περιοδικό της στις 4 Δεκεμβρίου 2003[2] . Η είδηση δημοσιεύθηκε επίσης σε πολλές άλλες εφημερίδες και ιστοσελίδες (χαρακτηριστική είναι η δημοσίευση από την Ένωση Ελλήνων Φυσικών[3] ), χωρίς επιπλέον στοιχεία. Αν και η αναπαραγωγή του από την ελληνική πρεσβεία προσδίδει στο άρθρο κύρος και εμπιστοσύνη για την αλήθεια των γεγονότων, είναι φανερό πως πρόκειται για αστικό μύθο, καθώς το άρθρο περιέχει ανακριβή στοιχεία και λάθη, με χονδροειδείς υπερβολές όσον αφορά την επιστήμη των υπολογιστών και την ελληνική γλώσσα.

Κριτική και επικρότηση Στοιχεία Επειδή δεν υπάρχει καμία επίσημη ανακοίνωση από της δύο εταιρείες τις οποίες αναφέρει το δημοσίευμα, δεν μπορεί να υπάρξει και επισήμως αποδοχή ή άρνηση της είδησης. Ωστόσο, ακόμη και αρκετά χρόνια μετά από την είδηση, η αναζήτηση στην ιστοσελίδα του CNN [4] και της Apple [5] για το "Hellenic Quest" δεν εμφανίζει κανένα αποτέλεσμα. Στην περίπτωση του CNN, μάλιστα, παρόλο που ο όρος Hellenic Quest είναι ανάμεσα στις πιο δημοφιλείς αναζητήσεις του Διαδικτύου που περιέχουν τον όρο "CNN"[6] ακόμη δεν έχει γίνει καμία απολύτως ανακοίνωση, αλλά το γεγονός αγνοείται πλήρως εδώ και χρόνια. Ένα άλλο λάθος του εμπλουτισμένου κειμένου αφορά την δήλωση του προέδρου της Apple Τζον Σκάλι, «Αποφασίσαμε να προωθήσουμε το πρόγραμμά εκμαθήσεως της Ελληνικής επειδή η κοινωνία μας χρειάζεται ένα εργαλείο που θα της επιτρέψει ν' αναπτύξει την δημιουργικότητα της, να εισάγει νέες ιδέες και θα της προσφέρει γνώσεις περισσότερες από όσες ο άνθρωπος μπορούσε ως τώρα ν' ανακαλύψει» (πρωτότυπη σύνταξη και ορθογραφία). Ο Τζον Σκάλι έπαψε να εργάζεται για την εταιρεία Apple από το 1993[7] , ενώ η είδηση αναφέρεται στο 2003, δέκα χρόνια μετά.


Hellenic Quest

Η Ελληνική γλώσσα Το κείμενο της αμερικάνικης πρεσβείας αναφέρεται επίσης σε υπεροχή της Ελληνικής γλώσσας έναντι των άλλων γλωσσών ως καταλληλότερη γλώσσα για έναν ηλεκτρονικό υπολογιστή. Συγκεκριμένα, αναφέρει πως «Το ενδιαφέρον για την Ελληνική προέκυψε από τη διαπίστωση των επιστημόνων πληροφορικής και υπολογιστών ότι οι Η/Υ προχωρημένης τεχνολογίας δέχονται ως "νοηματική" γλώσσα μόνον την Ελληνική.» (πρωτότυπη σύνταξη και ορθογραφία) Με την έννοια «νοηματική», εξηγείται παρακάτω πως εννοούνται γλώσσες στις οποίες οι λέξεις έχουν πρωτογένεια (όπως για παράδειγμα η λέξη τηλεόραση, προέρχεται από τα συνθετικά τηλέ + όραση) κάτι το οποίο, ωστόσο συμβαίνει σε έναν συγκεκριμένο βαθμό στις περισσότερες γλώσσες σήμερα. Επιπλέον, οι υπολογιστές δεν χρειάζεται σε καμία περίπτωση να λειτουργήσουν με μια τέτοια γλώσσα καθώς στον προγραμματισμό των υπολογιστών (όσον αφορά τα προγράμματα λογισμικού), χρειάζονται λιγότερες από 100 λέξεις, οι οποίες μάλιστα είναι δεσμευμένες και δεν μεταβάλλονται, όπως θεωρεί ο συγγραφέας του κειμένου, και είναι αρκετές ακόμη και για τις πιο περίπλοκες δομές προγραμμάτων οι οποίες δεν έχουν καν πρακτικές εφαρμογές. Πέρα από το Hellenic Quest, το κείμενο επαινεί την Ελληνική γλώσσα με πρόσθετες ειδήσεις όπως το ότι «οι Ισπανοί ευρωβουλευτές ζήτησαν να καθιερωθεί η Ελληνική ως επίσημη γλώσσα της Ε.Ε., διότι "το να μιλά κανείς για Ε.Ε. (εννοείται Ευρωπαϊκή Ένωση) χωρίς την Ελληνική είναι σα να μιλά σ' ένα τυφλό για χρώματα". (πρωτότυπη σύνταξη και ορθογραφία) Οι Ισπανοί ευρωβουλευτές, ωστόσο, δεν έκαναν καμία αίτηση για αλλαγή της επίσημης γλώσσας της ευρωπαϊκής ένωσης, πόσο μάλλον την σχετική δήλωση την οποία το άρθρο υπονοεί πως έκαναν.

Επαληθευσιμότητα Η μη εγκυρότητα του κειμένου, ωστόσο, μπορεί να επιβεβαιωθεί επίσης από το γεγονός πως η είδηση κυκλοφορεί σχεδόν μόνο σε ελληνικές ιστοσελίδες και ελάχιστες αγγλικών άλλων γλωσσών. Ξένα ειδησεογραφικά πρακτορεία δεν κάλυψαν ποτέ την συγκεκριμένη είδηση. Το κείμενο, συνήθως με την εμπλουτισμένη του μορφή συνεχίζει μέχρι σήμερα να υποστηρίζεται και να κυκλοφορεί σε νέα αντίγραφά στο διαδίκτυο, καθώς πέφτει στα χέρια όλο και περισσότερων ανθρώπων. Μέχρι στιγμής πολλοί είναι εκείνοι που υποστηρίζουν τα γεγονότα που περιγράφονται παρά το γεγονός πως λάθη και ανακρίβειες στο κείμενο είναι προφανείς, μιας και ουσιαστικά στοιχεία για την ανακρίβεια της είδησης δεν υπάρχουν από επίσημες πηγές, όπως είναι η ίδια η Apple και το CNN, οι οποίες ωστόσο δεν ασχολήθηκαν ποτέ όχι μόνο με την ανακοίνωση ενός τέτοιου προγράμματος αλλά και με την διάψευση του μιας και διαδίδεται μεταξύ Ελλήνων.

Διάδοση Στις 27 Ιανουαρίου του 2008 ο υπουργός Εθνικής Παιδείας και Θρησκευμάτων Ευριπίδης Στυλιανίδης αναπαρήγαγε τον μύθο κατά τη διάρκεια εναρκτήριας ομιλίας του στα πλαίσια ετήσιων μαθητικών αγώνων επιχειρηματολογίας, σε μια προσπάθειά του να αποδείξει την σπουδαιότητα της ελληνικής γλώσσας. Η ομιλία έγινε στον χώρο της Παλαιάς Βουλής και απέσπασε τα επικριτικά σχόλια του τύπου.[8] [9] [10] [11]

Πηγές [1] Εκμάθηση της ελληνικής γλώσσας μέσω του CNN (http:/ / www. imerisia. gr/ article. asp?catid=4667& subid=2& PubID=106098& word=hellenic+ quest) Το άρθρο στην εφημερίδα Ημερησία. [2] Το άρθρο, όπως δημοσιεύτηκε στο περιοδικό της ελληνικής πρεσβείας (http:/ / www. greekembassy. org/ Embassy/ files/ hellenic_quest04-12-20030. pdf). [3] Η είδηση στην Ε.Ε.Φ. (αρχειοθετημένη στο web.archive.org) (http:/ / web. archive. org/ web/ */ http:/ / www. eef. gr/ news_id. asp?news_id=52& cat_id=20) [4] http:/ / search. cnn. com/ pages/ search. jsp?query=hellenic%20quest [5] http:/ / www. apple. com/

19


Hellenic Quest

[6]

(Αγγλικά) Οι δημοφιλέστερες αναζητήσεις στο Google που περιέχουν τον όρο CNN (http://www.resourceterminal.com/frame.

aspx?u=http:/ / landing. domainsponsor. com?a_id=1637& amp;domainname=resourceterminal. com& amp;adultfilter=off& amp;popunder=off& r=PSID=23+ DOMAIN+ SPONSOR) από το resourceterminal.com [7] (Αγγλικά) Βιογραφία του John Sculley (http:/ / www. nndb. com/ people/ 139/ 000026061/ ) από την NNDB. [8] Ρέοντας εντός του εντέρου (άρθρο στα Νέα 1/2/2008, της επικ. καθηγ. Φιλοσοφίας Βάσως Κιντή). (http:/ / www. tanea. gr/ default. asp?pid=2& ct=4& artid=54515) Ανακτήθηκε 1/2/2009 [9] Το εθνικιστικό «σκονάκι» του υπουργού Παιδείας (άρθρο στην Καθημερινή 15/2/2008). (http:/ / news. kathimerini. gr/ 4dcgi/ _w_articles_columns_1_15/ 02/ 2008_259283) Ανακτήθηκε 1/2/2009 [10] Ευριπίδης Στυλιανίδης, Υπουργός Σκοταδισμού και Θρησκευμάτων (http:/ / www. sarantakos. com/ language/ stylianidis. html) [11] ((i)) Indymedia :: Athens :: Newswire :: Ο υπουργός παιδείας παπαγαλάκι του ΛΑΟΣ (http:/ / athens. indymedia. org/ front. php3?lang=el& article_id=823353)

• Σειρά άρθρων για το Hellenic Quest (http://www.sarantakos.com/language/hquest.html) από τις σελίδες του Νίκου Σαραντάκου

20


21

INRIA INRIA Το Institut national de recherche en informatique et en automatique (INRIA) (Ελληνικά: Εθνικό Ινστιτούτο Έρευνας στην Πληροφορική και τον Αυτοματισμό) είναι ένα εθνικό ινστιτούτο της Γαλλίας που εστιάζει στην επιστήμη υπολογιστών, τη θεωρία ελέγχου και τα εφαρμοσμένα μαθηματικά. Ιδρύθηκε το 1967 στο Ροκενκούρ κοντά στο Παρίσι, και στηρίχθηκε στο SHAPE. Το INRIA είναι δημόσιο ίδρυμα έρευνας και τεχνολογίας (EPST) υπό την διπλή επίβλεψη του γαλλικού Υπουργείου Έρευνας και του Υπουργείου Οικονομίας, Οικονομικών και Βιομηχανίας.

Εξωτερικοί σύνδεσμοι • Επίσημη σελίδα [1] Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το άρθρο INRIA [2] [2] FDL και την CC-BY-SA 3.0 . (ιστορικό/συντάκτες ).

Παραπομπές [1] http:/ / www. inria. fr/ [2] http:/ / en. wikipedia. org/ wiki/ INRIA

[2]

της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την GNU


22

Labelflash Labelflash LabelFlash είναι μια τεχνολογία που επιτρέπει σοτυς χρήστες να σχεδιάζουν εικόνες πάνω στο cd καίγοντάς το. Παρουσιάστηκε απο την NEC το Δεκέμβριο του 2005. Αυτό είναι παρόμοιο με την τεχνολογία LightScribe που επινοήθηκε νωρίτερα από την Hewlett Packard. • Η μέγιστη ανάλυση είναι 1000 dpi στην οποία μπορεί να χρησιμοποιηθούν μέχρι 256 αποχρώσεις σε μια εικόνα. • Η διαδικασία διαρκεί 7 λεπτά με την ελάχιστη ανάλυση. • Οι ειδικοί δίσκοι Lableflash χρησιμοποιούν επιπλέον 0,6 χιλιοστά επιστρώματος. Το Nero 7.0.2.8 και οι νεότερες εκδόσεις υποστηρίζουν αυτήν την τεχνολογία. Για λόγους που δεν είναι εξ ολοκλήρου σαφείς, οι βορειοαμερικανοί αγοραστές Nero 7 (ultra edition) δεν έχουν την δυνατότητα LabelFlash ακόμα κι αν είναι το ακριβές λογισμικό που πωλείται στους ευρωπαϊκούς πελάτες Nero 7 Premium.

Συμβατότητα Λογισμικού • • • • •

Nero 7 Premium. Roxio Easy Media Creator 9. CyberLink LabelPrint 2 Dragon Burn 4 by NTI Disc Cover 1.4 by BeLight Software

και το FujiFilm/Yamaha επίσης παρέχει την τεχνική LabelFlash που ονομάζετε LabelFlashtm Index Maker

Εξωτερικοί σύνδεσμοι • • • • • •

Επίσημη σελίδα του LabelFlash [1] Labelflash™ - Εισαγωγή [2] Liggy's and Dee's modified NEC firmwares [3] The Dangerous Brothers RPC-1 Firmware [4] Fujifilm introduces LabelFlash media to US [5] Early Mac Pros Contain Pioneer DVR-111D [6]

Παραπομπές [1] [2] [3] [4] [5] [6]

http:/ / labelflash. jp/ http:/ / www. cdfreaks. com/ reviews/ First-Look-Labelflash/ http:/ / liggydee. cdfreaks. com/ page/ http:/ / tdb. rpc1. org/ http:/ / www. engadget. com/ 2007/ 06/ 15/ fujifilm-introduces-labelflash-media-to-us/ http:/ / www. engadget. com/ 2006/ 10/ 09/ how-to-supersize-your-mac-pros-superdrive/


23

Microsoft SQL Server Microsoft SQL Server O SQL Server είναι ένα Σχεσιακό Μοντέλο Διαχείρισης Δεδομένων RDBMS το οποίο αναπτύσσεται από την Microsoft. Οι κύριες γλώσσες που χρησιμοποιούνται είναι η T-SQL και η ANSI SQL. O SQL Server βγήκε για πρώτη φορά στην αγορά το 1989 σε συνεργασία με την Sybase. Η κύρια μονάδα αποθήκευσης στοιχείων είναι μια βάση δεδομένων, η οποία αποτελείται από μια συλλογή πινάκων και κώδικα.

Αποθήκευση Η κεντρική βάση δεδομένων του SQL υποστηρίζει διαφορετικούς τύπους, συμπεριλαμβανομένων των ακεραίων αριθμών, αριθμών κινητής υποδιαστολής, δεκαδικών, αλφαριθμητικών, Varchar (σειρές χαρακτήρων μεταβλητού μήκους), δυαδικών αριθμών (για τα μη δομημένα δεδομένα), κειμένων (για κείμενα). Επιτρέπει επίσης καθορισμένους από το χρήστη σύνθετους τύπους δεδομένων (UDTs), δηλαδή τύπους που βασίζονται στους βασικούς τύπους αλλά μπορούν να τροποποιηθούν. Τα στοιχεία στη βάση δεδομένων αποθηκεύονται σε ένα (ή περισσότερα) αρχεία με επέκταση .mdf. Τα δευτεροβάθμια στοιχεία αποθηκεύονται στο αρχείο με επέκταση .ndf. To αρχείο καταγραφής το οποίο περιέχει όλες τις πρόσφατες αλλαγές στη βάση δεδομένων αποθηκεύεται σε αρχείο με επέκταση .ldf. Ο χώρος αποθήκευσης που διατίθεται σε μια βάση δεδομένων διαιρείται σε διαδοχικά αριθμημένες σελίδες, κάθε μία από τις οποίες έχει μέγεθος 8 KB.

Ενδιάμεση μνήμη Οι σελίδες αποθηκεύονται στην ενδιάμεση (buffer) μνήμη RAM για να ελαχιστοποιηθεί η μεταφορά δεδομένων προς και από τον σκληρό δίσκο. Οποιαδήποτε σελίδα 8 KB μπορεί να είναι αποθηκευμένη στη μνήμη, και το σύνολο όλων των σελίδων που αποθηκεύονται σε μία περίοδο καλείται λανθάνουσα μνήμη (cache). Το ποσό μνήμης που είναι διαθέσιμο στον κεντρικό διακομιστή SQL αποφασίζει πόσες σελίδες θα εναποθηκευθούν στη λανθάνουσα μνήμη. O SQL Server έχει διαφορετικούς και έξυπνους αλγόριθμους για την καλύτερη απόδοση της λανθάνουσας μνήμης. Ο κεντρικός διακομιστής SQL εξασφαλίζει ότι οποιαδήποτε αλλαγή στα στοιχεία είναι "ACID", δηλ. χρησιμοποιεί τις "συναλλαγές" (transactions) που εξασφαλίζουν ότι οποιαδήποτε λειτουργία είτε ολοκληρώνεται συνολικά είτε αποτυγχάνει συνολικά, αλλά δεν αφήνει ποτέ τη βάση δεδομένων σε μία ενδιάμεση κατάσταση. Χρησιμοποιώντας τις συναλλαγές αυτές, μια ακολουθία εντολών μπορεί να αποτελέσει μία ομάδα, με την προϋπόθεση ότι είτε όλες οι εντολές θα πετύχουν ή καμία δεν θα πετύχει. Ο κεντρικός διακομιστής SQL επιτρέπει σε πολλούς πελάτες να χρησιμοποιούν την ίδια βάση δεδομένων ταυτόχρονα.


Microsoft SQL Server

24

Υπό αυτήν τη μορφή, θα πρέπει να ελέγξει την ταυτόχρονη πρόσβαση στα κοινά στοιχεία, για να εξασφαλίσει την ακεραιότητα των στοιχείων – Π.χ όταν πολλαπλάσιοι πελάτες ενημερώνουν τα ίδια στοιχείο, ή οι πελάτες προσπαθούν να διαβάσουν ένα στοιχείο το οποίο αλλάζεται από έναν άλλο πελάτη.

Ταυτοχρονισμός Ο κεντρικός διακομιστής SQL παρέχει δύο τρόπους ελέγχου του ταυτοχρονισμού: απαισιόδοξος tαυτοχρονισμός και αισιόδοξος ταυτοχρονισμός. Όταν ο απαισιόδοξος έλεγχος ταυτοχρονισμού χρησιμοποιείται, ο κεντρικός διακομιστής SQL ελέγχει την ταυτόχρονη πρόσβαση με τη χρησιμοποίηση κλειδώματος (locks). Τα κλειδώματα μπορούν είτε να διαμοιράζονται είτε να είναι αποκλειστικά. Το αποκλειστικό κλείδωμα χορηγεί στο χρήστη την αποκλειστική πρόσβαση στα στοιχεία (συνήθως κατά την αλλαγή στοιχείων) - κανένας άλλος χρήστης δεν μπορεί να έχει πρόσβαση στα στοιχεία εφόσον υπάρχει κλείδωμα. Το κοινό κλείδωμα χρησιμοποιείται όταν διαβάζεται κάποιο στοιχείο - πολλαπλοί χρήστες μπορούν να διαβάσουν από τα στοιχεία που κλειδώνονται με ένα κοινό κλείδωμα, αλλά να μην αποκτούν αποκλειστικό. Το κλείδωμα μπορεί να εφαρμοστεί σε διαφορετικά επίπεδα - σε ολόκληρους πίνακες, σελίδες ή ακόμα και σε διαφορετικές γραμμές. Το επίπεδο που χρησιμοποιείται καθορίζεται σε μια βάση δεδομένων από περίπλοκους αλγόριθμους του SQL Server, οι οποίοι έχουν σκοπό την γρηγορότερη και καλύτερη λειτουργία από χιλιάδες χρήστες η ακόμη και εκατοντάδες χιλιάδες την ίδια στιγμή. Ενας SQL Server είναι δυνατόν να πραγματοποιήσει μέχρι και 1.000.000 transactions το δευτερόλεπτο με το ανάλογο υλικό. O SQL Server λειτουργεί σε 32 η 64 bit και υποστηρίζει μέχρι και 256 πυρήνες (CPU) Τυπική χρήση είναι οι 8-16 επεξεργαστές.

Ανάκτηση δεδομένων Η ερώτηση (query) είναι ο κύριος τρόπος για την ανάκτηση στοιχείων από μια βάση δεδομένων. Η ερώτηση εκφράζεται χρησιμοποιώντας μια παραλλαγή της αποκαλούμενου SQL Τ-SQL, είναι μια διάλεκτος SQL που αναπτύχθηκε απο την Microsoft και Sybase. H T-SQL είναι πολύ κοντά στα ANSI standards που έχουν καθιερωθεί διεθνώς, σε αντιδιαστολή με άλλες διαλέκτους όπως η PL-SQL της Oracle που διαφέρουν περισσότερο από το ANSI standards. Επεξεργαστής ερώτησης σε μια ένωση 2 πινάκων

Η ερώτηση διευκρινίζει επεξηγηματικά αυτό που είναι να ανακτηθεί απο την βάση δεδομένων. Η ερώτηση υποβάλλεται σε επεξεργασία από τον επεξεργαστή ερώτησης, ο οποίος υπολογίζει τη σειρά των βημάτων που θα είναι απαραίτητα για να ανακτηθούν τα ζητούμενα στοιχεία. Η ακολουθία ενεργειών απαραίτητων να εκτελέσουν μια ερώτηση καλείται σχέδιο ερώτησης. Υπάρχουν πολλοί τρόποι για να υποβληθεί σε επεξεργασία η ίδια ερώτηση. Π.χ, μια ερώτηση που ενώνει 2 πίνακες Α & Β μαζί θα μπορούσε να γίνει ή πηγαίνωντας πρώτα στο Α βρισκοντας τα στοιχεία και μετά ενώνοντας με τα στοιχεία του πίνακα Β, ή πρώτα από το Β και μετά πίνακα Α. Ο SQL Server και όχι ο Προγραμματιστής παίρνει την απόφαση μέσω στατιστικών στοιχείων και άλλων στοιχείων που διαθέτει για τους 2 πίνακες να ακολουθήσει την διαδρομή Α-Β γιατί αυτός είναι ο γρηγορότερος τρόπος. Στις procedural


Microsoft SQL Server γλώσσες προγραμματισμού πχ C, Pascal, .NET, ο προγραμματιστής θα πρέπει να κάνει την απόφαση το οποίο πολλές φορές σημαίνει λάθος απόφαση. Αυτό καλείται βελτιστοποίηση ερώτησης και εκτελείται από τον επεξεργαστή ερώτησης. Ο SQL παίρνει πολύ περίπλοκες αποφάσεις βασισμένος σε αλγόριθμους που έχουν αναπτυχθεί τα τελευταία 20-30 χρόνια πάνω στο αντικείμενο. Μια παρόμοια ερώτηση σε μια προηγούμενη έκδοση του SQL Server θα μπορούσε να πάρει 10-20 φορές περισσότερο χρόνο λόγω του διαφορετικού αλγόριθμου. Γενικά κάθε καινούργια έκδοση βελτιώνει την αποτελεσματικότητα, και άρα τον χρόνο εκτέλεσης. Εδώ ακριβώς είναι ένα από το πλεονεκτήματα προγραμματισμού ενός προβλήματος σε μια βαση δεδομένων σε σύγκριση με C, Pascal, C++ κτλ. Βέβαια όλα τα προβλήματα δεν είναι κατάλληλα για εφαρμογή σε βάση δεδομένων. Ο SQL Server επιτρέπει επίσης αποθηκευμένες ερωτήσεις (stored procedures). Οι αποθηκευμένες ερωτήσεις είναι ερωτήσεις με παραμέτρους T-SQL, οι οποίες αποθηκεύονται στον SQL Server. Μια stored procedure τυπικά είναι από 100-1000 γραμμές κώδικα SQL. Οι αποθηκευμένες ερωτήσεις μπορούν να δεχτούν τιμές που στέλνονται από τον πελάτη ως παράμετροι εισαγωγής, και να στείλουν τα αποτελέσματα ως παραμέτρους παραγωγής. Μπορούν να καλέσουν functions, και άλλες stored procedures. Οι stored procedures είναι γρηγορότερες από κατασκευή σε σχέση με απλές ακολουθίες SQL.

CLR O Microsoft SQL Server 2005 – 2008 περιλαμβάνει ένα module που λέγεται SQL CLR μέσω του οποίου ενσωματώνει to .NET μέσα στον SQL Server. Με το SQL CLR, οι αποθηκευμένες διαδικασίες μπορούν να γραφτούν σε οποιαδήποτε γλώσσα .NET συμπεριλαμβανομένου C# και VB.NET και να δημιουργήσουν μια stored procedure. Αυτό σημαίνει ότι ο SQL Server έχει όλες τις βιβλιοθήκες και πλεονεκτήματα του .ΝΕΤ, αυτόχθονα μέσα στο περιβάλλον του, τα οποία μπορεί να τα καλέσει οποιαδήποτε στιγμή.

Υπηρεσίες • Ο Μεσίτης Υπηρεσιών (Service Broker) που τρέχει ως μέρος της μηχανής βάσεων δεδομένων, παρέχει μια αξιόπιστη πλατφόρμα μηνυμάτων και αναμονής μηνυμάτων για τις εφαρμογές κεντρικών SQL Server. Ο Service Broker έχει ανώτερες δυνατότητες προγραμματισμού στο μέλλον (scheduling). .[1] • Οι υπηρεσίες συγχρονίσμού (Replication) του SQL Server χρησιμοποιούνται από τον SQL Server για και να συγχρονίσουν βάσεις δεδομένων, είτε ολοκληρωτικά είτε ένα υποσύνολο των αντικειμένων. Υπάρχουν τουλάχιστον 4 διαφορετικοί μέθοδοι (log shipping, mirroring, replication, back-ups, clustering) για τον συγχρονισμό. Αυτό βοηθάει επίσης και σε περιπτώσεις ολοκληρωτικής καταστροφής της μητρικής βάσης δεδομένων, δίνοντας την δυνατότητα ακόμη και για αυτόματη λειτουργία της δευτερέυουσας συγχρονισμένης βάσης δεδομένων. [2] • Οι υπηρεσίες ανάλυσης (Analysis Services) SQL Server προσθέτουν τις ικανότητες OLAP και περίπλοκης ανάκτησης δεδομένων για τις βάσεις δεδομένων SQL, με περίπλοκη ανάλυση χωρίς την ανάγκη για δύσκολες SQL queries. Υποστηρίζεται το MOLAP, ROLAP και HOLAP για τα στοιχεία.[3] • Ο SQL Server έχει υπηρεσίες Reporting για στοιχεία που συγκεντρώνονται από τις βάσεις δεδομένων SQL Server. Με αυτόν τον τρόπο είναι δυνατό να παραχθεί μια έκθεση Ιστού (Web Report) σχεδόν αυτόματα χωρίς προγραμματισμό HTML, CSS ή JavaScript, μέσα απο το Visual Studio.[4] • Οι υπηρεσίες ανακοίνωσης (Notification Services) δίνουν την δυνατότητα στον χρήστη να παράγει μηνύματα ηλεκτρονικού ταχυδρομείου με πολύ λίγο κόπο.[5] .[6] • Το Integration Services του SQL χρησιμοποιούνται για να ενσωματώσουν στοιχεία από διαφορετικές πηγές δεδομένων. Χρησιμοποιεί τις ικανότητες ETL. Οι Integration Services περιλαμβάνουν εργαλεία GUI για να χτίσουν διάφορες λειτουργίες ροών δεδομένων, όπως η εξαγωγή στοιχείων από διάφορες πηγές, η

25


Microsoft SQL Server συζήτηση στοιχείων, ο μετασχηματισμός των στοιχείων συμπεριλαμβανομένης της συνάθροισης, του διπλασιασμού και η συγχώνευσης.[7] • Ο SQL Server μπορεί επίσης να αναζητήσει μέσα σε κειμένα (Full Text Search Service ). Ο δείκτης αναζήτησης μπορεί να δημιουργηθεί σε οποιαδήποτε στήλη και έτσι η αναζήτηση πραγματοποιείται άμεσα. Για παράδειγμα, κείμενα Word και έγγραφα pdf αποθηκευμένα στον SQL Server μπορούν αναζητηθούν πολύ γρήγορα .[8]

Παραπομπές Introducing Service Broker (http://msdn.microsoft.com/en-us/library/ms166104.aspx) (ανακτήθηκε 2007-12-03 ) Types of Replication Overview (http://msdn.microsoft.com/en-us/library/ms152531.aspx) (ανακτήθηκε 2007-12-03 ) Analysis Services Architecture (http://msdn.microsoft.com/en-us/library/ms174918.aspx) (ανακτήθηκε 2007-12-03 ) SQL Server Reporting Services (http://msdn.microsoft.com/en-us/library/ms159106.aspx) (ανακτήθηκε 2007-12-03 ) SAn Introduction to SQL Server Notification Services (http://www.codeproject.com/KB/dotnet/sqlns.aspx) (ανακτήθηκε 2008-11-14 ) [6] SQL Server Notification Services Removed from SQL Server 2008 (http:/ / blog. desktopalert. net/ blogs/ da_blog/ archive/ 2008/ 02/ 16/ 25. aspx) (ανακτήθηκε 2008-09-17 ) [7] Integration Services Overview (http:/ / msdn. microsoft. com/ en-us/ library/ ms141263. aspx) (ανακτήθηκε 2007-12-03 ) [8] Introduction to Full-Text Search (http:/ / msdn. microsoft. com/ en-us/ library/ ms142545. aspx) (ανακτήθηκε 2007-12-03 ) [1] [2] [3] [4] [5]

Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το SQL Server άρθρο Microsoft SQL Server (http:/ / en. wikipedia. org/ wiki/ Microsoft) της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 3.0 (http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/ ). ( SQL Server ιστορικό/συντάκτες (http:/ / en. wikipedia. org/ wiki/ Microsoft)).

26


27

Original equipment manufacturer Original equipment manufacturer Original Εquipment Μanufacturer (OEM) ονομάζεται μια επιχείρηση, συνήθως του κλάδου της πληροφορικής, η οποία αγοράζει τα βασικά μέρη ενός υπολογιστή έτοιμα και συνθέτει έναν ολοκληρωμένο υπολογιστή τον οποίο πουλάει μαζί με άλλες υπηρεσίες όπως εγγύηση, υποστήριξη, εγχειρίδια χρήσης, κ.τ.λ.


28

RFID RFID Το RFID είναι τα αρχικά του όρου Radio Frequency Identification που η μετάφραση του όρου στα ελληνικά είναι «ταυτοποίηση μέσω ραδιοσυχνοτήτων». Το RFID είναι ένα σύστημα ασύρματης αναγνώρισης αντικειμένων και ήρθε να αντικαταστήσει το Bar Code. Οι εφαρμογές του τεράστιες, με κλασικό παράδειγμα τα προϊόντα που έχουν συρμάτινες ταινίες στις αλυσίδες καταστημάτων. Αυτή η συρμάτινη ταινία ήταν ένα ηλεκτρονικό κύκλωμα , το RFID tag. Στο RFID tag είναι αποθηκευμένο ο σειριακός αριθμός του αντικειμένου και οποιαδήποτε άλλη πληροφορία είναι απαραίτητη για την αναγνώριση του αντικειμένου. Τα σημαντικά πλεονεκτήματα που προσφέρει το RFID είναι: • Η αναγνώριση μπορεί να γίνει από απόσταση μιας και υπάρχουν RFID tags που είναι σε θέση παίρνοντας ενέργεια από κάποια πηγή που συνήθως είναι μπαταρία να στείλουν τις πληροφορίες στον δέκτη. • Δυνατότητα αποθήκευσης περισσοτέρων δεδομένων σε σχέση με τα Bar Code • Μπορούν να μην είναι ορατά στο ανθρώπινο μάτι τα RFID tags μιας και για την αναγνώριση τους δεν χρειάζεται οπτικό μέσο. • Δυνατότητα προγραμματισμού εξ αποστάσεως • Επιπρόσθετες λειτουργίες. Π.χ. Παρακολούθηση και καταγραφή της θερμοκρασίας


29

Αναδρομή Αναδρομή Αναδρομή στα μαθηματικά και την επιστήμη υπολογιστών είναι μια μέθοδος για τον ορισμό συναρτήσεων κατά την οποία η οριζόμενη συνάρτηση εφαρμόζεται στον ίδιο της τον ορισμό. Επίσης, ο όρος χρησιμοποιείται γενικότερα για να περιγράψει τη διαδικασία όπου αντικείμενα επαναλαμβάνονται με αυτο-όμοιο τρόπο. Για παράδειγμα, όταν οι επιφάνειες δυο καθρεπτών είναι σχεδόν παράλληλες μεταξύ τους, τα φωλιασμένα είδωλα που προκύπτουν αποτελούν μια μορφή αναδρομής.

Τυπικός ορισμός της αναδρομής Στα μαθηματικά και την επιστήμη υπολογιστών, η αναδρομή ορίζει (ή κατασκευάζει) μια τάξη αντικειμένων ή μεθόδων (ή ένα αντικείμενο μιας τάξης), ορίζοντας κάποιες απλές περιπτώσεις ή μεθόδους (συχνά μία και μόνη), και ορίζοντας κανόνες για τη διάσπαση πολύπλοκων περιπτώσεων σε απλότερες. Για παράδειγμα, ο ακόλουθος είναι ένας αναδρομικός ορισμός για τους προγόνους ενός ατόμου. • Οι γονείς κάποιου είναι πρόγονοί του (βασική περίπτωση) • Οι γονείς των προγόνων κάποιου είναι και πρόγονοί του (αναδρομικό βήμα) Μπορεί κανείς να σκεφτεί ότι ένας επαγωγικός ορισμός μιας τάξης αντικειμένων ορίζει νέα αντικείμενα χρησιμοποιώντας ήδη ορισμένα αντικείμενα της τάξης που ορίζεται. Παρόμοιοι ορισμοί απαντώνται συχνά στα μαθηματικά. Για παράδειγμα, ο τυπικός ορισμός των φυσικών αριθμών στη θεωρία συνόλων είναι: το 1 είναι φυσικός αριθμός και κάθε φυσικός αριθμός έχει έναν επόμενο, που είναι επίσης φυσικός αριθμός. Παραδείγματα μαθηματικών αντικειμένων που ορίζονται αναδρομικά είναι οι συναρτήσεις, τα σύνολα, και ειδικά τα fractals. Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το άρθρο Recursion [2] [1] GNU FDL και την CC-BY-SA 3.0 . (ιστορικό/συντάκτες ).

Παραπομπές [1] http:/ / en. wikipedia. org/ wiki/ Recursion

[1]

της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την


30

Ανάλυση προγράμματος (πληροφορική) Ανάλυση προγράμματος (πληροφορική) Ανάλυση προγράμματος (computer program analysis) ονομάζεται η διαδικασία με την οποία αναλύεται αυτόματα η συμπεριφορά προγραμμάτων που εκτελούνται σε έναν υπολογιστή. Υπάρχουν δύο βασικές προσεγγίσεις στην ανάλυση προγράμματος, η στατική ανάλυση και η δυναμική ανάλυση. Βασικές εφαρμογές της ανάλυσης προγράμματος είναι η βελτιστοποίηση προγράμματος και η ορθότητα προγράμματος. Σχετικές τεχνικές με την ανάλυση προγράμματος είναι τα συστήματα τύπων, η αφηρημένη διερμηνεία, η ορθότητα προγράμματος και ο έλεγχος μοντέλων. Η ανάλυση απόδοσης (γνωστή και με τον όρο "profiling") και η ανάλυση εξαρτήσεων είναι συγκεκριμένες μορφές της ανάλυσης προγράμματος. Μια τεχνική που χρησιμοποιείται συχνά για κάποιες περιπτώσεις ανάλυσης προγράμματος είναι το program slicing. [1] Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το analysis (computer science) άρθρο Program analysis (computer science) της [2] Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 3.0 . (analysis (computer science) [1] ιστορικό/συντάκτες ).

Παραπομπές [1] http:/ / en. wikipedia. org/ wiki/ Program


31

Αντικειμενικό αρχείο Αντικειμενικό αρχείο Στην επιστήμη υπολογιστών αντικειμενικό αρχείο ή αρχείο αντικειμενικού κώδικα καλούμε ένα αρχείο που περιέχει δυαδικό κώδικα μηχανής αλλά δεν έχει υποστεί σύνδεση. Ένα αρχείο πηγαίου κώδικα υψηλού επιπέδου γραμμένο σε κάποια γλώσσα μεταγλωττίζεται σε ένα αντίστοιχο αρχείο συμβολικού κώδικα (assembly) από τον κατάλληλο μεταγλωττιστή. Το προκύπτον αρχείο στη συνέχεια μετασχηματίζεται σε αντικειμενικό αρχείο γλώσσας μηχανής από έναν συμβολομεταφραστή (assembler), μία διαδικασία που μετατρέπει τον κώδικα σε άμεσα εκτελέσιμο από τον επεξεργαστή. Η συμβολική γλώσσα και η γλώσσα μηχανής είναι ίδιου επιπέδου και υπάρχει αμφιμονοσήμαντη αντιστοιχία μεταξύ τους, απλώς η assembly αποτελείται από χαρακτήρες του λατινικού αλφαβήτου και δεκαεξαδικά ψηφία, ώστε να είναι κάπως κατανοητή από τον άνθρωπο, ενώ η γλώσσα μηχανής συντίθεται αποκλειστικά από bit.


32

Αποσφαλμάτωση Αποσφαλμάτωση Στην επιστήμη υπολογιστών αποσφαλμάτωση ή εκσφαλμάτωση καλούμε τη διαδικασία εύρεσης και εξάλειψης σφαλμάτων από αναπτυσσόμενα προγράμματα. Η αποσφαλμάτωση (debugging) γίνεται συνήθως με τη βοήθεια εξειδικευμένου λογισμικού, των αποσφαλματωτών (debuggers), οι οποίοι έχουν τη δυνατότητα να εκτελέσουν ένα εξωτερικό πρόγραμμα βήμα προς βήμα, να καταγράφουν σε κάθε στάδιο την κατάσταση του, να διακόπτουν τη ροή εκτέλεσης κλπ. Για να δουλέψει ένας εκσφαλματωτής πρέπει το προς εκσφαλμάτωση πρόγραμμα να περιέχει δεδομένα του πηγαίου κώδικα που τρέχει. Σε Λειτουργικό σύστημα Linux αυτό γίνεται με την προσθήκη της παραμέτρου -g στην γραμμή εντολών που προκαλεί την μετάφραση του προγράμματος γραμμένου σε Ansi C. Ο εκσφαλματωτής καλείταi εκτελώντας την εντολή sdb ή adb ή gdb ή dbx.

Διαδικασία αποσφαλμάτωσης Παρόλο που κάθε σφάλμα απαιτεί ξεχωριστή προσέγγιση γενικά ακολουθούνται τα εξής βήματα: 1. 2. 3. 4. 5.

Επανάληψη του προβλήματος Απομόνωση του σημείου που εμφανίζεται το σφάλμα Αναγνώριση της αιτίας που το προκαλεί Διόρθωση του σφάλματος Επιβεβαίωση της διόρθωσης

Επανάληψη του προβλήματος Το πρώτο βήμα για την αποσφαλμάτωση είναι, συνήθως, η επανάληψη του προβλήματος. Αυτό μπορεί να ακούγεται ειρωνικό αλλά είναι αρκετά σημαντικό και πολλές φορές ακατόρθωτο αν το σφάλμα προέρχεται από τη χρήση του προγράμματος σε περιβάλλον πολλών ταυτόχρονων χρηστών ή σε προγράμματα που χρησιμοποιούν παράλληλη επεξεργασία.

Απομόνωση του σημείου που εμφανίζεται το σφάλμα Μετά τη φάση της επανάληψης του προβλήματος, συνήθως χρησιμοποιείται η τεχνική του "διαίρει και βασίλευε", η διαίρεση, δηλαδή, του κώδικα σε επιμέρους λειτουργικά κομμάτια, όσο το δυνατόν μικρότερα, και ο έλεγχος αν κάποιο από αυτά προκαλεί πρόβλημα. Αν ο έλεγχος αυτός "αποδώσει", αν δηλαδή βρεθεί ποιο τμήμα προκαλεί το πρόβλημα, τότε το έργο της αποσφαλμάτωσης μειώνεται σημαντικά.


Αποσφαλμάτωση

Αναγνώριση της αιτίας που το προκαλεί Στο σημείο αυτό χρησιμοποιούνται διάφορες τεχνικές για την αναγνώριση της αιτίας. Το σφάλμα μπορεί να προέρχεται από λάθη στην πληκτρολόγηση του κώδικα ή από λογικά σφάλματα που είναι και τα πλέον δύσκολα να βρεθούν.

Διόρθωση του σφάλματος Αν έχει εντοπιστεί το πρόβλημα και η αιτία του τότε προχωράμε στην εύρεση λύσης. Τις περισσότερες φορές αυτό σημαίνει τη διόρθωση του κώδικα. Αυτό δεν συμβαίνει πάντα. Δεν είναι λίγες οι φορές που μεγάλοι κατασκευαστές αναγνώρισαν την ύπαρξη προβλήματος αλλά αποφάσισαν να μην το διορθώσουν. Οι λόγοι μπορεί να οφείλονται είτε στην έλλειψη κατάλληλου προσωπικού είτε στην εγκατάλειψη του έργου από τον ιδιοκτήτη, είτε στο ασύμφορο οικονομικό βάρος που θα υπάρξει. Σε αυτό το σημείο υπάρχει και η τεράστια διαφορά μεταξύ προγραμμάτων κλειστού και ανοικτού κώδικα. Αν και ο ιδιοκτήτης του κώδικα έχει εντοπίσει και έχει δημοσιεύσει τον τρόπο επίλυσης του σφάλματος αν δεν θέλει να το διορθώσει οι κάτοχοι των αντιγράφων του προγράμματος μένουν "ξεκρέμαστοι". Στα προγράμματα ανοικτού κώδικα ο καθένας μπορεί να διορθώσει το σφάλμα έστω και μόνο για δική του χρήση.

Επιβεβαίωση της διόρθωσης Η διαδικασία ολοκληρώνεται με τον έλεγχο της νέας, διορθωμένης, έκδοσης. Επιπλέον, ίσως χρειαστεί να ερευνηθεί αναλυτικότερα το πρόγραμμα, προκειμένου να διαπιστωθεί αν η διόρθωση δεν επέφερε άλλες ανεπιθύμητες παρενέργειες.

Τεχνικές αποσφαλμάτωσης Χρήση προκαθορισμένων τιμών Τεχνική με την οποία δεν χρησιμοποιούνται οι πραγματικές τιμές που θα έπρεπε να εισαχθούν αλλά προκαθορισμένες ελεγχόμενες τιμές που συνήθως είναι και ακραίες. Για παράδειγμα σε ένα πρόγραμμα για τάβλι αντί να καλείται η συνάρτηση που "ρίχνει τα ζάρια" και επιστρέφει τη "ζαριά" μπορεί να καλείται ο χρήστης να δώσει αυτός τα νούμερα ή να τα νούμερα να παίρνονται από κάποιο σταθερό, γνωστό πίνακα. Με αυτόν τον τρόπο απομακρύνεται (ή επιβεβαιώνεται) το ενδεχόμενο να υπάρχει σφάλμα στο τμήμα του προγράμματος που δημιουργεί τυχαίες τιμές.

Χρησιμοποίηση ειδικών σημείων ελέγχου Τεχνική με την οποία γίνεται χρήση ειδικών σημείων ελέγχου μέσα στο πρόγραμμα όπου είτε καταγράφονται είτε εκτυπώνονται στην οθόνη ή σε εκτυπωτή οι τιμές διαφόρων μεταβλητών, που κάτω από κανονικές συνθήκες εκτέλεσης του προγράμματος δεν εμφανίζονται στον τελικό χρήστη. Απλοϊκό παράδειγμα μπορεί να είναι η εμφάνιση της πλήρους αλλαγής που καλείται ο χρήστης να αποφασίσει αν θα την κάνει. Αν π.χ. ένα πρόγραμμα σε κανονικές συνθήκες απλά εμφανίζει στον χρήστη αν θέλει να συνεχίσει με την καταχώρηση, για λόγους αποσφαλμάτωσης, μπορεί να του παρουσιάζει και όλα τα προς καταχώρηση στοιχεία, με την ηλεκτρονική μορφή που θα καταχωρηθούν, επιπλέον από τη μορφή που τα "πέρασε" ο χρήστης.

33


34

Βιβλιοθήκη (υπολογιστές) Βιβλιοθήκη (υπολογιστές) Στην επιστήμη υπολογιστών καλούμε βιβλιοθήκη (library) μια συλλογή από έτοιμα υποπρογράμματα που χρησιμοποιείται για την ανάπτυξη λογισμικού. Οι βιβλιοθήκες περιέχουν υποβοηθητικό κώδικα και δεδομένα, παρέχοντας, με αυτόν τον τρόπο, υπηρεσίες σε προγράμματα. Αυτό επιτρέπει τον διαμοιρασμό και τη χρήση του κώδικα και των δεδομένων με αρθρωτό τρόπο. Η έννοια της βιβλιοθήκης είναι αναπόσπαστο τμήμα του δομημένου προγραμματισμού και αναπτύχθηκε παράλληλα με αυτόν. Κάποια εκτελέσιμα αρχεία (executables) είναι προγράμματα και βιβλιοθήκες ταυτόχρονα, αλλά οι περισσότερες βιβλιοθήκες δεν είναι εκτελέσιμες. Τα εκτελέσιμα αρχεία και οι βιβλιοθήκες αναφέρονται το ένα στον κώδικα και τα δεδομένα του άλλου μέσω μιας διαδικασίας που ονομάζεται σύνδεση και την πραγματοποιεί ο συνδέτης. Τα σύγχρονα λειτουργικά συστήματα παρέχουν βιβλιοθήκες που υλοποιούν την πλειονότητα των υπηρεσιών του συστήματος. Έτσι, ο περισσότερος κώδικας που χρησιμοποιούν οι σύγχρονες εφαρμογές παρέχεται από αυτές τις βιβλιοθήκες και δεν χρειάζεται να γραφεί από την αρχή για κάθε νέο πρόγραμμα.

Λειτουργία Ένα αρχείο πηγαίου κώδικα υψηλού επιπέδου γραμμένο σε κάποια γλώσσα προγραμματισμού, μεταγλωττίζεται σε ένα αντίστοιχο αρχείο συμβολικού κώδικα (assembly) από τον κατάλληλο μεταγλωττιστή (compiler). Το προκύπτον αρχείο στη συνέχεια μετασχηματίζεται σε αντικειμενικό αρχείο γλώσσας μηχανής από έναν συμβολομεταφραστή (assembler), μία διαδικασία που μετατρέπει τον κώδικα σε αρχείο άμεσα εκτελέσιμο από τον επεξεργαστή. Η συμβολική γλώσσα και η γλώσσα μηχανής είναι ίδιου επιπέδου και υπάρχει αμφιμονοσήμαντη αντιστοιχία μεταξύ τους, αλλά η συμβολική αποτελείται από χαρακτήρες του λατινικού αλφαβήτου και δεκαεξαδικά ψηφία, ώστε να είναι κάπως κατανοητή από τον άνθρωπο, ενώ η γλώσσα μηχανής συντίθεται αποκλειστικά από bit. Έτσι, τελικά, σε κάθε αρχείο πηγαίου κώδικα, είτε αυτό είναι αυτόνομο (με «σημείο εισόδου εκτέλεσης», π.χ. στη γλώσσα C η συνάρτηση main() από την οποία εκκινεί η εκτέλεση ενός προγράμματος) είτε όχι (π.χ. αρχείο βιβλιοθήκης), αντιστοιχίζεται ένα αντικειμενικό αρχείο με κώδικα μηχανής (αρχεία με επέκταση «.o» στο Unix και «.obj» στα Windows). Ένα αντικειμενικό αρχείο περιέχει εκτελέσιμο κώδικα, δηλώσεις δεδομένων, έναν πίνακα συμβόλων, όπου ορίζονται τα αναγνωριστικά (ονόματα μεταβλητών, σταθερών ή διαδικασιών) που εξάγονται από το αρχείο -δηλώνονται δηλαδή σε αυτό- ή εισάγονται στο αρχείο -χρησιμοποιούνται δηλαδή χωρίς να δηλώνονται-, και λοιπές πληροφορίες για τον «συνδέτη» (linker). Ο τελευταίος συνήθως καλείται αυτομάτως αμέσως μετά τον συμβολομεταφραστή, δέχεται ως είσοδο ένα ή περισσότερα αντικειμενικά αρχεία, τα συνενώνει κατάλληλα και παράγει ένα μοναδικό, τελικό εκτελέσιμο αρχείο. Αυτή η συνένωση που επιτελεί όμως ο συνδέτης δεν αφορά μόνο πολλαπλά αντικειμενικά αρχεία (που προκύπτουν προφανώς από αντίστοιχα πολλαπλά πηγαία αρχεία) της ίδιας εφαρμογής, αλλά επεκτείνεται και στο να «επιλύει αναφορές εισαγόμενων συμβόλων»: σαρώνει δηλαδή τον πίνακα συμβόλων κάθε αντικειμενικού αρχείου εισόδου, ανακαλύπτει ποια αναγνωριστικά παρέχονται από κάποια βιβλιοθήκη, αναζητά τον αντικειμενικό κώδικα της βιβλιοθήκης και εισάγει στο τελικό εκτελέσιμο της εφαρμογής τα κατάλληλα τμήματά του. Προκειμένου να επιτύχει τους στόχους του ο συνδέτης, ανάμεσα στ' άλλα, προβαίνει σε ένα πρώτο βήμα επανατοποθέτησης. Αυτό σημαίνει ότι κάθε τμήμα κώδικα μηχανής που εισάγει και τακτοποιεί στο τελικό εκτελέσιμο αρχείο, είτε είναι από αντικειμενικό αρχείο που έδωσε ως είσοδο στον συνδέτη ο χρήστης είτε από


Βιβλιοθήκη (υπολογιστές) αντικειμενικό αρχείο βιβλιοθήκης, το τροποποιεί κατάλληλα ώστε τελικά όλες οι διευθύνσεις μνήμης εντολών και δεδομένων στο τελικό εκτελέσιμο να είναι συνεπείς μεταξύ τους, να μην επικαλύπτονται και να είναι σχετικές ως προς μία κοινή διεύθυνση βάσης. Αυτό το βήμα είναι απαραίτητο γιατί ο μεταγλωττιστής νωρίτερα είχε δράσει θεωρώντας ξεχωριστό χώρο διευθύνσεων για κάθε αντικειμενικό αρχείο με διαφορετικές διευθύνσεις βάσης. Συνήθως, για διευκόλυνση του προγραμματιστή, ο μεταγλωττιστής, ο συμβολομεταφραστής και ο συνδέτης καλούνται με μία μόνο εντολή και με τη σωστή σειρά· αν ωστόσο ο προγραμματιστής το επιθυμεί, μπορεί περνώντας κάποια κατάλληλη παράμετρο να τροποποιήσει αυτήν τη συμπεριφορά (π.χ. στον μεταγλωττιστή της C gcc με την παράμετρο «-c» παραλείπεται η σύνδεση). Τα αντικειμενικά αρχεία υπακούν σε διάφορα προτυποποιημένα μορφότυπα (format), τα οποία καθορίζουν τη δομή τους και, συνήθως, είναι ίδια και για τα τελικά εκτελέσιμα αρχεία. Επιπλέον, τα μορφότυπα αυτά είναι ίδια τόσο για τα αυτόνομα εκτελέσιμα αρχεία όσο και για τις βιβλιοθήκες. Σύνηθες μορφότυπο εκτελέσιμου αρχείου στα Windows είναι το PE, ενώ στο Unix το ELF. Όταν επίκειται το «τρέξιμο» (εκτέλεση) ενός εκτελέσιμου αρχείου, εκτελείται πρώτα ένα κατάλληλο πρόγραμμα του λειτουργικού συστήματος (ΛΣ): ο φορτωτής (loader). Ο τελευταίος αντιγράφει τα περιεχόμενα του εκτελέσιμου από τον δίσκο στη μνήμη, δίνει κατάλληλες τιμές σε εσωτερικές δομές του πυρήνα (αφού ουσιαστικά εκκινείται μία νέα διεργασία) και ειδοποιεί σχετικά το υποσύστημα εικονικής μνήμης, ενώ, αν το τελευταίο δεν είναι διαθέσιμο, κάτι σπάνιο σήμερα αφού όλα τα μοντέρνα ΛΣ χρησιμοποιούν εικονική μνήμη, τροποποιεί επιπλέον τον κώδικα του προγράμματος με ένα δεύτερο βήμα επανατοποθέτησης: η διεύθυνση βάσης, ως προς την οποία γίνονται όλες οι αναφορές μνήμης εντός του κώδικα, παίρνει την τιμή της θέσης μνήμης στην οποία πραγματικά φορτώθηκε η πρώτη εντολή του προγράμματος. Αυτή η θέση μνήμης δεν είναι γνωστή πριν από τη φόρτωση (εκτός αν το ΛΣ δεν είναι πολυδιεργασιακό, όπως το MS-DOS, κάτι πολύ σπάνιο σήμερα), οπότε αυτή η επανατοποθέτηση όλου του εκτελέσιμου πρέπει να γίνεται σε κάθε εκτέλεση. Αν όμως το ΛΣ παρέχει μηχανισμό εικονικής μνήμης, τότε αυτό το βήμα δεν είναι απαραίτητο αφού κάθε διεργασία έχει έναν πλήρη, ιδιωτικό χώρο εικονικών διευθύνσεων στη διάθεσή της, με το υποσύστημα εικονικής μνήμης του πυρήνα να αναλαμβάνει την αντιστοίχιση με τη φυσική μνήμη (αχρηστεύοντας έτσι την επανατοποθέτηση χρόνου φόρτωσης). Σε κάθε περίπτωση, μόλις ο φορτωτής ολοκληρώσει την εργασία του τερματίζεται και η νέα διεργασία είναι έτοιμη προς εκτέλεση. Το πότε θα αρχίσει πραγματικά να εκτελείται είναι θέμα του χρονοπρογραμματιστή του πυρήνα.

Κατηγορίες Οι βιβλιοθήκες μπορούν να είναι στατικές ή δυναμικές, καθώς και κοινόχρηστες ή μη. Όταν ένα πρόγραμμα καλεί υποπρογράμματα από στατικές βιβλιοθήκες, ο συνδέτης (ο οποίος συμβουλεύεται κατάλληλα αρχεία ρυθμίσεων ή το ΛΣ για να βρει τις βιβλιοθήκες) ενσωματώνει πραγματικά τον αντικειμενικό τους κώδικα στο εκτελέσιμο που παράγει και επανατοποθετεί κατάλληλα τις διευθύνσεις μνήμης σε χρόνο σύνδεσης. Αντίθετα, οι δυναμικές βιβλιοθήκες ενσωματώνονται και επανατοποθετούνται στον τελικό κώδικα απευθείας στη μνήμη και ενώ το πρόγραμμα εκτελείται, με αποτέλεσμα τα εκτελέσιμα αρχεία να έχουν σαφώς μικρότερο μέγεθος (αφού περιέχουν απλώς οδηγίες προς έναν συνδέτη χρόνου εκτέλεσης, παρεχόμενου από το ΛΣ, αντί για τον ίδιο τον αντικειμενικό κώδικα των καλούμενων υποπρογραμμάτων βιβλιοθήκης), αλλά να απαιτείται η μόνιμη παρουσία του αντικειμενικού αρχείου της βιβλιοθήκης στο σύστημα αρχείων προκειμένου να είναι δυνατή η εκτέλεση του προγράμματος. Επίσης οι δυναμικές βιβλιοθήκες μπορούν να είναι κοινόχρηστες, δηλαδή να υπάρχει μόνο ένα αντίγραφό τους το οποίο διαμοιράζεται σε πολλαπλές διεργασίες που τις χρησιμοποιούν ταυτόχρονα. Η κοινοχρησία μπορεί να συμβαίνει είτε μόνο στον δίσκο (να υπάρχει δηλαδή ένα μόνο αντικειμενικό αρχείο της βιβλιοθήκης), όπως συμβαίνει με τα αρχεία με επέκταση «.dll» στα Windows, είτε και στη μνήμη (να φορτώνεται μόνο μία φορά η βιβλιοθήκη στη μνήμη RAM και όσα προγράμματα τη χρησιμοποιούν να απεικονίζουν το τμήμα μνήμης που καταλαμβάνει στον ιδιωτικό, εικονικό τους χώρο διευθύνσεων), όπως συμβαίνει με τα αρχεία με επέκταση «.so» στο Unix. Επειδή το μορφότυπο αρχείου των βιβλιοθηκών είναι ίδιο με των αυτόνομων εκτελέσιμων και αντικειμενικών αρχείων, ακόμα κι ένα εκτελέσιμο

35


Βιβλιοθήκη (υπολογιστές) μπορεί να χρησιμοποιηθεί ως κοινόχρηστη βιβλιοθήκη, αρκεί να περιέχει έναν πίνακα συμβόλων για χρήση από τον συνδέτη χρόνου εκτέλεσης, με πληροφορίες για τις συναρτήσεις και τις δομές δεδομένων που εξάγει. Η διάδοση του αντικειμενοστρεφούς προγραμματισμού στις αρχές της δεκαετίας του 1990 έκανε επιτακτική την ανάγκη προτυποποίησης ενός μορφοτύπου αντικειμενικών αρχείων βιβλιοθηκών που δεν θα περιείχαν μεμονωμένες δομές δεδομένων και διαδικασίες, αλλά κλάσεις. Η κληρονομικότητα όμως, έμφυτο και ισχυρό χαρακτηριστικό της αντικειμενοστρέφειας, δυσχέραινε αυτήν την προσπάθεια, αφού για να οριστεί μία μέθοδος (η αντικειμενοστρεφής «εκδοχή» της διαδικασίας) δεν επαρκεί το πλήρες αναγνωριστικό της και το σημείο εισόδου του κώδικά της, αλλά χρειάζεται και μια λίστα των κλάσεων από τις οποίες κληρονομείται. Παράλληλα την ίδια στιγμή είχαν γίνει δημοφιλή τα κατανεμημένα συστήματα λογισμικού, τα οποία επέτρεπαν σε ένα πρόγραμμα να εκτελεί διαφανώς κλήσεις σε απομακρυσμένες διαδικασίες, ο κώδικας των οποίων ήταν τοποθετημένος σε κάποιον άλλον κόμβο ενός δικτύου υπολογιστών. Οι ενδιαφερόμενες εταιρίες, λοιπόν, περί το 1995, προτυποποίησαν διάφορα μορφότυπα αντικειμενικών αρχείων βιβλιοθηκών κλάσεων, οι μέθοδοι των οποίων μπορούσαν να εκτελεστούν σε διαφορετικά ΛΣ και να προσπελαστούν από διάφορες γλώσσες προγραμματισμού. Συνήθως οι βιβλιοθήκες αυτές διατίθονταν σε δύο εκδόσεις: μία απλή και μία κατανεμημένη, η οποία λειτουργούσε ως ενδιάμεσο λογισμικό και υποστήριζε απομακρυσμένη πρόσβαση και κλήση μεθόδων. Με το πέρασμα του χρόνου το μόνο που επιβίωσε από αυτά τα πρότυπα είναι το COM της Microsoft (με το DCOM να είναι η κατανεμημένη εκδοχή του). Εξαίρεση αποτέλεσε ο προγραμματιστικός κόσμος της Java ο οποίος ακολούθησε τη δική του οδό, αφού τα προγράμματα και οι βιβλιοθήκες της Java δεν μεταγλωττίζονται σε εγγενή κώδικα μηχανής αλλά σε έναν ενδιάμεσο, κοινό για όλες τις αρχιτεκτονικές υπολογιστών, bytecode, ο οποίος για να τρέξει διερμηνεύεται σε χρόνο εκτέλεσης από μία Εικονική Μηχανή Java, ένα περιβάλλον εκτέλεσης που τοποθετείται πάνω από το ΛΣ. Στην Java κάθε κλάση μεταγλωττίζεται σε ένα αρχείο με επέκταση «.class», αντίστοιχο του αντικειμενικού αρχείου, το οποίο περιέχει bytecode, ενώ ένα αυτόνομο πρόγραμμα είναι απλώς μία κλάση που περιέχει μία μέθοδο με όνομα main() ως σημείο εισόδου. Ο συνδέτης και ο φορτωτής αποτελούν τμήματα της Εικονικής Μηχανής Java και καλούνται αυτόματα και δυναμικά όταν επίκειται εκτέλεση ενός αρχείου .class. Μία συλλογή αρχείων .class που δεν περιέχουν μεθόδους main(), ουσιαστικά δηλαδή μία βιβλιοθήκη κλάσεων, μπορεί να συνενωθεί σε ένα συμπιεσμένο αρχείο «.jar», το οποίο δεν είναι παρά ένα ανεξάρτητο αρχιτεκτονικής μορφότυπο μεταγλωττισμένων (σε bytecode) βιβλιοθηκών κλάσεων.

Ονομασία • GNU/Linux, Solaris και κλώνοι του BSD: libfoo.a και libfoo.so τα αρχεία τοποθετούνται σε καταλόγους όπως /lib, /usr/lib ή /usr/local/lib. Τα ονόματα των αρχείων ξεκινούν πάντα με lib, και τελειώνουν με .a (αρχειοθήκες, πρακτικά στατικές βιβλιοθήκες) ή .so (δυναμικές κοινόχρηστες βιβλιοθήκες), με έναν προαιρετικό αριθμό έκδοσης. Για παράδειγμα η libfoo.so.2 είναι η δεύτερη κύρια αναθεώρηση της δυναμικής βιβλιοθήκης foo. Παλιές εκδόσεις του Unix χρησιμοποιούσαν πρωτεύοντα και δευτερεύοντα αριθμό έκδοσης, π.χ. libfoo.so.1.2, ενώ οι σύγχρονες εκδόσεις μόνο τον πρωτεύοντα, π.χ. (libfoo.so.1). Δυναμικές βιβλιοθήκες τοποθετούνται στο /usr/libexec και παρόμοιους καταλόγους. Η επέκταση .la, που συναντάται σε αρχεία ορισμένες φορές, αφορά αρχειοθήκες libtool σε μη άμεσα χρησιμοποιήσιμη κατάσταση. • Mac OS X και άνω: Το σύστημα κληρονομεί για τις στατικές βιβλιοθήκες τις συμβάσεις του BSD και μπορεί να χρησιμοποιεί και βιβλιοθήκες τύπου .so (όμως με την επέκταση .dylib). • Microsoft Windows: αρχεία με επέκταση .lib αποτελούν στατικές βιβλιοθήκες, ενώ αρχεία με κατάληξη .dll δυναμικές βιβλιοθήκες. Οι εκδόσεις είναι κωδικοποιημένες μέσα στα αρχεία.

36


Βιβλιοθήκη (υπολογιστές)

Εξωτερικοι σύνδεσμοι • • • •

Βιβλιοθήκες στο Linux [1] Σύνδεση και φόρτωση βιβλιοθηκών [2] Πώς να δημιουργήσετε βιβλιοθήκες προγραμμάτων [3] Πώς να δημιουργήσετε κοινόχρηστες βιβλιοθήκες [4]

Παραπομπές [1] [2] [3] [4]

http:/ / www. dwheeler. com/ program-library/ http:/ / www. iecc. com/ linker/ http:/ / www. enderunix. org/ simsek/ articles/ libraries. pdf http:/ / people. redhat. com/ drepper/ dsohowto. pdf

37


38

Βιβλιόφωνο Βιβλιόφωνο To βιβλιόφωνο είναι συσκευή[1] που επιτρέπει την επικοινωνία μεταξύ ενός φυσικού αντικειμένου και της ψηφιοποιημένης πληροφορίας που περιέχεται σε μία βάση δεδομένων. Πρωτοχρησιμοποιήθηκε το 2007 κατά την εφαρμογή του προγράμματος «Διαδραστική Παιδική Βιβλιοθήκη» στη Δημοτική Βιβλιοθήκη του Άαρχους της Δανίας[2] . Η συσκευή δοκιμάστηκε στις δύο φυσικές εκδοχές της από βιβλιοθηκονόμους και μαθητές σχολείων της περιοχής.

Περιγραφή και λειτουργία Στην πρώτη μορφή της αποτελείται από δύο «χωνιά» συνδεδεμένα με ένα καλώδιο. Το ένα τοποθετείται από το χρήστη πάνω σε ένα βιβλίο και το άλλο χρησιμοποιείται για ηχείο και μικρόφωνο ηχογράφησης. Στην δεύτερη μορφή της, η συσκευή μοιάζει με «δοχείο λαδιού» του οποίου η βάση τοποθετείται πάνω στο βιβλίο, στο δε πάνω μέρος του, υπάρχει ηχείο ώστε μπορεί να ακούγονται τα διάφορα ηχητικά μηνύματα από ολόκληρη ομάδα ακροατών. Και στην εκδοχή αυτή υπάρχει μικρόφωνο για ηχογράφηση νέων μηνυμάτων. Η συσκευή διαβάζει ετικέτα ταυτοποίησης μέσω ραδιοσυχνοτήτων RFID, η οποία αντικαθιστά τους συνήθως χρησιμοποιούμενους κατά το παρελθόν γραμμωτούς κωδικούς. Ο σκοπός του βιβλιόφωνου είναι να προσφέρει πρόσθετες πληροφορίες για το βιβλίο, όπως άρθρα κριτικών, συνεντεύξεις συγγραφέων, γνώμες αναγνωστών ή οτιδήποτε άλλο σχετικό. Όλος αυτός ο σχολιασμός του συγκεκριμένου βιβλίου προβλέπεται πως θα βοηθήσει το χρήστη της βιβλιοθήκης να διαλέξει ένα βιβλίο ανάλογα με τα ενδιαφέροντά του και τις ανάγκες του. Επιπλέον, μπορεί να προσθέσει και ο κάθε νέος αναγνώστης το δικό του σχολιασμό.

Ωφέλειες Τα κέρδη επομένως από το βιβλιόφωνο είναι τριπλά. Πρώτον, να καθοδηγηθούν οι μαθητές καλύτερα στην επιλογή βιβλίων της αρεσκείας τους, αφού αρκετές έρευνες[3] έχουν αποδείξει πως οι μαθητές αναζητούν το επιθυμητό για αυτούς υλικό για διάβασμα ανάλογα με το θέμα και το λογοτεχνικό είδος, οπότε τα σχόλια που θα τους προσφέρει το βιβλιόφωνο θα τους βοηθούν σημαντικά. Δεύτερον, οι ήδη αποθηκευμένες πληροφορίες για τα βιβλία (μεταδεδομένα) τις οποίες η βιβλιοθήκη έχει ήδη συγκεντρώσει στον ιστότοπό της, στο ειδικό ιστολόγιό της ή ακόμη σε ειδικές λίστες είναι πιο άμεσα και εύκολα διαθέσιμες μέσω του βιβλιόφωνου. Ο χρήστης δηλαδή αντί να αναζητεί τα μεταδεδομένα σε διάφορες πηγές, τα βρίσκει όλα συγκεντρωμένα πάνω στο βιβλίο πριν το φυλλομετρήσει. Τρίτο, και ίσως πιο σημαντικό, δίδεται η ευκαιρία στον ίδιο τον αναγνώστη να προσθέσει τη δική του γνώμη και πιθανόν να επηρεάσει αρκετούς συνομηλίκους του να αναζητήσουν ένα συγκεκριμένο βιβλίο. Η συνομιλία αυτή των χρηστών – αναγνωστών με το βιβλίο μετατρέπει την απλή αναζήτηση ενός βιβλίου από ένα «μοναχικό» αναγνώστη σε ζωντανή διαδραστική κοινωνική δραστηριότητα. Όποια εκδοχή του βιβλιόφωνου και να χρησιμοποιηθεί, ομαδική ή ατομική, διευκολύνει την ανταλλαγή πληροφοριών μεταξύ πολλών ατόμων τη στιγμή ακριβώς που τις χρειαζόμαστε.


Βιβλιόφωνο

Βιβλιογραφία • Lykke-Olesen, A. & Nielsen, J. (2007) BibPhone- Adding Sound to the Children’s Library. IDC 07, June 6-8 2007 Aalborg, Denmark • Reuter, K. & Druin, A. (2004) Bringing Together Children and Books: An Initial Descriptive Study of Children’s Book Searching and Selection Behavior in a Digital Library. Proceedings of the 67th Annual Meeting of the American Society for Information Science and Technology.

Πηγές [1] Αρχείο σε μορφή PDF (http:/ / andreas. lykke-olesen. dk/ image/ idc2007_2/ bibphone_camera_ready. pdf) [2] Δημοτική Βιβλιοθήκη Άαρχους (http:/ / www. aakb. dk/ sw1379. asp) [3] Bringing Together Children and Books: An Initial Descriptive Study of Children’s Book Searching and Selection Behavior in a Digital Library (http:/ / hcil. cs. umd. edu/ trs/ 2004-02/ 2004-02. html)

39


40

Βιομετρία Βιομετρία Η Βιομετρία, (biometry ή biometrics), είναι μια εξειδικευμένη επιστήμη που το αντικείμενο της έρευνάς της είναι η ανάλυση των βιολογικών στοιχείων μέσω δικών της στατιστικών και μαθηματικών μεθόδων. Συγκεκριμένα η Βιομετρία αναλύει με δική της μεθοδολογία, χρησιμοποιώντας ειδικά όργανα, τα βιομετρικά χαρακτηριστικά των έμβιων ζωϊκών ειδών και ειδικότερα του ανθρώπου. Έτσι υπό τη γενικότερη έννοια αποτελεί κλάδο της Βιολογίας, ενώ υπό την ειδικότερη επί της Φυσικής ανθρωπολογίας, σε επιμέρους κλάδο (της Βιομετρίας), που ονομάζεται Ανθρωπομετρία. Ως κλαδος της Βιομετρίας η ανθρωπομετρία διαιρείται επιμέρους σε: 1. Σωματομετρία 2. Σωματοσκοπία 3. Μορφολογία • Παράλληλα αυτών η ανθρωπομετρία διακρίνεται και στη Δικαστική Ανθρωπομετρία, που αποτελεί και κλάδο της Εγκληματολογίας. Νεότερος σύγχρονος κλάδος της Βιομετρίας είναι η Εργονομική Βιομετρία, που αποτελεί και ταυτόσημο κλάδο της Εργονομίας.


41

Δεδομένα Δεδομένα Τα δεδομένα (στα αγγλ. data, από τον πληθ. του λατιν. datum) είναι ένα σύνολο διακριτών, αντικειμενικών στοιχείων για γεγονότα[1] . Μπορεί να είναι αριθμοί, λέξεις, σύμβολα, γεγονότα, που περιγράφουν ή αντιπροσωπεύουν ποσότητες, έννοιες, ιδέες, αντικείμενα, καταστάσεις και λειτουργίες. Στην πληροφορική συναντούμε τα δεδομένα στον πληθυντικό αριθμό, σπανιότερα στον ενικό (δεδομένο). Επίσης, δεδομένο ονομάζεται ένα γνωστό ή αποδεκτό στοιχείο το οποίο χρησιμοποιείται ως βάση ή προϋπόθεση στην επίλυση προβλημάτων[2] . Τα δεδομένα περιγράφουν μόνο μέρος ενός συμβάντος, δεν περιλαμβάνουν καμία ανάλυση, κριτική ή αξιόπιστη βάση για περαιτέρω ενέργεια. Τα δεδομένα δεν αναφέρουν τίποτα για τη σημαντικότητά τους ή τη σχέση τους προς οτιδήποτε. Σε αντίθεση με τα δεδομένα η πληροφορία έχει ορισμένο νόημα και είναι οργανωμένη για συγκεκριμένο σκοπό.[1] . Με την προσθήκη αξιών στα δεδομένα με διαμόρφωση, οργάνωση, μαθηματική ή στατιστική ανάλυση, διόρθωση λαθών ή συμπίεση παράγεται η πληροφορία[1] [3] . Τη διαδικασία αυτή ονομάζουμε επεξεργασία δεδομένων.

Παραπομπές [1] Thomas H. Davenport, Laurence Prusak, Working Knowledge: How Organizations Manage What They Know, Harvard Business Press, 1998, σελ. 2, ISBN 9780875846552 [2] Λεξικό της Kοινής Nεοελληνικής, Ινστιτούτο Νεοελληνικών Σπουδών του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης 1998 [3] Δαμιανάκης, Τζαβάρας, Μαβόγλου, Νταντουρής, Πληροφορική Γυμνασίου, εκδ. ΟΕΔΒ, Αθήνα, 2000


42

Δείκτης (πληροφορική) Δείκτης (πληροφορική) Στην πληροφορική, ο δείκτης (αγλ. Pointer) είναι ένας τύπος δεδομένων που η τιμή του είναι η διεύθυνση που έχει στη μνήμη κάποια άλλη τιμή. Στις περισσότερες γλώσσες υψηλού επιπέδου οι δείκτες χρησιμοποιούνται σπανίως διότι αυτές παρέχουν άλλους μηχανισμούς που κάνουν περιττή την χρήση δεικτών. Στις γλώσσες υψηλού επιπέδου που χρησιμοποιούνται οι δείκτες, παίζουν ουσιαστικά τον ρόλο καταχωρητών γενικού σκοπού των γλωσσών χαμηλού επιπέδου όπως είναι η συμβολική γλώσσα και η γλώσσα μηχανής.


43

Δεκαεξαδικό σύστημα αρίθμησης Δεκαεξαδικό σύστημα αρίθμησης Το δεκαεξαδικό σύστημα αρίθμησης είναι ένα θεσιακό σύστημα αναπαράστασης αριθμών. Έχει ως βάση του τον αριθμό 16. Αυτό σημαίνει ότι, σε μια σειρά ψηφίων, κάθε ψηφίο έχει αξία 16 φορές μεγαλύτερη από εκείνο που βρίσκεται αμέσως δεξιά του. Δηλαδή, οι θέσεις των ψηφίων στο δεκαεξαδικό σύστημα δηλώνουν μονάδες, άδες, άδες κ.ο.κ., σε αναλογία με το δεκαδικό σύστημα, όπου οι θέσεις δηλώνουν δυνάμεις του δέκα (μονάδες, δεκάδες, εκατοντάδες...) 0hex =

0dec

=

0oct

0 0 0 0

1hex =

1dec

=

1oct

0 0 0 1

2hex =

2dec

=

2oct

0 0 1 0

3hex =

3dec

=

3oct

0 0 1 1

4hex =

4dec

=

4oct

0 1 0 0

5hex =

5dec

=

5oct

0 1 0 1

6hex =

6dec

=

6oct

0 1 1 0

7hex =

7dec

=

7oct

0 1 1 1

8hex =

8dec

= 10oct 1 0 0 0

9hex =

9dec

= 11oct 1 0 0 1

Ahex = 10dec = 12oct 1 0 1 0 Bhex = 11dec = 13oct 1 0 1 1 Chex = 12dec = 14oct 1 1 0 0 Dhex = 13dec = 15oct 1 1 0 1 Ehex = 14dec = 16oct 1 1 1 0 Fhex = 15dec = 17oct 1 1 1 1

Για την αναπαράστασή του, το δεκαεξαδικό σύστημα έχει ανάγκη 16 ψηφίων. Για τα πρώτα δέκα, χρησιμοποιούνται τα ψηφία 0 - 9 της αραβικής αναπαράστασης του δεκαδικού συστήματος. Για να αναπαρασταθούν οι αξίες από το 10 έως και το 15, δανειζόμαστε τα πρώτα 6 κεφαλαία γράμματα του λατινικού αλφαβήτου: A, B, C, D, E και F. Για παράδειγμα, ο δεκαδικός αριθμός (79)10 (79, βάση 10) απεικονίζεται στο δεκαεξαδικό σαν (4F)16 (4F, βάση 16), δηλαδή:


Δεκαεξαδικό σύστημα αρίθμησης

44

Χρήση Η αρχική χρήση του ήταν στους υπολογιστές, μιας και είναι εύκολη η μεταφορά ενός αριθμού από το δυαδικό, δηλαδή την γλώσσα μηχανής. Η μετατροπή ενός δυαδικού αριθμού στο δεκαεξαδικό σύστημα είναι εύκολη υπόθεση αρκεί να σκεφτούμε ότι κάθε δεκαεξαδικός αριθμός αποτελείται από έναν 4ψήφιο δυαδικό πχ το 7 = 0111 και το F = 1111 (βλέπε πίνακα). Οι εντολές στους αρχικούς υπολογιστές γράφονταν σαν δεκαεξαδικοί αριθμοί και η γλώσσα μηχανής είναι βασισμένη σε αυτούς. Παράδειγμα η εντολή επανέλαβε (loop) είναι 039A. Ο πίνακας ASCII είναι ένας πίνακας που αποτελείται από δυο 16δικούς αριθμούς που αντιπροσωπεύουν τα Αγγλικά στοιχεία και όχι μόνο.

Παράδειγμα στο μέρος της διεύθυνσης στον φυλλομετρητή σας μπορείτε να δείτε την αντιπροσώπευση των Ελληνικών. Η λέξη Δεκαεξαδικό_σύστημα μεταφράζεται σαν %CE%94%CE%B5%CE%BA%CE%B1%CE%B5%CE%BE%CE%B1%CE%B4%CE%B9%CE%BA%CF%8C_%CF%83%CF%8 Η πιο κοινή μετάφραση είναι του κενού (%20) που δεν επιτρέπεται σαν ονομασία (URL). Το δεκαεξαδικό σύστημα παρουσιάζει ειδικό ενδιαφέρον, γιατί υπάρχει μια 1-1 αντιστοιχία ανάμεσα σε κάθε δεκαεξαδικό ψηφίο και σε κάθε μία από τις ομάδες 4 ψηφίων του δυαδικού συστήματος. Αυτό οφείλεται στο γεγονός ότι το 16 είναι δύναμη του 2, . Εύκολα προκύπτει από αυτό ότι υπάρχουν 16 δυνατοί συνδυασμοί 4 ψηφίων, το καθένα από τα οποία μπορεί να είναι είτε "0" είτε "1", δηλ. τα ψηφία του δυαδικού συστήματος. Κάθε ένας από αυτούς τους συνδυασμούς αντιστοιχεί στο δεκαεξαδικό ψηφίο που παριστάνει την αριθμητική αξία του, ως εξής: Λόγω της αντιστοιχίας αυτής, το δεκαεξαδικό σύστημα, όπως και το οκταδικό, παίζουν σπουδαίο ρόλο στον προγραμματισμό των ηλεκτρονικών υπολογιστών. Η κύρια χρησιμότητά τους είναι να συμπτύσσουν ομάδες από bits (κάθε bit αναπαριστά ένα δυαδικό ψηφίο). Για παράδειγμα, δύο δεκαεξαδικά ψηφία μπορούν να κωδικοποιήσουν μια ψηφιολέξη (byte), δηλ. μια σειρά από 8 bits.


45

Διαδίκτυο Διαδίκτυο Το Διαδίκτυο, γνωστό συνήθως και με την αγγλική άκλιτη ονομασία Internet, είναι ένα μέσο μαζικής επικοινωνίας (ΜΜΕ), όπως είναι για παράδειγμα και η τηλεόραση αν και η τελευταία έχει πολύ περιορισμένο αμφίδρομο χαρακτήρα. Ως μέσο έχει διπλή υπόσταση: η υλική (που αποτελείται από τον συνδυασμό δικτύων βασισμένων σε λογισμικό και υλικό), και η άϋλη (αυτό, δηλαδή, που "κάνει" / προσφέρει στην κοινωνία το Διαδίκτυο ως μέσο).

Το Διαδίκτυο και η Επικοινωνία Με την εμφάνιση οποιουδήποτε νέου μέσου, ο τομέας της επικοινωνίας αναμφισβήτητα επηρεάζεται. Η επίδραση αυτή Οπτικοποιημένη αναπαράσταση διαφόρων πηγάζει κυρίως από την τεχνολογία του νέου μέσου. Σε τι επίπεδο διαδρομών (routes) διαμέσου ενός τμήματος του Ίντερνετ μπορεί η τεχνολογία του Διαδικτύου να αλλάξει τον τρόπο με τον οποίο επικοινωνούν και πληροφορούνται μαζικά οι άνθρωποι; Υπάρχουν διαφορετικές και αντικρουόμενες προσεγγίσεις πάνω στο θέμα. Σύμφωνα με την προσέγγιση της ιντερνετοφιλίας (ένα μείγμα κλασικής πλουραλιστικής προσέγγισης και τεχνολογικού ντετερμινισμού), το Διαδίκτυο, αλλά και η ψηφιακή τεχνολογία γενικότερα, έχουν την ικανότητα να δημιουργούν εικονικούς "χώρους", εικονικές "κοινότητες", όπου παύουν να υφίστανται οι κοινωνικές και πολιτιστικές διαχωριστικές γραμμές που υπάρχουν στον πραγματικό κόσμο και που τα παραδοσιακά μέσα επικοινωνίας αδυνατούν να ξεπεράσουν εύκολα . Η επικοινωνία μέσω του Διαδικτύου γίνεται άμεση και αμφίδρομη. Δίνεται η δυνατότητα σε κάθε χρήστη ηλεκτρονικού υπολογιστή συνδεδεμένου στο Διαδίκτυο να πληροφορηθεί αλλά και να πληροφορήσει ανταλλάσσοντας απόψεις μέσω ενός συμμετοχικότερου και λιγότερο ελεγχόμενου διαύλου επικοινωνίας. Οι χρήστες αποκτούν ολοένα και περισσότερο την ιδιότητα του παγκόσμιου πολίτη. Υπάρχει έντονη τάση, ήδη από την αρχή της εμφάνισής του Διαδικτύου, να θεωρείται ένα άκρως δημοκρατικό μέσο μαζικής επικοινωνίας, το οποίο αποδιαμεσολαβεί την επικοινωνία και καθιστά ισχυρότερο τον μέσο άνθρωπο, καθώς δίνει στον τελευταίο τη δυνατότητα πρόσβασης σε μεγάλο όγκο πληροφοριών συγκεντρωμένων σε ένα "χώρο" και την δυνατότητα της προσωπικής επιλογής των πληροφοριών αυτών. Συνεπώς, η βασική θέση της προσέγγισης αυτής είναι ότι το Διαδίκτυο θα εκδημοκρατίσει την κοινωνία με το να βελτιώσει την επικοινωνία καταργώντας την ανάγκη για διαμεσολάβηση. Οι υποστηρικτές της παραπάνω θέσης αποδίδουν την ικανότητα του Διαδικτύου να αποδιαμεσολαβεί την επικοινωνία, στην ίδια την φύση της τεχνολογίας του. Η τεχνολογία του είναι το στοιχείο που το διαφοροποιεί από τα παραδοσιακά μέσα (τα οποία, κατά την ιντερνετοφιλία, διαμεσολαβούν την επικοινωνία). Αυτό όμως προϋποθέτει ότι η τεχνολογία είναι ουδέτερη, απλώς ένα εργαλείο ανεπηρέαστο από άλλους παράγοντες. Σε αυτό το σημείο έρχεται ο αντίλογος, που θεωρεί οτι η τεχνολογία (για παράδειγμα ένα πρόγραμμα λογισμικού) εξ ορισμού διαμεσολαβεί την επικοινωνία. Κατά αυτήν την προσέγγιση, το Διαδίκτυο, αφού χάνει την ιδιότητά του να αποδιαμεσολαβεί, δεν μπορεί να βελτιώσει την επικοινωνία και την κοινωνία σε τέτοιο βαθμό που οι ιντερνετοφιλικοί ισχυρίζονται ότι μπορεί. Σύμφωνα με την "άντι-πλουραλιστική" προσέγγιση αυτό που κάνει


Διαδίκτυο το Διαδίκτυο είναι τελικά να επαναδιαμεσολαβεί την επικοινωνία. Αμφισβήτηση τίθεται και στο κατά πόσο το Διαδίκτυο είναι παγκόσμιο. Σύμφωνα με έρευνες, μόνο το 8% του παγκόσμιου πληθυσμού είναι on-line. Η ύπαρξη αυτού του ψηφιακού χάσματος, όπως έχει ονομαστεί, αποτελεί ένα πολύ σημαντικό επιχείρημα κατά της ιντερνετοφιλικής προσέγγισης. Εκτός από το χάσμα αυτό καθαυτό, παρατηρείται και δυσαναλογία δυνατότητας για χωρητικότητα απο τόπο σε τόπο, γεγονός που αυτομάτως αποκλείει ορισμένους χρήστες απο πληροφορίες που περιέχονται, για παράδειγμα, σε αρχεία υπό τη μορφή βίντεο. Ακόμα ένα επιχείρημα προς αυτή την κατεύθυνση είναι η εκτεταμένη χρήση του Διαδικτύου για εμπορικούς σκοπούς, κάτι που αυξάνει κατά πολύ τον έλεγχο τόσο του μέσου όσο και των πληροφοριών. Επίσης, η αμφιδρομικότητα δεν είναι απόλυτη σε κάθε έκφανση της χρήσης του Διαδικτύου. Το πόσο αμφίδρομη είναι μία διεπαφή μέσω Internet δεν εξαρτάται μόνο απ΄την δυνατότητα αμφιδρομικότητας που δίνει στον χρήστη το εκάστοτε λογισμικό. Τέλος, άλλο ένα στοιχείο που αποδεικνύει τον επαναδιαμεσολαβητικό και όχι αποδιαμεσολαβητικό χαρακτήρα του Διαδικτύου είναι η εκτεταμένη ιεράρχηση που έχει δεχτεί η on-line πληροφορία από τις μηχανές αναζήτησης (π.χ. Google).

Η τεχνολογία του Διαδικτύου Το Διαδίκτυο ή Ίντερνετ (Ιnternet) είναι ένα επικοινωνιακό δίκτυο ηλεκτρονικών υπολογιστών, που επιτρέπει την ανταλλαγή δεδομένων μεταξύ οποιουδήποτε διασυνδεδεμένου υπολογιστή. Η τεχνολογία του είναι κυρίως βασισμένη στην διασύνδεση επιμέρους δικτύων ανά τον κόσμο και πολυάριθμα τεχνολογικά πρωτόκολλα, με κύριο το TCP/IP. Ο αντίστοιχος αγγλικός όρος internet προκύπτει από τη σύνθεση λέξεων inter-network. Στην πιο εξειδικευμένη και περισσότερο χρησιμοποιούμενη μορφή του, με τους όρους Διαδίκτυο, Ιντερνέτ ή Ίντερνετ (με κεφαλαίο το αρχικό γράμμα) περιγράφεται το παγκόσμιο πλέγμα διασυνδεδεμένων υπολογιστών και των υπηρεσιών και πληροφοριών που παρέχει στους χρήστες του. Το Διαδίκτυο χρησιμοποιεί μεταγωγή πακέτων (packet switching) και τη στοίβα πρωτοκόλλων TCP/IP. Σήμερα, ο όρος Διαδίκτυο κατέληξε να αναφέρεται στο παγκόσμιο αυτό δίκτυο. Για να ξεχωρίζει, το παγκόσμιο αυτό δίκτυο γράφεται με κεφαλαίο το αρχικό "Δ". Η τεχνική της διασύνδεσης δικτύων μέσω μεταγωγής πακέτων και της στοίβας πρωτοκόλλων TCP/IP ονομάζεται Διαδικτύωση. Μερικά από τα πιο γνωστά διαδικτυακά πρωτόκολλα είναι το IP, TCP, το UDP, το DNS, το PPP, το SLIP, το ICMP, το POP3, IMAP, το SMTP, το HTTP, το HTTPS, το SSH, το Telnet, το FTP, το LDAP και το SSL. Μερικές από τις πιο γνωστές Διαδικτυακές υπηρεσίες που χρησιμοποιούν αυτά τα πρωτόκολλα είναι: • • • • •

Το ηλεκτρονικό ταχυδρομείο (e-mail), Οι ομάδες συζητήσεων (newsgroups), Η διαμοίραση αρχείων (file sharing) Η επιφόρτωση αρχείων (file transfer) Ο Παγκόσμιος Ιστός (World Wide Web).

Από αυτές, το ηλεκτρονικό ταχυδρομείο και ο Παγκόσμιος Ιστός είναι οι πιο ευρέως χρησιμοποιούμενες, ενώ πολλές άλλες υπηρεσίες έχουν βασιστεί πάνω σε αυτές, όπως οι ταχυδρομικές λίστες (mailing lists) και τα αρχεία καταγραφής ιστού (blogs). Το Διαδίκτυο καθιστά δυνατή τη διάθεση υπηρεσιών σε πραγματικό χρόνο, υπηρεσίες όπως το ραδιόφωνο μέσω Ιστού και οι προβλέψεις μέσω Ιστού, που είναι προσπελάσιμες από οπουδήποτε στον κόσμο. Κάποιες γνωστές υπηρεσίες του Διαδικτύου δεν δημιουργήθηκαν με αυτόν τον τρόπο αλλά βασίστηκαν αρχικά σε ιδιωτικά συστήματα. Αυτές περιλαμβάνουν το ICQ, το AIM, το CDDB και το Gnutella. Έχουν γίνει πολλές αναλύσεις για το Διαδίκτυο και την δομή του. Για παράδειγμα, είναι καθορισμένο ότι η δομή δρομολόγησης του Διαδικτύου και οι υπερσύνδεσμοι του Παγκόσμιου Ιστού είναι παραδείγματα μη κλιμακούμενων δικτύων. Μερικά μεγάλα ακαδημαϊκά υποδίκτυα του Διαδικτύου είναι τα ακόλουθα:

46


Διαδίκτυο • • • •

GEANT Internet2 Little GLORIAD JANET

Η ιστορία του Διαδικτύου Οι πρώτες απόπειρες για την δημιουργία ενός διαδικτύου ξεκίνησαν στις ΗΠΑ κατά την διάρκεια του ψυχρού πολέμου. Η Ρωσία είχε ήδη στείλει στο διάστημα τον δορυφόρο Σπούτνικ 1 κάνοντας τους Αμερικανούς να φοβούνται όλο και περισσότερο για την ασφάλεια της χώρας τους. Θέλοντας λοιπόν να προστατευτούν απο μια πιθανή πυρηνική επίθεση των Ρώσων δημιούργησαν την υπηρεσία προηγμένων αμυντικών ερευνών ARPA (Advanced Research Project Agency) γνωστή ως DARPA (Defense Advanced Research Projects Agency) στις μέρες μας. Αποστολή της συγκεκριμένης υπηρεσίας ήταν να βοηθήσει τις στρατιωτικές δυνάμεις των ΗΠΑ να αναπτυχθούν τεχνολογικά και να δημιουργηθεί ένα δίκτυο επικοινωνίας το οποίο θα μπορούσε να επιβιώσει σε μια ενδεχόμενη πυρηνική επίθεση. Το αρχικό θεωρητικό υπόβαθρο δόθηκε από τον Τζ. Λικλάιντερ (J.C.R. Licklider) που ανέφερε σε συγγράμματά του το "γαλαξιακό δίκτυο". Η θεωρία αυτή υποστήριζε την ύπαρξη ενός δικτύου υπολογιστών που θα ήταν συνδεδεμένοι μεταξύ τους και θα μπορούσαν να ανταλλάσσουν γρήγορα πληροφορίες και προγράμματα. Το επόμενο θέμα που προέκυπτε ήταν ότι το δίκτυο αυτό θα έπρεπε να ήταν αποκεντρωμένο έτσι ώστε ακόμα κι αν κάποιος κόμβος του δεχόταν επίθεση να υπήρχε δίοδος επικοινωνίας για τους υπόλοιπους υπολογιστές. Τη λύση σε αυτό έδωσε ο Πολ Μπάραν (Paul Baran) με τον σχεδιασμό ενός κατανεμημένου δικτύου επικοινωνίας που χρησιμοποιούσε την ψηφιακή τεχνολογία. Πολύ σημαντικό ρόλο έπαιξε και η θεωρία ανταλλαγής πακέτων του Λέοναρντ Κλάινροκ (Leonard Kleinrock), που υποστήριζε ότι πακέτα πληροφοριών που θα περιείχαν την προέλευση και τον προορισμό τους μπορούσαν να σταλούν από έναν υπολογιστή σε έναν άλλο. Στηριζόμενο λοιπόν σε αυτές τις τρεις θεωρίες δημιουργήθηκε το πρώτο είδος διαδικτύου γνωστο ως ARPANET. Εγκαταστάθηκε και λειτούργησε για πρώτη φορά το 1969 με 4 κόμβους μέσω των οποίων συνδέονται 4 μίνι υπολογιστές (mini computers 12k): του πανεπιστημίου της Καλιφόρνια στην Σάντα Μπάρμπαρα του πανεπιστημίου της Καλιφόρνια στο Λος Άντζελες, το SRI στο Στάνφορντ και το πανεπιστήμιο της Γιούτα. Η ταχύτητα του δικτύου έφθανε τα 50 kbps και έτσι επιτεύχθηκε η πρώτη dial up σύνδεση μέσω γραμμών τηλεφώνου. Μέχρι το 1972 οι συνδεδεμένοι στο ARPANET υπολογιστές έχουν φτάσει τους 23, οπότε και εφαρμόζεται για πρώτη φορά το σύστημα διαχείρισης ηλεκτρονικού ταχυδρομείου(e-mail). Παράλληλα δημιουργήθηκαν και άλλα δίκτυα, που χρησιμοποιούσαν διαφορετικές μεθόδους και τεχνικές(όπως το x.25 και το UUCP) τα οποία συνδέονταν με το ARPANET. Το πρωτόκολλο που χρησιμοποιούσε το ARPANET ήταν το NCP (Network Control Protocol), το οποίο, όμως, είχε το μειονέκτημα ότι λειτουργούσε μόνο με συγκεκριμένους τύπους υπολογιστών. Έτσι, δημιουργήθηκε η ανάγκη στις αρχές του 1970 για ένα πρωτόκολλο που θα ένωνε όλα τα δίκτυα που είχαν δημιουργηθεί μέχρι τότε. Το 1974 λοιπόν, δημοσιεύεται η μελέτη των Βιντ Σερφ (Vint Cerf) και Μπομπ Κάαν (Bob Kahn) από την οποία προέκυψε το πρωτόκολλο TCP (Transmission Control Protocol) που αργότερα το 1978 έγινε TCP/IP, προστέθηκε δηλαδή το Internet Protocol (IP), και τελικά το 1983 έγινε το μοναδικό πρωτόκολλο που ακολουθούσε το ARPANET. Το 1984 υλοποιείται το πρώτο DNS (Domain Name System) σύστημα στο οποίο καταγράφονται 1000 κεντρικοί κόμβοι και οι υπολογιστές του διαδικτύου πλέον αναγνωρίζονται απο διευθύνσεις κωδικοποιημένων αριθμών. Ένα ακόμα σημαντικό βήμα στην ανάπτυξη του Διαδικτύου έκανε το Εθνικό Ίδρυμα Επιστημών (National Science Foundation, NSF) των ΗΠΑ, το οποίο δημιούργησε την πρώτη διαδικτυακή πανεπιστημιακή ραχοκοκκαλιά (backbone), το NSFNet, το 1986. Ακολούθησε η ενσωμάτωση άλλων σημαντικών δικτύων, όπως το Usenet, το Fidonet και το Bitnet.

47


Διαδίκτυο Ο όρος Διαδίκτυο/Ίντερνετ ξεκίνησε να χρησιμοποιείται ευρέως την εποχή που συνδέθηκε το APRANET με το NSFNet και Ίντερνετ σήμαινε οποιοδήποτε δίκτυο χρησιμοποιούσε TCP/IP. Η μεγάλη άνθιση του Διαδικτύου όμως, ξεκίνησε με την εφαρμογή της υπηρεσίας του Παγκόσμιου Ιστού από τον Τιμ Μπέρνερς-Λι στο ερευνητικό ίδρυμα CERN το 1989, ο οποίος είναι, στην ουσία, η πλατφόρμα, η οποία κάνει εύκολη την πρόσβαση στο Ίντερνετ, ακόμα και στη μορφή που είναι γνωστό σήμερα

Οι πληροφορίες στο Διαδίκτυο Το Ίντερνετ, σε συνδυασμό με την ολοένα αναπτυσσόμενη ψηφιακή τεχνολογία, έχει δημιουργήσει μία τεράστια αγορά γνώσεων/πληροφοριών. Παραδοσιακές μορφές τέχνης (όπως για παράδειγμα ο κινηματογράφος και η μουσική) μέσω της ψηφιακής τεχνολογίας παίρνουν την ίδια μορφή (αρχείων δεδομένων) με αντικείμενα που εκ πρώτης όψεως είναι εντελώς διαφορετικά (όπως για παράδειγμα η ιατρική επιστήμη ή κάποιο πρόγραμμα λογισμικού). Παρατηρείται λοιπόν μία συγκέντρωση γνώσης ή, αν είναι δυνατό να λεχτεί, πολιτιστικής κληρονομιάς, που σχετίζεται άμεσα με το Ίντερνετ. Το μεγάλο ερώτημα που προκύπτει πλέον είναι το "ποιος θα διοικήσει, ποιος θα ελέγξει την γνώση αυτή". Από τη στιγμή που το Διαδίκτυο είναι ένα δίκτυο συνδεδεμένων υπολογιστών, κάθε χρήστης έχει την δυνατότητα να μοιραστεί πληροφορίες με άλλους χρήστες γενόμενος, πολλές φορές, ο ίδιος δημιουργός και πάροχος των πληροφοριών αυτών. Δεν υπάρχει άμεσος έλεγχος των πληροφοριών που "ανεβαίνουν" στο Διαδίκτυο από κάποιον ιεραρχικά ανώτερο χρήστη ή οργανισμό. Το θέμα της μη ιεραρχημένης πληροφορίας, όμως, τίθεται υπό αμφισβήτηση. Ο όγκος της πληροφορίας στο Διαδίκτυο είναι πράγματι μεγάλος. Παρ' όλα αυτά, υπάρχουν πληροφορίες ευκολότερα και δυσκολότερα προσβάσιμες από τον χρήστη. Το Ίντερνετ έκανε δυνατή την συγκέντρωση μεγάλου όγκου πληροφοριών και επηρέασε σημαντικά τον τρόπο διάθεσής τους. Δεν συμβαίνει, όμως, στον ίδιο βαθμό το ίδιο και στον τρόπο παραγωγής αυτών. Για παράδειγμα, ο τρόπος παραγωγής μιας κινηματογραφικής ταινίας δεν έχει επηρεαστεί σημαντικά απο την ύπαρξη του Ίντερνετ, ανεξάρτητα από το αν έχει επηρεαστεί ή όχι από την ψηφιακή τεχνολογία. Παρ' όλα αυτά, και σύμφωνα με την ιντερνετοφιλική προσέγγιση, το Διαδίκτυο ασκεί μεγάλη επίδραση στην διαδικασία παραγωγής δημοσιογραφικών προϊόντων. Η δημιουργία της είδησης παύει να είναι πλέον μονοπώλιο λίγων, αφού ο κάθε χρήστης μπορεί εάν το επιθυμεί να δημιουργήσει πληροφορία ανά πάσα στιγμή. Το πιο τρανταχτό παράδειγμα της επίδρασης αυτής είναι τα ιστολόγια (blogs), όπου μπορεί κανείς να εκφέρει απόψεις και να σχολιάσει γεγονότα πάσης φύσεως (βλ. δημοσιογραφία στον ιστό και δημοσιογραφία των πολιτών). Ως αποτέλεσμα της επιρροής αυτής του Ίντερνετ στη παραγωγή ειδήσεων τα όρια μεταξύ ενός απλού χρήστη του διαδικτύου και ενός επαγγελματία δημοσιογράφου γίνονται περισσότερο δυσδιάκριτα. Αυτό με τη σειρά του οδηγεί στην ανάγκη για επαναπροσδιορισμό της έννοιας της δημοσιογραφίας καθώς και της απαραίτητης εκπαίδευσης των δημοσιογράφων. Η ανάγκη για τον επαναπροσδιορισμό της δημοσιογραφίας, όμως, δεν είναι τόσο μεγάλη σύμφωνα με τους υποστηριχτές της "αντι-πλουραλιστικής" προσέγγισης, καθώς θεωρούν πως το Ίντερνετ δεν μπορεί να ασκήσει ουσιαστική επίδραση στην επικοινωνία γενικότερα και στην δημοσιογραφία ειδικότερα. Επίσης, λόγω της μεγάλης συγκέντρωσης γνώσης στο Διαδίκτυο, η έννοια της κοινωνικής ισότητας παίρνει και πάλι μεγάλη σημασία. Το χάσμα ανάμεσα σε πληροφοριακά πλούσιους και πληροφοριακά φτωχούς θα διευρύνεται όσο αυξάνεται η συγκέντρωση της γνώσης αυτής. Το παραπάνω αποτελεί ακόμα έναν λόγο που κάνει πιο επιτακτική την ανάγκη για διερεύνηση του αρχικού ερωτήματος "ποιος θα ελέγξει τη γνώση αυτή". Η γλώσσα που χρησιμοποιείται περισσότερο στη διακίνηση της πληροφορίας στο Διαδίκτυο είναι η Αγγλική. Έχοντας αναπτυχθεί τα τελευταία χρόνια, το Διαδίκτυο περιλαμβάνει πλέον ποιοτικά και ποσοτικά ευρύ περιεχόμενο και στις υπόλοιπες γλώσσες των περισσότερο αναπτυγμένων χωρών. Ωστόσο, υπάρχουν ακόμα δυσλειτουργίες και τεχνικά προβλήματα σχετικά με την κωδικοποίηση, όπως το mojibake.

48


Διαδίκτυο

Νομικά και ηθικά ζητήματα Η παραβίαση πνευματικών δικαιωμάτων, η πορνογραφία, η ψευδοπροσωπία και η προσφορά παρανόμων προϊόντων είναι φαινόμενα υπαρκτά στο Ίντερνετ και ο περιορισμός τους είναι ιδιαίτερα δύσκολος. Για παράδειγμα, η λέξη "sex" παραμένει μία από τις πλέον δημοφιλείς στις μηχανές αναζήτησης. Συχνά, η ανησυχία αυτή, που θεωρείται από κάποιους αβάσιμη,μπορεί να υποστηριχθεί από κάποια εγκλήματα ή αποτρόπαιες καταστάσεις (συνήθως περιπτώσεις παιδεραστίας κ.ά.). Το Διαδίκτυο έχει κατηγορηθεί ως παράγοντας που έπαιξε ρόλο σε θανάτους [1][2]. Ο Μπράντον Βέντας (Brandon Vedas) πέθανε από υπερβολική δόση ενός μίγματος νομίμων και παρανόμων ναρκωτικών παρακινούμενος από συνομιλητές του στο IRC. Ο Σων Γούλεϊ (Shawn Woolley) αυτοκτόνησε με πιστόλι για λόγους που σχετίζονται με τον εθισμό του με το EverQuest, ένα Μαζικά Πολυχρηστικό Διαδικτυακό Παιχνίδι Ρόλων (MMORPG), όπως ισχυρίστηκε η μητέρα του. Ο Άρμιν Μάιβες (Armin Meiwes) μαχαίρωσε μέχρι θανάτου και έφαγε μέρος του σώματος του Μπέρντ-Γιούργκεν Μπράντες (Bernd Jürgen Brandes) όταν ο τελευταίος απάντησε στην αγγελία του πρώτου που ζητούσε έναν «μεγαλόσωμο άνδρα έτοιμο να σφαγιαστεί και μετά να καταβροχθιστεί». Επιπλέον, το Διαδίκτυο είναι μη ελεγχόμενο, με την έννοια ότι δεν υπάρχει κάποια ενιαία κυβερνητική ή άλλη, αντίστοιχη, αρχή, η οποία να ελέγχει το περιεχόμενό του πριν αυτό δημοσιευθεί - σύμφωνα με πολλούς χρήστες αυτό θα αποτελούσε λογοκρισία. Όπως χαρακτηριστικά λέγεται "το Διαδίκτυο ελέγχεται από τους χρήστες του". Βεβαίως, οι κρατικές υπηρεσίες και αστυνομίες σε κάθε χώρα, καθώς και οι αντίστοιχες νομοθετικές ρυθμίσεις, παρεμβαίνουν για την αναστολή των αξιόποινων πράξεων που διαπράττονται μέσω Διαδικτύου. Στην Ελλάδα υπάρχει η Υπηρεσία Δίωξης Ηλεκτρονικού Εγκλήματος. Σε ορισμένες χώρες (όπως π.χ. στις Κίνα, Ιράν, Βόρεια Κορέα) ο κρατικός μηχανισμός παρεμβαίνει στους παρόχους υπηρεσιών Διαδικτύου, υποχρεώνοντας τους να βάλουν φραγή σε ορισμένους, επιλεγμένους Διαδικτυακούς χώρους. Επίσης, ένα ακόμη ηθικό ζήτημα είναι ο συγκεντρωτισμός των Μ.Μ.Ε. και αναφέρεται στο ολιγοπώλιο μικρού σχετικά αριθμού εταιριών που κατέχουν τα μέσα και ελέγχουν όλη την αλυσίδα διανομής του προϊόντος. Στα πλαίσια του Διαδικτύου τίθεται το ερώτημα του κατά πόσο οι οικονομικές διαδικασίες στο παρόν καπιταλιστικό γίγνεσθαι περιορίζουν τη δημόσια σφαίρα και το αν είναι αποδεκτή ή κατακριτέα η πρωτοφανής ισοτιμία στην παρουσία και διαχείριση της πληροφορίας και του εμπορεύματος στο χώρο του Ίντερνετ. Επίσης παρά το γεγονός ότι το Ίντερνετ συχνά περιγράφεται ως αποκεντρωμένο, με απροσπέλαστο όγκο πληροφοριών και, συνεπώς, χωρίς κεντρικό έλεγχο, είναι εμφανής η εκτενής ιεράρχηση του περιεχομένου από μηχανές αναζήτησης και η γενικότερη διαιώνιση των ιστοτόπων με την υψηλότερη επισκεψιμότητα. [3]

Πρόσβαση στο Διαδίκτυο Κοινές μέθοδοι πρόσβασης στο Διαδίκτυο είναι η επιλογική και η ευρυζωνική. Δημόσιοι χώροι για χρήση του Διαδικτύου περιλαμβάνουν τις βιβλιοθήκες και τα Internet cafes, όπου υπάρχουν διαθέσιμοι Η/Υ με σύνδεση στο Διαδίκτυο. Υπάρχουν, επίσης, σημεία πρόσβασης στο Διαδίκτυο σε δημόσιους χώρους όπως αίθουσες αναμονής αεροδρομίων, μερικές φορές μόνο για σύντομη χρήση ενόσω βρισκόμαστε σε αναμονή. Τέτοια σημεία είναι γνωστά και με διάφορους άλλους όρους, όπως «δημόσια περίπτερα Διαδικτύου», «δημόσια τερματικά Διαδικτύου» και «ιστο - τηλέφωνα». Η δικτύωση μέσω Wi-Fi παρέχει ασύρματη πρόσβαση στο Διαδίκτυο. Ασύρματα σημεία πρόσβασης (hotspot) που παρέχουν τέτοια πρόσβαση περιλαμβάνουν τα Wifi-cafes, όπου κάποιος αρκεί να φέρει τις δικές του/της ασύρματες συσκευές όπως φορητό Η/Υ ή PDA. Οι υπηρεσίες αυτές μπορεί να είναι δωρεάν σε όλους, είτε δωρεάν μόνο σε πελάτες, είτε επί πληρωμή. Ένα hotspot δεν χρειάζεται να περιορίζεται σε ένα συγκεκριμένο περιβάλλον. Ολόκληρες πανεπιστημιουπόλεις και πάρκα έχουν αυτή τη δυνατότητα, ακόμα και ολόκληρες περιοχές. Προσπάθειες να συνδεθεί και ο αγροτικός πληθυσμός έχουν οδηγήσει στα ασύρματα κοινοτικά δίκτυα.

49


Διαδίκτυο Τα πλεονεκτήματα της πρόσβασης ενός χρήστη μέσω του δικού του υπολογιστή (αντί μέσω δημόσιου τερματικού) περιλαμβάνουν τη δυνατότητα για κατέβασμα και ανέβασμα αρχείων χωρίς περιορισμούς, τη χρήση του αγαπημένου του φυλλομετρητή (web browser) και των ρυθμίσεων αυτού (το μενού των ρυθμίσεων μπορεί να απενεργοποιηθεί σε έναν δημόσιο υπολογιστή) και την εκτέλεση δραστηριοτήτων στο Ίντερνετ με τη χρήση δικών του προγραμμάτων και δεδομένων. Χώρες με πολύ καλή πρόσβαση στο Ίντερνετ περιλαμβάνουν την Νότια Κορέα, όπου το 50% του πληθυσμού έχει ευρυζωνική πρόσβαση, τη Σουηδία και τις ΗΠΑ [4].

Διαδίκτυο και Ευρωπαϊκή Ένωση Το δικαίωμα των Ευρωπαίων πολιτών για ελεύθερη πρόσβαση στο Διαδίκτυο κατοχυρώνεται στο άρθρο 11 του Χάρτη των Θεμελίων Δικαιωμάτων της Ευρωπαϊκής Ένωσης περί ελευθερίας της έκφρασης και της ενημέρωσης. Πρόσφατα στο Ευρωπαϊκό Κοινοβούλιο ψηφίστηκε τροπολογία σύμφωνα με την οποία «δεν μπορεί να επιβάλλεται περιορισμός επί των θεμελιωδών δικαιωμάτων και ελευθεριών των τελικών χρηστών, χωρίς να προηγηθεί δικαστική απόφαση... εκτός από περιπτώσεις όπου απειλείται η ασφάλεια των πολιτών και στις οποίες η απόφαση δύναται να είναι αντίστοιχη». Ακόμη όμως και με την εν λόγω τροπολογία η πρόσβαση στο Διαδίκτυο θα μπορεί να απαγορευτεί με σχετικές δικαστικές αποφάσεις που θα επιβάλλει η εκάστοτε εθνική νομοθεσία στο όνομα της απειλής της ασφάλειας. Συγκεκριμένα, η τροπολογία αναφέρει επίσης «…η πρόσβαση στο Διαδίκτυο δεν μπορεί να περιοριστεί χωρίς να προηγηθεί δικαστική απόφαση. Εξαιρούνται οι περιπτώσεις όπου απειλείται η ασφάλεια των πολιτών.» Χαρακτηριστικό παράδειγμα αποτελεί η Βρετανία, στην οποία οι πάροχοι απαγόρευσαν την πρόσβαση σε μια λίστα ιστοσελίδων στην οποία μέχρι τώρα βρίσκονταν σελίδες παιδικής πορνογραφίας, όμως πρόσφατα προστέθηκαν και άλλες, όπως αυτή που αφορά το χάκινγκ (hacking). Στους χρήστες που θα επιχειρούν να εισέλθουν σε κάποια από αυτές τις σελίδες θα απαγορεύεται η είσοδος, ενώ τα ηλεκτρονικά τους ίχνη θα καταγράφονται. Έτσι, παρά την εν λόγω τροπολογία, εξακολουθεί να μην λαμβάνεται υπ’ όψη ότι το αδιάσειστο δικαίωμα της πρόσβασης των πολιτών στο Διαδίκτυο αποτελεί προαπαιτούμενο για την προάσπιση και άλλων θεμελιωδών δικαιωμάτων όπως η γνώση, η παιδεία η ελευθερία έκφρασης και πολιτικής δράσης. Είναι σημαντικό, επίσης, να κατανοηθεί πως οι χρήστες του Διαδικτύου δεν είναι πελάτες αλλά πολίτες και ως τέτοιοι θα πρέπει να λογίζονται σε θέματα που αφορούν αφενός την υποδομή του διαδικτύου και αφετέρου το δικαίωμα πρόσβασης σε αυτό. Σχετικά με την υποδομή οφείλει η εκάστοτε εθνική αρχή να μεριμνά για την επέκταση του δικτύου, ακόμα και σε περιοχές που η ιδιωτική πρωτοβουλία αρνείται να προβεί στην απαιτούμενη επένδυση, όταν τη θεωρεί οικονομικά ασύμφορη. Έτσι θα διασφαλιστεί το δικαίωμα των πολιτών για ενημέρωση και ελευθερία έκφρασης. Όσον αφορά την πρόσβαση πρέπει να κατοχυρώνεται το δικαίωμα των πολιτών για ελεύθερη και ισότιμη πρόσβαση όπως αναφέρθηκε και με τα παραπάνω.

Χρήση του Διαδικτύου στην Ελλάδα Σχετικά με τη χρήση του Διαδικτύου στην Ελλάδα, παρατηρείται σημαντική αύξηση του αριθμού των χρηστών (από 13% το 2001 σε 31% το 2007) ηλικίας 15 έως 65 ετών που κατέχουν προσωπικό Η/Υ. Αντίστοιχα, παρατηρείται αύξηση των ωρών χρήσης του Διαδικτύου που φτάνουν κατά μέσω όρο τις 8,6 ανά εβδομάδα. Η υπηρεσία που χρησιμοποιείται περισσότερο είναι το ηλεκτρονικό ταχυδρομείο (e-mail) αλλά και η ενημέρωση (νέα, καιρός, αθλητικά) αποτελεί από τους κυριότερους λόγους χρήσης του Διαδικτύου. Αντίθετα, η αναζήτηση για προϊόντα και υπηρεσίες ακολουθεί πτωτική πορεία από το 2002. Ιδιαίτερα χαμηλή παραμένει η χρήση του Διαδικτύου για αγορά προϊόντων και υπηρεσιών. Περίπου 18% των χρηστών προχώρησε σε κάποια αγορά κατά το 2006 ωστόσο το ποσοστό αυτό ανέρχεται μόλις στο 4,5% του γενικού πληθυσμού. Παρόλα αυτά, οι αγορές πραγματοποιήθηκαν κυρίως από ελληνικούς ιστοχώρους (sites) (41%) έναντι των ξένων (35%). Οι χρήστες που αγοράζουν μέσω του Διαδικτύου συνήθως δεν επισκέπτονται τα αντίστοιχα καταστήματα, ενώ οι κυριότεροι λόγοι αγοράς είναι η προσιτή τιμή και η καλή εξυπηρέτηση. Τέλος,

50


Διαδίκτυο

51

αξιοσημείωτο είναι το γεγονός ότι σε ποσοστό πάνω από 60% οι χρήστες θεωρούν ότι ο κίνδυνος διαρροής προσωπικών δεδομένων κατά τη χρήση πιστωτικής κάρτας στις ηλεκτρονικές αγορές είναι μεγάλος ή πολύ μεγάλος. Η έρευνα πραγματοποιήθηκε (για το διάστημα 2001-2006) από την εταιρία VPRC ebusinessforum [6] και του Eθνικού Δικτύου Έρευνας και Tεχνολογίας (EΔET [7]).

[5]

για λογαριασμό του

Διαδικτυακοί κίνδυνοι Η πρόσβαση στο Διαδίκτυο σήμερα δεν είναι ακίνδυνη, ανεξάρτητα από τον τρόπο χρήσης των υπηρεσιών του. Υπάρχουν κακόβουλοι χρήστες και αρκετές δυνατότητες πρόκλησης ζημιών τόσο στο επίπεδο του χρησιμοποιούμενου λογισμικού και υλικού, όσο και σε προσωπικό επίπεδο.

Πρόκληση ζημιών στο υπολογιστικό σύστημα Ο κύριος κίνδυνος πρόκλησης ζημιών στο υπολογιστικό σύστημα ενός ανύποπτου χρήστη είναι η μόλυνση του συστήματος με κάποιον ιό. Η μόλυνση γίνεται όταν ο χρήστης καλείται να λάβει κάποιο αρχείο, φαινομενικά αθώο, όπως ένα κείμενο ή μια φωτογραφία και, όταν δοκιμάσει να το χρησιμοποιήσει, ο ιός αναλαμβάνει δράση επιμολύνοντας το σύστημα και μπορεί να καταστρέψει αρχεία ή και ολόκληρο το σκληρό δίσκο του συστήματος. Άλλες φορές είναι δυνατή η αποστολή ιού απευθείας από τον ιστοτόπο που επισκέπτεται ο χρήστης, χωρίς να εμφανισθεί κάποια ένδειξη λήψης αρχείου. Η περίπτωση αυτή εκμεταλλεύεται κενά ασφαλείας στο λογισμικό του χρήστη (φυλλομετρητή ή Λειτουργικό σύστημα). Παρόμοιας δράσης είναι και ένα πρόγραμμα που αποκαλείται worm (κατά λέξη μετάφραση σκουλήκι). Είναι παρόμοιο σε αποτέλεσμα με τον ιό, αλλά, αντίθετα από αυτόν, δεν απαιτεί την "προσκόλλησή" του σε ένα αρχείο, έχοντας έτσι περισσότερη αυτονομία. H βλάβη που προκαλεί το worm δεν είναι τόσο ευρεία στο σύστημα, όσο στο δίκτυο σύνδεσης, επειδή καταναλώνει σημαντικό εύρος ζώνης (bandwidth). Άλλος κίνδυνος είναι ο Δούρειος Ίππος, ένα πρόγραμμα που ξεγελά το χρήστη του, ο οποίος χρησιμοποιώντας το νομίζει ότι εκτελεί κάποια εργασία, ενώ στην πραγματικότητα εκτελεί κάποια άλλη, συνήθως εγκατάσταση άλλων κακόβουλων προγραμμάτων. Αντίθετα από τους ιούς, οι δούρειοι ίπποι δεν επιμολύνουν αρχεία.

Πρόκληση ζημιών σε προσωπικά δεδομένα Στην κατηγορία αυτή υπάγονται τόσο οι δούρειοι ίπποι που προαναφέρθηκαν, όσο και κακόβουλα μηνύματα ηλεκτρονικού ταχυδρομείου. Με τον τρόπο αυτό όχι μόνον είναι δυνατό να υφαρπαγούν προσωπικά δεδομένα κάποιου χρήστη, όπως ο αριθμός ταυτότητάς του ή το ΑΦΜ του, όσο και, πιο σημαντικό, αριθμοί πιστωτικών καρτών, λογαριασμών Τραπέζης κτλ. Ανάλογη μέθοδος ακολουθείται και από ορισμένους ιστοτόπους, στους οποίους ο ανύποπτος χρήστης καταχωρεί παρόμοια στοιχεία παραγγέλοντας ένα προϊόν, το οποίο όχι μόνο δε θα λάβει ποτέ, αλλά τα δεδομένα του μπορούν να χρησιμοποιηθούν από τους δημιουργούς του ιστοτόπου για να πραγματοποιήσουν οι ίδιοι αγορές, χρεώνοντας τον "πελάτη" τους. Η μέθοδος υφαρπαγής προσωπικών δεδομένων μέσω ηλεκτρονικού ταχυδρομείου αποκαλείται "Phishing" (παραφθορά της λέξης fishing = ψάρεμα). Αρκετά προγράμματα περιήγησης (browsers) αναγνωρίζουν τους ιστοτόπους στους οποίους παραπέμπουν τα παραπλανητικά μηνύματα, ωστόσο αυτό δεν συμβαίνει σε ποσοστό 100%. Οι χρήστες είναι καλό να γνωρίζουν ότι κανείς χρηματοπιστωτικός φορέας δεν χρησιμοποιεί το Διαδίκτυο για να ανανεώσει προσωπικές πληροφορίες, ενώ ένας προστατευμένος ιστοτόπος αρχίζει πάντα με το πρόθεμα https (secure, ασφαλής).


Διαδίκτυο

Παραπλάνηση Αρκετές φορές οι χρήστες του Διαδικτύου χρησιμοποιούν τις υπηρεσίες του για να βρουν κάποιες πληροφορίες που χρειάζονται. Μερικοί ιστότοποι εμφανίζουν πληροφορίες, οι οποίες φαινομενικά είναι ακριβείς ή αναφέρουν απόλυτα αξιόπιστους δημιουργούς ή πηγές. To κίνητρο για τέτοιες πράξεις μπορεί να είναι είτε η αποκομιδή ιδίου οφέλους είτε, απλά, η χαρά της παραπλάνησης των (αγνώστων) χρηστών. Ο όρος που περιγράφει αυτού του τύπου την παραπλάνηση είναι "Hoax". Για περισσότερες πληροφορίες δείτε το Μουσείο των Hoaxes (αγγλικά) [8].

Προστασία Υπάρχουν τρεις τρόποι προστασίας, οι οποίοι θα πρέπει να χρησιμοποιούνται σε συνδυασμό: • Χρήση τείχους προστασίας (firewall) • Χρήση λογισμικού προστασίας ενάντια σε ιούς και προγράμματα κατασκοπείας (spyware). • Συνεχής ενημέρωση των χρηστών.

Υποσημειώσεις 1. ^ Death of a Game Addict [9] 2. ^ German internet cannibal begins murder trial [10]

Δείτε επίσης • • • • • • •

Χάκερ Catenet Extranet Internet Archive Intranet Minitel, γαλλικός πρόγονος του Διαδικτύου Πλοηγός Web

Εξωτερικοί σύνδεσμοι • Έθνος, 4 Δεκεμβρίου 2007: Η χρήση του Διαδικτύου στην Ελλάδα και στην Ευρώπη [11]. • Ι. Παναγόπουλος, Κ.Σ. Φίλος, «Ιατρική και Διαδίκτυο: Μέρος 2ον. Ποιότητα πληροφοριών και Διαδίκτυο [12] », Ελληνική Αναισθησιολογία, 2005; 38: 33-40 (pdf). • World of Ends, What the Internet Is and How to Stop Mistaking It for Something Else by Doc Searls and David Weinberger [13] • The Internet Society (ISOC) [14] • Internet Mapping Project [15] • TCP/IP switchover anniversary [16] • RFC 801, planning the TCP/IP switchover [17] • Access and usage statistics: [18], [19], [20], [21] (pdf) • V7ndotcom Elursrebmem [22] • Access at home, by native language [23] • John Walker: The Digital Imprimatur [24] • Εισαγωγή στην προσβασιμότητα στο διαδίκτυο [25] • [3] • Μανιφέστο [26] • Internet News [27]

52


Διαδίκτυο

Πηγές • Robins, Kevin & Frank Webster. (1999). Times of the Technoculture: From the Information Society to the Virtual Life, London: Routledge. • Hauben, M. (1994) 'Netizens an Anthology' • Παναγιωτοπούλου, Ρ. (2003. Η ΨΗΦΙΑΚΗ ΠΡΟΚΛΗΣΗ: ΜΜΕ ΚΑΙ ΔΗΜΟΚΡΑΤΙΑ. ΤΥΠΟΘΗΤΩ • Graham, G. (2001. Το Ίντερνετ: μία κοινωνιολογική προσέγγιση. Αθήνα: Περίπλους

Παραπομπές [1] http:/ / en. wikipedia. org/ wiki/ %CE%94%CE%B9%CE%B1%CE%B4%CE%AF%CE%BA%CF%84%CF%85%CE%BF#endnote_1 [2] http:/ / en. wikipedia. org/ wiki/ %CE%94%CE%B9%CE%B1%CE%B4%CE%AF%CE%BA%CF%84%CF%85%CE%BF#endnote_2 [3] http:/ / eclass. aueb. gr/ TMF142/ document/ %D0%F1%F9%F4%EF%EC%E5%F1%EF%F2%F3%E7%EC%E5%E9%F9%F3%E5%F9%ED. doc [4] http:/ / cyberatlas. internet. com/ big_picture/ geographics/ article/ 0,,5911_2174111,00. html [5] http:/ / www. vprc. gr [6] http:/ / www. ebusinessforum. gr/ [7] http:/ / www. grnet. gr/ [8] http:/ / www. museumofhoaxes. com [9] http:/ / www. jsonline. com/ news/ state/ mar02/ 31536. asp [10] http:/ / www. guardian. co. uk/ germany/ article/ 0,2763,1098905,00. html [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27]

http:/ / www. ethnos. gr/ article. asp?catid=11429& subid=2& pubid=150318 http:/ / www. anaesthesiology. gr/ journals/ 2005JF-1. pdf http:/ / www. worldofends. com/ http:/ / www. isoc. org/ http:/ / research. lumeta. com/ ches/ map/ http:/ / www1. ietf. org/ mail-archive/ ietf/ Current/ msg18554. html http:/ / www. faqs. org/ rfcs/ rfc801. html http:/ / cyberatlas. internet. com/ big_picture/ geographics/ article/ 0,,5911_151151,00. html http:/ / cyberatlas. internet. com/ big_picture/ traffic_patterns/ article/ 0,,5931_3099471,00. html http:/ / news. earthweb. com/ stats/ print. php/ 3096031 http:/ / banners. noticiasdot. com/ termometro/ boletines/ docs/ consultoras/ idate/ 2003/ idate_244. pdf http:/ / www. v7ndotcomelursrebmem-summitmedia. com/ http:/ / www. glreach. com/ globstats/ index. php3 http:/ / www. fourmilab. ch/ documents/ digital-imprimatur/ http:/ / microo. net/ article. php?intro-to-web-accessibility http:/ / gigaom. com/ 2008/ 01/ 08/ a-privacy-manifesto-for-the-web-20-era/ http:/ / www. i-live. gr/ category/ internet/

53


54

Διαδραστικότητα Διαδραστικότητα Διαδραστικότητα είναι η δυνατότητα ενός μέσου να δέχεται αμφίδρομη επικοινωνία. Οι προσωπικοί ηλεκτρονικοί υπολογιστές είναι πιθανώς τα πρώτα μηχανήματα που προσέφεραν διαδραστικότητα στην ιστορία του ανθρώπινου γένους. Το διαδίκτυο επίσης θεωρείται διαδραστικό μέσο αντίθετα με τα παραδοσιακά ΜΜΕ (τηλεόραση, ραδιόφωνο) που διαχέουν μόνο πληροφορίες αλλά δεν συλλέγουν πληροφορίες από τους χρήστες.


55

Διεπαφή Διεπαφή Διεπαφή, διεπιφάνεια ή διασύνδεση (αγγλ. interface) ονομάζουμε το σύνορο επικοινωνίας μιας οντότητας (π.χ. το κομμάτι ενός λογισμικού, μια συσκευή υλικού, ένας χρήστης, κτλ.) με το περιβάλλον της. Θεωρούμε ότι η κάθε οντότητα ή υποσύστημα (το κάθε κομμάτι ενός ευρύτερου συστήματος) είναι μια διακριτή οντότητα που μπορεί να επιτελέσει ένα σύνολο λειτουργιών. Ένα υποσύνολο αυτών εκτελείται κατόπιν αιτήματος από άλλες οντότητες (υποσυστήματα). Η περιγραφή αυτού του υποσυνόλου είναι η διεπαφή της οντότητας με το περιβάλλον της (άλλες οντότητες). Δηλαδή η αλληλεπίδραση μεταξύ δυο οντοτήτων γίνεται με την μια να αιτείται την υλοποίηση μιας λειτουργίας που προσφέρει η δεύτερη μέσω της διεπαφής της. Τείνουμε να ισχυριστούμε ότι η διεπαφή είναι κάτι το αφηρημένο αφού στην ουσία είναι μια περιγραφή του τρόπου με τον οποίο μια οντότητα θα ζητήσει από μια άλλη να επιτελέσει κάποια λειτουργία σε αντίθεση με την ίδια την οντότητα που υλοποιεί την διεπαφή και η οποία συνήθως είναι διαισθητικά πιο 'πραγματική'. Το ευρύτερο εννοιολογικό πλαίσιο από το οποίο πηγάζει αυτή η έννοια σχετίζεται με τον αντικειμενοστρεφή προγραμματισμό, την έννοια του συστήματος και της αντικειμενοστρεφούς σχεδίασης πληροφοριακών συστημάτων (π.χ. βλέπε UML). Η διεπαφή που προσφέρει ένας υπολογιστής στον χρήστη καλείται διεπαφή χρήστη (User Interface, UI). Διεπαφές μεταξύ υλικών οντοτήτων καλούνται φυσικές διεπαφές ενώ αυτές μεταξύ διαφορετικών τμημάτων λογισμικού καλούνται διεπαφές λογισμικού.


56

Δυαδικό σύστημα Δυαδικό σύστημα Το δυαδικό σύστημα αρίθμησης αναπαριστά αριθμητικές τιμές χρησιμοποιώντας δύο σύμβολα, το 0 και το 1. Πιο συγκεκριμένα, το δυαδικό είναι ένα θεσιακό σύστημα με βάση το δύο. Κάθε ψηφίο ανήκει σε μία τάξη μεγέθους μεγαλύτερη κατά ένα από αυτήν του ψηφίου στα δεξιά του. Έτσι, κάθε ψηφίο ενός δυαδικού αριθμού από δεξιά προς τ' αριστερά δηλώνει μονάδες, δυάδες, τετράδες, οκτάδες κ.ο.κ. Ονομάζεται δυαδικό επειδή η αναπαράσταση της πληροφορίας γίνεται με χρήση δύο συμβόλων.

Παράδειγμα Ο δυαδικός αριθμός 11012 αναπαριστά ποσότητα ίση με 1 μονάδα (1 * 20), 0 δυάδες (0 * 21), 1 τετράδα (1 * 22) και 1 οκτάδα (1 * 23). Διαβάζεται : "ένα,ένα,μηδέν,ένα με βάση 2". Ισούται δηλαδή με τον αριθμό 13 του δεκαδικού συστήματος, .

Δυαδικό σύστημα στους υπολογιστές Η αποθήκευση και επεξεργασία των δεδομένων στους ηλεκτρονικούς υπολογιστές γίνεται ψηφιακά. Οδηγώντας, για παράδειγμα, την είσοδο ενός λογικού κυκλώματος με τάση ρεύματος μεγαλύτερη μιας συγκεκριμένης τιμής (π.χ +3 Volts )αναπαριστούμε το ψηφίο "1", ενώ οδηγώντας την είσοδο με τάση ρεύματος μικρότερη μιας συγκεκριμένης τιμής (π.χ +2 Volts ) αναπαριστούμε το ψηφίο "0". Λόγω της σχετικά απλής υλοποίησης στα ηλεκτρονικά κυκλώματα το δυαδικό σύστημα χρησιμοποιείται εκτεταμένα στους ηλεκτρονικούς υπολογιστές για την αναπαράσταση αριθμητικών δεδομένων. Άλλα χρησιμοποιούμενα συστήματα είναι το σύστημα κινητής υποδιαστολής, το σύστημα σταθερής υποδιαστολής, η δυαδική κωδικοποίηση δεκαδικού, και άλλα.

Μετατροπή από το δεκαδικό στο δυαδικό σύστημα Παρακάτω παρουσιάζεται μέσω παραδείγματος ένας απλός τρόπος μετατροπής φυσικών αριθμών από δεκαδική σε δυαδική μορφή. Έστω ότι έχουμε τον αριθμό 1310, όπως στο αρχικό παράδειγμα. Γράφουμε τις δυνάμεις του 2, μέχρι να προκύψει αριθμός μικρότερος ή ίσος από τον ζητούμενο αριθμό, οπότε σταματάμε. 20=1 21=2 22=4 23=8 Στην προκειμένη περίπτωση ο ζητούμενος αριθμός είναι το 13, άρα σταματάμε στο 23=8, γιατί 24=16>13. Παρατηρούμε ότι ο αριθμός 23 χωράει μια φορά στο 13, άρα σημειώνουμε x1. To αποτέλεσμα της αφαίρεσης είναι 5. Το 22 χωράει μια φορά στο 5 άρα σημειώνουμε x1. Μένει 1 , όμως το 21 δε χωράει στο ένα άρα σημειώνουμε x0. Τέλος το 20 χωράει μια φορά στο ένα , άρα σημειώνουμε x1. 13 -23 x1 5


Δυαδικό σύστημα -22 x1 1 -21 x0 1 -20 x1 0 Γράφοντας τις σημειώσεις στη σειρά από πάνω ως κάτω, προκύπτει ο αριθμός σε δυαδική μορφή. Δηλαδή, 11012 = 1310. Με τον ίδιο τρόπο μπορούμε να μετατρέψουμε έναν δεκαδικό αριθμό σε οποιοδήποτε σύστημα, χρησιμοποιώντας κάθε φορά τις δυνάμεις της βάσης του εκάστοτε συστήματος αρίθμησης (οκταδικό, δεκαεξαδικό κτλ.).

Πρόσθεση δυαδικών αριθμών Για την πρόσθεση των δυαδικών αριθμών ισχύουν οι ακόλουθοι κανόνες: 0+0=0 0+1=1 1+0=1 1 + 1 = 0 και 1 το κρατούμενο 1 + 1 + 1 = 1 και 1 το κρατούμενο Έτσι για παράδειγμα, για να προσθέσουμε σε μορφή ψηφιολέξης (byte) τους αριθμούς 121 και 107, έχουμε: (121) 01111001 (107) 01101011 + (228) 11100100 Όπου η πρόσθεση αρχίζει όπως και στο δεκαδικό από τα δεξιά, δηλ. από την λιγότερο σημαντική θέση.

Αφαίρεση δυαδικών αριθμών Για την αφαίρεση των δυαδικών αριθμών ισχύουν οι ακόλουθοι κανόνες: 0-0=0 1-0=1 1-1=0 0 - 1 = 1 και 1 το δανειζόμενο Έτσι για παράδειγμα, για να αφαιρέσουμε σε μορφή ψηφιολέξης (byte) τους αριθμούς 121 και 107, έχουμε: (121) 01111001 (107) 01101011 (014) 00001110 Όπου η αφαίρεση αρχίζει όπως και στο δεκαδικό από τα δεξιά, δηλ. από την λιγότερο σημαντική θέση.

57


Δυαδικό σύστημα

Αναπαράσταση αρνητικών αριθμών στο δυαδικό σύστημα Για να αναπαρασταθούν αρνητικοί αριθμοί με το δυαδικό σύστημα αρίθμησης χρησιμοποιούνται δύο βασικά τρόποι, το συμπλήρωμα ως προς 1 και το συμπλήρωμα ως προς 2.

Συμπλήρωμα ως προς 1 Σε αυτήν την μέθοδο αντιστρέφονται τα ψηφία του δυαδικού αριθμού, όπου δηλαδή 0 γίνεται 1 και όπου 1 γίνεται 0, και ο αριθμός που προκύπτει θεωρείται ο αρνητικός του πρώτου. Έτσι για παράδειγμα, ο (θετικός) αριθμός 7 σε μορφή ψηφιολέξης (byte) είναι ο ακόλουθος: 0000 0111 και ο αρνητικός -7 σε μορφή συμπληρώματος ως προς 1 γίνεται: 1111 1000 Το πρόβλημα με την συγκεκριμένη μέθοδο είναι πως υπάρχουν δύο αναπαραστάσεις για το μηδέν: 0000 0000 (για ένα "θετικό" μηδέν) και 1111 1111 (για ένα "αρνητικό" μηδέν) Για να αντιμετωπιστεί αυτό το πρόβλημα δημιουργήθηκε μια δεύτερη μέθοδος, το συμπλήρωμα ως προς 2

Συμπλήρωμα ως προς 2 Στο συμπλήρωμα ως προς 2, μετά την αντιστροφή των δυαδικών ψηφίων προστίθεται επιπλέον ο αριθμός 1. Έτσι, και πάλι με παράδειγμα τον αριθμό 7 σε μορφή ψηφιολέξης (byte): 0000 0111 αντιστρέφουμε όπως στο συμπλήρωμα ως προς 1: 1111 1000 και τελικά προσθέτουμε το 1: 1111 1001

Πρόσημο και μέτρο Υπάρχει και ένας τρίτος τρόπος αναπαράστασης των αρνητικών αριθμών, ο οποίος δε χρησιμοποιείται πολύ συχνά, αλλά είναι πιο προσιτός στον άνθρωπο , καθώς μοιάζει πολύ με τον τρόπο αναπαράστασης αρνητικών αριθμών στο δεκαδικό σύστημα. Στο σύστημα αυτό, το πρώτο από αριστερά δυαδικό ψηφίο λαμβάνεται ως το πρόσημο του δυαδικού αριθμού, ενώ τα ψηφία που ακολουθούν χρησιμοποιούνται για τον υπολογισμό του μέτρου του. Αν το πρώτο ψηφίο από τα αριστερά είναι 0, ο αριθμός θεωρείται θετικός, ενώ αν το πρώτο ψηφίο από τα αριστερά είναι 1, ο αριθμός θεωρείται αρνητικός. Έτσι, αν χρησιμοποιούμε 8 bits (δυαδικά ψηφία ) για την αναπαράσταση του αριθμού, το 7 είναι 00000111 ενώ , το -7 θα είναι αντίστοιχα 10000111

58


59

Δυναμική ανάλυση Δυναμική ανάλυση Η δυναμική ανάλυση προγράμματος είναι ανάλυση λογισμικού που γίνεται με την εκτέλεση των προγραμμάτων που προκύπτουν από αυτό το σύστημα λογισμικού σε έναν πραγματικό ή εικονικό επεξεργαστή. Για να είναι αποδοτική, πρέπει το πρόγραμμα προς ανάλυση να εκτελεστεί με αρκετές εισόδους ελέγχου για να εμφανιστεί ενδιαφέρουσα συμπεριφορά. Η χρήση τεχνικών δοκιμής λογισμικού όπως η κάλυψη κώδικα είναι σημαντικές ώστε να παρατηρείται όσο το δυνατόν μεγαλύτερο τμήμα των συμπεριφορών του προγράμματος. Επίσης, πρέπει να υπάρχει κάποια προσοχή ώστε να ελαχιστοποιείται η επίδραση που έχουν οι τεχνικές "ενορχήστρωσης" (instrumentation) στην εκτέλεση του τελικού προγράμματος (συμπεριλαμβανομένων των χρονικών του ιδιοτήτων).

Παραδείγματα εργαλείων • Το Valgrind εκτελεί προγράμματα σε έναν εικονικό επεξεργαστή και μπορεί να εντοπίσει σφάλματα μνήμης (π.χ. λάθος χρήση της malloc και της free) και race conditions σε πολυνηματικά προγράμματα. • Το Avalanche είναι ένα εργαλείο ανοιχτού λογισμικού που δημιουργεί δεδομένα εισόδου που δείχνουν πώς αποτυγχάνει το πρόγραμμα προς ανάλυση. • Το Daikon [1] είναι μια υλοποίηση του δυναμικού εντοπισμού αναλλοίωτων. Το Daikon εκτελεί ένα πρόγραμμα, παρατηρεί τις τιμές που αυτό υπολογίζει, και στη συνέχεια αναφέρει ιδιότητες που ίσχυαν στις εκτελέσεις που παρατηρήθηκαν, οι οποίες είναι πιθανό να ισχύουν γενικά για όλες τις εκτελέσεις. • Η Dmalloc, μια βιβλιοθήκη για τον έλεγχο της δέσμευσης μνήμης και των διαρροών μνήμης. Το λογισμικό προς ανάλυση πρέπει να μεταγλωττιστεί πάλι και όλα τα αρχεία του να περιλαμβάνουν το ειδικό αρχείο επικεφαλίδας της C, dmalloc.h. • Η DynInst είναι μια βιβλιοθήκη που επεμβαίνει στον κώδικα στο χρόνο εκτέλεσης και είναι χρήσιμη στην ανάπτυξη ελέγχων δυναμικής ανάλυσης προγράμματος και στην εφαρμογή τους σε μεταγλωττισμένα προγράμματα. Η Dyninst γενικά δε χρειάζεται τον πηγαίο κώδικα ή την επανάληψη της μεταγλώττισης, αλλά τα προγράμματα που περιλαμβάνουν σύμβολα αποσφαλμάτωσης (non-stripped executables) είναι ευκολότερο να αναλυθούν. • IBM Rational Purify: κυρίως εντοπίζει την αλλοίωση και τις διαρροές μνήμης. • BoundsChecker: παρόμοια χαρακτηριστικά με το Purify της IBM. • Το VB Watch εισάγει κώδικα δυναμικής ανάλυσης σε προγράμματα Visual Basic για να παρατηρεί την απόδοσή τους, τη στοίβα κλήσεων, τα ίχνη από την εκτέλεση (execution trace), τα αντικείμενα που έχουν δημιουργηθεί, τις μεταβλητές και την κάλυψη κώδικα. • Το Insure++ είναι ένα εργαλείο ανάλυσης μνήμης στο χονο εκτέλεσης και εντοπισμου λαθών. Στο τμήμα του με το όνομα "In use" εμφανίζονται με γραφικό τρόπο οι δεσμέυσεις μνήμης στο χρόνο, η συνολική χρήση του σωρού, οι δεσμέυσεις ενοτήτων, πιθανές εκκρεμείς διαρροές μνήμης, κλπ. • Το jTracert [2] είναι ένας agent σε Java που ενορχηστρώνει εφαρμογές που τρέχουν στην εικονική μηχανής της Java (JVM) και δημιουργεί ακολουθιακά διαγράμματα(sequence diagrams). • Το Intel Thread Checker [3] είναι ένα εργαλείο ανάλυσης λαθών σε νήματα στο χρόνο εκτέλεσης που μπορεί να εντοπίσει πιθανά data races και deadlocks σε πολυνηματικές εφαρμογές για Windows ή Linux. • Το Intel Parallel Inspector εκτελεί ανάλυση νημάτων και σφαλμάτων μνήμης στο χρόνο εκτέλεσης σε περιβάλλον Windows.


Δυναμική ανάλυση • Η σουίτα εργαλείων HP Security Suite περιλαμβάνει εργαλεία σε διάφορα στάδια ανάπτυξης. Τα QAInspect και WebInspect γενικά θεωρούνται εργαλεία δυναμικής ανάλυσης, ενώ το DevInspect θεωρείται εργαλείο στατικής ανάλυσης. • Η Cenzic [4] προσφέρει λύσεις για δυναμικό, black box, έλεγχο εφαρμογών Ιστού • Το OKTECH Profiler είναι ένα ελαφρύ εργαλείο που παρακολουθεί την απόδοση ενός προγράμματος σε Java με χρήση τεχνικών δειγματοληψίας και ενορχήστρωσης - μπορεί να παρακολουθεί τοπικά ή από απόσταση την απόδοση του προγράμματος και περιλαμβάνει ξεχωριστή στατιστική ανάλυση. Τα περισσότερα εργαλεία ανάλυσης της απόδοσης χρησιμοποιούν τεχνικές δυναμικής ανάλυσης προγράμματος.

Δείτε επίσης • Ανάλυση απόδοσης • Ανάλυση προγράμματος (πληροφορική) • Στατική ανάλυση κώδικα [5] Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το program analysis άρθρο Dynamic program analysis της Αγγλόγλωσσης [2] [5] Βικιπαίδειας, η οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 3.0 . (program analysis ιστορικό/συντάκτες ).

Παραπομπές [1] [2] [3] [4] [5]

http:/ / groups. csail. mit. edu/ pag/ daikon/ http:/ / jtracert. googlecode. com/ http:/ / www. intel. com/ cd/ software/ products/ asmo-na/ eng/ threading/ 219785. htm http:/ / www. cenzic. com/ http:/ / en. wikipedia. org/ wiki/ Dynamic

60


61

Δυναμική δέσμευση μνήμης Δυναμική δέσμευση μνήμης Στην πληροφορική, η δυναμική δέσμευση μνήμης (ή δέσμευση μνήμης βασισμένη στο σωρό) είναι η δέσμευση μνήμης για χρήση από ένα πρόγραμμα κατά τη διάρκεια του χρόνου εκτέλεσής του. Μπορεί επίσης να θεωρηθεί σαν ένας τρόπος να διανεμηθεί η ιδιοκτησία των περιορισμένων πόρων της μνήμης ανάμεσα σε πολλά τμήματα των δεδομένων και του κώδικα. Η δυναμικά δεσμευμένη μνήμη υπάρχει μέχρι να απελευθερωθεί είτε ρητά από τον ίδιο τον προγραμματιστή, είτε από τον συλλέκτη σκουπιδιών. Αυτό έχρεται σε αντίθεση με τη στατική δέσμευση μνήμης, η οποία έχει συγκεκριμένη διάρκεια. Ένα αντικείμενο που αποθηκεύεται σε δυναμικά δεσμευμένο χώρο λέγεται ότι έχει δυναμικό χρόνο ζωής.

Λεπτομέρειες Η διεκπεραίωση μιας αίτησης για δέσμευση μνήμης γίνεται με την εύρεση μιας ενότητας μνήμης που δε χρησιμοποιείται και έχει το απαραίτητο μέγεθος. • Προβλήματα κατά την προσπάθεια επιτυχούς χειρισμού της αίτησης δέσμευσης • Εσωτερικός και εξωτερικός κατακερματισμός. • Η αναγωγή (reduction) χρειάζεται προσοχή, περιπλέκοντας έτσι την υλοποίηση (δείτε την αποδοτικότητα αλγορίθμου). • Οι μεταπληροφορίες του κώδικα που κάνει τη δέσμευση μπορεί να αυξάνουν το μέγεθος μικρών (ατομικά) δεσμέυσεων. • Η τέχνική Chunking προσπαθεί να ελαττώσει αυτό το φαινόμενο. Συνήθως, η μνήμη δεσμεύεται από ένα μεγάλο τμήμα αχρησιμοποίητης μνήμης που ονομάζεται ο σωρός (the heap) ή ελεύθερος χώρος(free store). Επειδή η ακριβής θέση της δεσμευμένης μνήμης δεν είναι γνωστή εκ των προτέρων, η μνήμη προσπελαύνεται έμμεσα, συνήθως μέσω μιας αναφοράς δείκτη. Ο ακριβής αλγόριθμος που χρησιμοποιείται για να οργανώνεται ο χώρος της μνήμης και να δεσμεύονται και να αποδεσμεύονται τμήματα αυτής είναι συνήθως δε φαίνεται και η υλοποίησή του μπορεί να γίνεται με οποιαδήποτε από τις παρακάτω μεθόδους.

Απόδοση Ο αλγόριθμος δυναμικής δέσμευσης μνήμης που χρησιμοποιείται μπορεί να επηρεάσει σημαντικά την απόδοση του κώδικα και μια μελέτη που έγινε το 1994 από τη Digital Equipment Corporation δείχνει την υπολογιστική επιβάρυνση που συνδέεται με κάθε κώδικα που αναλαμβάνει τη δέσμευση. Το ελάχιστο μήκος μονοπατιού εντολών που χρειάστηκε για να δεσμευτεί ένας μοναδικός χώρος μνήμης ήταν 52 (όπως μετρήθηκε από έναν profiler για μια ποικιλία λογισμικού)[1] .


Δυναμική δέσμευση μνήμης

Υλοποιήσεις Δέσμευση τμημάτων σταθερού μεγέθους Η δέσμευση τμημάτων σταθερού μεγέθους, γνωστή και σαν δέσμευση χώρου μνήμης (memory pool allocation), χρησιμοποιεί μια ελεύθερη λίστα από τμήματα μνήμης σταθερού μεγέθους (συχνά όλα είναι του ίδιου μεγέθους). Αυτό δουλεύει καλά για ενσωματωμένα συστήματα.

Buddy blocks Σε αυτό το σύστημα, η μνήμη δεσμεύεται από ένα μεγάλο τμήμα στη μνήμη που το μέγεθός του είναι δύναμη του 2. Αν το τμήμα είναι μεγαλύτερο από το διπλάσιο αυτού που ζητείται, χωρίζεται στα δύο, επιλέγεται το ένα μισό και η διαδικασία επαναλαμβάνεται (ελέγχοντας πάλι το μέγεθος και χωρίζοντάς το στα δύο αν χρειάζεται) μέχρι το τμήμα να είναι αρκετά μεγάλο. Όλα τα τμήματα ενός συγκεκριμένου μεγέθους κρατούνται σε μια ταξινομημένη συνδεδεμένη λίστα ή δέντρο. Όταν απελευθερώνεται ένα τμήμα, συγκρίνεται με το διπλανό του. Αν και τα δύο είναι ελεύθερα, συνδυάζονται και τοποθετούνται στη λίστα των αμέσως πιο μεγάλων τμημάτων. (Όταν δεσμεύεται ένα τμήμα, ο κώδικας που κάνει τη δέσμευση θα αρχίσει με το πιο μικρό τμήμα που μπορεί να χρειαστεί, για να μη χρειαστεί να τεμαχιστούν ενότητες).

Δείτε επίσης • • • • • • • • •

Δυναμικός πίνακας Αυτόματη δέσμευση μνήμης Επικίνδυνος δείκτης Υπερχείλιση σωρού Hoard memory allocator malloc mmap Δέσμευση μνήμης με στοίβα new (C++)

Εξωτερικοί σύνδεσμοι • Παράδειγμα bit-mapped arena memory allocator σε C [2] (Αγγλικά) • TLSF: κώδικας που δεσμεύει χώρο σε σταθερό χρόνο για χρήση σε συστήματα πραγματικού χρόνου (real-time) [3] (Αγγλικά) • Διαφάνειες για τη δυναμική δέσμευση μνήμης [4] (Αγγλικά) • Στο εσωτερικό της δέσμευσης μνήμης [5] (Αγγλικά) • Οπτικοποιημένη Δυναμική Δέσμευση Μνήμης [6], από τον Herbert Glarner, που περιγράφει αποδοτικές τεχνικές (Αγγλικά) • Simple Memory Allocation Algorithms [7] στην OSDEV Community (Αγγλικά)

62


Δυναμική δέσμευση μνήμης

Περαιτέρω διάβασμα • "Dynamic Storage Allocation: A Survey and Critical Review" [8], Department of Computer Sciences University of Texas at Austin • Donald Knuth. Fundamental Algorithms, Third Edition. Addison-Wesley, 1997. ISBN 0-201-89683-4. Section 2.5: Dynamic Storage Allocation, pp. 435–456. (Αγγλικά) • Wilson, P.R. (1995). "Dynamic Storage Allocation: A Survey and Critical Review" [9]. Memory Management: International Workshop, Iwmm'95, Kinross, Uk, September 27-29, 1995: Proceedings (Springer). ISBN 9783540603689. Ανακτήθηκε την 2008-01-06. • Berger, E.D. (2001). "Composing high-performance memory allocators" [10]. ACM SIGPLAN Notices 36 (5): 114–124. doi:10.1145/381694 [11]. Berger, E.D. (2002). "Reconsidering custom memory allocation" [12]. Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications [12]. ACM Press New York, NY, USA. pp. 1–12.

Παραπομπές [1] http:/ / www. cs. ubc. ca/ local/ reading/ proceedings/ spe91-95/ spe/ vol24/ issue6/ spe895. pdf [2] http:/ / code. google. com/ p/ arena-memory-allocation/ downloads/ list [3] http:/ / rtportal. upv. es/ rtmalloc [4] https:/ / users. cs. jmu. edu/ bernstdh/ web/ common/ lectures/ slides_cpp_dynamic-memory. php [5] http:/ / www. flounder. com/ inside_storage_allocation. htm [6] http:/ / herbert. gandraxa. com/ herbert/ dsa. asp [7] http:/ / www. osdcom. info/ content/ view/ 31/ 39/ [8] http:/ / www. cs. northwestern. edu/ ~pdinda/ icsclass/ doc/ dsa. pdf [9] http:/ / books. google. com/ ?id=m0yZN2bA3TcC& pg=PA1& dq=paul+ wilson [10] http:/ / portal. acm. org/ citation. cfm?id=381694. 378821 [11] http:/ / dx. doi. org/ 10. 1145%2F381694 [12] http:/ / portal. acm. org/ citation. cfm?id=582419. 582421 Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το memory allocation άρθρο Dynamic memory allocation (http:/ / en. wikipedia. org/ wiki/ Dynamic) της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 3.0 (http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/ ). ( memory allocation ιστορικό/συντάκτες (http:/ / en. wikipedia. org/ wiki/ Dynamic)).

63


64

Εικονικοποίηση Εικονικοποίηση Η εικονικοποίηση (virtualization) είναι ένας ευρύς όρος των υπολογιστικών συστημάτων που αναφέρεται σε έναν μηχανισμό αφαίρεσης ο οποίος αποκρύπτει λεπτομέρειες της υλοποίησης και της κατάστασης ορισμένων υπολογιστικών πόρων από πελάτες των πόρων αυτών (π.χ. εφαρμογές, άλλα συστήματα, χρήστες κλπ). Η αφαίρεση αυτή μπορεί είτε να αναγκάζει έναν πόρο να συμπεριφέρεται ως πλειάδα πόρων (π.χ. μία συσκευή αποθήκευσης σε διακομιστή τοπικού δικτύου), είτε πολλαπλούς πόρους να συμπεριφέρονται ως ένας (π.χ. συσκευές αποθήκευσης σε VirtualBox κατανεμημένα συστήματα). Η εικονικοποίηση δημιουργεί μία εξωτερική διασύνδεση η οποία αποκρύπτει την υποκείμενη υλοποίηση (π.χ. πολυπλέκοντας την πρόσβαση από διαφορετικούς χρήστες). Αυτή η προσέγγιση στην εικονικοποίηση αναφέρεται ως εικονικοποίηση πόρων. Μία άλλη προσέγγιση, ίδιας όμως νοοτροπίας, είναι η εικονικοποίηση πλατφόρμας, όπου η αφαίρεση που επιτελείται προσομοιώνει ολόκληρους υπολογιστές. Το αντίθετο της εικονικοποίησης είναι η διαφάνεια: ένας εικονικός πόρος είναι ορατός, αντιληπτός, αλλά στην πραγματικότητα ανύπαρκτος, ενώ ένας διαφανής πόρος είναι υπαρκτός αλλά αόρατος. Σε ένα εικονικοποιημένο σύστημα συμμετέχουν τρεις παράγοντες: ο πελάτης μιας υπηρεσίας, ο παροχέας της υπηρεσίας και ένας ενδιάμεσος. Ο πελάτης και ο παροχέας αλληλεπιδρούν μέσω μίας πρότυπης διασύνδεσης, τις κλήσεις προς την οποία όμως αναχαιτίζει ο ενδιάμεσος. Ο τελευταίος επιτελεί την εικονικοποίηση λειτουργώντας ως παροχέας για τον πελάτη και ως πελάτης για τον παροχέα. Ένα παράδειγμα είναι ο μηχανισμός εικονικής μνήμης των σύγχρονων λειτουργικών συστημάτων, όπου ο διαχειριστής εικονικής μνήμης (ο ενδιάμεσος) παρεμβάλλεται μεταξύ ενός πραγματικού χώρου διευθύνσεων (παροχέας) και ενός εικονικού που γίνεται αντιληπτός από κάθε διεργασία (πελάτης). Ο ενδιάμεσος παρέχει την ψευδαίσθηση πολλών ισομεγέθων χώρων διευθύνσεων (ένας για κάθε διεργασία), ενώ στην πραγματικότητα υπάρχει μόνο ένας συνολικά (η πραγματική μνήμη). Ο πελάτης και ο παροχέας δεν γνωρίζουν τίποτα για την εικονικοποίηση και τη μεσολάβηση του ενδιάμεσου.

Εικονοποίηση Πλατφόρμας Ιδιαίτερο ενδιαφέρον παρουσιάζει η εικονικοποίηση πλατφόρμας, όπου ένα λογισμικό ελέγχου («επόπτης» ή hypervisor) εκτελούμενο σε πραγματικό υλικό προσομοιώνει ένα υπολογιστικό περιβάλλον, μία «εικονική μηχανή», επάνω από το οποίο μπορεί να τρέξει κάποιο φιλοξενούμενο λογισμικό (συνήθως ένας πλήρης πυρήνας), απομονωμένο από το υπόλοιπο σύστημα. Η θεμελιώδης λογική πίσω από την εικονικοποίηση πλατφόρμας είναι η αρχή πως οποιαδήποτε λειτουργία μπορεί να εκτελεστεί είτε από λογισμικό είτε από εξειδικευμένο υλικό· οι μόνες διαφορές αφορούν την ευελιξία και την απόδοση. Είναι δυνατόν να προσομοιώνονται ταυτόχρονα πολλαπλές εικονικές μηχανές, εντελώς απομονωμένες μεταξύ τους, από το ίδιο λογισμικό ελέγχου. Η εικονικοποίηση πλατφόρμας εμφανίστηκε αρχικά τη δεκαετία του 1960, πριν από την επέλαση των μικροϋπολογιστών, σε μεγάλα, συγκεντρωτικά συστήματα (mainframes), αλλά μετά το 2000 και την αλματώδη αύξηση των επιδόσεων του υλικού των PC έχει γίνει πλέον κοινή πρακτική. Υπάρχουν πολλά είδη εικονικοποίησης πλατφόρμας. Ακολουθούν τα σημαντικότερα:


Εικονικοποίηση • Εξομοίωση: η εικονική μηχανή προσομοιώνει εξολοκλήρου μία αρχιτεκτονική υλικού, πιθανώς διαφορετική από το πραγματικό υποκείμενο υλικό, επιτρέποντας έτσι να εκτελεστεί επάνω της ένα μη τροποποιημένο, φιλοξενούμενο ΛΣ σχεδιασμένο για τον εξομοιούμενο επεξεργαστή (π.χ. QEMU, έκδοση για PowerPC του VirtualPC κλπ). Η εξομοίωση είναι διερμηνεία σε χρόνο εκτέλεσης του κώδικα του φιλοξενούμενου ΛΣ, με έναν κύκλο ανάγνωσης-αποκωδικοποίησης-εκτέλεσης όπου κάθε εντολή που ανήκει στο σύνολο εντολών του επεξεργαστή-πηγή μεταφράζεται σε μία εντολή του συνόλου εντολών του επεξεργαστή-στόχου. Παράλληλα η εικονική μηχανή παρέχει μία αφαίρεση της μνήμης, των συσκευών Εισόδου / Εξόδου κλπ, φροντίζοντας ώστε κάθε μεταφρασμένη εντολή που απευθύνεται σε αυτά τα υποσυστήματα να τροποποιεί μόνο τις αφαιρέσεις / λογικές αναπαραστάσεις τους, οι οποίες κατευθύνονται και υλοποιούνται από το λογισμικό ελέγχου, και όχι το πραγματικό υλικό. Προκειμένου να αυξηθούν οι επιδόσεις είναι δυνατόν να χρησιμοποιηθεί δυναμική μετάφραση αντί για απλή εξομοίωση, όπου οι μεταφρασμένες εντολές αποθηκεύονται σε κρυφή μνήμη και μπορούν να επαναχρησιμοποιηθούν αργότερα χωρίς εκ νέου μετάφραση, ή δυναμική επαναμεταγλώττιση, όπου εκτός της χρήσης κρυφής μνήμης γίνεται και βελτιστοποίηση κρίσιμων τμημάτων του κώδικα (παρόμοια με τη μεταγλώττιση JIT της Java, του .NET και άλλων παρόμοιων πλατφορμών υψηλού επιπέδου). • Πλήρης: η εικονική μηχανή προσομοιώνει επαρκές τμήμα του πραγματικού υποκείμενου υλικού ώστε να επιτρέπει την εκτέλεση επάνω της ενός μη τροποποιημένου, φιλοξενούμενου ΛΣ σχεδιασμένου για τον ίδιο τύπο επεξεργαστή με την πραγματική CPU (π.χ. VirtualPC, VMWare, Win4Lin κλπ). Στην πλήρη εικονικοποίηση δεν χρειάζεται εξομοίωση του συνόλου εντολών του επεξεργαστή και μάλιστα ένα τμήμα του κώδικα του φιλοξενούμενου ΛΣ μπορεί να εκτελείται απευθείας από το υλικό, χωρίς μεσολάβηση του επόπτη, αρκεί να μην επηρεάζει υποσυστήματα εκτός του άμεσου ελέγχου του τελευταίου. Τα κρίσιμα σημεία του φιλοξενούμενου κώδικα ωστόσο, όπως αυτά που προσπαθούν να αποκτήσουν πρόσβαση στο υλικό (π.χ. κλήσεις συστήματος), συλλαμβάνονται από το λογισμικό ελέγχου και προσομοιώνονται, αφού τα αποτελέσματα κάθε λειτουργίας που επιτελείται σε μία εικονική μηχανή δεν επιτρέπεται να τροποποιούν την κατάσταση άλλων εικονικών μηχανών, του επόπτη ή του υλικού. Αν το πραγματικό υλικό βοηθά και επιταχύνει τη λειτουργία του λογισμικού ελέγχου τότε η πλήρης εικονικοποίηση ονομάζεται εγγενής (native). Η βοήθεια αυτή αφορά κυρίως εύκολη διάκριση μεταξύ εντολών που μπορούν να εκτελεστούν απευθείας και εντολών που πρέπει να προσομοιωθούν από το λογισμικό. Όπως και στην εξομοίωση η εικονική μηχανή παρέχει στο φιλοξενούμενο ΛΣ μία αφαίρεση της μνήμης, των συσκευών Εισόδου / Εξόδου κλπ, ενώ η εγγενής εκτέλεση μεγάλου μέρους του κώδικα παρέχει πολύ καλύτερες επιδόσεις σε σχέση με την εξομοίωση. • Παραεικονικοποίηση: η εικονική μηχανή δεν προσομοιώνει επακριβώς το υλικό αλλά παρέχει στις εικονικές μηχανές ένα API, μία προγραμματιστική διασύνδεση, ώστε να επιτρέπει την εκτέλεση επάνω της ενός τροποποιημένου, φιλοξενούμενου ΛΣ σχεδιασμένου για εκτέλεση από τον συγκεκριμένο επόπτη (π.χ. Denali, XEN). Το προαναφερθέν API ονομάζεται διασύνδεση υπερκλήσεων και ένα λειτουργικό σύστημα πρέπει να μεταφερθεί ρητά σε έκδοση κατάλληλη για εκτέλεση από ένα σύστημα παραεικονικοποίησης, ώστε ο φιλοξενούμενος πυρήνας αντί να προσπελαύνει το υλικό άμεσα να εκτελεί υπερκλήσεις και να αναμένει απαντήσεις ή ασύγχρονες ειδοποιήσεις από τον επόπτη. Το όφελος από τη βελτίωση των επιδόσεων και την απλοποίηση της γραφής του επόπτη είναι μεγάλο. Μία άλλου είδους κατηγοριοποίηση των εποπτών εικονικοποίησης είναι σε αυτούς που εκτελούνται ως εφαρμογές πάνω από ένα υποκείμενο λειτουργικό σύστημα-ξενιστή (π.χ. VirtualPC, VMWare κλπ) και σε αυτούς που λειτουργούν οι ίδιοι ως λιτά λειτουργικά συστήματα και άρα εκτελούνται απευθείας επάνω από το υποκείμενο υλικό (π.χ. Xen).

65


Εικονικοποίηση

Πηγές • Αντίστοιχα άρθρα της αγγλικής Wikipedia • Xen and the art of virtualization, Paul Barham et al., 2003 [1]

Παραπομπές [1] http:/ / www. cl. cam. ac. uk/ research/ srg/ netos/ papers/ 2003-xensosp. pdf

66


67

Εισαγωγή δεδομένων Εισαγωγή δεδομένων Η είσοδος δεδομένων ή εισαγωγή δεδομένων (data entry) είναι όρος που υποδηλώνει νέα δεδομένα ή μεταβολές υπαρχόντων δεδομένων που εισέρχονται σε ένα σύστημα για να ενεργοποιήσουν ή να αλλάξουν μια διαδικασία. Είναι μια αφηρημένη έννοια, που χρησιμοποιείται για την μοντελοποίηση ενός συστήματος (-ων) ή το σχεδιασμός του συστήματος (ων) διαχείρισης δεδομένων. Συνδέεται συνήθως με άλλους όρους, π.χ., τμήμα εισόδου, μεταβλητή εισόδου, παράμετρος εισόδου, τιμή εισόδου, σήμα εισόδου, θύρα εισόδου, συσκευή εισόδου και αρχείο εισόδου. Η εισαγωγή δεδομένων είναι συνήθως μέρος της επεξεργασίας δεδομένων (data processing). Η εισαγωγή δεδομένων γίνεται συνήθως απο κάποιο υπάλληλο εισαγωγής δεδομένων(data entry clerk).


68

Εννοιολογικό πλαίσιο Εννοιολογικό πλαίσιο Το εννοιολογικό πλαίσιο, πλαίσιο, συμφραζόμενα ή ακριβέστερα συγκείμενο (από το context<-contextere) μιας οντότητας -φυσικής ή ιδεατής- είναι το σύνολο των παραμέτρων, συνθηκών, εννοιών και καταστάσεων που την περιβάλλουν και την καθορίζουν φυσικά ή εννοιολογικά. Η ίδια οντότητα εκτός του εννοιολογικού της πλαισίου πιθανώς αποκτά διαφορετικά νοήματα και μεταδίδει διαφορετικές παραστάσεις. Για παράδειγμα ένα αγγείο, προϊόν ανασκαφής, έχει νόημα για το αρχαιολογικό αρχείο ως μαρτυρία όταν είναι γνωστές οι παράμετροι του αρχαιολογικού πλαισίου μέσα στο οποίο ανακαλύφθηκε, (γεωλογικό στρώμα, ακριβής -γεωγραφικά προσδιοριζόμενη- θέση, συσχέτιση, σχετική και απόλυτη χρονολόγηση). Εκτός αρχαιολογικού πλαισίου, το ίδιο αγγείο, αν είναι για παράδειγμα προϊόν λαθρανασκαφής αλλά βρίσκεται σε κάποιο μουσείο, (συνήθης πρακτική από τον 16ο - 2ο αι.) καθίσταται άχρηστο ως αρχαιολογική μαρτυρία, αλλά εξακολουθεί να μεταδίδει αισθητικές παραστάσεις ή πιθανώς συμβολικά βοήματα που προκύπτουν από την εικονογραφία του. Σε ένα άλλο παράδειγμα, πλαίσιο μιας λέξης, μιας πρότασης, μιας παραγράφου, η μεγαλύτερου κειμένου περιλαμβάνει τις λέξεις που το 'περιβάλλουν'. Σε ιδιαίτερα γνωστικά πεδία αποκτά τα παρακάτω νοήματα:

Αρχαιολογία • Στην αρχαιολογία το πλαίσιο (φυσική τοποθεσία) μιας ανακάλυψης μπορεί να είναι μείζονος σημασίας, βλ. στρωματογραφία. Ακριβέστερα, το αρχαιολογικό πλαίσιο είναι ένα γεγονός στο χρόνο που διατηρήθηκε στο αρχαιολογικό αρχείο. Η διάνοιξη ενός σκάμματος ή ενός λάκκου στο παρελθόν είναι ένα πλαίσιο, ενώ το υλικό το υλικό με το οποίο το γέμισαν είναι ένα άλλο πλαίσιο. Πολλαπλές αποθέσεις υλικών, που φαίνονται ως στρώματα σε μία αρχαιολογική τομή σημαίνουν πολλαπλά πλαίσια. Δομικά χαρακτηριστικά, φυσικές αποθέσεις και ενταφιασμοί είναι επίσης εννοιολογικά πλαίσια. Διαιρώντας μια αρχαιολογική θέση σε αυτές τις βασικές, διακριτές μονάδες, οι αρχαιολόγοι μπορούν να χρονολογήσουν τις δραστηριότητες που έλαβαν χώρα στη θέση, να τις περιγράψουν και να τις ερμηνεύσουν.

Γλωσσολογία • Στην Γλωσσολογία και τις Επικοινωνίες με τον όρο πλαίσιο εννοείται το νόημα ενός μηνύματος (όπως είναι η πρόταση για παράδειγμα), η σχέση του με άλλα τμήματα του μηνύματος, το κοινωνικό περιβάλλον στο οποίο συνέβη η επικοινωνία και οποιαδήποτε έννοια σχετίζεται μαζί της. Με άλλα λόγια το πλαίσιο είναι μια διάταξη, μέσω της οποίας αντιλαμβανόμαστε κάποιο μήνυμα.

Μαθηματικά • Στη συμβολική λογική, αν t(s) είναι ένας καλά σχηματισμένος όρος στα πλαίσια συγκεκριμένης γλώσσας, τα συμφραζόμενα ή το συγκείμενο του όρου s είναι ο όρος t(χ), όπου χ είναι μία αυθαίρετη μεταβλητή που δεν συμπεριλαμβάνεται ήδη στη δοσμένη γλώσσα.


Εννοιολογικό πλαίσιο

Επιστήμη υπολογιστών • Στην Επιστήμη Υπολογιστών, το πλαίσιο αντιστοιχεί στις συνθήκες υπό τις οποίες χρησιμοποιείται κάποια συσκευή, π.χ. το τρέχον επάγγελμα του χρήστη. • Σε ό,τι αφορά στην τεχνητή νοημοσύνη, το εννοιολογικό πλαίσιο σχετίζεται ιδιαίτερα με τις ιδιότητές της σε σχέση με τις επικοινωνίες, τη γλωσσολογία και τη φιλοσοφία. Διεξάγεται έρευνα για το πώς είναι δυνατόν να προτυποποιηθούν αυτές όψεις σε υπολογιστικά συστήματα αυτοματοποιημένης αιτιολόγησης.

Τέχνη • Στη σύγχρονη τέχνη ο όρος χρησιμοποιείται συχνά για να περιγράψει οτιδήποτε πέραν του περιεχομένου του έργου τέχνης, οτιδήποτε το περιβάλλει σε μια δεδομένη στιγμή. Για παράδειγμα, αναφέρεται στο πώς είναι κρεμασμένος ο πίνακας στην έκθεση, ποια είναι η πολιτική κατάσταση της στιγμή που γράφτηκε μια κριτική κ.ά.

Ψυχολογία • Στην Ψυχολογία, το πλαίσιο αναφέρεται σε παρασκηνιακά ερεθίσματα (stimuli) που συνοδεύουν κάποιο γεγονός. Για παράδειγμα, αν ένας ποντικός τρομάζει από κάποια γάτα την ώρα που τρώει, τότε ο τόπος (και πιθανώς η ώρα) της τροφής είναι το πλαίσιο -τα παρασκηνιακά ερεθίσματα- ενώ η γάτα είναι το συμβάν του προσκηνίου. Φαίνεται πως υπάρχει μια εξειδικευμένη νευρική δομή, ο ιππόκαμπος, για την ανάλυση ορισμένων πλαισίων. • Ειδικότερα για τη γνωστική ψυχολογία, ο όρος εννοιολογικό πλαίσιο μπορεί να αναφέρεται και στον τρόπο που διάφορες έννοιες διασυνδέονται μεταξύ τους, στο νου ενός ατόμου που μαθαίνει. Ο όρος χρησιμοποιήθηκε ιδιαίτερα υπό το πλαίσιο του διδακτικού ρεύματος του εποικοδομητισμού (βλ. πχ. Διδακτική των φυσικών επιστημών), σύμφωνα με το οποίο το προϋπάρχον εννοιολογικό πλαίσιο επηρεάζει σε κυρίαρχο βαθμό τη διαδικασία της μάθησης.

Συνέδρια • International and Interdisciplinary Conferences on Modeling and Using Context (CONTEXT) [1]

Βιβλιογραφία • Jeffery A. Dusek, Howard Eichenbaum, "The ippocampus and memory for orderly stimulus relations", στο Proceedings of the National Academy of Sciences of the United States of America, Vol. 94 n. 13. (1997) [2] Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το (language use) άρθρο Context (language use) της Αγγλόγλωσσης Βικιπαίδειας, η [2] [2] οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 3.0 . ((language use) ιστορικό/συντάκτες ).

Παραπομπές [1] http:/ / context-web. org/ [2] http:/ / en. wikipedia. org/ wiki/ Context

69


70

Εξαγωγή πληροφοριών Εξαγωγή πληροφοριών Η εξαγωγή ή εξόρυξη πληροφοριών είναι ένα είδος ανάκτησης πληροφοριών από μη δομημένα ή ημιδομημένα δεδομένα (unstructured or semi-structured data – τυπικά κείμενα γραμμένα σε φυσική γλώσσα, ιστοσελίδες κ.α.) και αποτελεί κλάδο της σύγχρονης Επιστήμης των υπολογιστών. Είναι βασισμένη στην τεχνολογία επεξεργασίας της φυσικής γλώσσας.

Γενικά Πρακτικά, συνίσταται στην αναγνώριση συγκεκριμένου είδους πληροφοριών, όπως κύρια ονόματα (ονόματα ανθρώπων, τοπωνύμια, ονόματα εταιρειών, ημερών, μηνών, κτλ.), χρονικές πληροφορίες (ημερομηνίες), σχέσεις και γεγονότα από (συνήθως) ηλεκτρονικά κείμενα. Απώτερος στόχος της εξαγωγής πληροφοριών είναι η «κατανόηση» των βασικών συστατικών του υπό ανάλυση κειμένου, τα οποία αργότερα μπορούν να χρησιμοποιηθούν από εφαρμογές όπως αυτόματη εξαγωγή περιλήψεων κειμένων, αυτόματη απάντηση ερωτήσεων, αυτόματη μετάφραση κ.α. Τα βασικά στάδια της εξαγωγής πληροφοριών είναι συνήθως πέντε, σύμφωνα με τον οδηγό των συνεδρίων MUC (Message Understanding Conference): • Αναγνώριση κυρίων ονομάτων: Η αναγνώριση κυρίων ονομάτων είναι ο αυτόματος εντοπισμός και εξαγωγή λεξικών αλληλουχιών που αναφέρονται σε κύρια ονόματα μέσα στο υπό ανάλυση κείμενο. • Αναγνώριση αναφορικών σχέσεων μεταξύ ονομάτων: • Αναγνώριση γεγονότων: • Αναγνώριση σχέσεων μεταξύ κυρίων ονομάτων: • Αναγνώριση σχέσεων μεταξύ γεγονότων: Η έρευνα στην Εξόρυξη πληροφοριών επηρεάστηκε σε μεγάλο βαθμό από τα MUC συνέδρια, τα οποία δημοσίευαν τα αποτελέσματα διαγωνισμών μεταξύ συστημάτων που επιχειρούσαν εξαγωγή πληροφοριών σε κείμενα που περιγράφουν καθημερινές ειδήσεις.

Σημασία της εξαγωγής πληροφοριών Ο ρόλος της Εξαγωγής πληροφοριών, στα πλαίσια της Ανάκτησης πληροφοριών και Διαχείρισης γνώσης, είναι η αναγνώριση εξειδικευμένης πληροφορίας και η εξαγωγή γνώσης από μη δομημένα δεδομένα με μηχανικό (αυτόματο) τρόπο. Αντίθετα με την κλασσική Ανάκτηση πληροφοριών, σύμφωνα με την οποία η αναζήτηση γίνεται με βάση συγκεκριμένες λέξεις-κλειδιά και το αποτέλεσμα περιλαμβάνει μόνο κείμενα στα οποία βρίσκεται (ενδεχομένως) η χρήσιμη πληροφορία, η Εξόρυξη πληροφοριών στοχεύει ακριβώς στην αναγνώριση της χρήσιμης μόνο πληροφορίας και το περιβάλλον (context) στο οποίο αυτή εμφανίζεται. Δεδομένου του μεγάλου όγκου πληροφοριών που παράγονται και διακινούνται σήμερα (κύριο χαρακτηριστικό του διαδικτύου) το ζητούμενο στις μέρες μας είναι όχι απλώς η κατοχή της πληροφορίας – ο οποιοσδήποτε σήμερα μπορεί να έχει πρόσβαση σε σχετικά οποιαδήποτε πληροφορία – αλλά η διαχείριση της πληροφορίας και ο εντοπισμός της «σχετικής» πληροφορίας. Έτσι, ενώ με μια κλασσική μηχανή αναζήτησης ο ενδιαφερόμενος θα λάβει ως απάντηση ένα σύνολο κειμένων που ενδεχομένως περιέχουν την απάντηση που περιμένει, η Εξόρυξη πληροφοριών στοχεύει στην απάντηση και μόνο σε αυτή. Οι εφαρμογές μιας τέτοιας τεχνολογίας είναι πραγματικά αμέτρητες.


Εξαγωγή πληροφοριών

Αποτελέσματα – επιδόσεις Οι επιδόσεις αναλόγων συστημάτων που έχουν παρουσιαστεί κατά καιρούς σε συνέδρια και ερευνητικές εργασίες αναφέρονται σε έρευνα πάνω σε συγκεκριμένους τομείς (κείμενα γραμμένα για συγκεκριμένους θεματικούς χώρους) και διαφέρουν ανάλογα με το είδος της πληροφορίας που στοχεύουν να αναγνωρίσουν. Έτσι, αναφορικά με της πέντε προαναφερθείσες κατηγορίες της Εξαγωγής πληροφοριών, έχουν παρατηρηθεί τα κάτωθι: Όσο προχωράμε από την αναγνώριση κυρίων ονομάτων προς την αναγνώριση σχέσεων μεταξύ γεγονότων η δυσκολία αυξάνεται εκθετικά, αφού εξάλλου τα μετέπειτα στάδια ανάλυσης εξαρτώνται σε μεγάλο βαθμό στα προγενέστερα. Έχοντας ως δεδομένο το γεγονός αυτό, η αναγνώριση κυρίων ονομάτων επιτυγχάνεται κατά 93% περίπου (Cunningham, 2000) και, λαμβάνοντας υπ’ όψιν το γεγονός ότι ένας άνθρωπος δε μπορεί να επιτύχει το 100%, μπορούμε να ισχυριστούμε πως τα συστήματα αναγνώρισης ονομάτων τα καταφέρνουν το ίδιο ή σχεδόν το ίδιο καλά με τον άνθρωπο. Όμως, τα επόμενα στάδια ανάλυσης δεν εφαρμόζονται με την ίδια επιτυχία. Τα αποτελέσματα που δημοσιεύονται είναι ενδεικτικάπερισσότερες πληροφορίες εδώ. Τελικά, η αναγνώριση γεγονότων (που είναι ο κύριος στόχος της εξαγωγής πληροφοριών) δεν εφαρμόζεται με μεγάλη επιτυχία ούτε αυτή: τα καλύτερα συστήματα αναφέρουν επιδόσεις της τάξεως του 60%, σύμφωνα με τα πρακτικά των συνεδρίων MUC. Τα νούμερα που αναφέρονται εδώ δηλώνουν κατά προσέγγιση την επίδοση των συστημάτων και είναι το F-measure των αποτελεσμάτων. Στο σημείο αυτό πρέπει να σημειώσουμε δύο πράγματα. Πρώτον, τα αναφερόμενα μεγέθη αναφέρονται σε πειράματα πάνω σε συγκεκριμένους τομείς (domains) και συγκεκριμένες γλώσσες (Αγγλικά συνήθως). Το γεγονός αυτό είναι ιδιαίτερα σημαντικό, αφού κάθε τομέας και κάθε γλώσσα έχουν ιδιαιτερότητες οι οποίες πρέπει να ενσωματωθούν στα συστήματα εξόρυξης πληροφοριών. Από τη φύση της λοιπόν η Εξαγωγή πληροφοριών είναι άρρηκτα συνδεδεμένη με τη γλώσσα και το είδος των δεδομένων (κειμένων) που πρόκειται να αναλυθούν. Δεύτερον, η σχετική έρευνα έχει γίνει πιο εντατική τα τελευταία χρόνια. Συνεχώς προτείνονται νέες μέθοδοι κατασκευής αναλόγων αρχιτεκτονικών και συστημάτων οι οποίες στοχεύουν σε καλύτερες επιδόσεις και στην απλοποίηση της επέκτασης της λειτουργίας υπαρχόντων συστημάτων σε νέους τομείς και νέες γλώσσες. Έμφαση δίνεται κυρίως στην ανάπτυξη ειδικών συστημάτων μέσω αυτόματης εκμάθησης της γλωσσικής πληροφορίας και των ιδιαιτεροτήτων του χώρου από το ίδιο το σύστημα. Στο μέλλον, λοιπόν, είναι βέβαιο ότι θα έχουμε καλύτερα συστήματα και σαφώς καλύτερες επιδόσεις.

Εξωτερικές συνδέσεις 1. http://www.gate.ac.uk [1] Το GATE είναι μια πλατφόρμα ανάπτυξης γλωσσικών εργαλείων που χρησιμοποιούνται για την Εξόρυξη πληροφοριών (Πανεπιστήμιο Sheffield). 2. http://www.ellogon.org [2]Το Ellogon είναι μία πλατφόρμα ανάπτυξης γλωσσικών εργαλείων που χρησιμοποιούνται για την Εξόρυξη πληροφοριών (Ινστιτούτο Πληροφορικής και Τηλεπικοινωνιών Δημόκριτος). 3. http://www.research.ibm.com/UIMA [3]Το UIMAAn είναι μια open source πλατφόρμα για ανάλυση και αναζήτηση μη δομημένων δεδομένων (ΙΒΜ Research). 4. http://www.itl.nist.gov/iad/894.02/related_projects/muc [4]Το MUC site περιέχει γενικές πληροφορίες για Εξόρυξη πληροφοριών και τα πρακτικά των αντιστοίχων συνεδρίων.

71


Εξαγωγή πληροφοριών

Βιβλιογραφία Chinchor Ν., Robinson P. (1997) MUC-7 Information Extraction Task Definition (version 5.1). Message Understanding Conference Proceedings. Cunningham Η. (2000) Information Extraction: a User Guide.Research Memo. University of Sheffield, 2000. Jurafsky D., Martin J.H. (2000) Speech And Language Processing. Prentice Hall. ISBN 0-13-0950-69-6.

Παραπομπές [1] [2] [3] [4]

http:/ / www. gate. ac. uk/ http:/ / www. ellogon. org/ http:/ / www. research. ibm. com/ UIMA/ http:/ / www. itl. nist. gov/ iad/ 894. 02/ related_projects/ muc/

72


73

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


74

Επεξεργασία δεδομένων Επεξεργασία δεδομένων Η επεξεργασία δεδομένων αφορά τη συλλογή, την ταξινόμηση, την καταχώρηση, τη μεταβολή, την αποθήκευση, την αναζήτηση, και την ανάκτηση δεδομένων με ή χωρίς τη βοήθεια του ηλεκτρονικού υπολογιστή για την παραγωγή πληροφοριών.


75

Επικοινωνία γραμμής ρεύματος Επικοινωνία γραμμής ρεύματος Το Power line communication (PLC) (επικοινωνία γραμμής ρεύματος), που επίσης λέγεται power line carrier (κομιστής γραμμής ρεύματος), mains communication, power line telecom (PLT) (επικοινωνία γραμμής ρεύματος), ή power line networking (PLN) (δικτύωση γραμμής ρεύματος), είναι όροι που περιγράφουν διάφορα διαφορετικά συστήματα χρήσης των γραμμών του ρεύματος για την μεταφορά σημάτων με σκοπό την επικοινωνία.

Περίληψη Οικιακός έλεγχος (Narrowband) Η τεχνολογία PLC μπορεί να χρησιμοποιήσει την οικιακή καλωδίωση ηλεκτροδότησης σαν μέσο μετάδοσης. Το INSTEON και το X10 είναι τα πιο δημοφιλή πρότυπα χρήσης της PLC για τον οικιακό έλεγχο. Αυτή είναι μια τεχνική που χρησιμοποιείται στην οικιακή αυτοματοποίηση για την απομακρυσμένη διαχείρηση του φωτός και των οικιακών συσκευών χωρίς την εγκατάσταση επιπρόσθετης καλωδίωσης ελέγχου. Τυπικά, οι PLC συσκευές οικιακού ελέγχου λειτουργούν εκπέμποντας απ' τον πομπό σε συχνότητα κύματος μεταξύ 20 και 200 kHz στην καλωδίωση του οικιακού ρεύματος. Το κύμα είναι διαμορφωμένο σε ψηφιακά σήματα. Κάθε δέκτης του συστήματος έχει μια διεύθυνση και μπορεί να δεχτεί αποκλειστικές εντολές απ' τα σήματα που στέλνει ο πομπός και αποκοδικοποιεί ο δέκτης. Αυτές οι συσκευές μπορούν είτε να τοποθετηθούν σε μια απλή πρίζα είτε να καλωδιοθούν μόνιμα. Αφού τα σήματα μπορεί να επηρεάσουν τα κοντινά σπίτια (ή διαμερίσματα) στο ίδιο δίκτυο διανομής, τα σήματα ελέγχου έχουν μια "διεύθυνση οικίας" καθορισμένη απ' τον ιδιοκτήτη.

Οικιακό δίκτυο (Broadband) Η τεχνολογία PLC μπορεί επίσης να χρησιμοποιηθεί για να συνδέσει (δικτυώσει) οικιακούς υπολογιστές ή περιφερειακά, όμως αυτή τη στιγμή δεν υπάρχει ένα καθολικό πρότυπο για αυτή την εφαρμογή. Πρότυπα για οικιακό δίκτυο μέσω των γραμμών ηλεκτροδότησης έχουν αναπτυχθεί από πολλές διαφορετικές εταιρείες στο πλαίσιο της HomePlug Powerline Alliance (Συμμαχίας HomePlug Powerline) και του Universal Powerline Association (Συνεταιρισμού Universal Powerline).

Πρόσβαση στο Internet (Broadband over powerlines - Ευρυζωνικότητα μέσω των γραμμών ρεύματος, BPL) Το BPL, είναι η χρήση της τεχνολογίας PLC με σκοπό την παροχή ευρυζωνικού Internet μέσω των συμβατικών γραμμών ρεύματος. Το μόνο που χρειάζεται για έναν υπολογιστή ή μία συσκευή για να έχει πρόσβαση υψηλής ταχύτητας στο Internet είναι η τοποθέτηση ενός BPL "modem" σε μια πρίζα. Με μια πρώτη ματιά, βλέπουμε πως το BPL μπορεί να προσφέρει πλεονεκτήματα όμοια με εκέινα των καλωδιακών ή DSL συνδέσεων: η έτοιμη υποδομή φαίνεται πως θα επέτρεπε ανθρώπους σε απομακρυσμένες περιοχές να αποκτήσουν πρόσβαση στο Internet με σχετικά μικρή επένδυση σε εξοπλισμούς. Επίσης, η τόσο μεγάλη διαθεσιμότητα θα έκανε ευκολότερη τη σύνδεση άλλων ηλεκτρονικών συσκευών, όπως οι τηλεοράσεις ή τα ηχοσυστήματα.


Επικοινωνία γραμμής ρεύματος Όμως, οι παραλλαγές στα φυσικά χαρακτηριστικά του δικτύου ηλεκτροδότησης και η σημερινή έλλειψη προτύπων IEEE οδηγούν στο συμπέρασμα πως η παροχή της υπηρεσίας θα αργήσει να αποκτήσει κάποιο πρότυπο και να γίνει ευρεία διαδικασία. Επίσης το ερώτημα αν μέγεθος της ευρυζωνικότητας που μπορεί να παρέχει συγκρινόμενο με την καλωδιακή ή την ασύρματη πρόσβαση είναι ικανοποιητικό παραμένει αναπάντητο. Ειδικοί παρατηρητές πιστεύουν πως η δυνατότητα σύνδεσης BPL θα κινητοποιήσει τους παρόχους DSL ή καλωδιακού Internet να παρέχουν υπηρεσίες σε απομακρυσμένα χωριά. Τα PLC modems εκπέμπουν σε μεσαίες και υψηλές συχνότητες (1,6 - 80 MHz). Η ασύμετρη ταχύτητα του modem είναι γενικά από 256kbit/s έως 2,7 Mbit/s. Στον επαναλήπτη που εγκαθίσταται στο μεσσαίο δωμάτιο η ταχύτητα φτάνει τα 45 Mbit/s και μπορεί να συνδεθεί σε 256 PLC modems. Στους μεσσαίους ηλεκτρικούς σταθμούς η ταχύτητα φτάνει τα 135 Mbit/s. Για τη σύνδεση στο Internet μπορούν να χρησιμοποιηθούν οπτικές ίνες ή ασύρματη γραμμή. Για το σύστημα έχουν προκύψει αρκετά θέματα, το κυριώτερο απ' τα οποία είναι το γεγονός ότι οι γραμμές ηλεκτροδότησης έχουν υψηλό θόρυβο (παράσιτα σημάτων). Κάθε φορά που μια συσκευή κλείνει, παράγει ένα ξαφνικό σήμα στη γραμμή. Οι συσκευές χαμηλής κατανάλωσης παράγουν αρμονικούς θορύβους στη γραμμή. Το σύστημα πρέπει να σχεδιαστεί έτσι ώστε να λειτουργεί χωρίς να επηρεάζεται απ' αυτές τις φυσικές διακοπές στο σήμα. Το BPL έχει αναπτυχθεί περισσότερο στην Ευρώπη απ' ότι στις ΗΠΑ εξαιτίας της ιστορικής διαφοράς στη φιλοσοφία του σχεδιασμού του συστήματος ηλεκτροδότησης. Σχεδόν όλα τα μεγάλα δίκτυα ηλεκτροδότησης μεταδίδουν ρεύμα σε υψηλές τάσεις με σκοπό να μειώσουν τις απώλειες μετάδοσης, έπειτα κοντά στον καταναλωτή χρησιμοποιούν μετασχηματιστές για να μειώσουν την τάση. Απ' τη στιγμή που τα σήματα BPL δεν μπορούν να μεταδωθούν μέσω μετασχηματιστών - η υψηλή επαγωγή τα κάνει να λειτουργούν ως φίλτρα, εμποδίζοντας τα σήματα υψηλής συχνότητας - πρέπει να τοποθετηθούν επαναλήπτες στους μετασχηματιστές. Στις ΗΠΑ, είναι συχνό ένας μικρός μετασχηματιστής να εξυπηρετεί μόνο ένα σπίτι ή έναν μικρό αριθμό σπιτιών. Στην Ευρώπη, είναι πιο συχνό ένας κάπως μεγαλύτερος μετασχηματιστής να εξυπηρετεί 10 ή και 100 σπίτια. Για την ηλεκτροδότηση, αυτή η σχεδιαστική διαφορά δημιουργεί ελάχιστες διαφορές στη διανομή, όμως για την επίτευξη του BPL στο δίκτυο μιας μέσης πόλης των ΗΠΑ χρειάζονται πολύ περισσότεροι επαναλήπτες απ' ότι σε μια Ευρωπαϊκή πόλη. Παρόλα αυτά, αφού το εύρος μετάδοσης (ταχύτητα) στον μετασχηματιστή είναι περιορισμένο, ο σχεδιασμός στις ΗΠΑ μπορεί να αυξήσει την ταχύτητα με την οποία κάθε σπίτι μπορεί να συνδεθεί, εξαιτίας του ότι λιγότεροι άνθρωποι θα μοιράζονται την ίδια γραμμή. Μια πιθανή εναλλακτική είναι η χρήση του BPL ως αναμεταδότη ασύρματης επικοινωνίας, τοποθετώντας για παράδειγμα σημεία πρόσβασης (access points) Wi-Fi ή σταθμούς κινητής τηλεφωνίας σε κοινούς πόλους, επιτρέπωντας στους τελικούς χρήστες να συνδεθούν σε ένα μια ορισμένη ακτίνα με εξοπλισμό που ήδη διαθέτουν. Στο κοντινό μέλλον, το BPL ίσως χρησιμοποιηθεί σαν αναμεταδότης για δίτκυα WiMAX. Το δεύτερο μεγαλύτερο θέμα είναι η ισχύς και η συχνότητα του σήματος. Το σύστημα χρησιμοποιεί συχνότητες από 10 έως 30 MHz, περιοχή που για δεκαετίες έχει χρησιμοποιηθεί από ερασιτεχνικούς ραδιοφωνικούς σταθμούς, καθώς και διεθνείς σταθμούς βραχέων και από ένα πλήθος άλλων συστημάτων επικοινωνίας (στρατιωτικά, αεροναυτικά, κτλ.). Οι γραμμές του ρεύματος δεν είναι μονωμένες με αποτέλεσμα να συμπεριφέρονται ως κεραίες που μεταδίδουν τα σήματα που μεταφέρουν, και υπάρχει το ενδεχόμενο να καταστήσουν άχρηστες τις επικοινωνίες βραχέων κυμάτων από 10 έως 30 MHz. Τα σύγχρονα συστήματα BPL χρησιμοποιούν την διαμόρφωση OFDM που επιτρέπει την μετρίαση της αλληλεπίδρασης με ραδιοφωνικές υπηρεσίες αφαιρώντας συγκεκριμένες συχνότητες. Μια μελέτη των ARPL και HomePlug Powerline alliance, που έγινε το 2001, έδειξε ότι με τα modems που χρησιμοποιούν αυτή την τεχνική "γενικά με τον διαχωρισμό της κεραίας απ' την δομή που περιλβάνει το σήμα του HomePlug αυτή η αλληλεπίδραση ήταν ελάχιστα αισθητή" και ότι η αλληλεπίδραση συνέβαινε μόνο όταν "η κεραία ήταν κοντά στις γραμμές του ρεύματος".

76


Επικοινωνία γραμμής ρεύματος Πολύ υψηλότερες ταχύτητες με τη χρήση συχνοτήτων μικροκυμάτων που μεταδίδονται μέσω ενός μηχανισμού διάδοσης επιφανειακών κυμάτων που ανακαλύφθηκε πρόσφατα που λέγεται E-Line έχουν πραγματοποιηθεί με τη χρήση ενός μόνο αγωγού γραμμής ρεύματος. Τα συστήματα αυτά ανέδειξαν την προοπτική για συμμετρική και πλήρως αμφίδρομη επικοινωνία με εύρος που ξεπερνά το 1 Gbit/s σε κάθε κατεύθυνση. Πολλαπλά κανάλια Wi-Fi ταυτόχρονα με τηλεόραση στο εύρος από 2,4 έως 5,3 GHz έχουν πραγματοποιηθεί λειτουργώντας σε μία μόνο κοινή γραμμή ρεύματος. Επιπλέον, επειδή μπορεί να λειτουργήσει σε οποιαδήοτε συχνότητα μεταξύ 100 MHz έως 10 GHz, με την τεχνολογία αυτή μπορούμε να αποφύγουμε εξ ολοκλήρου την αλληλεπίδραση που σχετίζεται με την εκμετάλλευση κοινού φάσματος, ενώ προσφέρει μεγαλύτερη ελαστικότητα για την διαμόρφωση και τα πρωτόκολλα που έχουν βρεθεί για κάθε άλλο τύπο συστήματος μικροκυμάτων.

Εφαρμογές κοινής ωφέλειας Οι εταιρείες κοινής ωφέλειας χρησιμοποιούν ειδικούς πυκνωτές σύζευξης για να συνδέσουν μεταδότες ραδιοκυμάτων χαμηλής συχνότητας στους "power-frequency AC" αγωγούς. Οι συχνότητες που χρησιμοποιούνται είναι μεταξύ 24 και 500 kHz, με ισχύ μεταδότη μέχρι εκατοντάδες Watt. Τα σήματα αυτά μπορεί να μεταδίδονται σε ένα, σε δύο ή και στους τρεις αγωγούς την γραμμής υψηλής τάσης. Διάφορα κανάλια PLC μπορούν να μεταδωθούν σε μία γραμμή υψηλής τάσης. Συσκευές-φίλτρα τοποθετούνται στους υποσταθμούς για να προληφθεί τυχόν παράκαμψη του σήματος μέσω των συσκευών του σταθμού και να επιβεβαιωθεί πως λάθη λόγω της απόστασης δεν επηρεάζουν τα μονωμένα τμήματα του συστήματος PLC. Τα κυκλώματα αυτά χρησιμοποιούνται για τον έλεγχο του "switchgear", και για την προστασία των γραμμών μετάδοσης. Για παράδειγμα, ένα προστατευτικό ρελέ μπορεί να χρησιμοποιήσει ένα κανάλι PLC για να σταματήσει τη λειτουργία σε μια γραμμή αν εντοπίσει κάποιο πρόβλημα ανάμεσα στα τέρματά της, αλλά να την αφήσει σε λειτουργία αν το πρόβλημα βρίσκεται κάπου αλλού. Καθώς οι εταιρείες κοινής οφέλειας χρησιμοποιούν μικροκύματα και τώρα, αυξανόμενα, οπτικές ίνες για τις ανάγκες της άμεσης επικοινωνίας συστήματος, οι μηχανισμοί σημάτων γραμμής ρεύματος μπορούν ακόμα να φανούν χρήσιμοι ως ένα εφεδρικό κανάλι ή για απλές χαμηλού κόστους εγκαταστάσεις που δεν εγγυώνται πρόβλημα στην ίνα.

77


78

Επίλυση προβλημάτων (τεχνητή νοημοσύνη) Επίλυση προβλημάτων (τεχνητή νοημοσύνη) Το λήμμα «αλγόριθμος αναζήτησης» ανακατευθύνει εδώ. Για την αναζήτηση στοιχείων σε δομές δεδομένων δείτε το άρθρο δομή δεδομένων. H επίλυση προβλημάτων είναι κλάδος της τεχνητής νοημοσύνης (ΤΝ) ο οποίος αφορά τον σχεδιασμό κατάλληλων ενεργειών με στόχο την άφιξη ενός ελέγξιμου συστήματος σε μία αποδεκτή τελική κατάσταση, εκκινώντας από κάποια προκαθορισμένη αρχική κατάσταση. Συνήθως αυτό γίνεται μέσω ενός αλγορίθμου ο οποίος λαμβάνει ως είσοδο το δοθέν πρόβλημα και επιστρέφει ως έξοδο μία λύση σε αυτό, αφού αξιολογήσει πρώτα μία ομάδα υποψηφίων λύσεων. Πρόκειται για ένα θεμελιώδες γνωστικό πεδίο της τεχνητής νοημοσύνης το οποίο γνώρισε μεγάλη ανάπτυξη ήδη από τη δεκαετία του 1950. Αποτέλεσε μία προσπάθεια αλγοριθμικής εξομοίωσης της διαδικασίας της σκέψης, ενώ με τον καιρό ενσωμάτωσε μεθοδολογίες από τη θεωρία βελτιστοποίησης και τη θεωρία γράφων.

Προβλήματα Ένα πρόβλημα είναι ένα σύνολο αντικειμένων, ιδιοτήτων και σχέσεων το οποίο ορίζεται από μία αρχική κατάσταση, μία επιθυμητή τελική κατάσταση και τις επιτρεπτές ενέργειες στα αντικείμενα του προβλήματος. Στόχος είναι, ξεκινώντας από την αρχική κατάσταση, να γίνει μία κατάλληλη ακολουθία ενεργειών η οποία να καταλήγει στην τελική κατάσταση. Αυτή η διαδικασία ονομάζεται επίλυση του προβλήματος (π.χ. η διεξαγωγή μίας παρτίδας σκάκι) και αποτέλεσε στόχο της ΤΝ από τη δεκαετία του '50. Η επίλυση προβλημάτων έχει προφανώς σπουδαίες εφαρμογές στην απόδειξη θεωρημάτων, στον χρονοπρογραμματισμό ενεργειών, στη διεξαγωγή παιγνίων κλπ, ενώ θεωρείται κεντρικό χαρακτηριστικό της ευφυΐας. Βασικό στοιχείο στην επίλυση προβλημάτων είναι η αναπαράσταση τους και γι' αυτό το σκοπό υπάρχουν δύο μεθοδολογίες: η αναπαράσταση με χώρο καταστάσεων και η αναπαράσταση με αναγωγή. Στη μέθοδο της αναγωγής δομική μονάδα περιγραφής του προβλήματος είναι η ίδια η περιγραφή αναλυόμενη σε πολλαπλές, απλούστερες εκδοχές. Αυτή η ανάλυση συμβαίνει διαδοχικά ώσπου να καταλήξει σε αρχέγονα προβλήματα επιλυόμενα με προφανή τρόπο. Προγραμματιστικά η αναγωγή υλοποιείται με αναδρομή και κεντρική έννοια σε αυτήν αποτελούν οι τελεστές αναγωγής, διαδικασίες οι οποίες ανάγουν ένα πρόβλημα σε υποπροβλήματα. Στη μέθοδο χώρου καταστάσεων βασική δομική μονάδα είναι η κατάσταση, το σύνολο δηλαδή των αντικειμένων που εμπλέκονται στο πρόβλημα συν τις ιδιότητες τους και τις μεταξύ τους σχέσεις. Η κατάσταση ορίζεται σε ένα απλουστευμένο, αφαιρετικό μοντέλο του κόσμου και το σύνολο των καταστάσεων (στιγμιοτύπων) στις οποίες μπορεί να βρεθεί αυτός ο κόσμος του προβλήματος ονομάζεται χώρος καταστάσεων. Το ίδιο το πρόβλημα ορίζεται με βάση την αρχική κατάσταση από την οποία ξεκινάμε, την επιθυμητή τελική κατάσταση στην οποία πρέπει να καταλήξουμε (ή πολλές δυνατές τελικές) και το σύνολο των τελεστών μετάβασης, επιτρεπτών πράξεων δηλαδή που μπορούν να εκτελεστούν στα αντικείμενα μίας κατάστασης οδηγώντας σε μια άλλη (π.χ. στην αναπαράσταση μίας παρτίδας σκάκι τελεστής είναι η έγκυρη μετακίνηση ενός πιονιού). Λύση του προβλήματος είναι μία ακολουθία διαδοχικών τελεστών μετάβασης και καταστάσεων που ξεκινά από μία αρχική κατάσταση και καταλήγει σε μία τελική. Ο πιο κατάλληλος τρόπος γραφικής αναπαράστασης του προβλήματος είναι ένας δενδρικός γράφος με ρίζα την αρχική κατάσταση, φύλλα τις τελικές καταστάσεις και τα αδιέξοδα, κόμβους τις ενδιάμεσες καταστάσεις


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

Αλγόριθμοι αναζήτησης Υπάρχει μία πλειάδα πραγματικών ή συνθετικών, απλών ή πολύπλοκων προβλημάτων που μπορούν να αναπαρασταθούν με χώρο καταστάσεων. Όλα τα προηγούμενα βρίσκουν εφαρμογή και το μόνο που αλλάζει σε κάθε πρόβλημα είναι οι λεπτομέρειες (οι ιδιότητες των αντικειμένων, οι επιτρεπτοί τελεστές κλπ). Προκειμένου ένα πρόγραμμα να επιλύσει ένα τέτοιο πρόβλημα πρέπει να αναπαραστήσει κατάλληλα και να κατασκευάσει το δένδρο των καταστάσεων, ξεκινώντας από τη ρίζα και επεκτείνοντας τους κόμβους μέχρι να φτάσει σε κάποια τελική κατάσταση. Αν το ζητούμενο είναι να βρεθεί μία οποιαδήποτε λύση τότε το πρόγραμμα μπορεί τότε να τερματίσει επιστρέφοντας το μονοπάτι που οδηγεί στο τρέχον φύλλο, διαφορετικά (εξαντλητική αναζήτηση) μπορεί να αποθηκεύσει έναν δείκτη προς αυτό το φύλλο και να συνεχίσει την κατασκευή του δένδρου μέχρι να ανακαλύψει όλες τις πιθανές καταστάσεις που είναι προσβάσιμες από την αρχική, με τους διαθέσιμους τελεστές μετάβασης, και όλες τις πιθανές λύσεις. Υπάρχει ένας γενικός αλγόριθμος αναζήτησης που εκτελεί αυτήν τη διερεύνηση και οι πραγματικοί αλγόριθμοι που χρησιμοποιούνται είναι παραλλαγές του που διαφέρουν στα βήματα 7 και 8. Στον αλγόριθμο αυτό Μέτωπο Αναζήτησης (Μ.Α.) είναι το σύνολο των καταστάσεων που έχουμε επισκεφθεί αλλά δεν έχουμε επεκτείνει και Κλειστό Σύνολο (Κ.Σ.) το σύνολο των καταστάσεων που και έχουμε επισκεφθεί και έχουμε επεκτείνει. Το Κ.Σ. είναι απαραίτητο μόνο αν υπάρχει κίνδυνος παγίδευσης του αλγορίθμου σε ατέρμονα βρόχο λόγω απείρου μήκους κλαδιών στο δένδρο. 1:

Μ.Α = NULL; Κ.Σ. = NULL;

2:

Εισαγωγή της ρίζας στο Μ.Α.

3:

Όσο (Κ=Κεφαλή(Μ.Α.)) != NULL

4:

{

Αν Κ περιέχεται στο Κ.Σ. τότε goto 3

5:

Αν Κ είναι τελική κατάσταση τότε {return Κ(μη εξαντλητική αναζήτηση) ή

6:

Επέκταση του Κ, Εισαγωγή των παιδιών του στο Μ.Α., Εισαγωγή του Κ στο Κ.Σ.

7:

Αφαίρεση κάποιων καταστάσεων από το Μ.Α. με κάποιο κριτήριο («κλάδεμα» του δένδρου,

insertToSolutions(Κ)(εξαντλητική αναζήτηση);goto 3}

γίνεται για εξοικονόμηση χρόνου όταν θεωρείται απίθανο το υποδένδρο που ξεκινά από κάποια κατάσταση να οδηγεί σε λύση) 8: 9:

Αναδιοργάνωση του Μ.Α. με κάποιο κριτήριο }

Οι διάφορες πραγματικές παραλλαγές αυτού του αλγορίθμου διακρίνονται σε αλγορίθμους τυφλής αναζήτησης, που διατάσσουν το Μ.Α. αποκλειστικά με βάση το χρόνο δημιουργίας κάθε κόμβου κατά την κατασκευή του δένδρου, και σε αλγορίθμους ευρετικής αναζήτησης (heuristic search), όπου τα βήματα 7 και 8 εξαρτώνται από μία επιπλέον πληροφορία που υπολογίζεται σε πραγματικό χρόνο και που στις περισσότερες περιπτώσεις, αλλά όχι πάντα, είναι σχετικά ακριβής και αξιολογεί προσεγγιστικά τις καταστάσεις σε «καλές» και «κακές». Ένα παράδειγμα ευρετικής πληροφορίας που μπορεί να αντιστοιχιστεί σε κάθε ενδιάμεση κατάσταση είναι η εκτιμώμενη «απόστασή» της (με βάση ένα μέτρο που εξαρτάται από το πρόβλημα και την υλοποίηση) από την τελική. Έτσι μπορούμε, φερ' ειπείν, να κλαδεύουμε τα υποδένδρα με ρίζα «κακή» κατάσταση, αφαιρώντας τη ρίζα τους από το Μ.Α. προτού την επεκτείνουμε (βήμα 7). Προφανώς αυτή η τακτική συμβάλλει στην αντιμετώπιση του φαινομένου της συνδυαστικής έκρηξης.

79


Επίλυση προβλημάτων (τεχνητή νοημοσύνη) Μία άλλη κατηγοριοποίηση των αλγορίθμων γίνεται ανάλογα με τον τύπο του προβλήματος που επιλύουν: εκτός από τα συνηθισμένα που προαναφέρθηκαν, υπάρχουν και προβλήματα βελτιστοποίησης (όπου σε κάθε τελεστή μετάβασης αντιστοιχίζεται μία τιμή κόστους και αναζητούμε τη λύση με το μονοπάτι που αθροιστικά έχει το ελάχιστο κόστος) ή προβλήματα ικανοποίησης περιορισμών (όπου η τελική κατάσταση δεν είναι πλήρως γνωστή, γνωρίζουμε όμως κάποιες ιδιότητες της και επιθυμούμε να καταλήξουμε σε μία κατάσταση που να τις διαθέτει). Πληρότητα ενός αλγορίθμου αναζήτησης ονομάζεται το κατά πόσον βρίσκει πάντα μία λύση, εφ' όσον τέτοια υπάρχει.

Τυφλή αναζήτηση Οι σπουδαιότεροι αλγόριθμοι τυφλής αναζήτησης είναι ο DFS (Depth-First Search ή αναζήτηση κατά βάθος) και ο BFS (Breadth-First Search ή αναζήτηση κατά πλάτος), οι οποίοι κατασκευάζουν το δένδρο ξεκινώντας από τη ρίζα και παράγοντας κόμβους, ο μεν DFS κατά βάθος (ακολουθεί ένα κλαδί μέχρι να φτάσει σε φύλλο και μετά επεκτείνει έναν κόμβο προηγούμενου επιπέδου· αυτή η μέθοδος ονομάζεται «οπισθοδρόμηση»), ο δε BFS κατά πλάτος (επεκτείνει πρώτα όλους τους κόμβους ενός επιπέδου, οι οποίοι έχουν το ίδιο βάθος, και μετά προχωρά στους κόμβους του επόμενου επιπέδου). Προγραμματιστικά είναι σχεδόν ίδιοι μεταξύ τους, αλλά και με το γενικό αλγόριθμο που περιγράφηκε προηγουμένως, μόνο που διαφέρουν στο βήμα 8 (το βήμα 7 δεν υπάρχει αφού δε γίνεται κλάδεμα): ο DFS τοποθετεί τους νέους κόμβους που προστίθενται στο Μ.Α. στην αρχή της λίστας (LIFO στοίβα), ώστε στην επόμενη επανάληψη του βρόχου να επεκταθεί ένας από αυτούς, ενώ ο BFS τους τοποθετεί στο τέλος της λίστας (FIFO ουρά), ώστε στην επόμενη επανάληψη του βρόχου να επεκταθεί ένας «αδελφός» του γονέα τους αν υπάρχει. Ο BFS εγγυάται ότι θα βρει πρώτα τη λύση με την ελάχιστη απόσταση από τη ρίζα (οπότε είναι ιδανικός και για προβλήματα βελτιστοποίησης όπου όλοι οι τελεστές έχουν ίσο κόστος) και είναι πλήρης, το Μ.Α. όμως μπορεί να γιγαντωθεί για μεγάλους χώρους αναζήτησης και άρα έχει μεγάλες απαιτήσεις σε μνήμη. Από την άλλη ο DFS είναι τυχαίο το ποια λύση θα βρει πρώτα και δεν είναι πλήρης, καθώς αν δε χρησιμοποιείται Κλειστό Σύνολο μπορεί να παγιδευτεί σε κλαδιά απείρου μήκους (αφού ακολουθεί ένα κλαδί μέχρι να καταλήξει σε φύλλο). Από την άλλη έχει μικρές απαιτήσεις σε μνήμη διατηρώντας πάντα μικρό το Μ.Α. Συμβιβασμό μεταξύ αυτών των δύο αποτελεί ο αλγόριθμος ID (Iterative Deepening ή επαναληπτική εκβάθυνση), ο οποίος είναι κατά βάση DFS αλλά προχωρά μέχρι ένα προκαθορισμένο βάθος, ενώ στη συνέχεια το επιτρεπτό βάθος αυξάνεται και ο αλγόριθμος ξεκινά από την αρχή χωρίς να διατηρεί δεδομένα από την προηγούμενη αναζήτηση. Το δένδρο δηλαδή κατασκευάζεται διαρκώς από τη ρίζα, ξανά και ξανά, αλλά σε όλο και μεγαλύτερο βάθος. Παρ' όλο που ο ID εκτελεί πολλή περιττή εργασία αυτό δεν παίζει ρόλο σε μεγάλους χώρους αναζήτησης όσον αφορά την αλγοριθμική πολυπλοκότητα. Ο αλγόριθμος είναι πλήρης γιατί δεν μπορεί να παγιδευτεί σε άπειρα κλαδιά, αφού το βάθος αναζήτησης είναι προκαθορισμένο, έχει τις μικρές απαιτήσεις μνήμης του DFS, ενώ αν το επιτρεπτό βάθος σε κάθε επανάληψη αυξάνεται κατά 1 εγγυάται ότι θα βρει πρώτα τη λύση με την ελάχιστη απόσταση από τη ρίζα (όπως ο BFS, αφού αν υπήρχε καλύτερη λύση θα βρισκόταν σε προηγούμενη επανάληψη). Οποιοσδήποτε από αυτούς τους αλγορίθμους μπορεί να χρησιμοποιηθεί με τη μέθοδο BiS (Bidirectional Search ή αμφίδρομη αναζήτηση), η οποία μπορεί να εφαρμοστεί σε υπολογιστικό σύστημα με δύο επεξεργαστές όταν η τελική κατάσταση είναι πλήρως γνωστή και οι τελεστές μετάβασης είναι αντιστρέψιμοι: ο ένας επεξεργαστής εκτελεί αναζήτηση από την αρχική προς την τελική κατάσταση και ο άλλος από την τελική προς την αρχική. Όταν βρεθεί μία κοινή κατάσταση το πρόγραμμα ενώνει τα δύο μονοπάτια και επιστρέφει την τελική λύση· ιδανικά στο 1/2 του χρόνου που θα απαιτούσε μία μονόδρομη αναζήτηση. Σε προβλήματα βελτιστοποίησης με τελεστές διαφορετικού (αλλά πάντα θετικού) κόστους μπορεί να εφαρμοστεί ο αλγόριθμος τυφλής αναζήτησης B&B (Branch and Bound ή επέκταση και οριοθέτηση), ο οποίος μπορεί να βασιστεί είτε στον DFS είτε στον BFS προσφέροντας όμως επιπλέον κλάδεμα των καταστάσεων -και των αντίστοιχων υποδένδρων που θα προέκυπταν από την επέκταση τους- που αποκλείεται να οδηγούν σε

80


Επίλυση προβλημάτων (τεχνητή νοημοσύνη) λύση καλύτερη από την τρέχουσα. Για να το πετύχει αυτό κρατά σε μία μεταβλητή Β το ολικό κόστος του μονοπατιού της βέλτιστης λύσης που έχει βρεθεί ως τώρα και, αν το μονοπάτι του τρέχοντος ενδιάμεσου κόμβου έχει κόστος μεγαλύτερο του Β, δεν τον αναπτύσσει και τον αφαιρεί από το Μέτωπο Αναζήτησης. Στη χειρότερη περίπτωση δε θα γίνει κανένα κλάδεμα, αφού είναι θέμα τύχης η σειρά με την οποία θα ανακαλυφθούν οι λύσεις, και ο B&B λειτουργεί όπως ο DFS ή ο BFS.

Ευρετική αναζήτηση Προκειμένου να μειωθεί ο, γιγάντιος για ρεαλιστικά προβλήματα, χώρος αναζήτησης και ο απαιτούμενος για την εύρεση της λύσης χρόνος, μπορούν να χρησιμοποιηθούν αλγόριθμοι που εκμεταλλεύονται ευρετικούς μηχανισμούς, δηλαδή στρατηγικές (συνήθως συναρτήσεις που εξαρτώνται από το εκάστοτε πρόβλημα) οι οποίες αξιολογούν προσεγγιστικά τις ενδιάμεσες καταστάσεις ως προς την εκτιμώμενη απόσταση τους από μία τελική κατάσταση, επεκτείνουν πρώτα αυτές με τη βέλτιστη ευρετική τιμή (οι οποίες αναμένεται να οδηγήσουν συντομότερα σε λύση) ή/και κλαδεύουν τις υπόλοιπες. Οι ευρετικοί μηχανισμοί δεν είναι αντικειμενικοί και, παρόλο που κωδικοποιούνται αλγοριθμικά υπό τη μορφή της ευρετικής συνάρτησης, δεν μπορούν να θεωρηθούν αλγόριθμοι. Αυτό γιατί, προκειμένου να μειώσουν το χώρο αναζήτησης ή να επιταχύνουν την εύρεση της λύσης, λειτουργούν προσεγγιστικά και «διαισθητικά» (περίπου όπως οι άνθρωποι), ενώ οι αλγόριθμοι είναι ακριβείς και λειτουργούν πάντα ορθά. Στην πλειονότητα των περιπτώσεων πάντως οι ευρετικές στρατηγικές οδηγούν σε πολύ καλά αποτελέσματα (αναλόγως βέβαια του προβλήματος), ωστόσο απέχουν πολύ από το να προσομοιώνουν τους μηχανισμούς της ανθρώπινης σκέψης: η τελευταία χρησιμοποιεί επίσης ευρετικές μεθόδους οι οποίες όμως είναι ποιοτικές, όχι ποσοτικές / αριθμητικές όπως η ευρετική συνάρτηση, και φαίνεται να αποδίδουν καλύτερα. Ένας βασικός ευρετικός αλγόριθμος είναι ο HC (Hill Climbing ή αναρρίχηση λόφων), ο οποίος μοιάζει με τον DFS αλλά σε κάθε επανάληψη κλαδεύει όλες τις καταστάσεις που προκύπτουν από μία επέκταση εκτός από την ευρετικά βέλτιστη (δηλαδή κάθε στιγμή το Μ.Α. έχει μία κατάσταση) και μεταβαίνει στην τελευταία μόνο αν έχει καλύτερη ευρετική τιμή από το γονέα της· διαφορετικά τερματίζει έχοντας βρει μία τοπικά βέλτιστη λύση. Προφανώς ο HC δεν είναι πλήρης αλλά είναι πολύ γρήγορος και καθόλου μνημοβόρος. Υπάρχουν διάφορες παραλλαγές του που θυσιάζουν λίγη από την ταχύτητα του προκειμένου να αυξήσουν την πιθανότητα του να βρει λύση. Μία παραλλαγή είναι ο EHC (Enforced Hill Climbing ή εξαναγκασμένη αναρρίχηση λόφων), στον οποίον διατηρούνται στο Μ.Α. τα αδέρφια του τρέχοντος κόμβου και, αν η επέκταση του τελευταίου δεν οδηγήσει σε μετάβαση, αντί ο αλγόριθμος να τερματίσει εκτελεί μία αναζήτηση κατά πλάτος στα αδέρφια του μέχρι να βρεθεί μία καλύτερη κατάσταση οπότε και συνεχίζεται η αναρρίχηση από εκεί. Επίσης δημοφιλής είναι και ο SA (Simulated Annealing ή προσομοιωμένη ανόπτηση), ο οποίος δίνει μία πιθανότητα μετάβασης σε χειρότερες καταστάσεις (p), αφήνοντας έτσι περιθώριο στην αναζήτηση να ξεφύγει από τοπικά βέλτιστα. Αν η πιθανότητα p τείνει στο 0 ο SA λειτουργεί όπως ο HC. Επίσης υπάρχει ο TS (Taboo Search ή αναζήτηση με απαγορεύσεις), όπου σε κάθε επέκταση γίνεται πάντα μετάβαση στο καλύτερο παιδί, ακόμα και αν είναι χειρότερη κατάσταση από την τρέχουσα, και η αναζήτηση συμβουλεύεται μία λίστα απαγορευμένων καταστάσεων (παρόμοιας λειτουργικότητας με το Κλειστό Σύνολο αλλά σταθερού μεγέθους). Ο BS (Beam Search ή ακτινωτή αναζήτηση), όπου ένας σταθερός αριθμός εκ των καλύτερων καταστάσεων παραμένει στο Μ.Α. δίνοντας τη δυνατότητα οπισθοδρόμησης αν χρειαστεί, είναι μία ακόμα επέκταση του κεντρικού αλγορίθμου αναρρίχησης λόφων. Όλοι αυτοί οι ευρετικοί αλγόριθμοι κατάγονται από τη θεωρία μαθηματικής βελτιστοποίησης, όπου αναπτύχθηκαν για να εντοπίζουν το ελάχιστο ή το μέγιστο μίας πραγματικής συνάρτησης διακριτής μεταβλητής. Στην επίλυση προβλημάτων τον ρόλο της τελευταίας προφανώς τον παίζει η ευρετική συνάρτηση και ο χώρος των λύσεων οπτικοποιείται ως ένα γεωγραφικό «τοπίο»: όσο περισσότερο δύο λύσεις διαφέρουν τόσο απέχουν μεταξύ τους σε αυτό το τοπίο, ενώ όσο καλύτερη ευρετική τιμή έχει μία λύση τόσο υψηλότερα από το επίπεδο του «εδάφους» τοποθετείται σε αυτό το τοπίο. Το τελευταίο, καθώς οι υποψήφιες καταστάσεις είναι διακριτές μεταξύ τους, ουσιαστικά είναι ένας γράφος με κορυφές τις καταστάσεις και ακμές τους

81


Επίλυση προβλημάτων (τεχνητή νοημοσύνη) τελεστές μετάβασης. Η παραλλαγή της αναρρίχησης λόφων σε συνεχή χώρο, με στόχο την εύρεση ακρότατου μιας συνάρτησης συνεχούς μεταβλητής, ονομάζεται άνοδος κλίσης (gradient ascent, αν η συνάρτηση εκφράζει βελτιστότητα και αναζητείται το μέγιστό της) ή κάθοδος κλίσης (gradient descent, αν η συνάρτηση εκφράζει σφάλμα / απόκλιση από το βέλτιστο και αναζητείται το ελάχιστό της) και υλοποιείται με μεθόδους του απειροστικού λογισμού. Άλλος δημοφιλής ευρετικός αλγόριθμος είναι ο BestFS (αναζήτηση πρώτα στο καλύτερο) ο οποίος κρατά όλες τις καταστάσεις στο Μ.Α. και μοιάζει με τον BFS, μόνο που σε κάθε επέκταση εφαρμόζει τον ευρετικό μηχανισμό και στην επόμενη επανάληψη μεταβαίνει στο ευρετικά βέλτιστο παιδί. Είναι πλήρης, μνημοβόρος και δεν εγγυάται ότι θα βρει τη βέλτιστη λύση αφού εξαρτάται απόλυτα από την εγκυρότητα των εκτιμήσεων της ευρετικής συνάρτησης. Τροποποίηση του BestFS αποτελεί ο πλήρης και βέλτιστος αλγόριθμος Α*, στον οποίον η ευρετική τιμή που αντιστοιχίζεται σε κάθε νέα κατάσταση Κ για να την αξιολογήσει ο μηχανισμός δεν είναι μόνο μία εκτίμηση Α της απόστασης της από μία τελική κατάσταση, αλλά το άθροισμα Α συν την ακριβή απόσταση της Κ από τη ρίζα. Ο Α* εγγυάται ότι θα βρει τη βέλτιστη λύση αρκεί η ευρετική συνάρτηση να είναι πάντα υποεκτίμηση της πραγματικής απόστασης από τη λύση και ποτέ υπερεκτίμηση («αποδεκτή συνάρτηση»). Σε περίπτωση που είναι σπουδαιότερη η ταχύτητα παρά η βελτιστότητα δε χρειάζεται η ευρετική συνάρτηση να είναι αποδεκτή. Παραλλαγή του Α* αποτελεί ο IDA* (A* με επαναληπτική εκβάθυνση) ο οποίος αναπτύσσει το δένδρο αναζήτησης κατά βάθος σε διαδοχικές επαναλήψεις, αξιοποιώντας την ευρετική συνάρτηση του Α* για να επιλέξει την επεκτεινόμενη κάθε φορά κατάσταση, αλλά όταν η ευρετική τιμή μίας νέας κατάστασης ξεπερνά το όριο που έχει τεθεί για την τρέχουσα επανάληψη όλο το υποδένδρο το οποίο ξεκινά από αυτήν κλαδεύεται. Στην επόμενη επανάληψη, όπου όπως στον ID το δένδρο αναζήτησης κατασκευάζεται από την αρχή, το νέο ευρετικό όριο τίθεται στη μικρότερη τιμή που εμφανίστηκε στις καταστάσεις οι οποίες κλαδεύτηκαν κατά την προηγούμενη επανάληψη.

Παίγνια Μία ειδική κατηγορία προβλημάτων ΤΝ είναι τα παίγνια δύο αντιπάλων (π.χ. σκάκι). Εδώ υπάρχουν δύο διαφορετικά σύνολα τελεστών μετάβασης που εφαρμόζονται εναλλάξ από δύο ανταγωνιστικά ενεργά συστήματα (τους παίκτες). Οι τελικές καταστάσεις δεν είναι πλήρως γνωστές, έχουν όμως συγκεκριμένα γνωστά χαρακτηριστικά και αντιστοιχούν σε ισοπαλία ή σε νίκη ενός εκ των δύο αντιπάλων / ήττα του άλλου. Στα προβλήματα αυτά ξεκινώντας από μία κατάσταση μπορούμε με συνεχείς επεκτάσεις να δημιουργήσουμε το δένδρο του παιχνιδιού, με όλα τα εναλλακτικά μονοπάτια που πηγάζουν από την τρέχουσα κατάσταση, στο οποίο οι κινήσεις δύο διαδοχικών επιπέδων (όπου κίνηση είναι ένα κλαδί του δένδρου, δηλαδή η μετάβαση από μία κατάσταση σε άλλη) αντιστοιχούν σε διαφορετικό παίκτη. Η ανάπτυξη αυτού του δένδρου μπορεί να γίνει από κάθε πράκτορα προτού προβεί σε μία κίνηση μέχρι κάποιο βάθος (όσο μεγαλύτερο είναι αυτό το βάθος τόσο καλύτερα αποδίδει ο αλγόριθμος). Σε αυτό το σημείο ο παίκτης μπορεί να αξιολογήσει ευρετικά ποια από τις εναλλακτικές κινήσεις οδηγεί στην ευνοϊκότερη γι' αυτόν εξέλιξη. Στα περισσότερα πραγματικά παίγνια το βάθος του κατασκευαζόμενου σε κάθε εκτέλεση δένδρου δεν μπορεί να είναι πολύ μεγάλο λόγω του προβλήματος της συνδυαστική έκρηξης. Ο σπουδαιότερος αλγόριθμος για επίλυση παιγνίων είναι ο Minimax (αναζήτηση ελαχίστου-μεγίστου), ο οποίος καλείται να αποφασίσει ποια θα είναι η επόμενη κίνηση του εναντίον του αντιπάλου. Κάθε φορά που εκτελείται αναπτύσσει το δένδρο του παιχνιδιού με ρίζα την τρέχουσα κατάσταση και ως ένα προκαθορισμένο βάθος, στη συνέχεια αποδίδει στα φύλλα ευρετικές τιμές οι οποίες αξιολογούν τις αντίστοιχες καταστάσεις ως ευνοϊκές γι' αυτόν (μεγάλες τιμές) ή για τον αντίπαλο (μικρές τιμές), και αποδίδει τιμές στους ενδιάμεσους κόμβους από τα φύλλα προς τη ρίζα του δένδρου ώσπου να αποκτήσει τιμή η τελευταία, θεωρώντας ότι σε κάθε επίπεδο του δένδρου κάθε παίκτης (κατάσταση-γονέας) θα επιλέξει τη συμφερότερη γι' αυτόν κίνηση (μετάβαση) από όλες τις πιθανές (καταστάσεις-παιδιά). Έτσι η τιμή κάθε κόμβου Max (κόμβου που στο δένδρο προηγείται κίνησης του ίδιου του παίκτη) είναι η μέγιστη των τιμών των παιδιών του και η τιμή κάθε κόμβου Min (κόμβου που προηγείται κίνησης του αντιπάλου) είναι η ελάχιστη των τιμών των παιδιών του. Τελικά

82


Επίλυση προβλημάτων (τεχνητή νοημοσύνη) καλύτερη κίνηση είναι αυτή που οδηγεί στον κόμβο που έδωσε τη μεγαλύτερη τιμή για τη ρίζα. Ο αλγόριθμος ουσιαστικά εγγυάται πάντα την πιο συμφέρουσα εξέλιξη του παιχνιδιού, υποθέτοντας ότι ο αντίπαλος επιλέγει διαρκώς τις καλύτερες για εκείνον κινήσεις και δεν κάνει λάθη. Με τον Minimax υπάρχουν πάντα δυνατές κινήσεις οι οποίες φαίνεται να συμφέρουν περισσότερο, αγνοούνται όμως όταν μπορεί να οδηγήσουν σε καταστάσεις όπου ο αντίπαλος -ΑΝ κάνει την καλύτερη επιλογή- αποκτά προβάδισμα. Ο αλγόριθμος AB (Άλφα Βήτα) είναι παραλλαγή του εξαντλητικού Minimax με κλάδεμα προκειμένου να εξοικονομηθεί χρόνος, όπου αγνοούνται καταστάσεις-παιδιά οι οποίες αποκλείεται να δώσουν την τιμή τους στον γονέα τους. Στη χειρότερη περίπτωση αποδίδει σαν τον Minimax. Το κλάδεμα γίνεται με αντικειμενικά κριτήρια (όπως στον B&B), ενώ προκειμένου να βελτιωθεί η απόδοση μπορούν να επιστρατευθούν και επιπλέον ευρετικό κλάδεμα, δυναμική συνάρτηση αξιολόγησης η οποία εξαρτάται από την εξέλιξη της παρτίδας, κρυφή μνήμη τιμών αξιολόγησης και άλλες μέθοδοι. Το σπουδαιότερο πρόβλημα όμως τόσο του Minimax όσο και του AB, πέρα από την απόδοση, είναι το «πρόβλημα του ορίζοντα», κατά το οποίο η άσχημη εξέλιξη της παρτίδας δεν μπορεί τελικώς να αποφευχθεί λόγω του περιορισμένου βάθους κατασκευής του δένδρου σε κάθε στάδιο. Ένας τρόπος να μειωθεί η επίδραση του προβλήματος του ορίζοντα είναι η χρήση ειδικών αλγορίθμων ανίχνευσης οι οποίοι εντοπίζουν χρονικά σημεία της παρτίδας κατά τα οποία η κατασκευή δένδρου με μεγαλύτερο βάθος από το συνηθισμένο ενδέχεται να βελτιώσει το τελικό αποτέλεσμα.

Ικανοποίηση περιορισμών Μία σημαντική κατηγορία προβλημάτων είναι τα προβλήματα ικανοποίησης περιορισμών. Και σε αυτά δεν είναι πλήρως γνωστές οι τελικές καταστάσεις, μόνο κάποιες ιδιότητες τους και οι περιορισμοί που πρέπει να ικανοποιούν, αλλά επίσης δε μας ενδιαφέρει και το μονοπάτι που οδηγεί στη λύση: το μόνο που επιθυμούμε να βρούμε είναι η πλήρης μορφή μίας τελικής κατάστασης. Στα προβλήματα αυτά κωδικοποιούμε τους περιορισμούς με τη βοήθεια μεταβλητών και ενός πεδίου τιμών (διακριτών ή συνεχών, ανάλογα με το πρόβλημα) από το οποίο αυτές λαμβάνουν τιμή. Οι περιορισμοί αφορούν τις πιθανές τιμές που μπορεί να ανατεθούν σε κάθε μεταβλητή (ή σε κάποιες από τις μεταβλητές) και κάθε λύση που τους ικανοποιεί είναι αποδεκτή. Στην ικανοποίηση περιορισμών μπορούν να χρησιμοποιηθούν παραλλαγές του HC προσαρμοσμένες στην αναζήτηση σε χώρο μεταβλητών, όπου εκκινούμε από μία τυχαία ανάθεση τιμών στις μεταβλητές και σταδιακά τη διορθώνουμε (με τη βοήθεια ευρετικής αξιολόγησης) ώστε να παραβιάζει λιγότερους περιορισμούς, πάντα με τον εγγενή στην αναρρίχηση λόφων κίνδυνο να παγιδευτούμε σε τοπικό ελάχιστο του σφάλματος (τοπικά βέλτιστη λύση). Συνήθως σε κάθε επανάληψη του αλγορίθμου είτε γίνεται αναζήτηση, σε όλες τις μεταβλητές, μίας τιμής που ελαχιστοποιεί περαιτέρω τις διενέξεις με τους περιορισμούς, είτε επιλέγεται τυχαία μία μεταβλητή και αναζητώνται μόνο δικές της τιμές που μειώνουν τις διενέξεις. Εναλλακτικά μπορούμε να κωδικοποιήσουμε περαιτέρω τις μεταβλητές σε καταστάσεις, όπου ο μόνος πιθανός τελεστής είναι η ανάθεση τιμής σε μία μεταβλητή, και να εφαρμόσουμε τυφλή αναζήτηση στο χώρο καταστάσεων που προκύπτει. Η τελευταία μέθοδος όμως δεν αποδίδει καλά σε μεγάλους χώρους λόγω της συνδυαστικής έκρηξης, οπότε μπορεί να συνδυαστεί με αλγορίθμους συνέπειας: οι τελευταίοι ελέγχουν διαδοχικά όλους τους περιορισμούς του προβλήματος και για τον καθέναν εξετάζουν τα πεδία τιμών των μεταβλητών ώστε να αφαιρέσουν τις τιμές που τον παραβιάζουν. Κάθε αφαίρεση απαιτεί επανέλεγχο των περιορισμών αφού μπορεί να επηρεάζονται και άλλες μεταβλητές μέσω αυτών. Οι αλγόριθμοι συνέπειας τόξου (AC) αναπαριστούν τις μεταβλητές ως κόμβους ενός γράφου και τους περιορισμούς ως τόξα που συνδέουν τους κατάλληλους κόμβους. Ο απλούστερος αλγόριθμος της κατηγορίας είναι ο AC-3, ο οποίος μπορεί να χειριστεί μόνο δυαδικούς περιορισμούς (στους οποίους συμμετέχουν το πολύ δύο μεταβλητές)· ωστόσο αποδεικνύεται ότι κάθε περιορισμός ανώτερης τάξης μπορεί να αναχθεί σε ένα σύνολο δυαδικών περιορισμών. Όταν ο αλγόριθμος ολοκληρώνεται μπορεί να έχει αφήσει μόνο λίγες δυνατές τιμές στα πεδία, μειώνοντας κατά πολύ το χώρο αναζήτησης, ωστόσο σχεδόν πάντα παραμένουν ασυνεπείς τιμές κάνοντας αναγκαία τη χρήση και ενός

83


Επίλυση προβλημάτων (τεχνητή νοημοσύνη) κλασικού αλγορίθμου αναζήτησης. Στην τελευταία περίπτωση ο αλγόριθμος συνέπειας χρησιμοποιείται για κλάδεμα κατά τη διάρκεια της αναζήτησης. Το κλάδεμα αυτό συμβαίνει σε κάθε επανάληψη του βρόχου οπότε αντί για την, ακριβή υπολογιστικά, πλήρη εφαρμογή ενός αλγορίθμου συνέπειας τόξου («έγκαιρη πλήρης εξέταση») μπορεί να εφαρμοστεί μία απλουστευμένη «έγκαιρη μερική εξέταση», κατά την οποία κάθε περιορισμός ελέγχεται μόνο μία φορά ακόμα και αν αφαιρεθεί κάποια τιμή από κάποιο πεδίο. Ακόμα πιο απλουστευμένος είναι ο «προοπτικός έλεγχος» κατά τον οποίον εξετάζονται μόνο τα πεδία τιμών των μεταβλητών που συνδέονται, μέσω περιορισμών, με τη μεταβλητή στην οποία ανατέθηκε τιμή κατά την προηγούμενη επανάληψη. Κατά την εκτέλεση του αλγορίθμου, αν το πεδίο τιμών μίας μεταβλητής γίνει κενό τότε η συγκεκριμένη κατάσταση απορρίπτεται, ενώ αν όλες οι μεταβλητές έχουν λάβει τιμή και δεν παραβιάζεται κανένας περιορισμός τότε ο αλγόριθμος έχει καταλήξει σε τελική κατάσταση.

Εξελικτικός υπολογισμός Σε προβλήματα βελτιστοποίησης μπορεί εναλλακτικά να χρησιμοποιηθεί κάποιος τύπους εξελικτικού υπολογισμού όπως οι εξελικτικοί αλγόριθμοι. Ο εξελικτικός υπολογισμός είναι μία κατηγορία εργαλείων της υπολογιστικής νοημοσύνης ο οποίος βασίζεται στην ιδέα της σταδιακής ανάπτυξης, με μια επαναληπτική διαδικασία, πιθανών λύσεων για ένα πρόβλημα μέσω πολλαπλών παράλληλων αναζητήσεων στο χώρο των λύσεων. Η διαφορά από άλλες μεθόδους βελτιστοποίησης είναι ότι οι υποψήφιες λύσεις αλληλεπιδρούν και αλληλεπηρεάζονται ώσπου να τερματίσει η διαδικασία. Όταν αυτή η αλληλεπίδραση συμβαίνει με βάση τις αρχές της βιολογικής εξέλιξης των ειδών τότε μιλάμε για εξελικτικούς αλγορίθμους. Στον τομέα της βέλτιστης επίλυσης προβλημάτων συνήθως χρησιμοποιούνται οι γενετικοί αλγόριθμοι, μία υποκατηγορία εξελικτικών αλγορίθμων η οποία μοιάζει με την αναρρίχηση λόφων αλλά δεν παγιδεύεται εύκολα σε τοπικά βέλτιστες λύσεις. Στους γενετικούς αλγορίθμους αρχικά παράγεται ένα σύνολο Ν υποψήφιων λύσεων για το εκάστοτε πρόβλημα (πληθυσμός n), το οποίο κατασκευάζεται τυχαία και επομένως τα περισσότερα μέλη του είναι άκυρα ή μη βέλτιστα ως λύσεις. Αυτοί οι υποψήφιοι αξιολογούνται με μία καθοριζόμενη από τον χειριστή (συνήθως ευρευτική) πραγματική συνάρτηση διακριτής μεταβλητής, τη συνάρτηση καταλληλότητας, η οποία επιχειρεί να βαθμολογήσει κάθε υποψήφιο ανάλογα με το πόσο κοντά βρίσκεται σε κάποια ιδανική λύση. Ακολούθως από τον αρχικό πληθυσμό σχηματίζονται Ν/2 ζεύγη υποψηφίων («γονέων»), με μεγαλύτερη προτεραιότητα στις πιο θετικά αξιολογημένες λύσεις, όπου κάθε υποψήφιος μπορεί να συμμετέχει σε περισσότερα από ένα ζεύγη. Τα μέλη κάθε ζεύγους συνδυάζονται με κάποιον τρόπο μεταξύ τους και το αποτέλεσμα είναι δύο νέες υποψήφιες λύσεις («απόγονοι»). Ο νέος πληθυσμός n+1 αποτελείται από το σύνολο αυτών των απογόνων (πλήρης ανανέωση). Εναλλακτικά οι απόγονοι μπορούν να συνυπάρχουν με μέλη του αμέσως προηγούμενου πληθυσμού n (μερική ανανέωση), σε κάθε περίπτωση όμως ο πληθάριθμος Ν παραμένει σταθερός σε κάθε «γενιά». Το ποσοστό υποψηφίων που αντικαθίσταται από απογόνους ονομάζεται «χάσμα γενεών» και στην πλήρη ανανέωση είναι 100%, ενώ στη μερική ανανέωση η πιθανότητα αντικατάστασης μίας λύσης της γενιάς n από απόγονο της γενιάς n+1 είναι αντιστρόφως ανάλογη της καταλληλότητας της. Η διαδικασία αυτή επαναλαμβάνεται μέχρι να ικανοποιηθεί κάποιο κριτήριο τερματισμού, δηλαδή συνήθως να βρεθεί μία λύση που αξιολογείται ως βέλτιστη από τη συνάρτηση καταλληλότητας ή ο μέσος όρος των λύσεων του τρέχοντος πληθυσμού να τείνει να συγκλίνει σε μία μόνο λύση (ή μικρές παραλλαγές μίας). Αυτή η μεθοδολογία επιχειρεί να μιμηθεί τη βιολογική ιδέα της γενετικής διαφοροποίησης και της φυσικής επιλογής, των πυλώνων της εξέλιξης των ειδών, αλλά ουσιαστικώς η φυσική επιλογή αντικαθίσταται από μία τεχνητή επιλογή η οποία γίνεται μέσω της συνάρτησης καταλληλότητας. Η τελευταία αποτελεί και το υπέρτατο κριτήριο για την πραγματική απόδοση του αλγορίθμου.

84


Επίλυση προβλημάτων (τεχνητή νοημοσύνη)

Βιβλιογραφία και πηγές • Τεχνητή Νοημοσύνη, μια σύγχρονη προσέγγιση, Stuart Russel και Peter Norvig [1] • Τεχνητή Νοημοσύνη - Γ' Έκδοση, Εκδόσεις Γκιούρδας, Βλαχάβας, Κεφαλάς, Βασιλειάδης, Κόκκορας, Σακελλαρίου [2]

Παραπομπές [1] http:/ / aima. uom. gr/ [2] http:/ / aibook. csd. auth. gr/

85


86

Ηλεκτρονική μάθηση Ηλεκτρονική μάθηση Ηλεκτρονική μάθηση είναι η διαδικασία κατά την οποία κάποιος μαθαίνει – εκπαιδεύεται με την χρήση ηλεκτρονικών υπολογιστών. Ευρέως διαδεδομένος είναι ο διεθνής όρος e-learning για την ηλεκτρονική μάθηση. H εκπαίδευση με αυτή την διαδικασία μπορεί να χωριστεί σε εκπαίδευση με σύνδεση (online) και εκπαίδευση χωρίς σύνδεση (offline). Ηλεκτρονική μάθηση με σύνδεση είναι η προβολή εκπαιδευτικού υλικού μέσω Ίντερνετ (από κάποιο δικτυακό τόπο) ενώ ηλεκτρονική μάθηση χωρίς σύνδεση είναι η προβολή εκπαιδευτικού υλικού αποθηκευμένου στον υπολογιστή μας, εκπαιδευτικά cdrom κ.τ.λ.

Εξωτερικοί σύνδεσμοι • http://cbdd.wsu.edu/edev/kenet_tot/unit1/WhatseLearning.htm (Αγγλικά)


87

Ηλεκτρονικό βιβλίο Ηλεκτρονικό βιβλίο Ηλεκτρονικό βιβλίο (ή ψηφιακό βιβλίο, αγγλικά: e-book) είναι ένα βιβλίο σε ψηφιακή μορφή που εκδίδεται με σκοπό την ανάγνωσή του σε ηλεκτρονικό αναγνώστη, σε υπολογιστή ή άλλη ηλεκτρονική συσκευή. Παρόλο που μπορεί να διατίθεται και σε τυπωμένη εκδοχή ή να συνιστά ψηφιοποίηση ενός ήδη τυπωμένου βιβλίου, το ηλεκτρονικό βιβλίο δεν προϋποθέτει αναγκαστικά και ένα αντίστοιχο τυπωμένο βιβλίπ. Τα ηλεκτρονικά βιβλία σήμερα είναι στη μεγάλη τους πλειοψηφία αρχεία ePUB, Portable Document Format (pdf) και Mobipocket. Διαβάζονται είτε με εξειδικευμένες συσκευές με οθόνες ηλεκτρονικού χαρτιού, τους ηλεκτρονικούς αναγνώστες, είτε σε υπολογιστές και κινητά τηλέφωνα.

Διάβασμα ηλεκτρονικής σελίδας σε συσκευή ανάγνωσης ηλεκτρονικών βιβλίων

Σήμερα οι βιβλιοθήκες τείνουν να αγοράζουν ηλεκτρονικά βιβλία (παρότι έχουν μεγαλύτερο κόστος ) διότι δίνεται η δυνατότητα να γίνει ανάγνωση από πολλούς χρήστες ταυτόχρονα και χωρίς να είναι απαραίτητη η φυσική τους παρουσία στη βιβλιοθήκη. Είναι ένας γενικός όρος που χρησιμοποιείται για προϊόντα που έχουν εκδοθεί σε ηλεκτρονική μορφή ή σε διάφορα πολυμέσα, ειδικά αυτά τα προϊόντα οπτικών δίσκων όπως CD-ROM. Κάποια από τα μειονεκτήματα είναι ότι απαιτείται ειδική συσκευή ανάγνωσης όπως το BeBook και το Sony Reader για την χρήση τους και καταναλώνουν ηλεκτρική ενέργεια. Χρησιμοποιούν λογισμικό όπως το calibre, που είναι ένα πρόγραμμα διαχείρισης των ηλεκτρονικών βιβλίων (ebook cataloging program).


88

Θεωρία Δραστηριοτήτων Θεωρία Δραστηριοτήτων Στα πλαίσια εισαγωγής υπολογιστικών συστημάτων σε οργανισμούς είναι απαραίτητη η μελέτη της επίδρασης που η εισαγωγή της τεχνολογίας αυτής θα έχει στον οργανισμό, αφού οι ρόλοι των εργαζομένων θα επηρεαστούν και η θέση τους στον οργανισμό πιθανό να αλλάξει. Εν γένει είναι γνωστό ότι οι υπολογιστές έχουν αμφίσημη επίδραση στους οργανισμούς και στην εργασία γενικότερα. Αφενός μεν έχουν ως συνέπεια την υποκατάσταση δραστηριοτήτων και την απώλεια δεξιοτήτων καθώς και την επιβολή μεγαλύτερου ελέγχου επί των εργαζομένων, αφετέρου δε παρέχουν εργαλεία για τη βελτίωση της παραγωγικότητάς και της δημιουργικότητάς τους. Πολλές διαφορετικές μέθοδοι έχουν αναπτυχθεί για τη μελέτη της επίδρασης ενός σχεδιαζόμενου συστήματος που πρόκειται να εισαχθεί σ’ένα δεδομένο οργανισμό. Τέτοιες είναι η επιστημονική διαχείριση (scientific management), η κοινωνιοτεχνική προσέγγιση (sociotechnical), η θεωρία δραστηριοτήτων (activity theory), η διαχείριση ροής εργασιών (work flow management) κλπ.

Η ιστορία της θεωρίας δραστηριοτήτων Οι απαρχές της θεωρίας δραστηριοτήτων μπορούν να ανιχνευθούν σε πολλές πηγές, οι οποίες επακόλουθα έφεραν αύξηση σε αρκετούς συμπληρωματικούς και συνυφασμένους τομείς ανάπτυξης. Εδώ επικεντρωνόμαστε σε δύο από τους πιο σημαντικούς αυτούς τομείς. Ο πρώτος σχετίζεται με το Ινστιτούτο Ψυχολογίας της Μόσχας και συγκεκριμένα με μία «τρόικα» αποτελούμενη από νέους και ταλαντούχους ερευνητές : Lev Semyonovich Vygotsky (1896–1934), Alexander Romanovich Luria (1902–77) and Alexei Nikolaevich Leont'ev (1903–79). Ο Vygotsky ίδρυσε την πολιτισμική – ιστορική ψυχολογία, ένα σημαντικό τομέα για τη προσέγγιση δραστηριοτήτων• οι Leont’ev, ένας από τους βασικούς ιδρυτές της θεωρίας δραστηριοτήτων συνέχισαν και αντέδρασαν ενάντια στη δουλειά του Vygotsky. Η διατύπωση της θεωρίας δραστηριοτήτων του Leont'ev έχει αυτή τη στιγμή τη μεγαλύτερη επίδραση σε προ-Σοβιετικές αναπτύξεις σε ΑΤ, που υπήρξε κοινωνιο-επιστημονική και οργανωτική, παρά ψυχολογική έρευνα. Η δεύτερη μεγάλη γραμμή ανάπτυξης που αφορά το ΑΤ περιλαμβάνει επιστήμονες όπως οι P. K. Anokhin (1898-1974) and N. A. Bernshtein (1896-1966) που επικεντρώθηκαν ειδικότερα στη νευροφυσιολογική βάση της δραστηριότητας• η ίδρυσή του έχει σχέση με το σοβιετικό φιλόσοφο της ψυχολογίας S. L. Rubinshtein (1889-1960). Αυτή η δουλειά επακόλουθα αναπτύχθηκε από ερευνητές όπως οι Pushkin, Zinchenko & Gordeeva, Ponomarenko, Zarakovsky και άλλοι και είναι τώρα γνωστοί από τη δουλειά σε συστηματική-δομική θεωρία δραστηριοτήτων που διεξάγεται από τον G. Z. Bedny και τους συνεργάτες του.

Θεωρία δραστηριοτήτων και συστήματα πληροφοριών Η εφαρμογή της θεωρίας δραστηριοτήτων σε συστήματα πληροφοριών βγαίνει από τη δουλειά των Bonnie Nardi and Kari Kuutti. Η δουλειά του Kuutti αναλύεται παρακάτω. Η προσέγγιση της Nardi, περιληπτικά είναι : η Nardi είδε τη θεωρία δραστηριοτήτων σαν «… ένα δυνατό και διευκρινιστικό-περιγραφικό εργαλείο παρά μία δυνατή θεωρία πρόβλεψης. Ο σκοπός της θεωρίας δραστηριοτήτων είναι να καταλάβουμε την ολότητα της συνείδησης και της δραστηριότητας…. Οι θεωρητικοί συμφωνούν ότι η συνείδηση δεν είναι ένα σύνολο από διακριτά χωρισμένες γνωστικές δράσεις (πάρσιμο απόφασης, ομαδοποίηση, μνήμη), και σίγουρα δεν είναι το μυαλό. Περισσότερο η συνείδηση βρίσκεται στη καθημερινή πρακτική : είσαι ό,τι κάνεις ». Η Nardi συμφώνησε ότι « η θεωρία δραστηριοτήτων προτείνει μία δυνατή άποψη της παρέμβασης- όλη η ανθρώπινη εμπειρία


Θεωρία Δραστηριοτήτων μορφοποιείται από τα συστήματα εργαλείων και σημάτων που εμείς χρησιμοποιούμε ». Ακόμα αναγνωρίζει «κάποιες βασικές έννοιες της θεωρίας δραστηριοτήτων : η συνείδηση, η μη συμμετρική σχέση μεταξύ ανθρώπων και πραγμάτων και ο ρόλος των τεχνητών προϊόντων στη καθημερινή ζωή ». Επίσης εξήγησε ότι «ένα βασικό δόγμα της θεωρίας δραστηριοτήτων είναι ότι η αντίληψη της συνείδησης είναι κεντρική σε μία απεικόνιση ης δραστηριότητας. Ο Vygotsky περιέγραψε τη συνείδηση σαν ένα φαινόμενο που ενοποιεί τη προσοχή, τη πρόθεση, τη μνήμη, την αιτιολογία και το λόγο (ικανότητα ομιλίας)…» και « θεωρία δραστηριοτήτων, με έμφαση στη σημαντικότητα του κινήτρου και της συνείδησης - η οποία ανήκει μόνο στους ανθρώπους – βλέπει τους ανθρώπους και τα πράγματα θεμελιωδώς διαφορετικά. Οι άνθρωποι δε μειώνονται σε ‘κόμβους’ ή ‘συντελεστές’ σ’ένα σύστημα• η ‘επεξεργασία πληροφοριών’ δεν είναι κάτι που μπορεί να μοντελοποιηθεί με τον ίδιο τρόπο όπως οι άνθρωποι και οι μηχανές». Η Nardi συμφώνησε ότι το πεδίο της αλληλεπίδρασης Ανθρώπου – Υπολογιστή έχει « αγνοήσει τρομερά τη μελέτη των τεχνητών προϊόντων, επιμένοντας σε νοητικές περιγραφές ως το κατάλληλο τόπο μελέτης » και η θεωρία δραστηριοτήτων φαίνεται να είναι τρόπος ανάδειξης αυτού του ελλείμματος. Σε μετέπειτα εργασίες, η Nardi στη σύγκριση της θεωρίας δραστηριοτήτων με τη γνωστική επιστήμη συμφώνησε ότι « η θεωρία δραστηριοτήτων είναι πάνω από όλη τη κοινωνική θεωρία της συνείδησης » και άρα «… η θεωρία δραστηριοτήτων θέλει να καθορίσει τη συνείδηση. Αυτό αφορά όλη τη νοητική λειτουργία συμπεριλαμβανομένης της μνήμης, της διαδικασίας για το πάρσιμο μιας απόφασης, της ομαδοποίησης, της γενικοποίησης, της αφαίρεσης και πάει λέγοντας. Θέλει να καθορίσει τη συνείδηση σαν ένα προϊόν των κοινωνικών αλληλεπιδράσεων με άλλους ανθρώπους και της δικής μας χρήση εργαλείων ». Για τους θεωρητικούς δραστηριοτήτων η «συνείδηση» φαίνεται να αναφέρεται σε οποιαδήποτε νοητική λειτουργία, ενώ οι περισσότερες προσεγγίσεις της ψυχολογίας διαχωρίζουν τις συνειδητές από τις ασυνείδητες λειτουργίες.

Αλληλεπίδραση Ανθρώπου – Υπολογιστή Η αύξηση των προσωπικών υπολογιστών προκάλεσε την προσοχή σε παραδοσιακές αναπτύξεις συστημάτων σε κεντρικές μονάδες υπολογιστικών συστημάτων για την αυτοματοποίηση των ήδη υπαρχόντων ρουτινών εργασίας. Ακόμα παραπέρα έφερε στο προσκήνιο μία ανάγκη για προσοχή στο τρόπο εργασίας σε υλικά και αντικείμενα μέσω προσωπικού υπολογιστή. Στην έρευνα των θεωρητικών και μεθοδολογικών προοπτικών υπήρχε η αντιμετώπιση των θεμάτων της ευελιξίας και της πιο προχωρημένης παρέμβασης μεταξύ του ανθρώπου και των αποτελεσμάτων μέσω της διεπιφάνειας, και φαινόταν υποσχόμενο να στραφεί στο σχετικά νέο πεδίο έρευνας HCI που αναδείχτηκε κυρίως στις Ηνωμένες Πολιτείες της Αμερικής. Ειδικότερα οι γνωστικές και επιστημονικά βασισμένες θεωρίες στερούνταν τα μέσα της οργάνωσης κάποιου αριθμού θεμάτων που προέκυψαν από εμπειρικές εργασίες : 1. Πολλές από τις πρόσφατα ανεπτυγμένες διεπιφάνειες υπέθεταν ότι οι χρήστες ήταν και σχεδιαστές, και αντίστοιχα ήταν δομημένες στην υπόθεση ενός γενικού χρήστη, χωρίς έννοιες για προσόντα, περιβάλλον εργασίας, διαίρεση εργασίας κτλ. 2. Συγκεκριμένα ο ρόλος ενός τεχνητού προϊόντος όπως υπάρχει μεταξύ του χρήστη και του υλικού του, οι στόχοι και τα αποτελέσματα ήταν ελάχιστα αντιληπτά. 3. Στην επικύρωση ευρημάτων και σχεδίων υπήρχε βαριά προσοχή στους αρχάριους χρήστες ενώ η καθημερινή χρήση από έμπειρους χρήστες για την ανάπτυξη δεξιοτήτων ήταν σχεδόν ανύπαρκτη. 4. Η λεπτομερής ανάλυση εργασιών και τα ιδεατά μοντέλα που δημιουργήθηκαν μέσω της ανάλυσης εργασιών απέτυχαν να συλλάβουν τη πολυπλοκότητα και τη μη δυνατότητα πρόβλεψης της καθημερινής δράσης. 5. Από τη μεριά των σύνθετων ρυθμίσεων εργασίας, ήταν εντυπωσιακό το πώς τα περισσότερα HCI επικεντρώθηκαν σε ένα χρήστη – ένας προσωπικός υπολογιστής σε αντίθεση με μία συνεχή συνεργασία των πραγματικών καταστάσεων εργασίας (αυτό το πρόβλημα αργότερα οδήγησε στην ανάπτυξη του CSCW). 6. Οι χρήστες αντιμετωπίζονταν βασικά σαν αντικείμενα μελέτης. Λόγω αυτών των μειονεκτημάτων, ήταν απαραίτητο να μεταφερθούμε έξω από γνωστική και επιστημονικά βασισμένη HCI για να αναπτύξουμε την απαραίτητη θεωρητική πλατφόρμα. Η ευρωπαϊκή ψυχολογία είχε ακολουθήσει διαφορετικά μονοπάτια από την αμερικανική με πολλή φαντασία από το διαλεκτικό υλισμό.

89


Θεωρία Δραστηριοτήτων Φιλόσοφοι όπως οι Heidegger και Wittgenstein ήρθαν να παίξουν ένα σημαντικό ρόλο κυρίως μέσω συζητήσεων για τα όρια της Τεχνητής Νοημοσύνης (Artificial Intelligence). Ο Suchman με μία παρόμοια προσέγγιση έφερε την εθνομεθοδολογία μέσα στα θέματα των συζητήσεων, και ο Ehn βάσισε τη διατριβή του για τη σχεδίαση προϊόντων προσωπικού υπολογιστή στους Marx, Heidegger και Wittgenstein. Η ανάπτυξη της θεωρητικής πλευράς της δραστηριότητας έγινε αρχικά από τους Bødker και Kuutti, και οι δύο με δυνατή έμπνευση από σκανδιναβικές θεωρητικές ομάδες ψυχολογίας. Οι Bannon και Grudin είχαν σημαντική συνεισφορά για τα μετέπειτα σχετικά με τη προσέγγιση κάνοντάς το διαθέσιμο στο κοινό του HCI. Η εργασία του Kaptelinin ήταν σημαντική για τη σύνδεση με τη πρόσφατη ανάπτυξη της θεωρίας δραστηριοτήτων στη Ρωσία. Η Nardi παρήγαγε τη , μέχρι τώρα, πιο εφαρμόσιμη συλλογή από βιβλία με κεντρικό θέμα την HCI.

Μία ανάλυση της θεωρίας δραστηριοτήτων Εδώ παρουσιάζουμε κάποιες βασικές αρχές της θεωρίας δραστηριοτήτων και τις διάφορες επιπτώσεις που έχει η θεωρία στη διαδικασία της γνώσης και της μάθησης.

Δραστηριότητες Η θεωρία δραστηριοτήτων ξεκινά με την ιδέα της δραστηριότητας. Μία δραστηριότητα αντιμετωπίζεται σαν ένα σύστημα ανθρώπου που «πράττει» όπου το υποκείμενο δουλεύει σε ένα αντικείμενο με σκοπό να αποκομίσει την επιθυμητή έξοδο. Για να το κάνει αυτό, το υποκείμενο επιστρατεύει εργαλεία τα οποία μπορεί να είναι εξωτερικά (π.χ. ένα τσεκούρι, έναν υπολογιστή) ή εσωτερικά (π.χ. ένα σχέδιο). Σαν μία επίδειξη, μία δραστηριότητα μπορεί να είναι μία λειτουργία μίας αυτόματης κλήση ενός κέντρου. Όπως θα δούμε στη συνέχεια πολλά υποκείμενα μπορεί να είναι αναμεμειγμένα στη δραστηριότητα και κάθε ένα μπορεί να έχει ένα ή περισσότερα κίνητρα (π.χ. βελτιωμένη διαχείριση προμηθειών). Ένα απλό παράδειγμα μίας δραστηριότητας μέσω ενός κέντρου κλήσεων μπορεί να είναι ένας διαχειριστής του τηλεφώνου (υποκείμενο) που αλλάζει τα αρχεία χρεώσεων του πελάτη (αντικείμενο) έτσι ώστε τα δεδομένα χρεώσεων (έξοδος) να είναι σωστά χρησιμοποιώντας ένα γραφικό περιβάλλον με μία βάση δεδομένων (εργαλείο). Ο Kuutti προσάρμοσε την θεωρία δραστηριοτήτων σε όρους της δομής της δραστηριότητας. « Μία δραστηριότητα είναι μία μορφή άμεσης πράξης σε ένα αντικείμενο, και οι δραστηριότητες είναι ξεχωριστές η μία από την άλλη αντίστοιχα με τα αντικείμενά τους. Μεταμορφώνοντας το αντικείμενο σε ένα αποτέλεσμα κινητοποιεί την ύπαρξη μίας δραστηριότητας. Ένα αντικείμενο μπορεί να είναι υλικό, αλλά μπορεί να είναι και λιγότερο απτό. » Επιπλέον ο Kuutti προσθέτει ένα τρίτο όρο, το εργαλείο που μεσολαβεί μεταξύ της δραστηριότητας και του αντικειμένου. « Το αντικείμενο είναι την ίδια χρονική στιγμή ενεργοποιητικός αλλά και περιοριστικός παράγοντας : ενδυναμώνει το υποκείμενο στη διαδικασία αλλαγής με παλαιότερη εμπειρία και δυνατότητες ‘κρυσταλοποιημένες’ σε αυτό, αλλά περιορίζει την αλληλεπίδραση και την αναγκάζει να είναι από την οπτική του συγκεκριμένου εργαλείου ή οργάνου, διαφορετικό από τα χαρακτηριστικά του αντικειμένου που είναι ορατό στο χρήστη…» Όπως η Verenikina αναφέρει, τα εργαλεία είναι « κοινωνικά αντικείμενα με σαφείς μεθόδους λειτουργίας ανεπτυγμένες στη κοινωνία στη πορεία της εργασίας και η ύπαρξή τους καθίσταται δυνατή επειδή ανταποκρίνονται στους στόχους μίας πρακτικής δράσης ».

90


Θεωρία Δραστηριοτήτων

Τα επίπεδα της θεωρίας δραστηριοτήτων Μία δραστηριότητα μοντελοποιείται σε μία ιεραρχία τεσσάρων επιπέδων. Ο Kuutti επεξεργάστηκε τη θεωρία δραστηριοτήτων σαν ένα σύστημα τεσσάρων επιπέδων. Ο Leontiev εξήγησε ότι « η μη-σύμπτωση των δράσεων με τις λειτουργίες … εμφανίζεται σε δραστηριότητες με εργαλεία, τα οποία είναι υλικά αντικείμενα που αποτελούν κρυσταλοποιημένες λειτουργίες, ούτε δράσεις ούτε στόχοι. Αν ένα άτομο θέλει να πετύχει ένα συγκεκριμένο στόχο, ας πούμε την αποσυναρμολόγηση μίας μηχανής τότε πρέπει να χρησιμοποιήσει μία ποικιλία λειτουργιών. Δεν υπάρχει διαφορά στο πως οι ανεξάρτητες λειτουργίες κατανοήθηκαν γιατί ο σχηματισμός της λειτουργίας προχωρά διαφορετικά από το σχηματισμό του στόχου που εκκίνησε τη δράση ». Τα επίπεδα της δραστηριότητας επίσης χαρακτηρίζονται από το σκοπό τους : « οι δραστηριότητες προσανατολίζονται στα κίνητρα, που είναι αντικείμενα τα οποία δημιουργούν οι ίδιες. Κάθε κίνητρο είναι ένα αντικείμενο, υλικό ή πνευματικό που ικανοποιεί μία ανάγκη. Οι δράσεις είναι διαδικασίες λειτουργικά κατώτερες από τις δραστηριότητες• αυτές έχουν στόχο συγκεκριμένους συνειδητούς στόχους… οι δράσεις συνειδητοποιούνται μέσω λειτουργιών που καθορίζονται από τις πραγματικές συνθήκες της δραστηριότητας. » Ο Engestrøm ανέπτυξε ένα διευρυμένο μοντέλο μίας δραστηριότητας, το οποίο προσθέτει και έναν άλλο παράγοντα, τη κοινωνία («αυτούς που μοιράζονται το ίδιο αντικείμενο»). Έπειτα πρόσθεσε κανόνες που αφορούν τη μεσολάβηση μεταξύ του υποκειμένου και της κοινωνίας, και τη διαίρεση της εργασίας ανάμεσα σε αντικείμενο και κοινωνία. Ο Kuutti επέβαλλε ότι « Αυτές οι τρεις κλάσεις πρέπει να κατανοηθούν σαφώς. Ένα εργαλείο μπορεί να είναι οτιδήποτε που χρησιμοποιείται στη διαδικασία αλλαγής, συμπεριλαμβανομένου υλικών εργαλείων και εργαλείων σκέψης. Οι κανόνες καλύπτουν ρητούς και αυτονόητους κώδικες, συμβάσεις και κοινωνικές σχέσεις μέσα σε μία κοινότητα. Η διαίρεση της εργασίας αναφέρεται σε κατηγορηματική και μη οργάνωση της κοινωνίας όπως εξαρτάται από τη διαδικασία αλλαγής του αντικειμένου σε αποτέλεσμα. » Επομένως η θεωρία δραστηριοτήτων περιλαμβάνει την αντίληψη ότι η δραστηριότητα είναι αποτέλεσμα του κοινωνικού περιεχομένου ή ειδικότερα της κοινότητας. Ο τρόπος με τον οποίο η δραστηριότητα «χωρά» στο περιεχόμενο καθορίζεται από δύο θεωρήσεις : 1. κανόνες : αυτοί είναι ρητοί και μη και ορίζουν το τρόπο με τον οποίο τα υποκείμενα πρέπει να «χωρούν» στη κοινότητα, 2. διαίρεση της εργασίας : αυτό περιγράφει τον τρόπο με τον οποίο το αντικείμενο της δραστηριότητας σχετίζεται με τη κοινότητα.

Το εσωτερικό επίπεδο της δράσης Η θεωρία δραστηριοτήτων παρέχει έναν αριθμό από χρήσιμες ιδέες που μπορούν να χρησιμοποιηθούν για να δείξουν την έλλειψη έκφρασης για «μαλακούς» παράγοντες οι οποίοι αναπαρίστανται ανεπαρκώς από τα περισσότερα πλαίσια μοντελοποίησης διαδικασιών. Μία τέτοια ιδέα είναι το εσωτερικό επίπεδο δράσης. Η θεωρία δραστηριοτήτων αναγνωρίζει ότι κάθε δραστηριότητα παίρνει μέρος σε δύο επίπεδα το εξωτερικό επίπεδο και το εσωτερικό επίπεδο. Το εξωτερικό αντιπροσωπεύει τα αντικειμενικά μέρη της δράσης ενώ το εσωτερικό επίπεδο δείχνει τα υποκειμενικά μέρη της δράσης. Ο Kaptelinin ορίζει το εσωτερικό επίπεδο των δράσεων ως : « την ανθρώπινη ικανότητα να εκτελεί χειρισμούς πάνω σε μία εσωτερική αναπαράσταση των εξωτερικών στόχων πριν την έναρξη των δράσεων με αυτούς τους στόχους στη πραγματικότητα. » Η ιδέα των κινήτρων, στόχων και συνθηκών για την οποία έγινε λόγος παραπάνω επίσης συνέβαλε στη μοντελοποίηση των μαλακών παραγόντων. Μία αρχή της θεωρίας δραστηριοτήτων είναι ότι πολλές δραστηριότητες έχουν πολλαπλά κίνητρα. Για παράδειγμα, ένας προγραμματιστής ενώ γράφει ένα κώδικα μπορεί να διευθύνει τους στόχους ανάλογα με πολλαπλά κίνητρα όπως αυξάνοντας το μπόνους του,

91


Θεωρία Δραστηριοτήτων αποσπώντας εμπειρία στη καριέρα του και συνεισφέροντας στους στόχους του οργανισμού. Ακόμα παραπέρα η θεωρία δραστηριοτήτων συμφωνεί ότι τα υποκείμενα ομαδοποιούνται σε κοινότητες με κανόνες που παρεμβάλλονται μεταξύ του υποκειμένου και της κοινότητας και η διαίρεση της εργασίας, η οποία παρεμβάλλεται ανάμεσα στο στόχο και τη κοινότητα. Ένα υποκείμενο μπορεί να είναι μέρος σε αρκετές κοινότητες και μία κοινωνία, που μπορεί να είναι μέρος άλλων κοινωνιών.

Ανθρώπινη δημιουργικότητα Η ανθρώπινη δημιουργικότητα παίζει σημαντικό ρόλο στη θεωρία δραστηριοτήτων, έτσι «τα ανθρώπινα όντα είναι κατ’εξοχήν δημιουργικά όντα» με ένα «απρόβλεπτα δημιουργικό χαρακτήρα». Ο Tikhomirov επίσης αναλύει τη σημασία της δημιουργικής δραστηριότητας, βάζοντάς την απέναντι από τη δραστηριότητα ρουτίνας, και σημειώνει το σημαντική αλλαγή που έφερε σχετικά με τον υπολογισμό της ισορροπίας με τη δημιουργική δραστηριότητα.

Μάθηση και υπονοούμενη γνώση Η θεωρία δραστηριοτήτων έχει μία ενδιαφέρουσα προσέγγιση στα δύσκολα προβλήματα της μάθησης και πιο συγκεκριμένα της υπονοούμενης γνώσης. Η μάθηση ήταν το αγαπημένο θέμα των θεωρητικών της διαχείρισης, αλλά συχνά παρουσιαζόταν με έναν απόλυτο τρόπο διαχωρισμένο από τις διαδικασίες εργασίας στις οποίες η μάθηση πρέπει να εφαρμοστεί. Η θεωρία δραστηριοτήτων παρέχει τη δυνατότητα να λυθεί αυτό το πρόβλημα. Για παράδειγμα η αναφορά του Engeström σχετικά με την εργασία του Nonaka πάνω στη δημιουργία γνώσης (knowledge creation) προτείνει διαφοροποιήσεις βασισμένες στη θεωρία δραστηριοτήτων. Πιο συγκεκριμένα προτείνει ότι η διαδικασία οργανωμένης μάθησης περιλαμβάνει προκαταρκτικά στάδια του στόχου και της μορφής του προβλήματος κάτι που δεν αναφέρει ο Nonaka. Ο Lompscher, αντί να αντιμετωπίσει τη μάθηση σαν μία μετάδοση, είδε τη μορφή των στόχων της μάθησης και τη κατανόηση των μαθητών σαν τα πράγματα που πρέπει να αποκτήσουν σαν το κλειδί για τη μορφή της δραστηριότητας της μάθησης. Σημαντικής σημασίας στη μελέτη της μάθησης σε οργανισμούς είναι το πρόβλημα της υπονοούμενης γνώσης, το οποίο σύμφωνα με το Nonaka, « είναι κυρίως προσωπικό και δύσκολο να μοντελοποιηθεί, κάνοντάς το δύσκολο να επικοινωνήσει με άλλους ή να μοιρασθεί με άλλους ». Η αντίληψη του Leont'ev σχετικά με τη λειτουργία παρέχει μία σημαντική διορατικότητα στο πρόβλημα. Επιπροσθέτως, η ιδέα-κλειδί της εσωτερικοποίησης αρχικά φέρθηκε στο προσκήνιο από τον Vygotsky ως « η εσωτερική ανοικοδόμηση μία εξωτερικής λειτουργίας ». Η εσωτερικοποίηση μεταγενέστερα έγινε όρος-κλειδί της θεωρίας της υπονοούμενης γνώσης και είχε οριστεί ως « η διαδικασία της ενσωμάτωσης κατηγορηματικής γνώσης μέσα στην υπονοούμενη γνώση ». Η εσωτερικοποίηση περιγράφηκε από τον Engeström σαν το «μηχανισμό κλειδί της ψυχολογίας » και ανακαλύφθηκε από τον Vygotsky.

92


Θεωρία Δραστηριοτήτων

Εφαρμογές Η θεωρία δραστηριοτήτων έχει εφαρμοστεί για την αντιμετώπιση της πολυπλοκότητας των κρυμμένων προβλημάτων στη σχεδίαση.

Πηγές • acm.org [1] • osiris.sunderland.ac.uk [2] [3] Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το theory άρθρο Activity theory της Αγγλόγλωσσης Βικιπαίδειας, η οποία [2] [3] διανέμεται υπό την GNU FDL και την CC-BY-SA 3.0 . (theory ιστορικό/συντάκτες ).

Παραπομπές [1] http:/ / Acm. org [2] http:/ / Osiris. sunderland. ac. uk [3] http:/ / en. wikipedia. org/ wiki/ Activity

93


94

Ιστορία των υπολογιστών Ιστορία των υπολογιστών Γενικά οι βασικές εξελίξεις στον τομέα του υπολογιστικού υλικού Το υλικό του υπολογιστή (computing hardware) αποτελεί σημαντικό τμήμα της υπολογιστικής διαδικασίας και της αποθήκευσης δεδομένων. Η αρχική μορφή του υλικού των υπολογιστικών συσκευών ήταν, πιθανότατα, κάποια ράβδος με εγκοπές. Μεταγενέστερα βοηθήματα αποθήκευσης πληροφοριών είναι τα Φοινικικά πήλινα σχήματα, που αντιπροσώπευαν τον αριθμό αντικειμένων (ζώων ή καρπών) σε δοχεία. Παρόμοιοι «αριθμοί» έχουν βρεθεί σε Μινωικές ανασκαφές. Αυτά φαίνεται ότι χρησιμοποιούνταν από εμπόρους, λογιστές και κυβερνητικούς αξιωματούχους της εποχής. Οι βοηθητικές συσκευές για υπολογισμούς έχουν αλλάξει από τις απλές συσκευές για μέτρηση και καταγραφή, στον άβακα, τον λογαριθμικό κανόνα, τους αναλογικούς υπολογιστές και πρόσφατα τους ηλεκτρονικούς υπολογιστές. Ακόμα και σήμερα, ένας πεπειραμένος χρήστης του άβακα μπορεί, χρησιμοποιώντας μια συσκευή που δημιουργήθηκε πολλούς αιώνες πριν, να εκτελέσει βασικούς υπολογισμούς ταχύτερα από έναν ανειδίκευτο χρήστη ενός ηλεκτρονικού υπολογιστή, αν και για περίπλοκους υπολογισμούς οι υπολογιστές ξεπερνούν σε ταχύτητα ακόμα και τον πιο έμπειρο άνθρωπο. Οι άνθρωποι από πολύ παλιά χρησιμοποιούσαν βοηθητικές συσκευές για να κάνουν υπολογισμούς. Ένα απλό παράδειγμα είναι η συσκευή για τον έλεγχο της ισότητας του βάρους: η κλασική ζυγαριά. Άλλο ένα είναι η απαρίθμηση: τα καρό υφάσματα των αγορών χρησίμευαν ως απλές δομές δεδομένων για να απαριθμούνται στοίβες από νομίσματα, με βάση το ύψος. Μια μηχανή πιο προσανατολισμένη προς την αριθμητική είναι ο άβακας. Η πλέον πρώιμη μορφή του άβακα, ο άβακας σκόνης, φαίνεται να είχε εφευρεθεί πρώτα στη Βαβυλωνία. Ο Αιγυπτιακός άβακας με χάντρες και κλωστή υπάρχει από το 500 π.Χ. Ο μηχανισμός των Αντικυθήρων ανακαλύφθηκε στην αρχή του 20ού αιώνα στο ναυάγιο ενός ελληνικού πλοίου κοντά στα Αντικύθηρα, που πιστεύεται ότι βυθίστηκε το 65 π.Χ. Είχε τριάντα ή περισσότερα χάλκινα γρανάζια και μια συσκευή με ακίδες και οπές ανάμεσα σε δύο γρανάζια που αναπαριστούσε τις κινήσεις της σελήνης. Αυτή όμως η τεχνολογία χάθηκε (δεν υπάρχει κανένα σχετικό γραπτό για το μηχανισμό αυτό και τον τρόπο λειτουργίας του) και χρειάσθηκε να περάσουν αιώνες μέχρι να δημιουργηθούν ξανά τόσο πολύπλοκες συσκευές. Το 1206 μ.Χ. ο Ιρακινός εφευρέτης Αλ-Τζαζάρι δημιούργησε την πρώτη προγραμματιζόμενη μηχανή με τη μορφή ενός ανθρωπόμορφου ρομπότ. Το 1623 μ.Χ. ο Βίλχελμ Σικάρντ έφτιαξε την πρώτη μηχανική αριθμομηχανή και έτσι έγινε ο πατέρας της εποχής των υπολογιστών. Λόγω του ότι η μηχανή του χρησιμοποιούσε οδοντώσεις και γρανάζια που αρχικά χρησιμοποιούνταν σε ωρολόγια, λεγόταν επίσης υπολογιστικό ρολόι. Χρησιμοποιήθηκε για πρακτικούς σκοπούς από τον φίλο του Γιόχαν Κέπλερ ο οποίος έφερε επανάσταση στην αστρονομία. Ακολούθησαν μηχανές από τον Μπλαίζ Πασκάλ (η Πασκαλίνα, 1642, όπως αποκλήθηκε η συσκευή του) και τον Γκότφριντ Βίλχελμ Λάιμπνιτς (1671). Γύρω στο 1820, ο Κάρολος Ξαβιέ Τόμας δημιούργησε την πρώτη επιτυχή ευρείας παραγωγής αριθμομηχανή, το «Αριθμόμετρο Τόμας», που μπορούσε να εκτελέσει προσθέσεις, αφαιρέσεις, πολλαπλασιασμούς και διαιρέσεις. Βασίστηκε κυρίως στην εργασία του Λάιμπνιτς. Μηχανικοί υπολογιστές, όπως ο προσθέτης με βάση το δέκα, το κομπτόμετρο, το Μονρό, το Κούρτα και το Addo-X παρέμειναν σε χρήση μέχρι τη δεκαετία του 1970.


Ιστορία των υπολογιστών Ο Λάιμπνιτς επίσης περιέγραψε το δυαδικό σύστημα αρίθμησης, βασικό παράγοντα λειτουργίας όλων των σύγχρονων υπολογιστών. Παρ' όλα αυτά, μέχρι τη δεκαετία του 1940, πολλά μεταγενέστερα σχέδια (συμπεριλαμβανομένου των μηχανών του Καρόλου Μπαμπατζ του 1800 και ακόμα και του ENIAC του 1945) βασίζονταν στο πιο δύσκολο να υλοποιηθεί ηλεκτρικά ή μηχανικά δεκαδικό σύστημα αρίθμησης. Ο Τζών Νάπιερ παρατήρησε ότι ο πολλαπλασιασμός και η διαίρεση αριθμών μπορεί να πραγματοποιηθεί με πρόσθεση και αφαίρεση, αντίστοιχα, των λογαρίθμων τους. Δεδομένου ότι αυτοί οι πραγματικοί αριθμοί μπορούν να αναπαρασταθούν χρησιμοποιώντας αποστάσεις ή διαστήματα πάνω σε μια γραμμή, ο λογαριθμικός κανόνας έκανε εφικτές αυτές τις πράξεις πολύ πιο γρήγορα από όσο ήταν δυνατό πριν. Οι λογαριθμικοί κανόνες χρησιμοποιήθηκαν από γενιές μηχανικών και άλλων επαγγελματιών που έκαναν χρήση μαθηματικών, μέχρι την εφεύρεση της αριθμομηχανής τσέπης. Οι μηχανικοί του προγράμματος Απόλλων για να στείλουν ανθρώπους στη Σελήνη έκαναν πολλούς από τους υπολογισμούς τους με λογαριθμικούς κανόνες, οι οποίοι είχαν ακρίβεια τριών ή τεσσάρων σημαντικών ψηφίων. Όταν δημιουργούσε τους πρώτους λογαριθμικούς πίνακες, ο Νάπιερ έπρεπε να κάνει πολλούς πολλαπλασιασμούς, και ήταν τότε που σχεδίασε τα κόκκαλα του Νάπιερ.

Yπολογιστές στην Αρχαιότητα Βαβυλώνα, 2200 π.Χ. Γύρω στο 2200 π.Χ. οι αρχαίοι Βαβυλώνιοι είχαν αναπτύξει πολύ το εµπόριο και χρειάζονταν κάτι να τους βοηθά στους υπολογισμούς τους. Υπάρχει ένα ρητό που λέει ‘Η ανάγκη είναι η µητέρα της δηµιουργίας’. Αυτή η ανάγκη τους οδήγησε στο να δηµιουργήσουν τον πρώτο υπολογιστή, που δεν ήταν άλλος από το γνωστό Αριθµητήριο που χρησιμοποιούν όλα (σχεδόν) τα παιδιά στην πρώτη τάξη του σχολείου. Το επίσημο όνοµά του είναι Άβακας.Τον Άβακα τον βελτίωσαν αρκετά οι Κινέζοι αρκετά χρόνια αργότερα και του έδωσαν τη µορφή που έχει σήμερα. Αναφέρουμε, επίσης, ότι αρκετά σχολεία σε φτωχές χώρες του Κόσμου χρησιμοποιούν τον Άβακα όχι μόνο στις πρώτες τάξεις του Δημοτικού, αλλά και σε µεγαλύτερες.

Το Κόσκινο του Ερατοσθένη, 130 π.Χ. Ο αρχαίος Έλληνας Ερατοσθένης, μεγάλος μαθηματικός, ανακάλυψε μια μέθοδο για να υπολογίζει τους πρώτους αριθμούς. Το 'κόσκινο' του ήταν μια σπουδαία ανακάλυψη για την εποχή του και ένα από τα μεγάλα επιτεύγματα του σημαντικού αυτού προσώπου.

Ο Υπολογιστής των Αντικυθήρων, 80 μ.Χ. Οι αρχαίοι Έλληνες είχαν αναπτύξει τεράστιο πολιτισμό και, φυσικά, ενδιαφέρθηκαν για τις Επιστήμες όπως Μαθηματικά, Αστρονομία κ.α. Οι πληροφορίες που έχουμε για την αρχαία ελληνική τεχνολογία είναι κυρίως γραπτές. Οι μόνοι μηχανισμοί (ή θραύσματά τους) που έχουν μέχρι στιγμής ανακαλυφθεί είναι ο Μηχανισμός των Αντικυθήρων και ο Βυζαντινός μηχανισμός. Ο Μηχανισμός των Αντικυθήρων είναι συσκευή αστρονομικών υπολογισμών που χαρακτηρίζεται παγκόσμια ως ο «Αρχαιότερος Υπολογιστής». Κατασκευάστηκε γύρω στο 87 π.Χ. στη Ρόδο και διέθετε 32 οδοντωτά γρανάζια. Κατά τη μεταφορά του στη Ρώμη το πλοίο που τον μετέφερε βυθίστηκε κοντά στα Αντικύθηρα και ανακαλύφθηκε γύρω στα 1900 από ομάδα σφουγγαράδων. Σήμερα βρίσκεται στο Εθνικό Αρχαιολογικό Μουσείο. Οι διαστάσεις του είναι 16 x 32 x 9 cm (ίδιες με αυτές ενός σύγχρονου φορητού υπολογιστή). Αποτελούνταν από ένα κέλυφος με ενδεικτικούς πίνακες στην εξωτερική του όψη και ένα πολυσύνθετο μηχανισμό 32 τροχών στο εσωτερικό του. Ο πίνακας έδειχνε την ετήσια κίνηση του ήλιου στο ζωδιακό κύκλο καθώς και τις ανατολές και τις δύσεις των λαμπρών άστρων και αστερισμών κατά τη διάρκεια του έτους.[1]

95


Ιστορία των υπολογιστών

Υπολογιστές στην περίοδο της Αναγέννησης Τα «Κόκκαλα του Νέπιερ», 1610 μ.Χ. Ο γνωστός από τη δημιουργία των Νεπερίων λογαρίθμων Σκώτος μαθηματικός Τζον Νέπιερ βασίστηκε σε ένα αρχαίο Ινδικό σύστημα υπολογισμών και δημιούργησε ένα αβάκιο με ράβδους, που έμεινε στην Ιστορία με την ονομασία «Κόκκαλα του Νέπιερ», επειδή οι ράβδοι του ήταν κοκκάλινες. Με τα «κόκκαλα» αυτά ήταν δυνατός ο σχετικά εύκολος υπολογισμός γινομένων αλλά και πηλίκων. Η μέθοδος αυτή ήταν αρκετά δημοφιλής και την χρησιμοποιούσαν μέχρι κα τον 20ο αιώνα σε πολλές χώρες, ειδικά στο Ηνωμένο Βασίλειο. Στα «κόκκαλα του Νέπιερ» έγιναν, με την πάροδο του χρόνου, αρκετές βελτιώσεις, ώστε να έχουν καλύτερη αναγνωσιμότητα και να μπορούν να χρησιμοποιούνται και για άλλους υπολογισμούς, όπως π.χ. για τον υπολογισμό της τετραγωνικής ρίζας ενός αριθμού.

Η μηχανή του Pascal, 1645 Ο Γάλλος μαθηματικός Μπλεζ Πασκάλ (Blaise Pascal) κατασκεύασε το 1645 την πρώτη αληθινή αριθμομηχανή, η οποία επονομάστηκε Πασκαλίνα (Pascaline). Με τη μηχανή αυτή μπορούσε κάποιος να κάνει (σχετικά) εύκολα μαθηματικούς υπολογισμούς. Η μηχανή του Pascal είχε τροχαλίες, τις οποίες, όταν περιέστρεφε ο χρήστης εμφάνιζαν τα αποτελέσματα. Η μηχανή είχε μικρές διαστάσεις και μπορούσε εύκολα να χωρέσει σε ένα μικρό τραπέζι. Ο αρχικός «υπολογιστής» είχε πέντε γρανάζια (με αποτέλεσμα να μπορεί να κάνει υπολογισμούς με σχετικά μικρούς αριθμούς), αλλά κατασκευάστηκε και σε παραλλαγές με έξι και οκτώ γρανάζια. Η μηχανή εκτελούσε δύο πράξεις, πρόσθεση και αφαίρεση. Στο επάνω μέρος υπήρχε μια σειρά από οδοντωτούς τροχούς (γρανάζια), που το καθένα περιείχε τους αριθμούς από 0 έως 9. Ο πρώτος τροχός συμβόλιζε τις μονάδες, ο δεύτερος τις δεκάδες, ο τρίτος τις εκατοντάδες, κ.ο.κ.

Η Αναλυτική Μηχανή του Μπάμπατζ, 1822 Ο 19ος αιώνας ήταν ο Αιώνας του Ατμού, μια και είχαν δημιουργηθεί πάρα πολλές μηχανές που εργάζονταν ‘αυτόματα’ με ατμό. Ο Βρετανός μαθηματικός Τσαρλς Μπάμπατζ (Charles Babbage) σχεδίασε μια αυτόματη μηχανή, που θα εργαζόταν με ατμό και θα μπορούσε να χρησιμοποιηθεί για την εκτέλεση υπολογισμών. Οι ιδέες του ήταν πολύ πρωτοποριακές, με αποτέλεσμα να μην είναι δυνατή η πραγματοποίησή τους λόγω των περιορισμών της τεχνολογίας της εποχής. Έτσι, η Αναλυτική Μηχανή του Μπάμπατζ έμεινε μόνο στη θεωρία και δεν κατασκευάστηκε ποτέ, παρά τις προσπάθειες του δημιουργού της.

Άντα Λάβλεϊς, η πρώτη αναλύτρια/προγραμματίστρια Η μηχανή του Μπάμπατζ ήταν πολύ πρωτοποριακή για την εποχή της, γι’ αυτό και δεν κατάφερε να την δημιουργήσει όπως την ήθελε. Τα σχέδιά του, όμως, δεν πήγαν χαμένα, μια και η Άντα Λάβλεϊς (Ada Lovelace) τα κατέγραψε και τα επεξεργάστηκε, κάνοντάς την να μείνει στην ιστορία ως η πρώτη προγραμματίστρια / αναλύτρια υπολογιστών στην ιστορία. Προς τιμή της, μια από τις σύγχρονες γλώσσες προγραμματισμού πήρε το όνομά της (Ada). Αξίζει να αναφέρουμε πως η λαίδη Άντα ήταν κόρη του φιλέλληνα Λόρδου Βύρωνα που βοήθησε πάρα πολύ την Ελληνική Επανάσταση.

96


Ιστορία των υπολογιστών

H μηχανή του Χόλεριθ, 1890 Oι Ηνωμένες Πολιτείες Αμερικής συγκέντρωναν πάρα πολλούς ανθρώπους που πήγαιναν εκεί για να βρουν μια καλύτερη ζωή. Στα τέλη του 19ου αιώνα η Κυβέρνηση των Η.Π.Α. αποφάσισε να κάνει μια απογραφή του πληθυσμού της χώρας. Οι υπεύθυνοι ήθελαν να μάθουν πόσους κατοίκους έχει η χώρα τους. Όμως, επειδή η χώρα ήταν πολύ μεγάλη, η διαδικασία απογραφής ήταν τεράστια και ιδιαίτερα χρονοβόρα. Γι’αυτό έκαναν ένα διαγωνισμό για τη δημιουργία μιας μηχανής που θα διευκόλυνε την επεξεργασία και καταγραφή των στοιχείων που θα συγκεντρώνονταν από την απογραφή. Ο Χέρμαν Χόλεριθ (Herman Hollerith) κατασκεύασε για το διαγωνισμό μια μηχανή, με την οποία η Κυβέρνηση των Η.Π.Α. κατάφερε να ολοκληρώσει την απογραφή μέσα σε δύο χρόνια, χρόνο ρεκόρ για τα δεδομένα της εποχής. Η μηχανή αυτή ονομάστηκε Census Tabulator (Ταξινομέας Απογραφής) και ήταν η απαρχή για τη δημιουργία της μεγαλύτερης (ως πριν λίγα χρόνια) εταιρείας υπολογιστών στον κόσμο, της ΙΒΜ (International Business Machines). Λίγα χρόνια αργότερα, ένα στέλεχος της ΙΒΜ θα δηλώσει: «Στον κόσμο υπάρχει αγορά μόνο για μισή δωδεκάδα υπολογιστές».

Σύγχρονοι (ηλεκτρονικοί) υπολογιστές 1η Γενιά Υπολογιστών (1946- 1956) Το 1946, μετά το τέλος του Β’ Παγκοσμίου Πολέμου, οι Ηνωμένες Πολιτείες χρειάζονταν μια συσκευή η οποία να βοηθά τους στρατιωτικούς στους υπολογισμούς για να βρίσκουν τα όπλα τους το στόχο με μεγαλύτερη ακρίβεια. Για πρώτη φορά δημιουργήθηκε ένα τεράστιο μηχάνημα που αντί για μηχανικά μέρη χρησιμοποιούσε ηλεκτρονικές λυχνίες, κατασκευασμένες από τον Λι Ντε Φορέ (Lee DeForest). Ο πρώτος ηλεκτρονικός υπολογιστής επονομάστηκε ENIAC. Ο ΕΝΙΑC ήταν τεράστιος σε μέγεθος (καταλάμβανε έναν ολόκληρο όροφο), και έπρεπε να τον ελέγχουν συνεχώς ειδικοί επιστήμονες. Συχνά, επίσης, καίγονταν οι λυχνίες του και έπρεπε να τις αντικαθιστούν. Ακόμα και ο πιο ταπεινός σημερινός υπολογιστής είναι χιλιάδες φορές καλύτερος από τον ENIAC ως προς τις δυνατότητες. Ήταν, όμως, η πρώτη σοβαρή προσπάθεια δημιουργίας υπολογιστικής μηχανής.

2η Γενιά Υπολογιστών (1956- 1963) Την περίοδο αυτή οι λυχνίες αντικαθίστανται από τρανζίστορς. Οι ηλεκτρονικές αυτές κατασκευές (κρυσταλλοτρίοδοι, όπως τις ονομάζουν οι ηλεκτρονικοί), επιτρέπουν τη δημιουργία μικρότερων και ταχύτερων υπολογιστών. Το 1956 στο Τεχνολογικό Ινστιτούτο Μασαχουσέτης (Μ.Ι.Τ.) κατασκευάστηκε ο πρώτος Ηλεκτρονικός Υπολογιστής που λειτουργούσε με τρανζίστορς, ο ΤΧ-0. Τα τρανζίστορς χρησιμοποιήθηκαν (και χρησιμοποιούνται ακόμη) σε πάρα πολλές συσκευές. Επέτρεψαν τη δημιουργία ραδιοφώνων αρκετά μικρών ώστε να μπορούν οι άνθρωποι να τα κουβαλούν μαζί τους (φορητά ραδιόφωνα), και πολλές φορές, ακόμη και σήμερα, τα φορητά ραδιόφωνα αποκαλούνται "τρανζίστορ".

3η Γενιά (1964- 1971) Το 1958, ο Τζακ Κίλμπυ Jack Kilby της εταιρείας Texas Instruments κατάφερε να δημιουργήσει κάτι που θα άλλαζε τον κόσμο των ηλεκτρονικών για πάντα. Κατασκεύασε το πρώτο Ολοκληρωμένο Κύκλωμα συνδυάζοντας τρανζίστορς, πυκνωτές, αντιστάτες και άλλα ηλεκτρονικά εξαρτήματα όλα τοποθετημένα στο ίδιο κομμάτι από πυρίτιο. Το δημιούργημα του Κίλμπυ επέτρεψε στους επιστήμονες να κατασκευάσουν υπολογιστές τόσο μικρούς ώστε να μπορούμε ακόμη και να τους μεταφέρουμε. Χρησιμοποιείται, επίσης, σε μια πληθώρα άλλων εφαρμογών, όπως τηλεπικοινωνίες, πολυμέσα, ακόμη και παιχνίδια.

97


Ιστορία των υπολογιστών

4η Γενιά (1971 - σήμερα) Οι υπολογιστές που έχουμε σήμερα ανήκουν στην 4η Γενιά. Ο κάθε ένας από αυτούς είναι εφοδιασμένος με Επεξεργαστή (CPU), έχει τη δική του Μνήμη, μονάδα αποθήκευσης πληροφοριών, οθόνη, και κάποιο είδος μέσου για να δίνουμε πληροφορίες στον υπολογιστή (πληκτρολόγιο, πενάκι, ποντίκι κλπ). Σύμφωνα με το νόμο του Moore, κάθε 18 περίπου μήνες η ισχύς των παραγόμενων υπολογιστών διπλασιάζεται. Έτσι, γίνεται αντιληπτό γιατί ένας υπολογιστής που αγοράζεται σήμερα είναι (περίπου) δύο φορές ταχύτερος από έναν υπολογιστή της ίδιας «κατηγορίας» που αγοράστηκε πριν ενάμιση χρόνο.

Σύντομη Ιστορία Των Υπολογιστών (Time Line) • 1617. Ο Τζόν Νέπιερ δημιουργεί τα «κόκκαλα του Νέπιερ», ένα αβάκιο με κοκκάλινες ράβδους, το οποίο χρησιμοποιήθηκε για υπολογισμούς. • 1642. Ο Μπλεζ Πασκάλ παρουσιάζει την υπολογιστική μηχανή του, που έγινε γνωστή ως Πασκαλίνα (Pascaline). • 1822. O Τσαρλς Μπάμπατζ έχει την ιδέα μιας «αναλυτικής μηχανής», η οποία, ως σύλληψη, δεν απέχει και πολύ από έναν υπολογιστή. • 1906. O Λη ντε Φορέ λαμβάνει την ευρεσιτεχνία για την τρίοδο ηλεκτρονική λυχνία κενού, που αργότερα χρησιμοποιήθηκε σαν διακόπτης στους ηλεκτρονικούς υπολογιστές. • 1943. O Αμερικανός (βουλγαρικής καταγωγής) φυσικός Τζον Ατανάσοφ κατασκευάζει τον πρώτο ηλεκτρονικό υπολογιστή με καθοδικές λυχνίες, τις οποίες χρησιμοποίησε ως διακόπτες. • 1945. Παρουσιάζεται ο ΕΝΙΑC, που κατασκευάστηκε από τους Μόκλι και Έκερτ. Είναι 1000 φορές πιο γρήγορος από τις μέχρι τότε κατασκευές, διαθέτει 18.000 λυχνίες κενού, καταλαμβάνει έκταση 167 τ.μ. και η κατανάλωση ισχύος ανέρχεται σε 180.000 Watts. • 1947. Στις 23 Δεκεμβρίου οι William Shockey, Walter Brattain και John Bardeen δοκιμάζουν με επιτυχία την κρυσταλλοτρίοδο, που έγινε γνωστή ως «τρανζίστορ». • 1949. O Μόρις Ουΐλκς συναρμολογεί τον EDSAC, τον πρώτο υπολογιστή με αποθηκευόμενο πρόγραμμα, στο πανεπιστήμιο του Κέμπριτζ. • 1950. Οι μηχανικοί ερευνητές του πανεπιστήμιου της Μινεάπολης κατασκευάζουν τον ERA 1101, ένα από τα πρώτα δημοφιλή συστήματα υπολογιστών που κυκλοφορούν στην αγορά. • 1952. Ο UNIVAC έχει ήδη παραγγελθεί από την Κυβέρνηση των Η.Π.Α. και ελκύει την προσοχή ολόκληρου του κόσμου. • 1953. Η ΙΒΜ κατασκευάζει και διαθέτει τον πρώτο της μεγάλο υπολογιστή, τον οποίο ονομάζει "701". • 1954. Ένα διασταυρωμένο τρανζίστορ πυριτίου τελειοποιείται από τον Gordon Teal της Texas Instruments Inc. και κατεβάζει τις τιμές στα $2.50. • 1954. Η ΙΒΜ δημιουργεί το μοντέλο ΙΒΜ 650 με μαγνητικό τύμπανο και διαθέτει στην αγορά 450 τεμάχιά του. • 1955. Τα εργαστήρια της Βell ανακοινώνουν τον ΤRADIC, τον πρώτο υπολογιστή εξ ολοκλήρου κατασκευασμένο με τρανζίστορ. • 1956. Ερευνητές του Τεχνολογικού Ινστιτούτου Μασαχουσέτης κατασκευάζουν τον ΤΧ-0, τον πρώτο αυτοπρογραμματιζόμενο υπολογιστή κατασκευασμένο μόνο για αυτόν τον σκοπό. • 1956. Η εποχή των μαγνητικών δίσκων είναι πλέον γεγονός με τον ΙΒΜ 305 RAMAC στο Zellerbach του Σαν Φρανσίσκο. • 1958. Ο Τζακ Κίλμπυ εφευρίσκει το πρώτο ολοκληρωμένο κύκλωμα στα εργαστήρια της Τexas Instruments για να βελτιώσει τις αντιστάσεις και τους πυκνωτές, στοιχεία που πλέον μπορούν να υπάρξουν πάνω στο

98


Ιστορία των υπολογιστών ίδιο κομμάτι ημιαγωγού. • 1959. Η σειρά των υπερυπολογιστών της ΙΒΜ 7000 είναι οι πρώτοι τις εταιρίας με πλήρη κατασκευή με τρανζίστορ. • 1960. Ο προάγγελος του μικροϋπολογιστή, ο DEC PDP-1, πωλείται για $120.000 • 1961. Βάσει του περιοδικού της Damation, η IBM έχει ποσοστό συμμετοχής 81.2% στην ήδη υπάρχουσα αγορά των υπολογιστών, μιας και τότε έβγαζε στην αγορά την σειρά 1400. • 1964. Ο υπερυπολογιστής CDC 6600 σχεδιάζεται από τον Σέιμουρ Κρέι (Seymour Cray). Μπορεί να εκτελεί πάνω από 3000000 εντολές το δευτερόλεπτο και είναι τρεις φορές πιο γρήγορος από τον ανταγωνιστικό υπολογιστή της ΙΒΜ. • 1964. Η ΙΒΜ ανακοινώνει τον System 360, έναν «οικογενειακό» υπολογιστή, με τον οποίο είναι δυνατό να συνεργαστούν 40 περιφερειακά. • 1964. Η αεροπορική εταιρία American Airlines εγκαθιστά ένα online σύστημα κράτησης εισιτηρίων, το ΙΒΜ reservation system. • 1965. H Digital Equipment Corp. (DEC) παρουσιάζει τον PDP-8, τον πιο επιτυχημένο μίνι-υπολογιστή. • 1966. Η Hewlett-Packard μπαίνει στην αγορά με τον ΗP-2115 με υπολογιστική ισχύ που μόνο οι «μεγάλοι» υπολογιστές διέθεταν εκείνη την εποχή. • 1970. Η επικοινωνία υπολογιστή με υπολογιστή εξαπλώνεται, όταν το Υπουργείο Εθνικής Άμυνας των ΗΠΑ δημιουργεί το ARPANET, ένα δίκτυο συνεργαζόμενων υπολογιστών. Δυο από αυτούς βρίσκονται στην πανεπιστημιούπολη του Πανεπιστήμιου της Καλιφόρνια, ένας στην Σάντα Μπάρμπαρα, ένας στο Λος Άντζελες και ακόμα ένας στο Πανεπιστήμιο της Γιούτα. • 1971. Μια ομάδα της εταιρείας ΙΒΜ στο Σαν Χοσέ εφευρίσκει τον εύκαμπτο δίσκο διαμέτρου 8 ιντσών για την (μαγνητική) αποθήκευση δεδομένων. • 1971. Τα ηλεκτρονικά νέα της εποχής αναφέρονται στον μικροεπεξεργαστή της σειράς 4004 της Intel. • 1971. Ο Kenbak-1, ένας μικροϋπολογιστής, πωλείται για $750. • 1972. Η Hewlett-Packard ανακοινώνει τον ΗP-35 «ως έναν γρήγορο, φοβερό, σωστό και χωρίς ανταγωνιστή» υπολογιστή. • 1972. Η Intel παρουσιάζει τον μικροεπεξεργαστή 8008. • 1972. Ο Στιβ Βόζνιακ (Steve Wozniak) κατασκευάζει το δικό του "Blue box", ένα μηχάνημα που κάνει τηλεφωνικές κλήσεις. • 1973. Ο Ρόμπερτ Μέτκαλφ (Robert Metcalfe) επινοεί το δίκτυο Ethernet στο ερευνητικό κέντρο της Χerox. • 1973. Ο Μicral είναι ο πιο σύγχρονος προσωπικός υπολογιστής, που βασίζεται στο μικροεπεξεργαστή 8008 της Intel. • 1973. Σχεδιάζεται από τον Don Lancaster ο "Tv Typewriter", ο οποίος μπορεί να εμφανίζει για πρώτη φορά αλφαριθμητικές πληροφορίες στην οθόνη μιας απλής τηλεόρασης. • 1974. Οι ερευνητές της Χerox στο Palo Alto Research Center σχεδιάζουν τον πρώτο υπολογιστή εφοδιασμένο με ποντίκι (mouse). • 1974. H Scelbi διαφημίζει τον υπολογιστή 8Η, που είναι ο πρώτος παναμερικανικά διαφημιζόμενος υπολογιστής βασιζόμενος στον μικροεπεξεργαστή 8008 της Intel. • 1975. Δημιουργείται το Telnet, νέα υπηρεσία του Διαδικτύου. • 1975. Τον Ιανουάριο το περιοδικό "Popular Electronics" κάνει την παρουσίαση του Αltair 8800 βασισμένου στον μικροεπεξεργαστή της Intel 8008. • 1975. Η εικονική υπομονάδα (VDM), που σχεδιάζεται από τον Λί Φέλζενστάιν (Lee Felsenstein), υλοποιεί τη χαρτογραφημένη αλφαριθμητική κάρτα οθόνης για προσωπικούς υπολογιστές.

99


Ιστορία των υπολογιστών • 1976. O Στηβ Βόζνιακ σχεδιάζει τον υπολογιστή Apple I. Ο υπολογιστής είναι κατασκευασμένος εξ ολοκλήρου πάνω σε μία μοναδική πλακέτα κυκλωμάτων. • 1976. Οι εύκαμπτοι μαγνητικοί δίσκοι διαμέτρου 51/4 υλοποιούνται ως κατασκευή από την Shugart Associates. • 1976. Παρουσιάζεται ο υπερυπολογιστής Cray I, δημιουργία του Σέιμουρ Κρέι (Seymour Cray). • 1977. Η εταιρεία Τandy Radio Shack παρουσιάζει τον μικροϋπολογιστή TRS-80. • 1977. Η Apple Computers παρουσιάζει τον Αpple II. • 1977. Η Commodore παρουσιάζει τον PET 2001 (Personal Electronic Transactor). • 1978. Ο VAX 11/780 από την Digital Equipment Corp. χαρακτηρίζεται από την ικανότητα να υποστηρίζει 4,3 Gigabytes εικονικής μνήμης, ξεπερνώντας εκατοντάδες φορές την ισχύ των μικροϋπολογιστών. • 1979. Η Motorola παρουσιάζει τον μικροεπεξεργαστή 68000. • 1980. Οι John F. Shock και Jon A. Hupp στo Κέντρο Ερευνών της Xerox στο Πάλο Άλτο δημιουργούν το «σκουλήκι» (worm), ένα μικρό πρόγραμμα, το οποίο ψάχνει στο δίκτυο της εταιρείας για αδρανείς επεξεργαστές, για να τους αναθέσει εργασίες. • 1980. Η Seagate Technology δημιουργεί τον πρώτο σκληρό δίσκο για μικροϋπολογιστές, τον ST-506. • 1980. Εμφανίζεται ο πρώτος οπτικός δίσκος, ο οποίος έχει μεγαλύτερη χωρητικότητα από την δισκέτα 5 1/4 ΄΄. • 1981. Η Xerox παρουσιάζει τον "Τhe Star", τον πρώτο προσωπικό υπολογιστή με Γραφικό Περιβάλλον Διεπαφής - ΓΠΕ (Graphical user interface, GUI). • 1981. O Άνταμ Όσμπορν (Adam Osborne) ολοκληρώνει τον πρώτο φορητό υπολογιστή, που φέρει το όνομά του (Osborne). Ζυγίζει 24 λίβρες και κοστίζει 1.795$. • 1981. Η ΙΒΜ παρουσιάζει τον IBM PC και κατακτά την αγορά. O ΙΒΜ PC είναι ο πρόγονος όλων τον σημερινών προσωπικών υπολογιστών (PC). Διαθέτει ως λειτουργικό σύστημα το PC-DOS, δημιουργία της Microsoft, της εκκολαπτόμενης τότε εταιρείας του Μπιλ Γκέιτς. • 1981. Η Sony παρουσιάζει την πρώτη δισκέτα 31/2΄΄ και τον οδηγό της. • 1983. H Compaq Computer Corp. παρουσιάζει τον πρώτο «κλώνο» του IBM PC. • 1984. Παρουσιάζεται από την Αpple Computers ο υπολογιστής Apple Macintosh. Διαθέτει ποντίκι και ΓΠΕ. Η εταιρεία δαπανά στον τελικό του Super Bowl $1.5 εκατομμύριο δολάρια για τη διαφήμισή του. • 1984. H IBM παρουσιάζει τον IBM PC-AT (PC Advanced Technology), ο οποίος είναι 3 φορές ταχύτερος από τον αρχικό PC και βασίζεται στο νέο μικροεπεξεργαστή της Intel, τον 286. Ο ΑΤ διαθέτει δίαυλο (bus) ISA των 16-bits και είναι ο πλέον σύγχρονος για την εποχή του υπολογιστής. • 1985. H Philips παρουσιάζει το CD-ROM. • 1986. Η Compaq ανακοινώνει τον υπολογιστή Deskpro 386. • 1986. Εμφανίζεται ο πρώτος Amstrad PC, o PC1512, ακολουθούμενος από τον PC1640. Είναι οι φθηνότεροι προσωπικοί υπολογιστές στην Ευρώπη με δυνατότητες ίδιες με τους πολύ ακριβότερους της ΙΒΜ και άλλων κατασκευαστών. Η εμφάνισή τους δίνει μεγάλη ώθηση στην αγορά προσωπικών υπολογιστών. • 1987. H IBM παρουσιάζει τους μικροϋπολογιστές PS/2, οι οποίοι διαθέτουν δισκέτα 31/2 ιντσών και κάρτα οθόνης VGA. Παρουσιάζεται, επίσης, η τεχνολογία Micro Channel Architecture (ΜCA) και ο πρώτος δίαυλος "Plug and Play" για μικροϋπολογιστές. • 1988. Ο συνέταιρος και συνιδρυτής της Apple Στηβ Τζομπς εγκαταλείπει την εταιρεία και δημιουργεί δική του, την οποία ονομάζει "Unveil the Next". • 1988. H Compaq και άλλοι κατασκευαστές κλώνων προσωπικών υπολογιστών δημιουργούν το (EISA) Εnhanced Industry Standard που παρόλο το Micro channel διατηρεί τη συμβατότητά του με τον ήδη

100


Ιστορία των υπολογιστών υπάρχοντα δίαυλο ΙSA. • 1988. To «σκουλήκι» (worm) του Robert Morris εξαπλώνεται στο δίκτυο ARPANET. Ο 23χρόνος Morris, γιος ενός από τους υπεύθυνους ασφαλείας των υπολογιστικών συστημάτων, εξαπλώνει το worm στο δίκτυο και προκαλεί προβλήματα σε 6.000 ως σε 60.000 διασυνδεδεμένους υπολογιστές του. • 1989. Η Intel παρουσιάζει τον (P4) γνωστό ως 486 μικροεπεξεργαστή, ο οποίος περιέχει παραπάνω από ένα εκατομμύριο τρανζίστορ. Παράλληλα παρουσιάζει και το chipset για μητρικές πλακέτες που θα δέχονται το νέο μικροεπεξεργαστή. • 1990. Δημιουργείται η υπηρεσία του Παγκόσμιου Ιστού με την καθοριστική συμβολή του Τιμ Μπέρνερς Λι (Τim Berners-Lee), ερευνητή του CERN. Ο Λι δημιουργεί το πρωτόκολλο http, τη διευθυνσιοδότηση ιστοσελίδων (URI, πρόδρομο του σημερινού URL) και τη γλώσσα «χαρτογράφησης» ιστοσελίδων HTML. • 1991 Αρχίζει η ανάπτυξη του λειτουργικού συστήματος Linux από τον Λίνους Τόρβαλντς • 1993. H Intel παρουσιάζει τον μικροεπεξεργαστή Pentium (P5). Αλλάζει από αριθμούς σε ονόματα την ονοματοδοσία στους επεξεργαστές της. • 1995. Η Intel παρουσιάζει τον Pentium Pro, τον πρώτο στην οικογένεια των (P6). • 1995. H Microsoft παρουσιάζει τα Windows 95, το πρώτο λειτουργικό σύστημα για κλώνους προσωπικών υπολογιστών, βασισμένο στο MS-DOS, αλλά με Γραφικό Περιβάλλον Επεξεργασίας (ΓΠΕ). • 1997. Η Intel παρουσιάζει τον μικροεπεξεργαστή Pentium II, έναν Pentium Pro με τεχνολογία MMX για την υποστήριξη πολυμέσων. • 1998. Η Microsoft παρουσιάζει τα Windows 98, πολύ βελτιωμένη έκδοση των Windows 95. Ωστόσο και αυτό το Λειτουργικό Σύστημα βασίζεται στο MS-DOS. • 1998. Η Intel παρουσιάζει τον Celeron, μια φθηνότερη έκδοση του επεξεργαστή Pentium II. • 1999. Η Ιntel παρουσιάζει τον Pentium III, ένα μικροεπεξεργαστή Pentium II εφοδιασμένο με SSE (Streaming SIMD Extensions). • 2000. H Microsoft παρουσιάζει τα Windows 2000. Τα Windows, σε αυτή την έκδοση, σταματούν να βασίζονται στο MS-DOS. • 2000. Μαζί, Intel και AMD, αγγίζουν τη συχνότητα χρονισμού επεξεργαστών του 1 GHz. Η Microsoft παρουσιάζει τα Windows Millenium, μια βελτιωμένη έκδοση των Windows 98 επ' ευκαιρία της έναρξης της νέας χιλιετίας. Εξακολουθούν να βασίζονται στο MS-DOS και δεν γνωρίζουν ευρεία διάδοση. • 2000. Ο μικροεπεξεργαστής Itanium παρουσιάζεται ως νέο μέλος της οικογένειας των μικροεπεξεργαστών P7. • 2001. H Microsoft παρουσιάζει τα Windows XP, που δεν εξαρτώνται πια από το MS-DOS. • 2003. Ο επεξεργαστής AMD Athlon™ 64 FX-51 αποτελεί την επιλογή στην σελίδα του Tom’s Hardware ως «Η καλύτερη καινοτομία στους επεξεργαστές για το έτος 2003». • 2005. Το έτος κατά το οποίο γίνεται δυνατή η επεξεργασία δεδομένων στα 64 bits. • 2005. Γίνεται η παρουσίαση των πρώτων μικροεπεξεργαστών διπλού πυρήνα (Dual Core) από την Advanced Micro Devices (AMD). • 2006. Η Intel παρουσιάζει τους πολλά υποσχόμενους νέους μικροεπεξεργαστές Conroe. • 2007. Παρουσιάζονται από την Microsoft τα Windows Vista, στα οποία περιλαμβάνεται το νέο περιβάλλον διεπαφής με το χρήστη που ονομάζεται Aero. • 2008. Κάνουν την εμφάνισή τους οι πρώτες κάρτες γραφικών που ξεπερνούν το όριο του 1 TeraFLOP.

101


Ιστορία των υπολογιστών

Αναφορές [1] Πληροφορίες και φωτογραφίες από το Κέντρο Διάδοσης Επιστημών & Μουσείο Τεχνολογίας: Αρχαία Ελληνική Τεχνολογία Υπολογιστών (http:/ / www. tmth. edu. gr/ el/ kiosks/ computers/ history/ comp_a2. html), Μηχανισμός των Αντικυθήρων (http:/ / www. tmth. edu. gr/ el/ kiosks/ computers/ technology/ comp_t1. html)

102


103

Κάρτα ήχου Κάρτα ήχου Η κάρτα ήχου είναι μια κάρτα επέκτασης του ηλεκτρονικού υπολογιστή που μπορεί να εισάγει και εξάγει ήχο υπό τον έλεγχο ειδικών προγραμμάτων. Τυπικές χρήσεις μιας κάρτας ήχου περιλαμβάνουν την παροχή του ηχητικού συστατικού για εφαρμογές πολυμέσων όπως η σύνθεση μουσικής, επεξεργασία βίντεο ή ήχου, παρουσίαση/εκπαίδευση, και ψυχαγωγία (παιχνίδια). Διάφοροι ηλεκτρονικοί υπολογιστές διαθέτουν ενσωματωμένες δυνατότητες αναπαραγωγής ή/και επεξεργασίας ήχου, ενώ άλλοι συμπεριλαμβάνουν ειδικές κάρτες επεκτάσεις προκειμένου να προστεθεί η κάρτα ήχου όταν τη χρειαστεί ο χειριστής. Η κάρτα ήχου Sound_Blaster Sound Blaster Live!, είναι μια τυπική σύγχρονη κάρτα επέκτασης τύπου PCI.

Γενικά Χαρακτηριστικά

Κοιτάζοντας από κοντά μια κάρτα ήχου PCB, βλέπουμε ηλεκτρολυτικούς πυκνωτές (πιθανότατα για σύζευξη AC, SMT πυκνωτές [1] και αντιστάτες, και ένα YAC512 two-channel 16-bit DAC.

Μια χαρακτηριστική κάρτα ήχου περιλαμβάνει ένα ολοκληρωμένο ήχου που περιέχει συνήθως ένα ψηφιακό-σε-αναλογικό μετατροπέα, ο οποίος μετατρέπει τις καταγεγραμμένες ή τις παραγόμενες ψηφιακές κυματομορφες ήχου σε αναλογική μορφή. Αυτό το σήμα οδηγείται σε ενα (τύπου ακουστικού) βύσμα όπου μπορεί να συνδεθεί ένας ενισχυτής, ακουστικά ή άλλη παρόμοια συσκευή. Τα πιο προηγμένα σχέδια περιλαμβάνουν συνήθως περισσότερα από ένα ολοκληρωμένα ήχου, για το διαχωρισμό των διεργασιών επεξεργασίας συντεθειμένων ήχων (συνήθως για την παραγωγή σε πραγματικό χρόνο της μουσικής και των ειδικών εφέ με μικρά ποσά δεδομένων) και ψηφιακής αναπαραγωγής ηχου.

Το τελευταίο επιτυγχάνεται συνήθως από πολυδιαυλικά DACs, ικανά να αναπαράγουν πολλά ψηφιακά δείγματα διαφορετικής ποιότητας και έντασης ήχου και πολλές φορές να εφαρμόζουν, ακόμη και σε πραγματικό χρόνο, μουσικά εφέ σε αυτά, όπως το φιλτράρισμα ή διαστρέβλωση. Μερικές φορές, η πολυδιαυλική ψηφιακή αναπαραγωγή ήχου μπορεί επίσης να χρησιμοποιηθεί για τη σύνθεση μουσικής εάν συνδυαστεί με μια ψηφιοποιημένη τράπεζα οργάνων κάποιου είδους, η οποία αποτελείται από ένα μικρό ποσό μνήμης ROM ή Flash που περιέχει δείγματα τα οποία αντιστοιχούν σε πρότυπα όργανα MIDI. (Ο αντιπαραβαλλόμενος τρόπος να συντεθεί ήχος σε ένα PC είναι να χρησιμοποιηθούν κάποια "codecs", τα οποία


Κάρτα ήχου

104

στηρίζονται σε μεγάλο ποσοστό σε κάποιο λογισμικό για σύνθεση μουσικής, MIDI διαμόρφωση και εξομοίωση πολλαπλών καναλιών. Αυτή η προσέγγιση έχει γίνει κοινή δεδομένου ότι οι κατασκευαστές επιδιώκουν να απλοποιήσουν το σχέδιο και το κόστος μιας κάρτας ήχου). Οι περισσότερες κάρτες ήχου έχουν μια κύρια είσοδο (line in), από όπου μπορεί να εισαχθεί το ηχητικό σήμα, από τα όργανα καταγραφής ταινιών, κασετών ή παρόμοιων ηχητικών πηγών. Η κάρτα ήχου μπορεί να ψηφιοποιήσει αυτό το σήμα και να το αποθηκεύσει (ελεγχόμενα από το αντίστοιχο λογισμικό υπολογιστών) στον σκληρό δίσκο του υπολογιστή προκειμένου να αναπαραχθεί ή να υποστεί επεξεργασία. Ένα άλλο χαρακτηριστικό βύσμα εξωτερικής σύνδεσης, είναι αυτό του "μικροφώνου", το οποίο συνδέεται με το μικρόφωνο ή οποιαδήποτε άλλη συσκευή εισόδου, που παράγει σήμα χαμηλότερου επιπέδου τάσης σε σύγκριση με εκείνες που συνδέονται με την κύρια είσοδο (line in). Η εισαγωγή του ήχου μπορεί ομοίως να ψηφιοποιηθεί και να αποθηκευθεί στο σκληρό δίσκο ή αλλιώς να χρησιμοποιηθεί από ειδικές εφαρμογές όπως λογισμικό αναγνώρισης φωνής ή για λογισμικό Voice over IP. Υπάρχουν εντούτοις μερικές κάρτες ήχου που έχουν ως στόχο τη σύνθεση μουσικής και τη διασύνδεση του MIDI τα οποία στερούνται οποιονδήποτε "πραγματικών" ικανοτήτων καταγραφής ήχου, όπως μερικές Turtle Beach και Roland Mt-32 προϊόντα, τα οποία εντούτοις στόχευσαν σε μια συγκεκριμένη αγορά και σχεδιάζονται για την επαγγελματική υψηλή ποιότητα αναπαραγωγής MIDI ήχου.

Συνδέσεις Οι περισσότερες κάρτες ήχου οι οποίες εμμένουν στα πρότυπα της Microsoft PC 99 για την κωδικοποίηση χρώματος τα εξωτερικά βύσματα ως εξής: Χρώμα Ροζ Ανοιχτό μπλέ

Λειτουργία Αναλογική είσοδος ήχου για μικρόφωνο. (Συνήθως μονοφωνική) Αναλογική είσοδος ήχου. (στερεοφωνική)

Λαιμ πράσινο Αναλογική γραμμή εξόδου για το κύριο στερεοφωνικό σήμα (εμπρόσθια ηχεία ή ακουστικά).

Μαύρο Πορτοκαλί

Αναλογική γραμμή εξόδου για τα πίσω ηχεία. S/PDIF Ψηφιακή έξοδος (μερικές φορές χρησιμοποιείται εναλλακτικά ως αναλογική γραμμή εξόοδυ για το κεντρικό ηχείο)

Ιστορία των καρτών ήχου (IBM PC αρχιτεκτονική) Κάρτες ήχου για υπολογιστές βασισμένους στο PC της ΙΒΜ παρέμεναν ασυνήθιστες έως περίπου το 1988, αφήνοντας το ενσωματωμένο ηχείο ως το μόνο μέσο αναπαραγωγής ήχου και μουσικής, κυρίως για τα παιχνίδια υπολογιστών. Αυτό είχε ως αποτέλεσμα να ακούγονται μόνο οι κοινώς λεγόμενοι "Beeps και boops" ήχοι, οι οποίοι ήταν αρκετά περιορισμένοι. Μια επιχείρηση, η Access Software, προχώρησε τόσο πολύ ώστε να αναπτύξει υποστήριξη για την ψηφιακή παραγωγή ήχου πέρα από αυτό το περιορισμένο ηχείο. Ο προκύπτων ήχος, ενώ ήταν λειτουργικός, ήταν εξαιρετικά θορυβώδης και απαιτούσε όλη η υπόλοιπη επεξεργασία να σταματήσει για όσο χρονικό διάστημα αναπαράγονταν οι ήχοι. Άλλοι προσωπικοί υπολογιστές της

Μια κάρτα ήχου βασισμένη στο ολοκληρωμένο VIA Envy


Κάρτα ήχου

105

εποχής, συμπεριλαμβανομένου του Commodore Amiga, Atari ST και διάφορα μοντέλα της εταιρείας Apple, προσέφεραν υποστήριξη για βέλτιστο ήχο. Για αυτό το λόγο, επειδή η πλατφόρμα της ΙΒΜ επεδίωκε να επικρατήσει, χρειαζόταν να παραδώσει στην αγορά κάτι πέρα από το πεπαλαιωμένο και περιορισμένο ομιλητή PC.

Κατασκευαστές υλικού Echo Digital Audio Corporation's Indigo IO —

Ένας από τους πρώτους κατασκευαστές καρτών ήχου για το ΙΒΜ PCMCIA card 24-bit 96 kHz στερεοφωνική PC ήταν η AdLib, η οποία παρήγαγε μια κάρτα βασισμένη στα κάρτα ήχου ολοκληρωμένα ήχου της Yamaha YM3812, aka OPL2. Αυτό έθεσε τα ντε φάκτο - πρότυπα μέχρι που η Creative Labs παρήγαγε τη κάρτα Sound Blaster, η οποία είχε ένα YM3812 συν έναν συνεπεξεργαστή ήχου (πιθανώς Μικροελεγκτή της Intel) τον οποίο η Creative αποκάλεσε ανακριβώς "DSP" το οποίο εννοούσε ότι ήταν ένας επεξεργαστής ψηφιακών σημάτων. Αρκετά χρόνια πέρασαν πριν η Creative εκδώσει μια κάρτα που θα μπορούσε να καταγράψει και να αναπαραγωγής ήχου σε full-duplex κατάσταση, χωρίς εντούτοις να έχει οποιεσδήποτε ικανότητες επεξεργασίας σε πραγματικό χρόνο. Αντίθετα στη δημοφιλή πεποίθηση, η Sound Blaster δεν ξεπέρασε την AdLib λόγω του γεγονότος ότι κάρτες περιελάμβαναν επεξεργασία ψηφιακού ήχου ως επιπρόσθετο χαρακτηριστικό υποστήριξη ψηφιακού ήχου από τις κάρτες Sound Blaster's δεν εμφανίστηκε μέχρι και την έκδοση της κάρτας Sound Blaster Pro. Αρκετά χρόνια αργότερα. Στην πραγματικότητα, ήταν η προσθήκη ενός βασικού θύρας παιχνιδιών που παρείχε τη βασική διαφορά. Και οι δύο κάρτες, τόσο αυτή της AdLib όσο και της Sound Blaster πωλούνταν για $289.Οι ιδιοκτήτες της AdLib που θέλησαν να παίξουν παιχνίδια που απαιτούσαν ένα χειριστήριο έπρεπε να αγοράσουν μια ξεχωριστή κάρτα, για θύρες παιχνιδιών, η οποία γενικά κόστιζε περίπου $50. Η ξεχωριστή αυτή θύρα παιχνιδιών ήρθε επίσης με περαιτέρω κόστος, αυτό της κατάληψης μιας άλλης πολύτιμης αυλάκωσης επέκτασης (PCI slot), σε μία εποχή που οι υπολογιστές περιέλαβαν συνήθως μόνο τρεις αυλακώσεις (PCI slot),. Μόλις η Creative Labs απέδειξε ότι η Sound Blaster ήταν πλήρως συμβατή με την "AdLib" , οι καταναλωτές μπορούσαν να επιλέξουν την λιγότερο-λειτουργική, αλλά εξίσου τιμολογημένη AdLib κάρτα. Η Sound Blaster με τη πρώτη φτηνή συσκευή CD-ROM και την εμπλοκή της τεχνολογίας του video, εισήλθε σε μια νέα εποχή για τις ικανοτήτων των υπολογιστών, στην οποία αυτοί θα μπορούσαν να αναπαράγουν ένα CD, να προσθέσει καταγραμμένο διάλογο σε παιχνίδια υπολογιστών, ή ακόμα να αναπαράγει ταινίες (αλλά μόνο μικρού μήκους και πολύ χαμηλής ποιότητας, ασύγκριτες με το σύγχρονο ψηφιακό video).

Αποδοχή από τη βιομηχανία Όταν η επιχείρηση παιχνιδιών Sierra Entertainment (μετέπειτα γνωστή ως Sierra On-Line) επέλεξε για να κάνει μουσική για πρόσθετο υλικό (καρτες ηχου) αντί να χρησιμοποιεί το ηχειο του υπολογιστη, η έννοια του ήχου και της μουσικής στον υπολογιστη άλλαξε ραγδαία.. Η επιχειρηση Sierra άρχισε τελικά να συνεργάζεται με τις Roland και Adlib. Η Sierra επέλεξε να δημιουργησει μουσική παιχνιδιων, αρχίζοντας από το King's Quest 4,, για την Roland Mt-32 και το συνθετη της Adlib. Η ΜΤ- 32 ήταν πολυ ανώτερη, δεδομένου ότι περιειχε έναν συνθέτη που μπορούσε να συνδυάσει τα μικρά ηχητικα δείγματα με συντεθειμένους ήχους, και είχε άριστο reverb. Η Sierra δημιουργησε τα περισσότερα από τα ΜΤ- 32, και σχεδόν κάθε παιχνίδι φόρτωνε καποια pathes στον συνθετη προκειμενου να παραγάγει τα ηχητικα εφε, οπως το τερέτισμα πουλιών και το βηματισμο των αλόγων, σε μια εποχη πριν οι καρτες SoundBlaster δωσουν τη δυνατότητα να αναπαραγονται τετοιοι ηχοι , σαν μουσικα κομματια στον κοσμο των υπολογιστων. Τα ΜΤ- 32 ήταν σε θέση να αποδοσουν πολύ καλύτερη αναπαραγωγή ηχου από το FM chip που υπηρχε στην κάρτα ήχου της Adlib. Η δημοτικότητα της ΜΤ- 32 ανοίξε το δρόμο για την υιοθετηση των MPU-401/Roland Sound Canvas και General MIDI προτυπων ως τα οριστικά μέσα για τη αναπαραγωγη μουσικής παιχνιδιων μέχρι το μέσο της δεκαετίας του '90.


Κάρτα ήχου

Εξέλιξη των χαρακτηριστικών Οι πρωτες καρτες ηχου δεν μπορουσαν να εγγραφουν και να αναπαραγουν συγχρονως.Οι περισσοτερες καρτες τωρα ειναι full-duplex. Επίσης, για αρκετα χρόνια οι κάρτες ήχου είχαν μόνο ένα ή δύο κανάλια ψηφιακού ήχου (ειδικότερα η σειρα Soundblaster και τα συμβατά συστήματά τους) με την αξιοσημείωτη εξαίρεση αυτων της οικογενειας Gravis Ultrasound, η οποία παρείχε υποστήριξη υλικού για 14 έως 32 ανεξάρτητα κανάλια ψηφιακού ήχου, Τα πρωτα παιχνίδια και οι Mod παιχτες έπρεπε να εξομοιωνουν πλήρως τα πολλαπλά κανάλια από το λογισμικό downmixing.

Συσκευές ήχου που δεν είναι κάρτες επέκτασης Ενσωματωμένος ήχος στο PC Στα τέλη της δεκαετίας του 1990, πολλοί κατασκευαστές υπολογιστών άρχισαν να αντικαθιστούν τις plug-in κάρτες ήχου με "codec". Πολλά από αυτά χρησιμοποίησαν τις προδιαγραφές της Intel, το AC97 πρότυπο. Όπως ειπώθηκε πριν, αυτά τα "codecs" συνήθως στερούνται το υλικό για την άμεση σύνθεση μουσικής ή ακόμα και για τον πολυδιαυλικό ήχο, με ειδικούς οδηγούς και λογισμικό να αναπληρώνουν αυτές τις ελλείψεις, εις βάρος όμως της ταχύτητας της ΚΜΕ (παραδείγματος χάριν, η αναπαραγωγή MIDI καταναλωνει το 10-15% της ΚΜΕ μετρούμενο σε έναν Athlon XP 1600+ CPU).

Ενσωματωμένος ήχος σε άλλες πλατφόρμες Άλλοι υπολογιστές οι οποίοι δεν βασίζονται στην αρχιτεκτονική IBM PC, όπως οι υπολογιστές της Apple, και workstations από κατασκευαστές όπως η Sun έχουν ενσωματωμένη, στη μητρική κάρτα, τη δική τους συσκευή ήχου. Σε μερικές περιπτώσεις αυτή η λύση παρέχει σημαντικά πλεονεκτήματα ιδιαίτερα σε λιτά συστήματα.

USB κάρτες ήχου Αν και όχι για την ακρίβεια κάρτες ήχου (αφού δεν συνδέονται ως κάρτα επέκτασης, ούτε φυσικά μοιάζουν με κάρτες), υπάρχουν κάποιες συσκευές οι οποίες ονομάζονται USB κάρτες ήχου. Συνδέονται στον υπολογιστή μέσω της επαφής USB. Οι προδιαγραφές USB καθορίζουν ένα πρότυπο διεπαφής το οποίο επιτρέπει ένα μόνο οδηγό να λειτουργεί με όλα τα διαφορετικά είδη USB συσκευών ήχου που είναι διαθέσιμα στην αγορά.

Αρχιτεκτονική οδηγών Για να χρησιμοποιηθεί μια κάρτα ήχου, το λειτουργικό σύστημα απαιτεί ένα υποτυπώδη οδηγό συσκευής. Μερικά λειτουργικά συστήματα περιλαμβάνουν τους απαραίτητους οδηγούς για μερικές ή για όλες τις διαθέσιμες κάρτες, ειδάλλως ο οδηγός της συσκευής παρέχεται από τον κατασκευαστή της. • Τα DOS προγράμματα χρησιμοποιούν συνήθως κοινές βιβλιοθήκες οδηγών middleware (HMI Sound Operating System, Miles Sound System κλπ.). • Τα Microsoft Windows χρησιμοποιούν γενικά ιδιόκτητους οδηγούς από τους κατασκευαστές. Πολλοί από τους κατασκευαστές προμηθεύουν την Microsoft με τους οδηγούς για να τους συμπεριλάβει στη διανομή των Windows. Τα Vista θα χρησιμοποιούν οδηγούς τύπουUUA. • Το Linux έχει δύο διαφορετικές αρχιτεκτονικές οδηγών, την παλαιότερη Open Sound System και τη νεότερη ALSA (Advanced Linux Sound Architecture). Και οι δύο διαθέτουν οδηγούς για την πλειοψηφία των καρτών. Οι κατασκευαστές καρτών ήχου δεν παράγουν γενικότερα οδηγούς για το Linux.

106


Κάρτα ήχου

Εξωτερικοί σύνδεσμοι • • • • • • • • • • • •

A History of PC Sound Hardware [2] AudioTrak [3] Sound Card Software [4] C-Media Electronics [5] Creative Labs [6] ESI Pro [7] How Stuff Works - Sound Cards [8] M-Audio [9] Sensaura [10] Sound Blaster [11] Turtle Beach [12] Via Technologies - Audio [13] [14] Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το card άρθρο Sound card της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται [2] [14] υπό την GNU FDL και την CC-BY-SA 3.0 . (card ιστορικό/συντάκτες ).

Παραπομπές [1] http:/ / www. jaero. sk/ elektro/ yac512-m. pdf [2] http:/ / www. crossfire-designs. de/ link/ soundcards [3] http:/ / www. audiotrak. net/ [4] http:/ / www. sound-card-recorder. com/ [5] http:/ / www. cmedia. com. tw/ [6] http:/ / www. creativelabs. com [7] http:/ / www. esi-pro. com/ [8] http:/ / computer. howstuffworks. com/ sound-card. htm [9] http:/ / www. m-audio. com/ [10] http:/ / www. sensaura. com/ [11] http:/ / www. soundblaster. com/ [12] http:/ / www. tbeach. com/ [13] http:/ / www. via. com. tw/ en/ products/ audio/ [14] http:/ / en. wikipedia. org/ wiki/ Sound

107


108

Κατάλογος (υπολογιστές) Κατάλογος (υπολογιστές) Στους υπολογιστές καλούμε κατάλογο ή φάκελο ένα ειδικό αρχείο το οποίο περιέχει πληροφορίες για άλλα αρχεία και καταλόγους. Οι πληροφορίες αυτές είναι το όνομα , μέγεθος , τοποθεσία στην οποία βρίσκεται σε κάποιο δευτερεύον αποθηκευτικό μέσο , ημερομηνία δημιουργίας , δικαιώματα προσπέλασης, ιδιοκτήτης κτλ. Ένας κατάλογος που βρίσκεται καταχωρημένος σε έναν κατάλογο ονομάζεται υποκατάλογός του. Έτσι σχηματίζεται μια ιεραρχία καταλόγων, μια δενδροειδής δομή.


109

Κατασκευή ιστοσελίδων Κατασκευή ιστοσελίδων Κατασκευή ιστοσελίδων (αγγλικά: Web development) είναι η διαδικασία δημιουργίας παρουσιάσεων περιεχομένου (συνήθως υπερκειμένου, ή πολυμέσων), οι οποίες προβάλλονται στον τελικό χρήστη του Διαδικτύου, μέσω ενός προγράμματος περιήγησης (browser) ή άλλων υπηρεσιών όπως διαδικτυακή τηλεόραση, ιστολόγια(blogs) και RSS Feeds.

Περιεχόμενο Μπορούν να χρησιμοποιηθούν διάφορες τεχνικές προβολής του περιεχομένου μιας σελίδας, μεταξύ αυτών: κινούμενα σχέδια, γραφιστική, αλληλεπίδραση ανθρώπου-υπολογιστή, μάρκετινγκ, φωτογραφία, βελτιστοποίηση μηχανών αναζήτησης και τυπογραφία.

Τεχνολογίες Τεχνολογίες που χρησιμοποιούνται στην ανάπτυξη ιστοσελίδων: • • • • •

γλώσσες σελίδας: HTML και XHTML φύλλα στυλ CSS γλώσσες περιγραφής δεδομένων: XML, JSON γλώσσες προγραμματισμού σεναρίων: Perl, PHP, Python, Ruby πλατφόρμες: ASP και ASP.NET της Microsoft, Java Enterprise της Sun, agile frameworks όπως το Django και το Ruby on Rails • συγγραφή κώδικα στην πλευρά του πελάτη: Javascript

Σχεδιασμός Σελίδων Ιστού (Web Design) Ο σχεδιασμός στο Διαδίκτυο αφορά την ικανότητα δημιουργίας παρουσιάσεων περιεχομένου (συνήθως κειμένου ή πολυμέσων) οι οποίες φτάνουν στον τελικό-χρήστη μέσω του Παγκόσμιου Ιστού, με τη χρήση λογισμικού όπως ένας φυλλομετρητής (web browser) ή άλλου λογισμικού σχεδιασμένου για το διαδίκτυο όπως η τηλεόραση μέσω διαδικτύου, κινητών τηλεφώνων κλπ. Η ιστοσελίδα είναι ένα ηλεκτρονικό αρχείο ή ένα σύνολο από ηλεκτρονικά αρχεία που υπάρχουν σε έναν ή και περισσότερους εξυπηρετητές (server/servers) και παρουσιάζει κείμενα και εφαρμογές πολυμέσων στον τελικό-χρήστη. Τέτοια στοιχεία όπως κείμενο, εικόνες (BMPs, GIFs, JPEGs, PNGs) και φόρμες μπορούν να τοποθετηθούν στη σελίδα με τη χρήση χρήση γλωσσών σήμανσης υπερκειμένου όπως HTML/XHTML/XML. Η αναπαραγωγή πιο σύνθετων πολυμέσων (ανυσματικών γραφικών, βίντεο, ήχων, γραφικών με ενσωματωμένο ήχο και εικόνα) απαιτεί πρόσθετα (plug-ins) όπως το Flash, το QuickTime, το περιβάλλον χρόνου εκτέλεσης Java, κ.α). Τα πρόσθετα μπορούν επίσης να ενσωματωθούν σε μια ιστοσελίδα με γλώσσες σήμανσης υπερκειμένου HTML/XHTML/XML. Οι καινούριες εκδόσεις των προγραμμάτων περιήγησης (Internet Explorer 7, 8, Firefox 3.6, safari, chromium κλπ) που ακολουθούν τα W3C πρότυπα οδήγησαν σε μια ευρεία αποδοχή και χρήση των XHTML/XML σε συνδυασμό με τα CSS (Cascading Style Sheets) για την τοποθέτηση και διαχείριση των στοιχείων και αντικειμένων της ιστοσελίδας. Τα τελευταία πρότυπα στοχεύουν στο να αποκτήσουν τα προγράμματα περιήγησης την δυνατότητα να προσφέρουν μια ευρεία γκάμα επιλογής πολυμέσων και πρόσβασης στους


Κατασκευή ιστοσελίδων πελάτες χωρίς τη χρήση των πρoσθέτων (plug-ins). Γενικότερα οι ιστοσελίδες διαχωρίζονται σε στατικές και δυναμικές: • Οι στατικές δεν αλλάζουν περιεχόμενο και διάταξη (layout) με οποιοδήποτε αίτημα εκτός και αν ο προγραμματιστής αναβαθμίσει (update) τη σελίδα. Μια απλή HTML σελίδα είναι παράδειγμα στατικού περιεχομένου. • Οι δυναμικές προσαρμόζουν το περιεχόμενο και/ή την εμφάνισή τους σύμφωνα με την καταχώρηση/αλληλεπίδραση ή τις αλλαγές του τελικού χρήστη στο περιβάλλον προγραμματισμού (χρήστης, ώρα, τροποποιήσεις στη βάση δεδομένων, κτλ) Το περιεχόμενο μπορεί να αλλάζει στον υπολογιστή του τελικού-χρήστη με τη χρήση των γλωσσών προγραμματισμού που εκτελούνται στον υπολογιστή του χρήστη (JavaScript, VBScript, Actionscript, etc.). Το περιεχόμενο στις δυναμικές σελίδες συχνά μεταφράζεται στον εξυπηρετητή (server) μέσω γλωσσών προγραμματισμού που εκτελούνται στον εξυπηρετητή (Perl, PHP, ASP, JSP, ColdFusion, .NET κτλ). Με την συνεχόμενη ειδίκευση στην τεχνολογίας της Πληροφορικής δημιουργείται η ανάγκη διαχωρισμού της Σχεδιασμού Ιστοσελίδων από την Προγραμματιστή Ιστοσελίδων. Για τη διαδικασία σχεδιασμού μιας ιστοσελίδας, μιας εφαρμογής ή ενός πολυμέσου για το διαδίκτυο μπορεί να συνδυάζονται πολλοί κλάδοι όπως animation, συγγραφή, επικοινωνιακός σχεδιασμός, εταιρική ταυτότητα, σχεδιασμός γραφικών, αλληλεπίδραση ανθρώπου-υπολογιστή, αρχιτεκτονική υπολογιστών, σχεδιασμός αλληλεπίδρασης, marketing, φωτογραφία, βελτιστοποίηση μηχανών αναζήτησης και τυπογραφία. • • • • • •

Markup languages (such as HTML, XHTML and XML) Style sheet languages (such as CSS and XML) Client-side scripting (such as JavaScript) Server-side scripting (such as PHP and ASP) Database technologies (such as MySQL and PostgreSQL) Multimedia technologies (such as Flash and Silverlight)

Οι ιστοσελίδες μπορούν να είναι στατικές ή δυναμικές. που αναπροσαρμόζουν αυτόματα το περιεχόμενό τους ή την εμφάνισή τους βασιζόμενες σε μια ποικιλία παραγόντων, όπως μια καταχώρηση από τον τελικό-χρήστη, μια καταχώρηση ή αλλαγή στο περιβάλλον προγραμματισμού από τον χειριστή της ιστοσελίδας ( όπως εν παραδείγματι μια μορφοποίηση της βάσης δεδομένων). Εξαιτίας της συνεχούς εξειδίκευσης στους τομείς της επικοινωνιακής Πληροφορικής, δημιουργείται μια σαφής τάση διαχωρισμού του σχεδιασμού στο Διαδίκτυο από την ανάπτυξη του διαδικτύου ως μέσου ροής της πληροφορίας και των αγαθών προς όλες τις διαδικτυακές υπηρεσίες.

Προσβασιμότητα Ιστοσελίδων Για να είναι προσβάσιμη μια ιστοσελίδα θα πρέπει να ακολουθεί κάποιες αρχές προσβασιμότητας. Αυτές οι αρχές είναι γνωστές ως WCAG όταν μιλάμε για το περιεχόμενο και μπορούν να ομαδοποιηθούν στις ακόλουθες κατηγορίες. • Χρήση semantic markup το οποίο προσφέρει μια ενιαία δομή στο αρχείο. • Το semantic markup επίσης αναφέρεται στην οργάνωση της δομής της ιστοσελίδας αλλά και στην ανακοίνωση/έκδοση/δημιουργία ορισμών των διαδικτυακών υπηρεσιών με τρόπο ώστε να είναι αναγνωρίσιμες από άλλες διαδικτυακές υπηρεσίες σε διαφορετικές ιστοσελίδες. Τα πρότυπα για το semantic web θέτονται βάσει IEEE. • Χρήση έγκυρων markup γλωσσών που ανταποκρίνονται σε ένα δημοσιευμένο DTD ή Schema. • Να παρέχει το ισοδύναμο της πληροφορίας σε κείμενο για κάθε πληροφορία που παρέχεται με γραφικά ή πολυμέσα. • Να χρησιμοποιεί συνδέσμους ενσωματωμένους στο κείμενο

110


Κατασκευή ιστοσελίδων • Να μη χρησιμοποιεί πλαίσια • Χρήση CSS αντί για HTML για την κατασκευή πινάκων • Συγγραφή της σελίδας με τρόπο τέτοιο ώστε όταν ο κώδικας διαβαστεί γραμμή προς γραμμή από user agents (όπως είναι τα screen readers) να παραμένει ευανάγνωστος. Παρόλα αυτά η W3C επιτρέπει ως εξαίρεση στους πινάκες που προορίζονται για εμφάνιση στην ιστοσελίδα να παραμένουν κατανοητοί όταν γραμμικοποιούνται ή σε περίπτωση που κάτι αντίστοιχο μπορεί να εφαρμοστεί. Η προσβασιμότητα των ιστοσελίδων αλλάζει επίσης εξαιτίας των Content Management Systems που επιτρέπουν να γίνονται αλλαγές στις ιστοσελίδες χωρίς να απαιτείται ιδιαίτερη γνώση από προγραμματισμό. H Ανάπτυξή ιστοσελίδων απαιτεί τη συνεργασία πολλών διαφορετικών στοιχείων ώστε το διαδίκτυο να είναι προσβάσιμο σε ανθρώπους με αναπηρίες. Αυτά τα στοιχεία περιλαμβάνουν: Περιεχόμενο – η πληροφορία που υπάρχει σε μια ιστοσελίδα ή σε κάποια εφαρμογή του διαδικτύου περιλαμβάνει: • Τη φυσική πληροφορία όπως κείμενο, εικόνες και ήχους • Κώδικα ή επισήμανση που διευκρινίζει τη δομή, παρουσίαση κλπ. • Προγράμματα πλοήγησης, προγράμματα αναπαραγωγής πολυμέσων κλπ. • Υποβοηθητική τεχνολογία, για ορισμένες περιπτώσεις – screen readers, εναλλακτικό πληκτρολόγιο, διακόπτες, προγράμματα σάρωσης κλπ. • Γνώση του επιπέδου των χρηστών, των εμπειριών τους και σε ορισμένες περιπτώσεις προσαρμοσμένες στρατηγικές με χρήση του διαδικτύου • Προγραμματιστές-Σχεδιαστές, συγγραφείς κτλ, συμπεριλαμβανομένου Προγραμματιστών με αναπηρίες και χρηστών που συνεισφέρουν στη διαμόρφωση του περιεχομένου • Συντακτικών εργαλείων – προγραμμάτων που κατασκευάζουν ιστοσελίδες • Εργαλεία Αξιολόγησης – Εργαλείων αξιολόγησης της Διαδικτυακή Προσβασιμότητας, HTML εγγυητών (HTML validators), CSS εγγυητών (CSS validators), κλπ.

Ιστορικά Στοιχεία Ο Τιμ Μπέρνερς-Λι δημοσίευσε αυτό που σήμερα θεωρούμε ότι ήταν η πρώτη ιστοσελίδα των Αύγουστο του 1991. Ο Τιμ Μπέρνερς-Λι ήταν ο πρώτος που συνδύασε τη Διαδικτυακή επικοινωνία (μέσω της οποίας μετέφερε την ηλεκτρονική αλληλογραφία και το Usenet επί δεκαετίες) με υπερκείμενο (Hypertext) (το οποίο επίσης υπήρχε για δεκαετίες με περιορισμένες δυνατότητες στην αναζήτηση πληροφοριών οι οποίες ήταν αποθηκευμένες σε έναν μόνο υπολογιστή). Οι ιστοσελίδες γράφονται σε γλώσσες σήμανσης κειμένου (markup languages) που ονομάζονται HTML. Οι προγενέστερες εκδόσεις της HTML ήταν περιορισμένων δυνατοτήτων, μόνο για να δίνουν στην ιστοσελίδα τη βασική της δομή (Επικεφαλίδες και παραγράφους), και τη δυνατότητα να χρησιμοποιούν υπερκείμενο. Αυτή ήταν μια νέα μορφή επικοινωνίας διαφορετική από τις ήδη υπάρχουσες-οι χρήστες μπορούν να οδηγηθούν σε άλλες σελίδες με συνεχόμενα συνδέσμων (hyperlinks).

111


Κατασκευή ιστοσελίδων

Σχεδιασμός Ιστοσελίδων Ο σκοπός του σχεδιασμού στο Διαδίκτυο είναι πολυσύνθετος αλλά βασικός κατά την εφαρμογή του. Πριν τη δημιουργία και το «ανέβασμα» μιας ιστοσελίδας είναι σημαντικό να σχεδιαστεί ακριβώς ότι είναι αναγκαίο για την ιστοσελίδα. Είναι πολύ σημαντικό να αποφασιστούν, το κοινό στο οποίο θα απευθύνεται, ο σκοπός της δημιουργίας της και το περιεχόμενο της.

Περιεχόμενο Ο σχεδιασμός που αφορά το διαδίκτυο είναι κατά μία έννοια παρόμοιος με την κλασσική τυπογραφία. Κάθε ιστοσελίδα είναι ένα σύνολο αναπαραγόμενων πληροφοριών, όπως ένα βιβλίο και κάθε σελίδα της ιστοσελίδας είναι το αντίστοιχο της σελίδας ενός βιβλίου. Ωστόσο στο web design χρησιμοποιείται ένα πλαίσιο εργασίας (framework) βασισμένο σε ένα ψηφιακό κώδικα και σε μια τεχνολογία απεικονίσεων για να δημιουργήσει και να διατηρήσει ένα περιβάλλον που θα διανέμει την πληροφορία σε πολλαπλές μορφές αρχείων (formats) όπως pdf, html, doc, κλπ. Οι δυνατότητες του web design το καθιστούν αδιαμφισβήτητα ως τον πλέον κομψό και σύνθετα αναπτυσσόμενο τρόπο επικοινωνίας στο σημερινό κόσμο.

112


113

Κβαντική πληροφορική Κβαντική πληροφορική Σαν κβαντική πληροφορική ορίζεται το σύνολο των διεργασιών που για να διενεργηθούν απαιτείται η χρήση ενός κβαντικού υπολογιστή.


114

Κεντρική Μονάδα Επεξεργασίας Κεντρική Μονάδα Επεξεργασίας Η Κεντρική Μονάδα Επεξεργασίας - ΚΜΕ (αγγλικά: Central Processing Unit - CPU) είναι το κεντρικό εξάρτημα ενός ηλεκτρονικού υπολογιστή, και συχνά αναφέρεται απλά ως επεξεργαστής. Η ΚΜΕ ελέγχει τη λειτουργία του υπολογιστή και εκτελεί τις λειτουργίες επεξεργασίας δεδομένων. Αν η ΚΜΕ αποτελείται από ένα μόνο ολοκληρωμένο κύκλωμα τότε ονομάζεται μικροεπεξεργαστής (microprocessor) ή μικροελεγκτής (microcontroller). Οι επεξεργαστές δεν σχετίζονται αποκλειστικά με τους Μεγέθυνση του μικροεπεξεργαστή Intel 80486DX2 κατά ηλεκτρονικούς υπολογιστές καθώς πλέον ενσωματώνονται την κατασκευή του (πραγματικό μέγεθος: 12×6.75 mm). και σε πολλές ηλεκτρονικές συσκευές όπως κινητά τηλέφωνα, ψηφιακές φωτογραφικές μηχανές και βιντεοκάμερες. Επεξεργαστές ενσωματώνονται σε κάθε είδους συσκευής στην οποία απαιτείται ύπαρξη υπολογιστικής ικανότητας.


Κεντρική Μονάδα Επεξεργασίας

Ιστορική αναδρομή Η διάκριση μεταξύ ΚΜΕ και υπολογιστών ως σύνολο είναι πολύ δυσδιάκριτη στα πρώτα στάδια ανάπτυξης των υπολογιστών. Αρχικά δεν υπήρχε η έννοια της ΚΜΕ καθώς ο υπολογιστής ήταν στην ουσία μια μονάδα επεξεργασίας. Ο διαχωρισμός συνέβη αργότερα, όταν προστέθηκαν στους υπολογιστές επιπλέον εξαρτήματα όπως μνήμες, μονάδες εισόδου/εξόδου, δίαυλοι κ.α.

Λυχνίες κενού Η πρώτη γενιά ηλεκτρονικών υπολογιστών κατασκευαζόταν με λυχνίες κενού. Οι ηλεκτρονικοί υπολογιστές υπερτερούσαν σε ταχύτητα υπολογισμών έναντι της προηγούμενης γενιάς μηχανικών υπολογιστών, αλλά υστερούσαν σε αξιοπιστία. Κύρια αιτία της χαμηλής αξιοπιστίας ήταν οι λυχνίες, που παρουσίαζαν μεγάλο πρόβλημα υπερθέρμανσης με αποτέλεσμα οι υπολογιστές να καταρρέουν πολύ συχνά. Ο υπολογιστής λυχνιών ENIAC, που ολοκληρώθηκε το 1946, σηματοδοτεί την αρχή της πρώτης γενιάς υπολογιστών. Ο ENIAC προγραμματιζόταν από τον χρήστη (operator), αλλά η διαδικασία του προγραμματισμού ήταν εξαιρετικά δύσκολη, επίπονη και χρονοβόρα διαδικασία καθώς γινόταν σε φυσικό επίπεδο, ανοιγοκλείνοντας διακόπτες ή μετακινώντας καλώδια. Για να διευκολυνθεί η διαδικασία του προγραμματισμού, διατυπώθηκε από τον τον μαθηματικό Τζον φον Νόιμαν η ιδέα του αποθηκευμένου προγράμματος. Ο φον Νόιμαν Ο EDVAC σχεδιάστηκε ώστε να εκτελεί αποθηκευμένα δημοσίευσε την μελέτη του το 1945, προτείνοντας την προγράμματα. κατασκευή ενός νέου υπολογιστή, του EDVAC, που θα εκτελούσε αποθηκευμένα προγράμματα. Με αυτόν τον τρόπο η δημιουργία και η τροποποίηση ενός προγράμματος θα ήταν πιο εύκολη, μεταβάλλοντας απλώς τα περιεχόμενα της μνήμης. Ο EDVAC, που ολοκληρώθηκε τον Αύγουστο του 1949, μπορούσε να εκτελέσει ένα συγκεκριμένο σύνολο εντολών (instruction set). Συνδυάζοντας τις εντολές ο χρήστης δημιουργούσε ένα πρόγραμμα και το αποθήκευε στη μνήμη, περιμένοντας τον υπολογιστή να το εκτελέσει. Η πρότυπη σχεδίαση του EDVAC, που μείωσε δραματικά τον απαιτούμενο χρόνο προγραμματισμού, ονομάστηκε αρχιτεκτονική φον Νόιμαν, προς τιμήν του εμπνευστή και σχεδιαστή της. Παρόμοιες προσεγγίσεις, ανέπτυξαν και άλλοι επιστήμονες , όπως ο Άλαν Τούρινγκ και ο Κόνραντ Τσούζε. Αξιοσημείωτος είναι ο υπολογιστής Mark I του πανεπιστημίου Χάρβαρντ, που ολοκληρώθηκε πριν τον EDVAC και χρησιμοποιούσε επίσης ένα σχέδιο αποθήκευσης προγραμμάτων σε διάτρητη ταινία αντί για ηλεκτρονική μνήμη. Η σχεδίαση που προέκυψε από τον Mark I ονομάστηκε αρχιτεκτονική Χάρβαρντ και η βασική της διαφορά με την αρχιτεκτονική φον Νόιμαν είναι ότι διαχωρίζει τον χώρο αποθήκευσης εντολών και δεδομένων.

115


Κεντρική Μονάδα Επεξεργασίας

Τρανζίστορ Εξ αρχής, οι υπολογιστές ήταν πεδίο έρευνας σε πανεπιστήμια και η ανάπτυξη χρηματοδοτούνταν από τις κυβερνήσεις. Η πρώτη σημαντική βελτίωση επιτεύχθηκε με την έλευση του τρανζίστορ, που δεν παρουσίαζε κανένα από τα μειονεκτήματα των λυχνιών. Οι υπολογιστές με τρανζίστορ ήταν πολύ μικρότεροι σε μέγεθος, δεν υπερθερμαίνονταν εύκολα και πραγματοποιούσαν υπολογισμούς πολύ πιο γρήγορα απ' ότι οι υπολογιστές με λυχνίες. Με την χρήση των τρανζίστορ μειώθηκε επίσης σημαντικά και η ηλεκτρική κατανάλωση των υπολογιστών. Οι νέοι υπολογιστές υπερτερούσαν σε όλα τα επίπεδα και μέχρι τις αρχές του '60 είχαν αντικαταστήσει πλήρως την προηγούμενη γενιά. Η δεύτερη γενιά κατασκευαζόταν αποκλειστικά με τρανζίστορ ενώ ορισμένοι υπολογιστές ήταν δυνατό να προγραμματιστούν με συμβολική γλώσσα. Τα νέα θετικά στοιχεία προκάλεσαν το ενδιαφέρον ιδιωτικών εταιριών για τους υπολογιστές και τους επεξεργαστές. Με προσανατολισμό την κατασκευή υπολογιστών για εμπορικούς σκοπούς, επενδύθηκαν μεγάλα κεφάλαια για αυτοματοποίηση των εργασιών στις επιχειρήσεις. Σχεδιάστηκαν και κατασκευάστηκαν υπολογιστές με ταχύτερη μνήμη και καλύτερες μονάδες εισόδου και εξόδου δεδομένων. Λόγω των αυξανόμενων απαιτήσεων για περισσότερη υπολογιστική κατασκευάστηκαν τόσο μικροσκοπικά τρανζίστορ που δύσκολα γινόταν ορατά δια γυμνού οφθαλμού, ενώ σταδιακά άρχισαν να τα ενσωματώνουν σε πλακέτες. Οι πλακέτες, που κάθε μια επιτελούσε μια λειτουργία, κατασκευάζονταν αυτόνομα και έπειτα συναρμολογούνταν όλες μαζί. Η επιμέρους ανάπτυξη τμημάτων, που με την συναρμολόγηση τους παραγόταν ένας υπολογιστής, διέκρινε και την ΚΜΕ ως ξεχωριστή οντότητα από το σύνολο του υπολογιστή.

Ολοκληρωμένα κυκλώματα Το ολοκληρωμένο κύκλωμα (integrated circuit, IC), ή "τσιπ" (chip) όπως συχνά αναφέρεται, επιτελεί μια ολοκληρωμένη διαδικασία, με την έννοια ότι δέχεται δεδομένα και επιστρέφει αποτελέσματα. Κατασκευάζεται πάνω σε ένα μικροσκοπικό κομμάτι πυριτίου, που ως ημιαγωγός, μπορεί να ενθυλακώσει την λειτουργία των τρανζίστορ, των αντιστάσεων και των αγωγών ώστε αυτά να μην κατασκευάζονται πλέον ξεχωριστά. Πολλά τρανζίστορ κατασκευάζονται με ευκολία πάνω σε μια λεπτή επιφάνεια πυριτίου ενώ τα κυκλώματα δημιουργούνται με την μέθοδο της επιμετάλλωσης. Αρχικά μόνο βασικά κυκλώματα, όπως οι πύλες NOR, κατασκευάζονταν σε ολοκληρωμένα κυκλώματα. Οι επεξεργαστές που κατασκευάστηκαν με απλά ολοκληρωμένα κυκλώματα κατατάσσονται ως συσκευές με μικρή κλίμακα ολοκλήρωσης Μεταγενέστερα, τα κυκλώματα τυπώνονταν με πανομοιότυπο τρόπο σε μεγαλύτερες επιφάνειες και έπειτα κόβονταν σε ξεχωριστά τσιπς. Κάθε τσιπ, είχε λογικές Η κονσόλα χρήστη ενός υπολογιστή System/360, πύλες, κύτταρα μνήμης και σημεία εισόδου και εξόδου διακρίνονται οι καταχωρητές και οι διακόπτες. δεδομένων. Μετά την κοπή τοποθετούνταν σε κάθε τσιπ ακροδέκτες (pins) ώστε να μπορεί να συνδέεται με άλλες συσκευές. Πολλά τσιπ που διασυνδέονταν πάνω σε μια πλακέτα δημιουργούσαν μεγαλύτερα και πιο πολύπλοκα κυκλώματα. Με αυτόν τον τρόπο κατασκευάστηκαν επεξεργαστές από κυκλώματα μεσαίας και μεγάλης κλίμακας ολοκλήρωσης. Με την εξέλιξη της μικροηλεκτρονικής, αυξήθηκε και ο αριθμός των τρανζίστορ που τοποθετούνταν σε ένα

116


Κεντρική Μονάδα Επεξεργασίας ολοκληρωμένο κύκλωμα, μειώνοντας παράλληλα και τον συνολικό αριθμό των ολοκληρωμένων που απαιτούνταν για την κατασκευή ενός επεξεργαστή. Χαρακτηριστικός αντιπρόσωπος της τρίτης γενιάς επεξεργαστών είναι οι υπολογιστές της αρχιτεκτονικής System/360 από την ΙΒΜ. Η εταιρεία προσπάθησε να ξεπεράσει την ασυμβατότητα που υπήρχε μεταξύ των υπολογιστών, ακόμη και κοινού κατασκευαστή, ώστε να εκτελείται ένα πρόγραμμα, χωρίς τροποποιήσεις, και από άλλους υπολογιστές με διαφορετική ταχύτητα και επιδόσεις. Για να το πετύχει αυτό, η IBM εισήγαγε την έννοια του μικροπρογράμματος (microprogram). Το σύνολο της αρχιτεκτονικής System/360 έγινε τόσο δημοφιλής που κυριάρχησε στα συστήματα μεγάλης υπολογιστικής ισχύς (mainframes) για πολλές δεκαετίες και συνεχίζει να εφαρμόζεται με παρόμοιο τρόπο στους σύγχρονους υπολογιστές.

Μικροεπεξεργαστές Δείτε το κυρίως άρθρο Μικροεπεξεργαστής Ο τρόπος κατασκευής των ΚΜΕ άλλαξε σημαντικά στην δεκαετία του 70, όταν κατασκευάστηκαν οι πρώτοι επεξεργαστές από ένα μόνο ολοκληρωμένο κύκλωμα μεγάλης ολοκλήρωσης. Επειδή μειώθηκε εκ νέου το μέγεθος, οι νέοι επεξεργαστές ονομάστηκαν μικροεπεξεργαστές, ενώ σήμερα ο όρος "ΚΜΕ" αναφέρεται αποκλειστικά σε αυτούς. Το μικρότερο μέγεθος μείωσε επίσης και τον χρόνο μεταγωγής λόγω των φυσικών παραγόντων. Έτσι οι σύγχρονοι μικροεπεξεργαστές έχουν συχνότητα ρολογιού που κυμαίνεται από εκατοντάδες megahertz έως αρκετά gigahertz. Παράλληλα, αυξήθηκε η πολυπλοκότητα και ο Ο μικροεπεξεργαστής Intel 80486DX2. αριθμός των τρανζίστορ που αποτελούσαν ένα ολοκληρωμένο κύκλωμα. Ο ρυθμός αύξησης των τρανζίστορ περιγράφεται από τον νόμο του Μουρ, που ισχύει μέχρι σήμερα και προβλέπει τον διπλασιασμό του αριθμό των τρανζίστορ, που ενσωματώνονται σε ένα ολοκληρωμένο κύκλωμα, κάθε 18 μήνες. Αν και η πολυπλοκότητα, το μέγεθος, η κατασκευή, και η γενική μορφή των επεξεργαστών έχει αλλάξει ριζικά τα τελευταία εξήντα χρόνια, είναι αξιοσημείωτο ότι ο βασικός σχεδιασμός και η λειτουργία τους δεν έχει αλλάξει σε μεγάλο βαθμό. Σήμερα σχεδόν όλες οι κοινές ΚΜΕ μπορούν να θεωρηθούν ως μηχανές φον Νόημαν. Καθώς ο νόμος του Μουρ εξακολουθεί να ισχύει, έχουν εκφραστεί ανησυχίες σχετικά με τα όρια της τεχνολογίας ολοκλήρωσης κυκλωμάτων με τρανζίστορ. Οι μεγάλες σμικρύνσεις των ηλεκτρονικών πυλών έχουν ξεπεράσει προβλήματα που παλαιότερα προκαλούνταν από τα υλικά κατασκευής. Νεότερες όμως ανησυχίες προκαλούν τους ερευνητές να διερευνήσουν νέες μεθόδους υλοποίησης υπολογισμών, όπως ο κβαντικός υπολογιστής, καθώς και να διευρύνουν την χρήση του παράλληλου υπολογισμού και άλλων μεθόδων που επεκτείνουν την χρησιμότητα της υπάρχουσας αρχιτεκτονικής φον Νόημαν.

117


Κεντρική Μονάδα Επεξεργασίας

Οργάνωση Οι περισσότεροι σύγχρονοι υπολογιστές ακολουθούν μια απλοποιημένη μορφή της αρχιτεκτονικής φον Νόημαν. Συνδυάζουν την Αριθμητική και Λογική μονάδα με την μονάδα ελέγχου δημιουργώντας την ΚΜΕ, και τις μονάδες εισόδου και εξόδου σε μια μονάδα εισόδου/εξόδου (Ε/Ε). Επομένως κάθε σύγχρονο υπολογιστικό σύστημα, αποτελείται από τρία μέρη, την ΚΜΕ, την μνήμη και την μονάδα Ε/Ε. H KME αποτελείται από τρία κύρια τμήματα • Καταχωρητές (Registers): Μικρά κύτταρα μνήμης στο εσωτερικό του επεξεργαστή, που χρησιμοποιούνται για την προσωρινή αποθήκευση των δεδομένων, καθώς αυτά υφίστανται επεξεργασία. Μερικοί καταχωρητές έχουν ειδική λειτουργία • Απαριθμητής προγράμματος (program counter): περιέχει την διεύθυνση της επόμενης εντολής που θα ανακτηθεί από την μνήμη για να εκτελεστεί. • Καταχωρητής εντολών (Instruction register): αποθηκεύει τον κωδικό λειτουργίας της εντολής πριν αποκωδικοποιηθεί από την ΚΜΕ. • Συσσωρευτής (accumulator): καταχωρητής που συνήθως χρησιμοποιείται για τις αριθμητικές και λογικές πράξεις. • Αριθμητική και Λογική Μονάδα (Arithmetic and Logical Unit, ALU): εκτελεί αριθμητικές και λογικές πράξεις • Μονάδα Ελέγχου (Control Unit): Ελέγχει τη ροή δεδομένων από και προς την ΚΜΕ, τους καταχωρητές, τη μνήμη και τις περιφερειακές μονάδες εισόδου/εξόδου. Η διασύνδεση μεταξύ αυτών των μονάδων επιτυγχάνεται μέσω ενός κοινού διαύλου που ονομάζεται δίαυλος συστήματος.

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

Μορφή και κωδικοποίηση Μια εντολή μπορεί να επεξεργαστεί δεδομένα ή να μεταβάλλει καταστάσεις στο εσωτερικό της ΚΜΕ. Αν είναι εντολή επεξεργασίας μπορεί να μεταφέρει, να προσθέσει, ή να συγκρίνει δεδομένα, ενώ αν είναι εντολή μεταβολής μπορεί να τροποποιήσει τον απαριθμητή προγράμματος και τον καταχωρητή ενδείξεων. Μεταβάλλοντας τον απαριθμητή προγράμματος μπορεί να αλλάξει η ροή εκτέλεσης του προγράμματος. Τέτοιες εντολές είναι γνωστές ως "άλματα" (jumps) και είναι ο βασικός τρόπος υλοποίησης των βρόχων επιλογής και επανάληψης. Ο καταχωρητής ενδείξεων περιέχει διακριτές καταστάσεις ελέγχου, όπως ο ενδείκτης υπερχείλισης. Οι ενδείκτες επηρεάζουν τον τρόπο με τον οποίο συμπεριφέρεται ένα πρόγραμμα, δεδομένου ότι συχνά αποτελούν αναφορά στα αποτελέσματα διαφόρων εργασιών. Κάθε εντολή περιλαμβάνει την λειτουργία που θα εκτελέσει, την πηγή των δεδομένων και την διεύθυνση της επόμενης εντολής. Όλες αυτές οι πληροφορίες κωδικοποιούνται σε ένα ή περισσότερα bytes ανάλογα με τον τύπο της εντολής. Για να προκύψουν όσο το δυνατόν λιγότερα bytes δεχόμαστε ότι η επόμενη εντολή ακολουθεί αμέσως μετά την τρέχουσα εντολή. Έτσι συνήθως οι εντολές αποτελούνται από δύο τμήματα, το πρώτο τμήμα περιέχει τον κωδικό εντολής (operation code) και υποδηλώνει τη λειτουργία προς εκτέλεση, και το δεύτερο τμήμα περιέχει πληροφορίες που απαιτούνται για την εν λόγω εντολή, για παράδειγμα οι τελεστές για την λειτουργία της πρόσθεσης ή η διεύθυνση της επόμενης εντολής αν είναι εντολή διακλάδωσης. Για κάθε εντολή υπάρχει διαφορετική κωδικοποίηση. Ακόμη και στην ίδια εντολή, ανάλογα με τον τύπο τελεστών που χρησιμοποιεί, δηλαδή αν είναι καταχωρητές, θέσεις μνήμης ή απευθείας δεδομένα, υπάρχει

118


Κεντρική Μονάδα Επεξεργασίας διαφορετική κωδικοποίηση. Στην πραγματικότητα όλες οι εντολές είναι δυαδικοί αριθμοί που έχουν αντιστοιχηθεί σε μια λειτουργία. Για να γίνονται πιο κατανοητές οι εντολές συνήθως αναπαρίστανται είτε σε δεκαεξαδική μορφή είτε σε συμβολική γλώσσα. Για παράδειγμα η εντολή ADD C δηλώνει ότι θα προστεθεί το περιεχόμενο του καταχωρητή C με το περιεχόμενο του συσσωρευτή και το αποτέλεσμα θα αποθηκευτεί στον συσσωρευτή. Η αντίστοιχη δεκαεξαδική αναπαράσταση της εντολής αυτής είναι 81h, σε αρχιτεκτονικές x86.

Κύκλος εντολής Κύκλος εντολής είναι το διάστημα που απαιτείται για την αποπεράτωση μιας εντολής και την έναρξη της επόμενης. Υπάρχουν τέσσερα στάδια για την ολοκλήρωση ενός κύκλου: η ανάκληση (fetch), η αποκωδικοποίηση (decode), η εκτέλεση (execute) και αποθήκευση του αποτελέσματος (store/writeback). Κατά την ανάκληση, ανάκταται η εντολή από την θέση μνήμης που είναι αποθηκευμένη. Η θέση της εντολής στην μνήμη περιέχεται στον απαριθμητή προγράμματος. Όταν η εντολή μεταφερθεί από την μνήμη στον επεξεργαστή αποθηκεύεται στον καταχωρητή εντολών. Έπειτα αυξάνεται η τιμή του απαριθμητή προγράμματος, όσο είναι και το μήκος της εντολής σε μονάδες μνήμης, ώστε να υποδεικνύει την θέση της επόμενης εντολής ή την διεύθυνση των τελεστών σε περίπτωση που η τρέχουσα εντολή έχει τελεστές. Συχνά η εντολή προς ανάκληση καθυστερεί να μεταφερθεί από την μνήμη στον επεξεργαστή, λόγο ασύγχρονης λειτουργίας των δύο συσκευών, προκαλώντας παύση στην λειτουργία της ΚΜΕ. Για την αντιμετώπιση αυτού του προβλήματος, στους σύγχρονους επεξεργαστές γίνεται χρήση ενδιάμεσης μνήμης προσωρινής αποθήκευσης (cache) αλλά και τεχνικές σωλήνωσης (pipelining). Στο στάδιο της αποκωδικοποίησης, η εντολή διασπάται και ερμηνεύεται από τον επεξεργαστή. Ανάλογα με τον κωδικό εντολής, κατά την αποκωδικοποίηση, ανακαλούνται και τυχόν τελεστές. Η τιμή των τελεστών ανακαλείται είτε άμεσα ως σταθερά, είτε έμμεσα ως μια διεύθυνση στην οποία βρίσκεται αποθηκευμένη η τιμή, σε κάποιο καταχωρητή ή μνήμη, όπως ορίζει το εκάστοτε πρότυπο διευθυνσιοδότησης. Σε παλιότερα σχέδια επεξεργαστών, η αποκωδικοποίηση της εντολής ήταν μια αμετάβλητη διαδικασία που πραγματοποιούσε το υλικό. Ωστόσο, σε πιο περίπλοκες αρχιτεκτονικές επεξεργαστών, για την ερμηνεία των εντολών χρησιμοποιείται ένα μικροπρόγραμμα. Το μικροπρόγραμμα συνήθως είναι επαναπρογραμματιζόμενο ώστε να μπορεί να μεταβληθεί, ακόμη και μετά την κατασκευή της ΚΜΕ, ο τρόπος που αποκωδικοποίησης των εντολών. Μετά την ανάκληση και την αποκωδικοποίηση, ακολουθεί η εκτέλεση της εντολής. Σε αυτό το στάδιο, διάφορες μονάδες του επεξεργαστή συνδέονται ώστε να γίνει εφικτή η εκτέλεση της επιθυμητής λειτουργίας. Αν, για παράδειγμα, ζητήθηκε μια λειτουργία πρόσθεσης, η αριθμητική μονάδα (AU) θα συνδεθεί με ένα σύνολο εισόδων και εξόδων. Οι είσοδοι θα παρέχουν τους αριθμούς που πρέπει να προστεθούν και οι έξοδοι θα περιέχουν το άθροισμα. Εάν η πρόσθεση έχει ως αποτέλεσμα έναν υπερβολικά μεγάλο αριθμό για να χειριστεί η ΚΜΕ τότε θα ενεργοποιηθεί ο ενδείκτης αριθμητικής υπερχείλισης. Η αριθμητική λογική μονάδα (ALU) στο σύνολό της περιέχει κυκλώματα για την εκτέλεση απλών αριθμητικών και λογικών πράξεων, όπως η πρόσθεση και η σύγκριση αριθμών. Στο τελικό στάδιο, την αποθήκευση, η ΚΜΕ στέλνει τα δεδομένα προς αποθήκευση στην μνήμη. Τα αποτελέσματα αρχικά αποθηκεύονται προσωρινά σε κάποιο καταχωρητή για ταχύτερη προσπέλαση από επόμενες εντολές και έπειτα αποθηκεύονται στην κύρια μνήμη του συστήματος. Εντολές που κάνουν άλματα αλλά και εντολές που μεταβάλλουν τον καταχωρητή ενδείξεων στην ουσία δεν παράγουν κάποιο αποτέλεσμα προς αποθήκευση. Μετά την αποθήκευση των αποτελεσμάτων που προέκυψαν, ο κύκλος εντολής ολοκληρώνεται και επαναλαμβάνεται με την επόμενη εντολή, αφού αυξήθηκε ο απαριθμητής προγράμματος. Σε επεξεργαστές με πιο περίπλοκη αρχιτεκτονική, περισσότερες εντολές μπορεί να ανακαλούνται, να αποκωδικοποιούνται και να εκτελούνται ταυτόχρονα.

119


Κεντρική Μονάδα Επεξεργασίας

120

Σχεδιασμός και υλοποίηση Η ΚΜΕ είναι το βασικό τμήμα ενός υπολογιστικού συστήματος και γι' αυτό ο σχεδιασμός και η λειτουργία της επηρεάζει το σύστημα στο σύνολό του.

MOS 6502 μικροεπεξεργαστής των 8 bit.

Παράσταση δεδομένων

Ένα από τα σημαντικότερα ζητήματα που αφορούν τα υπολογιστικά συστήματα είναι ο τρόπος με τον οποίο αναπαρίστανται τα δεδομένα. Οι πρώτοι ψηφιακοί υπολογιστές χρησιμοποιούσαν το δεκαδικό σύστημα για την αναπαράσταση αριθμών, ενώ μερικοί άλλοι υπολογιστές χρησιμοποιούσαν το τριαδικό σύστημα. Σχεδόν όλοι οι σύγχρονοι επεξεργαστές χρησιμοποιούν το δυαδικό σύστημα, όπου τα δύο ψηφία, το μηδέν (0) και το ένα (1), αντιστοιχούν σε δύο αντίθετες φυσικές καταστάσεις, όπως η "υψηλή" και η "χαμηλή" τάση. Επομένως οι υπολογιστές αντιλαμβάνονται μόνο τα δύο αυτά ψηφία και έτσι πρέπει να χρησιμοποιείται κάποιος κώδικας που να αποδίδει σημασία σε αυτά τα bit. Η κωδικοποίηση και η αποκωδικοποίηση των δυαδικών ψηφίων ώστε να παριστάνουν έναν αριθμό ή έναν χαρακτήρα, κατανοητό από τους χρήστες, συμβαίνει στην μονάδα Εισόδου/Εξόδου. Σε ορισμένες περιπτώσεις, για να μειωθεί το μήκος, τα byte και οι λέξεις αναπαριστώνται συμβολικά με δεκαεξαδική μορφοποίηση. Η ΚΜΕ και κατ' επέκταση οι υπολογιστές χειρίζονται συγκεκριμένες ομάδες δυαδικών ψηφίων. Οι ομάδες μπορεί να έχουν ένα bit, τέσσερα bit που ονομάζεται nibble, οκτώ bit που ονομάζεται byte και 16 bit που ονομάζεται word (λέξη). Το byte είναι η πιο κοινή ομάδα από δυαδικά ψηφία που χρησιμοποιείται στους υπολογιστές. Με ένα byte μπορούν να αναπαρασταθούν 28 διαφορετικές τιμές, αφού έχει 8 bit. Η αρίθμηση των bit σε ένα byte αρχίζει από το μηδέν έως το εφτά ενώ βασικό πεδίο εφαρμογής των byte είναι για την κωδικοποίηση χαρακτήρων. Τα bit μιας λέξης (word) αριθμούνται από το μηδέν έως το 15 και μπορούν να αναπαραστήσουν 216, ή 65.536, διαφορετικές τιμές. Κάθε bit ή byte παριστάνει αυτό που εμείς καθορίζουμε να παρασταθεί. Για παράδειγμα ένα bit μπορεί να χρησιμοποιηθεί ως αριθμός ενώ το διπλανό του ως λογική τιμή. Με τον ίδιο τρόπο ένα byte μπορεί να χρησιμοποιηθεί ως αριθμός αλλά και ως χαρακτήρας, αναλόγως την κωδικοποίηση που επιλέξουμε για την ανάγνωσή του. Τα δεδομένα στην ΚΜΕ, στην μνήμη και στον δίαυλο του συστήματος υπάρχουν υπό την ίδια δυαδική μορφή.

Δίαυλος συστήματος Οι δίαυλοι είναι αγωγοί που ομαδοποιούνται σύμφωνα με την λειτουργία τους. Αν για παράδειγμα ένας δίαυλος είναι 32-bit σημαίνει ότι έχει 32 ξεχωριστούς αγωγούς, καθένας από τους οποίους μεταφέρει ένα bit δεδομένου. Υπό αυτήν την έννοια, ο δίαυλος συστήματος αποτελείται από ένα σύνολο ξεχωριστών διαύλων, ταξινομημένους σύμφωνα με την λειτουργία τους. Οι δίαυλοι αυτοί είναι ο δίαυλος διευθύνσεων, ο δίαυλος δεδομένων και ο δίαυλος ελέγχου. Ο δίαυλος δεδομένων μεταφέρει δεδομένα μεταξύ των μονάδων του υπολογιστικού συστήματος. Το μέγεθός του καθορίζει πόσα bit μπορεί να μεταφέρει ταυτόχρονα αλλά και το εύρος των αριθμών που μπορεί να χειριστεί ο επεξεργαστής. Ο επεξεργαστής Intel 8088, με δίαυλο δεδομένων των 8 bit, κατηγοριοποιείται ως οκτάμπιτος επεξεργαστής και μπορεί να χειριστεί 28 = 256 αριθμούς.

κόκκινο: δίαυλος διευθύνσεων μπλε: δίαυλος δεδομένων πράσινο: δίαυλος ελέγχου


Κεντρική Μονάδα Επεξεργασίας Στην περίπτωση εγγραφής δεδομένων στη μνήμη, ο δίαυλος διευθύνσεων περιέχει την διεύθυνση της θέσης μνήμης στην οποία θα αποθηκευτούν τα δεδομένα. Το μέγεθος του διαύλου διευθύνσεων καθορίζει και το μέγεθος της μνήμης που μπορεί να διευθυνσιοδοτήσει ο επεξεργαστής, δηλαδή την μνήμη που μπορεί να αντιληφθεί και να χρησιμοποιήσει. Για παράδειγμα στον 8088, που ο δίαυλος διευθύνσεων ήταν 20 bits, ο επεξεργαστής μπορούσε να προσπελάσει μέχρι 220 = 1.048.576 θέσεις μνήμης (1ΜΒ). Ο δίαυλος ελέγχου αποτελείται από αγωγούς με ξεχωριστή λειτουργία ο καθένας, οι οποίοι ελέγχουν τον τρόπο που επικοινωνεί ο επεξεργαστής με τα υπόλοιπα υποσυστήματα. Για παράδειγμα, όταν ο επεξεργαστής επικοινωνεί με την μνήμη ο δίαυλος ελέγχου προσδιορίζει την κατεύθυνση των δεδομένων με τα σήματα read ή write.

Χρονισμός ρολογιού Οι περισσότερες κεντρικές μονάδες επεξεργασίας είναι σύγχρονες συσκευές. Είναι δηλαδή σχεδιασμένες να λειτουργούν σύμφωνα με ένα ηλεκτρικό σήμα συγχρονισμού, που ονομάζεται σήμα ρολογιού. Το ρολόι είναι ένας ηλεκτρικός τετραγωνικός παλμός που εκπέμπεται από τον δίαυλο ελέγχου και εναλλάσσεται Ο παλμός του ρολογιού συστήματος. περιοδικά μεταξύ μηδέν και ένα. Ο χρόνος που χρειάζεται το ρολόι για να μεταπηδήσει από το μηδέν στο ένα και πίσω στο μηδέν, ονομάζεται περίοδος ή κύκλος του ρολογιού. Η συχνότητα με την οποία γίνεται αυτή η εναλλαγή ονομάζεται συχνότητα ρολογιού. Η συχνότητα μετριέται σε Hertz (Hz) ενώ ο κύκλος, που είναι αντίστροφο μέγεθος της συχνότητας, μετριέται σε δευτερόλεπτα. Ο κύκλος ρολογιού είναι το μικρότερο χρονικό διάστημα στο οποίο μπορεί να συμβεί μια λειτουργία. Κάποιες λειτουργίες εκτελούνται σ' έναν κύκλο ρολογιού ενώ κάποιες άλλες χρειάζονται περισσότερους κύκλους. Το ρολόι δεν δουλεύει με την ίδια συχνότητα για όλες τις συσκευές ενός υπολογιστικού συστήματος. Συνήθως το ρολόι που απευθύνεται στον επεξεργαστή είναι χρονισμένο σε υψηλότερες συχνότητες από ότι για παράδειγμα το ρολόι της μνήμης. Αυτό συμβαίνει γιατί ο επεξεργαστής λειτουργεί ταχύτερα από ότι η μνήμη. Ωστόσο, υπάρχει το μειονέκτημα πως όταν η ΚΜΕ αλληλεπιδρά με τις υπόλοιπες συσκευές περιμένει την απάντησή τους και τίθεται σε αδράνεια, χάνοντας έτσι επεξεργαστικούς κύκλους. Η συχνότητα του ρολογιού δεν είναι πλέον καθοριστικός παράγοντας για την υπολογιστή ισχύ ενός συστήματος. Οι σημερινοί επεξεργαστές επιτυγχάνουν συχνότητες της τάξης των τριών με τεσσάρων GigaHertz όμως η πραγματική αύξηση της υπολογιστικής ισχύς επιτεύχθηκε με εφαρμογή της παράλληλης επεξεργασίας. Τοποθετώντας σε ένα υπολογιστικό σύστημα δύο ΚΜΕ, οι κατασκευαστές κατάφεραν να αυξήσουν τις επιδόσεις ενώ ταυτόχρονα μείωσαν την συχνότητα του ρολογιού.

Παράλληλη επεξεργασία Ο τρόπος εκτέλεσης των εντολών στους πρώτους επεξεργαστές ήταν σειριακός, δηλαδή εκτελούνταν η επόμενη εντολή αφού πρώτα είχε τελειώσει η προηγούμενη. Όπως αποδείχθηκε ο τρόπος αυτός δεν είναι ο πλέον αποδοτικός για την εκτέλεση μεγάλων προγραμμάτων επειδή καθυστερεί υπερβολικά. Αναπτύχθηκε για αυτό τον λόγο η έννοια της παράλληλης επεξεργασίας, που επιτρέπει παράλληλη, δηλαδή ταυτόχρονη, επεξεργασία. Πολλές εναλλακτικές έχουν προκύψει για αυτό το σκοπό αλλά οι κυριότερες είναι η σωλήνωση και η επεξεργασία νημάτων (threads) για τα πολυεπεξεργαστικά συστήματα.

121


Κεντρική Μονάδα Επεξεργασίας

Σωλήνωση Όλοι οι σύγχρονοι επεξεργαστές χρησιμοποιούν την τεχνική της σωλήνωσης για την εκτέλεση των εντολών. Η σωλήνωση εκμεταλλεύεται τα στάδια κάθε εντολής, και επιτρέπει έτσι στον επεξεργαστή να εκτελεί πολλές εντολές παράλληλα. Αν η κάθε εντολή διασπάται σε τέσσερα επίπεδα, όπως αναφέρεται πιο πάνω, τότε ο επεξεργαστής μπορεί Σωλήνωση τεσσάρων επιπέδων. κάθε χρονική στιγμή να εκτελεί επίπεδα από τέσσερις εντολές, μειώνοντας έτσι σημαντικά τον συνολικό χρόνο εκτέλεσης του προγράμματος. Σε μια σωλήνωση τεσσάρων επιπέδων η εξοικονόμηση χρόνου μπορεί να φτάσει μέχρι και 56% της αντίστοιχης σειριακής επεξεργασίας. (δείτε αναλυτικά το διπλανό διάγραμμα). Όμως ένα σημαντικό πρόβλημα που προκύπτει από την σωλήνωση είναι αυτό της εξάρτησης των εντολών. Πολλές εντολές προϋποθέτουν για την εκτέλεσή τους να έχει ολοκληρωθεί η προηγούμενη εντολή ώστε να τους επιστρέψει ένα αποτέλεσμα. Αυτό δεν συμβαίνει στην σωλήνωση αφού όλες οι εντολές εκτελούνται σχεδόν παράλληλα. Το πρόβλημα ξεπεράστηκε εν μέρη από τις γλώσσες προγραμματισμού που εξελίχθηκαν ώστε να ανταποκρίνονται σε επεξεργασία σωλήνωσης και εν μέρη από τις ίδιες τις ΚΜΕ που ενσωμάτωσαν διαδικασίες ελέγχου. Έτσι όταν απαιτείται από μια εντολή ο τερματισμός της προηγούμενης, η ΚΜΕ θέτει σε αναμονή την εντολή μέχρι να ολοκληρωθεί η προηγούμενη.

Επεξεργασία νημάτων Αυτός η μέθοδος παράλληλης εξεργασίας προϋποθέτει την ύπαρξη τουλάχιστον δύο επεξεργαστών στο ίδιο υπολογιστικό σύστημα, αν και συνήθως εφαρμόζεται σε πολύ μεγαλύτερα συστήματα. Επειδή υπάρχουν περισσότεροι του ενός επεξεργαστές είναι εφικτή η παράλληλη επεξεργασία διαφορετικών εργασιών. Έτσι κάθε εργασία διασπάται σε μικρότερες ισομεγέθεις εργασίες που ονομάζονται νήματα (threads). Κάθε ΚΜΕ του συστήματος αναλαμβάνει να ολοκληρώσει ένα νήμα σε ένα χρόνο (κβάντο) που θα έχει οριστεί. Εάν το νήμα δεν ολοκληρωθεί μέσα στα όρια του χρόνου, τότε η επεξεργασία του νήματος συνεχίζεται και στο επόμενο διάστημα χρόνου. Μπορούν επίσης να εφαρμοστούν διάφορες τεχνικές χρονοπρογραμματισμού, ώστε να υπάρχει εναλλαγή των νημάτων από διαφορετικές εργασίες.

Βιβλιογραφία • Αθ. Τσουρόπλης & Κ. Κλημόπουλος, Εισαγωγή στην Πληροφορική, Εκδόσεις Νέων Τεχνολογιών, 2005, ISBN 960-8105-84-6 • William Stallings, Οργάνωση & Αρχιτεκτονική Υπολογιστών, Εκδόσεις Τζίολα, 2003, ISBN 960-418-008-8 • Andrew S. Tanenbaum, Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος, 2007, ISBN 960-209-586-5

Δείτε επίσης • • • • •

Διευθυνσιοδότηση CISC Δίαυλος υπολογιστή Μηχανική υπολογιστών Ψύξη ΚΜΕ

• Συχνότητα ΚΜΕ • Σχεδίαση ΚΜΕ

122


Κεντρική Μονάδα Επεξεργασίας • • • • • • • •

Socket KME Ψηφιακός επεξεργαστής Μονάδα κινητής υποδιαστολής GPU Graphics Processing Unit Σύνολο εντολών RISC Μικροελεγκτής Υπερβαθμωτός επεξεργαστής

Εξωτερικοί σύνδεσμοι Σχεδιαστές μικροεπεξεργαστών • Advanced Micro Devices [1] - Advanced Micro Devices, κατασκευαστής επεξεργαστών κυρίως για προσωπικούς υπολογιστές. • ARM Ltd [2] - μια από τις λίγες εταιρίες που δεν κατασκευάζει επεξεργαστές, αλλά παραχωρεί δικαιώματα κατασκευής επεξεργαστών τις σε τρίτους. Η αρχιτεκτονική ARM είναι από τις πλέον δημοφιλής στην κατηγορία των μικροελεγκτών για ενσωματωμένα (embedded) συστήματα. • Freescale Semiconductor [3] (πρώην τμήμα της Motorola) - σχεδιαστής αρκετών ενσωματωμένων και SoC επεξεργαστών για PowerPC. • IBM Microelectronics [4] - Μικροηλεκτρονικό τμήμα της IBM, αναπτύσσει επεξεργαστές που προορίζονται για POWER και PowerPC υπολογιστές, αλλά και πολλών επεξεργαστών που χρησιμοποιούνται σε κονσόλες βιντεοπαιχνιδιών. • Intel Corp [5] - Intel, κατασκευαστής αξιοσημείωτων μικροελεγκτών και επεξεργαστών, όπως οι 8051, IA-32, IA-64 και XScale. Επιπλέον παράγει περιφερειακά τσιπ για χρήση με τους επεξεργαστές της. • MIPS Technologies [6] - ανέπτυξαν την αρχιτεκτονική MIPS, μια πρωτοπόρος σχεδίαση των RISC επεξεργαστών. • NEC Electronics [7] - ανέπτυξαν την αρχιτεκτονική 78K0 8-bit [8], την αρχιτεκτονική 78K0R 16-bit [9], και την αρχιτεκτονική V850 32-bit [10]. • Sun Microsystems [11] - Sun Microsystems, ανέπτυξαν την αρχιτεκτονική SPARC, μια σχεδίαση RISC. • Texas Instruments [12] - Σχεδιαστές και κατασκευαστές αρκετών διαφορετικών χαμηλής κατανάλωσης μικροελεγκτών μεταξύ των άλλων ημιαγωγικών προϊόντων τους. • Transmeta [13] - Δημιουργοί επεξεργαστών χαμηλής κατανάλωσης, όπως οι Crusoe και Efficeon, που είναι συμβατοί με το σετ εντολών x86. • VIA Technologies [14] - Κατασκευαστής, από την Ταϊβάν, χαμηλής κατανάλωσης επεξεργαστών, συμβατοί με το σετ εντολών x86. • Atmel [15] - Κατασκευαστής δημοφιλών μικροελεγκτών CISC και RISC χαμηλού κόστους, όπως η σειρά AVR. Περαιτέρω ανάγνωση • How Microprocessors Work at HowStuffWorks [16]

123


Κεντρική Μονάδα Επεξεργασίας

Παραπομπές [1] http:/ / www. amd. com/ [2] http:/ / www. arm. com/ [3] http:/ / www. freescale. com/ [4] http:/ / www-03. ibm. com/ chips/ [5] http:/ / www. intel. com/ [6] http:/ / www. mips. com/ [7] http:/ / www. am. necel. com/ [8] http:/ / www. am. necel. com/ micro/ product/ all_8_general. html/ [9] http:/ / www. am. necel. com/ micro/ product/ all_16_general. html/ [10] http:/ / www. am. necel. com/ micro/ product/ all_32_general. html/ [11] http:/ / www. sun. com/ [12] http:/ / www. ti. com/ home_p_allsc [13] http:/ / www. transmeta. com/ [14] http:/ / www. via. com. tw/ en/ [15] http:/ / www. atmel. com [16] http:/ / www. howstuffworks. com/ microprocessor. htm

124


125

Κιλομπάιτ Κιλομπάιτ Ποσότητες μπάιτ Διαδεδομένη χρήση και κατά SI πρότυπο νόημα Όνομα

Σύμβολο Ποσότητα

Πρότυπα δυαδικού προθέματος σύμφωνα με IEC 60027-2 Όνομα

Σύμβολο Ποσότητα

Κιλομπάιτ

KB

210 (103)

Κιμπιμπάιτ

KiB

210

Μεγαμπάιτ

MB

220 (106)

Μεμπιμπάιτ

MiB

220

Γιγαμπάιτ

GB

230 (109)

Γκιμπιμπάιτ

GiB

230

Τεραμπάιτ

TB

240 (1012)

Τεμπιμπάιτ

TiB

240

Πεταμπάιτ

PB

250 (1015)

Πεμπιμπάιτ

PiB

250

Εξαμπάιτ

EB

260 (1018)

Εξμπιμπάιτ

EiB

260

Ζεταμπάιτ

ZB

270 (1021)

Ζεμπιμπάιτ

ZiB

270

Ιωταμπάιτ

YB

280 (1024)

Ιωμπιμπάιτ

YiB

280

Ένα Κιλομπάιτ (από το πρόθεμα SI Κιλό που σημαίνει χίλια) είναι μονάδα πληροφορίας ή αποθηκευτικού χώρου υπολογιστή που ισούται με 1024 ή (περίπου) 1000 μπάιτς. Στην συντομευμένη του εκδοχή γράφεται KB, kB, Kbyte, kbyte, ή ακόμα K k. Αρχικά ο όρος "κιλομπάιτ" χρησιμοποιούνταν για να δηλώσει μια τιμή 1024 μπάιτ (210), γιατί στο δυαδικό αριθμητικό σύστημα , το 'φυσικό' σύστημα των ψηφιακών υπολογιστών, μετράμε τις ποσότητες σε δυνάμεις του δύο και 210 είναι περίπου ίσο με 1000. Καθώς όμως οι υπολογιστές διαδόθηκαν περισσότερο, αυτή η λανθασμένη χρήση του προθέματος κιλό στον χώρο των υπολογιστών επεκτάθηκε από την αργκό των επαγγελματιών της πληροφορικής και στο ευρύ κοινό δημιουργώντας σύγχυση. Δες και το λήμμα δυαδικό πρόθεμα για περισσότερες λεπτομέρειες. Έχει προταθεί ότι θα μπορούσε να χρησιμοποιηθεί το κεφαλαίο πρόθεμα Κ για να ξεχωρίζουμε την ποσότητα 1024 από το SI πρόθεμα k, και παρόλο που δεν έχει επισημοποιηθεί μια τέτοια χρήση, αποτελεί καθημερινή πρακτική (αν και το Κ χρησιμοποιείται σαν SI σύμβολο για την μονάδα Κέλβιν). Παρόλαυτα μια τέτοια πρακτική δεν θα μπορούσε να επεκταθεί και στα προθέματα μεγαλύτερης τάξης, αφού το σύστημα SI χρησιμοποιεί ήδη τα προθέματα m και M με την σημασία "χιλιοστό" και "εκατομμυριάδα" αντίστοιχα. Συνεπώς αυτά τα προθέματα μπορούν να χρησιμοποιηθούν με τις δεκαδικές (δυνάμεις του 10) είτε τις δυαδικές (δυνάμεις του 10) τιμές ανάλογα με τα συμφραζόμενα: • 1024 μπάιτ (210): Αυτός ο ορισμός χρησιμοποιείται όταν αναφερόμαστε σε χωρητικότητα μνήμης και άλλες ποσότητες που βασίζονται σε δυνάμεις του δύο. Πολλά προγράμματα το χρησιμοποιούνε για να εκφράσουν χωρητικότητα αποθηκευτικών μέσων γενικά, αυτό όμως έχει απαγορευτεί από το SI πρότυπο.([1] section 3.1, marginal note), και οι περισσότεροι οργανισμοί τυποποίησης προτείνουν για αυτή την χρήση τον όρο κιμπιμπάιτ (KiB). Αν και ο όρος "κιμπιμπάιτ" χρησιμοποιείται σπάνια στην πράξη έχει αρχίσει να υιοθετείται από λογισμικό στο


Κιλομπάιτ οποίο η ακρίβεια είναι σημαντική, όπως το BitTorrent και τον πυρήνα του Linux. • 1000 μπάιτ (103): Αυτός ο ορισμός είναι συμβατός με το SI πρόθεμα, και προτείνεται για όλες τις χρήσεις από οργανισμούς τυποποίησης όπως οι IEC, IEEE, και ISO, με την συντομογραφία "kB". Η ευρέως διαδεδομένη χρήση του ορισμού του K σαν 1024 σημαίνει ότι όποιος χρησιμοποιεί το "κιλομπάιτ" να σημαίνει 1000 υπάρχει πιθανότητα να προκαλέσει σύγχηση. Παρόλαυτα είναι σύνηθες να χρησιμοποιούμε τον ορισμό 1000 όταν παίρνουμε-παράγουμε μετρήσεις σε κιλομπάιτ από ποσότητες που δεν βασίζονται σε δυνάμεις του δύο, όπως η ταχύτητα ρολογίου ή η συχνότητα μετάδοσης μπιτ. Συνέκρινε με το κιλομπίτ όπου χρησιμοποιούμε το πρόθεμα με το δεκαδικό του νόημα (=1000).

Παραπομπές [1] http:/ / www. bipm. org/ utils/ en/ pdf/ si-brochure. pdf

126


127

Κιμπιμπάιτ Κιμπιμπάιτ Ποσότητες μπάιτ Διαδεδομένη χρήση και κατά SI πρότυπο νόημα Όνομα

Σύμβολο Ποσότητα

Πρότυπα δυαδικού προθέματος σύμφωνα με IEC 60027-2 Όνομα

Σύμβολο Ποσότητα

Κιλομπάιτ

KB

210 (103)

Κιμπιμπάιτ

KiB

210

Μεγαμπάιτ

MB

220 (106)

Μεμπιμπάιτ

MiB

220

Γιγαμπάιτ

GB

230 (109)

Γκιμπιμπάιτ

GiB

230

Τεραμπάιτ

TB

240 (1012)

Τεμπιμπάιτ

TiB

240

Πεταμπάιτ

PB

250 (1015)

Πεμπιμπάιτ

PiB

250

Εξαμπάιτ

EB

260 (1018)

Εξμπιμπάιτ

EiB

260

Ζεταμπάιτ

ZB

270 (1021)

Ζεμπιμπάιτ

ZiB

270

Ιωταμπάιτ

YB

280 (1024)

Ιωμπιμπάιτ

YiB

280

Ένα κιμπιμπάιτ (μια σύμπτυξη της ονοματικής φράσης kilo binary byte) είναι μονάδα πληροφορίας ή μνήμης υπολογιστή, συντομευμένα KiB (ποτέ "kiB"). 1 κιμπιμπάιτ = 210 μπάιτ = 1.024 μπάιτ Το κιμπιμπάιτ έχει στενή σχέση με το κιλομπάιτ, το οποίο μπορεί να χρησιμοποιηθεί είτε σαν συνώνυμο του κιμπιμπάιτ ή να αναφέρεται σε 103 μπάιτ = 1.000 μπάιτ (δες δυαδικό πρόθεμα). Η χρήση αυτού του όρου έχει σκοπό να αποτρέψει τη σύγχυση που είναι κοινή όταν αναφερόμαστε σε αποθηκευτικά μέσα, εξαιτίας της αμφισημίας του όρου "κιλομπάιτ". Έτσι ο όρος κιμπιμπάιτ έχει ορισθεί να αναφέρεται ακριβώς σε 1024 μπάιτ. Το πρόβλημα της σύγχυσης που προκαλεί ο όρος κιλομπάιτ ( δηλαδή να αναφέρεται ταυτόχρονα και στο 1000 και στο 1024) έγινε πιο έντονο όταν οι σκληροί δίσκοι έφτασαν να έχουν χωρητικότητες της τάξης του γιγαμπάιτ. Τότε αν π.χ. κάποιος αγοραστής σκέφτεται σε όρους δυνάμεων του δύο και ο κατασκευαστής στις προδιαγραφές του σκληρού δίσκου αναφέρεται σε δυνάμεις του δέκα, η διαφορά θα ήταν σημαντική, πχ. 1 μεγαμπάιτ, σε δυνάμεις του δύο , είναι 10242 ή 1024*1024, ή 1.048.576, ενώ 1000*1000, είναι 1.000.000. Στην περίπτωση του "γιγαμπάιτ", με δυνάμεις του δύο 10243, το μέγεθος του δίσκου θα ήταν 1.073.741.824 μπάιτ ανά γιγαμπάιτ σε αντίθεση με το 10003, ίσο με 1.000.000.000. Σε έναν δίσκο 100 γιγαμπάιτ η διαφορά έφτανε στα 7 δισεκατομμύρια χαρακτήρες ανάλογα με τα 100 γιγαμπάιτ αναφερόμαστε σε 100*10003 ή 100*10243.


Κιμπιμπάιτ

Δες επίσης • • • • • •

bit και byte κιλομπάιτ κιμπιμπίτ δυαδικό πρόθεμα SI πρόθεμα Τάξεις μεγέθους

128


129

Κοιλάδα του Πυριτίου Κοιλάδα του Πυριτίου Η Κοιλάδα του πυριτίου (Silicon Valley) βρίσκεται στο νότιο τμήμα του Κόλπου του Σαν Φρανσίσκο (San Francisco Bay Area) στη Βόρεια Καλιφόρνια των ΗΠΑ. Ο όρος αρχικά αναφερόταν στον μεγάλο αριθμό των καινοτόμων εταιρειών σχεδίασης μικροκυκλωμάτων (με βάση το πυρίτιο) και τους κατασκευαστές που υπήρχαν στην περιοχή, αλλά τελικά κατέληξε να αναφέρεται σε όλες τις υψηλής τεχνολογίας επιχειρήσεις που εδρεύουν εκεί. Σήμερα γενικά χρησιμοποιείται ως μετωνύμιο για τον τομέα υψηλής τεχνολογίας, που δραστηριοποιούνται στις τεχνολογίες της Πληροφορικής και των Επικοινωνιών - οδηγοί των εξελίξεων σε αυτούς τους τομείς - με ειδικευμένο εργατικό δυναμικό από όλο τον κόσμο.

Πηγή Χρήστος Λαλάς, Το Μικρό Λεξικό του Internet, Αθήνα: Δίαυλος, 2002, ISBN: 960-531-138-0.


130

Κυτταρικά αυτόματα Κυτταρικά αυτόματα Τα κυτταρικά αυτόματα (ή κυψελικά αυτόματα, αγγλ. cellular automata) είναι υπολογιστικά μοντέλα συστημάτων με αναδυόμενη πολυπλοκότητα. Μελετώνται στη θεωρία υπολογισμού, στη φυσική, στη θεωρητική βιολογία και αλλού. Επινοήθηκαν κατά τη δεκαετία του 1940 από τον μαθηματικό Τζον φον Νόιμαν, με σκοπό την τυπική περιγραφή των λειτουργιών του βιολογικού κυττάρου. Έγιναν περισσότερο γνωστά κατά τη δεκαετία του 1980 από τον Αμερικανό επιστήμονα υπολογιστών Κρίστοφερ Λάνγκτον, θεμελιωτή του γνωστικού πεδίου της τεχνητής ζωής.

Περιγραφή Πρόκειται για μια «κοινωνία» ατόμων (ψηφιακών και όχι μόνο), που κινούνται καθώς περνά ο χρόνος σε ένα πλέγμα (είτε τετραγώνων είτε άλλων σχημάτων που είναι συνήθως δισδιάστατα) με βάση προκαθορισμένους απλούς κανόνες. Με βάση τους κανόνες αυτούς, κινούνται, ζευγαρώνουν, γεννούν και πεθαίνουν, ή ακόμα τρέφονται. Όσο περιπλοκότερες λειτουργίες τούς δοθούν, τόσο περισσότερα μπορούν να κάνουν.

Ο ηλεκτρονικός υπολογιστής CM-5 λειτουργεί και λύνει προβλήματα με την μέθοδο του κυτταρικού αυτόματου.

Χρησιμότητα Τέτοιου είδους πειράματα χρησιμεύουν κατ' αρχάς στην προσομοίωση της συμπεριφοράς ζωντανών βιολογικών οργανισμών. Αλλά έχουν επίσης και άλλες εφαρμογές. Για παράδειγμα, μελετάται έτσι η αυτοοργάνωση μιας κοινωνίας ανεξαρτήτων μελών, η εξέλιξή της, η δημιουργία εικόνας τάξης από μια τυχαία κατάσταση αταξίας, ακόμα και η μαθηματική τυχαιότητα σε μια κοινότητα. Παράλληλα όμως, μπορεί να είναι και ένα πολύ ενδιαφέρον ερευνητικό παιχνίδι, με εντελώς απρόβλεπτη και χαοτική συμπεριφορά των ατόμων του.


131

Κωδικοποίηση Huffman Κωδικοποίηση Huffman Η κωδικοποίηση Huffman είναι μια μέθοδος συμπίεσης που δημοσιεύτηκε το 1952[1] από τον David Huffman και έμελλε να γίνει πασίγνωστη. Εκδοχές του αλγορίθμου Huffman χρησιμοποιούνται στη μετάδοση αντιγράφων και στις απεικονίσεις εγγράφων. Το πρότυπο JPEG ενσωματώνει την κωδικοποίηση Huffman ως τελικό βήμα στη διαδικασία συμπίεσης εικόνας. Η κωδικοποίηση Huffman είναι αποδεικνύεται βέλτιστη για ένα δεδομένο κείμενο, αν και ο πίνακας κωδικοποίησης πρέπει να μεταδίδεται μαζί με τα δεδομένα.

Αρχές λειτουργίας Ο αλγόριθμος Huffman παράγει ένα κώδικα βασισμένο στην πιθανότητα εμφάνισης του κάθε συμβόλου σε ένα κείμενο. Σχεδόν σε όλα τα κείμενα, μερικά σύμβολα εμφανίζονται περισσότερες φορές από ότι άλλα. Προκαθορισμένες πιθανότητες εμφάνισης κάθε συμβόλου χρησιμοποιούνται για τη δημιουργία ενός δυαδικού δέντρου από τη βάση προς τα επάνω (bottom-up). Αυτός ο τρόπος εγγυάται ότι τα σύμβολα που εμφανίζονται λιγότερο θα έχουν μακρύτερες σειρές δυαδικών ψηφίων. Στο δέντρο τα σύμβολα είναι φύλλα (τερματικοί κόμβοι - terminal nodes), οι διακλαδώσεις σημειώνονται με 0 ή 1 και η δυαδική αναπαράσταση της διαδρομής από τη ρίζα (root) μέχρι το σύμβολο είναι η συμπιεσμένη αναπαράστασή του ως σειρά δυαδικών ψηφίων.

Αλγόριθμος 1. Γίνεται καταγραφή συμβόλων και των αντίστοιχων πιθανοτήτων. 2. Δημιουργείται ένας κόμβος (node) για κάθε σύμβολο στον οποίο σημειώνεται η αντίστοιχη πιθανότητα. 3. Ακολουθεί εύρεση των δύο μικρότερων κόμβων οι οποίοι δεν έχουν κόμβο-πατέρα (parent node), και στη συνέχεια δημιουργείται ένας νέος διακλαδιζόμενος κόμβος στον οποίο σημειώνεται το άθροισμα των πιθανοτήτων που έχουν οι δύο κόμβοι-παιδιά (child nodes). 4. Επαναλαμβάνεται το 3ο βήμα μέχρι όλοι οι κόμβοι εκτός από τη ρίζα (root) να έχουν κόμβο-πατέρα. 5. Σημειώνεται με 0 και 1 κάθε ζεύγος ακμών. Η διαδρομή από τη ρίζα ως το δεδομένο φύλλο δείχνει τον κώδικα για το σύμβολο στο συγκεκριμένο φύλλο.


Κωδικοποίηση Huffman

Παραπομπές [1] "A Method for the Construction of Minimum-Redundancy Codes", βλ. εξωτερικούς συνδέσμους

Βιβλιογραφία Lillian N. Cassel, Richard H. Austing, Computer Networks and Open Systems: An Application Development, Jones & Bartlett Publishers, ISBN 0763711225

Εξωτερικοί σύνδεσμοι D. Huffman, A Method for the Construction of Minimum-Redundancy Codes (http:/ / compression. ru/ download/ articles/huff/huffman_1952_minimum-redundancy-codes.pdf) Το άρθρο προέρχεται από το wiki.teilar.net (http://wiki.teilar.net)

132


133

Λογισμικό Λογισμικό Με τον όρο λογισμικό υπολογιστών, ή λογισμικό (software) ορίζεται η συλλογή από προγράμματα υπολογιστών, διαδικασίες και οδηγίες χρήσης που εκτελούν ορισμένες εργασίες σε ένα υπολογιστικό σύστημα. [1] Ο όρος περιλαμβάνει: • το Λογισμικό εφαρμογών όπως επεξεργαστές κειμένου που εκτελούν παραγωγικές εργασιές για τους χρήστες. • το Λογισμικό συστήματος όπως Στιγμιότυπο του επεξεργαστή κειμένου OpenOffice.org Writer. λειτουργικά συστήματα, που διασυνδεόυν το υλικό για να παρέχουν τις αναγκαίες υπηρεσίες στο λογισμικό εφαρμογών, και • το Middleware που ελέγχει και συντονίζει κατανεμημένα συστήματα. Το λογισμικό περιλαμβάνει ιστότοπους, προγράμματα, βιντεοπαιχνίδια κ.α. που έχουν αναπτυχθεί από μια γλώσσα προγραμματισμού όπως η C, η C++ κ.α. Είναι κωδικοποιημένο με προτυποποιημένους τρόπους, με τη βοήθεια ενός δυαδικού ψηφιακού συστήματος, ώστε να είναι "κατανοητό" από το υλικό. Ο όρος "Λογισμικό" χρησιμοποιείται μερικές φορές και σε ένα ευρύτερο πλαίσιο για να περιγράψει κάτι το οποίο δεν είναι υλικό, αλλά χρησιμοποιείται με το υλικό, όπως ταινίες, δίσκοι μουσικής και CD. [2]

Επισκόπηση Ως λογισμικό υπολογιστών θεωρείται ό,τι δεν ανήκει στο υλικό, hardware, του υπολογιστή. Στο υλικό περιλαμβάνονται τα αντικείμενα που έχουν υλική υπόσταση, ενώ στο λογισμικό περιλαμβάνονται τα άυλα προγράμματα και οι εφαρμογές που υπάρχουν στο εσωτερικό του υπολογιστή. Το λογισμικό καλύπτει ένα ευρύτατο φάσμα προϊόντων και τεχνολογιών που αναπτύσσονται με χρήση διαφορετικών τεχνικών όπως οι γλώσσες προγραμματισμού, οι γλώσσες μορφοποίησης κλπ. Οι διαφορετικοί τύποι λογισμικού περιλαμβάνουν ιστοσελίδες που αναπτύχθηκαν από τις τεχνολογίες HTML, PHP, Perl, JSP, ASP.NET, XML, και desktop εφαρμογές όπως το Microsoft Word και το OpenOffice που αναπτύχθηκαν από τις τεχνολογίες C, C++, Java, C #, κλπ. Το λογισμικό εκτελείται συνήθως μέσα από ένα λειτουργικό σύστημα (που είναι επίσης λογισμικό) όπως τα Microsoft Windows, το Linux (με περιβάλλον GNOME ή KDE), το Solaris της Sun κ.α. Ως λογισμικό θεωρούνται και τα βιντεοπαιχνίδια όπως το Super Mario και το Grand Theft Auto για προσωπικούς υπολογιστές ή κονσόλες βιντεοπαιχνιδιών. Αυτά τα παιχνίδια αναπτύσσονται από εφαρμογές CGI (computer generated imagery) αφού έχουν σχεδιαστεί πρώτα τα γραφικά τους από εφαρμογές όπως το Maya, το 3ds Max κ.α. Επίσης, ένα λογισμικό συνήθως λειτουργεί πάνω σε μια πλατφόρμα λογισμικού που παρέχεται είτε από λειτουργικό σύστημα ή από ανεξάρτητες πλατφόρμες όπως η Java και η .NET. Λογισμικό γραμμένο για μία πλατφόρμα συνήθως δεν μπορεί να λειτουργεί και σε άλλες πλατφόρμες, για παράδειγμα, οι εφαρμογές των


Λογισμικό Microsoft Windows δεν θα είναι σε θέση να λειτουργήσουν σε Mac OS λόγω των διαφορών που σχετίζονται με τις πλατφόρμες και τα πρότυπά τους. Οι εφαρμογές αυτές μπορούν να λειτουργήσουν μόνο εάν μεταφερθούν, χρησιμοποιώντας ένα διερμηνέα ή εκ νέου ανάπτυξη του πηγαίου κώδικα για την εν λόγω πλατφόρμα.

Σχέση με το υλικό του υπολογιστή Το λογισμικό υπολογιστών καλείται έτσι ώστε να διακρίνεται από το υλικό του υπολογιστή, που εποπτεύει τις φυσικές διασυνδέσεις και διατάξεις που απαιτούνται για να αποθηκευτεί και να εκτελεστεί το λογισμικό. Σε χαμηλότερο επίπεδο, το λογισμικό αποκωδικοποιήται σε γλώσσα μηχανής ειδικά προσαρμοσμένη για έναν συγκεκριμένο τύπο επεξεργαστή. Μια γλώσσα μηχανής είναι στην ουσία δυαδική αναπαράσταση των οδηγιών που στέλνονται στον επεξεργαστή ώστε να αλλάξει την κατάσταση του υπολογιστή από την προηγούμενη κατάσταση. Λογισμικό είναι η διατεταγμένη ακολουθία οδηγιών για την αλλαγή της κατάστασης του υλικού του υπολογιστή σε μια συγκεκριμένη επιθυμητή κατάσταση. Είναι συνήθως γραμμένο σε υψηλού επιπέδου γλώσσες προγραμματισμού που είναι ευκολότερες στη χρήση για τους ανθρώπους (πιο κοντά στη φυσική γλώσσα) και πιο αποτελεσματικές από την γλώσσα μηχανής. Οι υψηλού επιπέδου γλώσσες μεταγλωττίζονται σε γλώσσα μηχανής. Το λογισμικό μπορεί επίσης να είναι γραμμένο σε γλώσσα assembly, μια μνημονική αναπαράσταση της γλώσσας μηχανής που χρησιμοποιεί αλφάβητο φυσικής γλώσσας. Η γλώσσα assembly μεταγλωττίζεται σε γλώσσα μηχανής μέσω ενός assembler. Ο όρος "λογισμικό" χρησιμοποιήθηκε για πρώτη φορά με αυτή την έννοια από τον John W. Tukey το 1958. Στην επιστήμη των υπολογιστών και του λογισμικού, λογισμικό υπολογιστών είναι όλα τα προγράμματα για ηλεκτρονικούς υπολογιστές. Αυτή η θεωρία είναι η βάση του σύγχρονου λογισμικού και προτάθηκε για πρώτη φορά από τον Alan Turing το 1935 στο δοκίμιο του Υπολογίσιμοι αριθμοί με μια εφαρμογή στο Entscheidungsproblem.

Είδη συστημάτων λογισμικού Στην πράξη τα υπολογιστικά συστήματα διαιρούν το λογισμικό σε τρεις κύριες κλάσεις: λογισμικό συστήματος, λογισμικό προγραμματισμού και λογισμικό εφαρμογών, αν και η διάκριση αυτή είναι αυθαίρετη, και συχνά ασαφής.

Λογισμικό συστήματος Το λογισμικό συστήματος επιβοηθά τη λειτουργία του υλικού του υπολογιστή και του υπολογιστικού συστήματος. Περιλαμβάνει: • • • • • •

λειτουργικά συστήματα, οδηγούς συσκευών (drivers). διαγνωστικά εργαλεία, servers, παραθυρικά συστήματα βοηθητικά προγράμματα και άλλα.

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

134


Λογισμικό

Παραπομπές [1] Wordreference.com: WordNet 2.0 (http:/ / www. wordreference. com/ definition/ software). Princeton University, Princeton, NJ (ανακτήθηκε 2007-08-19 ) [2] software..(n.d.). Dictionary.com Unabridged (v 1.1). Retrieved 2007-04-13, from Dictionary.com website: http:/ / dictionary. reference. com/ browse/ software

135


136

Μεμπιμπάιτ Μεμπιμπάιτ Ποσότητες μπάιτ Διαδεδομένη χρήση και κατά SI πρότυπο νόημα Όνομα

Σύμβολο Ποσότητα

Πρότυπα δυαδικού προθέματος σύμφωνα με IEC 60027-2 Όνομα

Σύμβολο Ποσότητα

Κιλομπάιτ

KB

210 (103)

Κιμπιμπάιτ

KiB

210

Μεγαμπάιτ

MB

220 (106)

Μεμπιμπάιτ

MiB

220

Γιγαμπάιτ

GB

230 (109)

Γκιμπιμπάιτ

GiB

230

Τεραμπάιτ

TB

240 (1012)

Τεμπιμπάιτ

TiB

240

Πεταμπάιτ

PB

250 (1015)

Πεμπιμπάιτ

PiB

250

Εξαμπάιτ

EB

260 (1018)

Εξμπιμπάιτ

EiB

260

Ζεταμπάιτ

ZB

270 (1021)

Ζεμπιμπάιτ

ZiB

270

Ιωταμπάιτ

YB

280 (1024)

Ιωμπιμπάιτ

YiB

280

Ένα μεμπιμπάιτ (μια σύμπτυξη της ονοματικής φράσης mega binary byte) είναι μονάδα πληροφορίας ή μνήμης υπολογιστή, συντομευμένα MiB (ποτέ "miB"). 1 μεμπιμπάιτ = 220 μπάιτ = 1.048.576 μπάιτ = 1.024 κιμπιμπάιτ Το μεμπιμπάιτ έχει στενή σχέση με το μεγαμπάιτ, το οποίο μπορεί να χρησιμοποιηθεί είτε σαν συνώνυμο του μεμπιμπάιτ ή να αναφέρεται σε 106 μπάιτ = 1.000.000 μπάιτ (δες δυαδικό πρόθεμα). Η χρήση αυτού του όρου έχει σκοπό να αποτρέψει τη σύγχυση που είναι κοινή όταν αναφερόμαστε σε αποθηκευτικά μέσα, εξαιτίας της αμφισημίας του όρου "κιλομπάιτ". Έτσι ο όρος κιμπιμπάιτ έχει ορισθεί να αναφέρεται ακριβώς σε 1024 μπάιτ.

Δες επίσης • • • • • •

bit και byte κιλομπάιτ κιμπιμπίτ δυαδικό πρόθεμα SI πρόθεμα Τάξεις μεγέθους


137

Μεταδεδομένα Μεταδεδομένα Τα μεταδεδομένα (μετάφραση του όρου metadata, ο οποίος σχηματίζεται από την ελληνική λέξη μετά και τη λατινική λέξη data "δεδομένα") είναι δεδομένα τα οποία περιγράφουν άλλα δεδομένα. Κατά κανόνα, ένα σύνολο μεταδεδομένων περιγράφει ένα άλλο σύνολο δεδομένων, το οποίο αποτελεί μια πηγή.

Ορισμοί Ο συνηθέστερος ορισμός που δίδεται είναι: • Τα μεταδεδομένα είναι δεδομένα που αφορούν δεδομένα. Επειδή οι περισσότεροι άνθρωποι στην καθημερινή χρήση της γλώσσας δεν κάνουν τη διάκριση ανάμεσα στα δεδομένα και τις πληροφορίες, συνηθίζονται επίσης οι ορισμοί: • Τα μεταδεδομένα είναι πληροφορίες που αφορούν δεδομένα. • Τα μεταδεδομένα είναι πληροφορίες που αφορούν πληροφορίες. Στο βιβλιοθηκονομικό περιβάλλον, ένας πιο ακριβής και τεχνικός ορισμός είναι ο ακόλουθος: • Τα μεταδεδομένα είναι δομημένα και κωδικοποιημένα δεδομένα τα οποία περιγράφουν χαρακτηριστικά πληροφοριακών οντοτήτων, αποσκοπώντας στην ταύτιση, αναγνώριση, ανακάλυψη, αξιολόγηση και διαχείριση των οντοτήτων που περιγράφονται.

Διαφορά ανάμεσα σε δεδομένα και μεταδεδομένα Συνήθως δεν μπορεί κάποιος να διαχωρίσει τα απλά δεδομένα από τα μεταδεδομένα διότι: • Κάποια δεδομένα μπορούν να είναι ταυτόχρονα και απλά δεδομένα και μεταδεδομένα. Η επικεφαλίδα σε κάποιο κείμενο είναι τόσο μέρος του κειμένου, δηλ. δεδομένα, όσο και τίτλος του κειμένου, δηλ. μεταδεδομένα. • Τα δεδομένα και τα μεταδεδομένα μπορούν να αλλάξουν ρόλους. Ένα ποίημα, αυτό καθ' αυτό, είναι δεδομένα, αλλά αν το ποίημα αποτελεί τους στίχους σε ένα τραγούδι, ολόκληρο το ποίημα θα μπορούσε να επισυναφθεί σε ένα ηχητικό αρχείο ως μεταδεδομένα. Έτσι, η ερμηνεία εξαρτάται από ποια άποψη το βλέπει κανείς. • Είναι δυνατό να δημιουργηθούν μετα-μετα-...-μεταδεδομένα. Εφόσον, σύμφωνα με τον συνήθη ορισμό, τα μεταδεδομένα είναι δεδομένα, είναι δυνατό να δημιουργήσει κάποιος μεταδεδομένα για αυτά τα δεδομένα, έπειτα μεταδεδομένα που να περιγράφουν τα νέα μεταδεδομένα, κ.ο.κ. Παρόλο που αυτό το θέμα εκ πρώτης όψεως φαίνεται μονάχα φιλοσοφικό, εντούτοις είναι συχνά χρήσιμη η αρχειοθέτηση μεταδεδομένων που αφορούν άλλα μεταδεδομένα, π.χ. για να υπάρχει έλεγχος ως προς την προέλευση των μεταδεδομένων όταν συγχωνεύονται δύο έγγραφα. Τα πιο πάνω ισχύουν ανεξάρτητα από ορισμό που χρησιμοποιείται.


Μεταδεδομένα

138

Χρήση Η βασική χρησιμότητα των μεταδεδομένων είναι να επιταχύνουν και να εμπλουτίζουν την αναζήτηση πηγών. Η αναζήτηση με τη χρήση μεταδεδομένων γλιτώνει τον χρήστη από περίπλοκες και χρονοβόρες χειροκίνητες διαδικασίες φιλτραρίσματος πληροφοριών.

Είδη μεταδεδομένων Τα μεταδεδομένα διακρίνονται σε κατηγορίες ανάλογα με: • το περιεχόμενό τους. Μπορούν να περιγράφουν είτε την ίδια την πηγή, π.χ. όνομα και μέγεθος του αρχείου, ή το περιεχόμενο της πηγής, π.χ. "Το βίντεο δείχνει ένα αγόρι να παίζει ποδόσφαιρο." • τη μεταβλητότητά τους. Σε σχέση με την πηγή, τα μεταδεδομένα μπορούν να είναι είτε αμετάβλητα, π.χ. ο τίτλος ενός αρχείου δεν αλλάζει, ανεξάρτητα από το ποιο μέρος του αρχείου λαμβάνεται υπ' όψη, είτε μεταβλητά, π.χ. οι περιγραφές των σκηνών σε ένα βίντεο ποικίλλουν. • τη λογική συνάρτησή τους. Υπάρχουν τρία επίπεδα λογικής συνάρτησης, το ένα πάνω από το άλλο: κάτω βρίσκεται το υπο-συμβολικό επίπεδο που περιέχει τα ίδια τα απλά δεδομένα, στη μέση υπάρχει το συμβολικό επίπεδο όπου υπάρχουν μεταδεδομένα τα οποία περιγράφουν το περιεχόμενο των απλών δεδομένων, και πάνω το λογικό επίπεδο που περιέχει μεταδεδομένα τα οποία επιτρέπουν λογικούς συλλογισμούς βάσει του συμβολικού επιπέδου.

Μεταδεδομένα σε ψηφιακές βιβλιοθήκες Υπάρχουν τρεις κατηγορίες μεταδεδομένων που χρησιμοποιούνται συχνά για να περιγράψουν αρχεία σε μια ψηφιακή βιβλιοθήκη: 1. περιγραφικά - Πληροφορίες που περιγράφουν το περιεχόμενο του αρχείου, όπως εγγραφές καταλόγου σε MARC και βοηθήματα ανεύρεσης. Χρησιμοποιούνται για βιβλιογραφικούς σκοπούς και για αναζήτηση-ανάκτηση. 2. δομικά - Πληροφορίες που συνδέουν ένα αρχείο με άλλα αρχεία ώστε να αποτελούν λογικές μονάδες (π.χ. πληροφορίες που συνδέουν την κάθε εικόνα που υπάρχει σε ένα βιβλίο με τις υπόλοιπες εικόνες του βιβλίου). 3. διοικητικά - Πληροφορίες που χρησιμοποιούνται για τη διαχείριση του αρχείου ή τον έλεγχο πρόσβασης σε αυτό. Μπορούν να περιλαμβάνουν πληροφορίες για το πώς σαρώθηκε, το μορφότυπο φύλαξης, δικαιώματα πνευματικής ιδιοκτησίας, και πληροφορίες για τη μακροπρόθεσμη συντήρηση των ψηφιακών αρχείων.

Εξωτερικοί σύνδεσμοι • "Metacrap" [1] - Οι απόψεις του Cory Doctorow για τους περιορισμούς των μεταδεδομένων στο Διαδίκτυο (στα αγγλικά) Meta Meta Data Data [2] - Άρθρο του Ralph Kimball (στα αγγλικά) • Guidance and techniques for tagging and keywording images [3] - Άρθρο της Third Light Ltd Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το άρθρο metadata [2] [4] GNU FDL και την CC-BY-SA 3.0 . (ιστορικό/συντάκτες ).

[4]

της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την


Μεταδεδομένα

Παραπομπές [1] [2] [3] [4]

http:/ / www. well. com/ ~doctorow/ metacrap. htm http:/ / www. fortunecity. com/ skyscraper/ oracle/ 699/ orahtml/ dbmsmag/ 9803d05. html http:/ / www. thirdlight. com/ downloads/ Metadata_whitepaper. pdf http:/ / en. wikipedia. org/ wiki/ metadata

139


140

Μη ντετερμινιστικό πεπερασμένο αυτόματο Μη ντετερμινιστικό πεπερασμένο αυτόματο Στη θεωρία υπολογισμού, το μη ντετερμινιστικό πεπερασμένο αυτόματο (nondeterministic finite-state automaton ή NFA) είναι ένα πεπερασμένο αυτόματο που από μία κατάσταση, διαβάζοντας ένα σύμβολο εισόδου, μπορεί να μεταβεί σε μία ή και παραπάνω καταστάσεις, σε αντίθεση με το ντετερμινιστικό πεπερασμένο αυτόματο (DFA) που μπορεί να μεταβεί σε μία μόνο κατάσταση. Τα αυτόματα αυτά είναι πεπερασμένα, επειδή ο αριθμός των καταστάσεών τους είναι πεπερασμένος. Τα μη ντετερμιστικά πεπερασμένα αυτόματα μπορούν να αναγνωρίσουν μόνο κανονικές γλώσσες, όπως και τα ντετερμινιστικά πεπερασμένα αυτόματα.

Ορισμός Ένα μη ντετερμινιστικό πεπερασμένο αυτόματο είναι μια πεντάδα (Q, Σ, δ, q0, F) που αποτελείται από • ένα πεπερασμένο σύνολο καταστάσεων Q • ένα αλφάβητο εισόδου Σ • μια συνάρτηση μετάβασης , όπου Pow(Q) είναι το δυναμοσύνολο του Q. • μια αρχικής κατάσταση q0 και • ένα σύνολο τελικών καταστάσεων F, υποσύνολο του Q.

Πεπερασμένο σύνολο καταστάσεων Πρόκειται για ένα σύνολο πεπερασμένων στον αριθμό καταστάσεων. Μία κατάσταση ενός μη ντετερμινιστικού πεπερασμένου αυτόματου οδηγεί σε ένα υποσύνολο καταστάσεων (το οποίο μπορεί να είναι και το κενό) από το σύνολο αυτό, ανάλογα με το σύμβολο εισόδου στο αυτόματο. Οι καταστάσεις διακρίνονται σε τελικές και μη τελικές. Τέλος, η αρχική κατάσταση q0 είναι αυτή στην οποία βρίσκεται το αυτόματο αρχικά, δηλαδή πριν διαβάσει οποιαδήποτε είσοδο.

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

Συνάρτηση μετάβασης Η συνάρτηση μετάβασης είναι μια συνάρτηση με παραμέτρους μία κατάσταση και ένα σύμβολο εισόδου. Το πεδίο τιμών της είναι το δυναμοσύνολο του συνόλου, Q, των καταστάσεων, δηλαδή όλα τα δυνατά υποσύνολα του Q. Με άλλα λόγια, το αυτόματο, μπορεί από μία κατάσταση και με είσοδο ένα σύμβολο να μεταβεί σε παραπάνω από μία καταστάσεις. Μέσω της συνάρτησης μετάβασης καθορίζεται το πώς κινείται το αυτόματο σε κάθε περίπτωση, δηλαδή από κάθε κατάσταση με οποιοδήποτε σύμβολο από το αλφάβητο.


Μη ντετερμινιστικό πεπερασμένο αυτόματο Η

συνάρτηση

μετάβασης

μπορεί

141 να

επεκταθεί

από

τη

στη

, η οποία δέχεται ένα ζεύγος κατάστασης και συμβολοσειράς (αντί ενός συμβόλου μόνο) και το πεδίο τιμών της είναι πάλι το δυναμοσύνολο του Q. Δηλαδή, δεδομένης μιας αλφαβήτου Σ και ενός πεπερασμένου συνόλου καταστάσεων Q, αν

και

, τότε η παράσταση

σημαίνει ότι αν το αυτόματο βρίσκεται στην κατάσταση q1 και στη είσοδο διαβάσει τη συμβολοσειρά ab, τότε θα βρεθεί στην κατάσταση q2. Ένας πιο αυστηρός αναδρομικός ορισμός είναι ο παρακάτω: , όπου ε το κενό σύμβολο , όπου

συμβολοσειρά και

σύμβολο της

αλφαβήτου. Αυτή η νέα συνάρτηση μπορεί να επεκταθεί[1] στην

, όπου

ένα υποσύνολο καταστάσεων,

μια

συμβολοσειρά. Η συνάρτηση αυτή, δέχεται ένα οποιοδήποτε υποσύνολο καταστάσεων από το Q και μια οποιαδήποτε συμβολοσειρά από το Σ*. Αυτή η επεκτεταμένη συνάρτηση μετάβασης δείχνει σε ποιες καταστάσεις θα καταλήξει το αυτόματο αν ξεκινήσει από κάποιες και διαβάσει μια ακολουθία συμβόλων. Μια τέτοια συνάρτηση μετάβασης βοηθάει στην κατανόηση των μη ντετερμινιστικών πεπερασμένων αυτόματων, αφού αυτά κινούνται όχι από κατάσταση σε κατάσταση, αλλά από πολλές καταστάσεις σε πολλές καταστάσεις. Έτσι, αντί να εφαρμόζουμε την δ για κάθε κατάσταση ξεχωριστά, εφαρμόζουμε την για όλες τις καταστάσεις του υποσυνόλου μαζί.

Σύνολο τελικών καταστάσεων Το σύνολο των τελικών καταστάσεων είναι ένα υποσύνολο του Q με την ιδιότητα αν καταλήξει σε τουλάχιστον μία τέτοια κατάσταση, η είσοδος να γίνεται αποδεκτή από το αυτόματο. Διαφορετικά, δηλαδή, αν το αυτόματο δεν καταλήξει σε καμία τελική κατάσταση, τότε η είσοδος απορρίπτεται.

Λειτουργία Το μη ντετερμινιστικό αυτόματο λειτουργεί όπως και το αντίστοιχο ντετερμινιστικό με την διαφορά ότι αντί να μεταβαίνει από μία κατάσταση σε μόνο μία άλλη, μπορεί να μεταβεί και σε περισσότερες από μία καταστάσεις. Έτσι, ξεκινώντας από την αρχική κατάσταση, q0 και διαβάζοντας σύμβολα, δεν δημιουργείται μία διαδρομή από κατάσταση σε κατάσταση, αλλά πολλές. Αν μία από αυτές τις διαδρομές καταλήγει σε τελική κατάσταση, η ακολουθία των συμβόλων που διαβάστηκε από το αυτόματο ώστε να καταλήξει εκεί, γίνεται αποδεκτή.


Μη ντετερμινιστικό πεπερασμένο αυτόματο

142

Παράδειγμα Το αυτόματο του σχήματος αριστερά είναι ένα μη ντεντερμινιστικό πεπερασμένο αυτόματο. Είναι πεπερασμένο, από τη στιγμή που έχει πεπερασμένο αριθμό καταστάσεων (συγκεκριμένα, έχει τρεις καταστάσεις) και είναι μη ντετερμινιστικό από τη στιγμή που τουλάχιστον από μία κατάσταση μπορεί με ένα σύμβολο να μεταβεί σε παραπάνω από μία καταστάσεις. Συγκεκριμένα, από την αρχική κατάσταση Α και με σύμβολο "1" το αυτόματο μεταβαίνει στις καταστάσεις Β και C. Το σύνολο Q των καταστάσεών του είναι το {Α,Β,C}. Το αλφάβητο εισόδου είναι το σύνολο Σ={0,1}. Η αρχική κατάσταση είναι η q0=A. Το σύνολο των τελικών καταστάσεων είναι το F={C} και η συνάρτηση μετάβασης περιγράφεται από τις παρακάτω παραστάσεις: δ(Α,0)=

, δ(A,1)={B,C}

δ(Β,0)={Α} , δ(Β,1)= δ(C,0)={B} , δ(C,1)= Ο αντίστοιχος πίνακας για την περιγραφή της συνάρτησης μετάβασης είναι ο παρακάτω. 0 A

1 {B,C}

B {A} C {B}

Έστω, τώρα, ότι θέλουμε να δούμε αν το συγκεκριμένο αυτόματο αναγνωρίζει τη συμβολοσειρά "1010". Το αυτόματο, πριν διαβαστεί το πρώτο σύμβολο της συμβολοσειράς, βρίσκεται στην αρχική κατάσταση Α. Διαβάζοντας το πρώτο σύμβολο της εισόδου, το "1", μεταβαίνει στις καταστάσεις Β και C, αφού δ(A,1)={B,C}. Βρίσκεται, δηλαδή, και στις δύο καταστάσεις. Διαβάζει το δεύτερο σύμβολο της εισόδου, το "0", και από την Β (στην οποία βρισκόταν πριν) πάει στην A ενώ από C (στην οποία βρισκόταν πριν) πάει στην Β, δηλαδή . Eπομένως, μεταβαίνει στις καταστάσεις Α και Β. Στο επόμενο βήμα, διαβάζοντας το επόμενο σύμβολο, το "1", επειδή

μεταβαίνει στις A,Β,C,

σε όλες τις καταστάσεις του. Διαβάζει το τελευταίο σύμβολο "0" και από την Α, δεν πάει πουθενά ή πάει στο κενό (προσοχή, αυτό δεν σημαίνει ότι παραμένει στην ίδια κατάσταση), από την Β μεταβαίνει στην Α και από την C μεταβαίνει στην Β. Επομένως, το αυτόματο από τις καταστάσεις Α, Β και C με είσοδο το "0" κατέληξε στις καταστάσεις Α και Β. Καμία από αυτές δεν είναι τελική, επομένως, η συμβολοσειρά "1010" απορρίπτεται από το αυτόματο.

Παραπομπές [1] Στάθης Ζάχος, Αυτόματα και Τυπικές Γραμματικές, σελ. 23


143

Μηχανή αναζήτησης Μηχανή αναζήτησης Μια μηχανή αναζήτησης είναι μια εφαρμογή που επιτρέπει την αναζήτηση κειμένων και αρχείων στο Διαδίκτυο. Αποτελείται από ένα πρόγραμμα υπολογιστή που βρίσκεται σε έναν ή περισσότερους υπολογιστές στους οποίους δημιουργεί μια βάση δεδομένων με τις πληροφορίες που συλλέγει από το διαδίκτυο, και το διαδραστικό περιβάλλον που εμφανίζεται στον τελικό χρήστη ο οποίος χρησιμοποιεί την εφαρμογή από άλλον υπολογιστη συνδεμένο στο διαδίκτυο.

Εμπορική Εφαρμογή Οι μηχανές αναζήτησης χρησιμοποιούνται πολύ από το αγοραστικό κοινό παγκοσμίως με αποτέλεσμα να αποτελούν ένα σημαντικό μέρος στην κατανάλωση και την διαφήμιση. Στις Ηνωμένες Πολιτείες και στην Βρετανία το συνολικό κόστος διαφήμισης στο διαδίκτυο ξεπέρασε το συνολικό κόστος διαφήμισης στο ραδιόφωνο το 2006. Οι καταναλωτές ψάχνουν με 'λέξεις κλειδιά' για προϊόντα μέσω των μηχανών αναζήτησης. Οι εταιρίες που θέλουν να προβληθούν στις μηχανές αναζήτησης, πληθαίνουν, με μεγάλο ανταγωνισμό για τις πρώτες θέσεις στις ιστοσελίδες αποτελεσμάτων αναζήτησης, κάτι που οδήγησε στην ανάπτυξη ενός άλλου κλάδου, του search engine optimization (Βελτιστοποίηση για τις μηχανές αναζήτησης) που περιλαμβάνει τεχνικές κατασκευής και δικτύωσης ιστοσελίδων που να προσφέρουν καλύτερες θέσεις στα αποτελέσματα.

Γνωστές Μηχανές Αναζήτησεις Υπάρχουν πολλές μηχανές αναζήτησης με τις μηχανές αναζήτησης της εταιρίας Google (Google) και της Yahoo (Yahoo! Search) πρώτες σε χρήση. Άλλες γνωστές μηχανές αναζήτησεις από τη Microsoft η MSN Search και η Microsoft Live Search. Ελληνικές μηχανές αναζήτησης μεταξύ άλλων είναι αυτές της Forthnet, της Otenet, του Cleverlook και του Pathfinder.

Δείτε επίσης • • • • •

Google Yahoo Διαδικτυακό ρομπότ Βελτιστοποίηση για τις μηχανές αναζήτησης AMGEM Force (16 Languages)


144

Μηχατρονική Μηχατρονική Ο όρος Μηχατρονική είναι ένας σύγχρονος νεολογισμός που υποδηλώνει τον συνδυασμό των επιστημών της Μηχανολογίας, Ηλεκτρονικής - Ηλεκτρολογίας και Πληροφορικής. Μηχατρονική: = Μηχανολογία + Ηλεκτρονική + Πληροφορική Εφάμιλλος όρος για την Μηχατρονική είναι η Τεχνική Κυβερνητική - Technical Cybernetics. Σπανίως χρησιμοποιείται και ο όρος Μηχανοτρονική ή Ηλεκρομηχανολογικοί Αυτοματισμοί. Η Μηχατρονική θεωρείται εμπλουτισμός των κατά βάση μηχανολογικών συστημάτων με ηλεκτρονικά εξαρτήματα που αρκετά συχνά εμπεριέχουν λογισμικό, δηλαδή: Μηχατρονική είναι η συνεργεία τριών επιστημών • Μηχανολογία • Ηλεκτρονική/Ηλεκτρολογία • Πληροφορική με σκοπό την δημιουργία συστηματων που να απλοποιούν την παραγωγή.

Φιλοσοφία της Μηχατρονικής Στην φιλοσοφία της Μηχατρονικής, ο ενσωματωμένος υπολογιστής ελέγχου είναι το κεντρικό στοιχείο, και ο πυρήνας της τεχνολογίας η οποία την καθιστά την Μηχατρονική ένα μοναδικό τομέα. Ψηφιακά και αναλογικά κυκλώματα, μαζί με επενεργητές και επιστημονικά όργανα περιβάλλουν άμεσα τον υπολογιστή ελέγχου και λειτουργούν προσαρμοστικά μεταξύ του υπολογιστή και του ελεγχόμενου φυσικού συστήματος. Τα χαρακτηριστικά που διαφοροποιούν το κάθε σύγχρονο μηχανικό σύστημα, καθορίζονται σε μεγάλο βαθμό από την εφευρετικότητα και αποτελεσματικότητα του ενσωματωμένου σε αυτό λογισμικό. Τα παρεμβαλλόμενα στοιχεία υποστηρίζουν το λογισμικό αυτό παρέχοντας του τις τρέχουσες πληροφορίες από το ελεγχόμενο σύστημα και μεταφράζοντας τις εντολές του σε ενεργή παροχή διαμορφωμένης ισχύος.

Ιστορία Η Μηχατρονική επικεντρώνεται στη μηχανική, την ηλεκτρονική, την μηχανολογία συστημάτων ελέγχου, των ηλεκτρονικών υπολογιστών, τη μοριακή μηχανική (από νανοχημεία και Βιολογία), η οποία και σε συνδυασμό μεταξύ των, να καταστήσει την παραγωγή: • απλούστερη, • πιο οικονομική, • αξιόπιστη και ευέλικτη. Ο όρος "Μηχανοτρονική" επινοήθηκε για πρώτη φορά από τον Tetsuro Mori, ανώτερο μηχανικό της ιαπωνικής εταιρείας Yaskawa, το 1969. Η Μηχατρονική εναλλακτικά, μπορεί να αναφέρεται και ως η Επιστήμη των "Ηλεκτρομηχανολογικών συστημάτων" ή λιγότερο συχνά ως η Επιστήμη "ελέγχου και του αυτοματισμού της μηχανικής". Το 1982 επιτρέπεται από την εταιρεία η ελεύθερη χρήση του όρου. Η Μηχατρονική αποτελεί το άμεσο εκείνο υπόβαθρο για την έρευνα στο τεχνικό τομέα της Κυβερνητικής. Σημαντικές φυσιογνωμίες και χρονολογίες σταθμοί στην Κυβερνητική και κατ' επέκταση στην Μηχατρονική


Μηχατρονική υπήρξαν το 1936 από τον Άλαν Τούρινκ το 1948 από τον Νόρμπερτ Βίνερ και Μόρθυ (Morthy), με τις μηχανές ψηφιακού ελέγχου, που αρχικά αναπτύχθηκαν το 1946 ο Τηλεχειρισμός το 1951 από τον Γκερτζ (Goertz) καθώς και η ανώνυμη εταιρεία Bedford Associates που αναπτύχθηκε το 1968.

Ορισμοί Μηχατρονικής Επί του παρόντος υπάρχουν διάφοροι ορισμοί της Μηχατρονικής, ανάλογα με την περιοχή ενδιαφέροντος. Ειδικότερα, η UNESCO ορίζει για την Μηχατρονική ότι είναι: "Η συνεργιακή ολοκλήρωση της μηχανολογίας με την ηλεκτρονική και τον ευφυή υπολογιστή ελέγχου στον σχεδιασμό και την κατασκευή των προϊόντων και διαδικασιών." Ωστόσο ένας πιο ενδιαφέρων ορισμός είναι ότι Μηχατρονική είναι: "Η Μελέτη και κατασκευή των ευφυών μηχανικών συστημάτων." Κάτω από αυτή τη θεώρηση, η Μηχατρονική μπορεί να ερμηνευθεί ως "Η εφαρμογή πολύπλοκης διαδικασίας λήψης αποφάσεων κατά τη λειτουργία φυσικών συστημάτων."

Αντικείμενο Η Μηχατρονική όπως προαναφέρθηκε, πρόκειται να συγχωνεύσει τις πιο πάνω επιστήμες και να περιγράψει αντί διάφορων προτύπων ένα γενικό ολιστικό Μηχατρονικό σύστημα. Τα συστήματα της Μηχατρονικής έχουν το στόχο να μετατρέψουν με την τεχνολογία που τα διέπει: • Eπεξεργαστες • Ενεργοποιητές • Αισθητήρες κτλ την μορφή της ενέργειας αλλά και των υλικών, την μεταφορά τους και την περαιτέρω επεξεργασία τους καθώς και τη μεταφορά ή/και αποθήκευση των πληροφοριών.

Μηχατρονικό Σύστημα Ένα Μηχατρονικό σύστημα αποτελείται κυρίως από μηχανισμούς • Κίνησης, • Ελέγχου και • Αισθητήρες. Η παραδοσιακή Μηχανική αποτελείται μόνο από μηχανισμούς και ενεργοποιητές, και προαιρετικά μπορεί να ενσωματωθεί ο έλεγχος. Η Μηχατρονική ενσωματώνει όλες τις απαιτούμενες προϋπόθέσεις για έλεγχο κλειστού βρόχου και ως εκ τούτου και τους ανάλογους αισθητήρες Ένα Μηχατρονικό σύστημα είναι ένα σύστημα το οποίο ενσωματώνει την ψηφιακή επεξεργασία σήματος και την έκδοση του σήματος αυτού σε ένα τελικό σημείο δράσης μέσω ενός ενεργοποιητή, δημιουργώντας κινήσεις ή ενέργειες σχετικά με το σύστημα. Είναι ένα ολοκληρωμένο σύστημα με αισθητήρες, μικροεπεξεργαστές και ελεγκτές. Τα συστήματα Μηχατρονικής μπορούν να διαιρεθούν έτσι σε ομάδες λειτουργίας, να διαμορφωθούν σε εκείνους τους βρόχους αυτόματου ελέγχου και να αποτελέσουν μέρος των ενοτήτων με τα μηχανικά ηλεκτρικά - μαγνητικά - θερμικά - οπτικά στοιχεία τους και την τεχνολογία αισθητήρων, με σκοπό τη συλλογή των μετρημένων μεταβλητών της επιβλέπουσας κατάστασης, την ενεργοποίηση την κανονικοποίηση και τον έλεγχο καθώς επίσης και επεξεργασία και την πληροφορική στην επεξεργασία δεδομένων.

145


Μηχατρονική

Παραδείγματα Μηχατρονικών Συστημάτων • • • • • • •

1) Χειρισμός/συστήματα ρομπότ 2) Ενότητες εργαλειομηχανών 3) Ψηφιακές φωτογραφικές μηχανές 4) Κίνηση και έλεγχος φορέα CD/DVD Player 5) Ανεμογεννήτριες 6) Αντιολισθητικά συστήματα 7) Ηλεκτρονικά προγράμματα σταθερότητας οχημάτων

Ειδικά για τα δύο τελευταία παραδείγματα, τα ηλεκτρονικά και το λογισμικό αντικαθιστούν τα μικρότερης ακρίβειας, πιο ευπαθή και πιο ακριβά αναλογικά μηχανικά συστήματα με ψηφιακό ηλεκτρονικό έλεγχο, όπως τα συστήματα αντιεμπλοκής πέδησης (ABS) τα συστήματα ελέγχου μείγματος, προπορείας, σπινθιρισμού (ECU) και τα συστήματα ελέγχου ολίσθησης (ASP/ESP) στα αυτοκίνητα. Παγκοσμίως η μηχατρονική είναι αντικείμενο ειδίκευσης μηχανολόγων ή μηχανικών παραγωγής.

Εφαρμογές Η απλούστερη εφαρμογή αφορά στην δυναμική ανάλυση ενός μηχανικού συστήματος και τον (ενεργό, ημί ενεργό ή παθητικό) έλεγχό του. Οι πιο σημαντικές εφαρμογές της Μηχατρονικής είναι η ρομποτική, τα συστήματα μεταφορών, συστήματα παραγωγής, μηχανές CNC, και οι βιομηχατρονικές νανομηχανές. Η τελειότερη όμως εφαρμογή της Μηχατρονικής είναι το Ρομπότ. Πρέπει να σημειωθεί ότι η Ρομποτική είναι κλάδος της Μηχατρονικής. Ρομποτική είναι η τέχνη του σχεδιασμού και της κατασκευής επαναπρογραμματιζομένων στοιχείων συσκευών ευέλικτων και ικανών να εκτελούν διάφορες λειτουργίες. Το επίπεδο του αυτοματισμού είναι πολύ πιο ευέλικτο και δείχνει τις μελλοντικές τάσεις στην υπόλοιπη μηχατρονική. Η εφαρμογή των μηχατρονική στη μεταφορά λαμβάνει χώρα κατά το σχεδιασμό των ενεργητικών μηχανισμούς (π.χ. ενεργός αναστολή), τους κραδασμούς ελέγχου, μηχανισμούς σταθεροποίησης και αυτόνομη πλοήγηση. Στην κατασκευή, η Μηχατρονική έχει χρησιμοποιηθεί για μοντέλα διακριτών κατά περίπτωση συστημάτων και έχει υποβάλει αίτηση για το βέλτιστο σχεδιασμό των γραμμών παραγωγής, καθώς και τη βελτιστοποίηση των υφιστάμενων διαδικασιών. Επίσης, έχει συμβάλει στην αυτοματοποίηση των γραμμών παραγωγής και τη δημιουργία της έννοιας της ευέλικτης κατασκευής. Μηχατρονική είναι η ιστορία του ψηφιακού ελέγχου μηχανών. Σε αυτό το θέμα τις τελευταίες εξελίξεις είναι οι εξής: της ανάλυσης, ανίχνευσης και ελέγχου των κραδασμών και της θερμοκρασίας στην εργαλεία κοπής, των μεθόδων διάγνωσης και εργαλεία κοπής ταχεία προτυποποίηση, EDM λέιζερ και σύνθεση. Στο πεδίο αυτό γίνεται σύντομη εισαγωγή στην προσομοίωση δυναμικών μηχανικών συστημάτων, στον έλεγχο κατασκευών και ιδιαίτερα στην χρήση μεθόδων Ανάλυσης και Μοντελοποίησης: • • • • •

ευφυούς ελέγχου και συγκεκριμένα, σε μεθόδους οι οποίες στηρίζονται σε ασαφή λογική, νευρωνικά δίκτυα συναφείς υβριδικές τεχνικές. γενετικούς αλγορίθμους

Η βασική γνώση της τεχνικής δυναμικής καθώς και η δυνατότητα τουλάχιστον χρήσης ηλεκτρονικού υπολογιστή θεωρούνται αναγκαία . Καθώς τα συστήματα αυτά σπάνια πληρούν τις προυποθέσεις μιας μελέτης , το μαθηματικό μοντέλο που χρησιμοποιείται είναι πολύπλοκο (μη-γραμμικό), έχει ατέλειες κτλ. Για αυτο και χρησιμοποιούμε τα

146


Μηχατρονική προαναφερθέντα ευφυή συστήματα ελέγχου . Γενικότερες εφαρμογές • • • • •

Αυτοματισμού, και στον τομέα της ρομποτικής Σερβοϋδραυλική μηχανική Αισθητήρες και συστήματα ελέγχου Αυτοκίνητο Βιομηχανίες, στη σχεδίαση των υποσυστημάτων, όπως η αντι-εμπλοκή κατά την πέδηση Μηχανικών Ηλεκτρονικών Υπολογιστών, του σχεδιασμού μηχανισμών, όπως οι οδηγοί δίσκων

Παραλλαγές Μηχατρονικής Μια παραλλαγή του αναδυόμενου αυτού τομέα είναι η biomechatronics - Βιομηχατρονική, σκοπός της οποίας είναι η ενσωμάτωση μηχανικών μέρών με ένα ανθρώπινο ον, συνήθως με τη μορφή των αποσπώμενων συσκευών όπως exoskeleton. Αυτή είναι η "πραγματική ζωή" έκδοση του cyberware. Η Βιομηχατρονική είναι η εφαρμογή της μηχατρονικής για την επίλυση των προβλημάτων των βιολογικών συστημάτων, και ιδίως την ανάπτυξη νέων τύπων προθέσεων, χειρουργικών προσομοιωτών, τον έλεγχο της θέσης των ιατρικών πράξεων (π.χ. καθετήρες), αναπηρικές πολυθρόνες και χειρουργικές τηλεχειρισμός Επίσης η νανομηχανική είναι ένας τομέας που έχει επωφεληθεί από τις εξελίξεις στη μηχατρονική. Ένα πολύ προφανές παράδειγμα είναι η ανάπτυξη του σκληρού δίσκου.

Εφαρμοσμένη Μηχατρονική Εξαρτήματα Μηχανισμοί Στον τομέα των μηχανισμών, τα κυριότερα προβλήματα είναι • η μείωση της πολυπλοκότητας, • η κατάργηση των μηχανισμών και • η σύνθεση των επιμέρους Μηχατρονικών μηχανισμών. Η μείωση της πολυπλοκότητας σχετίζεται με τη μείωση του αριθμού των στοιχείων του μηχανισμού και τη χρήση ευφυών ελέγχου. Η κατάργηση των μηχανισμών περιλαμβάνει την άμεση και πιο πολύπλοκη χρήση των ενεργοποιητών και των στοιχείων ελέγχου .

Οι Ενεργοποιητές Για την λειτουργία ενός Μηχανισμού απαιτείται μια πηγή ενέργειας. Αρχικά, αυτή η πηγή ήταν ζωικής προέλευσης, στη συνέχεια προήλθε από την ισχύ που παράγεται από τη ροή του αέρα ή του νερού, και στη συνέχεια η παραγόμενη ενέργεια με ατμό, από μηχανές εσωτερικής καύσης και του εν τέλει γεννήτριες ηλεκτρικού ρεύματος. Για αν ειναι αυτή η δύναμη είναι ρυθμιζόμενη και να μπορεί να ελεγχθεί υπάρχουν οι ενεργοποιητές. Οι κυριότερες εξελίξεις της ενεργοποιητών στη Μηχατρονική είναι: Η άμεση διαχείριση με τη χρήση ηλεκτρομαγνητικών ενεργοποιητών και πιεζοηλεκτρικών ενεργοποιητών. Ένα ευρέως χρησιμοποιούμενο είδος των ενεργοποιητών οι ηλεκτρικοί κινητήρες, έχουν αναπτύξει νέα μαθηματικά μοντέλα στην έρευνα, νέα είδη διαχειρισης και νέες μορφές ελέγχου. Ένα είδος του ενεργοποιητή που έχει θα χρησιμοποιηθεί στο ευρέως σε ηλεκτροστατικούς ενεργοποιητές προ'ερχεται από το πεδίο της Νανομηχανικής

147


Μηχατρονική

Ο Έλεγχος Ένας χώρος αναπτυχθεί καλά στο Μηχανοτρονική είναι ο έλεγχος. Υπάρχουν δύο σημαντικές τάσεις: η χρήση των πλέον πρόσφατων τεχνικών της θεωρίας του αυτόματου ελέγχου και την ανάπτυξη ευφυών ελέγχου, η οποία επιδιώκει να βελτιώσει την αντίληψη του περιβάλλοντος και να αποκτήσει ένα καλύτερο εαυτό.Μερικά από τα πιο σημαντικά βήματα στον τομέα της αυτόματης ελέγχου είναι οι εξής: νευρωνικά δίκτυα, συρόμενη λειτουργία του ελέγχου, γεγονός διακριτά συστήματα, προσαρμοζόμενα ελέγχου, ασαφής λογική και σταθερό έλεγχο.

Οι Αισθητήρες Οι αισθητήρες είναι συσκευές που μπορούν να μετρήσουν την πρόοδο της εγκατάστασης ή το περιβάλλον. Οι αισθητήρες για την ενσωμάτωση των μηχανισμών είναι το αποτέλεσμα της χρήσης κλειστού βρόχου ελέγχων. Ένα καλά ανεπτυγμένο παράδειγμα είναι η χρήση τεχνητής όρασης, το οποίο χρησιμοποιείται για να καθορίσει τη θέση και τον προσανατολισμό του μηχανισμού, το περιβάλλον ή τα εργαλεία, ωστόσο, δεν είναι πάντα δυνατή η απευθείας μέτρηση μιας μεταβλητής η αξία του εκτιμάται από το καθεστώς του παρατηρητή και φίλτρα. Ένα πρόβλημα που έχει πρόσφατα κατευθύνεται η ανάπτυξη των αναφορικός \ emph (από σταθερό) να καθορίσουν τη θέση και τον προσανατολισμό στην πλοήγηση προβλήματα να επιλυθούν με τη βοήθεια των παγκόσμιων συστημάτων εντοπισμού θέσης (GPS, για σύντομα).

Υποενότητες Η εφαρμοσμένη Μηχατρονική σχηματοποιείται απο τις ακόλουθες επιστήμες με τις υποενότητες / θεματικές επιστημονικές ενότητες που τις χαρακτηρίζουν.

Μαθηματικά • • • •

Γραμμική άλγεβρα και Αναλυτική γεωμετρία Διαφορικές εξισώσεις Λογισμός - Απειροστικός λογισμός Αριθμητική Ανάλυση

Ηλεκτρισμός • Γραμμικά Συστήματα Αυτομάτου Ελέγχου • Ψηφιακά Συστήματα Αυτομάτου Ελέγχου • Δυναμικό Ηλεκτρικών και Ηλεκτρονικών συσκευών - PLC, FPGA

Μηχανική • Κινηματική • Θερμοδυναμική • Τεχνικό Σχέδιο

148


Μηχατρονική

Πληροφορική • • • •

Έννοιες και δομή Η/Υ - Προγραμματισμός Η/Υ Θεμελιώδη λειτουργικά και λογισμικά συστήματα Βάση δεδομένων Λογισμικά πραγματικού χρόνου

Άλλα • Χημεία • Τεχνολογία Υλικών - Μέταλλα, Πλαστικά

Δείτε επίσης • Universitat Politècnica de Catalunya • Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας

Ενδιαφέρων Σύνδεσμοι Μηχατρονικής στην Ελλάδα • Πρόγραμμα Μεταπτυχιακών Σπουδών στη Μηχατρονική [1] • Ινστιτούτο Μηχανοτρονικής [2] • Nέα ιστοσελίδα που αφορά την Μηχατρονική [3]

Σύνδεσμοι Εξωτερικού European Mechatronics and Intelligent Manufacturing [4] European Mechatronics for a new generation of production systems [5] Mechatronics at RPI [6] Mechatronics Wiki at Northwestern University [7] Mechatronics Research Lab at MIT [8] Mechatronics Engineering at the University of Waterloo [9] Mechatronics at National Instruments [10] Mechatronics at PI [11] MechatronicsZone [12] Mechatronics Education Center at Central Community College in Columbus, Nebraska, USA [13] What is Mechatronics ? [14] Mechatronics Zone [15] Mechatronics at Technical University of Cluj-Napoca [16] Mechatronics Systems Engineering at Simon Fraser University [17] Aerotech Pushes Mechatronics Envelope with Motion Systems [18] Micropositioning Meets Mechatronics [19] CSU Chico Mechatronic Engineering ABET accredited Bachelors Degree [20] TransMechatronic - The specialized portal about Mechatronics - Supporting measures of the German Federal Ministry for education and research [21] • Mechatronic Studies in German Universities [22] OrOverview: Mechatronics at German Universities [23] • KTB mechatronics [24] • • • • • • • • • • • • • • • • • •

149


Μηχατρονική

Παραπομπές [1] [2] [3] [4] [5]

http:/ / grad. teikoz. gr/ TUC/ http:/ / www. imtronics. cereteth. gr/ http:/ / www. mechatronics. com. gr/ / http:/ / www. eumecha. org/ http:/ / www. ist-world. org/ ProjectDetails. aspx?ProjectId=6f8f94b50cce4e8ba9edbe55f3c17aa9& SourceDatabaseId=7cff9226e582440894200b751bab883f [6] http:/ / mechatronics. rpi. edu/ [7] http:/ / hades. mech. northwestern. edu/ wiki/ [8] http:/ / mechatronics. mit. edu/ [9] http:/ / www. mechatronics. uwaterloo. ca/ [10] http:/ / www. ni. com/ mechatronics/ [11] http:/ / www. physikinstrumente. com/ en/ about/ innovation. php [12] http:/ / www. designnews. com/ mechatronics [13] http:/ / www. mechatronics-mec. org/ [14] http:/ / www. mechanicalengineering. cc/ mechanical-engineering-archives/ 224-What-is-Mechatronics-I. html [15] http:/ / www. mechatronicszone. com [16] http:/ / zeus. east. utcluj. ro/ mec/ mmfm/ index. html [17] http:/ / students. surrey. sfu. ca/ mechatronics [18] http:/ / designnews. com/ article/ CA6419963. html?nid=2333& rid=1072686502/ [19] http:/ / www. aerotech. com/ pressbox/ pdf/ 2018_MSD_AERO%20eprint. pdf [20] [21] [22] [23] [24]

http:/ / www. ecst. csuchico. edu/ __depts/ mem/ BS_Mechatronic_Engineering/ index. html http:/ / www. transmechatronic. de http:/ / www. mechatronics-net. de/ ?part=mechnetev& site=Mechatronik_eV_Studieren http:/ / www. mechatronik-portal. de/ mechatronik_studium. php http:/ / www. qfix-robotics. de/ index. php?page=home& lang=en

150


151

Μικροελεγκτής Μικροελεγκτής Ο μικροελεγκτής (αγγλικά, microcontroller) είναι ένας τύπος επεξεργαστή, ουσιαστικά μια παραλλαγή μικροεπεξεργαστή, ο οποίος μπορεί να λειτουργήσει με ελάχιστα εξωτερικά εξαρτήματα, λόγω των πολλών ενσωματωμένων υποσυστημάτων που διαθέτει. Χρησιμοποιείται ευρύτατα σε όλα τα ενσωματωμένα συστήματα (embedded systems) ελέγχου χαμηλού και μεσαίου κόστους, όπως αυτά που χρησιμοποιούνται σε αυτοματισμούς, ηλεκτρονικά καταναλωτικά προϊόντα (από ψηφιακές φωτογραφικές μηχανές έως παιχνίδια), ηλεκτρικές συσκευές και κάθε είδους αυτοκινούμενα τροχοφόρα οχήματα.

Διαφορές από τον μικροεπεξεργαστή Στους σύγχρονους μικροεπεξεργαστές για μη ενσωματωμένα συστήματα (πχ τους μικροεπεξεργαστές των προσωπικών υπολογιστών), δίνεται έμφαση στην υπολογιστική ισχύ. Η ευελιξία ανάπτυξης διαφορετικών εφαρμογών είναι μεγάλη, καθώς η λειτουργικότητα του τελικού συστήματος καθορίζεται από τα εξωτερικά περιφερειακά τα οποία διασυνδέονται με την κεντρική μονάδα (μικροεπεξεργαστή), η οποία δεν είναι εξειδικευμένη. Αντίθετα, στους μικροεπεξεργαστές για ενσωματωμένα συστήματα (μικροελεγκτές), οι οποίοι έχουν μικρότερες ή και μηδαμινές δυνατότητες συνεργασίας με εξωτερικά περιφερειακά, αυτού του είδους, η ευελιξία είναι περιορισμένη, καθώς και η υπολογιστική ισχύς. Οι μικροελεγκτές δίνουν έμφαση στο μικρό αριθμό ολοκληρωμένων κυκλωμάτων που απαιτείται για τη λειτουργία μιας συσκευής, το χαμηλό κόστος και την εξειδίκευση.[1] [2] Αναλυτικά, τα πλεονεκτήματα των μικροελεγκτών είναι:[3] • Αυτονομία, μέσω της ενσωμάτωσης σύνθετων περιφερειακών υποσυστημάτων όπως μνήμες και θύρες επικοινωνίας. Έτσι πολλοί μικροελεγκτές δεν χρειάζονται κανένα άλλο ολοκληρωμένο κύκλωμα για να λειτουργήσουν. • Η ενσωμάτωση περιφερειακών σημαίνει ευκολότερη υλοποίηση εφαρμογών λόγω των απλούστερων διασυνδέσεων. Επίσης, οδηγεί σε χαμηλότερη κατανάλωση ισχύος, μεγιστοποιώντας τη φορητότητα και ελαχιστοποιεί το κόστος της συσκευής στην οποία ενσωματώνεται ο μικροελεγκτής. • Χαμηλό κόστος. • Μεγαλύτερη αξιοπιστία, και πάλι λόγω των λιγότερων διασυνδέσεων. • Μειωμένες εκπομπές ηλεκτρομαγνητικών παρεμβολών και μειωμένη ευαισθησία σε αντίστοιχες παρεμβολές από άλλες ηλεκτρικές και ηλεκτρονικές συσκευές. Το πλεονέκτημα αυτό προκύπτει από το μικρότερο αριθμό και μήκος εξωτερικών διασυνδέσεων καθώς και τις χαμηλότερες ταχύτητες λειτουργίας. • Περισσότεροι διαθέσιμοι ακροδέκτες για ψηφιακές εισόδοους-εξόδους (για δεδομένο μέγεθος ολοκληρωμένου κυκλώματος), λόγω της μη δέσμευσής τους για τη σύνδεση εξωτερικών περιφερειακών. • Μικρό μέγεθος συνολικού υπολογιστικού συστήματος. Η βασική αρχιτεκτονική των μικροελεγκτών δεν διαφέρει από αυτή των κοινών μικροεπεξεργαστών, αν και στους πρώτους είναι απαντάται συχνά η αρχιτεκτονική μνήμης τύπου Harvard, η οποία χρησιμοποιεί διαφορετικές αρτηρίες σύνδεσης της μνήμης προγράμματος και της μνήμης δεδομένων (πχ οι σειρές AVR από την Atmel και PIC από την Microchip). Στους κοινούς μικροεπεξεργαστές συνηθίζεται η ενιαία διάταξη μνήμης τύπου von-Neumann.[1]


Μικροελεγκτής

Συνήθη υποσυστήματα Στον μικροεπεξεργαστή, το ολοκληρωμένο κύκλωμα που τον αποτελεί περιέχει μόνο την Λογική και Αριθμητική Μονάδα (ALU), στοιχειώδεις καταχωρητές (registers), προσωρινή μνήμη RAM πολύ υψηλής ταχύτητας (cache memory) και, κάποιες φορές, τον ελεγκτή μνήμης (memory controller). Όμως, για τη λειτουργία ενός πλήρους ενσωματωμένου υπολογιστικού συστήματος, απαιτούνται πολλά εξωτερικά υποσυστήματα και περιφερειακά. Τέτοια είναι: • Κύκλωμα συνδετικής λογικής (glue logic) για τη σύνδεση των εξωτερικών μνημών και άλλων περιφερειακών παράλληλης σύνδεσης στην αρτηρία δεδομένων (bus) του επεξεργαστή. • Μνήμη προγράμματος (τύπου ROM, FLASH, EPROM κλπ) η οποία περιέχει το λογισμικό του συστήματος. Σε κάποια μοντέλα, είναι δυνατό το κλείδωμα αυτής της μνήμης, μετά την εγγραφή της, ώστε να προστατευτεί το περιεχόμενό της από αντιγραφή. • Μεγάλη ποσότητα μνήμης RAM. • Μόνιμη μνήμη αποθήκευσης παραμέτρων λειτουργίας (τύπου EEPROM ή NVRAM) η οποία να μπορεί να γράφεται τον πυρήνα του μικροελεγκτή. Αυτή η μνήμη έχει, έναντι της FLASH, το πλεονέκτημα της δυνατότητας διαγραφής και εγγραφής οποιουδήποτε μεμονωμένου byte. • Κύκλωμα αρχικοποίησης (reset). • Διαχειριστή αιτήσεων διακοπής (interrupt request controller) από τα περιφερειακά. • Κύκλωμα επιτήρησης τροφοδοσίας (brown-out detection) το οποία παρακολουθεί την τροφοδοσία και αρχικοποιεί ολόκληρο το σύστημα όταν αυτή πέσει κάτω από τα ανεκτα όρια, προλαμβάνοντας έτσι την αλλοίωση των δεδομένων. • Κύκλωμα επιτήρησης λειτουργίας (watchdog timer) το οποίο αρχικοποιεί το σύστημα, αν αυτό εμφανίσει σημάδια δυσλειτουργίας λόγω κολλήματος (hang). • Τοπικό ταλαντωτή για την παροχή παλμών χρονισμού (clock). • Έναν ή περισσότερους χρονιστές-απαριθμητές υψηλής ταχύτητας (hardware timer-counter) για τη δημιουργία καθυστερήσεων, μέτρηση διάρκειας γεγονότων, απαρίθμηση γεγονότων και άλλων λειτουργιών ακριβούς χρονισμού. • Ρολόι πραγματικού χρόνου (Real Time Clock, RTC) το οποίο τροφοδοτείται από ανεξάρτητη μπαταρία και γι αυτό πρέπει να έχει πολύ χαμηλή κατανάλωση ρεύματος. • Σειρά ανεξάρτητων ψηφιακών εισόδων και εξόδων (Parallel Input-Output, PIO). Γενικά, όλες οι οικογένειες μικροελεγκτών ενσωματώνουν τα περισσότερα από τα παραπάνω περιφερειακά, με διαφοροποιήσεις κυρίως στην ύπαρξη ή μη εσωτερικής μνήμης προγράμματος και στο είδος της. Έτσι, υπάρχουν: • Μικροελεγκτές χωρίς μνήμη προγράμματος, οι οποίοι χαρακτηρίζονται ως ROM-less. Αυτοί παρέχουν πάντοτε μια παράλληλη αρτηρία (bus) δεδομένων, πάνω στην οποία συνδέονται εξωτερικές μνήμες προγράμματος και RAM. Τέτοιοι τύποι μικροελεγκτών προορίζονται για πιο ισχυρά υπολογιστικά συστήματα ελέγχου, με μεγαλύτερες απαιτήσεις μνήμης. • Μικροελεγκτές με μνήμη ROM, η οποία κατασκευάζεται με το λογισμικό της (Mask ROM) ή γράφεται μόνο μια φορά (One Time Programmable, OTP). Παρέχουν τη δυνατότητα πολύ χαμηλού κόστους, όταν αγοράζονται σε πολύ μεγάλες ποσότητες. • Μικροελεγκτές με μνήμη FLASH, οι οποία μπορούν συνήθως να προγραμματιστεί πολλές φορές. Αυτή είναι η πιο διαδεδομένη κατηγορία. Συχνά ο προγραμματισμός της μνήμης μπορεί να γίνει ακόμη και πάνω στο κύκλωμα της ίδιας της ενσωματωμένης (embedded) εφαρμογής (δυνατότητα In Circuit Programming, ISP). Αυτοί οι μικροελεγκτές έχουν ουσιαστικά αντικαταστήσει τους παλαιότερους τύπους EPROM που έσβηναν με υπεριώδη ακτινοβολία (από το ειδικό τζαμάκι).

152


Μικροελεγκτής

Πρόσθετες λειτουργίες Ανάλογα με την εφαρμογή για την οποία προορίζεται ένας μικροελεγκτής, μπορεί να περιέχει και: • Μία ή περισσότερες ασύγχρονες σειριακές θύρες επικοινωνίας (Universal Asynchronous Receiver Transmitter, UART). • Σύγχρονες σειριακές θύρες επικοινωνίας (πχ I2C, SPI, Ethernet). • Ολόκληρα υποσυστήματα για την άμεση υποστήριξη από υλικολογισμικό (hardware) των πιο σύνθετων πρωτοκόλλων επικοινωνίας όπως CAN, HDLC, ISDN, ADSL. • Μονάδα άμεσης εκτέλεσης πράξεων κινητής υποδιαστολής (Floating Point Processing Unit, FPU), η οποία είναι πάντοτε πιο γρήγορο από την ALU του επεξεργαστή. Τέτοιες μονάδες χαρακτηρίζουν τους μικροελεγκτές με δυνατότητες ψηφιακής επεξεργασίας σήματος (Digital Signal Processing, DSP). Τα τελευταία χρόνια, με την ευρύτατη διάδοση των φορητών συσκευών ήχου και εικόνας, παρατηρείται μια τάση σύγκλισης τωνν μικροελεγκτών με τους DSP.[4] • Περισσότερες από μία εισόδους για μετατροπή αναλογικού σήματος σε ψηφιακό (Analog to Digital converter, ADC). • Μετατροπέα ψηφιακού σε αναλογικό σήμα (Digital to Analog converter, DAC). • Ελεγκτή οθόνης υγρών κρυστάλλων (Liquid Crystal Display, LCD). • Υποσύστημα προγραμματισμού πάνω στο κύκλωμα (τύπου ISP, βλ. παραπάνω). Χάρη σε αυτό το κύκλωμα, είναι δυνατός ο επαναπρογραμματισμός (αναβάθμιση λογισμικού) της εφαρμογής, συνδέοντας στη συσκευή μια εξωτερική συσκευή προγραμματισμού (συνήθως σε θύρα UART RS232) ή ακόμη και από το διαδίκτυο, . Αυτή η δυνατότητα απαιτεί την προΰπαρξη λογισμικού υποδοχής (bootstrap) μέσα στη μνήμη προγράμματος και επομένως δεν μπορεί να γίνει σε τελείως άδεια μνήμη προγράμματος. • Υποσύστημα προγραμματισμού (τύπου ISP) και διάγνωσης (συνήθως είναι το καθιερωμένο πρότυπο JTAG). Χάρη σε αυτό, είναι δυνατός ο προγραμματισμός της μνήμης προγράμματος χωρίς να προαπαιτείται κάποιο πρόγραμμα υποδοχής. Γι αυτό το λόγο, είναι ιδιαίτερα χρήσιμο στον αρχικό προγραμματισμό, πχ κατά τη συναρμολόγηση, ή σε περίπτωση προβλήματος (bug) στο λογισμικό υποδοχής το οποίο να καθιστά αδύνατη την κανονική αναβάθμιση.

Διαδεδομένες κατηγορίες μικροελεγκτών Λόγω του ισχυρότατου ανταγωνισμού αλλά και της τάσης ενσωμάτωσης των μικροελεγκτών σε κάθε ηλεκτρική και ηλεκτρονική συσκευή, η βιομηχανία μικροελεγκτών έχει καταλήξει στην παραγωγή ανταγωνιστικών μοντέλων μαζικής παραγωγής καθώς και μικροελεγκτών για πιο εξειδικευμένες εφαρμογές. Έτσι διακρίνονται οι εξής κυρίως κατηγορίες: • Μικροελεγκτές (καμμιά φορά 4-bit αλλά συνήθως 8-bit) πολύ χαμηλού κόστους, γενικής χρήσης, με πολύ μικρό αριθμό ακροδεκτών (ακόμη και λιγότερους από 8). Σχεδιάζονται με έμφαση στη χαμηλή κατανάλωση ισχύος και την αυτάρκεια, ώστε να χρειάζονται ελάχιστα ή και καθόλου εξωτερικά εξαρτήματα και να μη μπορεί να αντιγραφεί εύκολα το εσωτερικό λογισμικό τους. Απουσιάζει η δυνατότητα επέκτασης της μνήμης τους. Μερικά μοντέλα είναι ευρέως γνωστά στους ερασιτέχνες ηλεκτρονικούς, όπως πχ οι περισσότεροι μικροελεγκτές των σειρών PIC (Microchip), AVR (Atmel) και 8051 (Intel, Atmel, Dallas κα). • Μικροελεγκτές (συνήθως 8-bit αλλά και 16 ή 32-bit) χαμηλού κόστους, γενικής χρήσης, με μέτριο έως σχετικά μεγάλο αριθμό ακροδεκτών. Διαθέτουν μεγάλο αριθμό κοινών περιφερειακών, όπως θύρες UART, I2C, SPI ή CAN, μετατροπείς αναλογικού σε ψηφιακό και ψηφιακού σε αναλογικό. Στους κατασκευαστές της Άπω Ανατολής (Ιαπωνία, Κορέα), συνηθίζεται η ενσωμάτωση ελεγκτών οθόνης υγρών κρυστάλλων και πληκτρολογίου. Μερικές φορές παρέχουν δυνατότητα εξωτερικής επέκτασης της μνήμης τους. • Μικροελεγκτές (κυρίως 32-bit) μέσου κόστους, γενικής χρήσης, με μεγάλο αριθμό ακροδεκτών. Χαρακτηρίζονται από έμφαση στην ταχύτητα εκτέλεσης εντολών, υψηλή αυτάρκεια περιφερειακών και μεγάλες δυνατότητες εσωτερικής ή εξωτερικής μνήμης προγράμματος (FLASH) και RAM. Στο χώρο αυτό

153


Μικροελεγκτής έχουν ισχυρή παρουσία οι αρχιτεκτονικές με υψηλή μεταφερσιμότητα λογισμικού (portability) από τον ένα στον άλλο κατασκευαστή. Πχ μεταξύ των μικροελεγκτών τύπου ARM ή MIPS, το σύνολο των βασικών εντολών που αναγνωρίζει η ALU είναι ακριβώς το ίδιο, μειώνοντας έτσι τις μεγάλες αλλαγές στο λογισμικό, όταν στο μέλλον ο πελάτης υιοθετήσει ένα μικροελεγκτή άλλου κατασκευαστή (αρκεί, φυσικά, να υποστηρίζει κι αυτός το σύνολο εντολών ARM ή MIPS, αντίστοιχα). • Μικροελεγκτές εξειδικευμένων εφαρμογών, οι οποίοι ενσωματώνουν συνήθως κάποιο εξειδικευμένο πρωτόκολλο επικοινωνίας το οποίο υλοποιείται πάντοτε σε hardware. Τέτοιοι μικροελεγκτές χρησιμοποιούνται σε τηλεπικοινωνιακές συσκευές όπως Modem. Η μεγάλη μερίδα πωλήσεων των μικροελεγκτών εξακολουθεί να αφορά αυτούς των 8 bit, καθώς είναι η κατηγορία με το χαμηλότερο κόστος και το μικρότερο μέγεθος λογισμικού για το ίδιο αποτέλεσμα, ιδίως επειδή οι σύγχρονες οικογένειες οκτάμπιτων μικροελεγκτών έχουν πολύ βελτιωμένες επιδόσεις σε σχέση με το παρελθόν.[5]

Γλώσσες προγραμματισμού και εργαλεία ανάπτυξης Η επιτυχία μιας οικογένειας μικροελεγκτών καθορίζεται σε μεγάλο βαθμό από τη διαθεσιμότητα και την ευχρηστία των σχετικών εργαλείων ανάπτυξης, όπως μεταφραστές από γλώσσες υψηλού επιπέδου σε γλώσσα κατανοητή από τον μικροελεγκτή (assembly), προγραμματιστές της εσωτερικής μνήμης και εργαλεία εκσφαλμάτωσης (debuggers). Στους μικροελεγκτές, τα εργαλεία αυτά δεν αποτελούνται ποτέ μόνο λογισμικό, καθώς δεν υπάρχει τυποποιημένος τρόπος επικοινωνίας με αυτούς. Στον τομέα των εργαλείων ανάπτυξης, δραστηριοποιούνται όχι μόνο οι ίδιοι οι κατασκευαστές μικροελεγκτών αλλά και εξειδικευμένες εταιρείες. Η πιο διαδεδομένη γλώσσα προγραμματισμού των μικροελεγκτών είναι η C, η C++ και οι παραλλαγές τους. Σε τμήματα του λογισμικού όπου απαιτείται ταχύτητα η μικρό μέγεθος χρησιμοποιούμενης μνήμης, μπορεί να χρησιμοποιείται η Assembly. Όμως οι μεγαλύτερες απαιτήσεις σε λειτουργικότητα και η ευκολία προγραμματισμού της C έναντι της assembly, σε συνδυασμό με την επάρκεια μνήμης των σύγχρονων μικροελεγκτών, έχουν γενικά εκτοπίσει την Assembly από τις περισσότερες εφαρμογές.

Κατασκευαστές Μερικοί από τους γνωστότερους κατακευαστές μικροελεγκτών είναι οι • • • • • • • • • •

ARM (δεν κατασκευάζει αλλά παραχωρεί δικαιώματα χρήσης του πυρήνα) Atmel Epson Freescale Semiconductor (πρώην Motorola) Hitachi Maxim (μετά την εξαγορά της Dallas) Microchip NEC Toshiba Texas Instruments

154


Μικροελεγκτής

Υποσημειώσεις Arnold (2001), σ. 4. Arnold (2001), σ. 6. Arnold (2001), σ. 5. *Giovino, Bill. Microcontrollers and DSPs – Will They Converge? (http://microcontroller.com/wp/MicrosDSPs/micros_dsps.htm), www.microcontroller.com (αγγλικά). Ανακτήθηκε 20/09/2009. [5] Gadre (2000), σ. 14. [1] [2] [3] [4]

Βιβλιογραφία • Arnold, Ken. Embedded controller hardware design, Newnes, 2001. ISBN 1-878707-52-3. • Gadre, Dhananjay V. Programming and customizing the AVR microcontroller (http://books.google.com/ books?id=qn6gaqbE0lMC&lpg=PA2&dq=microcontroller&as_brr=3&hl=el&pg=PA14#v=onepage&q=& f=false), McGraw-Hill, 2000. ISBN 0-07-134666-X. • Melear, Charles, Kilbane, Kevin. Problems solved by FLASH microcontrollers (http://microcontroller.com/wp/ mot_flash/Flash_Micros.htm), www.microcontroller.com (αγγλικά). Ανακτήθηκε 20/09/2009.

Δείτε επίσης • Κεντρική μονάδα επεξεργασίας

Εξωτερικοί σύνδεσμοι www.microcontroller.com (http://www.microcontroller.com) (αγγλικά)

155


156

Μικροεπεξεργαστής Μικροεπεξεργαστής Το άρθρο αυτό αποτελεί μία αναλυτική περιγραφή των σύγχρονων μικροεπεξεργαστών. Για μία πιο εισαγωγική και ευρύτερη κάλυψη του θέματος δείτε το άρθρο Κεντρική Μονάδα Επεξεργασίας. Ένας μικροεπεξεργαστής περιλαμβάνει τις περισσότερες ή όλες τις λειτουργίες μιας κεντρικής μονάδας επεξεργασίας (ΚΜΕ) ενός υπολογιστή σε ένα ενιαίο ολοκληρωμένο κύκλωμα (IC). Οι πρώτοι μικροεπεξεργαστές εμφανίστηκαν στις αρχές της δεκαετίας του 1970 και χρησιμοποιήθηκαν σε ηλεκτρονικές αριθμομηχανές. Η ενσωμάτωση των μικροεπεξεργατών σε άλλες συσκευές, όπως τερματικά, εκτυπωτές κλπ, ακολούθησε σχετικά γρήγορα. Με χρήση ενός οκτάμπιτου μικροεπεξεργαστή, κατασκευάστηκε ο πρώτος μικροϋπολογιστής γενικού σκοπού στα μέσα της δεκαετίας του 1970. Η ραγδαία ανάπτυξη της τεχνολογίας των μικροεπεξεργαστών που ακολούθησε συνδέεται με τις αυξημένες απαιτήσεις από γλώσσες προγραμματισμού υψηλού επιπέδου.

Ο Intel 4004, από τους πρώτους μικροεπεξεργαστές που κατασκευάστηκαν.

Μονάδες Ένας σύγχρονος μικροεπεξεργαστής αποτελείται από τις ακόλουθες μονάδες. • Μονάδα αποκωδικοποίησης (Decoding Unit) • Αριθμητική και Λογική Μονάδα (Arithmetic and Logical Unit, ALU): Η μονάδα στην οποία εκτελούνται μία προς μία οι αριθμητικές ή λογικές πράξεις, όπως υπαγορεύονται από τις εντολές που έχουν δοθεί στον υπολογιστή. • Καταχωρητές (Registers): Μικρά κελιά μνήμης στο εσωτερικό του επεξεργαστή, που χρησιμοποιούνται για την προσωρινή αποθήκευση των δεδομένων, καθώς αυτά υφίστανται επεξεργασία. Οι καταχωρητές διαφέρουν ανάλογα με τον τύπο του επεξεργαστή και τον κατασκευαστή, τόσο ως προς την οργάνωση όσο και ως προς τη χωρητικότητά τους. • Μονάδα ελέγχου (Control Unit): Ελέγχει τη ροή δεδομένων από και προς την ALU, τους καταχωρητές, τη μνήμη και τις περιφερειακές μονάδες εισόδου/εξόδου. • Μονάδα προσκόμισης (Fetch Unit): Μεταφέρει τις εντολές από τη μνήμη στον επεξεργαστή. • Μονάδα προστασίας (Protection Unit): Εξασφαλίζει το αποδεκτό της κάθε διεργασίας που εκτελεί ο επεξεργαστής, ώστε να μη τροποποιούνται δεδομένα που δεν πρέπει ή να μην εκτελούνται μη αποδεκτές εντολές, όπως π.χ. διαίρεση αριθμού με το μηδέν.


157

Μοντέλο Αποδοχής Τεχνολογίας Μοντέλο Αποδοχής Τεχνολογίας To Μοντέλο Αποδοχής της Τεχνολογίας (Technology Acceptance Model - ΤΑΜ) αναπτύχθηκε από τον Davis και την ομάδα του προκειμένου να εξηγήσει και να προβλέψει την αποδοχή της Τεχνολογίας της Πληροφορικής (Information Technology) από άτομα. Το ΤΑΜ υιοθετεί τις αιτιακές σχέσεις της Θεωρίας της δικαιολογημένης δράσης προκειμένου να εξηγήσει τις συμπεριφορές αποδοχής της Τεxνολογίας που εκδηλώνουν τα άτομα. Σύμφωνα με αυτό το μοντέλο, η Αντιλαμβανόμενη Ευκολία Χρήσης (Perceived Ease of Use) και η Αντιλαμβανόμενη Χρησιμότητα (Perceived Usefulness) από τη χρήση μιας συγκεκριμένης τεχνολογίας είναι οι δύο καθοριστικότεροι παράγοντες υιοθέτησής της. Ο Davis το 1989 όρισε την Aντιλαμβανόμενη Xρησιμότητα σαν «το βαθμό, στον οποίο ένα άτομο πιστεύει ότι χρησιμοποιώντας ένα συγκεκριμένο σύστημα θα αυξήσει την απόδοσή του στην εργασία του» και την Aντιλαμβανόμενη Eυκολία Xρήσης σαν «το βαθμό, στον οποίο ένα άτομο πιστεύει ότι η χρησιμοποίηση ενός συγκεκριμένου συστήματος δεν θα απαιτεί προσπάθεια». Τα υπόλοιπα δύο μέρη του TAM είναι η Στάση προς τη Χρήση (Attitude Towards Use) και η Συμπεριφορική Πρόθεση για Χρήση (Behavioural Intention to Use) (Lederer et al., 2000). Η Στάση προς τη Χρήση είναι η αξιολόγηση του χρήστη όσον αφορά την τοποθέτηση μιας συγκεκριμένης εφαρμογής πληροφοριακών συστημάτων. Η Συμπεριφορική Πρόθεση για Χρήση είναι ένα μέτρο της πιθανότητας ότι ένα άτομο θα χρησιμοποιήσει μια συγκεκριμένη εφαρμογή (Ajzen και Fishbein, 1980). H εξαρτημένη τέλος μεταβλητή του TAM είναι η Πραγματική Χρήση (Actual Use). Συνήθως μετράτε με τη χρονική διάρκεια ή τη συχνότητα χρήσης μια συγκεκριμένης εφαρμογής. Η μέχρι σήμερα έρευνα έχει αποδείξει την ισχύ του συγκεκριμένου μοντέλο, το οποίο είναι πια ευρέως αποδεκτό (Legris et al., 2003). Όσον αφορά την Αντιλαμβανόμενη Ευκολία Χρήσης και την Αντιλαμβανόμενη Χρησιμότητα στο Διαδίκτυο, η διεθνής βιβλιογραφία αναφέρει κάποια πρώτα συμπεράσματα (Davis et al., 1995). Τα συχνότερα προβλήματα όσον αφορά την ευκολία χρήσης είναι οι αργές συνδέσεις, η αδυναμία εύρεσης σελίδων που οι χρήστες γνωρίζουν ότι υπάρχουν, η αδυναμία οργάνωσης των σελίδων και των πληροφοριών που έχουν συγκεντρώσει, η αναξιοπιστία των ιστοσελίδων, οι ατελείς αναζητήσεις και η δυσκολία εύρεσης συγκεκριμένων πληροφοριών (Lightner et al., 1996). Η αντιλαμβανόμενη χρησιμότητα στο διαδίκτυο εντοπίζεται κυρίως στον όγκο της διαθέσιμης πληροφορίας, στη ευκολία αγοράς, και στην υποστήριξη συγκεκριμένων επιχειρησιακών λειτουργιών (Marketing, Έρευνα και Ανάπτυξη) (Lederer et al, 2000). Ο Taylor και Todd το 1995 μελέτησαν τον ρόλο της προηγούμενης εμπειρίας στους χρήστες. Συνέκριναν τα αποτελέσματα από έμπειρους και άπειρους χρήστες πηροφοριακών σστημάτων. Οι άπειροι χρήστες έδωσαν διαφορετική έμφαση στους παράγοντες της πρόθεσης και της χρήσης (Usage) απότι οι έμπειροι χρήστες. Υπήρχαν σημαντικές διαφορές μεταξύ των δύο ομάδων όσον αφορά την επιρροή της αντιλαμβανόμενης χρησιμότητας (PU), όπου ήταν και ο ισχυρότερος παράγοντας για την πρόθεση (Intention) για την άπειρη ομάδα, ενώ η αντιλαμβανόμενη ευκολία στη χρήση (PEOU) αποδείχθηκε πιο σημαντικός παράγοντας από την Στάση (Attitude). Αντίθετα, οι έμπειροι χρήστες έδωσαν μικρότερη βαρύτητα στην αντιλαμβανόμενη χρησιμότητα (PU). Υπήρχε μια ισχυρότερη σχέση μεταξύ της Συμπεριφορικής Πρόθεσης και συμπεριφοράς για τους έμπειρους χρήστες και αυτό γιατί είχαν στην Στάση τους εμπειρία που έχει κερδηθεί από προηγούμενες περιπτώσεις (Taylor και Todd, 1995). Ωστόσο, το πρώτο Μοντέλο Αποδοχής Τεχνολογίας δεν περιλάμβανε καθόλου κοινωνικούς παράγοντες οι οποίοι διαδραματίζουν σημαντικό ρόλο στη στάση ενός ατόμου. Γι’ αυτό το λόγω, ερευνητές πρότειναν ένα


Μοντέλο Αποδοχής Τεχνολογίας τροποποιημένο μοντέλο που θα αντισταθμίσει το προηγούμενο ελάττωμα. Οι Venkatesh και Davis (2000) πρότειναν το δεύτερο Μοντέλο Αποδοχής Τεχνολογίας (ΤΑΜ2), το οποίο περιελάμβανε έννοιες όπως: υποκειμενικά πρότυπα (subjective norm), εθελοντισμό (voluntariness), εικόνα (image) και νοητικές οργανωσιακές διαδικασίες (cognitive instrumental processes), σχετικότητα εργασίας (job relevance), ποιότητα απόδοσης (output quality), αποδειξιμότητα αποτελεσμάτων (result demonstrability) (Venkatesh και Davis, 2000).

Πηγές • Ajzen, I., Fishbein, M., 1980. « Understanding Attitudes and Predicting Social Behavior», Prentice-Hall Inc., Englewood Cliffs, NJ. • Davis, F.D., 1989. Perceived usefulness, perceived ease of use, and user acceptance of information technology. MIS Quarterly (13), 319–339. • Davis, F.D., Bagozzi, R.P., Warshaw, P.R., 1989. User acceptance of computer technology: a comparison of two theoretical models. Management Science 35 (8), 982–1003. • M. Fishbein, I. Ajzen, Belief, Attitude, Intention, and Behavior: An Introduction to Theory and Research, Addison- Wesley, Reading, MA, 1975. • Lederer, DJ Maupin, MP Sena και Y Zhuang, 2000, «Technology acceptance model and the World Wide Web», Decision Support Systems. • Venkatesh, V., & Davis, F. D. (2000). A theoretical extension of the technology acceptance model: Four longitudinal field studies. Management Science, (46:2), 186-204. • S. Taylor, P.A. Todd, Understanding information technology usage: a test of competing models, Information Systems Research 6 (2), 1995, pp. 144–176. • P Legris, J Ingham και P Collerette, (2003), « Why do people use information technology? A critical review of the technology acceptance model », Information and Management.

158


159

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


160

Μοντελοποίηση δεδομένων Μοντελοποίηση δεδομένων Στο χώρο της πληροφορικής με τον όρο μοντελοποίηση δεδομένων (αγγλ. Data modeling) καλείται η διαδικασία περιγραφής και αναπαράστασης όλων των εννοιών (δεδομένων) που συναντιούνται εντός ενός πεδίου εφαρμογής (που αποτελεί το πρόβλημα το οποίο πρέπει να επιλυθεί) με ένα μοντέλο δεδομένων.


161

Νόμος του Μουρ Νόμος του Μουρ Το 1965 ο συνιδρυτής της εταιρείας κατασκευής μικροεπεξεργαστών Intel, ο Γκόρντον Μουρ (Gordon Moore), προέβλεψε ότι ο αριθμός των τρανζίστορς σε ένα μικροεπεξεργαστή θα διπλασιάζεται κάθε περίπου δύο χρόνια. Η πρόβλεψη αυτή επαληθεύθηκε από την πραγματικότητα: Ο αριθμός των τρανζίστορς στους μικροεπεξεργαστές πράγματι διπλασιάζεται μέσα σε χρονικό διάστημα περίπου δεκαοκτώ μηνών. Η πρόβλεψη του Μουρ, ύστερα από την πρακτική επαλήθευσή της, επονομάστηκε Νόμος του Μουρ.


162

Ντετερμινιστικό πεπερασμένο αυτόματο Ντετερμινιστικό πεπερασμένο αυτόματο Το ντετερμινιστικό πεπερασμένο αυτόματο (deterministic finite state automaton ή DFA) είναι ένα υπολογιστικό μοντέλο, ένας εξιδανικευμένος νοητός υπολογιστής αποτελούμενος από έναν πεπερασμένο αριθμό καταστάσεων και μια συνάρτηση μετάβασης, μέσω της οποίας καθορίζονται οι μεταβάσεις από κατάσταση σε κατάσταση, ανάλογα με την είσοδο που δέχεται το αυτόματο. Η έξοδος του αυτόματου θα είναι είτε αποδοχή είτε απόρριψη της εισόδου. Επειδή οι καταστάσεις του αυτόματου είναι πεπερασμένου πλήθους και επειδή μέσω της συνάρτησης μετάβασης το αυτόματο μεταβαίνει σε μία μόνο κατάσταση, δηλαδή δεν υπάρχουν πάνω από μία επιλογές, το συγκεκριμένο υπολογιστικό μοντέλο είναι πεπερασμένο και ντετερμινιστικό. Τα ντετερμινιστικά πεπερασμένα αυτόματα αποτελούν μια κατηγορία των πεπερασμένων αυτόματων. Αναγνωρίζουν μόνο κανονικές γλώσσες.

Ορισμός Ένα ντετερμινιστικό πεπερασμένο αυτόματο είναι μια πεντάδα (Q, Σ, δ, q0, F) που αποτελείται από • ένα πεπερασμένο σύνολο καταστάσεων Q • ένα αλφάβητο εισόδου Σ • μια συνάρτηση μετάβασης • μια αρχικής κατάσταση q0 και • ένα σύνολο τελικών καταστάσεων F, υποσύνολο του Q.

Πεπερασμένο σύνολο καταστάσεων Πρόκειται για ένα σύνολο πεπερασμένων στον αριθμό καταστάσεων. Το αυτόματο κινείται μεταξύ αυτών των καταστάσεων ξεκινώντας από την αρχική κατάσταση q0. Στο σύνολο πεπερασμένων καταστάσεων εμπεριέχονται η αρχική κατάσταση και οι τελικές καταστάσεις F.

Αλφάβητο εισόδου Το αλφάβητο εισόδου του ντετερμινιστικού πεπερασμένου αυτόματου είναι ένα σύνολο συμβόλων που διαβάζει το αυτόματο. Σύμφωνα με την συνάρτηση μετάβασης και ανάλογα με το σύμβολο που διαβάζει κάθε φορά το αυτόματο, μεταβαίνει από την μία κατάσταση στη άλλη ή παραμένει στην ίδια.

Συνάρτηση μετάβασης Η συνάρτηση μετάβασης καθορίζει την επόμενη κατάσταση στην οποία θα μεταβεί το αυτόματο, ανάλογα με το σύμβολο που διαβάζει κάθε φορά. Η συνάρτηση μετάβασης, δ, έχει ως παραμέτρους την κατάσταση στην οποία βρίσκεται το αυτόματο και το σύμβολο που διαβάζει. Ως έξοδο δίνει μία και μόνο μία κατάσταση. Το πεδίο ορισμού της είναι όλα τα ζεύγη κατάστασης-συμβόλου, , και το πεδίο τιμών της είναι το σύνολο των πεπερασμένων καταστάσεων Q. Για παράδειγμα, η παράσταση

σημαίνει ότι αν το αυτόματο βρίσκεται στην κατάσταση q1 και

διαβάσει το σύμβολο α, θα μεταβεί στην κατάσταση q2.


Ντετερμινιστικό πεπερασμένο αυτόματο

163

Η συνάρτηση μετάβασης μπορεί να περιγραφεί με έναν πίνακα, όπου η πρώτη στήλη θα έχει ως στοιχεία τις καταστάσεις του αυτόματου, η πρώτη γραμμή θα έχει ως στοιχεία τα σύμβολα της αλφαβήτου και όλα τα υπόλοιπα κελιά θα έχουν ως στοιχείο την κατάσταση στην οποία μεταβαίνει το αυτόματο σύμφωνα με την συνάρτηση μετάβασης με είσοδο την κατάσταση που βρίσκεται στην ίδια γραμμή με αυτή του κελιού και το σύμβολο που βρίσκεται στην ίδια στήλη με αυτή του κελιού. Για παράδειγμα, μια συνάρτηση μετάβασης για την οποία ισχύουν τα εξής: δ(q0,a) = q0, δ(q0,b) = q1 δ(q1,a) = q1, δ(q1,b) = q0 μπορεί να εκφραστεί με τον πίνακα a

b

q0 q0 q1 q1 q1 q0

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

Λειτουργία Το ντετερμινιστικό πεπερασμένο αυτόματο αρχικά βρίσκεται στην κατάσταση q0, δηλαδή στην αρχική κατάσταση. Διαβάζει το πρώτο σύμβολο της εισόδου και, σύμφωνα με την συνάρτηση μετάβασής του, μεταβαίνει στην αντίστοιχη κατάσταση. Από αυτή την κατάσταση, διαβάζει το επόμενο σύμβολο της εισόδου και πάλι σύμφωνα με την συνάρτηση μετάβασης μεταβαίνει στην επόμενη κατάσταση. Η διαδικασία αυτή επαναλαμβάνεται μέχρι να διαβαστεί όλη η είσοδος από το αυτόματο. Αν το αυτόματο καταλήξει σε τελική κατάσταση, τότε η συμβολοσειρά της εισόδου γίνεται δεκτή. Διαφορετικά, απορρίπτεται.


Ντετερμινιστικό πεπερασμένο αυτόματο

164

Παράδειγμα Στο διάγραμμα απεικονίζεται ένα αυτόματο. Οι καταστάσεις του είναι οι q0, q1 και q2. Η αρχική κατάσταση είναι η q0. Το αυτόματο του παραδείγματος έχει μόνο μία τελική κατάσταση, την q1. To αλφάβητο εισόδου αποτελείται από τα σύμβολα a και b. Επομένως, • Q = {q0, q1, q2} • Σ = {a, b} • F = {q1} Η συνάρτηση μετάβασης είναι η

Παράδειγμα πεπερασμένου ντετερμινιστικού αυτόματου που αναγνωρίζει συμβολοσειρές που τελειώνουν με το σύμβολο b ακολουθούμενο από μηδενικό ή άρτιο αριθμό a συμβόλων

a

b

q0 q0 q1 q1 q2 q1 q2 q1 q1

Έστω ότι η είσοδος του αυτόματου είναι η συμβολοσειρά aabba. Το αυτόματο αρχικά βρίσκεται στην κατάσταση q0. Διαβάζοντας το πρώτο σύμβολο της συμβολοσειράς, που είναι το a, το αυτόματο θα παραμείνει στην κατάσταση q0. Διαβάζοντας το επόμενο σύμβολο, που είναι πάλι το a, πάλι το αυτόματο μένει στην ίδια κατάσταση. Με το επόμενο σύμβολο b, το αυτόματο μεταβαίνει στην κατάσταση q1. Διαβάζοντας το επόμενο σύμβολο, που είναι πάλι το b, το αυτόματο θα παραμείνει στην εκεί. Και με το τελευταίο σύμβολο της συμβολοσειράς, το αυτόματο θα πάει από την κατάσταση q1 στην q2, η οποία δεν είναι τελική, οπότε η συγκεκριμένη συμβολοσειρά απορρίπτεται. Με την ίδια διαδικασία, η συμβολοσειρά aabab ή η ababbaa γίνονται αποδεκτές, δηλαδή αναγνωρίζονται από το αυτόματο. Γενικά, το συγκεκριμένο αυτόματο αναγνωρίζει κάθε συμβολοσειρά που τελειώνει με το σύμβολο b ή ακολουθείται από άρτιο αριθμό συμβόλων a. Επομένως, η τυπική γλώσσα που γίνεται αποδεκτή από το αυτόματο του παραδείγματος είναι αυτή που αποτελείται από αυτές τις λέξεις. Ή αλλιώς, το αυτόματο του παραδείγματος αναγνωρίζει την γλώσσα που περιγράφεται από την κανονική έκφραση a*b(b+a(a+b))*. Επειδή η συγκεκριμένη τυπική γλώσσα αναγνωρίζεται από κάποιο ντετερμινιστικό πεπερασμένο αυτόματο (όπως, αυτό του παραδείγματος) είναι κανονική γλώσσα.


Ντετερμινιστικό πεπερασμένο αυτόματο

165

Ελαχιστοποίηση Ένα ντετερμινιστικό πεπερασμένο αυτόματο μπορεί να είναι ισοδύναμο, δηλαδή να αναγνωρίζει την ίδια γλώσσα, με ένα άλλο ντετερμινιστικό πεπερασμένο αυτόματο που αποτελείται από λιγότερες καταστάσεις από το αρχικό. Έτσι, το αρχικό αυτόματο μπορεί να ελαχιστοποιηθεί σε ένα άλλο ντετερμινιστικό πεπερασμένο αυτόματο που να έχει το δυνατόν λιγότερες καταστάσεις και να είναι ισοδύναμο με το αρχικό. Η ελαχιστοποίηση ενός ντετερμινιστικού πεπερασμένου αυτόματου γίνεται με την συγχώνευση ισοδύναμων καταστάσεων, σύμφωνα με συγκεκριμένα κριτήρια. Ο καθορισμός των καταστάσεων που θα συγχωνευθούν, δεν γίνεται με επιλογή αυτών, αλλά με αποκλεισμό των διακρίσιμων μεταξύ τους καταστάσεων. Τα κριτήρια σύμφωνα με τα οποία δύο καταστάσεις είναι διακρίσιμες είναι: • Οι δύο καταστάσεις δεν είναι του ίδιου τύπου, δηλαδή τελικές ή μη τελικές. • Το αυτόματο, όταν βρίσκεται στις δύο αυτές καταστάσεις, θα μεταβεί τουλάχιστον σε ένα ζεύγος διακρίσιμων μεταξύ τους καταστάσεων, με είσοδο το ίδιο σύμβολο, για όλα τα σύμβολα της αλφαβήτου. Για την διαδικασία της ελαχιστοποίησης ενός ντετερμινιστικού πεπερασμένου αυτόματου, βοηθάει η χρήση ενός πίνακα στον οποίο σημειώνονται οι συγκρίσεις κάθε ζεύγους καταστάσεων.

Παράδειγμα

Το αρχικό αυτόματο προς ελαχιστοποίηση, που αναγνωρίζει τη γλώσσα 0*10*. Οι διπλά κυκλωμένες καταστάσεις είναι τελικές.

Το ντετερμινιστικό πεπερασμένο αυτόματο του σχήματος έχει καταστάσεις ισοδύναμες και μπορεί να ελαχιστοποιηθεί. Ο βοηθητικός πίνακας έχει στην αριστερή στήλη και στην κάτω γραμμή τις καταστάσεις του αυτόματου, όπως παρακάτω. Εφαρμόζοντας το πρώτο κριτήριο, διαχωρίζονται οι τελικές από τις μη τελικές καταστάσεις και στον πίνακα μπαίνει ένα "Χ" στο κελί που βρίσκεται στην γραμμή της μίας κατάστασης και την στήλη της άλλης, για κάθε σύγκριση μεταξύ τελικής και μη τελικής κατάστασης. b c X X d X X e X X f

X X X a b c

d e

Σ'αυτήν την φάση, έχοντας αποκλείσει την ένωση τελικών καταστάσεων με μη τελικές, αυτές που ενδέχεται να συγχωνευθούν (χωρίς να είναι σίγουρο ακόμα, αφού δεν έχει εφαρμοστεί το δεύτερο κριτήριο) είναι οι καταστάσεις στα ζεύγη (a,b), (d,c), (e,c), (e,d), (f,a) και (f,b). Το δεύτερο κριτήριο εφαρμόζεται μόνο στα ζεύγη των οποίων οι καταστάσεις δεν έχουν σημειωθεί ως διακριτές. Από το κάθε ένα τέτοιο ζεύγος, παράγονται άλλα ζεύγη τόσα, όσα είναι και τα σύμβολα της αλφαβήτου που δέχεται το αυτόματο. Αν οι καταστάσεις έστω και ενός παραγόμενου ζεύγους είναι διακριτές, τότε και οι καταστάσεις του αρχικού ζεύγους είναι διακριτές και σημειώνεται ένα "Χ" στο αντίστοιχο κελί του βοηθητικού πίνακα. Η διαδικασία αυτή επαναλαμβάνεται μέχρι που δεν θα σημειωθεί επιπλέον κελί. • Για το ζεύγος (a,b): Με αφετηρία την κατάσταση "a" και είσοδο το σύμβολο "0", το αυτόματο μεταβαίνει στην κατάσταση "b". Δηλαδή, δ(a,0)=b.


Ντετερμινιστικό πεπερασμένο αυτόματο Με αφετηρία την κατάσταση "b" και είσοδο το σύμβολο "0", το αυτόματο μεταβαίνει στην κατάσταση "a". Δηλαδή, δ(b,0)=a. Έτσι, το ένα παραγόμενο ζεύγος είναι το (b,a). Με αφετηρία την κατάσταση "a" και είσοδο το σύμβολο "1", το αυτόματο μεταβαίνει στην κατάσταση "c". Δηλαδή, δ(a,1)=c. Με αφετηρία την κατάσταση "b" και είσοδο το σύμβολο "1", το αυτόματο μεταβαίνει στην κατάσταση "d". Δηλαδή, δ(b,1)=d. Έτσι, το άλλο παραγόμενο ζεύγος είναι το (c,d). Και για τα δύο νέα ζεύγη, δεν έχει σημειωθεί ότι οι καταστάσεις τους είναι διακριτές. Επομένως, ούτε το αρχικό ζεύγος (a,b) σημειώνεται. • Για το ζεύγος (d,c): Με είσοδο το σύμβολο "0", το παραγόμενο ζεύγος είναι το (e,e). Επομένως, και από τις δύο καταστάσεις, το αυτόματο καταλήγει στην ίδια κατάσταση. Με είσοδο το σύμβολο "1", το παραγόμενο ζεύγος είναι το (f,f). Και από τις δύο καταστάσεις, το αυτόματο μεταβαίνει στην ίδια κατάσταση. Προφανώς, μία κατάσταση δεν είναι διακριτή από τον εαυτό της. Επομένως, το αρχικό ζεύγος (d,c) δεν σημειώνεται ως ζεύγος με διακριτές μεταξύ τους καταστάσεις. • Το ίδιο ακριβώς συμβαίνει και για τα ζεύγη (e,c) και (e,d). Οπότε, δεν σημειώνονται. • Για το ζεύγος (f,a): Με είσοδο το "0", το παραγόμενο ζεύγος είναι το (f,b), το οποίο δεν είναι σημειωμένο στον βοηθητικό πίνακα. Με είσοδο το "1", το παραγόμενο ζεύγος είναι το (f,c), το οποίο είναι σημειωμένο ως ζεύγος με διακριτές καταστάσεις. Από την στιγμή που, τουλάχιστον με ένα από τα σύμβολα της αλφαβήτου, παράγεται ζεύγος που έχει διακριτές μεταξύ τους καταστάσεις, το αρχικό ζεύγος (f,a) σημειώνεται κι αυτό. • Για το ζεύγος (f,b): Με είσοδο το "0", το παραγόμενο ζεύγος είναι το (f,a). Με είσοδο το "1", το παραγόμενο ζεύγος είναι το (f,d). Εδώ και τα δύο νέα ζεύγη έχουν διακριτές μεταξύ τους καταστάσεις. Επομένως, και οι καταστάσεις f και b είναι διακρίσιμες. Ο βοηθητικός πίνακας, με την εφαρμογή του δεύτερου κριτήριου για μία επανάληψη (καθώς το δεύτερο κριτήριο επαναλαμβάνεται μέχρι να μην σημειωθεί κανένα ζεύγος) είναι ο εξής.

166


Ντετερμινιστικό πεπερασμένο αυτόματο

167

b c X X d X X e X X f Χ Χ X X X a b c

d e

Με την ίδια διαδικασία, το δεύτερο κριτήριο εφαρμόζεται ξανά για τα ζεύγη (d,c), (e,c) και (e,d) που έχουν απομείνει. Διαπιστώνεται ότι κανένα από αυτά τα ζεύγη δεν σημειώνεται και έτσι η φάση του καθορισμού των καταστάσεων που θα συγχωνευθούν τελειώνει. Από τον πίνακα φαίνεται ότι οι ισοδύναμες καταστάσεις είναι οι a-b, d-c, e-d και e-c. Αφού, η d είναι ισοδύναμη με την c και η c ισοδύναμη με την e, είναι αναμενόμενο (όπως άλλωστε επαληθεύεται) να είναι και η d ισοδύναμη με την e. Στο σύνολο {e,d,c} οι καταστάσεις είναι ανά δύο ισοδύναμες μεταξύ τους. Επομένως, θα συγχωνευθούν και οι τρεις σε μία. Το νέο ντετερμινιστικό πεπερασμένο αυτόματο του σχήματος, είναι το ελαχιστοποιημένο αυτόματο του προηγούμενου σχήματος.

Βιβλιογραφία • Michael Sipser, Εισαγωγή στη θεωρία υπολογισμού, 2007 • Harry R. Lewis - Χρίστος Χ. Παπαδημητρίου, Στοιχεία Θεωρίας Υπολογισμού


168

Περιφερειακή συσκευή Περιφερειακή συσκευή Η περιφερειακή συσκευή ονομάζεται κάθε συσκευή που συνδέεται με το κεντρικό σύστημα, δεν αποτελεί μέρος αυτού και εξαρτάται περισσότερο ή λιγότερο από το σύστημα. Οι περιφερειακές συσκευές διευρύνουν τις δυνατότητες του συστήματος, αλλά δεν επηρεάζουν την επεξεργαστική ισχύ (π.χ. εκτυπωτές, σαρωτές, μικρόφωνα κλπ.).

Επισκόπηση Δεν είναι πάντα απολύτως σαφές αν μια συσκευή συγκαταλέγεται στις περιφερειακές ή είναι μέρος του υπολογιστή. Μια κάρτα σύλληψης βίντεο σε έναν υπολογιστή δεν είναι μέρος αυτού αλλά βρίσκεται μέσα στο κουτί του. Ωστόσο αν κάτι μπορεί να θεωρηθεί περιφερειακή ή όχι συσκευή είναι περισσότερο θέμα ονοματολογίας και κατηγοριοποίησης, και δεν είναι σημαντικό ζήτημα. Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το άρθρο Peripheral [2] [1] GNU FDL και την CC-BY-SA 3.0 . (ιστορικό/συντάκτες ).

Παραπομπές [1] http:/ / en. wikipedia. org/ wiki/ Peripheral

[1]

της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την


169

Πληροφορική Πληροφορική Το άρθρο αυτό αφορά τον γνωστικό κλάδο που σχετίζεται με την «επιστήμη υπολογιστών». Για το γνωστικό πεδίο που σχετίζεται με τη «βιβλιοθηκονομία» δείτε το άρθρο επιστήμη πληροφορίας.

Η πληροφορική συνήθως συμπεριλαμβάνει την επιστήμη υπολογιστών και την αξιοποιεί για την παραγωγή, διαχείριση, αποθήκευση, μετάδοση και εκμετάλλευση πληροφορίας. Η πληροφορική είναι η επιστήμη που ερευνά την κωδικοποίηση, διαχείριση και μετάδοση συμβολικών αναπαραστάσεων γνώσεων και πληροφοριών. Επίσης εξετάζει τη σχεδίαση, υλοποίηση και βελτιστοποίηση αυτοματοποιημένων διατάξεων, συσκευών, υπηρεσιών και συστημάτων συλλογής, αποθήκευσης, επεξεργασίας, εξόρυξης και ανταλλαγής των εν λόγω αναπαραστάσεων. Η πληροφορική σχετίζεται πολύ στενά με την επιστήμη υπολογιστών, διότι η αυτοματοποιημένη υλοποίηση των μεθόδων της βασίστηκε από την πρώτη στιγμή στους ηλεκτρονικούς υπολογιστές. Επιστημονικά όμως έχει έναν ευρύτερο σκοπό που δεν περιορίζεται σε συγκεκριμένες τεχνολογικές επιλογές. Για παράδειγμα, ο αλγόριθμος της δυαδικής αναζήτησης μπορεί να εφαρμοστεί και σε τηλεφωνικό κατάλογο χειρωνακτικά, ενώ ένα πρωτόκολλο επικοινωνίας μπορεί να εφαρμοστεί ακόμη και σε σήματα καπνού. Η πληροφορική επομένως, αναλόγως με το επίπεδο αφαίρεσης, μπορεί να μελετηθεί είτε ανεξάρτητα από τις τεχνολογικές της συνιστώσες, είτε ως ένα ενιαίο με αυτές επιστημονικό πεδίο. Ο όρος «πληροφορική» υπονοεί επιπροσθέτως και τη διερεύνηση φυσικών διεργασιών επεξεργασίας πληροφοριών (βλ. γνωσιακή επιστήμη). Ωστόσο πολλές φορές (κυρίως στον αγγλοσαξονικό κόσμο) ο όρος επιστήμη υπολογιστών (αγγλ. «computer science») χρησιμοποιείται με μία ευρεία έννοια, ταυτόσημη περίπου της πληροφορικής (αγγλ. «informatics»). Τελείως αντίστοιχα, ενώ στην Ελλάδα έχει επικρατήσει ο όρος πληροφορικός για την περιγραφή του κατάλληλα καταρτισμένου επιστήμονα, στον αγγλοσαξονικό κόσμο επικρατεί ο όρος επιστήμονας υπολογιστών. Η κατάσταση περιπλέκεται από το γεγονός ότι η επιστήμη υπολογιστών χρησιμοποιείται εναλλακτικά και με μια πιο στενή έννοια, η οποία περιλαμβάνει μόνο τη θεωρητική πληροφορική και τα μαθηματικά της θεμέλια. Σε αυτή την περίπτωση, συνήθως θεωρείται πως η πληροφορική συμπεριλαμβάνει τη μηχανική λογισμικού, τα υπολογιστικά συστήματα και τη μηχανική υπολογιστών (δείτε π.χ. το [6]), ενώ η επιστήμη υπολογιστών όχι.

Ιστορικό Η ιστορία της πληροφορικής ξεκινά με ποικίλες προσπάθειες κατασκευής υπολογιστικών μηχανών με στόχο την αυτοματοποίηση αριθμητικών υπολογισμών, πολύ πριν από την ανάπτυξη των σύγχρονων ψηφιακών υπολογιστών. Η επιστήμη υπολογιστών εμφανίστηκε ως πεδίο των διακριτών μαθηματικών κατά τη δεκαετία του 1930. Στη συνέχεια, ο ENIAC (1946) υπήρξε ο πρώτος επαναπρογραμματιζόμενος ηλεκτρονικός υπολογιστής γενικού σκοπού. Οι υπολογιστές που προηγήθηκαν του ENIAC ήταν είτε μηχανικές κατασκευές


Πληροφορική ειδικού σκοπού (π.χ. μηχανισμός των Αντικυθήρων), είτε ηλεκτρομηχανολογικές κατασκευές (π.χ. Ζ3), είτε ηλεκτρονικές συσκευές που δεν είχαν όμως καθολικές δυνατότητες υπολογισιμότητας (π.χ. Colossus). Από τα τέλη της δεκαετίας του 1950, οπότε καθιερώθηκε η αρχιτεκτονική φον Νόιμαν των σύγχρονων ψηφιακών υπολογιστών, η αυτονομημένη πλέον πληροφορική άρχισε να αναπτύσσεται σε μεγάλο βαθμό ανεξάρτητα από τις ίδιες τις μηχανές. Αυτό σταδιακά έχει οδηγήσει σε εξελίξεις που πολλοί εκλαμβάνουν συνολικά ως «επανάσταση της πληροφορίας» και «κοινωνία της γνώσης». Σήμερα η πληροφορική ασχολείται με ένα ευρύ φάσμα θεμάτων, όπως η ανάπτυξη αλγορίθμων για την αποτελεσματική επίλυση προβλημάτων, η κατασκευή και βελτίωση συστημάτων λογισμικού και υλικού υψηλής απόδοσης, η ταχεία και ασφαλής διακίνηση πληροφοριών μέσω τηλεπικοινωνιακών δικτύων, η δημιουργία συστημάτων διαχείρισης δεδομένων, η διερεύνηση του τρόπου με τον οποίο ο άνθρωπος διατυπώνει συλλογισμούς, η προσομοίωση της λειτουργίας του ανθρώπινου εγκεφάλου κλπ. Έτσι, η πληροφορική συνδέεται άμεσα με όλες τις θετικές επιστήμες, αλλά και με πολλές άλλες όπως η φιλοσοφία, η ψυχολογία, η γλωσσολογία, η νομική, η ιατρική, τα οικονομικά και η διοίκηση επιχειρήσεων.

Χαρακτηριστικά O διεπιστημονικός αυτός χαρακτήρας της πληροφορικής, από κοινού με τις σταθερές θεωρητικές βάσεις ανάπτυξής της, προσδίδουν σε αυτήν ευελιξία και πλήθος δυνατοτήτων για διεύρυνση των πεδίων έρευνας σε πολλούς τομείς της ανθρώπινης δραστηριότητας. Από ορισμένους έχει υποστηριχθεί ότι η πληροφορική, με κεντρικό επιστημονικό άξονα τις έννοιες της πληροφορίας, του υπολογισμού και του αυτοματισμού, συνθέτει σε ένα διακριτό σύνολο τις μεθοδολογικές παραδόσεις των θετικών επιστημών («μαθηματική» προσέγγιση), των φυσικών επιστημών («εμπειρική» προσέγγιση) και των επιστημών μηχανικών (προσέγγιση «μηχανικού»)[1] . Ακόμα έχει διατυπωθεί η άποψη πως η έρευνα για τον φυσικό κόσμο, η οποία κατά παράδοση διακρίνεται μεθοδολογικά σε «θεωρητικές» προσεγγίσεις (κομψές, αφηρημένες, στηριγμένες σε απλουστευτικές υποθέσεις και λογικούς κανόνες) και σε «πειραματικές» προσεγγίσεις (εστιασμένες στον θόρυβο, στην τυχαιότητα και στα σφάλματα του πραγματικού κόσμου), με την πληροφορική συμπληρώνεται από μία τρίτη προσέγγιση βασισμένη στην in silico προσομοίωση φυσικών φαινομένων. Η προσέγγιση αυτή συνθέτει τις ιδιότητες και ενσωματώνει τα χαρακτηριστικά και των δύο προηγούμενων[2] . Για περισσότερα στοιχεία δείτε τα άρθρα που αφορούν την επιστήμη υπολογιστών, τα πληροφοριακά συστήματα και τις τεχνολογίες πληροφοριών και επικοινωνίας.

Ετυμολογία Το 1957 επινοήθηκε ο όρος informatik από τον Γερμανό επιστήμονα Καρλ Στάινμπαχ, ο οποίος εξέδωσε μία εργασία ονόματι Informatik: Automatische Informationsverarbeitung («Πληροφορική: Αυτόματη Επεξεργασία Πληροφοριών»)[3] . Από εκεί προέκυψε η αγγλική λέξη informatics (=πληροφορική) η οποία είναι συνώνυμη του προϋπάρχοντος στα αγγλικά όρου computer science (=επιστήμη υπολογιστών). Ωστόσο η επιστήμη υπολογιστών κάποιες φορές κατανοείται ως πιο περιορισμένο επιστημονικό πεδίο, με αποκλειστικά θεωρητικό και μαθηματικό προσανατολισμό. Πάντως στα γερμανικά η λέξη informatik αποτελεί την ορθή μετάφραση του αγγλικού computer science. Το 1962 επινοήθηκε ο ομόηχος όρος informatique από τον Γάλλο Φιλίπ Ντρέυφους[4] , ως συνδυασμός των λέξεων information (=πληροφορία) και automatic (=αυτόματη), προκειμένου να περιγραφεί η επιστήμη της αυτόματης επεξεργασίας πληροφοριών. Από τα γαλλικά ο όρος πέρασε στις υπόλοιπες λατινογενείς γλώσσες και, τελικά, στα ελληνικά ως πληροφορική. Η κατάληξη (-ique στα γαλλικά, -ics στα αγγλικά, -ική στα ελληνικά) επιλέχθηκε ώστε να ταιριάζει με προϋπάρχοντα ονόματα επιστημονικών πεδίων αλλά και πρακτικών εφαρμογών (π.χ. φυσική, πολιτική, τακτική κλπ).

170


Πληροφορική

Εκπαίδευση Στην Ελλάδα, σε επίπεδο ανώτατης εκπαίδευσης, τα πανεπιστημιακά τμήματα με τίτλο «Επιστήμης Υπολογιστών», «Πληροφορικής» και «Μηχανικών Πληροφορικής» έχουν παρόμοιο πρόγραμμα σπουδών, μπορούν όμως να ανήκουν σε διαφορετικές σχολές (Θετικών Επιστημών, Οικονομικών ή Πολυτεχνεία). Η διάρκεια σπουδών είναι τέσσερα ή πέντε έτη (πέντε στο Πολυτεχνείο). Ορισμένα τμήματα έχουν πιο διακλαδικό χαρακτήρα, όπως π.χ. τα τμήματα «Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής» τα οποία εστιάζουν στην τομή πληροφορικής και ηλεκτρονικής μηχανικής, τα τμήματα «Πληροφορικής και Τηλεπικοινωνιών» ή «Μηχανικών Πληροφορικής και Τηλεπικοινωνιών» τα οποία εστιάζουν στην τομή πληροφορικής και τηλεπικοινωνιών κοκ. Τα τμήματα σε σχολές Οικονομικών (με τίτλους όπως «Εφαρμοσμένης Πληροφορικής») συνήθως επικεντρώνονται στην ανάπτυξη και εφαρμογή προϊόντων πληροφορικής για την αντιμετώπιση επιχειρηματικών αναγκών. Η εμφάνιση πανεπιστημιακών τμημάτων «Πληροφορικής» στην Ελλάδα έγινε το 1980, με την ίδρυση του Τμήματος Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής [5] της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών και, στη συνέχεια, το 1984, με το Τμήμα Επιστήμης Υπολογιστών [6] της Σχολής Θετικών Επιστημών του Πανεπιστημίου Κρήτης. Τμήματα με παρόμοιους ή πανομοιότυπους τίτλους υπάρχουν και σε ΑΤΕΙ, ενώ μία λίστα των ανάλογων τμημάτων μπορεί να βρεθεί στην κατάλληλη ενότητα του άρθρου κατάλογος ελληνικών τμημάτων ανώτατης εκπαίδευσης. Τα περισσότερα από αυτά τα τμήματα διαθέτουν και μεταπτυχιακό πρόγραμμα σπουδών, ενώ σε άλλες χώρες υπάρχουν και ομοειδή τμήματα ανώτατης εκπαίδευσης με τριετή προπτυχιακή φοίτηση.

Πηγές [1] Know your Discipline: Teaching the Philosophy of Computer Science (http:/ / informingscience. org/ jite/ documents/ Vol6/ JITEv6p105-122Tedre266. pdf) [2] Flake Gary William, The Computational Beauty of Nature, 2000, The MIT Press [3] Karl Steinbuch Eulogy - Bernard Widrow, Reiner Hartenstein, Robert Hecht-Nielsen (http:/ / citeseer. ist. psu. edu/ cache/ papers/ cs2/ 334/ http:zSzzSzhelios. informatik. uni-kl. dezSzeuology. pdf/ unknown. pdf) [4] Dreyfus, Phillipe. L’informatique. Gestion, Paris, Jun 1962, pp. 240–41 [5] http:/ / www. ceid. upatras. gr [6] http:/ / www. csd. uoc. gr

Εξωτερικοί σύνδεσμοι • Ένωση Ελλήνων Πληροφορικών, Αξιολόγηση Προγραμμάτων Σπουδών Πληροφορικής (http://review.epe. org.gr) • Σύνδεσμος Επιχειρήσεων Πληροφορικής και Επικοινωνιών Ελλάδας (http://www.sepe.gr/) • Πανεπιστήμιο Ιωαννίνων, Γενικά για την πληροφορική (http://zeus.cs.uoi.gr/previous_public_html/ old-public_html/Department/GR/About.html) • Πανεπιστήμιο του Εδιμβούργου, What does informatics mean? (http://www.dai.ed.ac.uk/homes/cam/ informatics.shtml)

171


172

Προγραμματισμός Προγραμματισμός Το σύνολο των διαδικασιών σύνταξης ενός υπολογιστικού προγράμματος για την πραγματοποίηση εργασιών ή για την επίλυση ενός δεδομένου προβλήματος. Ο προγραμματισμός περιλαμβάνει επίσης τον έλεγχο του προγράμματος για την επαλήθευση της ακρίβειάς του, και την προπαρασκευή των οδηγιών με τις οποίες ένας υπολογιστής θα εκτελέσει τις εργασίες που καθορίζονται στις προδιαγραφές του προγράμματος. Θεμελιώδη ρόλο στον υπολογιστικό προγραμματισμό διαδραματίζουν οι χιλιάδες γλώσσες προγραμματισμού, δηλαδή οι κώδικες επικοινωνίας απαραίτητοι για τη δημιουργία ενός προγράμματος.

Δείτε επίσης • Γλώσσες προγραμματισμού • Προγραμματιστής


173

Προεπεξεργαστής Προεπεξεργαστής Στην επιστήμη των υπολογιστών ο προεπεξεργαστής είναι ένα πρόγραμμα υπολογιστή το οποίο επεξεργάζεται τα δεδομένα που του δίνονται και παράγει πηγαίο κώδικα για επεξεργασία από κάποιο άλλο πρόγραμμα (ή άλλον προεπεξεργαστή). Το πόσα και ποια δεδομένα επεξεργάζεται εξαρτάται από το είδος του προεπεξεργαστή.

Γενικά Η ανάγκη χρήσης προεπεξεργαστών προέκυψε από την ανάγκη επαναχρησιμοποίησης τμημάτων πηγαίου κώδικα χωρίς να ξαναγράφονται από την αρχή αλλά με τη χρήση λέξεων κλειδιών. Αυτή η διαδικασία δεν είναι απαραίτητο να ενσωματώνεται στον μεταγλωττιστή καθώς δυσκολεύει και την αποσφαλμάτωση (debugging). Πρακτικά οι περισσότεροι εξειδικευμένοι σε γλώσσες προγραμματισμού προεπεξεργαστές "περνούν" το αποτέλεσμα όχι σε κείμενο αλλά σε μια συμβολική γλώσσα ειδική για τον συγκεκριμένο μεταγλωττιστή αλλά σχεδόν πάντα υπάρχει η δυνατότητα εξαγωγής σε κείμενο. Φυσικά όλα εξαρτώνται από τον προεπεξεργαστή και τις εντολές που υπάρχουν για αυτόν μέσα στο πηγαίο κείμενο.

Λεξικολογικοί προεπεξεργαστές Οι προεπεξεργαστές αυτού του επιπέδου εκτελούν απλές αντικαταστάσεις (στο βαθμό που απαιτούν μόνο λεξικολογική ανάλυση), αναζητώντας μέσα στο κείμενο του πηγαίου κώδικα λέξεις κλειδιά και τις αντικαθιστούν με άλλες λέξεις. Είναι κυρίως προγράμματά αντικατάστασης μακροεντολών.

Προεπεξεργαστής C Είναι το πιο κοινό παράδειγμα προεπεξεργαστή αυτού του τύπου. Αναζητά μέσα στο κείμενο γραμμές κώδικα που ξεκινάνε με τον χαρακτήρα "#" και τις χρησιμοποιεί σαν εντολές γι αντικατάσταση. Επειδή δεν χρησιμοποιεί καμία γνώση για τη γλώσσα που είναι γραμμένος ο πηγαίος κώδικας ούτε για τη γλώσσα για την οποία θα χρησιμοποιηθεί το αποτέλεσμα, έχει υποστεί αρκετές κριτικές[1] και πολλές γλώσσες πολλές γλώσσες αναγκάστηκαν να ενσωματώσουν αρκετές από τις δυνατότητές του. O προεπεξεργαστής C "περνάει" τον πηγαίο κώδικα από πολλές φάσεις. Οι βασικές φάσεις είναι: • η αντικατάσταση των σχολίων που υπάρχουν μέσα στον πηγαίο κώδικα με κενά. Η γραμμή #ifdef _WIN32 // _WIN32 is defined by all Windows 32 compilers, but not by others.

μετατρέπεται σε: #ifdef _WIN32 • η ενοποίηση γραμμών κώδικα που, παρόλο που αποτελούν μία γραμμή, έχουν διαχωριστεί (για λόγους ευκολίας ανάγνωσης) με ειδικούς χαρακτήρες. • η ενσωμάτωση μέσα στον κώδικα άλλου πηγαίου κώδικα από αρχείο: Η εντολή


Προεπεξεργαστής #include <stdio.h> επιβάλλει στον προεπεξεργαστή να ενσωματώσει το αρχείο "stdio.h" μέσα στο κείμενο του πηγαίου κώδικα. • η μεταγλώττιση υπό όρους Η εντολή:</pre> #ifdef _WIN32 // _WIN32 is defined by all Windows 32 compilers, but not by others. #include <windows.h> #else #include <unistd.h> #endif

</pre> επιβάλλει στον προεπεξεργαστή να ενσωματώσει το αρχείο "stdio.h" μέσα στο κείμενο του πηγαίου κώδικα[2] .

Συντακτικοί προεπεξεργαστές Οι συντακτικοί προεπεξεργαστές πρωτοεμφανίστηκαν με την οικογένεια γλωσσών Lisp. Ο ρόλος τους είναι να μετασχηματίσουν τα δενδροειδείς δομές σύνταξης σύμφωνα με διάφορους, προκαθορισμένους από το χρήστη, κανόνες. Σε μερικές γλώσσες προγραμματισμού, οι κανόνες γράφονται στην ίδια τη γλώσσα όπως στη Lisp και την OCaml. Σε μερικές χρησιμοποιείται εξωτερική γλώσσα όπως συμβαίνει με την XML που χρησιμοποιεί την XSLT.

Προεπεξεργαστές γενικής χρήσης Οι περισσότεροι προεπεξεργαστές είναι εξειδικευμένοι στην προ-επεξεργασία κάποιων συγκεκριμένων δεδομένων όπως ο προεπεξεργαστής της C.

m4 Ο m4 είναι βασικά επεξεργαστής μακροεντολών αλλά χρησιμοποιείται και σαν προεπεξεργαστής. Είναι ένας πολύ γενικού τύπου προεπεξεργαστής με "ισχυρά" χαρακτηριστικά. Στις περισσότερες γλώσσες προγραμματισμού η εντολές είναι κυρίως εντολές γραμμής (αν και μπορούν να επεκταθούν σε πολλαπλές γραμμές όμως μόνο με τη χρήση ειδικών χαρακτήρων στο τέλος της γραμμής που οι προεπεξεργαστές αναλαμβάνουν να τις ενοποιήσουν). Ο m4 παρέχει τη δυνατότητα να χρησιμοποιηθεί και σε περιπτώσεις που ούτε το πηγαίο κείμενο ούτε το αποτέλεσμα της προ-επεξεργασίας να χρειάζονται "εντολές σε μία γραμμή". Δείτε επίσης: m4 (γλώσσα προγραμματισμού)

php Η php είναι και προεπεξεργαστής που χρησιμοποιείται για να επεξεργάζεται (μερικώς) αρχεία html. Η php ελέγχει αν το πηγαίο αρχείο περιέχει ειδικές εντολές για την ίδια (γραμμές που ξεικούν με το "<?php" ή "<script language=php> " και κλείνουν τελικά με "?>" ή "</script>") και επεξεργάζεται το ενδιάμεσο κείμενο ενσωματώνοντας στο αρχείο html το αποτέλεσμα. Παράδειγμα απλής χρήσης της php ως προεπεξεργαστή για αρχεία html είναι: <html> <head> <title>Η σελίδα μου</title> </head> <body>

174


Προεπεξεργαστής <b> <?php echo("Σελίδα υπό κατασκευή!"); ?> </b> </ br> <?php echo("Περάστε αργότερα."); ?> </body> </html> το οποίο μετατρέπει το κείμενο της σελίδας σε <html> <head> <title>Η σελίδα μου</title> </head> <body> <b> Σελίδα υπό κατασκευή! </b></ br> <?php echo("Περάστε αργότερα."); ?> </body> </html> και το αποστέλλει στον αναγνώστη της σελίδας. (αυτό με τη σειρά του μπορεί να περάσει σε άλλον προεπεξεργαστή όπως οι προεπεξεργαστές αρχείων asp. H ίδια η php έχει πλέον τη δυνατότητα να μεταβιβάζει το αρχείο σε προεπεξεργαστή αρχείων asp πριν τα επιστρέψει στον εξυπηρετητή για περαιτέρω επεξεργασία ή αποστολή στον επισκέπτη της ιστοσελίδας). Το προηγούμενο παράδειγμα θα εμφανίσει στη σελίδα το: Σελίδα υπό κατασκευή! Περάστε αργότερα.

Υποσημειώσεις [1] Προεπεξεργαστής C (http:/ / gcc. gnu. org/ onlinedocs/ cpp/ Overview. html#Overview) (αγγλικά) [2] Αρχική επεξεργασία (http:/ / gcc. gnu. org/ onlinedocs/ cpp/ Initial-processing. html#Initial-processing) (αγγλικά)

175


176

Προσωρινή μνήμη (υπολογιστές) Προσωρινή μνήμη (υπολογιστές) Με τον όρο προσωρινή μνήμη ή ενδιάμεση μνήμη (αγγλ.: buffer) αναφερόμαστε στη χρήση που κάνει ένα πρόγραμμα υπολογιστή (π.χ. το λειτουργικό σύστημα) μιας περιοχής της μνήμης για προσωρινή αποθήκευση δεδομένων που μετακινούνται συνεχόμενα από και προς αυτήν. Έτσι μία εισερχόμενη ροή δεδομένων (π.χ. από κάποιο οπτικό μέσο αποθήκευσης) τοποθετείται εκεί μέχρι κάποιος «καταναλωτής» (π.χ. ένα πρόγραμμα) να τα προσπελάσει, οπότε αφαιρούνται από την προσωρινή μνήμη. Η υλοποίηση της προσωρινής μνήμης συνήθως είναι ευθύνη του εκάστοτε σχεδιαστή λογισμικού (π.χ. των μηχανικών που αναπτύσσουν ένα λειτουργικό σύστημα) και γίνεται με κατάλληλη δέσμευση κύριας μνήμης, αλλά σε ορισμένες περιπτώσεις μιλάμε και για προσωρινή μνήμη σε χαμηλότερο επίπεδο λειτουργίας (π.χ. στα κυκλώματα ελέγχου ενός σκληρού δίσκου), άρα η υλοποίησή της εμπίπτει στην αρμοδιότητα των σχεδιαστών του υλικού.


177

Στατική ανάλυση Στατική ανάλυση Στην επιστήμη υπολογιστών, στατική ανάλυση, στατική ανάλυση κώδικα ή στατική ανάλυση προγράμματος (Αγγλ. static analysis, static code analysis, static program analysis), είναι η ανάλυση ενός προγράμματος που γίνεται χωρίς να εκτελεστεί το πρόγραμμα (η ανάλυση προγράμματος που γίνεται με εκτέλεσή του λέγεται δυναμική ανάλυση). Στις περισσότερες περιπτώσεις η ανάλυση γίνεται σε κάποιο επίπεδο πηγαίου κώδικα και πολλές φορές σε αντικειμενικό κώδικα. Ο όρος συνήθως αναφέρεται στην ανάλυση που γίνεται με κάποιο αυτόματο εργαλείο, ενώ η ανάλυση προγράμματος από άνθρωπο λέγεται κατανόηση προγράμματος. Η ανάλυση που μπορεί να γίνει από αυτόματα εργαλεία ποικίλλει από αυτά που εξετάζουν τη συμπεριφορά μόνο συγκεκριμένων εκφράσεων ή δηλώσεων στο πρόγραμμα, έως αυτά που συμπεριλαμβάνουν ολόκληρο τον πηγαίο κώδικα ενός προγράμματος στην ανάλυση. Οι χρήσεις των πληροφοριών που πηγάζουν από την ανάλυση συμπεριλαμβάνουν από τον εντοπισμό πιθανών λαθών στο πρόγραμμα (π.χ. το εργαλείο lint), έως τυπικές μεθόδους που αποδεικνύουν μαθηματικά ιδιότητες για κάποιο δεδομένο πρόγραμμα (π.χ. ότι η συμπεριφορά του όντως ακολουθεί την τεχνική του περιγραφή). Η μέτρηση μιας οποιασδήποτε ιδιότητας του προγράμματος, όπως και ο αντίστροφος σχεδιασμός (reverse engineering) θεωρούνται επίσης είδη στατικής ανάλυσης. Μια αυξανόμενη εμπορική χρήση της στατικής ανάλυσης είναι η επαλήθευση ιδιοτήτων του λογισιμικού που χρησιμοποιείται σε υπολογιστικά συστήματα όπου η ασφάλεια είναι κρίσιμη, για την αυτόματη ανακάλυψη πιθανών τρωτών σημείων στον κώδικα.

Τυπικές μέθοδοι Ο όρος τυπικές μέθοδοι χρησιμοποιείται στην ανάλυση λογισμικού και υλικού, και η οποία λειτουργεί αμιγώς με τη χρήση αυστηρών μαθηματικών μεθόδων. Οι μαθηματικές τεχνικές που χρησιμοποιούνται περιλαμβάνουν δηλωτική, λειτουργική ή αξιωματική σημασιολογία, και αφηρημένη διερμηνεία. Αν υποθέσουμε ότι ο χώρος καταστάσεων των προγραμμάτων δεν είναι πεπερασμένος και μικρός, τότε αποδεικνύεται πως η εύρεση όλων των δυνατών λαθών χρόνου εκτέλεσης ή γενικότερα οποιουδήποτε είδους παραβίαση των προδιαγραφών στο τελικό αποτέλεσμα ενός προγράμματος, είναι αδύνατη: δεν υπάρχει καμία αυτόματη μηχανική μέθοδος που να μπορεί πάντα να βρίσκει με ακρίβεια αν ένα πρόγραμμα έχει λάθη εκτέλεσης ή όχι. Το αποτέλεσμα αυτό προκύπτει από τις εργασίες των Αλόνζο Τσερτς, Κουρτ Γκέντελ και Άλαν Τούρινγκ στη δεκαετία του 1930 (βλ. πρόβλημα τερματισμού και θεώρημα Ράις). Όπως συμβαίνει με τα περισσότερα άλυτα προβλήματα απόφασης, μπορεί κανείς να προσπαθήσει να δώσει χρήσιμες προσεγγιστικές λύσεις. Κάποιες από τις τεχνικές υλοποίησης της τυπικής στατικής ανάλυσης είναι: • Ο έλεγχος μοντέλων (model checking) εξετάζει συστήματα που έχουν πεπερασμένη κατάσταση, ή μπορούν να αναχθούν σε πεπερασμένη κατάσταση με αφαίρεση • Η ανάλυση ροής δεδομένων (data-flow analysis) βασίζεται σε δομές συνδέσμων (lattices) για τη συλλογή πληροφοριών για το πιθανό σύνολο τιμών • Η αφηρημένη διερμηνεία (abstract interpretation) μοντελοποιεί το αποτέλεσμα κάθε εντολής στην κατάσταση μιας αφηρημένης μηχανής (δηλαδή 'εκτελεί' το πρόγραμμα βασιζόμενη στις μαθηματικές ιδιότητες κάθε


Στατική ανάλυση εντολής). Η αφηρημένη αυτή μηχανή προσεγγίζει όλες τις δυνατές συμπεριφορές του συστήματος. Έτσι, το αφηρημένο σύστημα είναι ευκολότερο να αναλυθεί μαθηματικά, με κόστος την μη πληρότητα της ανάλυσης (δεν ισχύει πάντα κάθε ιδιότητα του πραγματικού και για το αφηρημένο). Αν γίνει σωστά, παρ' όλα αυτά, η αφηρημένη διερμηνεία είναι συνεπής (κάθε ιδιότητα του αφηρημένου ισχύει και για το πραγματικό). • Η χρήση ισχυρισμών στον κώδικα ενός προγράμματος όπως προτάθηκε αρχικά στη λογική Χόαρ. Υπάρχουν εργαλεία που την υποστηρίζουν για κάποιες γλώσσες προγραμματισμού, όπως η SPARK, ένα υποσύνολο της Ada και η JML (με χρήση του ESC/Java και του ESC/Java2).

Σχετικά άρθρα • • • • • • • •

Ανάλυση προγράμματος (πληροφορική) Δυναμική ανάλυση προγράμματος Ανάλυση σχήματος Έλεγχος μοντέλων Τυπική σημασιολογία των γλωσσών προγραμματισμού Τυπική επαλήθευση προγράμματος Δοκιμή λογισμικού Γεννήτρια τεκμηρίωσης

• Συμβολική ανάλυση προγράμματος

Εξωτερικοί σύνδεσμοι • • • •

The SAMATE Project [1], πηγή για εργαλεία Αυτόματης Στατικής Ανάλυσης Code Quality Improvement - Coding standards conformance checking (DDJ) [2] Episode 59: Static Code Analysis [3] Interview (Podcast) at Software Engineering Radio Implementing Automated Governance for Coding Standards [4] Εξηγεί γιατί και πώς να εισηχθεί η στατική ανάλυση στην διαδικασία ανάπτυξης προγραμμάτων

Βιβλιογραφία • International Static Analysis Symposium proceedings [5], Springer-Verlag 1994-. • Improving Software Security with Precise Static and Runtime Analysis [6], Benjamin Livshits, section 7.3 “Static Techniques for Security,” Stanford doctoral thesis, 2006. • Nathaniel Ayewah, David Hovemeyer, J. David Morgenthaler, John Penix, William Pugh, “Using Static Analysis to Find Bugs [7],” IEEE Software, vol. 25, no. 5, pp. 22-29, Sep./Oct. 2008, doi:10.1109/MS.2008.130 • Adam Kolawa, Why, When, How: Code Analysis [8] white paper [9] Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το code analysis άρθρο Static code analysis της Αγγλόγλωσσης Βικιπαίδειας, η [2] [9] οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 3.0 . (code analysis ιστορικό/συντάκτες ).

178


Στατική ανάλυση

Παραπομπές [1] [2] [3] [4] [5] [6] [7] [8] [9]

http:/ / samate. nist. gov http:/ / www. ddj. com/ dept/ debug/ 189401916 http:/ / www. se-radio. net/ index. php?post_id=220531 http:/ / www. infoq. com/ articles/ governance-coding-standards http:/ / www. informatik. uni-trier. de/ ~ley/ db/ conf/ sas/ index. html http:/ / research. microsoft. com/ en-us/ um/ people/ livshits/ papers/ pdf/ thesis. pdf http:/ / www2. computer. org/ portal/ web/ csdl/ doi/ 10. 1109/ MS. 2008. 130 http:/ / www. parasoft. com/ jsp/ redirector. jsp/ WWH_CodeAnalysis_W http:/ / en. wikipedia. org/ wiki/ Static

179


180

Στοίβα κλήσεων Στοίβα κλήσεων Στην επιστήμη της πληροφορικής, η στοίβα κλήσεων είναι μια δομή δεδομένων στοίβας που κρατά πληροφορίες σχετικά με τις ενεργές υπορουτίνες ενός προγράμματος. Αυτός ο τύπος στοίβας είναι γνωστός και σαν στοίβα εκτέλεσης (execution stack), στοίβα ελέγχου(control stack), στοίβα συναρτήσεων(function stack), ή στοίβα χρόνου εκτέλεσης(run-time stack), και συχνά αναφέρται απλά σαν "η στοίβα". Αν και η συντήρηση της στοίβας κλήσεων είναι σημαντική για τη σωστή λειτουργία των πιο πολλών προγραμμάτων, οι λεπτομέρειες συνήθως είναι αόρατες στις γλώσσες υψηλού επιπέδου. Μια στοίβα κλήσεων χρησιμοποιείται για πολλούς σχετικούς μεταξύ τους σκοπούς, αλλά ο κύριος λόγος που υπάρχει είναι για να παρακολουθείται το σημείο στο οποίο κάθε ενεργή υπορουτίνα θα επιστρέψει τον έλεγχο όταν τελειώσει η εκτέλεσή της (ενεργές υπορουτίνες είναι αυτές που έχουν κληθεί αλλά ακόμα δεν έχει τελειώσει η εκτέλεσή τους, επιστρέφοντας). Αν, για παράδειγμα μια υπορουτίνα DrawSquare καλεί μια υπορουτίνα DrawLine από τέσσερα διαφορετικά σημεία, ο κώδικας της DrawLine πρέπει με κάποιον τρόπο να γνωρίζει πού να επιστρέψει. Αυτό συνήθως γίνεται με κώδικα για κάθε κλήση μέσα στην DrawSquare που τοποθετεί τη διεύθυνση στη μνήμη (της "διεύθυνσης επιστροφής") μιας εντολής στη στοίβα κλήσεων μετά την εντολή της κλήσης.

Περιγραφή Επειδή η στοίβα κλήσεων έχει την οργάνωση στοίβας, ο κώδικας που κάνει την κλήση σπρώχνει(pushes) τη διεύθυνση επιστροφής στη στοίβα, και η καλούμενη υπορουτίνα, όταν τελειώσει, επαναφέρει(pops) τη διεύθυνση επιστροφής από την κορυφή της στοίβας κλήσεων και μεταφέρει τον έλεγχο σε αυτήν τη διεύθυνση. Αν μια καλούμενη υπορουτίνα καλέσει μια άλλη υπορουτίνα, θα σπρώξει άλλη μια διεύθυνση επιστροφής στη στοίβα κλήσεων, και με αυτόν τον τρόπο το πρόγραμμα, η πληροφορία μπαίνει και βγαίνει από την κορυφή της στοίβας, κατά τις εντολές του προγράμματος. Αν η εισαγωγή νέων διευθύνσεων κάποια στιγμή καταναλώσει όλο το διαθέσιμο χώρο που έχει δεσμευτεί για τη στοίβα κλήσεων, προκύπτει ένα σφάλμα που ονομάζεται "υπερχείλιση στοίβας" ("stack overflow"), με αποτέλεσμα συνήθως το πρόγραμμα να τερματίζεται εσφαλμένα. Κάποιες φορές η προσθήκη στη στοίβα μιας εγγραφής για μια υπορουτίνα ονομάζεται τύλιγμα (winding), αντίστοιχα η αφαίρεσή της ονομάζεται ξετύλιγμα (unwinding). Συνήθως υπάρχει μια λίστα σχετική με ένα πρόγραμμα που εκτελείται (ή, πιο σωστά, με κάθε εργασία ή νήμα μιας διεργασίας), αν και επιπλέον στοίβες μπορούν να δημιουργηθούν από το χειρισμό σημάτων ή τη συνεργατική πολυδιεργασία (όπως με τη setcontext). Από τη στιγμή που υπάρχει μόνο ένα σημαντικό περιβάλλον, αυτό ονομάζεται η στοίβα (εννοώντας "της εργασίας"). Στις γλώσσες υψηλού επιπέδου, οι λεπτομέρειες της στοίβας κλήσεων είναι κρυμμένες από τον προγραμματιστή. Υπάρχει μόνο πρόσβαση στη λίστα των συναρτήσεων και όχι στη μνήμη της ίδιας της στοίβας. Οι περισσότερες συμβολικές γλώσσες, όμως, απαιτούν από τον προγραμματιστή να συμμετέχει στο χειρισμό της στοίβας. Οι πραγματικές λεπτομέρειες της στοίβας σε μια γλώσσα προγραμματισμού εξαρτώνται από το μταγλωττιστή, το λειτουργικό σύστημα και το διαθέσιμο σύνολο εντολών.


Στοίβα κλήσεων

Λειτουργίες της στοίβας κλήσεων Όπως σημειώθηκε παραπάνω ο κύριος σκοπός μιας στοίβας κλήσεων είναι: • Η αποθήκευση της διεύθυνσης επιστροφής – Όταν καλείται μια υπορουτίνα, η θέση της εντολής στην οποία θα επιστρέψει πρέπει να αποθηκευτεί κάπου. Η χρήση της στοίβας για την αποθήκευση της διεύθυνσης επιστροφής έχει σημαντικά πλεονεκτήματα έναντι των άλλων εναλλακτικών. Ένα από αυτά είναι ότι κάθε εργασία έχει τη δική της στοίβα και επομένως η υπορουτίνα μπορεί να έχει την ικανότητα επανεισόδου (είναι "reentrant"), δηλαδή μπορεί να είναι ενεργή ταυτόχρονα σε διαφορετικές εργασίες κάνοντας διαφορετικά πράγματα. Ένα άλλο πλεονέκτημα είναι ότι υποστηρίζεται αυτόματα η αναδρομή. Όταν μια συνάρτηση καλεί τον εαυτό της αναδρομικά, για κάθε ενεργοποίηση της συνάρτησης πρέπει να αποθηκευτεί μια διεύθυνση επιστροφής για την επιστροφή από κάθε τέτοια ενεργοποίηση. Αυτή η δυνατότητα προσφέρεται αυτόματα από τη στοίβα. Μια στοίβα κλήσεων μπορεί να έχει επιπλέον λειτουργίες, ανάλογα με τη γλώσσα, το λειτουργικό σύστημα και το περιβάλλον της πλατφόρμας του υλικού. Κάποιες από αυτές μπορούν να είναι: • Αποθήκευση τοπικών δεδομένων – Μια υπορουτίνα συχνά χρειάζεται χώρο στη μνήμη για να αποθηκεύει τις τιμές τοπικών μεταβλητών, των μεταβλητών δηλαδή που είναι γνωστές μόνο μέσα στα όρια της ενεργής υπορουτίνας και δεν κρατούν τις τιμές τους μετά την επιστροφή από αυτή. Συχνά είναι πιο εύκολο να κρατείται χώρος για αυτή τη χρήση μετακινώντας την κορυφή της στοίβας ώστε να δημιουργηθεί ο απαραίτητος χώρος. Αυτό είναι πολύ γρήγορο σε σχέση με τη δέσμευση μνήμης στο σωρό. Να σημειωθεί ότι κάθε ξεχωριστή ενεργοποίηση μιας υπορουτίνας αποκτά το δικό της χώρο στη στοίβα για τοπικές μεταβλητές. • Πέρασμα παραμέτρων – Οι υπορουτίνες συχνά απαιτούν οι τιμές των παράμετρος να δίνονται από τον κώδικα που τις καλεί και συχνά ο χώρος για αυτές τις παραμέτρους βρίσκεται στη στοίβα. Γενικά αν υπάρχουν μόνο λίγες μικρές παράμετροι, οι καταχωρητές του επεξεργαστή θα χρησιμοποιηθούν για το πέρασμα των τιμών, αλλά αν υπάρχουν περισσότερες παράμετροι που να μπορούν να χειριστούν με αυτόν τον τρόπο, θα χρειαστεί χώρος στη μνήμη. Η στοίβα κλήσεων λειτουργεί καλά σαν ένα μέρος για αυτές τις παραμέτρους, ειδικά όταν κάθε κλήση σε μια υπορουτίνα, που θα έχει διαφορετικές τιμές για τις παραμέτρους της, θα αποκτήσει διαφορετικό χώρο στη στοίβα κλήσεων για αυτές τις τιμές. • Στοίβα αποτίμησης – Οι τελεστέοι για αριθμητικές ή λογικές πράξεις συχνά τοποθετούνται στους καταχωρητές και χρησιμοποιούνται από εκεί. Όμως, υπάρχουν καταστάσεις στις οποίες οι τελεστέοι μπορεί να βρίσκονται σε δομή στοίβας χωρίς όριο στο βάθος της, το οποίο σημαίνει ότι οι καταχωρητές δεν είναι αρκετοί. Η στοίβα αυτών των τελεστέων, όπως και αυτή μιας αριθμομηχανής RPN, αποκαλείται στοίβα αποτίμησης και μπορεί να καταλαμβάνει χώρο στη στοίβα κλήσεων. • Δείκτης στο τρέχον στιγμιότυπο - Κάποιες αντικειμενοστρεφείς γλώσσες (π.χ. η C++), αποθηκεύουν το δείκτη this μαζί με τα ορίσματα της συνάρτησης στη στοίβα κλήσεων όταν καλούν μεθόδους. Ο δείκτης this δείχνει στο αντικείμενο που ανήκει η μέθοδος που πρόκειται να κλήθεί. • Περιβάλλον εξωτερικής υπορουτίνας - Κάποιες γλώσσες προγραμματισμού (π.χ. η Pascal και η Ada) υποστηρίζουν εμφωλευμένες υπορουτίνες, επιτρέποντας σε μια εσωτερική υπορουτίνα να έχει πρόσβαση στο περιβάλλον της εξωτερικής υπορουτίνας που την περιβάλλει, π.χ., στις παράμετρους και στις τοπικές μεταβλητές μέσα στην εμβέλεια της εξωτερικής υπορουτίνας. Ένα τέτοιο στατικό φώλιασμα μπορεί να επαναλμβάνεται - μια συνάρτηση που δηλώνεται μέσα σε μια άλλη συνάρτηση που δηλώνεται μέσα σε μια άλλη συνάρτηση... Η υλοποίηση πρέπει να παρέχει έναν τρόπο με τον οποίο η συνάρτηση που καλείται σε οποιοδήποτε επίπεδο φωλιάσματος να μπορεί να αναφέρεται σε κάθε πλαίσιο που την περικλείει. Συνήθως αυτή η αναφορά υλοποιείται με έναν δείκτη στο περιβάλλον πλαίσιο, που καλείται "downstack link" ή "στατικός σύνδεσμος"("static link"), για να διακρίνεται από το "δυναμικό σύνδεσμο" που αναφέρεται στη συνάρτηση που έκανε την τρέχουσα κλήση (η οποία όμως δεν αναγκαίο ότι είναι η στατική "γονική"

181


Στοίβα κλήσεων συνάρτηση). Για παράδειγμα, οι γλώσσες συνήθως επιτρέπουν εσωτερικές ρουτίνες να καλούν τον εαυτό τους αναδρομικά, με αποτέλεσμα πολλαπλά πλαίσια κλήσεων για τις κλήσεις της εσωτερικής ρουτίνας, όλοι οι στατικοί σύνδεσμοι των οποίων θα δείχνουν στο ίδιο εξωτερικό περιβάλλον ρουτίνας. Αντί για στατικό σύνδεσμο, οι αναφορές στο περιβάλλον πλαίσιο μπορούν να συλλεγούν σε έναν πίνακα δεικτών γνωστό σαν display, οι θέσεις του οποίου δείχνουν τα επιθυμητά πλαίσια. Ο υπολογιστή Burroughs B6500 είχε ένα τέτοιο display, υλοποιημένο σε υλικό, που υποστήριζε μέχρι 32 επίπεδα στατικού φωλιάσματος. • Άλλη κατάσταση επιστροφής – Εκτός της διεύθυνσης επιστροφής, σε κάποια περιβάλλοντα υπάρχουν άλλα μέρη του υλικού ή καταστάσεις λογισμικού που πρέπει να γίνει επαναφορά τους όταν τελειώνει μια υπορουτίνα. Αυτό μπορεί να περιλαμβάνει πράγματα όπως το επίπεδο δικαιωμάτων (privilege level), πληροφορίες για το χειρισμό εξαιρέσεων, και καταστάσεις αριθμητικής. Αν είναι απαραίτητο αυτά μπορούν να αποθηκευτούν στη στοίβα κλήσεων όπως η διεύθυνση επιστροφής. Η κλασική στοίβα κλήσεων χρησιμοποιείται για τη διεύθυνση επιστροφής, τις τοπικές μεταβλητές και τις παραμέτρους (και είναι γνωστή σαν πλαίσιο κλήσης / call frame). Σε κάποια περιβάλλοντα μπορεί να υπάρχουν περισσότερες ή λιγότερες λειτουργίες για τις οποίες να είναι υπεύθυνη η στοίβα. Στη γλώσσα προγραμματισμού Forth, για παράδειγμα, στη στοίβα αποθηκεύονται μόνο η διεύθυνση επιστροφής και οι τοπικές μεταβλητές (η στοίβα εκεί ονομάζεται στοίβα επιστροφής) - οι παράμετροι αποθηκεύονται σε μια ξεχωριστή στοίβα δεδομένων. Επίσης οι πιο πολλές εκδόσεις της Forth έχουν και μια τρίτη στοίβα για παραμέτρους κινητής υποδιαστολής.

Δομή Μια στοίβα κλήσεων αποτελείται από πλαίσια στοίβας (stack frames), γνωστά και ως εγγραφές δραστηριοποίησης (activation records). Αυτά είναι δομές δεδομένων ανεξάρτητες από την αρχιτεκτονική του υπολογιστή που περιλαμβάνουν πληροφορίες σχετικά με την κατάσταση των υπορουτινών. Κάθε πλαίσιο στοίβας αντιστοιχεί σε μια κλήση σε μια υπορουτίνα που δεν έχει ακόμα επιστρέψει. Για παράδειγμα, αν μια υπορουτίνα DrawLine εκτελείται, έχοντας μόλις κληθεί από μια υπορουτίνα DrawSquare, η κορυφή της στοίβας κλήσεων θα έχει την εξής διάταξη (όπου η στοίβα μεγαλώνει προς την κορυφή):

182


Στοίβα κλήσεων

Το πλαίσιο στοίβας στην κορυφή της στοίβας αντιστοιχεί στη ρουτίνα που εκτελείται αυτήν τη στιγμή. Στην πιο κοινή περίπτωση το πλαίσιο στοίβας περιέχει: • χώρο για τις τοπικές μεταβλητές της ρουτίνας, • τη διεύθυνση επιστροφής πίσω στον κώδικα που κάλεσε τη ρουτίνα, και • τις τιμές των παραμέτρων που περάστηκαν στη ρουτίνα. Η πρόσβαση στη στοίβα συχνά γίνεται μέσω ενός καταχωρητή που ονομάζεται δείκτης στοίβας (stack pointer), ο οποίος και επίσης χρησιμοποιείται για να δείχνει την κορυφή της στοίβας. Εναλλακτικά, η μνήμη μέσα στο πλαίσιο μπορεί να προσπελαστεί μέσω ενός ξεχωριστού καταχωρητή, που συχνά ονομάζεται δείκτης πλαισίου (frame pointer), ο οποίος συνήθως δείχνει σε μια σταθερή θέση στη δομή του πλαισίου, όπως η θέση της διεύθυνσης επιστροφής. Τα πλαίσια στοίβας δεν έχουν πάντα το ίδιο μέγεθος. Διαφορετικές υπορουτίνες έχουν διαφορετικό αριθμό παραμέτρων, επομένως μέρος του πλαισίου στοίβας θα είναι διαφορετικό για διαφορετικές υπορουτίνες, αν και συνήθως σταθερό για όλες τις ενεργοποιήσεις μιας συγκεκριμένης υπορουτίνας. Όμοια, ο χώρος που χρειάζεται για τις τοπικές μεταβλητές θα είναι διαφορετικός για διαφορετικές υπορουτίνες. Στην πραγματικότητα, κάποιες γλώσσες επιτρέπουν τη δυναμική δέσμευση μνήμης για τοπικές μεταβλητές στη στοίβα, περίπτωση στην οποία το μέγεθος του χώρου για τις τοπικές μεταβλητές θα διαφέρει από ενεργοποίηση σε ενεργοποίηση μιας υπορουτίνας, και δεν είναι γνωστό όταν η υπορουτίνα μεταγλωττίζεται. Στην τελευταία αυτή περίπτωση, συνήθως χρειάζεται πρόσβαση μέσω ενός δείκτη πλαισίου και όχι δείκτη στοίβας, επειδή οι σχετικές θέσεις των τιμών (όπως η διεύθυνση επιστροφής) από την κορυφή δεν είναι γνωστές στο χρόνο μεταγλώττισης. Σε πολλά συστήματα ένα πλαίσιο στοίβας έχει ένα πεδίο που περιέχει την προηγούμενη τιμή του καταχωρητή δείκτη πλαισίου, την οποία είχε κατά την εκτέλεση του κώδικα που τον κάλεσε. Για παράδειγμα, στο παραπάνω διάγραμμα, το πλαίσιο στοίβας της DrawLine θα είχε μια θέση μνήμης που θα κρατούσε το δείκτη

183


Στοίβα κλήσεων πλαισίου που χρησιμοποιεί η DrawSquare. Η τιμή σώζεται κατά την είσοδο στην υπορουτίνα και επαναφέρεται κατά την επιστροφή από αυτή. Έχοντας ένα τέτοιο πεδίο σε μια γνωστή θέση στο πλαίσιο στοίβας, ο κώδικας μπορεί να έχει πρόσβαση σε κάθε πλαίσιο που βρίσκεται παρακάτω από το πλαίσιο της ρουτίνας που καλείται εκείνη τη στιγμή. Οι γλώσσες προγραμματισμού που υποστηρίζουν εμφωλευμένες υπορουτίνες έχουν ένα πεδίο στο πλαίσιο κλήσης που δείχνει στο πλαίσιο κλήσης της εξωτερικής ρουτίνας που κάλεσε την εσωτερική. Αυτό κάποιες φορές ονομάζεται display[1] . Αυτός ο δείκτης επιτρέπει στην εσωτερική ρουτίνα (και σε όποιες ρουτίνες αυτή καλεί) να έχει πρόσβαση στις παραμέτρους και στις τοπικές μεταβλητές της εξωτερικής ρουτίνας που έκανε την κλήση. Κατά κάποιον τρόπο, το πλαίσιο στοίβας μιας υπορουτίνας και του κώδικα που την καλεί μπορούν να θεωρηθούν ότι επικαλύπτονται, με την κοινή περιοχή να είναι εκεί που περνιούνται οι παράμετροι. Σε κάποια περιβάλλοντα, ο κώδικας που κάνει την κλήση σπρώχνει κάθε όρισμα στη στοίβα, επεκτείνοντας το πλαίσιο στοίνας, και στη συνέχεια καλεί τη συνάρτηση. Σε άλλα περιβάλλοντα, ο καλών διαθέτει μια ήδη δεσμευμένη περιοχή στην κορυφή της στοίβας για να κρατούνται εκεί τα ορίσματα που δίνει στις υπορουτίνες που καλεί. Αυτή η περιοχή μερικές φορές ονομάζεται περιοχή εξερχόμενων ορισμάτων (outgoing arguments area) ή callout area. Με αυτήν την προσέγγιση, το μέγεθος του χώρου υπολογίζεται από το μεταγλωττιστή να είναι το μεγαλύτερο που μπορεί να χρειαστεί κατά την κλήση κάποιας υπορουτίνας.

Χρήση Επεξεργασία θέσης κλήσης (call site processing) Συνήθως δε χρειάζεται κάποιος ιδιαίτερος χειρισμός της στοίβας κλήσεων στη θέση που καλείται μια υπορουτίνα (κάτι το οποίο είναι καλό - υπάρχουν πολλές θέσεις στις οποίες καλείται κάθε υπορουτίνα). Οι τιμές των πραγματικών ορισμάτων αποτιμώνται στη θέση κλήσης, μιας και αφορούν τη συγκεκριμένη κηση, και είτε σπρώχνονται στη στοίβα, είτε τοποθετούνται σε καταχωρητές, ανάλογα με τη σύμβαση κλήσης που χρησιμοποιείται. Η πραγματική εντολή της κλήσης, π.χ. η "Branch and Link", εκτελείται στη συνέχεια για να μεταφέρει τον έλεγχο στην υπορουτίνα που κλήθηκε.

Επεξεργασία καλούμενου (callee processing) Στην υπορουτίνα που κλήθηκε, ο πρώτος κώδικας που καλείται λέγεται συνήθως ο πρόλογος υπορουτίνας, επειδή κάνει όλες τις απαραίτητες πράξεις πριν αρχίσει η εκτέλεση του κώδικα των εντολών της υπορουτίνας. Ο πρόλογος συνήθως αποθηκεύει τη διεύθυνση επιστροφής που είχε μείνει στον καταχωρητή από την εντολή κλήσης, σπρώχνοντας την τιμή της στη στοίβα. Όμοια, ο τρέχων δείκτης στοίβας και/ή ο δείκτης πλαισίου μπορεί να αποθηκευτούν στη στοίβα. Εναλλακτικά, κάποιες αρχιτεκτονικές παρέχουν αυτόματα τέτοιες λειτουργίες σαν μέρος της ίδιας της εντολής κλήσης, και σε αυτές τις περιπτώσεις ο πρόλογος δε χρειάζεται να κάνει αυτές τις ενέργειες. Αν χρησιμοποιούνται δείκτες πλαισίων, ο πρόλογος συνήθως θα θέσει τη νέα τιμή του δείκτη πλαισίου από το δείκτη στοίβας. Μπορεί τότε να δεσμευτεί χώρος στη στοίβα για τις τοπικές μεταβλητές αυξάνοντας το δείκτη στοίβας. Η γλώσσα προγραμματισμού Forth επιτρέπει το ρητό ξετύλιγμα της στοίβας κλήσεων (που καλείται εκεί "στοίβα επιστροφής"). Η γλώσσα προγραμματισμού Scheme επιτρέπει το τύλιγμα ειδικών πλαισίων μέσα από ένα "δυναμικό τύλιγμα".

184


Στοίβα κλήσεων

Επεξεργασία επιστροφής (return processing) Όταν μια υπορουτίνα είναι έτοιμη να επιστρέψει, εκτελεί έναν επίλογο που αναιρεί τις ενέργειες του προλόγου. Συνήθως επαναφέρει αποθηκευμένες τιμές των καταχωρητών (όπως η τιμή του δείκτη πλαισίου) από το πλαίσιο στοίβας, θα αφαιρέσει όλο το πλαίσιο στοίβας από τη στοίβα αλλάζοντας την τιμή του του δείκτη στοίβας και στο τέλος θα κάνει άλμα στην εντολή στη διεύθυνση επιστροφής. Κάτω από πολλές συμβάσεις κλήσης αυτά που αφαιρούνται από την κορυφή της στοίβας περιλαμβάνουν τις αρχικές τιμές των ορισμάτων, επομένως δε χρειάζεται να γίνουν άλλες ενέργειες στη στοίβα από τον κώδικα που έκανε την κλήση. Σε κάποιες συμβάσεις κλήσης όμως, είναι υποχρέωση του κώδικα που καλεί να αφαιρέσει τα ορίσματα από τη στοίβα πριν την επιστροφή.

Ξετύλιγμα Η επιστροφή από τη συνάρτηση που κλήθηκε θα αφαιρέσει το πλαίσιο στην κορυφή της στοίβας, ίσως αφήνοντας κάποια τιμή επιστροφής. Κάποιες γλώσσες όπως η Pascal επιτρέπουν μια καθολική εντολή goto που να μεταφέρει τον έλεγχο έξω από μια φωλιασμένη συνάρτηση σε μια εξωτερική συνάρτηση που είχε ήδη κληθεί στο παρελθόν. Αυτή η λειτουργία απαιτεί να ξετυλιχθεί η στοίβα, αφαιρώντας όσα πλαίσια στοίβας χρειάζονται ώστε να γίνει η επαναφορά του κατάλληλου περιβάλλοντος για τη μεταφορά του ελέγχου στην κατάλληλη εντολή στην περιβάλλουσα συνάρτηση. Τέτοιες μεταφορές ελέγχου συνήθως συμβαίνουν στη διαχείριση σφαλμάτων. Κάποιες άλλες γλώσσες (όπως η Object Pascal) παρέχουν διαχείριση εξαιρέσεων, η οποία επίσης χρειάζεται ξετύλιγμα της στοίβας. Το πλαίσιο στοίβας μιας συνάρτησης περιέχει μια ή περισσότερες εγγραφές που ορίζουν κάποιους χειριστές εξαιρέσεων. Όταν εμφανίζεται μια εξαίρεση, η στοίβα ξετυλίγεται μέχρι να βρεθεί ένας χειριστής εξαιρέσεων που να μπορεί να χειριστεί (πιάσει) την εξαίρεση. Η Common Lisp επιτρέπει τον έλεγχο των ενεργειών που γίνονται όταν η στοίβα ξετυλίγεται χρησιμοποιώντας τον ειδικό τελεστή unwind-protect. Όταν εφαρμόζεται μια συνέχεια, η στοίβα ξετυλίγεται και ξανατυλίγεται με τη στοίβα της συνέχειας. Αυτός δεν είναι ο μοναδικός τρόπος να υλοποιήσουμε τις συνέχειες: με τη χρήση, για παράδειγμα, πολλαπλών στοιβών, μια συνέχεια μπορεί να ενεργοποιήσει απλά τη στοίβα της και να τυλίξει μια τιμή που θέλει να περαστεί.

Στοίβες κλήσεων και δοκιμή λογισμικού Μια πρόσφατα δημοσιευμένη τεχνική [2] χρησιμοποιεί τις στοίβες κλήσεων με έναν αρκετά διαφορετικό τρόπο από αυτούς που προαναφέρθηκαν. Χρησιμοποιεί τις στοίβες κλήσεων για αναγωγή δοκιμών (test suite reduction). Εν συντομία, η αναγωγή δοκιμών προσπαθεί να μειώσει τον αριθμό των δοκιμαστικών περιπτώσεων σε μια δοκιμαστική σουίτα διατηρώντας ένα υψηλό ποσοστό της επιτυχίας σήμανσης λαθών της αρχικής σουίτας. Δυο δοκιμαστικές περιπτώσεις θεωρούνται ισοδύναμες αν δημιουργούν το ίδιο σύνολο στοιβών κλήσεων κατά τη διάρκεια της εκτέλεσης. Δείτε το [3] για περισσότερες λεπτομέρειες.

185


Στοίβα κλήσεων

Ανάλυση της απόδοσης Η λήψη τυχαίων δειγμάτων από τη στοίβα κλήσεων μπορεί να είναι πολύ χρήσιμη στη βελτιστοποίηση της απόδοσης των προγραμμάτων. Αυτό συμβαίνει γιατί αν μια εντολή κλήσης μιας υπορουτίνας εμφανίζεται στη στοίβα κλήσεων για σημαντικό μέρος του χρόνου εκτέλεσης, η πιθανή αφαίρεσή της θα εξοικονομούσε αρκετό χρόνο. Δείτε Ανάλυση απόδοσης και Deep sampling.

Ασφάλεια Η ανάμειξη δεδομένων της ροής ελέγχου που επηρεάζουν την εκτέλεση κώδικα (διευθύνσεις επιστροφής, αποθηκευμένοι δείκτες σε πλαίσια) και απλών δεδομένων του προγράμματος (παράμετροι, τιμές επιστροφής) στη στοίβα κλήσεων αποτελεί κενό ασφάλειας που μπορεί κάποιες φορές να γίνει εκμετάλλευσή του με την τεχνική της υπερχείλισης ενταμιευτή (buffer overflow).

Δείτε επίσης • Δυναμική δέσμευση μνήμης • Αυτόματη δέσμευση μνήμης • Σύμβαση κλήσης • Υπερχείλιση ενταμιευτή στοίβας • Segmented stack

Παραπομπές [1] wiki:AlternativeMicroprocessorDesign [2] “Call Stack Coverage for GUI Test-Suite Reduction” by Scott McMaster and Atif M. Memon. In Proceedings of the 17th IEEE

International Symposium on Software Reliability Engineering (ISSRE 2006), Nov. 2006. [3] “Call-Stack Coverage for GUI Test-Suite Reduction” by Scott McMaster and Atif M. Memon. IEEE Trans. Softw. Eng., 2008, IEEE

Press.

Εξωτερικοί σύνδεσμοι • Function Calling and Frame Pointer Operations in 68000 (http://www.eventhelix.com/RealtimeMantra/Basics/ CToAssemblyTranslation.htm) (Αγγλικά) Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το stack άρθρο Call stack (http:/ / en. wikipedia. org/ wiki/ Call) της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 3.0 (http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/ ). ( stack ιστορικό/συντάκτες (http:/ / en. wikipedia. org/ wiki/ Call)).

186


187

Συμβολομεταφραστής Συμβολομεταφραστής Ένα αρχείο πηγαίου κώδικα υψηλού επιπέδου γραμμένο σε κάποια γλώσσα προγραμματισμού μεταγλωττίζεται σε ένα αντίστοιχο αρχείο συμβολικού κώδικα (assembly) από τον κατάλληλο μεταγλωττιστή. Το προκύπτον αρχείο στη συνέχεια μετασχηματίζεται σε αντικειμενικό αρχείο γλώσσας μηχανής από έναν συμβολομεταφραστή (assembler), μία διαδικασία που μετατρέπει τον κώδικα σε άμεσα εκτελέσιμο από τον επεξεργαστή. Ο συμβολομεταφραστής δεν είναι παρά ένα πρόγραμμα που εκτελεί αυτήν τη διαδικασία, δεχόμενο ως είσοδο ένα συμβολικό αρχείο και δίνοντας ως έξοδο ένα αντικειμενικό αρχείο. Η συμβολική γλώσσα και η γλώσσα μηχανής είναι ίδιου επιπέδου και υπάρχει αμφιμονοσήμαντη αντιστοιχία μεταξύ τους, απλώς η συμβολική αποτελείται από χαρακτήρες του λατινικού αλφαβήτου και δεκαεξαδικά ψηφία, ώστε να είναι κάπως κατανοητή από τον άνθρωπο, ενώ η γλώσσα μηχανής συντίθεται αποκλειστικά από δυαδικά ψηφία (bit).


188

Συνέχεια (πληροφορική) Συνέχεια (πληροφορική) Μια συνέχεια (continuation) επαναφέρει ένα στιγμιότυπο μιας υπολογιστικής διεργασίας σε ένα δοσμένο σημείο της εκτέλεσής της. Περιλαμβάνει πληροφορίες όπως η τρέχουσα στοίβα της διεργασίας (με όλα τα δεδομένα των οποίων ο χρόνος ζωής είναι μέσα στη διεργασία, π.χ. οι "τοπικές μεταβλητές") και η θέση της διεργασίας στον υπολογισμό. Ένα τέτοιο στιγμιότυπο μπορεί στη συνέχεια να κληθεί και να συνεχιστεί. Η "τρέχουσα συνέχεια"("current continuation") ή "συνέχεια του υπολογιστικού βήματος" ("continuation of the computation step") είναι η συνέχεια, η οποία, από την πλευρά του κώδικα που εκτελείται, θα προέκυπτε από το τρέχον σημείο του προγράμματος που εκτελείται. Ο όρος συνέχειες μπορεί επίσης να σημαίνει συνέχειες πρώτης τάξης, οι οποίες είναι σχήματα κώδικα που επιτρέπουν σε μια γλώσσα προγραμματισμού να αποθηκεύει την κατάσταση του υπολογισμού σε κάποιο σημείο και να μπορεί αργότερα, σε κάποιο άλλο σημείο του προγράμματος, να επιστρέφει σε αυτήν. Τα προγράμματα πρέπει να κρατούν θέσεις στη μνήμη για τις μεταβλητές που χρησιμοποιούν οι συναρτήσεις τους. Οι περισσότερες γλώσσες προγραμματισμού χρησιμοποιούν μια στοίβα κλήσεων για να αποθηκεύουν τις μεταβλητές που χρειάζονται γιατί με αυτόν τον τρόπο έχουν γρήγορη και απλή δέσμευση μνήμης και αυτόματη αποδέσμευση. Υπάρχουν επίσης γλώσσες προγραμματισμού που χρησιμοποιούν σωρό για αυτόν το σκοπό, ο οποίος επιτρέπει μεγαλύτερη ευελιξία αλλά έχει υψηλότερο κόστος δέσμευσης και αποδέσμευσης μνήμης. Και οι δύο αυτές διαφορετικές υλοποιήσεις έχουν πλεονεκτήματα και μειονεκτήματα όσον αφορά τις συνέχειες.[1] Σχεδόν όλες οι γλώσσες έχουν κάποιον τρόπο για να αλλάζουν τη σειρά των βημάτων εκτέλεσης (δηλ. την τροποποίηση της συνέχειας ενός υπολογιστικού βήματος). Η εντολή goto είναι η πιο βασική μορφή από αυτές. Δομές ελέγχου όπως οι εντολές if, οι βρόχοι και οι εντολές return, break και exit, είναι πιο δομημένοι (και περιορισμένοι) τρόποι να τροποποιηθεί η σειρά των εντολών που εκτελούνται και στην πραγματικότητα μπορούν να θεωρηθούν σαν περιορισμένες εντολές goto. Υπάρχουν και πιο πολύπλοκα σχήματα κώδικα. Για παράδειγμα στη C, η εντολή setjmp μπορεί να χρησιμοποιηθεί για να γίνει άλμα από τη μέση μιας συνάρτησης σε μια άλλη συνάρτηση, με την προϋπόθεση ότι η άλλη συνάρτηση είναι χαμηλότερα στη στοίβα (για παράδειγμα, μπορεί να περιμένει την αρχική συνάρτηση να τελειώσει την εκτέλεσή της). Άλλα πιο πολύπλοκα παραδείγματα είναι οι συρρουτίνες στη Simula, τα tasklets στην Stackless Python, οι γεννήτριες στην Icon και την Python, οι συνέχειες στη Scala (από την έκδοση 2.8), οι ίνες στη Ruby (από την έκδοση 1.9.1), ο μηχανισμός οπισθοδρόμησης (backtracking) στην Prolog, και τα νήματα.

Ιστορία Η παλαιότερη περιγραφή των συνεχειών έχει γίνει από τον Adriaan van Wijngaarden το Σεπτέμβριο του 1964. Ο Wijngaarden μίλησε στο "IFIP Working Conference on Formal Language Description Languages", στο Baden bei Wien, στην Austria. Σαν μέρος του φορμαλισμού ενός προεπεξεργαστή για την Algol 60, χρειάστηκε ένα μετασχηματισμό από κανονικές διαδικασίες σε στυλ περάσματος συνεχειών (continuation-passing style).[2] Ο Christopher Strachey, ο Christopher P. Wadsworth και ο John C. Reynolds έκαναν γνωστό τον όρο συνέχεια (continuation) αργότερα με τη δουλειά τους στη δηλωτική σημασιολογία που χρησιμοποιεί εκτενώς συνέχειες για να μπορεί να αναλύει ακολουθιακά προγράμματα σε σημασιολογία συναρτησιακού προγραμματισμού.[2]


Συνέχεια (πληροφορική) Η συνέχεια εφευρέθηκε από τον Steve Russell στη δεύτερη υλοποίηση της Lisp για τον IBM 704, αν και δεν της έδωσε όνομα.[3]

Συνέχειες πρώτης τάξης Συνέχειες πρώτης τάξης είναι η ικανότητα μιας γλώσσας να ελέγχει πλήρως τη σειρά εκτέλεσης των εντολών της. Μπορούν να χρησιμοποιηθούν για άλμα μέσα σε μια συνάρτηση που κάλεσε την τρέχουσα συνάρτηση ή σε μια συνάρτηση που έχει τελειώσει η εκτέλεσή της. Οι συνέχειες πρώτης τάξης μπορούν να θεωρηθούν ότι αποθηκεύουν την κατάσταση του προγράμματος. Όμως πρέπει να σημειωθεί ότι οι πραγματικές συνέχειες πρώτης τάξης δεν αποθηκεύουν τα δεδομένα του προγράμματος αλλά μόνο το πλαίσιο της εκτέλεσης (execution context). Αυτό περιγράφεται από την περιγραφή της "συνέχειας-σάντουιτς": Ας πούμε ότι είστε στην κουζίνα μπροστά από το ψυγείο, θέλοντας ένα σάντουιτς. Παίρνετε τη συνέχεια εκείνη τη στιγμή και τη βάζετε στην τσέπη σας. Μετά παίρνετε λίγες φέτες γαλοπούλα και ψωμί από το ψυγείο και φτιάχνετε ένα σάντουιτς, το οποίο τώρα βρίσκεται στον πάγκο της κουζίνας. Καλείτε τη συνέχεια που έχετε στην τσέπη σας και βρίσκεστε πάλι μπροστά στο ψυγείο θέλοντας ένα σάντουιτς. Αλλά ευτυχώς υπάρχει ήδη ένα σάντουιτς στον πάγκο και τα υλικά που θα χρειάζονταν για να το φτιάξετε πια δεν υπάρχουν. Οπότε το τρώτε. :-)[4] Η Scheme ήταν το πρώτο σύστημα επιπέδου παραγωγής που παρείχε αρχικά την "catch"[2] και μετά την call/cc. Ο Bruce Duba εισήγαγε την call/cc στην Standard ML. Οι συνέχειες επίσης χρησιμοποιούνται σε μοντέλα υπολογισμού όπως η δηλωτική σημασιολογία, το μοντέλο Actor, οι λογισμοί διεργασιών (process calculi) και ο λ-λογισμός. Αυτά τα μοντέλα απαιτούν από τους προγραμματιστές ή τους μηχανικούς της σημασιολογίας να γράφουν μαθηματικές συναρτήσεις στο λεγόμενο στυλ περάσματος συνεχειών. Αυτό σημαίνει ότι κάθε συνάρτηση καταναλώνει μια άλλη συνάρτηση που αναπαριστά το υπόλοιπο του υπολογισμού σε σχέση με αυτήν την κλήση συνάρτησης. Για να επιστρέψει κάποια τιμή, η συνάρτηση καλεί αυτήν τη "συνάρτηση συνέχειας" με μια τιμή επιστροφής - για να διακόψει τον υπολογισμό επιστρέφει μια τιμή. Οι προγραμματιστές συναρτησιακών γλωσσών που γράφουν τα προγράμματά τους σε στυλ περάσματος συνεχειών έχουν την εκφραστική δύναμη να αλλάζουν τη ροή του ελέγχου με αυθαίρετους τρόπους. Το κόστος είναι ότι πρέπει να διατηρούν τις αναλλοίωτες του ελέγχου και των συνεχειών με το χέρι, κάτι πουθ είναι αρκετά πολύπλοκο.

Χρήσεις Οι συνέχειες είναι χρήσιμες γιατί απλοποιούν και ξεκαθαρίζουν την απλοποίηση πολλών άλλων κοινών σχημάτων κώδικα, όπως οι συρρουτίνες (γνωστές και σαν πράσινα νήματα), και η διαχείριση εξαιρέσεων. Οι συνέχειες είναι βασικές και χαμηλού επιπέδου, ενοποιώντας αυτά τα (σε πρώτη όψη ασύνδετα) σχήματα.

Παραδείγματα Η γλώσσα προγραμματισμού Scheme περιλαμβάνει τον τελεστή ροής κλήση-με-τρέχουσα-συνέχεια (call-with-current-continuation) (συντομογραφία: call/cc) με τον οποίο ενα πρόγραμμα σε Scheme μπορεί να αλλάζει τη ροή του ελέγχου: (define the-continuation #f) (define (test) (let ((i 0)) ; η call/cc καλεί την πρώτη παράμετρο της συνάρτησης, περνώντας της ; μια μεταβλητή συνέχειας που αναπαριστά ένα σημείο στο πρόγραμμα

189


Συνέχεια (πληροφορική) ; σαν παρέμτρο σε αυτήν τη συνάρτηση. ; ; Σε αυτήν την περίπτωση, η παράμετρος της συνάρτησης δεσμεύει τη ; συνέχεια στη μεταβλητή the-continuation. ; (call/cc (lambda (k) (set! the-continuation k))) ; ; Την επόμενη φορά που καλείται η συνέχεια, αρχίζουμε εδώ. (set! i (+ i 1)) i)) Ορίζει μια συνάρτηση test που θέτει την the-continuation σε μια μελλοντική κατάσταση εκτέλεσης της ίδιας: > (test) 1 > (the-continuation) 2 > (the-continuation) 3 > ; αποθηκεύει την τρέχουσα συνέχεια (που θα τυπώσει 4 τώρα) > (define another-continuation the-continuation) > (test) ; resets the-continuation 1 > (the-continuation) 2 > (another-continuation) ; χρησιμοποιεί την προηγούμενη αποθηκευμένη συνέχεια 4 Για μια πιο απλή εισαγωγή σε αυτόν το μηχανισμό, δείτε το άρθρο κλήση-με-τρέχουσα-συνέχεια. Συρρουτίνες Αυτό το παράδειγμα δείχνει μια πιθανή χρήση των συνεχειών στην υλοποίηση συρρουτινών σαν ξεχωριστά νήματα.[5] ;;; Μια απλή ουρά για χρονοπρογραμματισμό νημάτων. ;;; Κρατά τις συνέχειες που "πρόκειται να τρέξουν". (define *queue* '()) (define (empty-queue?) (null? *queue*)) (define (enqueue x) (set! *queue* (append *queue* (list x)))) (define (dequeue) (let ((x (car *queue*))) (set! *queue* (cdr *queue*)) x)) ;;; Αρχίζει ένα νέο νήμα που θα τρέξει το (proc). (define (fork proc) (call/cc (lambda (k) (enqueue k) (proc)))) ;;; Αφήνει τον επεξεργαστή σε κάποιο άλλο νήμα, αν υπάρχει τέτοιο. (define (yield)

190


Συνέχεια (πληροφορική) (call/cc (lambda (k) (enqueue k) ((dequeue))))) ;;; Τελειώνει το υπάρχον νήμα, ή ολόκληρο το πρόγραμμα ;;; αν δεν υπάρχουν άλλα νήματα. (define (thread-exit) (if (empty-queue?) (exit) ((dequeue)))) Οι παραπάνω συναρτήσεις επιτρέπουν τον ορισμό και την εκτέλεση νημάτων μέσω συνεργατικής πολυδιεργασίας (cooperative multitasking), δηλ. νήματα που αφήνουν τον έλεγχο στο επόμενο που περιμένει στην ουρά: ;;; Το σώμα ενός τυπικού νήματος σε Scheme που κάνει κάποια εργασία: (define (do-stuff-n-print str) (lambda () (let loop ((n 0)) (format #t "~A ~A\n" str n) (yield) (loop (1+ n))))) ;;; Δημιουργεί δύο νήματα και τα αρχίζει. (fork (do-stuff-n-print "This is AAA")) (fork (do-stuff-n-print "Hello from BBB")) (thread-exit) Ο προηγούμενος κώδικας τότε τα παράγει την εξής έξοδο: This is AAA 0 Hello from BBB 0 This is AAA 1 Hello from BBB 1 This is AAA 2 Hello from BBB 2 ...

191


Συνέχεια (πληροφορική)

Υποστήριξη σε γλώσσες προγραμματισμού Πολλές γλώσσες προγραμματισμού έχουν συνέχειες πρώτης τάξης, με διάφορες ονομασίες, πιο συγκεκριμένα: • • • • • • • • • • • • •

C: setcontext κλπ. (UNIX System V και GNU libc) Factor: callcc0 και callcc1 Haskell: Η Μονάδα Συνεχειών (Continuation Monad) στην Control.Monad.Cont Icon, Unicon : create, suspend, @ operator: coexpressions Parrot: Continuation PMC; χρησιμοποιεί στυλ περάσματος συνεχειών για όλοκληρη τη ροή ελέγχου Perl: Coro [6] και Continuity [7] Pico: call(exp()) και continue(aContinuation, anyValue) JavaScript Rhino : Continuation Mythryl: callcc Ruby: callcc Scala: Responder Scheme: call-with-current-continuation (συνήθως με τη συντομογραφία call/cc) Smalltalk: Continuation currentDo:, στα περισσότερα σύγχρονα περιβάλλοντα Smalltalk οι συνέχειες μπορούν να υλοποιηθούν χωρίς επιπλέον υποστήριξη από την εικονική μηχανή. • Standard ML of New Jersey: SMLofNJ.Cont.callcc • Unlambda: c, η λειτουργία ελέγχου ροής για κλήση με την τρέχουσα συνέχεια Σε κάθε γλώσσα που υποστηρίζει κλεισίματα και αναδρομή ουράς, μπορούμε να γράψουμε προγράμματα σε στυλ περάσματος συνεχειών και να υλοποιήσουμε την call/cc. (Στο στυλ περάσματος συνεχειών η call/cc γίνεται μια απλή συνάρτηση που μπορεί να γραφεί σαν συνάρτηση του λ-λογισμού.) Αυτό είναι συνηθισμένο στη Haskell, όπου είναι εύκολο να κατασκευαστεί μια "Μονάδα που περνάει συνέχειες" (για παράδειγμα, η μονάδα Cont και ο μετασχηματιστής μονάδων ContT στη βιβλιοθήκη mtl). Η υποστήριξη για αναδρομή ουράς χρειάζεται γιατί στο στυλ περάσματος συνεχειών μια συνάρτηση δεν επιστρέφει ποτέ: όλες οι κλήσεις συναρτήσεων είναι κλήσεις ουράς.

Συνέχειες στην ανάπτυξη λογισμικού για τον Ιστό Μια περιοχή που χρησιμοποιεί πρακτικά τις συνέχειες είναι η ανάπτυξη λογισμικού ιστού.[8][9] Η χρήση των συνεχειών προστατεύει τον προγραμματιστή από την έλλειψη κατάστασης (state) στο πρωτόκολλο HTTP. Στο παραδοσιακό μοντέλο προγραμματισμόυ για τον Ιστό, η έλλειψη κατάστασης ανακλάται στη δομή του προγράμματος, οδηγώντας σε κώδικα που βασίζεται σε ένα μοντέλο ακατάλληλο να εκφράσει υπολογιστικά προβλήματα. Οι συνέχειες επιτρέπουν κώδικα που έχει τις χρήσιμες ιδιότητες της αναστροφής του ελέγχου(inversion of control), αποφεύγοντας τα προβλήματά του. Το Inverting back the inversion [10] (Αγγλικά) είναι μια δυημοσίευση που προσφέρει μια καλή εισαγωγή στην εφαρμογή των συνεχειών στον προγραμματισμό λογισμικού Ιστού. Κάποιοι από τους πιο γνωστούς εξυπηρετητές Ιστού που υποστηρίζουν συνέχειες είναι ο PLT Scheme Web Server(documentation) [11], το UnCommon Web Framework [12] και το Weblocks Web framework [13] για την Common Lisp, το πλαίσιο Seaside για την Smalltalk, το Ocsigen/Eliom [14] για την OCaml, το Continuity [7] για την Perl, το Wee [15] για τη Ruby, και το πλαίσιο Nagare [16] για την Python. Το πλαίσιο εφαρμογών ιστού Apache Cocoon επίσης παρέχει συνέχειες (βλ. το εγχειρίδιο του Cocoon [17]).

192


Συνέχεια (πληροφορική)

193

Είδη συνεχειών Η υποστήριξη συνεχειών διαφέρει αρκετά κατά περίπτωση. Μια γλώσσα προγραμματισμού υποστηρίζει επανακαλούμενες (re-invocable) συνέχειες αν μια συνέχεια μπορεί να καλείται συνεχώς (ακόμα και όταν έχει επιστρέψει). Τέτοιες συνέχειες εισήχθησαν από τον Peter J. Landin με τον τελεστή J (Jump) που μετέφερε τη ροή του ελέγχου πίσω στο μέσο μιας κλήσης διαδικασίας. Έχουν ονομαστεί και "re-entrant" στη γλώσσα προγραμματισμού MzScheme. Όμως αυτή η χρήση του όρου "re-entrant" μπορεί να προκαλέσει πρόβλημα σε σχέση με τη χρήση της σε συζητήσεις σχετικά με τον πολυνηματικό προγραμματισμό. Ένα περιορισμένο είδος είναι η συνέχεια διαφυγής που μπορεί να χρησιμοποιηθεί για να μεταφερθούμε από το τρέχον περιβάλλον εκτέλεεσης σε ένα άλλο που το περικλείει. Πολλές γλώσσες που δεν επιτρέπουν ρητά συνέχειες επιτρέπουν χειρισμό εξαιρέσεων, ο οποίος είναι ισοδύναμος με τις συνέχειες διαφυγής και μπορεί να χρησιμοποιηθεί για τους ίδιους σκοπούς. Οι setjmp/longjmp της C είναι επίσης ισοδύναμες: μπορούν να χρησιμοποιηθούν μόνο για να ξετυλίξουν τη στοίβα. Οι συνέχειες διαφυγής μπορούν επίσης να χρησιμοποιηθούν για να υλοποιήσουν βελτιστοποίηση κλήσης ουράς.

Μειονεκτήματα Οι συνέχειες είναι η συναρτησιακή έκφραση της εντολής GOTO, και χαρακτηρίζεται από κάποια παρόμοια με αυτήν πρβλήματα. Αν και είναι χρήσιμες σε πολλές περιπτώσεις (π.χ. προγραμματισμός εφαρμογών Ιστού), η συχνή χρήση τους μπορεί να οδηγήσει κώδικα με πολύπλοκη ροή ελέγχου που είναι δύσκολος στην κατανόηση. Για παράδειγμα, η γλώσσα προγραμματισμού Unlambda χρησιμοποιεί την κλήση-με-τρέχουσα-συνέχεια λόγω της δυσκολίας της στην κατανόηση. Οι παρακάτω εξωτεριοκι σύνδεσμοι αναφέρουν περισσότερες πληροφορίες για το θέμα.

Γλωσσολογία Κάποια φαινόμενα στις φυσικές γλώσσες έχουν περιγραφει με τη χρήση φραγμένων συνεχειών (delimited continuations). Ανεπίσημα, οι συνέχειες μπορούν να εξηγήσουν την ομοιότητα μεταξύ των προτάσεων "η Alice βλέπει τον Bob"—τυπικά, —και "η Alice βλέπει όλους τους ανθρώπους", δηλ.. . Δείτε τη δημοσίευση του Chris Barker Continuations in Natural Language γραμματική Montague.

Δείτε επίσης • • • • • • •

Φραγμένη συνέχεια Κλείσιμο Στυλ περάσματος συνεχειών Ροή ελέγχου Συρρουτίνα Δηλωτική σημασιολογία GOTO

[18]

για λεπτομέρειες. Δείτε επίσης τη


Συνέχεια (πληροφορική)

Παραπομπές [1] Call with current continuation for C programmers (http:/ / community. schemewiki. org/ ?call-with-current-continuation-for-C-programmers). Community-Scheme-Wiki (12 Οκτωβρίου 2008) (Αγγλικά) [2] John C. Reynolds. "The discoveries of continuations" (ftp:/ / ftp. cs. cmu. edu/ user/ jcr/ histcont. pdf). Lisp and Symbolic Computation, 6(3-4):233–248, 1993. (Αγγλικά) [3] Steve "Slug" Russell (http:/ / www. computernostalgia. net/ articles/ steveRussell. htm). Computer History (Αγγλικά) [4] Palmer, Luke (June 29, 2004). undo()? ("continuation sandwich" example) (http:/ / groups. google. com/ group/ perl. perl6. language/ msg/ b0cfa757f0ce1cfd). perl.perl6.language (newsgroup) (ανακτήθηκε 2009-10-04 ) (Αγγλικά) [5] Haynes, C. T., Friedman, D. P., and Wand, M. 1984. Continuations and coroutines. In Proceedings of the 1984 ACM Symposium on LISP and Functional Programming (Austin, Texas, United States, August 06 - 08, 1984). LFP '84. ACM, New York, NY, 293-298. [6] http:/ / search. cpan. org/ perldoc?Coro [7] http:/ / search. cpan. org/ perldoc?Continuity [8] http:/ / readscheme. org/ xml-web/ [9] http:/ / www. double. co. nz/ pdf/ continuations. pdf [10] http:/ / www. double. co. nz/ pdf/ inverting-back-the-inversion. pdf [11] http:/ / download. plt-scheme. org/ doc/ 372/ html/ web-server/ [12] http:/ / common-lisp. net/ project/ ucw [13] http:/ / common-lisp. net/ project/ cl-weblocks/ [14] http:/ / www. ocsigen. org/ [15] http:/ / github. com/ mneumann/ wee [16] http:/ / www. nagare. org/ [17] http:/ / cocoon. apache. org/ 2. 1/ userdocs/ flow/ continuations. html [18] http:/ / www. cs. bham. ac. uk/ ~hxt/ cw04/ barker. pdf

Περαιτέρω διάβασμα • Peter Landin. A Generalization of Jumps and Labels Report. UNIVAC Systems Programming Research. August 1965. Reprinted in Higher Order and Symbolic Computation, 11(2):125-143, 1998, with a foreword by Hayo Thielecke. • Drew McDermott and Gerry Sussman. The Conniver Reference Manual MIT AI Memo 259. May 1972. • Daniel Bobrow: A Model for Control Structures for Artificial Intelligence Programming Languages IJCAI 1973. • Carl Hewitt, Peter Bishop and Richard Steiger. A Universal Modular Actor Formalism for Artificial Intelligence IJCAI 1973. • Christopher Strachey and Christopher P. Wadsworth. Continuations: a Mathematical semantics for handling full jumps Technical Monograph PRG-11. Oxford University Computing Laboratory. January 1974. Reprinted in Higher Order and Symbolic Computation, 13(1/2):135—152, 2000, with a foreword by Christopher P. Wadsworth. • John Reynolds. Definitional Interpreters for Higher-Order Programming Languages Proceedings of 25th ACM National Conference, pp. 717–740, 1972. Reprinted in Higher-Order and Symbolic Computation 11(4):363-397, 1998, with a foreword. • John Reynolds. On the Relation between Direct and Continuation Semantics Proceedings of Second Colloquium on Automata, Languages, and Programming. LNCS Vol. 14, pp. 141–156, 1974. • Gerald Sussman and Guy Steele. SCHEME: An Interpreter for Extended Lambda Calculus AI Memo 349, MIT Artificial Intelligence Laboratory, Cambridge, Massachusetts, December 1975. Reprinted in Higher-Order and Symbolic Computation 11(4):405-439, 1998, with a foreword. • Robert Hieb, R. Kent Dybvig, Carl Bruggeman. Representing Control in the Presence of First-Class Continuations Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, pp. 66–77. • Will Clinger, Anne Hartheimer, Eric Ost. Implementation Strategies for Continuations Proceedings of the 1988 ACM conference on LISP and Functional Programming, pp. 124–131, 1988. Journal version: Higher-Order and Symbolic Computation, 12(1):7-45, 1999.

194


Συνέχεια (πληροφορική)

Εξωτερικοί σύνδεσμοι • Continuations for Curmudgeons (http://www.intertwingly.net/blog/2005/04/13/ Continuations-for-Curmudgeons) by Sam Ruby (Αγγλικά) • Teach Yourself Scheme in Fixnum Days (http://www.ccs.neu.edu/home/dorai/t-y-scheme/ t-y-scheme-Z-H-15.html#node_chap_13) by Dorai Sitaram features a nice chapter on continuations. (Αγγλικά) • Continuations and Stackless Python (http://www.stackless.com/spcpaper.htm) by Christian Tismer (Αγγλικά) • On-line proceedings of the Fourth ACM SIGPLAN Workshop on Continuations (http://www.cs.bham.ac.uk/ ~hxt/cw04/cw04-program.html) (Αγγλικά) • On-line proceedings of the Second ACM SIGPLAN Workshop on Continuations (http://www.brics.dk/~cw97/ ) (Αγγλικά) • Continuation, functions and jumps (http://www.cs.bham.ac.uk/~hxt/research/Logiccolumn8.pdf) (Αγγλικά) • Rhino With Continuations (http://wiki.apache.org/cocoon/RhinoWithContinuations) (Αγγλικά) • Continuations in pure Java (http://rifers.org/wiki/display/RIFE/Web+continuations) from the RIFE web application framework (Αγγλικά) • Debugging continuations in pure Java (http://rifers.org/theater/debugging_continuations) from the RIFE web application framework (Αγγλικά) • Comparison of generators, coroutines, and continuations, source of the above example (http://mail.python.org/ pipermail/python-dev/1999-July/000467.html) (Αγγλικά) Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το άρθρο Continuation (http:/ / en. wikipedia. org/ wiki/ Continuation) της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 3.0 (http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/ ). ( ιστορικό/συντάκτες (http:/ / en. wikipedia. org/ wiki/ Continuation)).

195


196

Σύστημα αρχείων Σύστημα αρχείων Ένα σύστημα αρχείων (ΣΑ, file system ή filesystem ή FS) είναι μια μέθοδος για την αποθήκευση και την οργάνωση των δεδομένων των αρχείων που χρησιμοποιούνται σε ηλεκτρονικό υπολογιστή. Ουσιαστικά, οργανώνει αυτά τα αρχεία σε μια βάση δεδομένων με σκοπό την αποθήκευση, την οργάνωση, τη διαχείριση, και την ανάκτηση τους από το λειτουργικό σύστημα του υπολογιστή. Τα συστήματα αρχείων χρησιμοποιούνται σε συσκευές αποθήκευσης δεδομένων, όπως οι σκληροί δίσκοι ή τα CD-ROM για να παρακολουθείται η φυσική θέση των αρχείων πάνω στο μέσο. Πέρα από αυτό, τα συστήματα αρχείων μπορούν να παρέχουν πρόσβαση σε δεδομένα σε ένα διακομιστή αρχείων, δρώντας ως πελάτες για ένα πρωτόκολλο δικτύου (π.χ. πελάτες NFS, πελάτες SMB ή πελάτες 9P), ή μπορεί να είναι εικονικά και να υπάρχουν μόνο ως τρόπος πρόσβασης για τα εικονικά δεδομένα (π.χ. procfs). Διαφέρουν από μια υπηρεσία καταλόγου ή μητρώου.

Πλευρές των συστημάτων αρχείων Τα περισσότερα συστήματα αρχείων κάνουν χρήση μιας συσκευής αποθήκευσης δεδομένων η οποία προσφέρει πρόσβαση σε έναν πίνακα φυσικών τομέων ορισμένου μεγέθους, κατά κανόνα μια δύναμη του 2 σε μέγεθος (512 bytes ή 1, 2, ή 4 KiB είναι οι πιο συχνές). Το σύστημα αρχείων είναι υπεύθυνο για να οργανώσει τους τομείς αυτούς σε αρχεία και καταλόγους, καθώς και για την παρακολούθηση του ποιοι τομείς ανήκουν σε ποιο αρχείο και ποιοι δεν χρησιμοποιούνται. Τα περισσότερα συστήματα αρχείων αντιστοιχούν τα δεδομένα σε μονάδες σταθερού μεγέθους («δέσμες» ή «μπλοκ») που περιέχουν ένα συγκεκριμένο αριθμό τομέων δίσκου (συνήθως 1-64) που είναι και το μικρότερο ποσό χώρου στο δίσκο που μπορεί να διατεθεί για να διατηρήσει ένα αρχείο. Ωστόσο, τα συστήματα αρχείων δεν χρειάζεται να κάνουν χρήση μιας συσκευής αποθήκευσης. Ένα σύστημα αρχείων μπορεί να χρησιμοποιηθεί για να οργανώνει και να εκπροσωπεί την πρόσβαση σε οποιαδήποτε δεδομένα, είτε πρόκειται για αποθήκευση ή δημιουργούνται δυναμικά (π.χ., procfs).

Ονόματα αρχείων Ένα όνομα αρχείου είναι ένα όνομα που αποδίδεται σε ένα αρχείο προκειμένου να διασφαλιστεί ο τόπος αποθήκευσης στη μνήμη του υπολογιστή. Με αυτό το όνομα ένα αρχείο μπορεί να προσπελαστεί. Ανεξάρτητα αν ένα σύστημα αρχείων αναφέρεται σε μια συσκευή αποθήκευσης ή όχι, συνήθως έχει καταλόγους μέσα στους οποίους συνδέονται τα ονόματα των αρχείων με τα αρχεία, και, συνήθως αυτή η σύνδεση γίνεται με την αντιστοίχιση του ονόματος σε κάποιον δείκτη σε ένα πίνακα εκχώρησης αρχείων, όπως είναι ο FAT σε ένα αρχείο DOS σύστημα, ή ένα inode σε ένα σύστημα αρχείων τύπου Unix. Ο κατάλογος αυτός μπορεί να είναι επίπεδος, ή να επιτρέπει ιεραρχίες όπου κάθε κατάλογος να μπορεί να περιέχει άλλους υποκαταλόγους. Σε ορισμένα συστήματα αρχείων, τα ονόματα αρχείων είναι δομημένα, με ιδιαίτερη σύνταξη για τις επεκτάσεις των ονομάτων των αρχείων και τους αριθμούς έκδοσης. Σε άλλες περιπτώσεις, τα ονόματα αρχείων είναι απλές φράσεις και τα μεταδεδομένα κάθε αρχείου αποθηκεύονται αλλού.


Σύστημα αρχείων

Μεταδεδομένα Πολλές πληροφορίες καταγραφής συνήθως συνοδεύουν κάθε αρχείο. Αυτές οι πληροφορίες μπορεί να είναι: • το μέγεθος του αρχείου. • η ημερομηνίες δημιουργίας, προσπέλασης, τελευταίας τροποποίησης κλπ. • ο τύπος του αρχείου (π.χ. αν το αρχείο είναι κατάλογος και όχι απλό αρχείο, ή με ποιο πρόγραμμα μπορεί να ανοιχτεί το αρχείο). • άδειες χρήσης του αρχείου (ποιος μπορεί να το διαβάσει ή να το εκτελέσει).

Είδη συστημάτων αρχείων Συστήματα αρχείων δίσκου Τα συστήματα αρχείων δίσκου είναι συστήματα αρχείων ειδικά σχεδιασμένα για τη διαχείριση αρχείων σε δίσκους αποθήκευσης δεδομένων. Ενδεικτικά συστήματα αρχείων δίσκου είναι τα FAT (FAT12, FAT16, FAT32, exFAT), NTFS, HFS και HFS+, HPFS, UFS, ext2, ext3, ext4, btrfs, ISO 9660, ODS-5, Veritas File System, ZFS και UDF.

Συστήματα αρχείων μαγνητοταινίας Τα συστήματα αρχείων μαγνητοταινίας είναι συστήματα αρχείων ειδικά σχεδιασμένα για τη διαχείριση αρχείων σε μαγνητοταινίες αποθήκευσης δεδομένων. Συνήθως είναι διαφορετικά από τα συστήματα αρχείων δίσκου καθώς στα δεδομένα μιας μαγνητοταινίας η προσπέλαση είναι σειριακή.

Λειτουργικά συστήματα Τα περισσότερα λειτουργικά συστήματα παρέχουν ένα σύστημα αρχείων, καθώς ένα σύστημα αρχείων αποτελεί αναπόσπαστο μέρος κάθε σύγχρονου λειτουργικού συστήματος. Τα λειτουργικά συστήματα των πρώτων μικροϋπολογιστών η μόνη πραγματική αποστολή τους ήταν η διαχείριση αρχείων - γεγονός που αντικατοπτρίζεται στα ονόματά τους (βλέπε DOS). Μερικά πρώιμα λειτουργικά συστήματα είχαν ένα ξεχωριστό συστατικό για το χειρισμό των συστημάτων αρχείων που το ονόμαζαν λειτουργικό σύστημα δίσκου. Σε κάποιους μικροϋπολογιστές, το λειτουργικό σύστημα δίσκου ήταν φορτωμένο χωριστά από το υπόλοιπο λειτουργικό σύστημα. Τα πρώτα λειτουργικά συστήματα, συνήθως υποστήριζαν μόνο ένα μητρικό, ανώνυμο σύστημα αρχείων. Για παράδειγμα το CP/M υποστήριζε μόνο το δικό του σύστημα αρχείων, το οποίο θα μπορούσαμε να το ονομάσουμε «CP/M σύστημα αρχείων" αλλά γενικά δεν έχει καμία επίσημη ονομασία.

Δείτε επίσης • Άδειες συστήματος αρχείων

Εξωτερικοί σύνδεσμοι • Τεχνικές και Εργαλεία Σύγκρισης Συστημάτων Αρχείων [1] (Αγγλικά)

Παραπομπές [1] http:/ / www. fsl. cs. sunysb. edu/ project-fsbench. html

197


198

Σχεδίαση για Όλους Σχεδίαση για Όλους Ορισμοί Διάφοροι ορισμοί της Σχεδίασης για Όλους (Design for All– DfA) (ή Καθολική σχεδίαση –, σύμφωνα με το αμερικανικό ιδίωμα) χρησιμοποιούνται: π.χ. "Ο σχεδιασμός προϊόντων και των περιβαλλόντων έτσι ώστε να μπορούν να χρησιμοποιούνται από όλους τους ανθρώπους, στο μεγαλύτερο δυνατό βαθμό, χωρίς την ανάγκη για προσαρμογή ή εξειδικευμένο σχεδιασμό » (The Trace Center)[1] , «ο σχεδιασμός προϊόντων, υπηρεσιών και περιβαλλόντων, έτσι ώστε να μπορούν να χρησιμοποιηθούν από όσο το περισσότερους χρήστες, ανεξάρτητα από την ηλικία τους και τα φυσικά τους χαρακτηριστικά (π.χ., ύψος, οπτικές ικανότητες, ικανότητες ακοής, και κινητικότητας)» [2] , "Σχεδίαση για όλους στην κοινωνία της πληροφορίας είναι η συνειδητή και συστηματική προσπάθεια να εφαρμοστούν προληπτικά αρχές, μέθοδοι και εργαλεία, προκειμένου να αναπτυχθούν τεχνολογίες, προϊόντα και υπηρεσίες Πληροφορικής και Τηλεπικοινωνιών (ΤΠΕ), ώστε να είναι προσβάσιμες και εύχρηστες από όλους τους πολίτες , αποφεύγοντας έτσι την ανάγκη για προσαρμογές εκ των υστέρων, ή εξειδικευμένων μελετών» (Στεφανίδης κ.ά., 2001)[3] . Η Σχεδίαση για όλους, στο πλαίσιο των Τεχνολογιών Πληροφορικής και Επικοινωνιών (ΤΠΕ) δεν πρέπει να νοείται ως μια προσπάθεια για μια εκ των προτέρων ενιαία λύση για όλους, αλλά ως σχεδιαστική προσέγγιση με επίκεντρο το χρήστη, για την παροχή προϊόντων που μπορούν να αντιμετωπίσουν αυτόματα το φάσμα των ανθρώπινων ικανοτήτων, τις δεξιότητες, τις απαιτήσεις και προτιμήσεις. Ο όρος Σχεδίαση για Όλους (Ευρώπη) είτε υπάγεται είτε είναι συνώνυμος με άλλους όρους, όπως • • • •

Προσβάσιμη σχεδίαση, Σχεδίαση ανταποκρινόμενη σε όλους (inclusive design), Σχεδίαση χωρίς φραγμούς (barrier-free), Καθολική σχεδίαση (ΗΠΑ),

Ο κάθε όρος τονίζει διαφορετικές απόψεις της έννοιας

Σχετικές έννοιες Υποστηρικτική Τεχνολογία, Καθολική Πρόσβαση, Καθολικός Σχεδιασμός, θεωρούνται έννοιες που σχετίζονται με την υποστήριξη της ηλεκτρονικής ενσωμάτωσης (e-Inclusion). Παραδοσιακά, τα ζητήματα προσβασιμότητας έχουν αντιμετωπιστεί με τεχνικές προσαρμογές στο λογισμικό αλλά και τη χρήση των προϊόντων βοηθητικής τεχνολογίας. Με προφανή αναφορά στο χώρο της αναπηρίας, η καθολική πρόσβαση αφορά την παροχή σε όλους πρόσβασης σε υπηρεσίες, τεχνολογίες και προϊόντα ΤΠΕ. Η Καθολική Πρόσβαση συνεπάγεται την προσβασιμότητα και τη χρηστικότητα των τεχνολογιών πληροφορικής και επικοινωνιών, από οποιονδήποτε, σε οποιοδήποτε μέρος και ανά πάσα στιγμή, καθώς και την ένταξή τους σε κάθε πλαίσιο διαβίωσης. Έχει ως στόχο να επιτρέψει την ισότιμη πρόσβαση και την ενεργό συμμετοχή δυνητικά σε όλους τους πολίτες, με την ανάπτυξη καθολικά προσβάσιμων και εύχρηστων προϊόντων και υπηρεσιών και την κατάλληλη υποστήριξη των λειτουργιών τους σε κάθε περιβάλλον χρήσης. Τα συγκεκριμένα προϊόντα και οι υπηρεσίες πρέπει να μπορούν να ικανοποιούν τις ιδιαίτερες απαιτήσεις των χρηστών σε διάφορα πλαίσια της χρήσης, ανεξάρτητα από τη γεωγραφική τους θέση, την τεχνολογική υποδομή που χρησιμοποιείται ή το περιβάλλον λειτουργίας τους.


Σχεδίαση για Όλους Η Σχεδίαση για Όλους έχει εισαχθεί ως έννοια στην Επιστήμη Υπολογιστών, και συγκεκριμένα στα πλαίσια της Επικοινωνίας Ανθρώπου – Υπολογιστή. Η συλλογιστική βάση είναι η ιδέα πως αφού κάθε χρήστης είναι διαφορετικός και έχει διαφορετικές απαιτήσεις αναφορικά με την προσβασιμότητα και την ευχρηστία των προϊόντων/υπηρεσιών που χρησιμοποιεί, είναι απαραίτητο οι απαιτήσεις αυτές να ληφθούν υπόψη στα πλαίσια μιας ανθρωποκεντρικής σχεδιαστικής διαδικασίας.

Οφέλη και προκλήσεις Η Ανακοίνωση της Ευρωπαϊκής Επιτροπής σχετικά με την ηλεκτρονική προσβασιμότητα - e-Accessibility (Communication on e-Accessibility)[4] , καθορίζει ένα σύνολο προκλήσεων, πρακτικής φύσης, της αγοράς, αλλά και νομικά θέματα και θέματα πολιτικής για τη βελτίωση της προσβασιμότητας και της ηλεκτρονικής ενσωμάτωσης στην Ευρώπη. Παρουσιάζει δε μια τριπλή προσέγγιση που βασίζεται: • στις απαιτήσεις προσβασιμότητας στις δημόσιες συμβάσεις • στην πιστοποίηση της προσβασιμότητας, και • την καλύτερη αξιοποίηση της υφιστάμενης νομοθεσίας. Συνεπώς, οι προκλήσεις που θα πρέπει να αντιμετωπιστούν περιλαμβάνουν: • την εισαγωγή συγκεκριμένων νομοθετικών μέτρων για τη συμπλήρωση και ενίσχυση της υφιστάμενης νομοθεσίας • την ευαισθητοποίηση της βιομηχανίας, • την αποτελεσματική συγκριτική αξιολόγηση, • την παροχή εναρμονισμένων προτύπων τυποποίησης, • τη η δημιουργία ενός προγράμματος σπουδών για τη Σχεδίαση για Όλους και, • την αντιμετώπιση μελλοντικών ερευνητικών δραστηριοτήτων. Για μια διεξοδική συζήτηση για τις προκλήσεις και τα οφέλη της Σχεδίασης για Όλους στο πλαίσιο των ΤΠΕ σήμερα, δείτε επίσης τη Λευκή Βίβλο του δικτύου EDeAN (2005)[5] και την αναφορά "Report on the impact of technological developments on eAccessibility"[6] του Ευρωπαϊκού έργου DfA@eInclusion[7] .

Ευρωπαϊκό Νομοθετικό και ρυθμιστικό πλαίσιο Το παρόν Ευρωπαϊκό πολιτικό πλαίσιο για την προσβασιμότητα στην Κοινωνία της Πληροφορίας είναι η Πρωτοβουλία i2010 [8] . Η Πρωτοβουλία "i2010 - Μια ευρωπαϊκή κοινωνία των πληροφοριών για την ανάπτυξη και την απασχόληση" προωθήθηκε από την Ευρωπαϊκή Επιτροπή ως το πολιτικό πλαίσιο για τις κύριες προκλήσεις και τις εξελίξεις στην Κοινωνία της Πληροφορίας Πληροφοριών και τους τομείς των Μέσων μέχρι το 2010. Προωθεί μια ανοικτή και ανταγωνιστική ψηφιακή οικονομία και υπογραμμίζει τις ΤΠΕ ως οδηγό για την ηλεκτρονική ενσωμάτωση και τη βελτίωση της ποιότητας ζωής. Η πρωτοβουλία περιέχει μια σειρά οργάνων πολιτικής της ΕΕ για να ενθαρρύνει την ανάπτυξη της ψηφιακής οικονομίας, όπως τα ρυθμιστικά όργανα, έρευνα και ανάπτυξη και οι συνεργασίες με τους συμμετόχους. Ισότητα και μη-διάκριση Ο στόχος της στρατηγικής της Ευρωπαϊκής Ένωσης για την Αναπηρία είναι μια κοινωνία ανοικτή και προσβάσιμη από όλους. Τα εμπόδια πρέπει να προσδιοριστούν και να καταργηθούν. Η στρατηγική της Ευρωπαϊκής Ένωσης για την Αναπηρία εστιάζει κυρίως σε τρεις τομείς: συνεργασία μεταξύ της Επιτροπής και των κρατών μελών, πλήρης συμμετοχή των ατόμων με αναπηρία (ΑμεΑ), και την αποτελεσματική προώθηση των ζητημάτων Αναπηρίας στη διαμόρφωση πολιτικής. Η μη-διάκριση είναι επίσης μια από τις γενικές αρχές της "Συνθήκης για τα δικαιώματα των Ατόμων με Αναπηρία"[9] , που υιοθετήθηκε από τα Ηνωμένα Έθνη στη Γενική Συνέλευση της 13 Δεκεμβρίου 2006.

199


Σχεδίαση για Όλους Τηλεπικοινωνίες και Κοινωνία της Πληροφορίας Υπάρχει μια μακροχρόνια παράδοση στην Ευρωπαϊκής νομοθεσία όσον αφορά τις τηλεπικοινωνίες. Το 2002, η Ευρωπαϊκή Ένωση υιοθέτησε ένα νέο ρυθμιστικό πλαίσιο για τα ηλεκτρονικά δίκτυα επικοινωνιών και τις υπηρεσίες που καλύπτουν όλες τις μορφές σταθερών και ασύρματων τηλεπικοινωνιών, μετάδοσης στοιχείων και ραδιοφωνικής αναμετάδοσης. Σε σχέση με τη Σχεδίαση για Όλους, οι σημαντικότερες οδηγίες είναι η Οδηγία για ένα κοινό ρυθμιστικό πλαίσιο[10] και η οδηγία για τη παγκόσμια υπηρεσία και τα δικαιώματα των χρηστών σχετικά με τα ηλεκτρονικά δίκτυα επικοινωνιών και τις υπηρεσίες[11] (Universal Service Directive). Δημόσιες προμήθειες Οι συμβάσεις για τις δημόσιες προμήθειες αποτελούν σημαντικό εργαλείο για την προώθηση της προσβασιμότητας. Το νομοθετικό πακέτο των οδηγιών για τις δημόσιες συμβάσεις, που εγκρίθηκε το 2004 από το Ευρωπαϊκό Κοινοβούλιο και το Συμβούλιο Υπουργών, αναμένεται να συντελέσει στον εκσυγχρονισμό και στην απλοποίηση των διαδικασιών για της Δημόσιες προμήθειες. Οι νέες οδηγίες καθιστούν δυνατό να ληφθούν υπόψη οι ανάγκες προσβασιμότητας σε διάφορα στάδια της διαδικασίας προμηθειών. Στο σημείο αυτό, πρέπει να τονιστεί η σημασία της χρήσης προτύπων κατά την παραγωγή των τεχνικών προδιαγραφών. Πρότυπα που έχουν αναπτυχθεί από οργανισμούς τυποποίησης (CEN, ETSI και ITU) μπορούν να χρησιμοποιηθούν για αυτόν το λόγο. Επιπλέον, σχετικές οδηγίες (π.χ. οι οδηγίες της Κοινοπραξίας για τον Παγκόσμιο Ιστό - WAI, ή εθνικές οδηγίες) μπορούν να χρησιμοποιηθούν.

Σχετικές οδηγίες και πρότυπα Στις ΗΠΑ, την Αυστραλία, την Ιαπωνία και στην Ευρωπαϊκή Ένωση όλο και περισσότερες νομοθετικές ενέργειες τίθενται σε ισχύ, με στόχο τη διασφάλιση της προσβασιμότητας και της ευχρηστίας προϊόντων και υπηρεσιών όχι μόνο από «τυπικούς» χρήστες αλλά και από άλλους όπως τα ηλικιωμένα άτομα, και τα ΑμεΑ. Δεδομένου ότι θα ήταν πιο πολύπλοκο να προσδιοριστούν γραπτώς οι σχετικές τεχνικές απαιτήσεις σε έναν νόμο, τα νομοθετικά κείμενα αναφέρονται κατά προτίμηση στα διεθνή πρότυπα. Πρόσφατες εξελίξεις στην Τυποποίηση σχετικά με την Σχεδίαση για Όλους (επίσημα πρότυπα) Το ζήτημα της τυποποίησης σε σχέση με τη Σχεδίαση για Όλους, αναφέρεται ρητά στα σχέδια δράσης eEurope2002[12] και i2010[13] της Ευρωπαϊκής Ένωσης. Προτείνονται μια σειρά ενεργειών και στρατηγικών προς την κατεύθυνση της τυποποίησης της Σχεδίασης για Όλους, όπως: • • • •

η οργάνωση και ο συντονισμός ομάδων εργασίας και σχετικών οργανισμών ο εκδημοκρατισμός των διαδικασιών τυποποίησης η αυξανόμενη επιρροή ανεπίσημων οργανισμών τυποποίησης και η καθιέρωση σχετικών με την τυποποίηση φόρουμ συζητήσεων ανοικτών και στους μη ειδικούς.

Η Σχεδίαση για όλους σε πρότυπα σχετικά με τις ΤΠΕ • ETSI EG 202 116 V1.2.2 (2009-03) ETSI Guide Human Factors (HF); Guidelines for ICT products and services; "Design for All"[14] . • Web Content Accessibility Guidelines – Οδηγίες για την προσβασιμότητα περιεχομένου του Παγκόσμιου Ιστού Οι Οδηγίες για την προσβασιμότητα περιεχομένου του Παγκόσμιου Ιστού[15] καλύπτουν ένα ευρύ φάσμα Οδηγιών για την κατασκευή προσβάσιμου διαδικτυακού περιεχομένου. Η τήρηση/ικανοποίηση των οδηγιών αυτών καθιστά το περιεχόμενο διαδικτυακών τόπων προσβάσιμο αλλά και εύχρηστο από ένα ευρύ φάσμα χρηστών συμπεριλαμβανομένων ατόμων με αναπηρία (π.χ. άτομα με μερική ή ολική απώλεια όρασης, κώφωση, κινητικές αναπηρίες, φωτοευαισθησία, μαθησιακές δυσκολίες ή /και συνδυασμούς αυτών).

200


Σχεδίαση για Όλους

Περιοχές εφαρμογής Οι περιοχές εφαρμογής της Σχεδίασης για Όλους στο πλαίσιο των ΤΠΕ, περιλαμβάνουν ουσιαστικά κάθε τομέα σε σχέση με τις τεχνολογίες πληροφορικής και επικοινωνιών. Η σημασία των περιοχών εφαρμογής απεικονίζει το ρόλο τους στην καθιέρωση μιας αποδεκτής κοινωνίας των πληροφοριών, αλλά και την ποικιλομορφία των ανθρώπινων δραστηριοτήτων που επηρεάζουν. Συνοπτικά, οι κρίσιμες περιοχές εφαρμογής της Σχεδίασης για Όλους, περιλαμβάνουν: • • • • • • •

Δια βίου μάθηση Υπηρεσίες ηλεκτρονικής διακυβέρνησης Δημόσια συστήματα πληροφόρησης, τερματικά και συσκευές (π.χ. περίπτερα, έξυπνα περιβάλλοντα) Υπηρεσίες συναλλαγών (π.χ. τραπεζικές εργασίες) Εφαρμογές και υπηρεσίες ηλεκτρονικού εμπορίου, ηλεκτρονικά καταστήματα Κοινωνικές υπηρεσίες για τους πολίτες (π.χ. διοίκηση, ηλικιωμένοι, μεταφορά, υγειονομική περίθαλψη) Εργαλεία που επιτρέπουν την παροχή υπηρεσιών προστιθέμενης αξίας (π.χ. δημιουργία, αποθήκευση, ανάκτηση και ανταλλαγή εμπειριών και απόψεων χρηστών, κ.α.) • Ασφάλεια Για μια πιο αναλυτική αναφορά δείτε ακόμα: White Paper "Toward an Information Society for All: An International R&D Agenda" (1998)[16] δημοσίευση του διεθνούς επιστημονικού Φόρουμ "Towards an Information Society for All" (ISF-IS4ALL)[17] .

Εκπαίδευση και κατάρτιση Ένας σημαντικός μοχλός για τη βελτίωση και περεταίρω συνειδητοποίηση όσον αφορά τη Σχεδίαση για Όλους είναι η ανάπτυξη προγραμμάτων εκπαίδευσης και κατάρτισης. Επαγγελματίες με γνώση και εμπειρία στη Σχεδίαση για Όλους είναι πλέον απαραίτητοι ολοένα και περισσότερο από την βιομηχανία των ΤΠΕ. Επιπλέον, γίνεται όλο και πιο σημαντικό οι επαγγελματίες που ήδη δραστηριοποιούνται στην αγορά ΤΠΕ, να αποκτήσουν σχετικές δεξιότητες και εμπειρία. Ωστόσο, τα προγράμματα πανεπιστημιακών σπουδών που εξειδικεύονται στη Σχεδίαση για όλους ή συμπεριλαμβάνουν μία ή και περισσότερες θεματικές ενότητες μαθημάτων, στην Ευρώπη, είναι ολιγάριθμα[18] . Τη συγκεκριμένη έλλειψη φιλοδοξεί να καλύψει το Ευρωπαϊκό Έργο DfA@eInclusion, που μεταξύ άλλων, έχει στόχο τη δημιουργία τέτοιων προγραμμάτων σπουδών, που περιλαμβάνουν[19] : • Μια εισαγωγική σειρά μαθημάτων προπτυχιακού επιπέδου με στόχο να βοηθήσει τους σπουδαστές να κατανοήσουν τα ηθικά και κοινωνικά ζητήματα σχετικά με τη Σχεδίαση για Όλους, και το ρόλο της ως ικανή και αναγκαία συνθήκη για την ισότιμη πρόσβαση και τη συμμετοχή όλων των πολιτών στην κοινωνία της πληροφορίας. • Ένα πρόγραμμα μεταπτυχιακού επιπέδου που στοχεύει να προσφέρει στους σπουδαστές τις σχετικές γνώσεις και τις προσωπικές και επαγγελματικές δεξιότητες & ικανότητες στη σχεδίαση, ανάπτυξη, εφαρμογή, αξιολόγηση και διαχείριση ένα ευρέως φάσματος προϊόντων, υπηρεσιών και συστημάτων πληροφορικής και επικοινωνιών που ικανοποιούν τις αρχές της Σχεδίασης για Όλους[20] .. Η εφαρμογή τέτοιων προγραμμάτων βρίσκεται ήδη σε εξέλιξη, για παράδειγμα στο πανεπιστήμιο του Middlesex[21] , στη Μεγ. Βρετανία και στο πανεπιστήμιο του Linz[22] , στην Αυστρία. Θέματα Σχεδίασης για όλους, στα πλαίσια προγραμμάτων των τμημάτων επιστήμης υπολογιστών διδάσκονται επίσης και στην Ελλάδα, στα αντίστοιχα τμήματα στα πανεπιστήμια Αθηνών[23] , Αιγαίου[24] και Κρήτης[25] . Η ηλεκτρονική προσβασιμότητα είναι ένας πολύ σημαντικός παράγοντας σε σχέση με την ισότιμη πρόσβαση στην κοινωνία της πληροφορίας. Πολύτιμες πληροφορίες, σχετικά πρότυπα αλλά και τεχνική καθοδήγηση προσφέρονται από την πρωτοβουλία για την ηλεκτρονική προσβασιμότητα ((Web Accessibility Initiative

201


Σχεδίαση για Όλους (WAI)[26] .) της Κοινοπραξίας για τον Παγκόσμιο Ιστό ([World Wide Web Consortium]]). Σχετικές οδηγίες γίνονται διαθέσιμες και από ομάδες που αναπτύσσουν τεχνολογίες του παγκόσμιου Ιστού, όπως για παράδειγμα τα online σεμινάρια του Opera Web Standards Curriculum[27] ).

Παραδείγματα καλής πρακτικής • Η μηχανή περιήγησης Ιστού Opera, σχεδιάστηκε με την υποχρέωση να χρησιμοποιείται από όσο το δυνατόν περισσότερους χρήστες, ακολουθώντας δηλαδή τις αρχές της Σχεδίασης για όλους • Τα ομιλούντα βιβλία (Audiobooks) αποτελούν καλά παραδείγματα Σχεδίασης για Όλους, μια που ουσιαστικά οποιοσδήποτε μπορεί έτσι να ακούσει γη να «διαβάσει» το περιεχόμενο τους • Το «Inclusive Design Toolkit»[28] παρουσιάζει αρκετά παραδείγματα εφαρμογής των Αρχών της σχεδίασης για Όλους. • Επιπλέον παραδείγματα είναι διαθέσιμα από την ενότητα Education and Training Resource[29] . στην ιστοσελίδα του EDeAN.

Σχετικά Ευρωπαϊκά δίκτυα και προγράμματα EDeAN - European Design for all eAccessibility Network EDeAN[30] - Ευρωπαϊκό δίκτυο για τη Σχεδίαση για Όλους και την ηλεκτρονική Προσβασιμότητα (European Design for All e-Accessibility Network). To EDeAN είναι ένα δίκτυο 160 οργανισμών από 23 κράτη μέλη της Ευρωπαϊκής Ένωσης, που έχει στόχο την προώθηση των αρχών της Σχεδίασης για Όλους και της ηλεκτρονικής Προσβασιμότητας, και η υποστήριξη της ισότιμης πρόσβασης όλων των Ευρωπαίων πολιτών στην κοινωνία της πληροφορίας. Το EDeAN παρέχει: • ένα ευρωπαϊκό φόρουμ συζητήσεων για ζητήματα ηλεκτρονικής προσβασιμότητας • ευαισθητοποίηση προς δημόσιους και ιδιωτικούς τομείς • πόρους και ενδιαφέρουσες πηγές και συνδέσεις σχετικά με τη σχεδίαση για όλους. Το δίκτυο συντονίζεται από τη γραμματεία που εναλλάσσεται ετησίως και τα αντίστοιχα εθνικά κέντρα επαφής που είναι τα σημεία επαφής για το EDeAN σε κάθε κράτος μέλος της ΕΕ.

EIDD - The European Institute for Design and Disability (Design for All Europe) Το EIDD[31] - Ευρωπαϊκό Ινστιτούτο για τη σχεδίαση και την αναπηρία, συστάθηκε το 1993 και αντιπροσωπεύει μέλη από 20 χώρες της ΕΕ. Ο στόχος του EIDD είναι η ενίσχυση / βελτίωση της ποιότητας ζωής μέσω της σχεδίασης για όλους, και η ενθάρρυνση της αλληλεπίδρασης και επικοινωνίας μεταξύ επαγγελματιών του χώρου.

Παραδείγματα Έργων χρηματοδοτούμενων από την Ευρωπαϊκή Επιτροπή σχετικά με τις ΤΠΕ και την ηλεκτρονική ενσωμάτωση • Design for all for e-Inclusion[32] . To DfA@eInclusion είναι έργο υποστηρικτικό του EDeAN. Το έργο έχει στόχο να αναπτύξει υποδειγματικό εκπαιδευτικό υλικό για τη διδασκαλία της Σχεδίασης για Όλους σε προπτυχιακό και μεταπτυχιακό επίπεδο, καθώς και τη δημιουργία προγραμμάτων σπουδών για τη μελέτη της Σχεδίασης για Όλους. • DIADEM[33] : Delivering Inclusive Access for Disabled or Elderly Members of the Community. Το έργο στοχεύει να αναπτύξει μια προσαρμόσιμη διεπαφή διαδικτυακού πλοηγού για άτομα με μειωμένες γνωστικές δεξιότητες, που θα μπορεί να χρησιμοποιηθεί στο σπίτι και στην εργασία. • I2Home[34] : Intuitive interaction for everyone with home appliances based on industry standards. Το έργο επιδιώκει να αναπτύξει μια ενιαία κονσόλα ελέγχου που θα επιτρέπει τη δικτυωμένη πρόσβαση σε

202


Σχεδίαση για Όλους συσκευές καθημερινής χρήσης στο σπίτι. • HaH[35] : Hearing at Home. Το έργο εξετάζει την επόμενη γενεά συσκευών που θα βοηθήσουν τα άτομα με προβλήματα ακοής να συμμετέχουν πλήρως στην κοινωνία της πληροφορίας. • CogKnow[36] : Helping people with mild dementia navigate their day. Το έργο στοχεύει να αναπτύξει μια πρωτότυπη προσθετική συσκευή για να βοηθήσει χρήστες με άνοια να πραγματοποιούν τις καθημερινές δραστηριότητές τους. • MonAmi[37] : Mainstreaming Ambient Intelligence. Το Έργο επιδιώκει να προωθήσει την προσβασιμότητα καταναλωτικών αγαθών και υπηρεσιών, με στόχο να αναπτυχθούν οι τεχνολογικές πλατφόρμες που θα επιτρέπουν σε ηλικιωμένους χρήστες και χρήστες με αναπηρία να συνεχίσουν τις δραστηριότητες τους στα σπίτια και στις κοινότητές τους. • USEM: User Empowerment in Standardisation[38] . Το Έργο στοχεύει στην εκπαίδευση και συμμετοχή των τελικών χρηστών στις διαδικασίες τυποποίησης στον τομέα των ΤΠΕ.

Δείτε ακόμα Το περιεχόμενο των σελίδων που ανοίγουν ακολουθώντας τους συνδέσμους παρακάτω, είναι διαθέσιμο στα αγγλικά. • • • • •

Η Σχεδίαση για Όλους ως σχεδιαστική προσέγγιση Καθολική Σχεδίαση Ηλεκτρονική ενσωμάτωση Ηλεκτρονική προσβασιμότητα Προσβασιμότητα του Διαδικτύου

Εξωτερικοί σύνδεσμοι Ιστοσελίδα του Ευρωπαϊκού Έργου "DfA@eInclusion" [39] Ιστοσελίδα του Ευρωπαϊκού Δικτύου European Design for All e-Accessibility Network (EDeAN) [40] Ιστοσελίδα του Ευρωπαϊκού Δικτύου EIDD - Design for All Europe [41] Ευρωπαϊκή Επιτροπή, Πύλη για την Κοινωνία της Πληροφορίας, Σχεδίαση για Όλους - Information Society Portal, Design for All [42] • Ιστοσελίδα του Εθνικού Δικτύου GR-DeAN [43] • Παρατηρητήριο για την Κοινωνία της Πληροφορίας [44] • • • •

Πηγές [1] Trace Center: General Concepts, Universal Design Principles and Guidelines (http:/ / trace. wisc. edu/ world/ gen_ud. html), Accessed 2009-10-05. [2] Fujitsu's Activities for Universal Design (http:/ / www. fujitsu. com/ downloads/ MAG/ vol41-1/ paper01. pdf), Accessed 2009-10-09. [3] User Interfaces for All: Concepts, Methods and Tools. Constantine Stephanidis, (Ed.) Lawrence Erlbaum Associates, 2001 (http:/ / www. ics. forth. gr/ hci/ publications/ book. html), Accessed 2009-10-05. [4] Communication from the Commission to the Council, the European Parliament, the European Economic and Social Committee and the Committee of the Regions: eAccessibility, Brussels 2005 (http:/ / eur-lex. europa. eu/ LexUriServ/ site/ en/ com/ 2005/ com2005_0425en01. pdf,), Accessed 2009-10-05 [5] EDeAN White Paper: promoting Design for All and e-Accessibility in Europe (http:/ / www. springerlink. com/ content/ e31p27x51v0mt60w/ ), Accessed 2009-10-05 [6] Report on the impact of technological developments on eAccessibility (http:/ / www. dfaei. org/ deliverables/ D2. 1. pdf), Accessed 2009-10-05 [7] DfA@eInclusion project website (http:/ / www. dfaei. org), Accessed 2009-10-05 [8] The i2010 initiative website (http:/ / ec. europa. eu/ information_society/ eeurope/ i2010/ index_en. htm), Accessed 2009-10-05. [9] Convention on the Rights of Persons with Disabilities (http:/ / www. un. org/ disabilities/ default. asp?navid=12& pid=150), Accessed 2009-10-05.

203


Σχεδίαση για Όλους [10] Directive 2002/21/EC of the European Parliament and of the Council of 7 March 2002 on a common regulatory framework for electronic communications networks and services (Framework Directive) (http:/ / eur-lex. europa. eu/ pri/ en/ oj/ dat/ 2002/ l_108/ l_10820020424en00330050. pdf). [11] Directive 2002/22/EC of the European Parliament and of the Council of 7 March 2002 on universal service and users' rights relating to electronic communications networks and services (Universal Service Directive) [Official Journal L 108 of 24 April 2002] (http:/ / europa. eu/ legislation_summaries/ internal_market/ single_market_services/ l24108h_en. htm), Accessed 2009-10-05. [12] Council of The European Union Commission of the European Communities: E-Europe2002: An Information Society For All Action Plan prepared by the Council and the European Commission for the Feira European Council (http:/ / ec. europa. eu/ information_society/ eeurope/ 2002/ action_plan/ pdf/ actionplan_en. pdf). [13] Communication from the Commission to the Council, the European Parliament, the European Economic and Social Committee and the Committee of the Regions - “i2010 – A European Information Society for growth and employment” {SEC(2005) 717} (http:/ / eur-lex. europa. eu/ LexUriServ/ LexUriServ. do?uri=CELEX:52005DC0229:EN:NOT). [14] ETSI EG 202 116 V1.2.1 (2002-09): Human Factors (HF); Guidelines for ICT products and services; "Design for All" (http:/ / portal. etsi. org/ mbs/ Referenced Documents/ eg_202116v010201p. pdf). [15] Web Content Accessibility Guidelines (WCAG) 2.0 (http:/ / www. w3. org/ TR/ WCAG20/ ). Accessed 2009-07-24. [16] Stephanidis, C. (Ed.), Salvendy, G., Akoumianakis, D., Bevan, N., Brewer, J., Emiliani, P.L., Galetsas, A., Haataja, S., Iakovidis, I., Jacko, J., Jenkins, P., Karshmer, A., Korn, P., Marcus, A., Murphy, H., Stary, C., Vanderheiden, G., Weber, G., & Ziegler, J. (1998): Towards an Information Society for All: An International R&D Agenda. International Journal of Human-Computer Interaction, 10 (2), 107-134 (http:/ / www. ics. forth. gr/ proj/ at-hci/ files/ white_paper_1998. pdf). [17] International Scientific Forum "Towards an Information Society for All" (http:/ / ui4all. ics. forth. gr/ isf_is4all/ about_us. html), Accessed 2009-10-05 [18] Whitney G, Keith S (2008) European Developments in the Design and Implementation of Training for eInclusion. Springer Lecture Notes in Computer Science: Computers Helping People with Special Needs (Book) Volume 5105/2008 pp156-161 [19] Keith S., Whitney G. The production of syllabi for a range of DfA courses in ICT (http:/ / www. dfaei. org/ deliverables/ Del6. 3a. pdf), November 2008. Accessed 2009-06-20. [20] Keith, S., G. Whitney, and J. Wilson, Design For All @ eInclusion: Best Practice in Education And Training, in AAATE '09. 2009: Florence. [21] MSc Digital Inclusion at Middlesex University (http:/ / www. mdx. ac. uk/ digitalinclusion). [22] at the University of Linz (http:/ / www. jku. at/ iis/ content). [23] Τμήμα Πληροφορικής και Τηλεπικοινωνιών του Εθνικού και Καποδιστριακού Πανεπιστημίου Αθηνών (http:/ / www. di. uoa. gr/ ). [24] Πανεπιστήμιο Αιγαίου, Τμήμα Μηχανικών Σχεδίασης Προϊόντων και Συστημάτων (http:/ / www. syros. aegean. gr/ ). [25] Τμήμα Επιστήμης Υπολογιστών του Πανεπιστημίου Κρήτης (http:/ / www. csd. uoc. gr/ ). [26] W3C-WAI (http:/ / www. w3. org/ WAI/ ). [27] Opera Web Standards Curriculum (http:/ / www. opera. com/ company/ education/ curriculum/ ). [28] Inclusive Design Toolkit (http:/ / www. inclusivedesigntoolkit. com/ betterdesign/ ). [29] Education and Training Resource (http:/ / www. education. edean. org/ index. php?filters=f8). [30] European Design for All e-Accessibility Network - EDeAN (http:/ / www. edean. org/ ). [31] EIDD (http:/ / designforalleurope. org/ About-EIDD/ ). [32] Ιστοσελίδα του Έργου DfA@eInclusion (http:/ / www. dfaei. org/ index. html) [33] Ιστοσελίδα του Έργου DIADEM (http:/ / www. project-diadem. eu/ ). [34] Ιστοσελίδα του Έργου I2Home (http:/ / www. i2home. org). [35] Ιστοσελίδα του Έργου HaH (http:/ / www. hearing-at-home. eu/ ). [36] Ιστοσελίδα του Έργου CogKnow (http:/ / www. cogknow. eu/ ). [37] Ιστοσελίδα του Έργου MonAmi (http:/ / www. monami. info/ ). [38] Ιστοσελίδα του Έργου USEM (http:/ / www. usem-net. eu/ ). [39] http:/ / www. dfaei. org [40] http:/ / www. edean. org [41] http:/ / www. designforalleurope. org/ About-EIDD/ [42] http:/ / ec. europa. eu/ information_society/ activities/ einclusion/ policy/ accessibility/ dfa/ index_en. htm [43] http:/ / www. e-accessibility. gr [44] http:/ / www. observatory. gr

204


205

Τεκμήριο (υπολογιστές) Τεκμήριο (υπολογιστές) Τεκμήριο (item) ονομάζεται οποιοδήποτε είδος υλικού διαθέτει μία βιβλιοθήκη, το οποίο αποτελεί μέρος της συλλογής της. Κάθε τεκμήριο εξ ορισμού είναι φορέας πληροφορίας και γνώσης[1] . Έτσι, τεκμήριο μπορεί να είναι ένα βιβλίο, περιοδικό, εφημερίδα, βιντεοκασέτα, DVD, δίσκος μουσικής σε βινύλιο ή ως CD, χάρτης, μικροφίλμ, λογισμικό σε CD, slides, ή ακόμη και οποιοδήποτε άλλο υλικό αντικείμενο όπως αντίγραφο μουσειακού εκθέματος, επιτραπέζιο παιχνίδι κτλ. Τα τεκμήρια μπορούν να κατηγοριοποιηθούν σε έντυπο υλικο (π.χ. βιβλία, περιοδικά, χάρτες), οπτικοακουστικό υλικό (δίσκος μουσικής, ταινία DVD) και υλικό αντικείμενο (realia) (π.χ. ένα μουσειακό έκθεμα). Τα τεκμήρια μπορούν επίσης να κατηγοριοποιηθούν σύμφωνα με τον τρόπο αποθήκευσης των γνωστικών δεδομένων[2] σε ψηφιοποιημένο υλικό που το «διαβάζει» ένας ηλεκτρονικός υπολογιστής διότι η πληροφορία είναι αποθηκευμένη σε bits ή αναλογικό υλικό στο οποίο η πληροφορία είναι αποθηκευμένη σε μορφή ατόμων (atoms). Σε μία συνηθισμένη, συμβατική βιβλιοθήκη, τα περισσότερα ή όλα τα τεκμήρια είναι φυσικά αντικείμενα που μπορούμε να αγγίξουμε. Π.χ. ένα βιβλίο ή ένας χάρτης. Ακόμη και τεκμήρια που φέρουν ψηφιοποιημένες πληροφορίες είναι απτά φυσικά αντικείμενα, αν η πληροφορία έχει αποθηκευτεί σε ένα υλικό μέσο π.χ. ένα CD ή DVD, το οποίο μάλιστα συνήθως βρίσκεται πακεταρισμένο σε κάποια άλλη συσκευασία, ένα φάκελο ή ένα κουτί. Όμως στις ψηφιακές βιβλιοθήκες, όλα τα τεκμήρια είναι άυλα. Όταν ένας χρήστης τους χρησιμοποιήσει ένα τεκμήριό τους, λαμβάνει την πληροφορία μόνο σε μορφή bits μέσω του υπολογιστή του και του διαδικτύου. Γνωστά παραδείγματα άυλων τεκμηρίων είναι τα ηλεκτρονικά βιβλία, διάφορα πακέτα λογισμικού, ή βιντεοσκοπημένες ψηφιακά ταινίες. Τα άυλα αυτά ψηφιακά τεκμήρια μειώνουν το κόστος λειτουργίας της βιβλιοθήκης διότι λόγω ακριβώς των ιδιαίτερων χαρακτηριστικών τους[3] είναι εύκολα στην αναπαραγωγή, καταλαμβάνουν ελάχιστο χώρο, διατίθενται εύκολα μέσω του διαδικτύου χωρίς χωροχρονικούς περιορισμούς και είναι πολυμορφικά επειδή συνδυάζουν κείμενο, εικόνα και ήχο. Από την άλλη μεριά, τα άυλα ψηφιακά τεκμήρια προϋποθέτουν τη δυνατότητα συμμετοχής στην κοινωνία της πληροφορίας, επομένως ενδέχεται να αυξήσουν τις διακρίσεις λόγω του υπάρχοντος ψηφιακού χάσματος[4] μεταξύ πλουσίων και φτωχών χωρών ή κοινωνικών ομάδων.

Παραπομπές [1] [2] [3] [4]

Μπώκος, Γ. (2001) Εισαγωγή στην Επιστήμη της Πληροφόρησης. Αθήνα: Παπασωτηρίου Negreponte, N. (1996) Being digital. New York: Vintage Books Μπώκος, Γ. (2002) Τεχνολογία και Πληροφόρηση. Από τη διαχείριση του βιβλίου στη διαχείριση της γνώσης. Αθήνα: Παπασωτηρίου Dertouzos, M. (1997) What will be. How the New World of Information will change our lives. New York: HarperCollins


206

Τεχνητή νοημοσύνη Τεχνητή νοημοσύνη Ο όρος τεχνητή νοημοσύνη (ΤΝ, εκ του Artificial Intelligence) αναφέρεται στον κλάδο της επιστήμης υπολογιστών ο οποίος ασχολείται με τη σχεδίαση και την υλοποίηση υπολογιστικών συστημάτων που μιμούνται στοιχεία της ανθρώπινης συμπεριφοράς τα οποία υπονοούν έστω και στοιχειώδη ευφυΐα: μάθηση, προσαρμοστικότητα, εξαγωγή συμπερασμάτων, κατανόηση από συμφραζόμενα, επίλυση προβλημάτων κλπ. Ο Τζον Μακάρθι όρισε τον τομέα αυτόν ως «επιστήμη και μεθοδολογία της δημιουργίας νοούντων μηχανών». Η ΤΝ αποτελεί σημείο τομής μεταξύ πολλών πεδίων όπως της επιστήμης υπολογιστών, της ψυχολογίας, της φιλοσοφίας, της νευρολογίας, της γλωσσολογίας και της επιστήμης μηχανικών, με στόχο τη σύνθεση ευφυούς συμπεριφοράς, με στοιχεία συλλογιστικής, μάθησης και προσαρμογής στο περιβάλλον, ενώ συνήθως εφαρμόζεται σε μηχανές ή υπολογιστές ειδικής κατασκευής. Διαιρείται στη συμβολική τεχνητή νοημοσύνη, η οποία επιχειρεί να εξομοιώσει την ανθρώπινη νοημοσύνη αλγοριθμικά χρησιμοποιώντας σύμβολα και λογικούς κανόνες υψηλού επιπέδου, και στην υποσυμβολική τεχνητή νοημοσύνη, η οποία προσπαθεί να αναπαράγει την ανθρώπινη ευφυΐα χρησιμοποιώντας στοιχειώδη αριθμητικά μοντέλα που συνθέτουν επαγωγικά νοήμονες συμπεριφορές με τη διαδοχική αυτοοργάνωση απλούστερων δομικών συστατικών («συμπεριφορική τεχνητή νοημοσύνη»), προσομοιώνουν πραγματικές βιολογικές διαδικασίες όπως η εξέλιξη των ειδών και η λειτουργία του εγκεφάλου («υπολογιστική νοημοσύνη»), ή αποτελούν εφαρμογή στατιστικών μεθοδολογιών σε προβλήματα ΤΝ. Η διάκριση σε συμβολικές και υποσυμβολικές προσεγγίσεις αφορά τον χαρακτήρα των χρησιμοποιούμενων εργαλείων, ενώ δεν είναι σπάνια η σύζευξη πολλαπλών προσεγγίσεων (διαφορετικών συμβολικών, υποσυμβολικών, ή ακόμα συμβολικών και υποσυμβολικών μεθόδων) κατά την προσπάθεια αντιμετώπισης ενός προβλήματος. Με βάση τον επιθυμητό επιστημονικό στόχο η ΤΝ κατηγοριοποιείται σε άλλου τύπου ευρείς τομείς, όπως επίλυση προβλημάτων, μηχανική μάθηση, ανακάλυψη γνώσης, συστήματα γνώσης κλπ. Επίσης υπάρχει επικάλυψη με συναφή επιστημονικά πεδία όπως η μηχανική όραση, η επεξεργασία φυσικής γλώσσας, η ρομποτική κλπ. Η λογοτεχνία και ο κινηματογράφος επιστημονικής φαντασίας από τη δεκαετία του 1920 μέχρι σήμερα έχουν δώσει στο ευρύ κοινό την αίσθηση ότι η ΤΝ αφορά την προσπάθεια κατασκευής μηχανικών ανδροειδών ή αυτοσυνείδητων προγραμμάτων υπολογιστή (ισχυρή ΤΝ), επηρεάζοντας μάλιστα ακόμα και τους πρώτους ερευνητές του τομέα. Στην πραγματικότητα οι περισσότεροι επιστήμονες της τεχνητής νοημοσύνης προσπαθούν να κατασκευάσουν λογισμικό ή πλήρεις μηχανές οι οποίες να επιλύουν με αποδεκτά αποτελέσματα ρεαλιστικά υπολογιστικά προβλήματα οποιουδήποτε τύπου (ασθενής ΤΝ), αν και πολλοί πιστεύουν ότι η εξομοίωση ή η προσομοίωση της πραγματικής ευφυΐας, η ισχυρή ΤΝ, πρέπει να είναι ο τελικός στόχος.

Ιστορικό Κατά τη δεκαετία του 1940 εμφανίστηκε η πρώτη μαθηματική περιγραφή τεχνητού νευρωνικού δικτύου, με πολύ περιορισμένες δυνατότητες επίλυσης αριθμητικών προβλημάτων. Καθώς ήταν εμφανές ότι οι ηλεκτρονικές υπολογιστικές συσκευές που κατασκευάστηκαν μετά τον Β' Παγκόσμιο Πόλεμο ήταν ένα τελείως διαφορετικό είδος μηχανής από ό,τι προηγήθηκε, η συζήτηση για την πιθανότητα εμφάνισης μηχανών με νόηση ήταν στην ακμή της. Το 1950 ο μαθηματικός Άλαν Τούρινγκ, πατέρας της θεωρίας υπολογισμού και προπάτορας της τεχνητής νοημοσύνης, πρότεινε τη δοκιμή Τούρινγκ· μία απλή δοκιμασία που θα μπορούσε να


Τεχνητή νοημοσύνη εξακριβώσει αν μία μηχανή διαθέτει ευφυΐα. Η τεχνητή νοημοσύνη θεμελιώθηκε τυπικά ως πεδίο στη συνάντηση ορισμένων επιφανών Αμερικανών επιστημόνων του τομέα το 1956 (Τζον Μακάρθι, Μάρβιν Μίνσκυ, Κλοντ Σάνον κλπ). Τη χρονιά αυτή παρουσιάστηκε για πρώτη φορά και το Logic Theorist, ένα πρόγραμμα το οποίο στηριζόταν σε συμπερασματικούς κανόνες τυπικής λογικής και σε ευρετικούς αλγορίθμους αναζήτησης για να αποδεικνύει μαθηματικά θεωρήματα. Επόμενοι σημαντικοί σταθμοί ήταν η ανάπτυξη της γλώσσας προγραμματισμού LISP το 1958 από τον Μακάρθι, δηλαδή της πρώτης γλώσσας συναρτησιακού προγραμματισμού η οποία έπαιξε πολύ σημαντικό ρόλο στη δημιουργία εφαρμογών ΤΝ κατά τις επόμενες δεκαετίες, η εμφάνιση των γενετικών αλγορίθμων την ίδια χρονιά από τον Φρίντμπεργκ και η παρουσίαση του βελτιωμένου νευρωνικού δικτύου perceptron το '62 από τον Ρόσενμπλατ. Κατά τα τέλη της δεκαετίας του '60 όμως άρχισε ο χειμώνας της ΤΝ, μία εποχή κριτικής, απογοήτευσης και υποχρηματοδότησης των ερευνητικών προγραμμάτων καθώς όλα τα μέχρι τότε εργαλεία του χώρου ήταν κατάλληλα μόνο για την επίλυση εξαιρετικά απλών προβλημάτων. Στα μέσα του '70 ωστόσο προέκυψε μία αναθέρμανση του ενδιαφέροντος για τον τομέα λόγω των εμπορικών εφαρμογών που απέκτησαν τα έμπειρα συστήματα, μηχανές ΤΝ με αποθηκευμένη γνώση για έναν εξειδικευμένο τομέα και δυνατότητα ταχείας εξαγωγής λογικών συμπερασμάτων, τα οποία συμπεριφέρονται όπως ένας άνθρωπος ειδικός στον αντίστοιχο τομέα. Παράλληλα έκανε την εμφάνισή της η γλώσσα λογικού προγραμματισμού Prolog η οποία έδωσε νέα ώθηση στη συμβολική ΤΝ, ενώ στις αρχές της δεκαετίας του '80 άρχισαν να υλοποιούνται πολύ πιο ισχυρά και με περισσότερες εφαρμογές νευρωνικά δίκτυα, όπως τα πολυεπίπεδα perceptron και τα δίκτυα Hopfield. Ταυτόχρονα οι γενετικοί αλγόριθμοι και άλλες συναφείς μεθοδολογίες αναπτύσσονταν πλέον από κοινού, κάτω από την ομπρέλα του εξελικτικού υπολογισμού. Κατά τη δεκαετία του '90, με την αυξανόμενη σημασία του Internet, ανάπτυξη γνώρισαν οι ευφυείς πράκτορες, αυτόνομο λογισμικό ΤΝ τοποθετημένο σε κάποιο περιβάλλον με το οποίο αλληλεπιδρά, οι οποίοι βρήκαν μεγάλο πεδίο εφαρμογών λόγω της εξάπλωσης του Διαδικτύου. Οι πράκτορες στοχεύουν συνήθως στην παροχή βοήθειας στους χρήστες τους, στη συλλογή ή ανάλυση γιγάντιων συνόλων δεδομένων ή στην αυτοματοποίηση επαναλαμβανόμενων εργασιών (π.χ. βλέπε διαδικτυακό ρομπότ), ενώ στους τρόπους κατασκευής και λειτουργίας τους συνοψίζουν όλες τις γνωστές μεθοδολογίες ΤΝ που αναπτύχθηκαν με το πέρασμα του χρόνου. Έτσι σήμερα, όχι σπάνια, η ΤΝ ορίζεται ως η επιστήμη που μελετά τη σχεδίαση και υλοποίηση ευφυών πρακτόρων. Επίσης τη δεκαετία του '90 η ΤΝ, κυρίως η μηχανική μάθηση και η ανακάλυψη γνώσης, άρχισε να επηρεάζεται πολύ από τη θεωρία πιθανοτήτων και τη στατιστική. Τα μπεϋζιανά δίκτυα είναι η εστίαση αυτής της νέας μετακίνησης που παρέχει τις συνδέσεις με τα πιο σχολαστικά θέματα της στατιστικής και της επιστήμης μηχανικών, όπως τα πρότυπα Markov και τα φίλτρα Kalman. Αυτή η νέα πιθανοκρατική προσέγγιση έχει αυστηρά υποσυμβολικό χαρακτήρα, όπως και οι τρεις μεθοδολογίες οι οποίες κατηγοριοποιούνται κάτω από την ετικέτα της υπολογιστικής νοημοσύνης: τα νευρωνικά δίκτυα, ο εξελικτικός υπολογισμός και η ασαφής λογική. Ακολουθούν οι πιο σπουδαίες στιγμές στην ιστορία της ΤΝ:

207


Τεχνητή νοημοσύνη

Χρόνος

208

Εξέλιξη

1950

Ο Άλαν Τούρινγκ περιγράφει τη δοκιμή Τούρινγκ, που επιδιώκει να εξετάσει την ικανότητα μιας μηχανής να συμμετάσχει απρόσκοπτα σε μια ανθρώπινη συνομιλία.

1951

Τα πρώτα προγράμματα ΤΝ γράφονται για τον υπολογιστή Ferranti Mark I στο Πανεπιστήμιο του Μάντσεστερ: ένα πρόγραμμα που παίζει ντάμα από τον Κρίστοφερ Στράκλι και ένα που παίζει σκάκι από τον Ντίτριχ Πρίνζ.

1956

Ο Τζον Μακάρθι πλάθει τον όρο «Τεχνητή Νοημοσύνη» ως κύριο θέμα της διάσκεψης του Ντάρτμουθ.

1958

Ο Τζον Μακάρθι εφευρίσκει τη γλώσσα προγραμματισμού Lisp.

1965

Ο Έντουαρτ Φάιγκενμπαουμ ξεκινά το Dendral, μια δεκαετή προσπάθεια ανάπτυξης λογισμικού που θα συμπεράνει τη μοριακή δομή οργανικών ενώσεων χρησιμοποιώντας ενδείξεις επιστημονικών οργάνων. Ήταν το πρώτο έμπειρο σύστημα (expert system).

1966

Ιδρύεται το Εργαστήριο Μηχανικής Νοημοσύνης στο Εδιμβούργο – το πρώτο από μια σημαντική σειρά εγκαταστάσεων που οργανώνονται από τον Ντόναλντ Μίτσι και άλλους.

1970

Αναπτύσσεται το Planner και χρησιμοποιείται στο SHRDLU, μια εντυπωσιακή επίδειξη αλληλεπίδρασης μεταξύ ανθρώπου και υπολογιστή.

1971

Ξεκινά η εργασία πάνω στο σύστημα αυτόματης απόδειξης θεωρημάτων Boyer-Moore στο Εδιμβούργο.

1972

Η γλώσσα προγραμματισμού Prolog αναπτύσσεται από τον Αλάν Κολμεροέρ.

1973

Ρομπότ συναρμολόγησης «Φρέντι» στο Εδιμβούργο: ένα ευπροσάρμοστο σύστημα συναρμολόγησης που ελέγχεται από υπολογιστές.

1974

Ο Τέντ Σόρτλιφ γράφει τη διατριβή του για το πρόγραμμα MYCIN (Στάνφορντ), το οποίο κατέδειξε μια πολύ πρακτική προσέγγιση στην ιατρική διάγνωση που βασίζεται σε κανόνες, ενώ λειτουργεί ακόμα και με παρουσία αβεβαιότητας. Αν και δανείστηκε από το DENDRAL, οι δικές του συνεισφορές επηρέασαν έντονα το μέλλον των έμπειρων συστημάτων, ένα μέλλον με πολλαπλές εμπορικές εφαρμογές.

1991

Η εφαρμογή σχεδίασης ενεργειών DART χρησιμοποιείται αποτελεσματικά στον Α' Πόλεμο του Κόλπου και ανταμείβει 30 χρόνια έρευνας στην ΤΝ του Αμερικανικού Στρατού.

1994

Ντίκμαννς και Ντάιμλερ-Μπενζ οδηγούν περισσότερο από 1000 km σε μια εθνική οδό του Παρισιού υπό συνθήκες βαρείας κυκλοφορίας και σε ταχύτητες ως και 130 km/ώρα. Επιδεικνύουν αυτόνομη οδήγηση σε ελεύθερες παρόδους, οδήγηση σε συνοδεία, αλλαγή παρόδων και αυτόματη προσπέραση άλλων οχημάτων.

1997

Ο υπολογιστής Deep Blue της IBM κερδίζει των παγκόσμιο πρωταθλητή σκακιού Γκάρι Κασπάροφ.

1998

Κυκλοφορεί ο Φέρμπι της Tiger Electronics και γίνεται η πρώτη επιτυχημένη εμφάνιση ΤΝ σε οικιακό περιβάλλον.

1999

Η Sony λανσάρει το AIBO, που είναι ένα από τα πρώτα αυτόνομα κατοικίδια ΤΝ.

2004

Η DARPA ξεκινά το πρόγραμμα DARPA Grand Challenge («Μεγάλη Πρόκληση DARPA»), που προκαλεί τους συμμετέχοντες να δημιουργήσουν αυτόνομα οχήματα για ένα χρηματικό βραβείο.

Σχολές σκέψης Η συμβατική τεχνητή νοημοσύνη εμπλέκει μεθόδους μηχανικής μάθησης (machine learning), που χαρακτηρίζονται από αυστηρούς μαθηματικούς αλγόριθμους και στατιστικές μεθόδους ανάλυσης. Διακρίνεται σε: • Έμπειρα ή Εξειδικευμένα συστήματα (Expert systems), που εφαρμόζουν προγραμματισμένες ρουτίνες λογικής, σχεδιασμένες αποκλειστικά για μία συγκεκριμένη εργασία, προκειμένου να εξαχθεί κάποιο συμπέρασμα. Για το σκοπό αυτό, διεξάγεται επεξεργασία μεγάλων ποσοτήτων γνωστών πληροφοριών. • Λογική κατά περίπτωση (Case based reasoning). Η επίλυση ενός προβλήματος βασίζεται στην προηγούμενη επίλυση παρόμοιων προβλημάτων. • Μπαϋεσιανά δίκτυα (Bayesian networks). Βασίζονται στη στατιστική ανάλυση για τη λήψη αποφάσεων. • Συμπεριφορική τεχνητή νοημοσύνη (Behavior based AI). Μέθοδος τεμαχισμού της λογικής διαδικασίας και στη συνέχεια χειροκίνητης οικοδόμησης του αποτελέσματος.


Τεχνητή νοημοσύνη Η υπολογιστική τεχνητή νοημοσύνη βασίζεται στη μάθηση μέσω επαναληπτικών διαδικασιών (ρύθμιση παραμέτρων). Η μάθηση βασίζεται σε εμπειρικά δεδομένα και σε μη-συμβολικές μεθόδους. Διακρίνεται σε: • Τεχνητά νευρωνικά δίκτυα (Artificial neural networks) με πολύ ισχυρές δυνατότητες αναγνώρισης προτύπων (pattern recognition). Προσομοιάζουν τη λειτουργία των νευρώνων των εμβίων όντων. • Συστήματα Ασαφούς λογικής (Fuzzy logic systems). Αποτελούν τεχνικές λήψης απόφασης κάτω από αβεβαιότητα. Βασίζονται στην ύπαρξη μη-αυστηρά διαχωρισμένων καταστάσεων, των οποίων η βαρύτητα λαμβάνεται υπόψη κατά περίπτωση. Υπάρχουν ήδη πολλές εφαρμογές των τεχνικών αυτών. • Εξελικτική υπολογιστική (Evolutionary computation). Η ανάπτυξή τους προέκυψε από τη μελέτη των έμβιων οργανισμών και αφορούν σε έννοιες όπως του πληθυσμού, της μετάλλαξης και της φυσικής επιλογής (επιβίωση του πιο προσαρμοσμένου) για την ακριβέστερη επίλυση ενός προβλήματος. Οι μέθοδοι αυτοί μπορούν να διακριθούν περαιτέρω σε εξελικτικούς αλγόριθμους (evolutionary algorithms) και σε νοημοσύνης σμήνους (swarm intelligence), όπως πχ οι αλγόριθμοι που προσομοιάζουν τη συμπεριφορά μίας κοινωνίας μηρμυγκιών.

Δείτε επίσης • Επίλυση προβλημάτων (τεχνητή νοημοσύνη) • Μηχανική μάθηση • • • • • • • • • • •

Ανακάλυψη γνώσης Συστήματα γνώσης Εξελικτικός υπολογισμός Τεχνητά νευρωνικά δίκτυα Ασαφής λογική Μπεϋζιανή επαγωγή Μηχανική όραση Ρομποτική Γνωσιακή επιστήμη Κυβερνητική Μηχατρονική

Βιβλιογραφία και πηγές • Τεχνητή Νοημοσύνη, μια σύγχρονη προσέγγιση, Stuart Russel και Peter Norvig [1] • Τεχνητή Νοημοσύνη - Γ' Έκδοση, Εκδόσεις Γκιούρδας, Βλαχάβας, Κεφαλάς, Βασιλειάδης, Κόκκορας, Σακελλαρίου [2]

Εξωτερικοί σύνδεσμοι • Τι είναι η ΤΝ, Τζον Μακάρθι [1] • Ορισμός της ΤΝ, σύνδεσμος προώθησης της ΤΝ [2] • Ελληνική Εταιρεία Τεχνητής Νοημοσύνης [3]

209


Τεχνητή νοημοσύνη

Παραπομπές [1] http:/ / www-formal. stanford. edu/ jmc/ whatisai/ whatisai. html [2] http:/ / www. aaai. org/ AITopics/ html/ overview. html [3] http:/ / www. eetn. gr/ greek/ main_frame_page_gr. htm

210


211

Τσιπσετ Τσιπσετ Ο όρος τσιπσετ αναφέρεται σε ένα σύνολο ολοκληρωμένων κυκλωμάτων (τσιπ), τα οποία είναι σχεδιασμένα να δουλεύουν μαζί. Στο εμπόριο θεωρούνται και πωλούνται ώς 1 προϊον.

Υπολογιστές Στην επιστήμη των υπολογιστών, ο όρος τσιπσετ χρησιμοποιείται συνήθως για να αναφερθεί σε μια σειρά απο εξειδικευμένα τσιπ, πάνω στη μητρική πλακέτα του υπολογιστή ή πάνω σε μια κάρτα επέκτασης. Το πρώτο τσιπσετ για προσωπικούς υπολογιστές ήταν το NEAT για τον υπολογιστή IBM PC AT και τον επεξεργαστή Intel 80286. Πιο ειδικά, ο όρος αυτός αναφέρεται σε δύο εξειδικευμένα τσιπ πάνω στη μητρική πλακέτα, στο Northbridge και στο Southbridge. Το Northbridge συνδέει τον επεξεργαστή με τις συσκευές πολύ υψηλής ταχύτητας, δηλαδή την κεντρική μνήμη και τον ελεγκτή γραφικών, ενώ το Southbridge συνδέει τον επεξεργαστή με συσκευές και διάυλους μικρότερης ταχύτητας (π.χ. Σκληρός δίσκος,PCI κλπ.). Σε όλα τα σύγχρονα τσίπσετ, το southbridge περιέχει ορισμένους ενσωματωμένους ελεγκτές περιφερειακών συσκευών, όπως Ethernet, USB και συσκευές ήχου.

Διάγραμμα του τσιπσετ της μητρικής πλακέτας του υπολογιστή.

Ένα τσιπσετ είναι σχεδιασμένο έτσι ώστε να δουλεύει με συγκεκριμένη σειρά επεξεργαστών. Το τσιπσετ παίζει πολύ σημαντικό ρόλο στον καθορισμό της απόδοσης του συστήματος, διότι ελέγχει τις επικοινωνίες και τη μεταφορά δεδομένων μεταξύ του επεξεργαστή και των περιφερειακών συσκευών. Ο κατασκευαστής του τσιπσετ τις περισσότερες φορές διαφοροποιείται από τον κατασκευαστή της μητρικής πλακέτας. Μερικοί κατασκευαστές τσιπσετ είναι οι NVIDIA, AMD, VIA, SiS, Intel και η Βroadcom. Οι υπολογιστές της Apple χρησιμοποιούν τσιπσετ σχεδιασμένα αποκλειστικά από αυτήν την εταιρεία, αν και τα τελευταία χρόνια έχει αρχίσει να εκμεταλλεύεται και διαφορετικής κατασκευής τσιπσετ. Ακόμα, ορισμένοι κατασκευαστές εξυπηρετητών-servers, αναπτύσσουν επίσης δικά τους τσιπσετ για τα προϊόντα τους. Τη δεκαετία του 1980, η εταιρεία Chips and Technologies η οποία ιδρύθηκε από τον Γκόρντον Κάμπελ ήταν η πρωτοπόρος στην κατασκευή τσιπσετ για προσωπικούς υπολογιστές. Εκείνη την εποχή τα τσιπσετ που κατασκευάζονταν δεν αφορούσαν αποκλειστικά τους προσωπικούς υπολογιστές, αλλά περιλάμβανε ακόμα και διαφορετικους τομείς της πληροφορικής. Το ίδιο τσιπσετ δηλαδή μπορόυσε να χρησιμοποιηθεί κατάλληλα για εντελώς διαφορετικούς σκοπούς.


Τσιπσετ

212

Στους προσωπικούς υπολογιστές και στις παιχνιδοκονσόλες της δεκαετίας του ’80 και του ’90, ο όρος τσιπσετ χρησιμοποιούνταν για να περιγράψει τα οποιαδήποτε τσιπ γραφικών και ήχου. Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το άρθρο Chipset [2] [1] GNU FDL και την CC-BY-SA 3.0 . (ιστορικό/συντάκτες ).

Παραπομπές [1] http:/ / en. wikipedia. org/ wiki/ Chipset

[1]

της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την


213

Υλικό υπολογιστών Υλικό υπολογιστών Στην επιστήμη υπολογιστών ως υλικό (hardware) ορίζεται το σύνολο των φυσικών εξαρτημάτων ενός υπολογιστή, όπως π.χ. ηλεκτρικά και ηλεκτρονικά στοιχεία, μικροτσίπ κλπ. Το υλικό καθοδηγείται κατά τη λειτουργία του από το λογισμικό. Το Υλικό (αγγλ. Hardware) αποτελείται από ένα σύνολο κατηγοριοποιημένων συσκευών. Έτσι, έχουμε : 1. Συσκευές Εισόδου: Πληκτρολόγιο, Ποντίκι, Χειριστήριο (Joystick), Μικρόφωνο, Web camera, Σαρωτής (Scanner) 2. Κεντρική Μονάδα: Μητρική Κάρτα, Κ.Μ.Ε. (Κεντρική Μονάδα Επεξεργασίας) – ή πιο απλά Επεξεργαστής, Μνήμη RAM, H.D.D. (Hard Disk Drive, Σκληρός Δίσκος), DVD / CD Drive, Floppy Disk Drive, Κάρτα Γραφικών, Κάρτα Ήχου, Κάρτα Δικτύου, ROM (όπου είναι αποθηκευμένο το B.I.O.S.), Μπαταρία, Τροφοδοτικό, κ.ά. 3. Συσκευές Εξόδου: Οθόνη, Ηχεία, Εκτυπωτής Ίσως θα μπορούσαμε να αναφέρουμε και μια ειδική κατηγορία, αυτή των Συσκευών Εισόδου / Εξόδου : Οθόνες Αφής (Touch Screens), Modem (Modulator – Demodulator, Διαποδιαμορφωτής)


214

Υπερκείμενο Υπερκείμενο Το υπερκείμενο (υπερ-κείμενο, αγγλ. hypertext) είναι τρόπος οργάνωσης πληροφοριών (που βρίσκονται σε μορφή κειμένου) ο οποίος υπερβαίνει έναν βασικό περιορισμό των υπαρχόντων μέσων οργάνωσης: της γραμμικότητάς τους. Το πρόθεμα "υπέρ" σηματοδοτεί ακριβώς την υπέρβαση αυτή. Το υπερκείμενο θεωρείται μη γραμμικό κείμενο σε αντίθεση με το βιβλίο που θεωρείται γραμμικό. Η γραμμικότητα του βιβλίου έγκειται στο γεγονός ότι ο αναγνώστης οφείλει να διαβάζει τη μία σελίδα (ή παράγραφο) μετά την άλλη προκειμένου να κατανοήσει το περιεχόμενό του, δίχως να του δίδεται η δυνατότητα να "πλοηγείται" ελεύθερα εντός αυτού. Ο αναγνώστης έτσι αναγκάζεται να υπακούσει στους περιορισμούς που επιβάλλει ο συγγραφέας και το βιβλίο ως μέσο. Το υπερκείμενο ως μέσο έρχεται να ξεπεράσει τους περιορισμούς αυτούς επιτρέποντας την ελεύθερη πλοήγηση του αναγνώστη. Η πλοήγηση επιτυγχάνεται με την χρήση υπερσυνδέσμων. Επειδή οι υπερσύνδεσμοι αποτελούν τον κύριο μηχανισμό απόκλισης από τη γραμμικότητα αποτελούν θεμελιώδη έννοια στο υπερκείμενο. Ως τρόπος οργάνωσης (μέσω διασύνδεσης) το υπερκείμενο συναντιέται κυρίως στο χώρο των υπολογιστών και της Πληροφορικής. Ο Παγκόσμιος Ιστός χτίστηκε πάνω στις ιδέες του υπερκειμένου και αποτελεί μία ενσάρκωση (υλοποίηση) τέτοιου τρόπου διασύνδεσης και οργάνωσης πληροφοριών . Ο όρος υπερκείμενο εισήχθη από τον Τεντ Νέλσον το 1965 στο έργο του Literary Machines ορίζοντάς το ως εξής: "By `hypertext' I mean nonsequential writing--text that branches and allows choice to the reader, best read at an interactive screen. As popularly conceived, this is a series of text chunks connected by links which offer the reader different pathways." Ωστόσο, οι επιπτώσεις της υπέρβασης των περιορισμών αυτών δεν είναι αυτονόητες, ούτε τετριμμένες. Όπως ακριβώς η μετάβαση από τους παπύρους στο βιβλίο επέφερε αλλαγές στον τρόπο Γραμμικό κείμενο (1) και υπερκείμενο (2). Το συγγραφής, ανάγνωσης και κατανόησης έτσι και η μετάβαση από υπερκείμενο έρχεται να ξεπεράσει τους το βιβλίο στο υπερκείμενο έχει επιπτώσεις σε ένα σύνολο περιορισμούς του γραμμικού κειμένου καθιερωμένων και δεδομένων εννοιών οι οποίες απαιτούν επιτρέποντας ελεύθερη πλοήγηση του αναγνώστη. "Ελεύθερη" με την έννοια ότι ο επαναδιαπραγμάτευση. Για παράδειγμα, η διαχωριστική γραμμή ίδιος ο αναγνώστης καθορίζει πώς θα μεταξύ αναγνώστη και συγγραφέα η οποία στην περίπτωση του πλοηγηθεί (και θα διαβάσει) ένα βιβλίο κάτι βιβλίου είναι πολύ σαφής και με την οποία ο άνθρωπος είναι που στο γραμμικό κείμενο καθορίζεται από το εξοικειωμένος τα τελευταία 500 χρόνια, στην περίπτωση του μέσο και τον συγγραφέα. υπερκειμένου αρχίζει και χάνεται σε σημείο να καταργηθεί. Όπως ακριβώς το τηλέφωνο αποτελεί επέκταση του ανθρώπινου αυτιού, τα κιάλια των ματιών και το σφυρί του χεριού, έτσι και το υπερκείμενο αποτελεί επέκταση της οργανωτικής ικανότητας του μυαλού. Ως μέσο, αποτελεί ένα νέο εργαλείο στην ανθρώπινη ανάγκη για διατύπωση, επικοινωνία και κατανόηση σκέψεων και ιδεών. Η επέκταση του υπερκειμένου, προκειμένου να ενσωματωθούν τύποι πληροφοριών πέραν του κειμένου, όπως εικόνα, ήχος και βίντεο καλείται υπερμέσα. Επειδή το υπερκείμενο εστιάζει κυρίως στην διασύνδεση των πληροφοριών και δίδει λίγη προσοχή στο καθεαυτό περιεχόμενο, οι όροι "υπερκείμενο" και "υπερμέσα" θεωρούνται ισοδύναμοι.


Υπερκείμενο

Ιστορία Υπερκειμένου Αν και ο όρος υπερκείμενο πρωτοεμφανίζεται το 1965, οι ιδέες και οι προβληματισμοί που αποτέλεσαν τις βάσεις του εμφανίζονται νωρίτερα . Το 1945 ο [[Βάνεβαρ Μπους) (Vannevar Bush), τότε σύμβουλος του Φραγκλίνου Ρούσβελτ πάνω σε θέματα τεχνολογίας και έρευνας, σε άρθρο του στο περιοδικό "Atlantic Monthly" με τίτλο As we may think [1] περιγράφει την Memex , μια υποθετική μηχανή που επέτρεπε - μεταξύ άλλων - τη διασύνδεση της υπάρχουσας ανθρώπινης γνώσης και την εύκολη πλοήγησή της, δημιουργώντας την παγκόσμια εγκυκλοπαίδεια. Η δυνατότητα της μηχανής Memex να συσχετίζονται γνώσεις είναι εμπνευσμένη από τον συσχετιστικό τρόπο λειτουργίας του ανθρώπινου εγκεφάλου. Σήμερα, ο παγκόσμιος ιστός θεωρείται μία υλοποίηση της υποθετικής αυτής μηχανής.

Εξωτερικοί σύνδεσμοι • Θεοδωροπούλου Παυλίνα, "Όταν το κείμενο εκδικείται την τηλεόραση", στο Archive, 10.02.05 [2]

Παραπομπές [1] http:/ / www. theatlantic. com/ doc/ 194507/ bush [2] http:/ / www. archive. gr/ modules. php?name=News& file=article& sid=125& mode=& order=0& thold=0

215


216

Υπερμέσο Υπερμέσο Το Υπερμέσο όρος που επινοήθηκε από τον Τεντ Νέλσον το 1970, αποτελεί φυσική επέκταση του όρου "υπερκείμενο", στον οποίο ήχος, βίντεο, απλό και μη γραμμικό κείμενο (υπερσύνδεσμοι) συνυφαίνονται ώστε να δημιουργήσουν ένα μη γραμμικό μέσο πληροφοριών. Αυτά σε αντίθεση με τον όρο "πολυμέσο", το οποίο, ενώ είναι συχνά ικανό για τυχαία προσπέλαση σε όρους φυσικού μέσου, είναι βασικά γραμμικό στη φύση του. Ο Παγκόσμιος Ιστός είναι κλασικό παράδειγμα υπερμέσου, ενώ μία ταινία σε ένα DVD είναι παράδειγμα πρότυπου πολυμέσου. Φυσικά, οι γραμμές μεταξύ των δύο μπορούν (όπως και συχνά συμβαίνει) να θολώνουν, αναλόγως με το πώς εφαρμόζεται μια συγκεκριμένη τεχνολογία. Το πρώτο σύστημα υπερμέσων ήταν το "ASPEN MOVIE MAP".


217

Υπολογισμός Υπολογισμός Ο γενικός όρος υπολογισμός (computation) μπορεί να χρησιμοποιηθεί για να αναφερθεί σε οποιοδήποτε είδος επεξεργασίας πληροφοριών. Αυτό περιλαμβάνει φαινόμενα που ποικίλουν, από την ανθρώπινη σκέψη, μέχρι αριθμητικούς υπολογισμούς με στενότερη έννοια (calculation). Υπολογισμός είναι μια διαδικασία που ακολουθεί κάποιο καλά ορισμένο μοντέλο, το οποίο είναι κατανοητό και μπορεί να εκφραστεί με έναν αλγόριθμο, πρωτόκολλο, τοπολογία δικτύου, κλπ. Ο υπολογισμός είναι επίσης από τις βασικές έννοιες τις οποίες εξετάζει η επιστήμη υπολογιστών: ερευνά τι μπορεί ή δεν μπορεί να γίνει με υπολογιστικό τρόπο.

Κατηγορίες υπολογισμών Η έννοια του υπολογισμού μπορεί να κατηγοριοποιηθεί με τουλάχιστον τρια διαφορετικά κριτήρια: ψηφιακός ή αναλογικός, σειριακός ή παράλληλος ή ταυτόχρονος (concurrent), ομαδικός (batch) ή διαδραστικός (interactive). Στην πράξη, ο ψηφιακός υπολογισμός χρησιμοποιείται συνήθως για να προσομοιώσει φυσικές διαδικασίες (για παράδειγμα εξελικτικός υπολογισμός), συμπεριλαμβανομένων αυτώ που μπορούν φυσικότερα να περιγραφούν με αναλογικά μοντέλα υπολογισμού (για παράδειγμα, τεχνητό νευρωνικό δίκτυο). Σ' αυτή την περίπτωση, είναι σημαντικό να διαχωρίζεται ο μηχανισμός του υπολογισμού, από το μοντέλο το οποίο προσομοιώνει.

Υπολογισμοί ως φυσικό φαινόμενο Ένας υπολογισμός μπορεί να θεωρηθεί ως ένα αμιγώς φυσικό φαινόμενο που συμβαίνει μέσα σε κάποιο κλειστό φυσικό σύστημα, το οποίο λέγεται υπολογιστής. Παραδείγματα τέτοιων φυσικών συστημάτων περιλαμβάνουν τους ψηφιακούς υπολογιστές, τους κβαντικούς υπολογιστές, τους υπολογιστές DNA, τους μοριακούς υπολογιστές, τους αναλογικούς υπολογιστές ή τους βιολογικούς υπολογιστές (wetware). Αυτή η άποψη υιοθετείται από τον κλάδο της θεωρητικής φυσικής που ονομάζεται φυσική υπολογισμού.

Μαθηματικά μοντέλα υπολογισμού Στη θεωρία υπολογισμού, εχουν αναπτυχθεί ποικίλα μαθηματικά μοντέλα υπολογιστών και του λογισμικού τους. Τυπικά μαθηματικά μοντέλα υπολογισμού είναι τα ακόλουθα: • Μοντέλα καταστάσεων, όπως: μηχανή Τούρινγκ, αυτόματο με στοίβα, αυτόματο πεπερασμένων καταστάσεων, και PRAM • Συναρτησιακά μοντέλα όπως ο λογισμός λάμδα • Λογικά μοντέλα όπως ο λογικός προγραμματισμός • Ταυτόχρονα (concurrent) μοντέλα όπως ο λογισμός διεργασιών (process calculus) Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το άρθρο computation [2] [1] GNU FDL και την CC-BY-SA 3.0 . (ιστορικό/συντάκτες ).

[1]

της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την


Υπολογισμός

Παραπομπές [1] http:/ / en. wikipedia. org/ wiki/ computation

218


219

Υπολογιστικό σύστημα Υπολογιστικό σύστημα Υπολογιστικό σύστημα λέγεται μία πλήρης υπολογιστική συσκευή, συμπεριλαμβανομένου του υλικού και του λογισμικού της. Ο όρος μπορεί να αναφέρεται σε υπερυπολογιστή, σε μικροϋπολογιστή, σε οικιακό υπολογιστή, σε κινητή συσκευή κλπ. Ως επιστημονικό πεδίο τα υπολογιστικά συστήματα αποτελούν έναν κλάδο της πληροφορικής ο οποίος στοχεύει στη συστηματική μελέτη, ανάλυση, μοντελοποίηση και κατασκευή αποτελεσματικών πλατφορμών λογισμικού. Αν και σχετίζεται στενά με την επιστήμη υπολογιστών (με τη στενή έννοια της λέξης), διακρίνεται από αυτήν καθώς δεν εστιάζει στα θεωρητικά θεμέλια των εννοιών του υπολογισμού και της πληροφορίας, αλλά στη σχεδίαση και υλοποίηση υπολογιστικών υποδομών. Στα υπολογιστικά συστήματα συμπεριλαμβάνονται τα γνωστικά πεδία των λειτουργικών συστημάτων, των δικτύων υπολογιστών, καθώς και των κατανεμημένων, παράλληλων, ενσωματωμένων, πραγματικού χρόνου και κινητών υπολογιστικών συστημάτων.

Πηγές Fostering Computer Systems Research in Europe: A White Paper by Eurosys, Peter Druschel, Rebecca Isaacs, Thomas Gross, Marc Sapiro, 2006 [1]

Παραπομπές [1] http:/ / www. eurosys. org/ whitepaper-2006/ whitepaper-2006-04. pdf


220

Χρόνος αδράνειας Χρόνος αδράνειας Χρόνο αδράνειας ή λανθάνοντα χρόνο ή χρόνο απόκρισης καλούμε την χρονική καθυστέρηση ανάμεσα στην στιγμή που ξεκινάει να δουλεύει ένα σύστημα, πιθανώς έπειτα από εξωτερικό ερέθισμα, και στην στιγμή που γίνεται ορατό στο περιβάλλον το αποτέλεσμα της λειτουργίας του συστήματος. Η λέξη λανθάνων υποδηλώνει το γεγονός ότι κατά την περίοδο αυτή το αποτέλεσμα είναι ακόμα κρυφό, δυνητικό, όχι ακόμα παρατηρήσιμο.

Δείτε επίσης • λανθάνων χρόνος προσπέλασης μνήμης • Λανθάνων χρόνος περιστροφής • σύστημα • κυβερνητική


221

Ψηφιακό σήμα Ψηφιακό σήμα Ο όρος ψηφιακό σήμα αναφέρεται σε περισσότερες από μια έννοιες. Μπορεί να αναφέρεται σε ένα σήμα διακριτού χρόνου το οποίο μπορεί να πάρει συγκεκριμένες (διακριτές) τιμές στον άξονα του χρόνου. Σε αυτή τη περίπτωση μιλάμε για ένα σήμα το οποίο παράγεται μέσω μιας μεθόδου ψηφιακής διαμόρφωσης και θεωρείται περισσότερο ως αναλογικό σήμα (δηλ. ένα επεξεργασμένο αναλογικό σήμα για τη μετατροπή του σε ψηφιακό). Μπορεί επίσης να αναφέρεται στην κυματομορφή ενός σήματος συνεχούς χρόνου σε ένα ψηφιακό σύστημα το οποίο μπορεί να αναπαρασταθεί σε μια αλληλουχία απο bits. Σε αυτή τη περίπτωση μιλάμε για ένα εξ ολοκλήρου ψηφιακό σήμα.

Σήματα Διακριτου Χρόνου Ένα αναλογικό σήμα είναι μια χρονικά μεταβαλλόμενη τιμή δεδομένων ή όπως είναι ο ορισμός του, μια ομαλά μεταβαλλόμενη τιμή ηλεκτρικής τάσης ή έντασης ρεύματος (δηλ. ένα σήμα με πλάτος χρονικά μεταβαλλόμενο) η οποία μπορεί να περιγραφεί από μια μαθηματική συνάρτηση, με το χρόνο να αποτελεί την ανεξάρτητη και την τιμή του σήματος,κάθε χρονική στιγμή, την εξαρτημένη μεταβλητή. Ένα διακριτό σήμα είναι το αποτέλεσμα που παίρνουμε μέσω της μεθόδου της δειγματοληπτικής μείωσης από το αρχικό αναλογικό σήμα : δηλαδή, η τιμή των δεδομένων σημειώνεται ανά τακτά χρονικά διαστήματα (π.χ. μικροδευτερόλεπτο) και όχι συνεχώς(όπως είναι εκ φύσεως τα μηχανικά κύματα).

Ένα σήμα διακριτού χρόνου

Αν οι ατομικές τιμές του σήματος αντί να μετρηθούν επακριβώς, επάνω στον άξονα του χρόνου, είναι εναρμονισμένες με κάποια ορισμένη ακρίβεια, τότε η ροή δεδομένων που προκύπτει είναι το Ψηφιακό σήμα ψηφιακό σήμα. Η διαδικασία προσέγγισης αυτής της ακρίβειας (δηλ. μιας συγκεκριμένης τιμής), μέσα από ένα σταθερό αριθμό ψηφίων(δηλ. bit) ονομάζεται ψηφιοποίηση.


Ψηφιακό σήμα

222

Σε γενικές γραμμές, ένα ψηφιακό σήμα είναι ένα ψηφιοποιημένο σήμα διακριτού χρόνου.Το διακριτό σήμα είναι το αποτέλεσμα της επεξεργασίας ενός αναλογικού σήματος με τη μέθοδο της δειγματοληπτικής μείωσης. Η Ψηφιακή Επανάσταση έχει αυξήσει κατακόρυφα τη χρήση ψηφιακών σημάτων.Οι περισσότερες-αν όχι όλες, οι σύγχρονες συσκευές ειδικότερα αυτές που συνδέονται στους υπολογιστές, χρησιμοποιούν ψηφιακά σήματα για την αναπαράσταση σημάτων τα οποία παραδοσιακά αναπαριστώνταν ως σήματα συνεχούς χρόνου. Κινητά τηλέφωνα, συσκευές αναπαραγωγής βίντεο και ήχου, ψηφιακές φωτογραφικές μηχανές είναι μερικά παραδείγματα. Σχεδόν σε όλες τις εφαρμογές, τα ψηφιακά σήματα αναπαριστώνται μέσω των δυαδικών αριθμών, έτσι ώστε να μπορούν να μετρηθούν σε bit. Επειδή 7 bits (δυαδικά ψηφία) μπορούν να καταγράψουν 128 διακριτές τιμές (0 έως 127), αυτό το σύστημα είναι το πιο ικανό από οποιοδήποτε άλλο για να εκφραστεί ένα τεράστιο πλήθος τιμών.

Η κυματομορφή στα ψηφιακά συστήματα Τόσο στους υπολογιστές όσο και σε οποιοδήποτε άλλο ψηφιακό σύστημα, η κυματομορφή του σήματος εναλλάσσεται μεταξύ δύο επιπέδων τάσης(0 και 4,8V) οι οποίες αναπαριστούν αντίστοιχα τις δύο τιμές του δυαδικού συστήματος(0 και 1).Έτσι, αναφερόμαστε σε αυτή τη κυματομορφή ως ψηφιακό σήμα. Παρ' όλο που πρόκειται για μια αναλογική κυματομορφή τάσεως, το ονομάζουμε ψηφιακό διότι εναλλάσσεται μεταξύ δύο σταθερών καταστάσεων.

H κυματομορφή ενός ψηφιακού σήματος:(1)χαμηλό επίπεδο τάσης,(2)υψηλό επίπεδο,(3)μετάβαση σε υψηλό επίπεδο τάσης,(4)μετάβαση σε χαμηλό επίπεδο

Το σήμα του ρολογιού είναι ένα ειδικό ψηφιακό σήμα το οποίο χρησιμοποιείται για τον συγχρονισμό των ψηφιακών κυκλωμάτων.Στην διπλανή εικόνα φαίνεται η συγκεκριμένη κυματομορφή. Οι λογικές αλλαγές ενεργοποιούνται είτε απο την αύξηση είτε από την μείωση του σήματος. Στο διπλανό διάγραμμα βλέπουμε ένα παράδειγμα του πρακτικού παλμού. Έτσι, όταν λέμε: • Αύξηση του σήματος : εννοούμε την διαδικασία της μετάβασης από χαμηλή σε υψηλή τάση. • Μείωση του σήματος : εννοούμε την διαδικασία της μετάβασης από υψηλή σε χαμηλή τάση. [1] Στο άρθρο αυτό έχει ενσωματωθεί κείμενο από το signal άρθρο Digital signal της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται [2] [1] υπό την GNU FDL και την CC-BY-SA 3.0 . (signal ιστορικό/συντάκτες ).

Παραπομπές [1] http:/ / en. wikipedia. org/ wiki/ Digital


Πηγές άρθρων και Συνεισφέροντες

Πηγές άρθρων και Συνεισφέροντες Επιστήμη υπολογιστών Πηγή: http://el.wikipedia.org/w/index.php?oldid=2435748 Συνεισφέροντες: Aristoteles, Badseed, Byte1, Chomwitt, Dada, Dead3y3, Egmontaz, Gf uip, Gkastel, Houren, JohnMad, Kalogeropoulos, Leandro, Lucinos, MARKELLOS, Mmsoft, Nakos2208, Nkour, Pelasgos, Polyvios, S0crates, Ttzavaras, Vyruss, Αντιγόνη, Βασίλης, 22 ανώνυμες επεξεργασίες Access control list Πηγή: http://el.wikipedia.org/w/index.php?oldid=2387532 Συνεισφέροντες: Chggr, Chomwitt, Gf uip, Loveless, Μυρμηγκάκι BIOS Πηγή: http://el.wikipedia.org/w/index.php?oldid=2331500 Συνεισφέροντες: ArielGlenn, Badseed, Ferengi, Students, Ttzavaras, 4 ανώνυμες επεξεργασίες Carputer Πηγή: http://el.wikipedia.org/w/index.php?oldid=2259424 Συνεισφέροντες: Dada, Egmontaz, Ferengi, Kos.mo., MARKELLOS, Tony Esopi, Ttzavaras, Veron, 2 ανώνυμες επεξεργασίες Demoscene Πηγή: http://el.wikipedia.org/w/index.php?oldid=2378276 Συνεισφέροντες: Aristoteles, Badseed, Dai, Dead3y3, Dipa1965, FocalPoint, Loveless, MARKELLOS, Veron, Αναστάσιος, 4 ανώνυμες επεξεργασίες Hellenic Quest Πηγή: http://el.wikipedia.org/w/index.php?oldid=2374593 Συνεισφέροντες: *Αλέξανδρος, Alexignatiou, Dipa1965, Egmontaz, Jake V, MARKELLOS, Mgiann, Sarant, Tony Esopi, Ttzavaras, 13 ανώνυμες επεξεργασίες INRIA Πηγή: http://el.wikipedia.org/w/index.php?oldid=2373386 Συνεισφέροντες: Badseed, Ferengi, Gf uip, KRBN, MARKELLOS, Polyvios, Veron Labelflash Πηγή: http://el.wikipedia.org/w/index.php?oldid=1907768 Συνεισφέροντες: Alaniaris, Egmontaz, Loveless, MARKELLOS, Mpanos2003, Ttzavaras, Veron, 4 ανώνυμες επεξεργασίες Microsoft SQL Server Πηγή: http://el.wikipedia.org/w/index.php?oldid=2412410 Συνεισφέροντες: Ferengi, Gf uip, Glavkos, Konsnos, Pstavroulis, Ttzavaras, Μυρμηγκάκι, Σκλαβενίτης, 4 ανώνυμες επεξεργασίες Original equipment manufacturer Πηγή: http://el.wikipedia.org/w/index.php?oldid=2406485 Συνεισφέροντες: Amalgam, Chomwitt, Dead3y3, Loveless, MARKELLOS, Polyvios, Salam32 RFID Πηγή: http://el.wikipedia.org/w/index.php?oldid=2381659 Συνεισφέροντες: Acp, Badseed, Dada, Diamond, Egmontaz, Exposed bone, Geraki, Tony Esopi, 1 ανώνυμες επεξεργασίες Αναδρομή Πηγή: http://el.wikipedia.org/w/index.php?oldid=2309482 Συνεισφέροντες: Ferengi, Jamesofur, Polyvios, Vanakaris, 1 ανώνυμες επεξεργασίες Ανάλυση προγράμματος (πληροφορική) Πηγή: http://el.wikipedia.org/w/index.php?oldid=2295187 Συνεισφέροντες: Gf uip Αντικειμενικό αρχείο Πηγή: http://el.wikipedia.org/w/index.php?oldid=978576 Συνεισφέροντες: FocalPoint, JohnMad Αποσφαλμάτωση Πηγή: http://el.wikipedia.org/w/index.php?oldid=2010530 Συνεισφέροντες: Chomwitt, FocalPoint, Gbadis, Gf uip, JohnMad, Morgatek, Xoristzatziki Βιβλιοθήκη (υπολογιστές) Πηγή: http://el.wikipedia.org/w/index.php?oldid=2436831 Συνεισφέροντες: Chomwitt, Gf uip, JohnMad, Konsnos, Loveless, Polyvios, Ttzavaras, 4 ανώνυμες επεξεργασίες Βιβλιόφωνο Πηγή: http://el.wikipedia.org/w/index.php?oldid=1560506 Συνεισφέροντες: Badseed, FocalPoint, Lemur12, Ninos, Tony Esopi Βιομετρία Πηγή: http://el.wikipedia.org/w/index.php?oldid=2275240 Συνεισφέροντες: Jaguarlaser, Templar52, 1 ανώνυμες επεξεργασίες Δεδομένα Πηγή: http://el.wikipedia.org/w/index.php?oldid=2051375 Συνεισφέροντες: Dada, Fefeli, Gbadis, Ge03245, Kalogeropoulos, Konsnos, Lady 6thofAu, MARKELLOS, S. Cruz, Tsianasmakis, Ttzavaras, Tzag, Veron, Βασίλης, 3 ανώνυμες επεξεργασίες Δείκτης (πληροφορική) Πηγή: http://el.wikipedia.org/w/index.php?oldid=2197401 Συνεισφέροντες: Costas78, Gf uip, Giannisf Δεκαεξαδικό σύστημα αρίθμησης Πηγή: http://el.wikipedia.org/w/index.php?oldid=2340847 Συνεισφέροντες: Badseed, CommonsDelinker, Dada, Dead3y3, Diderot, Filippos, Geraki, GmG, Kalogeropoulos, Loveless, Lucinos, MARKELLOS, Matia.gr, Slady, Δεκαεξαδικό σύστημα, 7 ανώνυμες επεξεργασίες Διαδίκτυο Πηγή: http://el.wikipedia.org/w/index.php?oldid=2370305 Συνεισφέροντες: *Αλέξανδρος, AaThinker, Alaniaris, Ank, ArielGlenn, Badseed, CeeKay, CubicStar, Dada, Dead3y3, Ebatman, Egmontaz, Fs, Georgiost, Geraki, GrooveDog, InMooseWeTrust, JohnMad, Johndrim, Kalogeropoulos, Lemur12, Loveless, Lucinos, MARKELLOS, Nataly8, Nikilambropoulos, Odysseus nemo, OrangeJuiceSeempson, Pinkpress, Purbo T, Pvasiliadis, Skillos, Sphere, Ttzavaras, Wutsje, Zip3, Αναστάσιος, Αντιγόνη, Δνόφος, Φοίβος Παναγόπουλος, 83 ανώνυμες επεξεργασίες Διαδραστικότητα Πηγή: http://el.wikipedia.org/w/index.php?oldid=2314428 Συνεισφέροντες: Dada, Geraki, Veron, Σωτηρης Διεπαφή Πηγή: http://el.wikipedia.org/w/index.php?oldid=2382500 Συνεισφέροντες: Alaniaris, Chomwitt, Dead3y3, Edru, JohnMad, MARKELLOS, MariaMpast, Polyvios, Tony Esopi, Μύθος, 4 ανώνυμες επεξεργασίες Δυαδικό σύστημα Πηγή: http://el.wikipedia.org/w/index.php?oldid=2382944 Συνεισφέροντες: AndreasJS, Antirropos, Badseed, ChristosV, Dada, Egmontaz, Fraxian, GmG, Lucinos, MARKELLOS, Odysseus nemo, Tony Esopi, Vanakaris, Περίεργος, 29 ανώνυμες επεξεργασίες Δυναμική ανάλυση Πηγή: http://el.wikipedia.org/w/index.php?oldid=2198164 Συνεισφέροντες: Gf uip Δυναμική δέσμευση μνήμης Πηγή: http://el.wikipedia.org/w/index.php?oldid=2196613 Συνεισφέροντες: Gf uip, Nataly8 Εικονικοποίηση Πηγή: http://el.wikipedia.org/w/index.php?oldid=2288579 Συνεισφέροντες: AVRS, CommonsDelinker, Erud, Gf uip, JohnMad, Loveless, MARKELLOS, Polyvios, Sir Lothar, 1 ανώνυμες επεξεργασίες Εισαγωγή δεδομένων Πηγή: http://el.wikipedia.org/w/index.php?oldid=2006610 Συνεισφέροντες: Gbadis, MARKELLOS, Ttzavaras Εννοιολογικό πλαίσιο Πηγή: http://el.wikipedia.org/w/index.php?oldid=2369718 Συνεισφέροντες: Gepsimos, Kalogeropoulos, MARKELLOS, Βασίλης, 1 ανώνυμες επεξεργασίες Εξαγωγή πληροφοριών Πηγή: http://el.wikipedia.org/w/index.php?oldid=2020404 Συνεισφέροντες: Arvassil, Loveless, MARKELLOS, Ttzavaras, Veron, Βασίλης, 14 ανώνυμες επεξεργασίες Εξισορρόπηση φόρτου (υπολογιστές) Πηγή: http://el.wikipedia.org/w/index.php?oldid=2417455 Συνεισφέροντες: Dada, Dead3y3, JohnMad, Kalogeropoulos, MARKELLOS, Wlan Επεξεργασία δεδομένων Πηγή: http://el.wikipedia.org/w/index.php?oldid=2322636 Συνεισφέροντες: AndreasJS, Ank, Badseed, Biladen, Diu, Geraki, GigaUser, Leonariso, Loveless, MARKELLOS, Polyvios, 2 ανώνυμες επεξεργασίες Επικοινωνία γραμμής ρεύματος Πηγή: http://el.wikipedia.org/w/index.php?oldid=2350044 Συνεισφέροντες: Ferengi, Hary Dee, Heima, MARKELLOS, Tartoufo1973, Veron, 1 ανώνυμες επεξεργασίες Επίλυση προβλημάτων (τεχνητή νοημοσύνη) Πηγή: http://el.wikipedia.org/w/index.php?oldid=2288561 Συνεισφέροντες: Geraki, Gf uip, JohnMad, 2 ανώνυμες επεξεργασίες Ηλεκτρονική μάθηση Πηγή: http://el.wikipedia.org/w/index.php?oldid=2228596 Συνεισφέροντες: Ferengi, Spy234, 1 ανώνυμες επεξεργασίες Ηλεκτρονικό βιβλίο Πηγή: http://el.wikipedia.org/w/index.php?oldid=2432030 Συνεισφέροντες: Egmontaz, Knop92, Mgoutsidou, Ttzavaras, Valentin, Vanakaris, 10 ανώνυμες επεξεργασίες

223


Πηγές άρθρων και Συνεισφέροντες Θεωρία Δραστηριοτήτων Πηγή: http://el.wikipedia.org/w/index.php?oldid=2025425 Συνεισφέροντες: Badseed, CeeKay, Dalaouzos, Demelaz, Fefeli, Houren, MARKELLOS, Vanakaris, Veron, Μυρμηγκάκι, 2 ανώνυμες επεξεργασίες Ιστορία των υπολογιστών Πηγή: http://el.wikipedia.org/w/index.php?oldid=2397208 Συνεισφέροντες: *Αλέξανδρος, Alaniaris, Alexandros, Armve, Badseed, Billyboyts, Bitjungle, Chomwitt, Dada, Dai, Dead3y3, Degress, Egmontaz, Fithis, FocalPoint, Geraki, Gf uip, Giannisf, Hlias13paofob, Lucinos, MARKELLOS, Output, Polyvios, SantaCruz, Ttzavaras, V nelly, Βασίλης, 53 ανώνυμες επεξεργασίες Κάρτα ήχου Πηγή: http://el.wikipedia.org/w/index.php?oldid=2388820 Συνεισφέροντες: CeeKay, Dada, Geraki, Gf uip, Kakarountas, Kostisl, Loveless, MARKELLOS, Morgatek, Taspozi, 3 ανώνυμες επεξεργασίες Κατάλογος (υπολογιστές) Πηγή: http://el.wikipedia.org/w/index.php?oldid=2409944 Συνεισφέροντες: Chomwitt, Ferengi Κατασκευή ιστοσελίδων Πηγή: http://el.wikipedia.org/w/index.php?oldid=2379443 Συνεισφέροντες: Atlantia, Dead3y3, Dipa1965, Egmontaz, Ferengi, Gf uip, Joomlabyte, Mikle, Stratos1104, Ttzavaras, 2 ανώνυμες επεξεργασίες Κβαντική πληροφορική Πηγή: http://el.wikipedia.org/w/index.php?oldid=849541 Συνεισφέροντες: Kostisl, Udelma, Wthered, Βασίλης Κεντρική Μονάδα Επεξεργασίας Πηγή: http://el.wikipedia.org/w/index.php?oldid=2424377 Συνεισφέροντες: Aggelos24, Badseed, Chomwitt, Cogiati, Dada, Dipa1965, Flyax, FocalPoint, Greekwikipedian, Instigate cjsc (Narine), JohnMad, Knop92, Konsnos, Lord Makro, Loveless, MARKELLOS, Polyvios, SantaCruz, Sotkil, SpyrosCS, Ttzavaras, Vanakaris, Διόφαντος, 19 ανώνυμες επεξεργασίες Κιλομπάιτ Πηγή: http://el.wikipedia.org/w/index.php?oldid=2439337 Συνεισφέροντες: Chomwitt, Dead3y3, Gf uip, Kostisl, Lucinos, 4 ανώνυμες επεξεργασίες Κιμπιμπάιτ Πηγή: http://el.wikipedia.org/w/index.php?oldid=1846258 Συνεισφέροντες: Chomwitt, Dead3y3, Kostisl, Loveless, Pvasiliadis, V-astro Κοιλάδα του Πυριτίου Πηγή: http://el.wikipedia.org/w/index.php?oldid=2101224 Συνεισφέροντες: Atlantia, Clalas, K sal 15, Ttzavaras Κυτταρικά αυτόματα Πηγή: http://el.wikipedia.org/w/index.php?oldid=2268729 Συνεισφέροντες: Amalgam, Apollws, Egmontaz, Jaguarlaser, JohnMad, Morgatek, Ttzavaras, Veron, Μυρμηγκάκι Κωδικοποίηση Huffman Πηγή: http://el.wikipedia.org/w/index.php?oldid=1992305 Συνεισφέροντες: Alaniaris, Ferengi, Lady 6thofAu, Loveless Λογισμικό Πηγή: http://el.wikipedia.org/w/index.php?oldid=2398776 Συνεισφέροντες: Badseed, Egmontaz, FocalPoint, JohnMad, SpyrosCS, Vanakaris, Wikijens, Xoristzatziki, 3 ανώνυμες επεξεργασίες Μεμπιμπάιτ Πηγή: http://el.wikipedia.org/w/index.php?oldid=2348414 Συνεισφέροντες: Chomwitt, Pvasiliadis, Veron Μεταδεδομένα Πηγή: http://el.wikipedia.org/w/index.php?oldid=2408688 Συνεισφέροντες: BioPupil, Egmontaz, Kostisl, MARKELLOS, S. Cruz, Ttzavaras Μη ντετερμινιστικό πεπερασμένο αυτόματο Πηγή: http://el.wikipedia.org/w/index.php?oldid=2407672 Συνεισφέροντες: Ferengi, Vevek, Μυρμηγκάκι Μηχανή αναζήτησης Πηγή: http://el.wikipedia.org/w/index.php?oldid=2417494 Συνεισφέροντες: Acp, Amalgam, ArielGlenn, Badseed, Chggr, Fantom, Geraki, Gmichael, Kalpha, Ttzavaras, V nelly, WebOlution, 20 ανώνυμες επεξεργασίες Μηχατρονική Πηγή: http://el.wikipedia.org/w/index.php?oldid=2413011 Συνεισφέροντες: *Αλέξανδρος, FocalPoint, Frid4y, Idomeneas, Kleisthenis, MARKELLOS, Polyvios, Ttzavaras, Vanakaris, 88 ανώνυμες επεξεργασίες Μικροελεγκτής Πηγή: http://el.wikipedia.org/w/index.php?oldid=2392500 Συνεισφέροντες: Dipa1965 Μικροεπεξεργαστής Πηγή: http://el.wikipedia.org/w/index.php?oldid=2434028 Συνεισφέροντες: Adert, Dipa1965, Gf uip, JohnMad, Knop92, MARKELLOS, SpyrosCS Μοντέλο Αποδοχής Τεχνολογίας Πηγή: http://el.wikipedia.org/w/index.php?oldid=1942012 Συνεισφέροντες: FocalPoint, MARKELLOS, Pulse, Ttzavaras, Veron Μοντέλο δεδομένων Πηγή: http://el.wikipedia.org/w/index.php?oldid=1981821 Συνεισφέροντες: Dada, FocalPoint, Kalogeropoulos, Polyvios, Tzag Μοντελοποίηση δεδομένων Πηγή: http://el.wikipedia.org/w/index.php?oldid=2155707 Συνεισφέροντες: FocalPoint, Tony Esopi, Tzag, Veron Νόμος του Μουρ Πηγή: http://el.wikipedia.org/w/index.php?oldid=2232745 Συνεισφέροντες: CeeKay, Egmontaz, JohnMad, Loveless, MARKELLOS, Ttzavaras Ντετερμινιστικό πεπερασμένο αυτόματο Πηγή: http://el.wikipedia.org/w/index.php?oldid=2315313 Συνεισφέροντες: Vevek, Μυρμηγκάκι, 3 ανώνυμες επεξεργασίες Περιφερειακή συσκευή Πηγή: http://el.wikipedia.org/w/index.php?oldid=2392645 Συνεισφέροντες: Jimys salonika, Μυρμηγκάκι Πληροφορική Πηγή: http://el.wikipedia.org/w/index.php?oldid=2435738 Συνεισφέροντες: *Αλέξανδρος, Alaniaris, Ank, Badseed, Bluemask, Chomwitt, Cookies, Dead3y3, EDimitris, Eleana be, Fvilim, Gbadis, InF3XioN, JohnMad, Konsnos, Kostisl, Leonariso, Loveless, Lucinos, MARKELLOS, Mmsoft, Moumoutzis, Nakos2208, Polyvios, S0crates, Ttzavaras, Tzag, Vyruss, Yacht, Βασίλης, 34 ανώνυμες επεξεργασίες Προγραμματισμός Πηγή: http://el.wikipedia.org/w/index.php?oldid=2404003 Συνεισφέροντες: Ansna, Morgatek, Tony Esopi, Unpaiktable, V nelly, Veron, 1 ανώνυμες επεξεργασίες Προεπεξεργαστής Πηγή: http://el.wikipedia.org/w/index.php?oldid=2398461 Συνεισφέροντες: Gf uip, Xoristzatziki, Μυρμηγκάκι Προσωρινή μνήμη (υπολογιστές) Πηγή: http://el.wikipedia.org/w/index.php?oldid=2249198 Συνεισφέροντες: Chomwitt, Dtm, JohnMad, Stavros1987, Ttzavaras, Vevek Στατική ανάλυση Πηγή: http://el.wikipedia.org/w/index.php?oldid=2423592 Συνεισφέροντες: Ferengi, Gf uip, Polyvios Στοίβα κλήσεων Πηγή: http://el.wikipedia.org/w/index.php?oldid=2391230 Συνεισφέροντες: Gf uip Συμβολομεταφραστής Πηγή: http://el.wikipedia.org/w/index.php?oldid=1208376 Συνεισφέροντες: FocalPoint, JohnMad, Ttzavaras, 2 ανώνυμες επεξεργασίες Συνέχεια (πληροφορική) Πηγή: http://el.wikipedia.org/w/index.php?oldid=2198308 Συνεισφέροντες: Gf uip, Nataly8, Patriot8790 Σύστημα αρχείων Πηγή: http://el.wikipedia.org/w/index.php?oldid=2129142 Συνεισφέροντες: Atlantia, Xoristzatziki Σχεδίαση για Όλους Πηγή: http://el.wikipedia.org/w/index.php?oldid=2103463 Συνεισφέροντες: Iosif75, MARKELLOS, 2 ανώνυμες επεξεργασίες Τεκμήριο (υπολογιστές) Πηγή: http://el.wikipedia.org/w/index.php?oldid=1028731 Συνεισφέροντες: Dada, Ferengi, FocalPoint, JohnMad, Ninos Τεχνητή νοημοσύνη Πηγή: http://el.wikipedia.org/w/index.php?oldid=2311143 Συνεισφέροντες: *Αλέξανδρος, Alaniaris, Badseed, Chemi-science, Costasch, Daydreamer, Dead3y3, Jack, JohnMad, Kostisl, Loveless, ManosHacker, Odysseus nemo, Polyvios, Purodha, Ttzavaras, Vanakaris, Yrefanid, 25 ανώνυμες επεξεργασίες Τσιπσετ Πηγή: http://el.wikipedia.org/w/index.php?oldid=2217881 Συνεισφέροντες: Jimys salonika, Patriot8790 Υλικό υπολογιστών Πηγή: http://el.wikipedia.org/w/index.php?oldid=2312511 Συνεισφέροντες: Alaniaris, Bmichal, FocalPoint, Gf uip, Heliosknowledge, JohnMad, Saintfevrier, 3 ανώνυμες επεξεργασίες Υπερκείμενο Πηγή: http://el.wikipedia.org/w/index.php?oldid=2230501 Συνεισφέροντες: *Αλέξανδρος, Dada, Kalogeropoulos, MARKELLOS, Nafpaktiakos, Ttzavaras, Tzag, 11 ανώνυμες επεξεργασίες Υπερμέσο Πηγή: http://el.wikipedia.org/w/index.php?oldid=2094638 Συνεισφέροντες: Badseed, Dead3y3, Fotiniv, Kalogeropoulos, Loveless, Vanakaris, Veron, 1 ανώνυμες επεξεργασίες

224


Πηγές άρθρων και Συνεισφέροντες Υπολογισμός Πηγή: http://el.wikipedia.org/w/index.php?oldid=2031809 Συνεισφέροντες: Polyvios Υπολογιστικό σύστημα Πηγή: http://el.wikipedia.org/w/index.php?oldid=1894711 Συνεισφέροντες: JohnMad Χρόνος αδράνειας Πηγή: http://el.wikipedia.org/w/index.php?oldid=2230416 Συνεισφέροντες: Chomwitt, Loveless, Vanakaris, Veron, Βασίλης Ψηφιακό σήμα Πηγή: http://el.wikipedia.org/w/index.php?oldid=2032960 Συνεισφέροντες: Egmontaz, Gbadis, Jimys salonika, JohnMad, Piperman, Ttzavaras, Veron

225


Πηγές Εικόνων, Άδειες και Συνεισφέροντες

Πηγές Εικόνων, Άδειες και Συνεισφέροντες Αρχείο:Utah teapot simple 2.png Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Utah_teapot_simple_2.png Άδεια: Creative Commons Attribution-Sharealike 3.0 Συνεισφέροντες: User:Dhatfield Αρχείο:Sorting_quicksort_anim.gif Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Sorting_quicksort_anim.gif Άδεια: Creative Commons Attribution-Sharealike 2.5 Συνεισφέροντες: Berrucomons, Cecil, Chamie, Davepape, Diego pmc, Editor at Large, German, Gorgo, Howcheng, Jago84, JuTa, Lokal Profil, MaBoehm, Minisarm, Miya, Mywood, NH, PatríciaR, Qyd, Soroush83, Stefeck, Str4nd, W like wiki, 11 ανώνυμες επεξεργασίες Αρχείο:Lambda lc.svg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Lambda_lc.svg Άδεια: Public Domain Συνεισφέροντες: Luks, Vlsergey, 1 ανώνυμες επεξεργασίες Αρχείο:3-Tastenmaus_Microsoft.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:3-Tastenmaus_Microsoft.jpg Άδεια: Creative Commons Attribution-Sharealike 2.5 Συνεισφέροντες: Aka, Darkone, GreyCat, Warden Αρχείο:Wikipedia-logo.png Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Wikipedia-logo.png Άδεια: logo Συνεισφέροντες: Abigor, Bastique, Cary Bass, Guillom, Krinkle, Kwj2772, Mike.lifeguard, Mormegil, Richie, Rocket000, Schaengel89 Αρχείο:AwardBIOS CMOS Setup Utility.png Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:AwardBIOS_CMOS_Setup_Utility.png Άδεια: άγνωστος Συνεισφέροντες: Egmontaz, MARKELLOS, Students εικόνα:H-Q embassy article.png Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:H-Q_embassy_article.png Άδεια: άγνωστος Συνεισφέροντες: Alexignatiou Αρχείο:Sql_server_general.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Sql_server_general.jpg Άδεια: άγνωστος Συνεισφέροντες: Pstavroulis Αρχείο:Query plan.JPG Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Query_plan.JPG Άδεια: άγνωστος Συνεισφέροντες: Pstavroulis Αρχείο:EPC-RFID-TAG.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:EPC-RFID-TAG.jpg Άδεια: GNU Free Documentation License Συνεισφέροντες: Iolarmaol, JMPerez, Kocio, Midnightcomm, Sakurambo, 4 ανώνυμες επεξεργασίες Αρχείο:Internet map 1024.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Internet_map_1024.jpg Άδεια: Creative Commons Attribution 2.5 Συνεισφέροντες: Matt Britt Image:VirtualBox2.png Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:VirtualBox2.png Άδεια: Trademarked Συνεισφέροντες: (Αγγλικά) Αρχείο:Laptop-ebook.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Laptop-ebook.jpg Άδεια: Creative Commons Attribution 2.5 Συνεισφέροντες: w:Design ContinuumDesign Continuum Αρχείο:Sblive!.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Sblive!.jpg Άδεια: Public Domain Συνεισφέροντες: FinnBjo, GreyCat, Lockal, MB-one, MMuzammils, Qurren, 1 ανώνυμες επεξεργασίες Αρχείο:Computer sound card01.JPEG Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Computer_sound_card01.JPEG Άδεια: Public Domain Συνεισφέροντες: Credits : PD Photo.org Αρχείο:VIA_Envy.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:VIA_Envy.jpg Άδεια: GNU Free Documentation License Συνεισφέροντες: w:en:User:BerkutBerkut Αρχείο:Echo Indigo IO.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Echo_Indigo_IO.jpg Άδεια: άγνωστος Συνεισφέροντες: 32X, Omegatron, Qurren, Shoulder-synth Αρχείο:80486dx2-large.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:80486dx2-large.jpg Άδεια: άγνωστος Συνεισφέροντες: A23cd-s, Adambro, Admrboltz, Artnnerisa, CarolSpears, Denniss, Greudin, Kozuch, Martin Kozák, Mattbuck, Rjd0060, Rocket000, 11 ανώνυμες επεξεργασίες Αρχείο:Edvac.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Edvac.jpg Άδεια: Public Domain Συνεισφέροντες: User Matt Britt on en.wikipedia Αρχείο:IBM360-65-1.corestore.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:IBM360-65-1.corestore.jpg Άδεια: GNU Free Documentation License Συνεισφέροντες: Original uploader was ArnoldReinhold at en.wikipedia Αρχείο:Intel 80486DX2 bottom.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Intel_80486DX2_bottom.jpg Άδεια: άγνωστος Συνεισφέροντες: Denniss, Solipsist Αρχείο:MOS 6502AD 4585 top.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:MOS_6502AD_4585_top.jpg Άδεια: GNU Free Documentation License Συνεισφέροντες: EugeneZelenko, German, Idrougge, Morkork Αρχείο:Υπολογιστικό σύστημα.PNG Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Υπολογιστικό_σύστημα.PNG Άδεια: Creative Commons Attribution-Sharealike 3.0 Συνεισφέροντες: Χρήστης:SpyrosCS Αρχείο:Παλμός ρολογιού.PNG Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Παλμός_ρολογιού.PNG Άδεια: Creative Commons Attribution-Sharealike 3.0 Συνεισφέροντες: Χρήστης:SpyrosCS Αρχείο:Σωλήνωση.PNG Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Σωλήνωση.PNG Άδεια: GNU Free Documentation License Συνεισφέροντες: Χρήστης:SpyrosCS Image:Frostburg.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Frostburg.jpg Άδεια: Creative Commons Attribution-Sharealike 2.0 Συνεισφέροντες: User:Matt Crypto Αρχείο:OpenOffice.org Writer.png Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:OpenOffice.org_Writer.png Άδεια: GNU Lesser General Public License Συνεισφέροντες: http://hacktolive.org/ Αρχείο:NASdoDASetap1.svg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:NASdoDASetap1.svg Άδεια: Public Domain Συνεισφέροντες: User:Emergie Αρχείο:Intel 4004.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Intel_4004.jpg Άδεια: GNU Free Documentation License Συνεισφέροντες: Original uploader was LucaDetomi at it.wikipedia Image:Deterministicfiniteautomaton.svg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Deterministicfiniteautomaton.svg Άδεια: Creative Commons Attribution-Sharealike 3.0 Συνεισφέροντες: User:Vevek Εικόνα:DFA_to_be_minimized.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:DFA_to_be_minimized.jpg Άδεια: Creative Commons Attribution-Sharealike 3.0 Συνεισφέροντες: User:Vevek Εικόνα:Minimized_DFA.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Minimized_DFA.jpg Άδεια: Creative Commons Attribution-Sharealike 3.0 Συνεισφέροντες: User:Vevek File:Utah teapot simple 2.png Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Utah_teapot_simple_2.png Άδεια: Creative Commons Attribution-Sharealike 3.0 Συνεισφέροντες: User:Dhatfield File:Sorting_quicksort_anim.gif Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Sorting_quicksort_anim.gif Άδεια: Creative Commons Attribution-Sharealike 2.5 Συνεισφέροντες: Berrucomons, Cecil, Chamie, Davepape, Diego pmc, Editor at Large, German, Gorgo, Howcheng, Jago84, JuTa, Lokal Profil, MaBoehm, Minisarm, Miya, Mywood, NH, PatríciaR, Qyd, Soroush83, Stefeck, Str4nd, W like wiki, 11 ανώνυμες επεξεργασίες File:Lambda lc.svg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Lambda_lc.svg Άδεια: Public Domain Συνεισφέροντες: Luks, Vlsergey, 1 ανώνυμες επεξεργασίες File:3-Tastenmaus_Microsoft.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:3-Tastenmaus_Microsoft.jpg Άδεια: Creative Commons Attribution-Sharealike 2.5 Συνεισφέροντες: Aka, Darkone, GreyCat, Warden Αρχείο:Call stack layout.svg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Call_stack_layout.svg Άδεια: Creative Commons Attribution-Sharealike 2.5 Συνεισφέροντες: User:R. S. Shaw File:Schema chipsatz.png Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Schema_chipsatz.png Άδεια: GNU Free Documentation License Συνεισφέροντες: Alexander Taubenkorb Αρχείο:TextVSHypertext.jpg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:TextVSHypertext.jpg Άδεια: άγνωστος Συνεισφέροντες: Χρήστης:Tzag Αρχείο:Sampled.signal.svg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Sampled.signal.svg Άδεια: Public Domain Συνεισφέροντες: User:Petr.adamek, User:Rbj Αρχείο:Digital.signal.svg Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:Digital.signal.svg Άδεια: Public Domain Συνεισφέροντες: User:Petr.adamek, User:Rbj Αρχείο:S_digital.PNG Πηγή: http://el.wikipedia.org/w/index.php?title=Αρχείο:S_digital.PNG Άδεια: GNU Free Documentation License Συνεισφέροντες: José Luis Gálvez

226


Άδεια

Άδεια Creative Commons Attribution-Share Alike 3.0 Unported http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/

227


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.