Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/diafanies_2005-06/... ·...

68
Τμήμα Πληροφορικής και Τηλεπικοινωνιών Κ. Χαλάτσης, Εισαγωγή στην Επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών 1 Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝ Επεξεργαστές Γλωσσών ∆ιερμήνευση - Interpretation Μετάφραση - Compilation – Μεταγλώττιση ΛΟΓΙΣΜΙΚΟ ΣΥΣΤΗΜΑΤΟΣ SOFTWARE Αναγκαιότητα Λογισμικού Συστήματος Λ.Σ. = { Λειτουργικό Σύστημα + Μεταφραστές Γλωσσών} U {Εκδότες + Φορτωτές + Λογικό Επικοινωνίας}

Upload: others

Post on 02-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

1

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

Επεξεργαστές Γλωσσών∆ιερµήνευση - InterpretationΜετάφραση - Compilation – Μεταγλώττιση

ΛΟΓΙΣΜΙΚΟ ΣΥΣΤΗΜΑΤΟΣ SOFTWAREΑναγκαιότητα Λογισµικού ΣυστήµατοςΛ.Σ. = Λειτουργικό Σύστηµα + Μεταφραστές Γλωσσών U Εκδότες + Φορτωτές + Λογικό Επικοινωνίας

Page 2: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

2

ΤΡΟΠΟΙ ΕΠΕΞΕΡΓΑΣΙΑΣΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

1) ΑΠ’ ΕΥΘΕΙΑΣ ΕΚΤΕΛΕΣΗ:

2) ∆ΙΕΡΜΗΝΕΥΣΗ:

3) ΜΕΤΑΦΡΑΣΗ/ΜΕΤΑΓΛΩΤΤΙΣΗ

4) ΓΕΝΙΚΗ ΠΕΡΙΠΤΩΣΗ:

Page 3: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

3

ΠΡΟΒΛΗΜΑ

Εάν ορίζει ένα µεταγλωττιστή που είναιγραµµένος σε γλώσσα µηχανής Μ (wM) καιµεταγλωττίζει προγράµµατα από την γλώσσα Lστη γλώσσα Μ (L→M), να δείξετε µε ποιαδιαδικασία από τους µεταγλωττιστές

καικαι διαθέσιµο µόνο τον υπολογιστή µε γλώσσαµηχανής Α, πως µπορεί να παραχθεί οµεταγλωττιστής για ένα νέο υπολογιστή µεγλώσσα µηχανής Β; Ποια είναι η πρακτική αξίααυτής της διαδικασίας;

wAALC →

wLBLC →

wBBLC →

wMMLC →

Page 4: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

4

ΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

wAALC →

Α wABLC →

wLBLC →

wABLC →

ΑwB

BLC →

wBBLC →

Β

PwBPwL

Χρησιµότητα ;;

Page 5: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

5

Κλάσεις Γλωσσών

Κλάση 0: Γλώσσες χωρίς περιορισµούς (unrestricted)

Αποδεκτές από Μηχανές TuringΚανόνες: uAv → uwv, Α=µη-τερµατικό,

Κλάση 1: Γλώσσες ευαίσθητες συµφραζοµένων(context sensitive)

(context sensitive)γραµµικά περιορισµένη ταινία (η κεφαλή δεν µπορεί να κινηθεί δεν µπορεί να κινηθεί δεξιότερα)

τικό και w ≠e ( ή |uAv| ≤ |uwv|)

Γλώσσες ελεύθερες συµφραζοµένωνσυµφραζοµένων

Page 6: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

6

Ορισµός ΣυντακτικούΓλωσσών προγραµµατισµού

ΒNF συµβολισµόςτερµατικά σύµβολαµη τερµατικά σύµβολα ή συντακτικές κατηγορίεςπαραγωγές (τρόπος σύνταξης συντακτικών κατηγοριών,

π.χ. καταχωρήσεις τηλεφωνικού καταλόγουentry person_name address numberperson_name surname forename forenamesurname nameforename proper_forename | initialproper_forename nameinitial letter .address number street_namestreet_name namename letter@ name @ = επανάληψη number digit @ digitletter A | B | C | … | Z | = OR digit 0 | 1| 2 | … | 9

Page 7: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

7

Ορισµός Συντακτικού Γλωσσών Προγραµµατισµού

π.χ. Απλή γλώσσα προγραµµατισµούprogram statement statementstatement conditional | loop | assignmentconditional if condition then statementloop while condition do statementassignment set name to expressionexpression name operator nameoperator + | -condition name relation numberrelation = | ≠name letter@ name @ = επανάληψη number digit @ digitletter A | B | C | … | Z | = OR digit 0 | 1| 2 | … | 9

Page 8: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

8

Μεταφραστές Compilers – Μεταγλωττιστές

Λεξική ανάλυση tokens –κουπόνιαif x ≠ 1 then set Y to X + Y

types if name ≠ number then set name to name+namevalues (X) (l) (X) (X) (Y)

token = (type, value)

Page 9: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

9

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

συντακτικό δένδρο (parse tree)π.χ. 1 : καταχώρηση τηλεφωνικού καταλόγου

Χαλάτσης Κων/νος Χ. 17 Ηροδότου 2103257928

Person_nam e

A ddress

N um ber

entry

Surnam e

Forenam e

Forenam e

N am e

Proper Forenam e

Initial

N am e

L etter

N um ber

S treet_nam e

N am e

Χαλάτσης

Κών /νος

Χ

.

17

Ηροδότου

2103257928

Page 10: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

10

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

π.χ. 2 : if x≠1 then set Y to X+Y

Statement

statement

Condition

Relation

Operator

Number

Name

expression

Assignment

Name

if X ≠ 1 then set Y

Conditional

to X + Y

Name

Page 11: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

11

Μέθοδες Συντακτικής ανάλυσης

Από-κάτω-προς- τα-πάνω (bottom-up)Από-πάνω-προς-τα-κάτω (top-down)

Πλεονεκτεί διότι επιτρέπει την αυτόµατη παραγωγή συντακτικού αναλυτή

Ανάγκη οπισθοδρόµησης (backtracking)

top-down συντακτικός αναλυτήςmodule parse-statement

if the type of the next token is “if”then parse-conditionalelse if the type of the next token is “while”

then parse-loopelse if the type of the next token is “set”

then parse-assignmentelse report failure

Page 12: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

12

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

statement conditional/loop/assignment

module parse-assignmentcheck that the type of the next token is “set”check that the type of the next token is “name”check that the type of the next token is “to”parse-expression

Page 13: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

13

Γέννηση κώδικα

Αφορά:εκχώρηση µνήµης στα δεδοµέναγέννηση κώδικα – εντολές µηχανής

Η εκχώρηση µνήµης στα δεδοµένα γίνεται µε τη βοήθεια του Πίνακα Συµβόλων (SYMBOL TABLE)είναι συνάρτηση του ΤΥΠΟΥ των δεδοµένωνο ΤΥΠΟΣ είτε δηλώνεται ή υπονοείται

Η γέννηση κώδικαείναι συνάρτηση της συντακτικής δοµής

Π.χ., module generate-statement (T) T=parse Treeif statement conditional

then generate-conditional (subtree of T)else if statement loop

then generate-loop (subtree of T)else generate-assignment (subtree of T)

Page 14: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

14

Παράδειγµα γέννησης κώδικα

Έστω η εντολή: if X ≠ 1 then set Y to X + YΟ πίνακας συµβόλων

Οι κλήσεις και οι αντίστοιχες εντολές µηχανής που γεννιούνται:

Address Instructiongenerate-statement (T)generate-conditional (T΄)generate-condition (T΄΄) 1000 LOAD 1456

1001 SUB 1001002 JUMPZ 1006

generate-statement (T΄΄΄)generate-assignment (T*)generate-expression (T**) 1003 LOAD 1456

1004 ADD 14571005 STORE 14571006

100

1457

1456

address

integer

integer

integer

ΤΥΠΟΣ

1

Y

X

όνοµα

module generate-expression (T) T : N1 operator N2 set A1 to address of Left subtree of T ; A1= N1generate ‘LOAD A1set A2 to address of Right subtree of T ; A2= N2if the operator of T is ‘+’then generate ‘ADD A2’else generate ‘SUB A2’

Page 15: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

15

Εργαλεία δηµιουργίας/κατασκευής compilers

Compiler-Compiler

Compiler-Compiler

Συντακτικό της γλώσσας L

Εντολές µηχανής M που αντιστοιχούν σε εντολές της L

Στο Unix έχουµε τα εργαλείαLex και Yacc

wMBLC →

Page 16: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

16

Συµβολοµεταφραστής – Assembler

Μετατρέπει τη Συµβολική Γλώσσα Μηχανής (Assembly) σε γλώσσα µηχανής (binary)

Assembly Assembler Binary

H γλώσσα Assembly περιέχει:

Συµβολική γραφή των εντολών µηχανής

Ψευδοεντολές (οδηγίες συµβολοµετάφρασης)

∆ηλώσεις δεδοµένων (τύπος, τιµή)

∆ήλωση ΜACRO εντολών

∆ιαφορά µεταξύ Υπορουτίνας και MACRO

Page 17: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

17

Φορτωτές - Loaders

Απόλυτος ∆υαδικός Φορτωτής (Absolute binary loader)Φορτώνει στη µνήµη ένα πρόγραµµα σε απόλυτη δυαδική µορφή (όπως αυτό έχει γεννηθεί)

Σχετικός Φορτωτής (Relocating Loader)Μεταθετό πρόγραµµα (relocatable program)Έχει παραχθεί µε αρχή τη µηδέν διεύθυνση µνήµηςΟι διευθύνσεις αλλάζουν µε βάση την διεύθυνση αρχής από την οποία αρχίζει να φορτώνεται το πρόγραµµα στη µνήµη

Page 18: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

ΜΕΤΑΘΕΣΗ - RELOCATIONORIGIN 0

0000 B6 1000

0003 B7 1001

0006 7E 0100

0100 F6 4000

0103 7E 0000

1000 00

1001 00

PIAD EQU $4000

LOAD LDAA ALPHA

STAA BETA

JMP READ

READ LDAB PIAD

JMP LOAD

ALPHA RMB 1

BETA RMB 2

ORIGIN $2000

2000 B6 3000

2003 B7 3001

2006 7E 3100

2100 F6 4000

2103 7E 2000

3000 00

3001 00

Page 19: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

19

Σύνδεση - Linking

Επιτρέπει τη σύνδεση στοιχείων προγράµµατος σε ένα µόνο πρόγραµµαΗ σύνδεση µπορεί να λάβει χώρα σε επτά διαφορετικές χρονικές στιγµές:

Κατά την ώρα συγγραφής του πηγαίου προγράµµατοςΑυτό σηµαίνει σύνδεση µε το χέρι

Μετά την κωδικοποίηση αλλά πριν την µετάφρασηΥπονοεί ξανα-κωδικοποίηση και σύνδεση µε το χέρι

Κατά την µετάφρασηΥπονοεί ξανα-µετάφραση

Μετά την µετάφραση αλλά πριν την φόρτωσηΣυνεπάγεται ένα Συνδέτη (Linker)

κατά την ώρα φόρτωσης Συνεπάγεται ένα Συνδέτη-Φορτωτή (Linking Loader)

Μετά την φόρτωση αλλά πριν την εκτέλεσηΑπαιτεί να έχουµε στη µνήµα ένα µεγάλο αριθµό στοιχείων

Κατά την ώρα εκτέλεσηςΣυνεπάγεται ∆υναµική Σύνδεση (Dynamic Linking)

Page 20: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

ΠΑΡΑ∆ΕΙΓΜΑ ΣΥΝ∆ΕΣΗΣ0

100

200

300

400

500

600

700

800

900

1000

1100

1200

1300

1400

1500

1600

1700

1800

1900

0

100

200

300

400

JMP 300

LDAA #2

JSR C

SYSTEM AREA

JMP 300

LDAA #1

JSR 500

JMP 800

LDAA #2

JSR 1100

JMP 1300

LDAA #3

JSR 1600JMP 1700

LDAA #4

JMP 200

LDAA #1

JSR B

MODULE AMODULE A

0

100

200

300

400

500

600

MODULE BMODULE B

0

100

200

300

400

500

JMP 200

LDAA #3

JSR D

MODULE C

MODULE C

MODULE D

0

100

200

300

JMP 100

LDAA #4MODULE D

Page 21: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

21

Συνήθη σχήµατα Μετάφρασης και Σύνδεσης

Μετάφραση

Σύνδεση µετά τη µετάφραση αλλά πριν τη

φόρτωση

Page 22: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Μια άλλη άποψη Σύνδεσης και Φόρτωσης

ΦΥΣΙΚΟΣΧΩΡΟΣ

ADDRESS BINDING

ΛΟΓΙΚΟΣΧΩΡΟΣ

1

ΛΟΓΙΚΟΣΧΩΡΟΣ

2

ΛΟΓΙΚΟΣΧΩΡΟΣ

3

ΛΟΓΙΚΟΣΧΩΡΟΣ

LOADING

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

ΦΥΣΙΚΟ ΧΩΡΟ

LINKING

SEGMENTATION

ΕΙΝΑΙ Η ΣΥΝ∆ΕΣΗ ΑΝΕΞΑΡΤΗΤΩΝΛΟΓΙΚΩΝ ΧΩΡΨΝ ΣΕ ΕΝΑ ΕΝΟΙΑΙΟ ΛΟΓΙΚΟ ΧΩΡΟ

PAGING

VIRTUAL MEMORY

Page 23: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

23

Λειτουργικό Σύστηµα(Operating System)

Ορισµός Ένα σύνολο διεργασιών που καθοδηγούν και ελέγχουν τη λειτουργία και τη χρήση ενός υπολογιστικού συστήµατος

Η µεγιστοποίηση της απόδοσης ενόςΑντικειµενικός συστήµατος µε ταυτόχρονη δηµιουργίαΣκοπός φιλικού περιβάλλοντος επεξεργασίας

των προγραµµάτων των χρηστών

Βασικές ∆ιεργασία (Process)Έννοιες Κατάσταση διεργασίας

Εργασία = σύνολο διεργασιώνΛειτουργικές καταστάσεις µηχανής∆ιακοπέςΠρονοµιούχες ΕντολέςΠροτεραιότηταΠροστασία

Page 24: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

24

Λογισµικό Συστήµατος 1ης γενιάς(1949-1956)

Αυτοφορτωτής (Bootstrap loader)Απόλυτος φορτωτής (Absolute loader)Assembly – Assembler/ ΣυµβολοµεταφραστήςOS Μαζικής Επεξεργασίας (Batch processing)Γλώσσες Υψηλού Επιπέδου – Μεταγλωττιστές(Compilers)Μεταθετός Κώδικας (relocatable code)Σχετικός φορτωτής (relocating loader)Συνδέτης (linker)Συνδέτης Φορτωτής (linking loader)

Page 25: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

25

Λογισµικό Συστήµατος 2ης γενιάς(1956-1962)

Αυτόνοµο σύστηµα Ι/ΟΑρχή υποκλοπής κύκλων –cycle stealingΚατάσταση ΕΠΟΠΤΗ (SVR) - κατάσταση Χρήστη (User)

Επόπτης Έναρξη Ι/Ο Πέρας Ι/Ο

Χρήστης Σύστηµα ∆ιακοπών - Interrupts

Γλώσσα Ελέγχου Εργασιών –Job ControlΚύριο χαρακτηριστικό: ΣΕΙΡΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ

∆ιακοπή

ΕΠΟΠΤΗΣ ΧΡΗΣΤΗΣ

Return

Page 26: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

26

Λογισµικό Συστήµατος 3ης γενιάς(1962-1970)

ΠΟΛΥΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΣελιδοποίηση µνήµης – PagingΕικονική Μνήµη – Virtual MemoryΑποσύνδεση Ι/Ο – off-line spooling∆ιεργασία – Process

Λειτουργικό Σύστηµα – Operating System

Καταµερισµός Χρόνου –Time Sharing∆ΙΚΤΥΑ ΥπολογιστώνΚατανεµηµένη Επεξεργασία – Distributed Processing

∆ιαχείριση ∆ιακοπών

Επικοινωνία-Συγχρονισµός ∆ιεργασιών

Επιλογή ∆ιεργασιών

Page 27: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

27

Πολυπρογραµµατισµός

Πέρας Ι/Ο

Έναρξη Ι/Ο

Επιλογέας

Φορτωτής

∆ιεργασία1

∆ιεργασία 2

∆ιεργασία 3

Πέρας∆ιεργασίας 1

Κλήσεις Επόπτη

∆ιακοπέςΠεριφεριακών

Page 28: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

28

Υλοποίηση Πολυπρογραµµατισµού

Εναλλαγή της CPU µεταξύ διεργασιών

Χειρισµός διακοπών / interrupt handling

Εκχώρηση πόρων / resource allocation: (µνήµη, Ι/Ο...)

Προστασία µεταξύ των διεργασιών

Προστασία πόρων / resource protection

Χρονοπρογραµµατισµός µεταξύ διεργασιών

Page 29: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

29

Είδη Λειτουργικών ΣυστηµάτωνΣήµερα

Μαζικής Επεξεργασίας (Batch processing)Καταµερισµού Χρόνου (Time Sharing)

Συστήµατα Πελάτη-Yπηρέτη (Client-Server)Κατανεµηµένης Επεξεργασίας (distributed processing)

Π.χ., Υπολογιστική Πλέγµατος (Grid computing)Ευφυής Σκόνη

Παράλληλης Επεξεργασίας (parallel computing)Συµµετρική πολυεπεξεργασία (symmetric multiprocessing)Πολυεπεξεργασία µε Πέρασµα Μηνυµάτων (Message passing)

Πραγµατικού Χρόνου, (real-time computing) γιαΈλεγχο Φυσικών ∆ιεργασιών

Κρίσιµος χρόνος, Ανάδραση, Ασφαλής ΑποτυχίαΣυστήµατα Πληροφόρησης, π.χ.,

Μηχανές ΑναζήτησηςΣυστήµατα Συναλλαγών, π.χ.,

Τραπεζικές συναλλαγέςΚρατήσεις Θέσεων

Page 30: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

30

Εκτέλεση εργασιών

Εργασία: Σύνολο διεργασιώνΤυπικά βήµατα εκτελέσεως µιας εργασίας

1. Εισαγωγή πηγαίου προγράµµατος2. Μετάφραση αυτού του και παραγωγή αντικείµενου κώδικα3. Φόρτωση αντικειµένου προγράµµατος στη µνήµη4. Εισαγωγή δεδοµένων εισόδου5. Εκτέλεση προγράµµατος6. Εξαγωγή αποτελεσµάτων

Λογική Ροή εργασιών

ΆφιξηΝέωνΕργασιών

ΟυρέςΕργασιών

Επιλογή Εργασίας

Επιστροφή λόγω εξάντλησηςτου κβάντου χρόνου

Ουρά διεργασιώνΣε ετοιµότητα

Επιλογή ∆ιεργασίας∆ιεργασία σε εκτέλεση

Πέρας Εργασίας

Ουρά διεργασιώνσε αναστολή

Page 31: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

31

Έλεγχος Εργασιών – Job Control

Γλώσσα ελέγχου εργασιών (απλή µορφή)Με αυτή ο χρήστης δίνει στο Λ.Σ.

την αναγνώριση / ταυτότητα του: username - passwordλειτουργική πληροφορία (τι θέλει, π.χ., load, compile,..)Ι/Ο πληροφορία (Ι/Ο συσκευές, Ι/Ο files)πληροφορία εκτιµώµενων αναγκαιούντων πόρων για

(µνήµη,χρόνο εκτέλεσης κλπ)το επείγον (προτεραιότητα) της εργασίας

Αυτά τα χρειάζεται ο χρονοπρογραµµατιστήςεργασιών για την επιλογή της εργασίας στο υψηλό επίπεδο

Page 32: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

32

Χρονοπρογραµµατισµός& εκχώρηση πόρων

Χρονοπρογραµµατισµός εργασιών:

Επιλογή λαµβάνοντας υπόψη κυρίως:

•απαιτούµενους πόρους (µνήµη, χρήση Ι/Ο)

•διαθέσιµους πόρους

•προτεραιότητα

•χρονική διάρκεια αναµονής

Είδος επιλογής:

Στατική : όλοι οι πόροι πρέπει να ικανοποιούνται

∆υναµική: οι πόροι ικανοποιούνται σταδιακά, ίσως

οδηγήσει σε αδιέξοδο / deadlock

Page 33: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

33

Καταστάσεις µιας ∆ιεργασίας

Τρεις κύριες καταστάσεις:Σε ετοιµότητα (ready)Τρέχουσα/Εκτελούµενη (running)Σε αναστολή – Μπλοκαρισµένη (blocked)

Μεταπτώσεις κατάστασης

Εκκίνηση

ΕπιλογήΤρέχουσα

Running

Μπλοκαρισµένη

Blocked

Επιλογή από Επιλογέα

Εξάντληση χρόνου-κβάντου

Έτοιµη

Ready

Πέρας Ι/Ο ή εκχώρηση πόρων

Έναρξη Ι/Ο ή αίτηση για εκχώρηση

πόρων

Τερµατισµός

Page 34: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

34

∆ιαχείρηση Κυρίας Μνήµης(memory management)

Στόχοι:Μεταθετότητα (relocation)Προστασία (protection)Λογική Οργάνωση (logical organization)Φυσική Οργάνωση (physical Organization)

Εικονική Μνήµη (Virtual Memory)∆ιευθύνσεις προγράµµατος ⇔ θέσεις µνήµηςΧώρος διευθύνσεων ⇔ Χώρος µνήµης

ΕΙΚΟΝΙΚΗΜΝΗΜΗ

N

ΦΥΣΙΚΗΜΝΗΜΗ

M

f: N → M

Page 35: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

35

Οργάνωση Μνήµης

Εικονική Μνήµη

Οργανώνεται

Γραµµικά Με περιγραφείς Σε Τµήµατα

Εκχωρείται εκχωρείται εκχωρείται

Μια συνεχήςΠεριοχή

Φυσικής Μνήµης

Σε σελίδεςΊσου

µήκους

Σε Περιοχές Μεταβλητού

µήκους

Σε Σελίδες

Ορισµένων Μόνο

διαστάσεων

Ίσουµήκους

Αυτές οι ΟργανώσειςΟδηγούν σε

ΚατακερµατισµόΤης Φυσικής µνήµης Φυσική µνήµη

Page 36: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

36

∆ιαχείριση ΜνήµηςΒάση-Όριο (Datum-Limit)

Στη διεργασία δίνεται µια συνεχής περιοχή Φυσικής ΜνήµηςΗ περιοχή αυτή ορίζεται µε δύο καταχωρητές:

Βάση Β (basis)

Όριο L (limit)

Μια λογική διεύθυνση α αντιστοιχεί στη φυσική διεύθυνσηf(a) = [B] + a

Προστασία µνήµης: [B] ≤ f(a) = [B] + a ≤ [L]

B

L

Page 37: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

37

Παράδειγµα Βάσης-Ορίου

3599

280228012800

2699

150215011500

101500

∆ιεργασία Ατρέχουσα

∆ιεργασία Βσε αναµονή

799

210

1199

210

3599

280228012800

2699

150215011500

10

799

210

1199

210

∆ιεργασία Βτρέχουσα

2800

∆ιεργασία Ασε αναµονή

Page 38: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

38

Κατακερµατισµός µνήµης

Ανάγκη µετακίνησης

∆ιεργασία 1

∆ιεργασία 2

∆ιεργασία 3

∆ιεργασία 4

∆ιεργασία 1

∆ιεργασία 4

∆ιεργασία 3

∆ιεργασία 2

Ελεύθερηµνήµη

Page 39: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

39

Σελιδοποίηση – Paging(σελίδες ίδιου µεγέθους)

O λογικός χώρος της διεργασίας χωρίζεται σελίδεςΑντίστοιχα, ο φυσικός χώρος χωρίζεται σε πλαίσια σελίδωνίδιου µεγέθουςH σελίδα P της διεργασίας αποθηκεύεται σε αντίστοιχο κενό πλαίσιο σελίδας P’ της φυσικής µνήµηςΜια λογική διεύθυνση χωρίζεται στα δύο:

P = αριθµός σελίδας διεργασίαςW = αριθµός θέσης στη σελίδα P

Ένας µηχανισµός αντιστοιχίας µετατρέπει µια λογική διεύθυνση της διεργασίας στην αντίστοιχη φυσική

Μηχανισµοί µετατροπής/αντιστοίχησηςΠίνακας σελίδων (page table)Συνειρµική Μνήµη (associative memory)

p w

P’ w

Page 40: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

40

Σελιδοποίηση – Paging

Πλεονεκτήµατα σελιδοποίησης∆εν οδηγεί σε κατακερµατισµό της µνήµης∆εν είναι απαραίτητο να είναι ταυτόχρονα στη µνήµη όλες οι σελίδες της διεργασίας (Οι άλλες είναι στο δίσκο)Άρα, µπορεί ο λογικός χώρος µιας διεργασίας να είναι µεγαλύτερος του φυσικού χώρου

ΜειονεκτήµαταΑυξηµένο κόστος Υλικού του επεξεργαστήΑυξηµένη πολυπλοκότητα του Λειτουργικού ΣυστήµατοςΑνάγκη διαχείρισης «λαθών σελίδας»

Page 41: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

41

Υλοποίηση ΣελιδοποίησηςΜε πίνακα σελίδων (page table)

Μέγεθος σελίδας = 2n

Page 42: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

42

Υλοποίηση ΣελιδοποίησηςΜε συνειρµική µνήµη (associative memory)

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

Page 43: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

43

Αντικατάσταση σελίδων page swap

Προκύπτει η ανάγκη αντικατάστασης σελίδας όταν µια σελίδα που θέλει η διεργασία δεν είναι στη µνήµη και η µνήµη δεν έχει κενό πλαίσιο σελίδας για να την φέρει από τη δευτερεύουσα µνήµηΣτη περίπτωση αυτή λέµε ότι έχουµε ένα λάθος σελίδας (page fault) που δηµιουργεί µια διακοπή στη συνέχιση της εκτέλεσης της διεργασίας Το σύστηµα διαχείρισης του Λ.Σ. Αναλαµβάνει να κάνει τη σχετική αντικατάσταση Πρόβληµα: ποια σελίδα θα αντικατασταθεί;Στόχοι της πολιτικής αντικατάστασης σελίδων:

Αντικατάσταση της σελίδας που δεν θα χρειαστεί για τον περισσότερο χρόνο στο µέλλονΠρόβλεψη της µελλοντικής συµπεριφοράς από τη συµπεριφορά του παρελθόντος

Page 44: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

44

Πολιτικές αντικατάστασης σελίδων

Τυχαία Με γεννήτρια τυχαίών αριθµών

Λιγότερο πρόσφατα χρησιµοποιηµένη (LRU, least recently used)

Με καταχωρητή γήρανσης της σελίδαςΛιγότερο συχνά χρησιµοποιηµένη (LFU, least frequently used)

Με απαριθµητή χρήσης της σελίδαςΠερισσότερο χρόνο στη µνήµη, ισοδύναµα, πρώτη-µέσα-πρώτη-έξω, (longest resident, FIFO:first-in-first-out)

Με ουρά FIFO Βελτιώσεις:

∆εύτερη ευκαιρία (FIFO + used bit)Έχει τροποποιηθεί η υπό αντικατάσταση σελίδα; Αυτό σηµαίνει ότι σχετικό writen-into bit µας δίνει αυτή την πληροφορία.

Page 45: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

45

Χειρισµός ΕΙΣΟ∆ΟΥ/ΕΞΟ∆ΟΥ (Input/Output, Ι/Ο)

Το Λειτουργικό Σύστηµα χειρίζεται όλα τα Ι/Ο µηχανήµατα

αποφεύγεται έτσι να ξέρει λεπτοµέρειες ο προγραµµατιστής

Το Ι/Ο το κάνει το OS (εκκίνηση Ι/Ο, τερµατισµός Ι/Ο) µέσω interrupts

Το OS χειρίζεται διαφορετικά µοιραζόµενες ή µη (sharable & unsharable) Ι/Ο συσκευές

Τεχνικές βελτίωσης του συστήµατος Ι/ΟΜνήµες αποµόνωσης (buffers)Κουβάριασµα - SpoolingΑποσύνδεση διεργασίας από µη διαµοιραζόµενες

µονάδες Ι/ΟΧρήση ενδιαµέσου µέσου (συνήθως ∆ίσκος)

Page 46: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

46

χειρισµός Ι/ΟΧειρισµός ΕΙΣΟ∆ΟΥ/ΕΞΟ∆ΟΥ

(Input/Output, Ι/Ο)

∆ιεργασία Χρήστη

request I/O

Λ.Σ. : I/O driver

εκκίνηση Ι/Ο

[µπλοκάρισµα process]

Επιλογέας Λ.Σ.

Επιλογή process

..

Interrupt

Interrupt handler

αναγνώριση διακοπής

χειρισµός διακοπής

ενηµέρωση process

Page 47: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

47

∆ιαχείριση αρχείων(file management)

Αφορά:δηµιουργία & σβήσιµο αρχείωνπρόσβαση αυτών (για διάβασµα, ενηµέρωση, σβήσιµο)διαχείριση δευτερεύουσας µνήµηςπροστασία αρχείων από µη εξουσιοδοτηµένη πρόσβασηπροστασία αρχείων από απώλεια ή διαφθορά λόγο H/W και/ή S/W βλαβών ή λαθών

∆ιαµοιρασµός αρχείων µεταξύ χρηστώνΑλλά και προστασία από µη εξουσιοδοτηµένη πρόσβαση

Κατάλογος / directory αρχείων• master directory - user directories• multi-level directory δοµή

Οργάνωση αρχείων: Λογική οργάνωση και Φυσική οργάνωσηBack-up αρχείων

• περιοδική - όλο το αρχείο• αυξητική - µόνο το µέρος που αλλάζει

Page 48: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

48

∆οµή Καταλόγου Αρχείωνmaster directory - user directories

Χρήστης 1

Χρήστης 2

ΓενικόςΚατάλογος

ΚατάλογοςΧρήστη 1

ΚατάλογοςΧρήστη 2

Για κάθε χρήστη ο Γενικός κατάλογος περιέχει: το όνοµα του χρήστη και τη διεύθυνση του δικού του καταλόγουΟ κατάλογος του χρήστη περιέχει τα εξής για κάθε δικό του αρχείο:

Όνοµα αρχείου∆ιεύθυνση αρχείου στη δευτερεύουσα µνήµηΜέγεθος αρχείουΕπιτρεπτή πρόσβαση (R, W, …)∆ιαχειριστική πληροφορία (π.χ., ηµεροµηνία δηµιουργίας, χρόνος τελευταίας αλλαγής

Page 49: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

49

Πολυεπίπεδος κατάλογος αρχείων

root

alpha

Τρέχονκατάλογος

……betaalpha zeta

thetaca b a

zeta

e beta

fbeta b

•∆ενδροειδής δοµή•Επιβάρυνση: Πολλαπλές προσβάσεις στο δίσκο

για να εντοπιστεί ο κατάλληλοςκατάλογος

•Λύση: χρήση «τρέχοντος» καταλόγου

alpha

Πλήρες όνοµα: root/zeta/theta/alphaΣχετικό όνοµα: alpha

Page 50: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

50

Τρόποι αποθήκευσης αρχείων

∆ιασύνδεση τµηµάτων (block linkage)

Κατάλληλος τρόπος για σειριακή πρόσβαση

Χάρτης απεικόνισης αρχείου (file map)

∆είκτης τµηµάτων (index block)

Κατάλογος

ΚατάλογοςΚοινός χάρτης για όλη τη ∆ευτερεύουσα µνήµηΕπιβάρυνση: η τµηµατική προσκόµιση του χάρτη στη µνήµηΚατάλληλος για σειριακή πρόσβαση

1

01 323 104

...10 15

15 EOF

1

01 2 3

Κατάλογος

IndexBlock

Ένα index block ανά αρχείοΚατάλλολος για Τυχαία Πρόσβαση

Page 51: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

51

ΕΠΕΞΕΡΓΑΣΙΑ ΣΤΟΙΧΕΙΩΝData Processing (DP)

Μεγάλος όγκος στοιχείων που δεν χωρά στη µνήµηΙ/Ο µεταξύ µνήµης & δευτερεύουσας µνήµης - αριστοποίησηκύριος χώρος εφαρµογής DP:

Eµπορικός, ∆ηµόσια ∆ιοίκηση& Επιστηµονικός τώρα

∆ραστηριότητες:εισαγωγή στοιχείωνεπαλήθευση στοιχείωνεπεξεργασία στοιχείωνέκδοση αποτελεσµάτων

Ο χειρισµός τους απαιτεί ∆ΟΜΗΣΗ των στοιχείων

αξιοπιστία & ασφάλεια

Page 52: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

52

ΜΟΝΤΕΛΑ ∆Ε∆ΟΜΕΝΩΝ

Οντότητες / αντικείµενα (entities / objects)Ιδιότητες / συνιστώσες / χαρακτηριστικά (properties / attributes)Σύνολα οντοτήτων, κατηγορίες οντοτήτων, κλάσεις οντοτήτων (entty set, entity category,entity class): ίδιες ιδιότητεςΤιµές ιδιοτήτων (values)Κλειδί οντότητας (key) : ιδιότητα ή συνδυασµός ιδιοτήτων

µε τιµή / τιµές που µονοσήµαντα ξεχωρίζει µια οντότητα από το σύνολο τηςΣχέσεις µεταξύ οντοτήτων - relationshipsΜοντέλα δεδοµένων: ανεξάρτητα της εφαρµογής

∆οµή structureΧειρισµός manipulation – updatesΑκεραιότης integrity constraints

Page 53: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

53

Τυπικά παραδείγµατα οντοτήτων'Εφαρµογή Σύνολα οντοτήτων Ιδιότητες Κλειδί Σχέση Τράπεζα Πελάτες Όνοµα αρ. πελάτη Κατοχή

∆ιεύθυνση (Πελάτης,Λογ/σµός)αρ. πελάτη

Λογαριασµο αρ. λογαριασµού αρ. λογαριασµούυπόλοιπο

Κρατήσεις Πτήσεις αρ. Πτήσεως αρ. Πτήσης Ανάθεσηθέσεων αφετηρία (Αεροπ/νο, πτήση)

προορισµόςώρα αναχώρησης

Αεροπλάνα Κατασκευαστής αρ. σειράςΜοντέλοαρ. σειράς

Επιβάτες Όνοµα Όνοµα + ∆/νση∆ιεύθυνση

Αποθήκη Εξαρτήµατα αρ. εξαρ/τος αρ. εξ/τος Προµήθεια αυτοκινήτων Κόστος (Κατασ/στής, εξαρτήµατα)

Ποσότης

Κατασκευαστές Όνοµα εταιρίας ονοµ. εταιρίας∆ιεύθυνσηΌριο Πίστωσης

Page 54: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

54

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ(Codd 1970)

∆ΟΜΗ• οντότητα = πλειάδα (tuple) = τιµές ιδιοτήτων• σχέση (relation) = σύνολο οντοτήτων attribute values

= πίνακας: γραµµή = πλειάδαστήλη = ιδιότητα

σχέση Αεροπλάνα κατασκευαστής Model αρ. ΣειράςBoeing 747 82Boeing 737 46British Aerospace concorde 14

σχέση Πτήσεις αρ. Πτήσης Αφε/ρια Προορ/µος Ώρα αναχ.ΒΑ014 London Sydney 21:40BA837 NY London 09:30BA152 London Paris 10:20

σχέση Ανάθεση αρ. Πτήσης Αρ. σειράςΒΑ014 82ΒΑ837 14ΒΑ152 46

Page 55: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

55

ΧΕΙΡΙΣΜΟΣ ΣΧΕΣΕΩΝ

Πράξεις σχεσιακής άλγεβρας :SQL γλώσσαΕπιλογή Selection

επιλέγει γραµµέςαποτέλεσµα = νέα σχέση

Π.χ., Select Πτήσεις where Αφετηρία = LondonSelect Αεροπλάνο where Κατασκευαστής = Boeing

Προβολή Projectionεπιλέγει στήλεςαποτέλεσµα = νέα σχέση

Π.χ., Project Πτήσεως on ΠροορισµόςProject Αεροπλάνο on Κατασκευαστής, ModelProject Αεροπλάνο on Κατασκευαστής

Page 56: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

56

ΧΕΙΡΙΣΜΟΣ ΣΧΕΣΕΩΝ

Συνένωση Join: συνδυάζει δύο σχέσειςΦυσική συνένωση (natural join) : µια τουλάχιστον κοινή στήλη

Π.χ., Α natural join B → R

A X Y B Y Z R X Y ZX1 Y1 Y1 Z1 X1 Y1 Z1X2 Y2 Y1 Z2 X1 Y1 Z2X3 Y1 Y2 Z2 X2 Y2 Z2

: Y3 Z3 X3 Y1 Z1: : X3 Y1 Z2

:Πτήσεις join Ανάθεση join Αεροπλάνο = ?Πτήσεις join Αεροπλάνο = ?

Page 57: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

57

Παράδειγµα Join

Πτήσεις join Ανάθεση join Αεροπλάνο = ?

join: Πτήσεις join Ανάθεση:

αρ. Πτήσης Αφετ/ρια Προορ/µός Ώρα Αναχ. Αρ. Σειράς BA014 London Sydney 21:40 82BA837 NY London 09:50 14BA152 Londo Paris 10:20 46

και στη συνέχεια: join αεροπλάνο:κατασ/στής model

Boeing 747British Ar. ConcordBoeing 737

Πτήσεις join Αεροπλάνο = ?

Page 58: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

58

Σχεσιακές εκφράσεις(Παραδείγµατα)

π.χ. 1: Επέλεξε όλες τις πλειάδες (Αρ. πτήσης, κατασκευαστής, Model)µε αρ. πτήσης = BA014

Select (Project (Πτήσεις join Ανάθεση join Αεροπλάνο)on Αρ. Πτήσης, Κατασκευαστής, Model)where αρ. πτήσης = BA014

Αποτέλεσµα : BA014 Boeing 747

π.χ. 2 Βρές όλους τους αρ. πτήσεων που αναχωρούν από το Λονδίνο

Project (Select Πτήσεις where Αφετηρία = Λονδίνο)on Αρ. Πτήσης

Αποτέλεσµα : BA014BA152

Page 59: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

59

Κανόνες ακεραιότηταςΚάθε σχέση πρέπει να έχει ένα ΚΛΕΙ∆Ι και κάθε πλειάδα στηνσχέση πρέπει να έχει µια τιµή ΚΛΕΙ∆ΙΟΥ που να είναιµοναδική και όχι κενή

∆ες π.χ., σχέση Ανάθεση (Αρ. Πτήσης, Αρ. σειράς)

Κάθε οντότητα στην οποία κάνει αναφορά µια σχέση πρέπει επίσης να εµφανίζεται στην σχέση η οποία αντιπροσωπεύει το σύνολο οντοτήτων στο οποίο η οντότητα ανήκει

Π.χ., Κάθε αεροπλάνο που υπάρχει στη σχέση Ανάθεση πρέπεινα υπάρχει και στη σχέση Αεροπλάνο

∆ηλαδή, όχι "ελεύθερα / χαλαρά άκρα"

Page 60: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

60

ΕΓΓΡΑΦΕΣ, ΑΡΧΕΙΑ και ΒΑΣΕΙΣ ∆Ε∆ΟΜΕΝΩΝ(records, files, databases)

Μοντέλο ∆εδοµένων - σχήµα Σ∆Β∆ (schema DBMS)

∆οµές ∆εδοµένων - Λ.Σ. Οργάνωση αρχείων

Φυσικά µέσα αποθήκευσης - Λ.Σ. DriversΕγγραφή (record): περιγράφει µια οντότηταΕίναι ένα σύνολο πεδίων (fields) Ένα πεδίο είναι το κλειδί της εγγραφής

Αρχείο (file) = σύνολο σχετικών εγγραφών

Βάση δεδοµένων (Database, DB) = σύνολο αρχείων

Σύστηµα ∆ιαχείρισης βάσης δεδοµένων (Data Base Management System)

Πράξεις επί των εγγραφών : συναλλαγή (transaction)read, write, add, delete, update

Page 61: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

61

Υλοποίηση του σχεσιακού µοντέλου

σχέση = αρχείο πλειάδα = εγγραφή στο επίπεδο

οργάνωσης αρχείουιδιότητα = πεδίο

∆ιάφορες τεχνικές στο επίπεδο φυσικού µέσου (ξεφεύγει των ορίων του µαθήµατος)

Page 62: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

62

ΟΡΓΑΝΩΣΗ ΕΓΓΡΑΦΩΝ

Οργάνωση εγγραφών µέσα σ’ ένα αρχείο: είναι συνάρτηση του τρόπου πρόσβασης

αρχείο τυχαίας πρόσβασης

κατάλληλο για εφαρµογές πραγµατικού χρόνουκρατήσεις θέσεωντράπεζες

Σειριακό αρχείο: κλειδί διάταξης (order key)(όχι αναγκαία µοναδικό)

π.χ. αρχείο προσωπικού για µισθοδοσία

Βασικές πράξεις σε σειριακά αρχείαΣυγχώνευσηΤαξινόµηση

Page 63: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

63

Συγχώνευση σειριακών αρχείων(merge)

MERGE

Θεωρούµε ότι τα p αρχεία εισόδου είναι ταξινοµηµένα

1

2

p συγχώνευση p-τάξης

module merge (infile1, infile2, …, infilen, outfile)∆ιάβασε µια εγγραφή από κάθε αρχείο εισόδουwhile τουλάχιστον µια εγγραφή δεν είναι ΕΟF do

∆ιάλεξε την εγγραφή µε το µικρότερο κλειδίΓράψε τη στο αρχείο εξόδου∆ιάβασε την επόµενη εγγραφή από το ίδιο file

όπου, EOF = τέλος αρχείου

Input files Output file

Page 64: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

64

ΤΑΞΙΝΟΜΗΣΗ ΑΡΧΕΙΟΥ 1/3

•Είναι διαφορετική για αρχεία εγγραφών σε σχέση µε πίνακες όταν αυτά δεν χωρούν ολόκληρα στην µνήµη

•Στρατηγική: φτιάχνε όλο και µεγαλύτερες διατεταγµένες ακολουθίες εγγραφώνσυγχωνεύοντας µικρότερες τέτοιες ακολουθίες

• Πολυφασική ταξινόµηση (multiphase sort)•Στην πρώτη φάση (προπαρασκευαστική) διαβάζουµε από το αρχείο των Ν εγγραφών οµάδες των s το πλήθος εγγραφών στη µνήµη του υπολογιστή, τις ταξινοµούµε και στη συνέχεια τις γράφουµε σε ένα αρχείο εξόδου.

•Το αποτέλεσµα είναι το αρχείο εξόδου να έχει w = N / s ταξινοµηµένες ακολουθίες εγγραφών

Ν records

Μη ταξινοµηµένο αρχείο εισόδου

sort

Αρχείο εξόδου

N/s = w

Ταξινοµηµένες ακολουθίες

µήκους s εκάστη

µνήµη s

Page 65: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

65

ΤΑΞΙΝΟΜΗΣΗ ΑΡΧΕΙΟΥ 2/3

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

Αρχικά, Ν/s = wταξινοµηµένες ακολουθίες

1

2

P

1

2

P

w/p ακολουθίεςσε κάθε αρχείο

Output file p φορές µεγαλύτερες

∆ΙΑΝΟΜΗDISTRIBUTE

ΣΥΓΧΩΝΕΥΣΗMERGE

Οι i-οστές ακολουθίες από κάθε αρχείο συγχωνεύονται σε µία

Page 66: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

66

ΤΑΞΙΝΟΜΗΣΗ ΑΡΧΕΙΟΥ 3/3

•Αριθµός περασµάτων είναι = 2logp(N/s)+1

Πράγµατι:• έστω Ν = αριθµός εγγραφών

s = µήκος των αρχικών ακολουθιών (1η φάση)p = αριθµός ενδιάµεσων αρχείων

• έστω k ο αριθµός κύκλων διανοµής-συγχώνευσης• Τότε θα έχουµε:

s·p = το µήκος της ταξινοµηµένης ακολουθίας µετά τον 1ο κύκλοs·p2 = το µήκος της ταξινοµηµένης ακολουθίας µετά τον 2ο κύκλοs·p3 = το µήκος της ταξινοµηµένης ακολουθίας µετά τον 3ο κύκλο

:N =s·pk = το µήκος της ταξινοµηµένης ακολουθίας µετά τον k κύκλο

• Άρα k=logp(N/S)• Λαµβάνοντας υπόψη και την αρχική φάση διανοµής έπεται ότι

αριθµός περασµάτων = 2k+1= 2logp(N/s)+1• το Κ µειώνεται αυξάνοντας τα S ή / και P• απαιτούµενος χρόνος N(2k+1)• Ασυµπτωτική χρονική πολυπλοκότητα : Ο(N log2N)

Page 67: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

1 2 3 4 5 6 7

102102102100102102102100

10010010081100100100102

10065653565151511

9040402140111115

8119192019100651

8015151715814065

751111711201919

6511417140

401001001021007510081

359090100811281100

21814165358207

20808040212720

1975751920653521

173535151740214

152121117191717

122020141435

1117179090357512

81212808021128

78875751782

57712124275

45588909090

3445580803

233335580

12222335

ΠΑΡΑ∆ΕΙΓΜΑ

Τ=ταξινόµηση∆= διανοµήΣ=συγχώνευση

N = 24

s = 4

w = N/s = 6

k = 2log26 + 1 = 7

Τ ∆ Σ ∆ Σ ∆ ΣP = 2 P = 2 P = 2

Page 68: Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝcgi.di.uoa.gr/~halatsis/introcs/Diafanies_2005-06/... · 2005. 11. 6. · Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών

68

ΕΝΗΜΕΡΩΣΗ ΣΕΙΡΙΑΚΟΥ ΑΡΧΕΙΟΥ

Είδη συναλλαγών

- Εισαγωγή (insertion) νέας εγγραφής- Ενηµέρωση (update) εγγραφής- ∆ιαγραφή (deletion) εγγραφής

SORT

UPDATE

ΝΕΟ Master FileOLDMaster File

SortedUnsorted transaction file