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

31
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Δρ. Στέλιος Τιμοθέου

Upload: others

Post on 20-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

ΗΜΥ 100

Εισαγωγή στην Τεχνολογία

Διάλεξη 9

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

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

Δρ. Στέλιος Τιμοθέου

Page 2: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Τα θέματα μας σήμερα

Ηλεκτρονικοί υπολογιστές

Υλικό και λογισμικό

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

Μνήμη

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

Page 3: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

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

• Ο Η/Υ είναι ένα εργαλείο.

• Ο Η/Υ δεν είναι έξυπνος.

• Εκτελεί εντολές που δέχεται από ανθρώπους

Page 4: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Τι κάνουν οι ηλεκτρονικοί

υπολογιστές

• Δέχονται δεδομένα στην είσοδο.

• Επεξεργάζονται τα δεδομένα.

• Παράγουν αποτελέσματα στην έξοδο.

Page 5: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

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

• Μηχανή που εκτελεί μαθηματικές πράξεις

(operations) που καθορίζονται από μια λίστα

εντολών (set of instructions) που ονομάζεται

πρόγραμμα (program).

• Βασικές λειτουργίες Η/Υ:

-- αποθήκευση πληροφοριών (data storage)

-- ανάκληση πληροφοριών (data retrieval)

-- ταχύτατη εκτέλεση μαθηματικών πράξεων

Page 6: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Βασικά στοιχεία Η/Υ

• Υλικό (hardware)

• Λογισμικό (software)

Page 7: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Υλικό (hardware) και λογισμικό

(software)

• Υλικό

-- Είναι το σύνολο των μερών του υπολογιστή που μπορεί κάποιος

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

μνήμη, περιφερειακές συσκευές)

• Λογισμικό

-- Είναι αυτό που δίνει την “εξυπνάδα” στο υλικό.

-- Προγράμματα και δεδομένα

• Ένας Η/Υ χρειάζεται και υλικό και λογισμικό.

• Το ένα δεν μπορεί να λειτουργήσει χωρίς τη βοήθεια του άλλου.

Page 8: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

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

(ΚΜΕ)

• Central Processing Unit (CPU)

• Είναι το μέρος του υπολογιστή που κάνει την κυρίως

εργασία δίνοντας εντολές σε όλα τα υπόλοιπα μέρη

του υπολογιστή.

• Αποτελείται από τρία κύρια μέρη:

-- Μονάδα ελέγχου (control unit)

-- Αριθμητική λογική μονάδα (arithmetic logic unit)

-- Καταχωρητές (registers)

Page 9: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

ΚΜΕ -- Μονάδα ελέγχου (control

unit) • Είναι το πιο περίπλοκο κομμάτι του συστήματος.

• Έχει τον ίδιο ρόλο που έχει ένας επιστάτης σε ένα

εργοτάξιο.

• Συντονίζει τις διεργασίες που απαιτούνται για την

εκτέλεση κάθε εντολής (δεν εκτελεί τις εντολές).

• Ελέγχει πως και πότε οι συσκευές εισόδου στέλλουν

δεδομένα.

• Φυλάει και ανακαλεί δεδομένα από και προς ορισμένες

θέσεις στη μνήμη.

• Ερμηνεύει τις εντολές που πρόκειται να εκτελεστούν.

• Στέλνει δεδομένα στις συσκευές εξόδου.

Page 10: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

ΚΜΕ -- Αριθμητική Λογική Μονάδα

(Arithmetic Logic Unit) (ALU)

• Είναι το μέρος του υπολογιστή που κάνει όλη τη δουλειά.

• Εκτελεί αριθμητικές και λογικές πράξεις.

• Αποτελείται από ηλεκτρονικά κυκλώματα.

• Τα αλφαριθμητικά δεδομένα μεταφέρονται από την

μνήμη στην αριθμητική λογική μονάδα, γίνονται οι

απαραίτητες πράξεις και υπολογισμοί, και τα

αποτελέσματα μεταφέρονται πίσω στην μνήμη.

Page 11: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

ΚΜΕ -- Καταχωρητές (registers)

• Θέσεις μνήμης που χρησιμοποιούνται για την προσωρινή

αποθήκευση δεδομένων που επεξεργάζεται η ΚΜΕ.

• Οι καταχωρητές εργάζονται κάτω από τις οδηγίες της

μονάδας ελέγχου για να παραλαμβάνουν, κρατούν και

μεταφέρουν οδηγίες ή δεδομένα.

• Έχουν μικρή χωρητικότητα αλλά είναι εξαιρετικά

γρήγοροι.

Page 12: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Κύκλος λειτουργίας ΚΜΕ • Βήμα 1: Προσκόμιση (fetching)

-- Η μονάδα ελέγχου προσκομίζει την εντολή από τη

μνήμη.

• Βήμα 2: Αποκωδικοποίηση (decoding)

-- Η μονάδα ελέγχου αποκωδικοποιεί την εντολή (την

ερμηνεύει) και δίνει οδηγίες για την μετακίνηση των

απαραίτητων δεδομένων από τη μνήμη στην

αριθμητική και λογική μονάδα.

• Βήμα 3: Εκτέλεση (executing)

-- Η αριθμητική και λογική μονάδα εκτελεί την

αριθμητική ή λογική πράξη.

• Βήμα 4: Αποθήκευση (storing)

-- Το αποτέλεσμα της πράξης αποθηκεύεται στη μνήμη.

Page 13: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Συσκευές εισόδου

• Πληκτρολόγιο (keyboard)

• Ποντίκι (mouse)

• Χειριστήριο (joystick)

• Οθόνη αφής (touch screen)

• Συσκευές ανάγνωσης καρτών (card readers)

• Ψηφιακή κάμερα (digital camera)

• Μικρόφωνο (microphone)

• Σαρωτής (scanner)

Page 14: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Συσκευές εξόδου

Αναπαριστούν τα αποτελέσματα της επεξεργασίας των

δεδομένων από τον Η/Υ ούτως ώστε να γίνονται

κατανοητά από τους χρήστες.

• Οθόνες

• Ηχεία

• Εκτυπωτές

Page 15: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Μνήμη (memory)

• Αποθήκευση/ανάκληση δεδομένων και προγραμμάτων.

• Δύο είδη:

-- Πρόσκαιρη (volatile)

-- Μόνιμη (non-volatile)

• Μονάδα μέτρησης μνήμης: byte (B)

Ένα byte έχει 8 bits (0 ή 1)

Συνήθως μετριέται σε kB, MB ή GB

Θα δούμε αργότερα με λεπτομέρειες τι σημαίνουν αυτά.

Page 16: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Πρόσκαιρη μνήμη

• Φιλοξενεί τα δεδομένα και τις εντολές που χρησιμοποιούνται

από ένα πρόγραμμα το οποίο εκτελείται εκείνη την ώρα.

• Τα δεδομένα δεν μένουν στη μνήμη όταν αφαιρεθεί η πηγή

ρεύματος.

• Δύο κύριες υποκατηγορίες:

-- Cache

-- Κυρίως μνήμη (RAM) (Random Access Memory)

Φυλάγονται τα δεδομένα τα οποία θα χρειαστούν πολύ

σύντομα από το πρόγραμμα που τρέχει (πολύ γρήγορη => πολύ

ακριβή => πολύ μικρή) (1/8-4 MB)

Φυλάγονται τα δεδομένα τα οποία θα χρειαστούν σε κάποια

στιγμή από το πρόγραμμα που τρέχει (πιο αργή από το cache =>

πιο φτηνή => πολύ μεγαλύτερη) (1GB – 8GB)

Page 17: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Μόνιμη μνήμη

• Τα δεδομένα φυλάγονται σε αυτή τη μνήμη ακόμα και

αν αποσυνδεθεί από την πηγή.

• Παραδείγματα:

-- Σκληρός δίσκος (hard disk)

-- Δισκέττα (floppy disk)

-- CD-ROM

-- ROM (Read Only Memory) (τα δεδομένα και οι

εντολές της δεν αλλάζουν) (αυτά τα δεδομένα είναι

απαραίτητα για τον επεξεργαστή)

• Πολύ πιο αργή από τη RAM (εκτός από την ROM)

=> πολύ φτηνότερη => πολύ μεγαλύτερη.

Page 18: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Λογισμικό (software)

Κατηγορίες λογισμικού:

-- Λειτουργικό σύστημα (operating system)

-- Προγράμματα εφαρμογών (application programs)

Page 19: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Λειτουργικό σύστημα (operating

system)

• Είναι ένα σύνολο προγραμμάτων που ελέγχουν τη

λειτουργία του υλικού του Η/Υ.

• Επιτρέπει την επικοινωνία με τον υπολογιστή και τα

προγράμματα του.

• Επιτρέπει την πρόσβαση στον υπολογιστή (π.χ. login).

• Επιτηρεί όλες τις λειτουργίες του υπολογιστή.

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

Unix, Windows, Linux, Mac OS X.

Page 20: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Προγράμματα εφαρμογών

(application programs)

• Προγράμματα που διευκολύνουν το χρήστη στη

διεκπεραίωση συγκεκριμένων εργασιών.

• Παραδείγματα:

Microsoft Office (Word, Excel, PowerPoint), MATLAB,

AutoCAD, FrontPage, Notepad.

Page 21: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Γλώσσες Η/Υ

• Οι γλώσσες ηλεκτρονικών υπολογιστών είναι κωδικοποιημένες

μέθοδοι προγραμματισμού.

• Επιτρέπουν την επικοινωνία μεταξύ χρήστη και υπολογιστή.

• Τρία είδη γλωσσών:

-- Γλώσσα μηχανής (machine language)

Αποτελείται από εντολές σε δυαδικές στοιχειοσειρές

-- Συμβολική γλώσσα (symbolic language, assembly language)

Αποτελείται από μνημονικούς κώδικες που αντιστοιχούν σε

εντολές της γλώσσας μηχανής

-- Γλώσσα ψηλού επιπέδου (high level language)

Μοιάζει με τις ανθρώπινες γλώσσες. Έχει κανόνες σύνταξης.

Εντολές σε αγγλικές λέξεις. Ο προγραμματισμός γίνεται

ανεξαρτήτως του υπολογιστή στον οποίο θα τρέξει το πρόγραμμα.

Page 22: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

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

• Είναι η διαδικασία της δημιουργίας ενός προγράμματος.

Το πρόγραμμα αποτελείται από μια ή περισσότερες

εντολές.

• Η γλώσσα προγραμματισμού επιλέγεται ανάλογα με το

είδος του προβλήματος που θέλουμε να επιλύσουμε

(υπάρχουν διαφορές μεταξύ γλωσσών στην

αποδοτικότητα, μέγεθος προγράμματος, ταχύτητα και

φορητότητα).

Page 23: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Ανάπτυξη προγράμματος

• Περιγραφή του προβλήματος

• Ανάλυση προβλήματος, καθορισμός στόχων

• Σχεδίαση της λύσης σε μορφή λογικού διαγράμματος ή

ψευδοκώδικα

• Κωδικοποίηση σε γλώσσα προγραμματισμού

• Έλεγχος/διόρθωση λαθών (debugging)

Page 24: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Λογικά διαγράμματα • Χρησιμοποιούνται διάφορα σχήματα ανάλογα με το μέρος

του κώδικα που αντιπροσωπεύει το σχήμα.

• Εκτός από αυτά υπάρχουν και άλλα σχήματα που

χρησιμοποιούνται σε λογικά διαγράμματα!

Αρχή/τέλος προγράμματος

Είσοδος/Έξοδος δεδομένων

Διαδικασία/process

Απόφαση/Decision

Σύνδεσμος

ή

Page 25: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Παράδειγμα 1

Λογικό διάγραμμα

Ψευδοκώδικας

read a, b, c

sum = a+b

while sum<c

sum = sum+b

end

print sum

START

END

Read a,b,c

sum = a+b

Sum<c

sum = sum + b

NO

YES print sum

Page 26: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Παράδειγμα 2

START

END

Read Ν

N: Integer≥0

M=0, F=1

IS

M=N?

NO YES

print F M=M+1

Ποια πράξη επιτελεί το

συγκεκριμένο διάγραμμα ροής;

F = F*M

Page 27: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

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

Τύποι και μεταβλητές

Δομές ελέγχου

• If … else … end

• For loop

• While loop

• do...while loop

Συναρτήσεις

Page 28: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Τύποι και μεταβλητές

Κύριοι τύποι μεταβλητών

Character: χαρακτήρες

Integer: Ακέραιοι

Real: πραγματικοί αριθμοί

Επιπλέον χαρακτηριστικά

Ακρίβεια-Μέγεθος

Arrays: Σειρές

Structures: Δομές

Page 29: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Δομές ελέγχου

for (Start value; end condition; increase value)

statements;

end

if expression

statements

else

statements

end

while expression

statements

end

do

statements

while expression

Page 30: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Συναρτήσεις

Ορίσματα εισόδου

Ορίσματα εξόδου

function [out1, out2, ...] = myfun(in1, in2, ...)

function [mean, stdev] = stat(x)

n = length(x);

mean = sum(x)/n;

stdev = sqrt(sum((x-mean).^2/n));

end

Page 31: ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9 · εντολές της γλώσσας μηχανής-- Γλώσσα ψηλού επιπέδου (high

Παράδειγμα συνάρτησης

function [mean, stdev] = stat(x)

n = length(x);

mean = sum(x)/n;

stdev = sqrt(sum((x-mean).^2/n));

end

[mean, stdev] = stat([12.7 45.4 98.9 26.6 53/1])

mean = 47.3200

stdev = 29.4085