Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
1
Η ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝ
Επεξεργαστές Γλωσσών∆ιερµήνευση - InterpretationΜετάφραση - Compilation – Μεταγλώττιση
ΛΟΓΙΣΜΙΚΟ ΣΥΣΤΗΜΑΤΟΣ SOFTWAREΑναγκαιότητα Λογισµικού ΣυστήµατοςΛ.Σ. = Λειτουργικό Σύστηµα + Μεταφραστές Γλωσσών U Εκδότες + Φορτωτές + Λογικό Επικοινωνίας
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
2
ΤΡΟΠΟΙ ΕΠΕΞΕΡΓΑΣΙΑΣΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
1) ΑΠ’ ΕΥΘΕΙΑΣ ΕΚΤΕΛΕΣΗ:
2) ∆ΙΕΡΜΗΝΕΥΣΗ:
3) ΜΕΤΑΦΡΑΣΗ/ΜΕΤΑΓΛΩΤΤΙΣΗ
4) ΓΕΝΙΚΗ ΠΕΡΙΠΤΩΣΗ:
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
3
ΠΡΟΒΛΗΜΑ
Εάν ορίζει ένα µεταγλωττιστή που είναιγραµµένος σε γλώσσα µηχανής Μ (wM) καιµεταγλωττίζει προγράµµατα από την γλώσσα Lστη γλώσσα Μ (L→M), να δείξετε µε ποιαδιαδικασία από τους µεταγλωττιστές
καικαι διαθέσιµο µόνο τον υπολογιστή µε γλώσσαµηχανής Α, πως µπορεί να παραχθεί οµεταγλωττιστής για ένα νέο υπολογιστή µεγλώσσα µηχανής Β; Ποια είναι η πρακτική αξίααυτής της διαδικασίας;
wAALC →
wLBLC →
wBBLC →
wMMLC →
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
4
ΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ
wAALC →
Α wABLC →
wLBLC →
wABLC →
ΑwB
BLC →
wBBLC →
Β
PwBPwL
Χρησιµότητα ;;
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
5
Κλάσεις Γλωσσών
Κλάση 0: Γλώσσες χωρίς περιορισµούς (unrestricted)
Αποδεκτές από Μηχανές TuringΚανόνες: uAv → uwv, Α=µη-τερµατικό,
Κλάση 1: Γλώσσες ευαίσθητες συµφραζοµένων(context sensitive)
(context sensitive)γραµµικά περιορισµένη ταινία (η κεφαλή δεν µπορεί να κινηθεί δεν µπορεί να κινηθεί δεξιότερα)
τικό και w ≠e ( ή |uAv| ≤ |uwv|)
Γλώσσες ελεύθερες συµφραζοµένωνσυµφραζοµένων
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
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
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
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
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
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)
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
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
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
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
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
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
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
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
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
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)
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
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’
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
15
Εργαλεία δηµιουργίας/κατασκευής compilers
Compiler-Compiler
Compiler-Compiler
Συντακτικό της γλώσσας L
Εντολές µηχανής M που αντιστοιχούν σε εντολές της L
Στο Unix έχουµε τα εργαλείαLex και Yacc
wMBLC →
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
16
Συµβολοµεταφραστής – Assembler
Μετατρέπει τη Συµβολική Γλώσσα Μηχανής (Assembly) σε γλώσσα µηχανής (binary)
Assembly Assembler Binary
H γλώσσα Assembly περιέχει:
Συµβολική γραφή των εντολών µηχανής
Ψευδοεντολές (οδηγίες συµβολοµετάφρασης)
∆ηλώσεις δεδοµένων (τύπος, τιµή)
∆ήλωση ΜACRO εντολών
∆ιαφορά µεταξύ Υπορουτίνας και MACRO
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
17
Φορτωτές - Loaders
Απόλυτος ∆υαδικός Φορτωτής (Absolute binary loader)Φορτώνει στη µνήµη ένα πρόγραµµα σε απόλυτη δυαδική µορφή (όπως αυτό έχει γεννηθεί)
Σχετικός Φορτωτής (Relocating Loader)Μεταθετό πρόγραµµα (relocatable program)Έχει παραχθεί µε αρχή τη µηδέν διεύθυνση µνήµηςΟι διευθύνσεις αλλάζουν µε βάση την διεύθυνση αρχής από την οποία αρχίζει να φορτώνεται το πρόγραµµα στη µνήµη
ΜΕΤΑΘΕΣΗ - 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
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
19
Σύνδεση - Linking
Επιτρέπει τη σύνδεση στοιχείων προγράµµατος σε ένα µόνο πρόγραµµαΗ σύνδεση µπορεί να λάβει χώρα σε επτά διαφορετικές χρονικές στιγµές:
Κατά την ώρα συγγραφής του πηγαίου προγράµµατοςΑυτό σηµαίνει σύνδεση µε το χέρι
Μετά την κωδικοποίηση αλλά πριν την µετάφρασηΥπονοεί ξανα-κωδικοποίηση και σύνδεση µε το χέρι
Κατά την µετάφρασηΥπονοεί ξανα-µετάφραση
Μετά την µετάφραση αλλά πριν την φόρτωσηΣυνεπάγεται ένα Συνδέτη (Linker)
κατά την ώρα φόρτωσης Συνεπάγεται ένα Συνδέτη-Φορτωτή (Linking Loader)
Μετά την φόρτωση αλλά πριν την εκτέλεσηΑπαιτεί να έχουµε στη µνήµα ένα µεγάλο αριθµό στοιχείων
Κατά την ώρα εκτέλεσηςΣυνεπάγεται ∆υναµική Σύνδεση (Dynamic Linking)
ΠΑΡΑ∆ΕΙΓΜΑ ΣΥΝ∆ΕΣΗΣ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
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
21
Συνήθη σχήµατα Μετάφρασης και Σύνδεσης
Μετάφραση
Σύνδεση µετά τη µετάφραση αλλά πριν τη
φόρτωση
Μια άλλη άποψη Σύνδεσης και Φόρτωσης
ΦΥΣΙΚΟΣΧΩΡΟΣ
ADDRESS BINDING
ΛΟΓΙΚΟΣΧΩΡΟΣ
1
ΛΟΓΙΚΟΣΧΩΡΟΣ
2
ΛΟΓΙΚΟΣΧΩΡΟΣ
3
ΛΟΓΙΚΟΣΧΩΡΟΣ
LOADING
ΕΙΝΑΙ Η ΑΠΕΙΚΟΝΗΣΗΤΟΥ ΛΟΓΙΚΟΥ ΧΏΡΟΥ ΣΤΟ
ΦΥΣΙΚΟ ΧΩΡΟ
LINKING
SEGMENTATION
ΕΙΝΑΙ Η ΣΥΝ∆ΕΣΗ ΑΝΕΞΑΡΤΗΤΩΝΛΟΓΙΚΩΝ ΧΩΡΨΝ ΣΕ ΕΝΑ ΕΝΟΙΑΙΟ ΛΟΓΙΚΟ ΧΩΡΟ
PAGING
VIRTUAL MEMORY
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
23
Λειτουργικό Σύστηµα(Operating System)
Ορισµός Ένα σύνολο διεργασιών που καθοδηγούν και ελέγχουν τη λειτουργία και τη χρήση ενός υπολογιστικού συστήµατος
Η µεγιστοποίηση της απόδοσης ενόςΑντικειµενικός συστήµατος µε ταυτόχρονη δηµιουργίαΣκοπός φιλικού περιβάλλοντος επεξεργασίας
των προγραµµάτων των χρηστών
Βασικές ∆ιεργασία (Process)Έννοιες Κατάσταση διεργασίας
Εργασία = σύνολο διεργασιώνΛειτουργικές καταστάσεις µηχανής∆ιακοπέςΠρονοµιούχες ΕντολέςΠροτεραιότηταΠροστασία
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
24
Λογισµικό Συστήµατος 1ης γενιάς(1949-1956)
Αυτοφορτωτής (Bootstrap loader)Απόλυτος φορτωτής (Absolute loader)Assembly – Assembler/ ΣυµβολοµεταφραστήςOS Μαζικής Επεξεργασίας (Batch processing)Γλώσσες Υψηλού Επιπέδου – Μεταγλωττιστές(Compilers)Μεταθετός Κώδικας (relocatable code)Σχετικός φορτωτής (relocating loader)Συνδέτης (linker)Συνδέτης Φορτωτής (linking loader)
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
25
Λογισµικό Συστήµατος 2ης γενιάς(1956-1962)
Αυτόνοµο σύστηµα Ι/ΟΑρχή υποκλοπής κύκλων –cycle stealingΚατάσταση ΕΠΟΠΤΗ (SVR) - κατάσταση Χρήστη (User)
Επόπτης Έναρξη Ι/Ο Πέρας Ι/Ο
Χρήστης Σύστηµα ∆ιακοπών - Interrupts
Γλώσσα Ελέγχου Εργασιών –Job ControlΚύριο χαρακτηριστικό: ΣΕΙΡΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ
∆ιακοπή
ΕΠΟΠΤΗΣ ΧΡΗΣΤΗΣ
Return
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
26
Λογισµικό Συστήµατος 3ης γενιάς(1962-1970)
ΠΟΛΥΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΣελιδοποίηση µνήµης – PagingΕικονική Μνήµη – Virtual MemoryΑποσύνδεση Ι/Ο – off-line spooling∆ιεργασία – Process
Λειτουργικό Σύστηµα – Operating System
Καταµερισµός Χρόνου –Time Sharing∆ΙΚΤΥΑ ΥπολογιστώνΚατανεµηµένη Επεξεργασία – Distributed Processing
∆ιαχείριση ∆ιακοπών
Επικοινωνία-Συγχρονισµός ∆ιεργασιών
Επιλογή ∆ιεργασιών
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
27
Πολυπρογραµµατισµός
Πέρας Ι/Ο
Έναρξη Ι/Ο
Επιλογέας
Φορτωτής
∆ιεργασία1
∆ιεργασία 2
∆ιεργασία 3
Πέρας∆ιεργασίας 1
Κλήσεις Επόπτη
∆ιακοπέςΠεριφεριακών
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
28
Υλοποίηση Πολυπρογραµµατισµού
Εναλλαγή της CPU µεταξύ διεργασιών
Χειρισµός διακοπών / interrupt handling
Εκχώρηση πόρων / resource allocation: (µνήµη, Ι/Ο...)
Προστασία µεταξύ των διεργασιών
Προστασία πόρων / resource protection
Χρονοπρογραµµατισµός µεταξύ διεργασιών
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
29
Είδη Λειτουργικών ΣυστηµάτωνΣήµερα
Μαζικής Επεξεργασίας (Batch processing)Καταµερισµού Χρόνου (Time Sharing)
Συστήµατα Πελάτη-Yπηρέτη (Client-Server)Κατανεµηµένης Επεξεργασίας (distributed processing)
Π.χ., Υπολογιστική Πλέγµατος (Grid computing)Ευφυής Σκόνη
Παράλληλης Επεξεργασίας (parallel computing)Συµµετρική πολυεπεξεργασία (symmetric multiprocessing)Πολυεπεξεργασία µε Πέρασµα Μηνυµάτων (Message passing)
Πραγµατικού Χρόνου, (real-time computing) γιαΈλεγχο Φυσικών ∆ιεργασιών
Κρίσιµος χρόνος, Ανάδραση, Ασφαλής ΑποτυχίαΣυστήµατα Πληροφόρησης, π.χ.,
Μηχανές ΑναζήτησηςΣυστήµατα Συναλλαγών, π.χ.,
Τραπεζικές συναλλαγέςΚρατήσεις Θέσεων
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
30
Εκτέλεση εργασιών
Εργασία: Σύνολο διεργασιώνΤυπικά βήµατα εκτελέσεως µιας εργασίας
1. Εισαγωγή πηγαίου προγράµµατος2. Μετάφραση αυτού του και παραγωγή αντικείµενου κώδικα3. Φόρτωση αντικειµένου προγράµµατος στη µνήµη4. Εισαγωγή δεδοµένων εισόδου5. Εκτέλεση προγράµµατος6. Εξαγωγή αποτελεσµάτων
Λογική Ροή εργασιών
ΆφιξηΝέωνΕργασιών
ΟυρέςΕργασιών
Επιλογή Εργασίας
Επιστροφή λόγω εξάντλησηςτου κβάντου χρόνου
Ουρά διεργασιώνΣε ετοιµότητα
Επιλογή ∆ιεργασίας∆ιεργασία σε εκτέλεση
Πέρας Εργασίας
Ουρά διεργασιώνσε αναστολή
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
31
Έλεγχος Εργασιών – Job Control
Γλώσσα ελέγχου εργασιών (απλή µορφή)Με αυτή ο χρήστης δίνει στο Λ.Σ.
την αναγνώριση / ταυτότητα του: username - passwordλειτουργική πληροφορία (τι θέλει, π.χ., load, compile,..)Ι/Ο πληροφορία (Ι/Ο συσκευές, Ι/Ο files)πληροφορία εκτιµώµενων αναγκαιούντων πόρων για
(µνήµη,χρόνο εκτέλεσης κλπ)το επείγον (προτεραιότητα) της εργασίας
Αυτά τα χρειάζεται ο χρονοπρογραµµατιστήςεργασιών για την επιλογή της εργασίας στο υψηλό επίπεδο
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
32
Χρονοπρογραµµατισµός& εκχώρηση πόρων
Χρονοπρογραµµατισµός εργασιών:
Επιλογή λαµβάνοντας υπόψη κυρίως:
•απαιτούµενους πόρους (µνήµη, χρήση Ι/Ο)
•διαθέσιµους πόρους
•προτεραιότητα
•χρονική διάρκεια αναµονής
Είδος επιλογής:
Στατική : όλοι οι πόροι πρέπει να ικανοποιούνται
∆υναµική: οι πόροι ικανοποιούνται σταδιακά, ίσως
οδηγήσει σε αδιέξοδο / deadlock
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
33
Καταστάσεις µιας ∆ιεργασίας
Τρεις κύριες καταστάσεις:Σε ετοιµότητα (ready)Τρέχουσα/Εκτελούµενη (running)Σε αναστολή – Μπλοκαρισµένη (blocked)
Μεταπτώσεις κατάστασης
Εκκίνηση
ΕπιλογήΤρέχουσα
Running
Μπλοκαρισµένη
Blocked
Επιλογή από Επιλογέα
Εξάντληση χρόνου-κβάντου
Έτοιµη
Ready
Πέρας Ι/Ο ή εκχώρηση πόρων
Έναρξη Ι/Ο ή αίτηση για εκχώρηση
πόρων
Τερµατισµός
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
34
∆ιαχείρηση Κυρίας Μνήµης(memory management)
Στόχοι:Μεταθετότητα (relocation)Προστασία (protection)Λογική Οργάνωση (logical organization)Φυσική Οργάνωση (physical Organization)
Εικονική Μνήµη (Virtual Memory)∆ιευθύνσεις προγράµµατος ⇔ θέσεις µνήµηςΧώρος διευθύνσεων ⇔ Χώρος µνήµης
ΕΙΚΟΝΙΚΗΜΝΗΜΗ
N
ΦΥΣΙΚΗΜΝΗΜΗ
M
f: N → M
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
35
Οργάνωση Μνήµης
Εικονική Μνήµη
Οργανώνεται
Γραµµικά Με περιγραφείς Σε Τµήµατα
Εκχωρείται εκχωρείται εκχωρείται
Μια συνεχήςΠεριοχή
Φυσικής Μνήµης
Σε σελίδεςΊσου
µήκους
Σε Περιοχές Μεταβλητού
µήκους
Σε Σελίδες
Ορισµένων Μόνο
διαστάσεων
Ίσουµήκους
Αυτές οι ΟργανώσειςΟδηγούν σε
ΚατακερµατισµόΤης Φυσικής µνήµης Φυσική µνήµη
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
36
∆ιαχείριση ΜνήµηςΒάση-Όριο (Datum-Limit)
Στη διεργασία δίνεται µια συνεχής περιοχή Φυσικής ΜνήµηςΗ περιοχή αυτή ορίζεται µε δύο καταχωρητές:
Βάση Β (basis)
Όριο L (limit)
Μια λογική διεύθυνση α αντιστοιχεί στη φυσική διεύθυνσηf(a) = [B] + a
Προστασία µνήµης: [B] ≤ f(a) = [B] + a ≤ [L]
B
L
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
37
Παράδειγµα Βάσης-Ορίου
3599
280228012800
2699
150215011500
101500
∆ιεργασία Ατρέχουσα
∆ιεργασία Βσε αναµονή
799
210
1199
210
3599
280228012800
2699
150215011500
10
799
210
1199
210
∆ιεργασία Βτρέχουσα
2800
∆ιεργασία Ασε αναµονή
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
38
Κατακερµατισµός µνήµης
Ανάγκη µετακίνησης
∆ιεργασία 1
∆ιεργασία 2
∆ιεργασία 3
∆ιεργασία 4
∆ιεργασία 1
∆ιεργασία 4
∆ιεργασία 3
∆ιεργασία 2
Ελεύθερηµνήµη
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
39
Σελιδοποίηση – Paging(σελίδες ίδιου µεγέθους)
O λογικός χώρος της διεργασίας χωρίζεται σελίδεςΑντίστοιχα, ο φυσικός χώρος χωρίζεται σε πλαίσια σελίδωνίδιου µεγέθουςH σελίδα P της διεργασίας αποθηκεύεται σε αντίστοιχο κενό πλαίσιο σελίδας P’ της φυσικής µνήµηςΜια λογική διεύθυνση χωρίζεται στα δύο:
P = αριθµός σελίδας διεργασίαςW = αριθµός θέσης στη σελίδα P
Ένας µηχανισµός αντιστοιχίας µετατρέπει µια λογική διεύθυνση της διεργασίας στην αντίστοιχη φυσική
Μηχανισµοί µετατροπής/αντιστοίχησηςΠίνακας σελίδων (page table)Συνειρµική Μνήµη (associative memory)
p w
P’ w
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
40
Σελιδοποίηση – Paging
Πλεονεκτήµατα σελιδοποίησης∆εν οδηγεί σε κατακερµατισµό της µνήµης∆εν είναι απαραίτητο να είναι ταυτόχρονα στη µνήµη όλες οι σελίδες της διεργασίας (Οι άλλες είναι στο δίσκο)Άρα, µπορεί ο λογικός χώρος µιας διεργασίας να είναι µεγαλύτερος του φυσικού χώρου
ΜειονεκτήµαταΑυξηµένο κόστος Υλικού του επεξεργαστήΑυξηµένη πολυπλοκότητα του Λειτουργικού ΣυστήµατοςΑνάγκη διαχείρισης «λαθών σελίδας»
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
41
Υλοποίηση ΣελιδοποίησηςΜε πίνακα σελίδων (page table)
Μέγεθος σελίδας = 2n
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
42
Υλοποίηση ΣελιδοποίησηςΜε συνειρµική µνήµη (associative memory)
Στη συνειρµική µνήµη φυλάσσεται η αντιστοιχία λογικής και φυσικής σελίδας για ένα µικρό αριθµό σελίδωνΑπαιτείται ενηµέρωση της συνειρµικής µνήµης ώστε να µειωθεί ο ρυθµός αποτυχίας αντιστοίχησης.
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
43
Αντικατάσταση σελίδων page swap
Προκύπτει η ανάγκη αντικατάστασης σελίδας όταν µια σελίδα που θέλει η διεργασία δεν είναι στη µνήµη και η µνήµη δεν έχει κενό πλαίσιο σελίδας για να την φέρει από τη δευτερεύουσα µνήµηΣτη περίπτωση αυτή λέµε ότι έχουµε ένα λάθος σελίδας (page fault) που δηµιουργεί µια διακοπή στη συνέχιση της εκτέλεσης της διεργασίας Το σύστηµα διαχείρισης του Λ.Σ. Αναλαµβάνει να κάνει τη σχετική αντικατάσταση Πρόβληµα: ποια σελίδα θα αντικατασταθεί;Στόχοι της πολιτικής αντικατάστασης σελίδων:
Αντικατάσταση της σελίδας που δεν θα χρειαστεί για τον περισσότερο χρόνο στο µέλλονΠρόβλεψη της µελλοντικής συµπεριφοράς από τη συµπεριφορά του παρελθόντος
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
44
Πολιτικές αντικατάστασης σελίδων
Τυχαία Με γεννήτρια τυχαίών αριθµών
Λιγότερο πρόσφατα χρησιµοποιηµένη (LRU, least recently used)
Με καταχωρητή γήρανσης της σελίδαςΛιγότερο συχνά χρησιµοποιηµένη (LFU, least frequently used)
Με απαριθµητή χρήσης της σελίδαςΠερισσότερο χρόνο στη µνήµη, ισοδύναµα, πρώτη-µέσα-πρώτη-έξω, (longest resident, FIFO:first-in-first-out)
Με ουρά FIFO Βελτιώσεις:
∆εύτερη ευκαιρία (FIFO + used bit)Έχει τροποποιηθεί η υπό αντικατάσταση σελίδα; Αυτό σηµαίνει ότι σχετικό writen-into bit µας δίνει αυτή την πληροφορία.
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
45
Χειρισµός ΕΙΣΟ∆ΟΥ/ΕΞΟ∆ΟΥ (Input/Output, Ι/Ο)
Το Λειτουργικό Σύστηµα χειρίζεται όλα τα Ι/Ο µηχανήµατα
αποφεύγεται έτσι να ξέρει λεπτοµέρειες ο προγραµµατιστής
Το Ι/Ο το κάνει το OS (εκκίνηση Ι/Ο, τερµατισµός Ι/Ο) µέσω interrupts
Το OS χειρίζεται διαφορετικά µοιραζόµενες ή µη (sharable & unsharable) Ι/Ο συσκευές
Τεχνικές βελτίωσης του συστήµατος Ι/ΟΜνήµες αποµόνωσης (buffers)Κουβάριασµα - SpoolingΑποσύνδεση διεργασίας από µη διαµοιραζόµενες
µονάδες Ι/ΟΧρήση ενδιαµέσου µέσου (συνήθως ∆ίσκος)
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
46
χειρισµός Ι/ΟΧειρισµός ΕΙΣΟ∆ΟΥ/ΕΞΟ∆ΟΥ
(Input/Output, Ι/Ο)
∆ιεργασία Χρήστη
request I/O
Λ.Σ. : I/O driver
εκκίνηση Ι/Ο
[µπλοκάρισµα process]
Επιλογέας Λ.Σ.
Επιλογή process
..
Interrupt
Interrupt handler
αναγνώριση διακοπής
χειρισµός διακοπής
ενηµέρωση process
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
47
∆ιαχείριση αρχείων(file management)
Αφορά:δηµιουργία & σβήσιµο αρχείωνπρόσβαση αυτών (για διάβασµα, ενηµέρωση, σβήσιµο)διαχείριση δευτερεύουσας µνήµηςπροστασία αρχείων από µη εξουσιοδοτηµένη πρόσβασηπροστασία αρχείων από απώλεια ή διαφθορά λόγο H/W και/ή S/W βλαβών ή λαθών
∆ιαµοιρασµός αρχείων µεταξύ χρηστώνΑλλά και προστασία από µη εξουσιοδοτηµένη πρόσβαση
Κατάλογος / directory αρχείων• master directory - user directories• multi-level directory δοµή
Οργάνωση αρχείων: Λογική οργάνωση και Φυσική οργάνωσηBack-up αρχείων
• περιοδική - όλο το αρχείο• αυξητική - µόνο το µέρος που αλλάζει
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
48
∆οµή Καταλόγου Αρχείωνmaster directory - user directories
Χρήστης 1
Χρήστης 2
ΓενικόςΚατάλογος
ΚατάλογοςΧρήστη 1
ΚατάλογοςΧρήστη 2
Για κάθε χρήστη ο Γενικός κατάλογος περιέχει: το όνοµα του χρήστη και τη διεύθυνση του δικού του καταλόγουΟ κατάλογος του χρήστη περιέχει τα εξής για κάθε δικό του αρχείο:
Όνοµα αρχείου∆ιεύθυνση αρχείου στη δευτερεύουσα µνήµηΜέγεθος αρχείουΕπιτρεπτή πρόσβαση (R, W, …)∆ιαχειριστική πληροφορία (π.χ., ηµεροµηνία δηµιουργίας, χρόνος τελευταίας αλλαγής
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
49
Πολυεπίπεδος κατάλογος αρχείων
root
alpha
Τρέχονκατάλογος
……betaalpha zeta
thetaca b a
zeta
e beta
fbeta b
•∆ενδροειδής δοµή•Επιβάρυνση: Πολλαπλές προσβάσεις στο δίσκο
για να εντοπιστεί ο κατάλληλοςκατάλογος
•Λύση: χρήση «τρέχοντος» καταλόγου
alpha
Πλήρες όνοµα: root/zeta/theta/alphaΣχετικό όνοµα: alpha
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
50
Τρόποι αποθήκευσης αρχείων
∆ιασύνδεση τµηµάτων (block linkage)
Κατάλληλος τρόπος για σειριακή πρόσβαση
Χάρτης απεικόνισης αρχείου (file map)
∆είκτης τµηµάτων (index block)
Κατάλογος
ΚατάλογοςΚοινός χάρτης για όλη τη ∆ευτερεύουσα µνήµηΕπιβάρυνση: η τµηµατική προσκόµιση του χάρτη στη µνήµηΚατάλληλος για σειριακή πρόσβαση
1
01 323 104
...10 15
15 EOF
1
01 2 3
Κατάλογος
IndexBlock
Ένα index block ανά αρχείοΚατάλλολος για Τυχαία Πρόσβαση
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
51
ΕΠΕΞΕΡΓΑΣΙΑ ΣΤΟΙΧΕΙΩΝData Processing (DP)
Μεγάλος όγκος στοιχείων που δεν χωρά στη µνήµηΙ/Ο µεταξύ µνήµης & δευτερεύουσας µνήµης - αριστοποίησηκύριος χώρος εφαρµογής DP:
Eµπορικός, ∆ηµόσια ∆ιοίκηση& Επιστηµονικός τώρα
∆ραστηριότητες:εισαγωγή στοιχείωνεπαλήθευση στοιχείωνεπεξεργασία στοιχείωνέκδοση αποτελεσµάτων
Ο χειρισµός τους απαιτεί ∆ΟΜΗΣΗ των στοιχείων
αξιοπιστία & ασφάλεια
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
52
ΜΟΝΤΕΛΑ ∆Ε∆ΟΜΕΝΩΝ
Οντότητες / αντικείµενα (entities / objects)Ιδιότητες / συνιστώσες / χαρακτηριστικά (properties / attributes)Σύνολα οντοτήτων, κατηγορίες οντοτήτων, κλάσεις οντοτήτων (entty set, entity category,entity class): ίδιες ιδιότητεςΤιµές ιδιοτήτων (values)Κλειδί οντότητας (key) : ιδιότητα ή συνδυασµός ιδιοτήτων
µε τιµή / τιµές που µονοσήµαντα ξεχωρίζει µια οντότητα από το σύνολο τηςΣχέσεις µεταξύ οντοτήτων - relationshipsΜοντέλα δεδοµένων: ανεξάρτητα της εφαρµογής
∆οµή structureΧειρισµός manipulation – updatesΑκεραιότης integrity constraints
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
53
Τυπικά παραδείγµατα οντοτήτων'Εφαρµογή Σύνολα οντοτήτων Ιδιότητες Κλειδί Σχέση Τράπεζα Πελάτες Όνοµα αρ. πελάτη Κατοχή
∆ιεύθυνση (Πελάτης,Λογ/σµός)αρ. πελάτη
Λογαριασµο αρ. λογαριασµού αρ. λογαριασµούυπόλοιπο
Κρατήσεις Πτήσεις αρ. Πτήσεως αρ. Πτήσης Ανάθεσηθέσεων αφετηρία (Αεροπ/νο, πτήση)
προορισµόςώρα αναχώρησης
Αεροπλάνα Κατασκευαστής αρ. σειράςΜοντέλοαρ. σειράς
Επιβάτες Όνοµα Όνοµα + ∆/νση∆ιεύθυνση
Αποθήκη Εξαρτήµατα αρ. εξαρ/τος αρ. εξ/τος Προµήθεια αυτοκινήτων Κόστος (Κατασ/στής, εξαρτήµατα)
Ποσότης
Κατασκευαστές Όνοµα εταιρίας ονοµ. εταιρίας∆ιεύθυνσηΌριο Πίστωσης
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
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
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
55
ΧΕΙΡΙΣΜΟΣ ΣΧΕΣΕΩΝ
Πράξεις σχεσιακής άλγεβρας :SQL γλώσσαΕπιλογή Selection
επιλέγει γραµµέςαποτέλεσµα = νέα σχέση
Π.χ., Select Πτήσεις where Αφετηρία = LondonSelect Αεροπλάνο where Κατασκευαστής = Boeing
Προβολή Projectionεπιλέγει στήλεςαποτέλεσµα = νέα σχέση
Π.χ., Project Πτήσεως on ΠροορισµόςProject Αεροπλάνο on Κατασκευαστής, ModelProject Αεροπλάνο on Κατασκευαστής
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
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 Αεροπλάνο = ?
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
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 Αεροπλάνο = ?
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
58
Σχεσιακές εκφράσεις(Παραδείγµατα)
π.χ. 1: Επέλεξε όλες τις πλειάδες (Αρ. πτήσης, κατασκευαστής, Model)µε αρ. πτήσης = BA014
Select (Project (Πτήσεις join Ανάθεση join Αεροπλάνο)on Αρ. Πτήσης, Κατασκευαστής, Model)where αρ. πτήσης = BA014
Αποτέλεσµα : BA014 Boeing 747
π.χ. 2 Βρές όλους τους αρ. πτήσεων που αναχωρούν από το Λονδίνο
Project (Select Πτήσεις where Αφετηρία = Λονδίνο)on Αρ. Πτήσης
Αποτέλεσµα : BA014BA152
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
59
Κανόνες ακεραιότηταςΚάθε σχέση πρέπει να έχει ένα ΚΛΕΙ∆Ι και κάθε πλειάδα στηνσχέση πρέπει να έχει µια τιµή ΚΛΕΙ∆ΙΟΥ που να είναιµοναδική και όχι κενή
∆ες π.χ., σχέση Ανάθεση (Αρ. Πτήσης, Αρ. σειράς)
Κάθε οντότητα στην οποία κάνει αναφορά µια σχέση πρέπει επίσης να εµφανίζεται στην σχέση η οποία αντιπροσωπεύει το σύνολο οντοτήτων στο οποίο η οντότητα ανήκει
Π.χ., Κάθε αεροπλάνο που υπάρχει στη σχέση Ανάθεση πρέπεινα υπάρχει και στη σχέση Αεροπλάνο
∆ηλαδή, όχι "ελεύθερα / χαλαρά άκρα"
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
60
ΕΓΓΡΑΦΕΣ, ΑΡΧΕΙΑ και ΒΑΣΕΙΣ ∆Ε∆ΟΜΕΝΩΝ(records, files, databases)
Μοντέλο ∆εδοµένων - σχήµα Σ∆Β∆ (schema DBMS)
∆οµές ∆εδοµένων - Λ.Σ. Οργάνωση αρχείων
Φυσικά µέσα αποθήκευσης - Λ.Σ. DriversΕγγραφή (record): περιγράφει µια οντότηταΕίναι ένα σύνολο πεδίων (fields) Ένα πεδίο είναι το κλειδί της εγγραφής
Αρχείο (file) = σύνολο σχετικών εγγραφών
Βάση δεδοµένων (Database, DB) = σύνολο αρχείων
Σύστηµα ∆ιαχείρισης βάσης δεδοµένων (Data Base Management System)
Πράξεις επί των εγγραφών : συναλλαγή (transaction)read, write, add, delete, update
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
61
Υλοποίηση του σχεσιακού µοντέλου
σχέση = αρχείο πλειάδα = εγγραφή στο επίπεδο
οργάνωσης αρχείουιδιότητα = πεδίο
∆ιάφορες τεχνικές στο επίπεδο φυσικού µέσου (ξεφεύγει των ορίων του µαθήµατος)
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
62
ΟΡΓΑΝΩΣΗ ΕΓΓΡΑΦΩΝ
Οργάνωση εγγραφών µέσα σ’ ένα αρχείο: είναι συνάρτηση του τρόπου πρόσβασης
αρχείο τυχαίας πρόσβασης
κατάλληλο για εφαρµογές πραγµατικού χρόνουκρατήσεις θέσεωντράπεζες
Σειριακό αρχείο: κλειδί διάταξης (order key)(όχι αναγκαία µοναδικό)
π.χ. αρχείο προσωπικού για µισθοδοσία
Βασικές πράξεις σε σειριακά αρχείαΣυγχώνευσηΤαξινόµηση
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
63
Συγχώνευση σειριακών αρχείων(merge)
MERGE
Θεωρούµε ότι τα p αρχεία εισόδου είναι ταξινοµηµένα
1
2
p συγχώνευση p-τάξης
module merge (infile1, infile2, …, infilen, outfile)∆ιάβασε µια εγγραφή από κάθε αρχείο εισόδουwhile τουλάχιστον µια εγγραφή δεν είναι ΕΟF do
∆ιάλεξε την εγγραφή µε το µικρότερο κλειδίΓράψε τη στο αρχείο εξόδου∆ιάβασε την επόµενη εγγραφή από το ίδιο file
όπου, EOF = τέλος αρχείου
Input files Output file
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
64
ΤΑΞΙΝΟΜΗΣΗ ΑΡΧΕΙΟΥ 1/3
•Είναι διαφορετική για αρχεία εγγραφών σε σχέση µε πίνακες όταν αυτά δεν χωρούν ολόκληρα στην µνήµη
•Στρατηγική: φτιάχνε όλο και µεγαλύτερες διατεταγµένες ακολουθίες εγγραφώνσυγχωνεύοντας µικρότερες τέτοιες ακολουθίες
• Πολυφασική ταξινόµηση (multiphase sort)•Στην πρώτη φάση (προπαρασκευαστική) διαβάζουµε από το αρχείο των Ν εγγραφών οµάδες των s το πλήθος εγγραφών στη µνήµη του υπολογιστή, τις ταξινοµούµε και στη συνέχεια τις γράφουµε σε ένα αρχείο εξόδου.
•Το αποτέλεσµα είναι το αρχείο εξόδου να έχει w = N / s ταξινοµηµένες ακολουθίες εγγραφών
Ν records
Μη ταξινοµηµένο αρχείο εισόδου
sort
Αρχείο εξόδου
N/s = w
Ταξινοµηµένες ακολουθίες
µήκους s εκάστη
µνήµη s
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
65
ΤΑΞΙΝΟΜΗΣΗ ΑΡΧΕΙΟΥ 2/3
Στη συνέχεια ακολουθεί ένας αριθµός κύκλων φάσης διανοµής και φάσης συγχώνευσης, όπως φαίνεται στο παρακάτω σχήµα, έως ότου προκύψει ένα πλήρως ταξινοµηµένο αρχείο Ν εγγραφών. •Στη φάση της διανοµής οι ταξινοµηµένες ακολουθίες διανέµονται σε p το πλήθος αρχεία εξόδου.•Στη φάση της συγχώνευσης τα p αρχεία συγχωνεύονται σε ένα µε αποτέλεσµα οι ταξινοµηµένες ακολουθίες που προκύπτουν να είναι p φορές µεγαλύτερες αυτών της εισόδου.
Αρχικά, Ν/s = wταξινοµηµένες ακολουθίες
1
2
P
1
2
P
w/p ακολουθίεςσε κάθε αρχείο
Output file p φορές µεγαλύτερες
∆ΙΑΝΟΜΗDISTRIBUTE
ΣΥΓΧΩΝΕΥΣΗMERGE
Οι i-οστές ακολουθίες από κάθε αρχείο συγχωνεύονται σε µία
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
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)
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
Τµήµα Πληροφορικής και Τηλεπικοινωνιών
Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών
Πανεπιστήµιο Αθηνών
68
ΕΝΗΜΕΡΩΣΗ ΣΕΙΡΙΑΚΟΥ ΑΡΧΕΙΟΥ
Είδη συναλλαγών
- Εισαγωγή (insertion) νέας εγγραφής- Ενηµέρωση (update) εγγραφής- ∆ιαγραφή (deletion) εγγραφής
SORT
UPDATE
ΝΕΟ Master FileOLDMaster File
SortedUnsorted transaction file