TEI Ιονίων Νήσων Τμήμα Τεχνολογίας Τροφίμων Πληροφορική Σημειώσεις Τεύχος 3. Μάκης Σταματελάτος

Σχετικά έγγραφα
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

Μάριος Αγγελίδης Ενότητες βιβλίου: 2.1, 2.3, 6.1 (εκτός ύλης αλλά χρειάζεται για την συνέχεια) Ώρες διδασκαλίας: 1

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. ΚΕΦΑΛΑΙΟ 2 Βασικές Έννοιες Αλγορίθμων

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

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

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

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

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

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Πρόβλημα 29 / σελίδα 28

Προγραμματισμός Υπολογιστών

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

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

ΑΕΠΠ Ερωτήσεις θεωρίας

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

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

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

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

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

Δομή Ηλεκτρονικού υπολογιστή

Εισαγωγή - Βασικές έννοιες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

Το υλικό του υπολογιστή

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

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο. Επικοινωνία:

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

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

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

6. Εισαγωγή στον προγραµµατισµό

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

ΓΕ0170 -Αλγόριθμοι και Προηγμένες Προγραμματικές Τεχνικές. Εισαγωγή. Νίκος Αθανάσης.

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

Δεδομένα & Αναπαράσταση Πληροφορίας

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013

1. Τι ονομάζουμε αλγόριθμο; Δώστε παράδειγμα.

Αλγόριθμοι. Βασικές έννοιες ΤΕΛΟΣ

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

Προγραμματισμός I (Θ)

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ

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

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Εισαγωγή στην επιστήµη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

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

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

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

ΕΠΕΞΕΡΓΑΣΙΑ ΠΛΗΡΟΦΟΡΙΕΣ ΕΞΟ ΟΣ

Επιµέλεια Θοδωρής Πιερράτος

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΠΛΗΡΟΦΟΡΙΚΗ: ΥΠΟΛΟΓΙΣΤΕΣ & ΤΕΧΝΟΛΟΓΙΕΣ ΔΙΑΔΙΚΤΥΟΥ

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

Εισαγωγή στους Η/Υ και Εφαρμογές

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Μαλούτα Θεανώ Σελίδα 1

Transcript:

TEI Ιονίων Νήσων Τμήμα Τεχνολογίας Τροφίμων Πληροφορική Σημειώσεις Τεύχος 3 Μάκης Σταματελάτος makiss@teiion.gr

Αρχιτεκτονική Η/Υ (1) Κλασσική προσέγγιση (von Neumann)

Σύνθεση - Επίπεδα Σύστημα Υπολογιστή Υλiκό (Hardware) Λογισμικό (Software) Λειτουργικό Σύστημα Προγράμματα Εφαρμογών

Κεντρική Μονάδα Επεξεργασίας Η Κεντρική Μονάδα Επεξεργασίας που είναι γνωστή ως ο Επεξεργαστής του Υπολογιστή είναι η «καρδιά» του υπολογιστή και είναι υπεύθυνη για: τη μεταφορά των εντολών των προγραμμάτων που βρίσκονται στη μνήμη την προετοιμασία και τελικά την εκτέλεση των εντολών των προγραμμάτων Η ΚΜΕ αποτελείται από δύο βασικά τμήματα: μονάδα ελέγχου, ΜΕ (Control Unit, CU) αριθμητική και λογική μονάδα, ΑΛΜ (Arithmetic and Logic Unit, ALU)

Η Αριθμητική και Λογική Μονάδα Η ΑΛΜ εκτελεί κάθε αριθμητική πράξη (+,, /,*) ή λογική (ΑND, OR, NOT, ) που απαιτείται Η ΜΕ την καθοδηγεί στις εξής λειτουργίες: o ποια πράξη να εκτελέσει o από πού να πάρει δεδομένα o που να τοποθετήσει το αποτέλεσμα

Aριθμητική και Λογική Μονάδα (AΛΜ ΑLU) Τα κυκλώματα, τα οποία συνήθως περιέχονται σε μια ALU: Ένας αθροιστής (adder) για την εκτέλεση των βασικών αριθμητικών πράξεων Ένας συγκριτής (comparator), για την σύγκριση των αριθμών που τοποθετούνται στους καταχωρητές Ένας ολισθητής (shifter), για την ολίσθηση ή την περιστροφή ενός αριθμού Μία μονάδα λογικής επεξεργασίας, για την εκτέλεση λογικών πράξεων πάνω στους αριθμούς, που τοποθετούνται στους καταχωρητές Κάποιοι καταχωρητές για την αποθήκευση των αριθμών και τα αποτελέσματα των πράξεων

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

Μονάδα Ελέγχου (ΜΕ) Η ΜΕ είναι το οργανωτικό κέντρο του Η/Υ, που περιέχει δύο καταχωρητές: Καταχωρητή Εντολής, ΚΕ (Instruction Register, IR), που περιέχει την εντολή που εκτελείται αυτή τη στιγμή Μετρητή Προγράμματος, ΜΠ (program counter, PC), που περιέχει τη διεύθυνση (στη μνήμη) της εντολής που θα εκτελεστεί αμέσως μετά

Η Μνήμη Κύρια Μνήμη Μνήμη Βοηθητική Μνήμη Η Κύρια Μνήμη περιέχει τις εντολές των προγραμμάτων που εκτελούνται κάθε στιγμή από τον υπολογιστή καθώς και τα δεδομένα που χρησιμοποιούν αυτά RAM ROM Cache Virtual Memory Η Βοηθητική Μνήμη αποθηκεύει μόνιμα προγράμματα και δεδομένα καθώς αυτά χάνονται από την κύρια μνήμη όταν σταματήσει η τροφοδοσία με ρεύμα Σκληρός Δίσκος Οπτικός Δίσκος

Η Κύρια Μνήμη - Οργάνωση Η Κύρια μνήμη του Ηλεκτρονικού Υπολογιστή είναι οργανωμένη σαν ένας πίνακας αποθήκευσης όπου κάθε θέση έχει μια διεύθυνση (μέσω τις οποίας είναι δυνατή η προσπέλασή της) και ένα περιεχόμενο που αποθηκεύει. Τόσο η διεύθυνση όσο και το περιεχόμενο της μνήμης είναι δυαδικοί αριθμοί (ακόμη και οι εντολές των προγραμμάτων είναι δυαδικοί αριθμοί και η ΚΜΕ τους αποκωδικοποιεί προκειμένου να εντοπίσει σε ποια εντολή αντιστοιχεί ο εκάστοτε αριθμός.

Ανάγνωση -Εγγραφή Η ΚΜΕ αποστέλλει: τον κωδικό της πράξης της ανάγνωσης τη διεύθυνση της λέξης που θέλει να διαβάσει Η μνήμη επιστρέφει τα bit της λέξης Η ΚΜΕ αποστέλλει: τον κωδικό της πράξης της εγγραφής τη διεύθυνση της λέξης που θέλει να γράψει τα bit της λέξης Η μνήμη εκτελεί την αλλαγή

Κρυφή Μνήμη (Cache Memory) Η λανθάνουσα ή κρυφή μνήμη (cache memory) βοηθά στην επιτάχυνση της λειτουργίας ενός επεξεργαστή κρατώντας το περιεχόμενο των πιο πρόσφατα χρησιμοποιημένων θέσεων μνήμης οι πιο πολλοί προσωπικοί υπολογιστές έχουν δύο διαφορετικούς τύπους λανθάνουσας μνήμης: «επιπέδου 1» (Level 1 ή L1 cache) & «επιπέδου 2» (Level 2 ή L2 cache)

Κρυφή Μνήμη (Cache Memory) L1: βρίσκεται στο εσωτερικό του επεξεργαστή και κρατά διευθύνσεις μνήμης που αντιστοιχούν σε δεδομένα αλλά και σε εντολές μηχανής (~ 2MB) L2: είναι μεγαλύτερου μεγέθους, πιο αργή και βρίσκεται πάνω στη μητρική κάρτα του υπολογιστή (~ 4MB)

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

Κύκλος Μηχανής Κάθε εντολή εκτελείται/αποτελείται σε δύο φάσεις (μέσα στον επεξεργαστή) : o Προσκόμιση εντολής (Fetch) o Εκτέλεση εντολής (Execute) H διεργασία που απαιτείται για την εκτέλεση μιας εντολής ενός προγράμματος ονομάζεται κύκλος μηχανής (εντολής)

Δίαυλοι Επικοινωνίας Δίαυλοι Επικοινωνίας Οι δίαυλοι επικοινωνίας είναι τα «κανάλια» μέσω των οποίων τα υποσυστήματα του υπολογιστή όπως ο επεξεργαστής, η κύρια μνήμη, οι μονάδες εισόδου και εξόδου, οι κάρτες επέκτασης επικοινωνούν μεταξύ τους. Οι δίαυλοι επικοινωνίας είναι «χαραγμένοι» στη μητρική πλακέτα καθώς σε αυτή τοποθετούνται ή συνδέονται όλα τα υποσυστήματα του υπολογιστή. Δίαυλος Ελέγχου (Control Bus): Μεταφέρει σήματα (εντολές) ελέγχου ανάμεσα σε υποσυστήματα Δίαυλος Διευθύνσεων (Address Bus): Μεταφέρει τις διευθύνσεις Δίαυλος Δεδομένων (Data Bus): Μεταφέρει τα δεδομένα ανάμεσα σε υποσυστήματα

Δίαυλοι Επικοινωνίας Δίαυλος Ελέγχου: Εντολή ανάγνωσης Επεξεργαστής Δίαυλος Διευθύνσεων: Διεύθυνση Μνήμης Μνήμη RAM Δίαυλος Δεδομένων:Περιεχόμενο της θέσης μνήμης

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

Κατηγορίες Εντολών Αριθμητικές Εντολές (πρόσθεση, αφαίρεση, πολλαπλασιασμός, διαίρεση, αύξηση ή μείωση του καταχωρητή κατά 1, αντιστροφή και αύξηση αληθές συμπλήρωμα) και ολίσθηση) Λογικές εντολές Εντολές μεταφοράς ελέγχου ή διακλάδωσης Εντολές μεταφοράς και καταχώρησης Εντολές εισόδου/εξόδου Ειδικές εντολές (stop, end, κ.τ.λ.)

Γλώσσα μηχανής Οι εντολές της γλώσσας μηχανής διατυπώνονται κωδικοποιημένες στο δυαδικό σύστημα Αποτελούνται από: o Τον κωδικό εντολής: προσδιορίζει το είδος της ενέργειας o Τη διεύθυνση του παράγοντα: προσδιορίζει τη διεύθυνση της Κ.Μ.Ε. στην οποία ο υπολογιστής θα βρει τον παράγοντα ή τους παράγοντες o Το μήκος της εντολής (bits) ποικίλει ανάλογα με τον τύπο του υπολογιστή

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

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

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

Αλγόριθμοι - Κριτήρια Είσοδος (input). Καµία, µία ή και περισσότερες τιµές δεδοµένων πρέπει να δίνονται ως είσοδοι στον αλγόριθµο. Η περίπτωση που δεν δίνονται τιµές δεδοµένων εµφανίζεται όταν ο αλγόριθµος δηµιουργεί και επεξεργάζεται κάποιες πρωτογενείς τιµές µε τη βοήθεια των συναρτήσεων παραγωγής τυχαίων αριθµών, ή µε την βοήθεια άλλων απλών εντολών. Έξοδος (output). Ο αλγόριθµος πρέπει να δηµιουργεί τουλάχιστον µία τιµή δεδοµένων ως αποτέλεσµα προς το χρήστη ή προς έναν άλλο αλγόριθµο. Καθοριστικότητα (definiteness). Κάθε εντολή πρέπει να καθορίζεται χωρίς καµία αµφιβολία για τον τρόπο εκτέλεσης της. Για παράδειγμα, µία εντολή διαίρεσης πρέπει να θεωρεί και την περίπτωση, όπου ο διαιρέτης λαµβάνει τη µηδενική τιµή. Περατότητα (finiteness). Ο αλγόριθµος να τελειώνει µετά από πεπερασµένα βήµατα εκτέλεσης των εντολών του. Μία διαδικασία που δεν τελειώνει µετά από ένα συγκεκριµένο αριθµό βηµάτων δεν αποτελεί αλγόριθµο, αλλά λέγεται απλά υπολογιστική διαδικασία (computational procedure). Αποτελεσµατικότητα (effectiveness). Κάθε µεµονωµένη εντολή του αλγορίθµου να είναι απλή. Αυτό σηµαίνει ότι µια εντολή δεν αρκεί να έχει ορισθεί, αλλά πρέπει να είναι και εκτελέσιµη.

Αλγόριθμοι μελέτη Υλικό (hardware). Η ταχύτητα εκτέλεσης ενός αλγορίθµου επηρεάζεται από τις διάφορες τεχνολογίες υλικού, δηλαδή από τον τρόπο που είναι δοµηµένα σε µία ενιαία αρχιτεκτονική τα διάφορα συστατικά του υπολογιστή. Γλώσσες Προγραµµατισµού(programming languages). Το είδος της γλώσσας προγραµµατισµού που χρησιµοποιείται (χαµηλότερου ή υψηλότερου επιπέδου) αλλάζει τη δοµή και τον αριθµό των εντολών ενός αλγορίθµου. Θεωρητική(theoretical). Το ερώτηµα που συχνά τίθεται είναι, αν πραγµατικά υπάρχει ή όχι κάποιος αποδοτικός αλγόριθµος για την επίλυση ενός προβλήµατος. Η προσέγγιση αυτή είναι ιδιαίτερα σηµαντική γιατί προσδιορίζει τα όρια της λύσης που θα βρεθεί σε σχέση µε ένα συγκεκριµένο πρόβληµα. Αναλυτική(analytical). Μελετώνται οι υπολογιστικοί πόροι (computer resources) που απαιτούνται από ένα αλγόριθµο όπως για παράδειγµα το µέγεθος της κύριας µνήµης και της δευτερεύουσας µνήµης, ο χρόνος για λειτουργίες της CPU και για τις λειτουργίες εισόδου/εξόδου.

Αλγόριθμοι Περιγραφή Αναπαράσταση µε ελεύθερο κείµενο (free text), που αποτελεί τον πιο ανεπεξέργαστο και αδόµητο τρόπο παρουσίασης αλγορίθµου. Έτσι µπορεί εύκολα να οδηγήσει σε µη εκτελέσιµη παρουσίαση παραβιάζοντας το τελευταίο χαρακτηριστικό των αλγορίθµων, δηλαδή την αποτελεσµατικότητα. µε διαγραµµατικές τεχνικές (diagramming techniques), που συνιστούν ένα γραφικό τρόπο παρουσίασης αλγορίθµου. Η πιο γνωστή από αυτές είναι το διάγραµµα ροής (flow chart). Ωστόσο η χρήση διαγραµµάτων ροής για την παρουσίαση αλγορίθµων δεν αποτελεί την καλύτερη λύση γι αυτό και εµφανίζονται όλο και σπανιότερα στη βιβλιογραφία και πράξη. µε φυσική γλώσσα (natural language) κατά βήµατα. Στην περίπτωση αυτή χρειάζεται προσοχή, γιατί µπορεί να παραβιασθεί το τρίτο βασικό χαρακτηριστικό ενός αλγορίθµου, όπως προσδιορίστηκε προηγουµένως δηλαδή το κριτήριο του καθορισµού. µε κωδικοποίηση (coding), δηλαδή µε ένα πρόγραµµα που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσµατα µε τον αλγόριθµο.

Γλώσσες προγραμματισμού Χαμηλού επιπέδου: συγγενικές με τη γλώσσα μηχανής. Συνδυασμοί δυαδικών ακολουθιών «μνημονικοί» συμβολισμοί Υψηλού επιπέδου: ανεξάρτητες από τα διάφορα συστήματα υπολογιστών Ενδιάμεση χρήση συμβολομεταφραστή o Μεταγλωττιστές (compilers): δέχονται ένα ολόκληρο αρχικό πρόγραμμα και παράγουν ένα ισοδύναμο τελικό πρόγραμμα σε κώδικα μηχανής o Διερμηνευτές (interpreters): καλούνται κάθε φορά που επιθυμούμε να εκτελέσουμε ένα πρόγραμμα. Διαβάζει μία μία τις εντολές και εκτελεί για κάθε μία την ισοδύναμη ακολουθία εντολών μηχανής

Γλώσσες Προγραμματισμού Διαδικαστικές γλώσσες (FORTRAN, COBOL, PASCAL, C ) Αντικειμενοστραφείς γλώσσες (Java, Visual C++, ) Συναρτησιακές γλώσσες (Lisp, Hope) Μη διαδικαστικές γλώσσες (Prolog)

Γλώσσες Προγραμματισμού Μεγάλη ποικιλία γλωσσών προγραμματισμού ΔΕΝ υπάρχει μία και μόνο γλώσσα κατάλληλη για όλες τις δουλειές (one-fitsall)

Γλώσσες Προγραμματισμού Γενικής Χρήσης: C, Pascal, Fortran, C++, C#, Java, Python, Javascript, Ruby, Perl, PHP, SML, O'Caml, Haskell, Lisp, Erlang, Prolog, Assembly Domain specific: SQL, VHDL Scripting: Shell, AWK, sed Γλώσσες markup: SGML, HTML, XML, TeX

Γλώσσες Προγραμματισμού Η C εξακολουθεί να είναι από τις πιο διαδεδομένες γλώσσες προγραμματισμού γενικής χρήσης, και φαίνεται σαν ένας κοινός παρονομαστής ανάμεσα στους περισσότερους προγραμματιστές η καλή γνώση της κρίνεται απαραίτητη. Αν μη τι άλλο είναι χρήσιμη σε περίπτωση που χρειάζεται να μελετήσουμε τον κώδικα κάποιας εφαρμογής γραμμένη σε αυτή. Επιπλέον, η σύνταξη εξίσου διαδεδομένων γλωσσών όπως η C++, Java και C# είναι αρκετά όμοια. Από τις τελευταίες η Java κατέχει σημαντικό μερίδιο στην αγορά εργασίας (κυρίως σε ότι αφορά δικτυακές και enterprise εφαρμογές), ενώ χάνει σιγά σιγά έδαφος από την C#. Η C++ είναι ακόμα πολύ δυνατή σε ορισμένους τομείς, ειδικά στο Game Development. Πολύ ενδιαφέρουσες είναι και οι γλώσσες συναρτησιακού προγραμματισμού. Από αυτές, αρκετά μέλη της κοινότητας φαίνεται να ξεχωρίζουν την Haskell και την O'Caml. Οι γλώσσες αυτές τα τελευταία χρόνια έχουν αρχίσει να ξεφεύγουν από τον ακαδημαϊκό τομέα και να γίνονται περισσότερο mainstream. Scripting γλώσσας υψηλού επιπέδου, σαν την Python, την Ruby ή την Perl. Είναι εξαιρετικά χρήσιμες για prototyping, εφαρμογές web αλλά και rapid application development. Επιπλέον μπορούν να αντικαταστήσουν το shell scripting σε ορισμένα administrative tasks, όπου απαιτείται μια περισσότερο δομημένη προσέγγιση.

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

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