ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΕΡΓΑΣΙΕΣ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΕΡΓΑΣΙΕΣ"

Transcript

1 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διάλεξη 2 ΔΙΕΡΓΑΣΙΕΣ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση την παρακάτω βιβλιογραφία που αποτελεί και το βασικό εγχειρίδιο αναφοράς. Βιβλιογραφία: Σύγχρονα Λειτουργικά Συστήματα, A.S. Tanenbaum, 4 η έκδ., Κλειδάριθμος, Λειτουργικά Συστήματα, W. Stallings, 9 η έκδ., Τζιόλα, Λειτουργικά Συστήματα, A. Silberschatz, P. Galvin, G. Gagne, 7 η εκδ., ΙΩΝ, 2007.

2 Στόχοι Η διάλεξη αυτή έχει ως στόχο να εισάγει τον σπουδαστή στις διεργασίες και τον τρόπο διαχείρισής τους σε ένα υπολογιστικό σύστημα, και ειδικότερα: να γνωρίσει τη δομή, τα μοντέλα και τις καταστάσεις των διεργασιών να γνωρίσει τις εντολές δημιουργίας και διαχείρισης διεργασιών να είναι σε θέση να εφαρμόσει τις παραπάνω μεθόδους δημιουργίας και διαχείρισης διεργασιών για να επιλύσει προβλήματα. 2

3 Ενότητες Η έννοια της διεργασίας Καταστάσεις διεργασίας Εναλλαγή περιβάλλοντος λειτουργίας Πίνακας ελέγχου διεργασιών Δημιουργία και τερματισμός διεργασίας Παραδείγματα Ερωτήσεις 3

4 Η έννοια της διεργασίας Διεργασία (Process) ο μηχανισμός εκτέλεσης ενός προγράμματος Η διαδικασία (ενεργή οντότητα) περιέχει ένα σύνολο από συσχετισμένους με αυτή πόρους προκειμένου να εκτελεστεί, το πρόγραμμα (παθητική οντότητα). Το ίδιο πρόγραμμα μπορεί να εκτελείται από πολλές διεργασίες (με διαφορετικές ή και ίδιες ακολουθίες εκτέλεσης των εντολών). Το λειτουργικό μπορεί να εκτελεί πολλές διεργασίες «παράλληλα» μεταξύ τους. A process can be defined as: a program in execution an instance of a running program the entity that can be assigned to, and executed on, a processor a unit of activity characterized by a single sequential thread of execution, a current state, and an associated set of system resources 4

5 Η διεργασία αποτελεί ένα στιγμιότυπο της εκτέλεσης ενός προγράμματος (instance of a program in execution). (compiled & linked) Για παράδειγμα ένα σε ένα σύστημα όπου 20 χρήστες εκτελούν από κοινού ένα κειμενογράφο (π.χ. vi), τότε έχουμε 20 ξεχωριστές διεργασίες οι οποίες μοιράζονται τον ίδιο εκτελέσιμο κώδικα (share the same executable code).

6 Χώρος διευθύνσεων της διεργασίας Κάθε διεργασία έχει το δικό της χώρο διευθύνσεων. Ένας χώρος διευθύνσεων (address space) μιας διεργασίας είναι το σύνολο των εικονικών διευθύνσεων το οποίο μπορεί να χρησιμοποιήσει (μέσω των οποίων απευθύνεται στη φυσική μνήμη). Τυπικά αποτελείται από τα ακόλουθα τμήματα: environment: αποθηκεύονται μεταβλητές περιβάλλοντος και παράμετροι γραμμής εντολών stack: αποθηκεύονται μεταβλητές συναρτήσεων, επιστρεφόμενες τιμές και προσωρινές μεταβλητές heap: χρησιμοποιείται για επιπλέον χώρο διευθύνσεων αν απαιτηθεί κατά την εκτέλεση της διεργασίας (δυναμική δέσμευση μνήμης) data: για αρχικοποιημένες στατικές μεταβλητές και σταθερές bss: για μη αρχικοποιημένες στατικές και σφαιρικές μεταβλητές text/code: όπου αποθηκεύεται ο κώδικας (σε εκτελέσιμη μορφή, binary code).

7 Οι διεργασίες μέσω της εικονικής μνήμης (virtual to physical memory mapping) μπορούν να μοιράζονται το ίδιο φυσικό μπλοκ μνήμης (δηλ. πλαίσια σελίδων στη φυσική μνήμη), π.χ. τις ίδιες βιβλιοθήκες (shared libraries) και το ίδιο τμήμα του κώδικα (code/text), Εξαλείφεται έτσι η ανάγκη δημιουργίας αντιγράφων όλων των σελίδων των δεδομένων της αρχικής (γονικής) διεργασίας. Σημείωση: Περισσότερες σχετικές πληροφορίες για το χώρο διευθύνσεων των εκτελέσιμων και το τι μοιράζονται ως διεργασίες, παρατίθενται στο τέλος των διαφανειών ως ενημερωτικές διαφάνειες. Η εικονική ή ιδεατή μνήμη (virtual memory) θα μελετηθεί σε σχετική διάλεξη που ακολουθεί. 7

8 Τυπική μορφή των τμημάτων του εκτελέσιμου μιας διεργασίας στη μνήμη On 32-bit Linux systems, the code segment starts at address 0x Το text segment εμπεριέχει τον κώδικα σε εκτελέσιμη μορφή (binary image) της διεργασίας. Το data segment εμπεριέχει αρχικοποιημένες στατικές (static) μεταβλητές. Το bss segment εμπεριέχει μη αρχικοποιημένες στατικές (static) και σφαιρικές (global) μεταβλητές. Τη στοίβα (stack segment) για τα ορίσματα των συναρτήσεων, επιστροφές και τοπικές (automatic/local) μεταβλητές. Το σωρό (heap segment) (ελεύθερος χώρος) για τη δυναμική δέσμευση μνήμης. Επιπλέον, ένα τμήμα environment (συνήθως unmapped to user code) εμπεριέχει μεταβλητές περιβάλλοντος (environment variables) και ορίσματα γραμμής εντολών (command line arguments). Το μέγεθος των τμημάτων text+data+bss μιας διεργασίας προσδιορίζεται κατά τη μεταγλώττιση και παραμένει σταθερό κατά την εκτέλεση. Όμως μια διεργασία μπορεί κατά την εκτέλεση δυναμικά να επεκταθεί στο ελεύθερο χώρο (εικονικής) μνήμης του σωρού (π.χ. χρήση της malloc() στη C). Πηγή: Ενημερωτική προαιρετική διαφάνεια

9 Καταστάσεις διεργασίας new: η διεργασία δημιουργείται running: η διεργασία εκτελείται σε κάποιον επεξεργαστή waiting ή blocked: η διεργασία αναμένει (απενεργοποιημένη) κάποιο συμβάν ή πόρο ready: η διεργασία αναμένει (ready queue ή run queue) να τις δοθεί (από το ΛΣ) κάποιος επεξεργαστής για την συνέχιση της εκτέλεσης της terminated: η διεργασία έχει ολοκληρώσει την εκτέλεσή της 9

10 10

11 Πηγή εικόνας: 11

12 Αλλαγές κατάστασης διεργασίας running -> waiting: Μια διεργασία αλλάζει την κατάσταση της από running σε waiting συνήθως όταν ζητά να τις δοθεί κάποιος πόρος (π.χ. Ι/Ο) ή επιθυμεί να χρησιμοποιήσει κάποιον πόρο που δεν είναι διαθέσιμος και πρέπει να ελευθερωθεί. waiting -> ready: Μια διεργασία αλλάζει την κατάσταση της από waiting σε ready όταν τις δοθεί ο πόρος που ζητήθηκε ή συμβεί το γεγονός (σήμα) που περίμενε. running -> ready: Μια διεργασία αλλάζει την κατάσταση της από running σε ready συνήθως όταν η εκτέλεση της διακόπτεται από διακοπή υλικού (hardware interrupt) ή άλλη κλήση συστήματος (software trap). ready -> running: Μια διεργασία αλλάζει την κατάσταση της από ready σε running όταν τις δοθεί επεξεργαστής για να συνεχίσει την εκτέλεση της. 12

13 When none of the processes in main memory is in the Ready state, the OS swaps one of the blocked processes out on to disk into a suspend queue. Πηγή εικόνας: 13

14 Εναλλαγή περιβάλλοντος λειτουργίας (Context switch) Όταν η ΚΜΕ ανατίθεται σε μια νέα διεργασία για να συνεχίσει την εκτέλεση της, το ΛΣ πρέπει να σώσει την κατάσταση της τρέχουσας διεργασίας (η οποία εκτελείται εκείνη την στιγμή) και να φορτώσει την κατάσταση της νέας διεργασίας προς εκτέλεση. Αυτή η διαδικασία ονομάζεται εναλλαγή περιβάλλοντος λειτουργίας (context switch). O χρόνος που απαιτείται για την εκτέλεση της λειτουργίας αυτής είναι φόρτος (overhead) για το σύστημα, καθώς όσο ασχολείται με την εναλλαγή δεν εκτελεί επεξεργασίες για την εξυπηρέτηση των διεργασιών των χρηστών. Ο χρόνος καθυστέρησης για την εναλλαγή εξαρτάται: (α) από την πολυπλοκότητα του ΛΣ, και (β) την υποστήριξη από το υλικό του ΥΣ (κυρίως από τον επεξεργαστή και την μονάδα διαχείρισης μνήμης). 14

15 15

16 Η εναλλαγή περιβάλλοντος λειτουργίας γίνεται μέσω ειδικής κλήσης συστήματος, η οποία μπορεί να ενεργοποιηθεί είτε μέσα από κώδικα χειρισμού διακοπών (interrupt handler) είτε μέσα από άλλες συναρτήσεις βιβλιοθήκης ή κλήσεις συστήματος. Η ειδική αυτή κλήση εκτελείται στον χώρο μνήμης του συστήματος (kernel space) και πρώτα αποθηκεύει την κατάσταση της τρέχουσας διεργασίας (Α) στον πίνακα ελέγχου της διεργασίας αυτής στη μνήμη (user space), και στη συνέχεια φορτώνει την κατάσταση της νέας διεργασίας (Β) προς εκτέλεση χρησιμοποιώντας τις πληροφορίες που έχουν αποθηκευτεί στον αντίστοιχο πίνακα ελέγχου αυτής. Κατά την διάρκεια της εναλλαγής γίνεται και αλλαγή από την στοίβα συστήματος στην στοίβα της νέας διεργασίας, με αποτέλεσμα όταν επιστρέφει η κλήση συστήματος να συνεχίσει η εκτέλεση του κώδικα της νέας διεργασίας. 16

17 Πίνακας ελέγχου διεργασίας (Process Control Block, PCB) Περιέχει βασικές πληροφορίες που αφορούν την κάθε διεργασία που έχει φορτωθεί στο σύστημα (μνήμη) προς εκτέλεση. Κατάσταση διεργασίας (process state) (pid το αναγνωριστικό της διεργασίας). Μετρητής εντολών προγράμματος (program counter) Καταχωρητές της ΚΜΕ (CPU registers) Πληροφορίες για τον χρονοπρογραμματισμό της ΚΜΕ (CPU scheduling information) Πληροφορίες διαχείρισης μνήμης (memory-management information) Συλλογή στοιχείων διαχείρισης (accounting information) Πληροφορίες κατάστασης εισόδου/εξόδου (Ι/Ο status information) 17

18 Δημιουργία διεργασίας Όταν μια νέα διεργασία δημιουργείται είναι αντίγραφο της γονικής. Αποτελεί (λογικό) αντίγραφο του (εικονικού) χώρου διευθύνσεων της γονικής διεργασίας και εκτελεί τον ίδιο κώδικα με τη γονική, ξεκινώντας από την επόμενη εντολή που ακολουθεί την εντολή συστήματος που τη δημιουργεί, π.χ. στο Linux μετά τη fork(). Η γονική-διεργασία (αρχική) και η διεργασία-παιδί (αντίγραφο) μοιράζονται τον ίδιο κώδικα του προγράμματος (δηλ. τις ίδιες εικονικές σελίδες στη μνήμη που περιέχουν το τμήμα code/text). Το τμήμα του κώδικα code/text φορτώνεται μια φορά ως read-only έτσι ώστε να μοιράζεται με ασφάλεια (safely shared). Όμως διατηρούν διαφορετικά αντίγραφα των δεδομένων και στοίβας (δηλ. τα τμήματα Data, Stack και Heap), και έτσι οι οποιεσδήποτε αλλαγές σε αυτά αφορούν πλέον διαφορετικά δεδομένα και δεν έχουν καμία σχέση μεταξύ τους. Οι πατρικές-διεργασίες (parent processes) δημιουργούν διεργασίες-παιδιά (child processes), οι οποίες με τη σειρά τους μπορούν να δημιουργούν άλλες διεργασίες, δημιουργώντας έτσι ένα δένδρο διεργασιών (nested processes). 18

19 Σχηματική αναπαράσταση δημιουργίας διεργασιών στο Linux με χρήση της fork(). 19

20 Πηγή εικόνας: 20

21 Όταν μια νέα διεργασία δημιουργείται ως αντίγραφο της γονικής, το αντίγραφο του τμήματος των δεδομένων (δηλ. οι εικονικές σελίδες στη μνήμη που περιέχουν το τμήμα των δεδομένων Data) στην πραγματικότητα δεν πραγματοποιείται αμέσως σε άλλο χώρο διευθύνσεων στη μνήμη. Ο λόγος είναι ότι η νέα διεργασία-παιδί συνήθως δεν τροποποιεί όλους τους πόρους (δεδομένα) που κληρονομεί από τον γονέα, και επιπλέον συχνά εκτελεί μια exec() η οποία και απαλείφει τον χώρο διευθύνσεών της (και ουσιαστικά και την ίδια). Οπότε αυτή η διαδικασία αντιγραφής θα είχε απλώς αποτελέσει άσκοπο φόρτο για το σύστημα. Συνήθως χρησιμοποιείται ένας μηχανισμός που αναφέρεται ως Copy On Write με τον οποίο τόσο η γονική διεργασία όσο και η διεργασία-παιδί επιτρέπεται να προσπελάζουν για ανάγνωση τις ίδιες σελίδες δεδομένων στη φυσική μνήμη, αλλά όταν οποιαδήποτε από τις δυο διεργασίες προσπαθήσει να γράψει σε μια από αυτές, τότε μόνο το σύστημα αντιγράφει τα περιεχόμενά της σε μια νέα φυσική σελίδα στη μνήμη. Copy On Write: virtual memory pages in both processes may refer to the same pages of physical memory until one of them writes to such a page: then it is copied. 21

22 Πριν την τροποποίηση της σελίδας δεδομένων C από το process 1. Μετά την τροποποίηση της σελίδας δεδομένων C από το process 1. Πηγή:

23 Ο διαμοιρασμός των πόρων μπορεί να έχει ως εξής: Οι «γονείς και τα παιδιά» μοιράζονται όλους τους πόρους, ή Τα παιδιά παίρνουν υποσύνολο των πόρων, ή Οι πατρικές και οι θυγατρικές δεν μοιράζονται κανέναν πόρο Parent process is the original, creating, process Child process is the new process 23

24 Χώρος Διευθύνσεων: Η νέα διεργασία-παιδί αποτελεί αντίγραφο της διεργασίας-γονέα σε διαφορετικό χώρο διευθύνσεων (διαμοιραζόμενες το τμήμα του κώδικα, αλλά με διαφορετικό χώρο για τα δεδομένα και για τη στοίβα). Η νέα διεργασία-παιδί μοιράζεται το ίδιο τμήμα του κώδικα εκτέλεσης (code/text) αλλά δεσμεύει διαφορετικό χώρο διευθύνσεων στη μνήμη για τα δεδομένα και για τη στοίβα της (data & stack). 24

25 Εκτέλεση διεργασίας Οι πατρικές και οι θυγατρικές διεργασίες μπορούν να εκτελούνται ταυτόχρονα. Οι πατρικές-διεργασίες συνήθως περιμένουν (wait) τον τερματισμό των παιδιών. Οι διεργασίες-παιδιά μπορούν να εκτελούνται ταυτόχρονα* ή παράλληλα**. Οι νέες διεργασίες-παιδιά συνήθως φορτώνουν και εκτελούν (exec) κάποιο πρόγραμμα. Η διαφοροποίηση στο περιεχόμενο της εκτέλεσής τους, μεταξύ των διεργασιώνγονέων και των διεργασιών-παιδιών, επιτυγχάνεται με τη χρήση της if για τον έλεγχο του κωδικού pid της νεας διεργασίας που επιστρέφει η fork(). fork() (*) Ταυτόχρονα: εναλλάσονται κατά την εκτέλεσή τους στο χρόνο (π.χ. η υπερνημάτωση σε ένα πυρήνα) (**) Παράλληλα: εκτελούνται παράλληλα στο χρόνο (π.χ. σε διαφορετικούς πυρήνες/επεξεργαστές)

26 Κλήσεις συστήματος για τη διαχείριση διεργασιών στο Unix Με την κλήση συστήματος fork() δημιουργούνται νέες διεργασίες. Με την κλήση συστήματος exec() καλείται και εκτελείται μια άλλη διεργασία. Προσοχή: γίνεται αντικατάσταση του χώρου μνήμης της τρέχουσας διεργασίας (που την καλεί) με τη νέα διεργασία που καλείται. Με την κλήση συστήματος wait() η διεργασία-γονέας περιμένει (blocks) έως ότου κάποια από τις διεργασίεςπαιδιά τερματίζει exits (ή λαμβάνει κάποιο signal). Η wait() επιστρέφει το pid της διεργασίας που ολοκληρώθηκε. Με την κλήση συστήματος clone() δημιουργούνται νέα νήματα εκτέλεσης συστήματος (kernel threads of control). 26 The wait() is one of the two techniques used to monitor child processes: along with the SIGCHLD signal.

27 Παραδείγματα pid - ο κωδικός της διεργασίας (Process ID) By default, the maximum PID number is In 64-bit architectures, can be up to Η fork() επιστρέφει: την τιμή του νέου pid στην αρχική διεργασία-γονέα, και την τιμή 0 στη νέα διεργασία-παιδί. Η εκτέλεση της κλήσης fork() σε μια διεργασία (γονέας) δημιουργεί μια νέα πανομοιότυπη διεργασία (παιδί), σε διαφορετικό (εικονικό) χώρο διευθύνσεων (virtual address space), διαμοιραζόμενες το τμήμα του κώδικα (text/code), αλλά με διαφορετικό χώρο για το αντίγραφο των δεδομένων και για τη στοίβα. Συνεπώς, τυχόν αλλαγές στις παραμέτρους σε οποιαδήποτε από τις δύο διεργασίες δεν επηρεάζουν τις παραμέτρους στην άλλη. 27 pid 768 pid 767

28 Πηγή εικόνας: 28

29 Παράδειγμα κώδικα δημιουργίας διεργασίας με την κλήση fork() Η νέα διεργασία (διεργασία-παιδί) που δημιουργείται με την fork() αποτελεί αντίγραφο της γονικής διεργασίας (διεργασία-γονέας). Με τη χρήση της if για τον έλεγχο του pid (που επιστρέφει η fork()) επιτυγχάνεται η διαφοροποίηση στο περιεχόμενο της εκτέλεσής τους. 29

30 child is created here t 0 Η αρχική διεργασία γονέας συνεχίζει εδώ Η νέα διεργασία παιδί ξεκινά εδώ Πηγή εικόνας: 30

31 parent continues execution here Parent Process t 0 t1 Πηγή εικόνας: 31

32 Παράδειγμα δημιουργίας ενός απλού shell Ο φλοιός (shell) ή διερμηνέας εντολών (console/terminal) χρησιμοποιεί τη fork() για να δημιουργήσει μια διεργασία-παιδί που θα εκτελεί τις εντολές που δέχεται. Για κάθε εντολή, π.χ. ls, ο shell δημιουργεί με την fork() μια νέα διεργασία-παιδί. Στη συνέχεια, αυτή η νέα-διεργασία εκτελεί με χρήση της exec() την εντολή που δόθηκε, π.χ. την ls, αντικαθιστώντας τον εαυτό της στη μνήμη με την ls. Unix operating systems rely heavily on process creation to satisfy user requests. For example, the shell creates a new process that executes another copy of the shell whenever the user enters a command. 32

33 Ενδεικτικός συμβολικός κώδικας δημιουργίας ενός απλού shell Ερώτηση: στο παράδειγμα αυτό για ποιο λόγο είναι απαραίτητη η χρήση της fork(); 33

34 Παράδειγμα εκτέλεσης της εντολής ls Η διεργασία γονέας έχει PID=501 και η διεργασία παιδί έχει PID=

35 Τερματισμός διεργασίας Διακρίνονται οι ακόλουθες τρεις περιπτώσεις: 1. Η διεργασία εκτελεί την τελευταία εντολή και καλεί το ΛΣ (exit) Μεταφορά πληροφοριών προς την διεργασία-γονέα (μέσω wait). Οι πόροι της διεργασίας επανέρχονται στη διάθεση του ΛΣ. 2. Η γονική διεργασία μπορεί να διακόψει τη θυγατρική (abort) όταν: Η θυγατρική έχει υπερβεί τους πόρους που της είχαν ανατεθεί. Η εργασία που ανατέθηκε στη διεργασία-παιδί δεν χρειάζεται άλλο. 3. Η διεργασία-γονέας τερματίζει την εκτέλεση της, τότε σε αυτή την περίπτωση: To ΛΣ δεν επιτρέπει στη διεργασία-παιδί να συνεχίσει. Ενδέχεται να συμβούν διαδοχικοί τερματισμοί (για όλα τα παιδιά). 35

36 Δένδρο διεργασιών στο Unix Μια διεργασία που εκτελείται αλλά ο γονέας της έχει τερματιστεί αποτελεί orphan process την οποία αναλαμβάνει και διαχειρίζεται τον τερματισμό της η διεργασία init (με process id 1) του συστήματος. Σε περίπτωση που κάποια διεργασία-παιδί τερματίσει πριν ακόμα η διεργασία-γονέας εκτελέσει την wait(), τότε το σύστημα την μετατρέπει σε zombie process, δηλ. απελευθερώνει σχεδόν όλους τους πόρους που κατείχε, και ολοκληρωτικά μόλις η διεργασία-γονέας εκτελέσει την wait() (για να πληροφορηθεί πως τερμάτισε η διεργασία-παιδί). 36

37 Πηγή εικόνας: 37

38 Παραδείγματα διεργασιών Εμφάνιση όλων των διεργασιών στο linux: ps -ef 38

39 Status code (STAT) Description Πηγή: 39

40 Παράδειγμα δημιουργίας νέας διεργασίας στο οποίο η αρχική διεργασίαγονέας περιμένει τη νέα διεργασία-παιδί να τερματίσει. #include <stdio.h> main(){ int pid, status, chpid; pid = fork(); if (pid!=0) /* ΚΩΔΙΚΑΣ ΔΙΕΡΓΑΣΙΑΣ ΓΟΝΕΑ */ { printf( Διεργασία γονέας με PID %d και PPID %d\n,getpid(),getppid()); chpid=wait(&status); /* Επιστρέφει το PID της διεργασίας παιδί που τερματίζεται και τοποθετεί ένα κωδικό κατάστασης τερματισμού στη status*/ printf( Η διεργασία-παιδί με PID %d τερμάτισε με κωδικό εξόδου\n,pid,status); } else /* ΚΩΔΙΚΑΣ ΔΙΕΡΓΑΣΙΑΣ ΠΑΙΔΙ */ { printf( Διεργασία παιδί με PID %d και PPID %d\n,getpid(), getppid()); exit(42); } printf( Η διεργασία με PID %d τερματίζει \n,getpid()); } 40

41 Μεταγλώττιση & διασύνδεση Η μεταγλώττιση (compiling) ενός προγράμματος (σε CPU/machine-specific instructions & data specifications), και ουσιαστικά στη συνέχεια η διασύνδεση (linking) των διαφόρων object files & libraries, δημιουργεί το εκτελέσιμο αρχείο (executable binary) (π.χ. στο Linux στη μορφή ELF, Executable and Linking Format*), το οποίο εμπεριέχει: σε ένα τμήμα text/code όλες τις εντολές (instructions), και σε ένα άλλο τμήμα τα δεδομένα, το οποίο διαχωρίζεται σε δυο επιμέρους τμήματα που ονομάζονται data, για τα αρχικοποιημένα στατικά δεδομένα (initialized static data & literal constants), και bss, για τα μη αρχικοποιημένα (uninitialized static data). (*) Το αρχείο ELF εμπεριέχει όλες τις απαραίτητες πληροφορίες για τη φόρτωση του εκτελέσιμου κώδικα και τα σχετικά δεδομένα του προγράμματος στην (εικονική) μνήμη της διεργασίας. Φόρτωση & εκτέλεση Κατά την εκτέλεση, τα τμήματα του κώδικα και των δεδομένων φορτώνονται (loading) σε ξεχωριστούς χώρους διευθύνσεων της (εικονικής) μνήμης. Συνήθως ο κώδικας (text/code) δεσμεύει τις χαμηλότερες διευθύνσεις με τα τμήματα δεδομένων (data, bss) και τη στοίβα (stack & heap) σε υψηλότερες θέσεις, με τα κατάλληλα δικαιώματα (π.χ. το τμήμα του κώδικα είναι read-execute, ενώ τα τμήματα των δεδομένων είναι read-write). 41 Ενημερωτική προαιρετική διαφάνεια

42 Σχηματική αναπαράσταση των διαδικασιών δημιουργίας και φόρτωσης του εκτελέσιμου Τα εκτελέσιμα αρχεία (executable image) δεν είναι αναγκαίο να φορτώνονται εξολοκλήρου στη μνήμη, παρά μόνο όποτε απαιτούνται από τη διεργασία (demand loading/paging). Πηγή εικόνας: 42 Ενημερωτική προαιρετική διαφάνεια Με την τεχνική αυτή η εικονική μνήμη (σελίδες) φορτώνεται στη φυσική μνήμη (πλαίσια σελίδων), μόνο όταν η διεργασία επιχειρεί να τη χρησιμοποιήσει.

43 Παράδειγμα Π.χ. στο Linux, όταν φορτώνει το ELF (executable image) στον εικονικό χώρο διευθύνσεων της διεργασίας (process's virtual address space), στην πραγματικότητα δεν το φορτώνει στη φυσική μνήμη (π.χ. τα τμήματα code & data), αλλά προσδιορίζει στον πυρήνα τις απαραίτητες δομές που περιγράφουν τη διεργασία, όπως τις δομές mm_struct, vm_area_struct και τους πίνακες σελίδων της (page tables), με τους οποίους γίνεται η αντιστοίχισή του (χαρτογράφησή του) στη φυσική μνήμη (virtual to physical memory mapping), όπου και δηλώνει ότι υφίσταται αλλά δεν έχει φορτωθεί ακόμα. Όταν η διεργασία εκτελείται και κάνει αναφορές (μέσα από την εικονική μνήμη) στον κώδικα και τα δεδομένα της, τότε εξαναγκάζεται (προκύπτουν page faults) να τα φορτώσει στη φυσική μνήμη. Φυσικά τμήματα του κώδικα που δεν χρησιμοποιηθούν δεν θα φορτωθούν ποτέ στη φυσική μνήμη. Τα περιεχόμενα του εικονικού χώρου διευθύνσεων της κάθε διεργασίας περιγράφονται από τη δομή mm_struct της δομής task_struct. Πηγή: 43 Ενημερωτική προαιρετική διαφάνεια

44 Ο εικονικός χώρος διευθύνσεων μιας διεργασίας και οι δομές του πυρήνα που την διαχειρίζονται The contents of each process's virtual memory is described by a mm_struct data structure pointed at from its task_struct. The process's mm_struct data structure also contains information about the loaded executable image and a pointer to the process's page tables. It contains pointers to a list of vm_area_struct data structures, each representing an area of virtual memory within this process. This linked list is in ascending virtual memory order. When a process allocates virtual memory, Linux does not actually reserve physical memory for the process. Instead, it describes the virtual memory by creating a new vm_area_struct data structure. This is linked into the process's list of virtual memory. When the process attempts to write to a virtual address within that new virtual memory region then the system will page fault. The processor will attempt to decode the virtual address, but as there are no Page Table Entries for any of this memory, it will give up and raise a page fault exception, leaving the Linux kernel to fix things up. Linux looks to see if the virtual address referenced is in the current process's virtual address space. If it is, Linux creates the appropriate PTEs and allocates a physical page of memory for this process. The code or data may need to be brought into that physical page from the filesystem or from the swap disk. The process can then be restarted at the instruction that caused the page fault and, this time as the memory physically exists, it may continue. 44 Ενημερωτική προαιρετική διαφάνεια

45 Παράδειγμα των τμημάτων του εκτελέσιμου μιας διεργασίας στη μνήμη Πηγή εικόνας: 45 Ενημερωτική προαιρετική διαφάνεια

46 Τυπική μορφή του εκτελέσιμου ELF Οι πίνακες (header tables) στο εκτελέσιμο (executable image) περιγράφουν πως θα γίνει η τοποθέτησή του στην (εικονική) μνήμη της διεργασίας. Το τμήμα Segment/Program header περιγράφει τα segments που χρησιμοποιούνται κατά την εκτέλεση (at run time). Επιπλέον περιλαμβάνει το σημείο εκκίνησης της εκτέλεσης του προγράμματος (διεύθυνση της πρώτης εντολής προς εκτέλεση, στο τμήμα.init). Το τμήμα Section header υποδεικνύει το σύνολο των sections του εκτελέσιμου (binary). Πηγή: 46 Ενημερωτική προαιρετική διαφάνεια

47 Πηγή: 47 Ενημερωτική προαιρετική διαφάνεια

48 Τυπική μορφή των τμημάτων του εκτελέσιμου μιας διεργασίας στη μνήμη On 32-bit Linux systems, the code segment starts at address 0x Το text segment εμπεριέχει τον κώδικα σε εκτελέσιμη μορφή (binary image) της διεργασίας. Το data segment εμπεριέχει αρχικοποιημένες στατικές (static) μεταβλητές. Το bss segment εμπεριέχει μη αρχικοποιημένες στατικές (static) και σφαιρικές (global) μεταβλητές. Τη στοίβα (stack segment) για τα ορίσματα των συναρτήσεων, επιστροφές και τοπικές (automatic/local) μεταβλητές. Το σωρό (heap segment) (ελεύθερος χώρος) για τη δυναμική δέσμευση μνήμης. Επιπλέον, ένα τμήμα environment (συνήθως unmapped to user code) εμπεριέχει μεταβλητές περιβάλλοντος (environment variables) και ορίσματα γραμμής εντολών (command line arguments). Το μέγεθος των τμημάτων text+data+bss μιας διεργασίας προσδιορίζεται κατά τη μεταγλώττιση και παραμένει σταθερό κατά την εκτέλεση. Όμως μια διεργασία μπορεί κατά την εκτέλεση δυναμικά να επεκταθεί στο ελεύθερο χώρο (εικονικής) μνήμης του σωρού (π.χ. χρήση της malloc() στη C). Πηγή: Ενημερωτική προαιρετική διαφάνεια

49 Παράδειγμα Πηγή: 49 Ενημερωτική προαιρετική διαφάνεια

50 50 Ενημερωτική προαιρετική διαφάνεια

51 Παράδειγμα On 32-bit Linux systems, the code segment starts at address 0x , while on 64-bit at 0x The data segment follows at the next 4 KB aligned address. The run-time heap follows on the first 4 KB aligned address past the read/write segment and grows up via calls to the malloc library. "Text Segment" "Data Segment" "BSS Segment" Πηγή: 51 Ενημερωτική προαιρετική διαφάνεια

52 Παράδειγμα Πηγή εικόνας: 52 Ενημερωτική προαιρετική διαφάνεια

53 Πηγή: Ενημερωτική προαιρετική διαφάνεια

54 Shared libraries Linux processes use libraries of commonly useful code, for example file handling routines. It does not make sense that each process has its own copy of the library, Linux uses shared libraries that can be used by several running processes at the same time. The code and the data from these shared libraries must be linked into this process's virtual address space and also into the virtual address space of the other processes sharing the library. A shared library is an object module that, at run time, can be loaded at an arbitrary memory address and linked with a program in memory. This process is known as dynamic linking and is performed by a program called a dynamic linker. Shared libraries are shared in two different ways. First, in any given file system, there is exactly one.so file for a particular library. Second, a single copy of the.text section of a shared library in memory can be shared by different running processes. Linking can be performed at compile time by static linkers, and at load time and run time by dynamic linkers. Linkers manipulate binary files called object files, which come in three different forms: relocatable, executable, and shared. Relocatable object files are combined by static linkers into an executable object file that can be loaded into memory and executed. Shared object files (shared libraries) are linked and loaded by dynamic linkers at run time, either implicitly when the calling program is loaded and begins executing, or on demand, when the program calls functions from the dlopen library. Πηγή: Πηγή: 54 Ενημερωτική προαιρετική διαφάνεια

55 So, a dynamically linked image, does not contain all of the code and data required to run. Some of it is held in shared libraries that are linked into the image at run time. The ELF shared library's tables are also used by the dynamic linker when the shared library is linked into the image at run time. Linux uses several dynamic linkers, ld.so.1, libc.so.1 and ldlinux.so.1, all to be found in /lib. The libraries contain commonly used code such as language subroutines. Without dynamic linking, all programs would need their own copy of the these libraries and would need far more disk space and virtual memory. In dynamic linking, information is included in the ELF image's tables for every library routine referenced. The information indicates to the dynamic linker how to locate the library routine and link it into the program's address space. 55 Ενημερωτική προαιρετική διαφάνεια

56 Ταυτόχρονες συντρέχουσες διεργασίες (Simultaneous concurrent processes) Οι κλήσεις (ρουτίνες) του Λ.Σ. θα πρέπει να μπορούν να ανακαλούνται προς εκτέλεση (reentrant*), δηλ. να επιτρέπουν στους επεξεργαστές (ουσιαστικά τα νήματα) να εκτελούν ταυτόχρονα τον κώδικα της ίδιας ροής εντολών, χωρίς να προκαλούνται αδιέξοδα ή άλλες μη έγκυρες λειτουργίες. (*) Reentrant code a computer program or routine that is written so that the same copy in memory can be shared by multiple users (actors/threads). The program can be interrupted to give another user a turn to use the program. It can be interrupted in the middle of its execution (called by another actor/thread), before its previous invocation complete execution, and then be safely called again ("re-entered") and complete correctly its execution. That is, it is possible to re-enter the code while it's already running and still produce correct results. Reentrant code means that a program can have more than one thread executing concurrently. 56 Ενημερωτική προαιρετική διαφάνεια

57 Ερωτήσεις Περιγράψτε τι είναι η διεργασία (process) και τις καταστάσεις που μπορεί να βρεθεί μια διεργασία. Δίνονται οι ακόλουθες περιπτώσεις αλλαγών στις καταστάσεις μιας διεργασίας: (i) running -> waiting, (ii) running -> ready, (iii) waiting -> ready, (iv) waiting -> running, (v) ready -> running Αιτιολογείστε πότε συμβαίνουν (αν συμβαίνουν) οι αλλαγές στις καταστάσεις της διεργασίας για τις παραπάνω περιπτώσεις. Περιγράψτε τι γνωρίζετε για την εναλλαγή περιβάλλοντος λειτουργίας (context switch). Περιγράψτε το περιεχόμενο και τη χρησιμότητα του πίνακα ελέγχου διεργασίας (PCB - Process Control Block). Περιγράψτε τι γνωρίζετε για τη δημιουργία, εκτέλεση και τερματισμό των διεργασιών. Η εκτέλεση της κλήσης fork σε μια διεργασία (γονική) δημιουργεί μια νέα διεργασία (θυγατρική). Εξηγήστε αν οι τυχόν επερχόμενες αλλαγές στις παραμέτρους σε μια από τις δύο διεργασίες επηρεάζουν τις παραμέτρους στην άλλη και γιατί; 57

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διάλεξη 7 ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση την παρακάτω βιβλιογραφία

Διαβάστε περισσότερα

Περιγραφή και Έλεγχος ιεργασιών

Περιγραφή και Έλεγχος ιεργασιών Περιγραφή και Έλεγχος ιεργασιών Περίληψη ιεργασίες Πολυπρογραµµατισµός Καταστάσεις ιεργασιών Περιγραφή διεργασιών στο ΛΣ Έλεγχος διεργασιών Το ΛΣ Linux 1 ιεργασία (process) ιεργασία είναι κάθε πρόγραµµα

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων

Διαβάστε περισσότερα

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες» 1. Εισαγωγή Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 3 «Διεργασίες» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας Η έννοια της διεργασίας (process) είναι θεμελιώδης για την κατανόηση του τρόπου με τον οποίο

Διαβάστε περισσότερα

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 4: Διεργασίες Πρόγραμμα Πρόγραμμα 1 Πρόγραμμα

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Περιεχόμενα ενότητας Διεργασίες Κλήσεις δημιουργίας και τερματισμού διεργασιών Επικοινωνία διεργασιών μέσω

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory) ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα είναι μικρότεροι το 1000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Διάρκεια: 3,5 ώρες Καλή

Διαβάστε περισσότερα

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΔΙΕΡΓΑΣΙΕΣ +- Με τον όρο διεργασία στο UNIX εννοούμε τη δυναμικη πράξη της

Διαβάστε περισσότερα

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1 Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας

Διαβάστε περισσότερα

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή

Διαβάστε περισσότερα

Εισαγωγικά & Βασικές Έννοιες

Εισαγωγικά & Βασικές Έννοιες Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 2β: Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής ΕΥ311-Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Εργαστήριο: Παραδείγματα δημιουργίας διεργασιών στο Linux Ένα πρόγραμμα (το στιγμιότυπο της εκτέλεσης του οποίου

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 3 : Διεργασίες Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Επικοινωνία με περιφερειακά Αρτηρία εισόδου-εξόδου, διευθύνσεις, εγγραφές αναγνώσεις Διαδικασία εξόδου έλεγχος κατάστασης περιφερειακού περίμενε

Διαβάστε περισσότερα

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1 Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας

Διαβάστε περισσότερα

Εισαγωγικά & Βασικές Έννοιες

Εισαγωγικά & Βασικές Έννοιες Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο

Διαβάστε περισσότερα

Instruction Execution Times

Instruction Execution Times 1 C Execution Times InThisAppendix... Introduction DL330 Execution Times DL330P Execution Times DL340 Execution Times C-2 Execution Times Introduction Data Registers This appendix contains several tables

Διαβάστε περισσότερα

Ε-85: Ειδικά Θέµατα Λογισµικού

Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων

Διαβάστε περισσότερα

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά. Διαστημικό εστιατόριο του (Μ)ΑστροΈκτορα Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά. Μόλις μια παρέα πελατών κάτσει σε ένα

Διαβάστε περισσότερα

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Procedures and Functions Stored procedures and functions are named blocks of code that enable you to group and organize a series of SQL and PL/SQL

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διάλεξη 1 ΕΙΣΑΓΩΓΗ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση την παρακάτω βιβλιογραφία που

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

Διαβάστε περισσότερα

Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1

Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1 Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Μονονηματική / πολυνηματική εκτέλεση Μονονηματικό μοντέλο εκτέλεσης (συμβατικό) Οι εντολές του κώδικα εκτελούνται σειριακά Ένα μοναδικό νήμα εκτέλεσης (execution

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης III Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz,

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

Διαβάστε περισσότερα

Επιτεύγµατα των Λ.Σ.

Επιτεύγµατα των Λ.Σ. Επιτεύγµατα των Λ.Σ. ιεργασίες ιαχείριση Μνήµης Ασφάλεια και προστασία δεδοµένων Χρονοπρογραµµατισµός & ιαχείρηση Πόρων οµή Συστήµατος ιεργασίες Ένα πρόγραµµα σε εκτέλεση Ένα στιγµιότυπο ενός προγράµµατος

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΗΥ321)

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 2: Διεργασίες και Νήματα Διαδικαστικά 2 Γραφτήκατε στη λίστα; Σχηματίστε ομάδες (για το project)! Στο προηγούμενο επεισόδιο 3 Τι είναι λειτουργικό; Γενιές ΛΣ Βασικές

Διαβάστε περισσότερα

Χρονοδρομολογητής Κυκλικής Επαναφοράς

Χρονοδρομολογητής Κυκλικής Επαναφοράς Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 4 η Εργαστηριακή Άσκηση: Χρονοδρομολογητής Κυκλικής Επαναφοράς Λειτουργικά Συστήματα Υπολογιστών

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Memory)

Εικονική Μνήμη (Virtual Memory) Εικονική Μνήμη (Virtual Memory) Για τη δημιουργία των διαφανειών έχει χρησιμοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne, Operating Systems Concepts,

Διαβάστε περισσότερα

Προγραμματισμός συστημάτων UNIX/POSIX. Διεργασίες (processes)

Προγραμματισμός συστημάτων UNIX/POSIX. Διεργασίες (processes) Προγραμματισμός συστημάτων UNIX/POSIX Διεργασίες (processes) Δομή αρχείου προγράμματος Πρόγραμμα (program) ονομάζεται το εκτελέσιμο αρχείο που βρίσκεται αποθηκευμένο στο δίσκο (π.χ. το a.out, ή το ls ή

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Εμβέλεια Μεταβλητών Εμβέλεια = το τμήμα του προγράμματος στο οποίο έχει ισχύ ή είναι ορατή η μεταβλητή.

Διαβάστε περισσότερα

Εικονική Μνήμη (1/2)

Εικονική Μνήμη (1/2) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Εικονική Μνήμη (1/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Εικονική Μνήμη

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 3: Διεργασίες. Καταστάσεις Διεργασιών. PCB. Νήματα. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

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

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 3: Διεργασίες Ι Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες 0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε

Διαβάστε περισσότερα

Ντίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4. Λειτουργικά Συστήματα- Φροντιστήριο 2

Ντίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4. Λειτουργικά Συστήματα- Φροντιστήριο 2 Ντίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4 Φροντιστήριο 2 1 Λειτουργικό Σύστημα -> Multitasking Κάθε διεργασία μπορεί να ειδωθεί σαν μία δέσμη στοιχείων που διατηρούνται από τον πυρήνα

Διαβάστε περισσότερα

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible. B-Trees Index files can become quite large for large main files Indices on index files are possible 3 rd -level index 2 nd -level index 1 st -level index Main file 1 The 1 st -level index consists of pairs

Διαβάστε περισσότερα

HY150a Φροντιστήριο 3 24/11/2017

HY150a Φροντιστήριο 3 24/11/2017 HY150a Φροντιστήριο 3 24/11/2017 1 Assignment 3 Overview Το πρόγραμμα ζητείται να διαβάζει μια λίστα δεδομένων που περιγράφει τα διαθέσιμα τμήματα μνήμης (blocks) ενός ΗΥ. Το πρόγραμμα ζητείται να μεταφορτώνει

Διαβάστε περισσότερα

Προγραμματισμός Ταυτόχρονος Προγραμματισμός

Προγραμματισμός Ταυτόχρονος Προγραμματισμός Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο

Διαβάστε περισσότερα

Εικονική Μνήμη (virtual memory)

Εικονική Μνήμη (virtual memory) Εικονική Μνήμη (virtual memory) Πολλά προγράμματα εκτελούνται ταυτόχρονα σε ένα υπολογιστή Η συνολική μνήμη που απαιτείται είναι μεγαλύτερη από το μέγεθος της RAM Αρχή τοπικότητας (η μνήμη χρησιμοποιείται

Διαβάστε περισσότερα

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Πρόγραμμα και εκτέλεση προγράμματος Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

Διαβάστε περισσότερα

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required) Phys460.nb 81 ψ n (t) is still the (same) eigenstate of H But for tdependent H. The answer is NO. 5.5.5. Solution for the tdependent Schrodinger s equation If we assume that at time t 0, the electron starts

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Μνήμης Βασίλης Σακκάς 6/12/2013 1 Διαχείριση Μνήμης 1 Το τμήμα του Λ/Σ που διαχειρίζεται τη μνήμη λέγεται Διαχειριστής Μνήμης (Memory manager). Καθήκον του είναι

Διαβάστε περισσότερα

Section 8.3 Trigonometric Equations

Section 8.3 Trigonometric Equations 99 Section 8. Trigonometric Equations Objective 1: Solve Equations Involving One Trigonometric Function. In this section and the next, we will exple how to solving equations involving trigonometric functions.

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Επ. Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα. Εισαγωγή Λειτουργικά Συστήματα Εισαγωγή Λειτουργικά Συστήματα Ι 4/10/2016 Περιληπτικά Στο σημερινό μάθημα θα δούμε ποια είναι η θέση του Λειτουργικού Συστήματος στην οργάνωση ενός ηλεκτρονικού υπολογιστή. Σπύρος

Διαβάστε περισσότερα

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual MILE Simulator Version 1.0 User's Manual Νοέμβριος, 2011 Περιεχόμενα 1. Εισαγωγή στον προσομοιωτή...2 1.1 Εγκατάσταση...2 1.2 Βοήθεια Διευκρινήσεις...2 2. Ξεκινώντας με τον προσομοιωτή...3 2.1 Το memory

Διαβάστε περισσότερα

ΛΟΓΙΣΜΙΚΟ (software)

ΛΟΓΙΣΜΙΚΟ (software) ΛΟΓΙΣΜΙΚΟ (software) Το Λογισµικό του Ηλεκτρονικού Υπολογιστή Περιεχόµενα Ορισµός Λογισµικού Κατηγορίες Λογισµικό Συστήµατος Λογισµικό Εφαρµογών Το λογισµικό είναι: Το λογισµικό Το σύνολο των προγραµµάτων

Διαβάστε περισσότερα

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ 2. Σκοποί και Λειτουργίες των ΛΣ Λειτουργικά Συστήματα Η/Υ I. Προστασία του υλικού II. Επικοινωνία με τον χρήστη III. Διαχείριση, αξιοποίηση και έλεγχος πόρων IV. Ικανότητα και ευκολία εξέλιξης Κεφάλαιο

Διαβάστε περισσότερα

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1 Μνήμη Διευθύνσεις Δείκτες Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη Η/Υ Ειδικό υλικό, ξεχωριστό από τον επεξεργαστή Χρησιμεύει για την αποθήκευση δεδομένων και της κατάστασης εκτέλεσης του προγράμματος

Διαβάστε περισσότερα

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση Αρης Ευθυμίου Ανακοινώσεις! Βαθμοί: 1ης εργαστηριακής άσκησης Βαθμός 0 χωρίς σχόλια δεν έχω πάρει την άσκηση! ελέγξτε μήπως δεν το στέλνετε στο σωστό

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή περιορισμένοι υπολογιστικοί / αποθηκευτικοί πόροι δεν τίθεται θέμα

Διαβάστε περισσότερα

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Ύλη του Μαθήµατος Μάθηµα: Λειτουργικά Συστήµατα ΙΙ UNIX Βιβλίο Μαθήµατος: α) Tanenbaum, A.:ΣύγχροναΛειτουργικάΣυστήµατα, 2ηΈκδοση, Εκδόσεις Κλειδάριθµος. β) Wrightson, K.,

Διαβάστε περισσότερα

EE512: Error Control Coding

EE512: Error Control Coding EE512: Error Control Coding Solution for Assignment on Finite Fields February 16, 2007 1. (a) Addition and Multiplication tables for GF (5) and GF (7) are shown in Tables 1 and 2. + 0 1 2 3 4 0 0 1 2 3

Διαβάστε περισσότερα

UNIX System Programming

UNIX System Programming UNIX System Programming Processes Objectives look at how to program UNIX processes fork( ), wait( ) Overview 1. What is a Process? 2. fork() 3. wait() 4. Process Data 1. What is a Process? A process is

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Όλοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι του 10000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Αν κάπου κάνετε κάποιες υποθέσεις

Διαβάστε περισσότερα

Advanced Subsidiary Unit 1: Understanding and Written Response

Advanced Subsidiary Unit 1: Understanding and Written Response Write your name here Surname Other names Edexcel GE entre Number andidate Number Greek dvanced Subsidiary Unit 1: Understanding and Written Response Thursday 16 May 2013 Morning Time: 2 hours 45 minutes

Διαβάστε περισσότερα

Διαχείριση Κύριας Μνήμης

Διαχείριση Κύριας Μνήμης Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διαχείριση Κύριας Μνήμης Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Διαχείριση

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Υποσύστημα μνήμης Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade Για να ελέγξετε το λογισμικό που έχει τώρα η συσκευή κάντε κλικ Menu > Options > Device > About Device Versions. Στο πιο κάτω παράδειγμα η συσκευή έχει έκδοση λογισμικού 6.0.0.546 με πλατφόρμα 6.6.0.207.

Διαβάστε περισσότερα

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους

Διαβάστε περισσότερα

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Εργαστήριο Αρ. 2

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Εργαστήριο Αρ. 2 ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Εργαστήριο Αρ. 2 Εισαγωγή στην Αρχιτεκτονική ARMv8-A Arithmetic and Logic Instr..data, Branch and Loops, PhD Σελ. 1 Memory Allocation LEGv8 0000

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 3: Διεργασίες. Καταστάσεις Διεργασιών. PCB. Νήματα. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

Μετάφραση ενός Προγράμματος Εξαιρέσεις

Μετάφραση ενός Προγράμματος Εξαιρέσεις ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 7 Μετάφραση ενός Προγράμματος Εξαιρέσεις Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Στάδια μετάφρασης ενός προγράμματος

Διαβάστε περισσότερα

Block Ciphers Modes. Ramki Thurimella

Block Ciphers Modes. Ramki Thurimella Block Ciphers Modes Ramki Thurimella Only Encryption I.e. messages could be modified Should not assume that nonsensical messages do no harm Always must be combined with authentication 2 Padding Must be

Διαβάστε περισσότερα

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch: HOMEWORK 4 Problem a For the fast loading case, we want to derive the relationship between P zz and λ z. We know that the nominal stress is expressed as: P zz = ψ λ z where λ z = λ λ z. Therefore, applying

Διαβάστε περισσότερα

Εισαγωγή στα Λειτουργικά

Εισαγωγή στα Λειτουργικά Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 6: Διαχείριση Μνήμης Ι Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σεάδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

The challenges of non-stable predicates

The challenges of non-stable predicates The challenges of non-stable predicates Consider a non-stable predicate Φ encoding, say, a safety property. We want to determine whether Φ holds for our program. The challenges of non-stable predicates

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011 Διάρκεια Διαγωνισμού: 3 ώρες Απαντήστε όλες τις ερωτήσεις Μέγιστο Βάρος (20 Μονάδες) Δίνεται ένα σύνολο από N σφαιρίδια τα οποία δεν έχουν όλα το ίδιο βάρος μεταξύ τους και ένα κουτί που αντέχει μέχρι

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Κλειώ Σγουροπούλου Λειτουργικό Σύστημα Ένα πρόγραμμα που διαχειρίζεται τους πόρους ενός υπολογιστικού συστήματος και ενεργεί ως μεσάζων μεταξύ του χρήστη και των πόρων αυτών user

Διαβάστε περισσότερα

2 Composition. Invertible Mappings

2 Composition. Invertible Mappings Arkansas Tech University MATH 4033: Elementary Modern Algebra Dr. Marcel B. Finan Composition. Invertible Mappings In this section we discuss two procedures for creating new mappings from old ones, namely,

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 9: Στοίβες:Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Υλοποίηση Στοιβών με Δυναμική Δέσμευση Μνήμης Εφαρμογή Στοιβών 1: Αναδρομικές συναρτήσεις Εφαρμογή

Διαβάστε περισσότερα

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης.

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης Εικονική Μνήμη Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Συστήματα Διαχείρισης Βάσεων Δεδομένων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Συστήματα Διαχείρισης Βάσεων Δεδομένων Φροντιστήριο 9: Transactions - part 1 Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών Tutorial on Undo, Redo and Undo/Redo

Διαβάστε περισσότερα

department listing department name αχχουντσ ϕανε βαλικτ δδσϕηασδδη σδηφγ ασκϕηλκ τεχηνιχαλ αλαν ϕουν διξ τεχηνιχαλ ϕοην µαριανι

department listing department name αχχουντσ ϕανε βαλικτ δδσϕηασδδη σδηφγ ασκϕηλκ τεχηνιχαλ αλαν ϕουν διξ τεχηνιχαλ ϕοην µαριανι She selects the option. Jenny starts with the al listing. This has employees listed within She drills down through the employee. The inferred ER sttricture relates this to the redcords in the databasee

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Το Λ.Σ. είναι υπεύθυνο για την κατανομή των πόρων του συστήματος (επεξεργαστές, μνήμη, αποθηκευτικά μέσα και συσκευές εισόδου/εξόδου) στα διάφορα ανταγωνιζόμενα προγράμματα

Διαβάστε περισσότερα

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,

Διαβάστε περισσότερα

Κεφάλαιο 1ο. 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων

Κεφάλαιο 1ο. 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων Κεφάλαιο 1ο 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων http://leitourgika-systhmata-epal-b.ggia.info Creative Commons License 3.0 Share-Alike Πολυπρογραμματισμός

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή» Σκοπός Μαθήματος Λειτουργικά Συστήματα Η/Υ Θεωρία: Βασικές έννοιες των λειτουργικών συστημάτων Βασικές αρχές σχεδιασμού τους Κεφάλαιο 1 «Εισαγωγή» Εργαστήριο: Πρακτική εξάσκηση στη χρήση των λειτουργικών

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

Διαβάστε περισσότερα

Διάλεξη Εισαγωγή στη Java, Μέρος Γ

Διάλεξη Εισαγωγή στη Java, Μέρος Γ Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Χειμερινό Εξάμηνο 2017-2018 Διάλεξη Εισαγωγή στη Java, Μέρος Γ Νήματα (Threads) στην Java Συγχρονισμός Producer-Consumer

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

Διαχείριση Μνήμης (Memory Management)

Διαχείριση Μνήμης (Memory Management) Διαχείριση Μνήμης (Memory Management) Εισαγωγή Βασικές έννοιες και μοντέλο εκτέλεσης Εναλλαγή (swapping) Ανάθεση σε συνεχόμενα τμήματα (contiguous allocation) Σελιδοποίηση (paging) Τμηματοποίηση (segmentation)

Διαβάστε περισσότερα

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών Διάλεξη 4 Περίληψη Συναρτήσεις Χρονόμετρο Χρήση Διακοπτών Coprocessor Διαχείριση

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

Linking and Loading. Γ.Κορνάρος Κ. Χαρτερός

Linking and Loading. Γ.Κορνάρος Κ. Χαρτερός Linking and Loading Γ.Κορνάρος Κ. Χαρτερός Περίληψη Linking Τι συμβαίνει κατά το linking? Διαφορετικά είδη linking Loading ELF file format 2 Linker Οι compilers και οι assemblers γεννούν relocatable object

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

Διαβάστε περισσότερα

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1 ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος

Διαβάστε περισσότερα