Λειτουργικά Συστήματα

Σχετικά έγγραφα
Λειτουργικά Συστήματα

Προέλευση της Pazcal ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Πληροφορική ΙΙ Θεματική Ενότητα 5

Υπολογιστικά Συστήματα

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Εισαγωγή στους Υπολογιστές

Δομημένος Προγραμματισμός

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

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

Σχεδίαση Ψηφιακών Συστημάτων

Αποτελέσματα προόδου

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Λογιστικές Εφαρμογές Εργαστήριο

Συστήματα Μικροϋπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Διαχείριση Χρόνου & Δίκτυα στη Διοίκηση Έργων. Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ

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

Εισαγωγή στον Προγραμματισμό Η/Υ (Fortran 90/95/2003)

Δομημένος Προγραμματισμός

ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ(Visual Basic)

Δομημένος Προγραμματισμός

Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

Προχωρημένες έννοιες προγραμματισμού σε C

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Διαδικαστικός Προγραμματισμός

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Σχεδίαση Ψηφιακών Συστημάτων

Εισαγωγή στον Προγραμματισμό με C++

Επεξεργασία κειμένου και συμβολοσειρών σε C

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Δομές Δεδομένων. Ενότητα 1: Εισαγωγή-Υλοποίηση του ΑΤΔ Σύνολο με Πίνακα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εισαγωγή στους Αλγορίθμους

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ. Ενότητα 3: Αποκατάσταση Εικόνας.

Δομημένος Προγραμματισμός

Συστήματα Μικροϋπολογιστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΝΟΜΙΣΜΑΤΙΚΗ ΟΙΚΟΝΟΜΙΚΗ ΠΟΛΙΤΙΚΗ. Ενότητα 3: Αγορά Χρήματος και επιτόκια. Γεώργιος Μιχαλόπουλος Τμήμα Λογιστικής-Χρηματοοικονομικής

Αλγόριθμοι και Δομές Δεδομένων(Θ) Ευάγγελος Γ. Ούτσιος

Ιστορία της μετάφρασης

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μικροβιολογία & Υγιεινή Τροφίμων

Αυτοματοποιημένη χαρτογραφία

Πληροφορική ΙΙ Θεματική Ενότητα 7

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

Εισαγωγή στους Αλγορίθμους

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

Μοντελοποίηση Λογικών Κυκλωμάτων

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7α: SQL (NULL, Διαίρεση) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΔΙΔΑΣΚΩΝ: Δρ. Στυλιανός Τσίτσος

Πληροφορική ΙΙ Θεματική Ενότητα 6

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Εισαγωγή στην Διοίκηση Επιχειρήσεων

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Εισαγωγή στον δομημένο προγραμματισμό

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 7: ΑΝΑΔΡΟΜΗ

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Μαζέρας Αχιλλέας. Οι εντολές επανάληψης στην Pascal (While) Φυσικός Αυτοματιστής M.Sc. Νοέµβριος 2009

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

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

Υπολογιστικά & Διακριτά Μαθηματικά

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Ενότητα 3 (μέρος 1 ο )

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Διαδικαστικός Προγραμματισμός

Λειτουργικά Συστήματα

Ψηφιακή Τεχνολογία σε Ακαδημαϊκό Περιβάλλον

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

Μάρκετινγκ Αγροτικών Προϊόντων

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Οδοποιία IΙ. Ενότητα 14: Υπόδειγμα σύνταξης τευχών θέματος Οδοποιίας. Γεώργιος Μίντσης ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Εκκλησιαστικό Δίκαιο

ΜΑΚΡΟΟΙΚΟΝΟΜΙΚΗ Ενότητα 1: Εισαγωγή: Το αντικείμενο της Μακροοικονομικής Η έννοια και του ΑΕΠ Ονομαστικό και πραγματικό ΑΕΠ

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Υδραυλικά & Πνευματικά ΣΑΕ

Transcript:

Ενότητα 11 : Διαχείριση Εισόδου/Εξόδου 2 Καθηγητής Μάνος Ρουμελιώτης Ιστοσελίδα μαθήματος

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Προγραμματιζόμενη Ε/Ε (1) program/module computeprint; const max =...; {μέγιστο μήκος εξόδου} outrdy =...;{έξοδος έτοιμη} type text = array [l..max] of char; Var data: text; numberof: integer; procedure compute(var comdata: text; var count: integer);... 4

Προγραμματιζόμενη Ε/Ε (2) procedure print(outdata: text; outcount: integer); Var outindex : integer; outindex := 1; while outcount>0 do while ioport_status<>outrdy do {keeptesting}; ioport_dataout := outdata[outindex]; outindex := outindex + 1; outcount := outcount -1 end {while} end; {print} 5

Προγραμματιζόμενη Ε/Ε (3) {computeprint} initialize_hardware; while true do {για πάντα} compute(data, numberof); print(data, numberof) end {while} end {computeprint} 6

Προγραμματισμός με διακοπές (1) program/module interruptcp; const max =...; {μέγιστο μήκος εξόδου} type text = array [l..max] of char; var datal, data2 : text; {απομονωτές δεδομένων} outdone: boolean; {σημαία: τελείωσε η εκτύπωση} procedure compute(var comdata: text; var count: integer);... 7

Προγραμματισμός με διακοπές (2) procedure start_output(outdata: text; outcount: integer); var outindex: integer; process print; while true do {await_printer_interrupt} save_context; ioport_dataout := outdata[outindex]; outindex := outindex + 1; outcount := outcount - 1; if outcount = 0 then disable_interrupts; outdone := true end; restore_context end {while} end; {print} {start_output} outindex := 1; outdone := false; enable_interrupts end; {start_output} 8

Προγραμματισμός με διακοπές (3) {interruptcp} disable_interrupts; initialize_hardware; connect_interrupt_vector(print); compute(datal, numl); {υπολογισμόςl} start_output(datal, numl); {ξεκινά εκτύπωσηl, και} compute(data2, num2); {ταυτόχρονα υπολογισμός2} while not outdone do {keeptesting}; {περίμενε μέχρι να τυπωθεί το 1} start_output(data2, num2); {ξεκινά εκτύπωση2, και} compute(datal, numl); {ταυτόχρονα υπολογισμός3} while not outdone do {keeptesting}; {περίμενε μέχρι να τυπωθεί το 2} start_output(datal, numl); {ξεκινά εκτύπωση3, και} compute(data2, numl); {ταυτόχρονα υπολογισμός4}... end {interruptcp} 9

Συγχρονική Ε/Ε (1) program/module concurrent I/O; const max = 80; {μέγιστο μήκος εισόδου} line_end = return; {χαρακτήρας τερματισμού γραμμής} type text = array [1..max] of char; var indata, outdata, save_data: text; {data buffers} indone, outdone: boolean; {flags τερματισμού} inindex, incount, outindex, outcount, save_count: integer; procedure process_data; 10

Συγχρονική Ε/Ε (2) procedure start_input; process keyboard; while true do {await_kbd_interrupt} save_context; kbd_status := ioport_status; kbd_data := ioport_datain; if kbd status = OK then restore_context; end {while} end; {keyboard} {επιβεβαίωση διακοπής} {λήψη χωρίς σφάλματα} indata[inindex] := kbd_data; inindex := inindex + 1; incount:= incount + 1; if kbd data = line_end then {η γραμμή εισόδου συμπληρώθηκε} ioport_command := kbd_interrupts_disable; indone := true end; end; else handle_error(kbd_status); {σφάλμα στη λήψη} 11

Συγχρονική Ε/Ε (3) {start_input} indone := false; inindex := 1; incount:= 0; ioport_command := kbd_interrupts_enable end; {start_input} 12

Συγχρονική Ε/Ε (4) procedure start_output; process display; while true do {await_dsp_interrupt} save_context; ioport_dataout := outdata[outindex]; outindex:= outindex + 1; outcount := outcount - 1; if outcount = 0 then {η γραμμή τυπώθηκε} ioport_command := dsp _interrupts_disable; outdone := true end; {if} restore context end; {while} end; {display} {start_output} outdone := false; outindex := 1; outcount := save_count; ioport_command := dsp _interrupts_enable end; {start_output} 13

Συγχρονική Ε/Ε (5) {MAIN - version 1} {concurrent I/O} ioport_command := kbd_and_dsp_interrupts_disable; initialize_hardware; connect_interrupt_vectors(kbd, dsp); while true do {για πάντα} start_input; {ενεργοποίηση εισόδου (x)} while not indone do {keeptesting}; {αναμονή τερματισμού} copy(indata, outdata); save_count := incount; process_data; {επεξεργασία εισόδου (x)} start_output; {προβολή εισόδου (x)} while not outdone do {keeptesting}; end; {while} end; {concurrent I/O, version 1} 14

Διάγραμμα χρονισμού (1) program display output 1 output 2 keyboard input 1 input 2 compute compute 1 compute 2 (a) Version 1 time 15

Συγχρονική Ε/Ε (6) {MAIN - version 2} {concurrent I/O} ioport_command := kbd_and_dsp_interrupts_disable; initialize_hardware; connect_interrupt_vectors(kbd, dsp); while true do start_input; {ενεργοποίηση εισόδου (x)} while not indone do {keeptesting};{αναμονή τερματισμού} copy(indata, outdata); save_count := in count; start_output; {προβολή εισόδου (x), και} process_data; {ταυτόχρονη επεξεργασία της} while not outdone do {keeptesting}; end; {while} end; {concurrent I/O, version 2} 16

Διάγραμμα χρονισμού (2) program display output 1 output 2 output 3 keyboard input 1 input 2 input 3 compute compute 1 compute 2 compute 3 (b) Version 2 time 17

Συγχρονική Ε/Ε (7) {MAIN - version 3} {concurrent I/O} ioport_command := kbd_and_dsp_interrupts_disable; initialize_hardware; connect_interrupt_vectors(kbd, dsp); outdone := true; start_input; {ενεργοποίηση εισόδου (1)} while true do while not indone do {keeptesting};{αναμονή εισόδου (x)} copy(indata, save_data); {αποθήκευση εισόδου (x)} save_count := incount; start_input; {ενεργοποίηση εισόδου (x+1)} while not outdone do {keeptesting};{αναμονή εξόδου (x-1)} copy(save_data, outdata); {είσοδος (x) στην έξοδο} start_output; {προβολή εισόδου (x), και} process_data {ταυτόχρονη επεξεργασία της} end; {while} end; {concurrent I/O, version 3} 18

Διάγραμμα χρονισμού (3) program display output 1 output 2 output 3 keyboard input 1 input 2 input 3 input 3 compute compute 1 compute 2 compute 4 (c) Version 3 time 19

Τέλος Ενότητας