Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας
|
|
- Ευστάθιος Κρεστενίτης
- 9 χρόνια πριν
- Προβολές:
Transcript
1 Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Το επίπεδο προτεραιότητας µιας διεργασίας µπορεί να αλλάξει µε χρήση της συνάρτησης nice. Κάθε διεργασία διαθέτει µια τιµή που καλείται nice που χρησιµοποιείται για να υπολογίζει το επίπεδο προτεραιότητας της καλούµενης διεργασίας. Μία διεργασία κληρονοµεί την προτεραιότητα της διεργασίας που τη δηµιούργησε. Η προτεραιότητα µιας διεργασίας µπορεί να υποβαθµιστεί αυξάνοντας την τιµή nice. Μόνο οι διεργασίες διαχειριστή και πυρήνα µπορούν να αναβαθµίσουν την προτεραιότητά τους. Η δήλωση της συνάρτησης nice είναι η εξής: #include <unistd.h> int nice(int incr); Μια χαµηλή τιµή της nice αυξάνει το επίπεδο προτεραιότητας της διεργασίας. Η παράµετρος incr είναι η τιµή που προστίθεται στην τρέχουσα τιµή της nice για την καλούµενη διεργασία. Η παράµετρος incr µπορεί να είναι αρνητική ή θετική. Η τιµή της nice όµως είναι µη αρνητικός αριθµός. Η θετική τιµή του incr αυξάνει την τιµή της nice, άρα µειώνει το επίπεδο προτεραιότητας. Μια αρνητική τιµή του incr θα µειώσει την τιµή της nice, αυξάνοντας έτσι την προτεραιότητα. Εάν η τιµή της incr τροποποιήσει την τιµή της nice πάνω ή κάτω από τα όρια, τότε η τιµή της nice τίθεται στο υψηλότερο ή χαµηλότερο όριο, αντίστοιχα. Όταν επιστρέφει επιτυχώς η συνάρτηση nice επιστρέφει τη νέα τιµή nice της διεργασίας. Αν δεν επιστρέψει µε επιτυχία, η συνάρτηση θα επιστρέψει 1 και η τιµή της nice δεν αλλάζει. #include <sys/resource.h> int getpriority(int which, id_t who); int setpriority(int which, id_t who, int value); Η συνάρτηση setpriority θέτει την τιµή nice µιας διεργασίας, µιας οµάδας διεργασιών ή ενός χρήστη. Η συνάρτηση getpriority επιστρέφει την προτεραιότητα µιας διεργασίας, µιας οµάδας διεργασιών ή ενός χρήστη. Η παράµετρος which καθορίζει µια διεργασία, µια οµάδα διεργασιών ή ένα χρήστη. Μπορεί να πάρει τις ακόλουθες τιµές: PRIO_PROCESS, καθορίζει µια διεργασία PRIO_PGRP, καθορίζει µια οµάδα διεργασιών PRIO_USER, καθορίζει ένα χρήστη Με βάση την τιµή της παραµέτρου which, η τιµή της παραµέτρου who είναι ο αριθµός που αντιστοιχεί στην ταυτότητα (id number) µιας διεργασίας, µιας οµάδας διεργασιών ή ενός χρήστη. Η τιµή 0 της who υποδεικνύει την τρέχουσα διεργασία, την τρέχουσα οµάδα διεργασιών ή τον τρέχοντα χρήστη. Η τιµή της παραµέτρου value για τη συνάρτηση setpriority θα είναι η νέα τιµή της nice για τη συγκεκριµένη διεργασία, οµάδα διεργασιών ή χρήστη. Η τιµή της nice σε ένα περιβάλλον UNIX κινείται από 20 έως 19. Σε αντίθεση µε τη συνάρτηση nice η τιµή που περνιέται στη setpriority είναι η πραγµατική τιµή της nice που θέλουµε και όχι κάποιο offset που πρόκειται να προστεθεί στην τρέχουσα τιµή της nice.
2 Σε µια διεργασία µε πολλαπλά νήµατα, η τροποποίηση της προτεραιότητας θα επηρεάσει την προτεραιότητα όλων των νηµάτων αυτής της διεργασίας. Σε περίπτωση επιτυχίας η getpriority θα επιστρέψει την τιµή nice για τη συγκεκριµένη διεργασία. Σε περίπτωση επιτυχίας η setpriority θα επιστρέψει την τιµή 0. Σε περίπτωση αποτυχίας και οι δύο συναρτήσεις επιστρέφουν την τιµή 1. Η τιµή 1 είναι µια νόµιµη τιµή nice για µία διεργασία. Για να αποφασιστεί εάν έχει συµβεί κάποιο σφάλµα πρέπει να ελεγχθεί η εξωτερική µεταβλητή errno. Χρησιµοποιώντας την κλήση συστήµατος fork() Η κλήση συστήµατος fork() δηµιουργεί µια νέα διεργασία ως αντίγραφο της διεργασίας που εκτελεί την κλήση και καλείται γονική. Η fork επιστρέφει δύο τιµές εφόσον εκτελεστεί επιτυχώς, µία στη γονική διεργασία και µία στη θυγατρική διεργασία. Επιστρέφει 0 στην θυγατρική διεργασία και την ταυτότητα της νέας διεργασίας (PID) στην γονική διεργασία. Οι δύο διεργασίες συνεχίζουν να εκτελούνται από την επόµενη από την fork εντολή του προγράµµατος. Εάν η fork αποτύχει, που σηµαίνει ότι καµία θυγατρική διεργασία δεν δηµιουργήθηκε, επιστρέφεται -1 στην γονική διεργασία. #include <unistd.h> pid_t fork(void); Η fork () θα αποτύχει εφόσον το σύστηµα δεν διαθέτει τους απαραίτητους πόρους για τη δηµιουργία µιας άλλης διεργασίας. Εάν υπάρχει όριο στον αριθµό των διεργασιών που µια διεργασία µπορεί να δηµιουργήσει ή υπάρχει όριο στον αριθµό των διεργασιών σε όλη την έκταση του συστήµατος και το όριο αυτό έχει παραβιαστεί, η fork () θα αποτύχει. Στην περίπτωση αυτή το errno παίρνει την τιµή που δείχνει το ακριβές σφάλµα. Χρησιµοποιώντας την οικογένεια των κλήσεων συστήµατος exec() H οικογένεια των συναρτήσεων exec() αντικαθιστά την εικόνα της διεργασίας που κάνει την κλήση, µε µία νέα εικόνα διεργασίας. Η fork () δηµιουργεί µια νέα διεργασία ως πιστό αντίγραφο της γονικής διεργασίας, ενώ η συνάρτηση exec() αντικαθιστά την εικόνα της διεργασίας αντίγραφο µε µία νέα. Η εικόνα της νέας διεργασίας είναι ένα κανονικό εκτελέσιµο αρχείο εκτελείται αµέσως. Το εκτελέσιµο µπορεί να καθοριστεί είτε σαν µονοπάτι είτε σαν όνοµα αρχείου. Οι συναρτήσεις αυτές µπορούν να περάσουν ορίσµατα γραµµής εντολής στη νέα διεργασία. Περιβαλλοντικές µεταβλητές µπορούν επίσης να καθοριστούν. εν υπάρχει επιστρεφόµενη τιµή εφόσον η συνάρτηση αποτύχει επειδή η εικόνα της διεργασίας που έκανε την κλήση γράφεται από πάνω. Σε περίπτωση αποτυχίας επιστρέφεται -1 στη διεργασία που έκανε την κλήση exec(). Όλες οι exec () συναρτήσεις µπορούν να αποτύχουν κάτω από τις ακόλουθες συνθήκες: Απαγορεύεται η πρόσβαση στο εκτελέσιµο αρχείο Το αρχείο δεν υπάρχει Το αρχείο δεν είναι εκτελέσιµο
3 Υπάρχουν προβλήµατα µε συµβολικούς συνδέσµους, δηλαδή όταν υπάρχει επανάληψη κατά τη χρήση συµβολικών συνδέσµων κατά την ανάλυση του µονοπατιού προς το εκτελέσιµο αρχείο, ή οι συµβολικοί σύνδεσµοι κάνουν το µονοπάτι προς το εκτελέσιµο αρχείο να είναι πολύ µεγάλο. Οι συναρτήσεις exec() χρησιµοποιούνται µαζί µε την fork(). Η fork() δηµιουργεί και αρχικοποιεί µία θυγατρική διεργασία αντιγράφοντας την γονική. Η θυγατρική διεργασία τότε αντικαθιστά την εικόνα της εκτελώντας µια exec(). Το παρακάτω παράδειγµα δείχνει τη χρήση του συνδυασµού των fork και exec. // RtValue = fork(); if(rtvalue == 0) { } execl( /path/direct, direct,. ); Στο παραπάνω παράδειγµα η συνάρτηση fork() καλείται και επιστρέφει µια τιµή που αποθηκεύεται στην µεταβλητή RtValue. Εάν η RtValue έχει την τιµή 0, τότε µιλάµε για τη θυγατρική διεργασία. Η execl() συνάρτηση καλείται τότε. Η πρώτη παράµετρος είναι το µονοπάτι προς το εκτελέσιµο αρχείο, η δεύτερη παράµετρος είναι η εντολή εκτέλεσης, και η τρίτη παράµετρος είναι το όρισµα. Το direct είναι ένα πρόγραµµα που εµφανίζει σε λίστα όλους τους καταλόγους και τους υποκαταλόγους ενός δοθέντος καταλόγου. Υπάρχουν έξι (6) παραλλαγές συναρτήσεων exec(), όπου καθεµία έχει τον δικό της τρόπο κλήσης και χρήση. 1. Συναρτήσεις execl() Οι συναρτήσεις execl(), execle() execlp() περνούν το όρισµα της γραµµής εντολής σαν λίστα. Ο αριθµός των ορισµάτων γραµµής εντολής πρέπει να είναι γνωστός κατά την ώρα της µετάφρασης ώστε να είναι χρήσιµες αυτές οι συναρτήσεις. int execl (const char *path, const char *arg0, /*, (char *) 0 */); path είναι το µονοπάτι προς το εκτελέσιµο πρόγραµµα. Μπορεί να καθοριστεί είτε σαν απόλυτο µονοπάτι είτε σαν σχετικό µονοπάτι µε βάση τον τρέχοντα κατάλογο. Τα επόµενα ορίσµατα είναι η λίστα των ορισµάτων του εκτελέσιµου προγράµµατος από το arg0 έως το argn. Μπορούν να υπάρχουν µέχρι n ορίσµατα. Το τέλος της λίστας ακολουθείται από ένα δείκτη NULL. int execle (const char *path, const char *arg0, /*, (char *) 0 *, char *const envp[] */); Η συνάρτηση αυτή είναι ακριβώς ίδια µε την execl µε τη µόνη διαφορά ότι παίρνει µία επιπλέον παράµετρο, την envp[]. Η παράµετρος περιέχει το νέο περιβάλλον για τη νέα διεργασία. Η envp[] είναι ένας δείκτης σε ένα πίνακα που τερµατίζεται µε null και περιέχει strings που τερµατίζονται µε null. Κάθε string είναι της µορφής: name = value, όπου name είναι το όνοµα της µεταβλητής περιβάλλοντος και value είναι το string που πρέπει να αποθηκευτεί. Η envp[] µπορεί να καθοριστεί µε τον ακόλουθο τρόπο: char *const envp[]={ PATH=/opt/kde2:/sbin, HOME=/home, NULL}; Οι PATH και HOME είναι οι µεταβλητές περιβάλλοντος στην περίπτωση αυτή. int execlp (const char *file, const char *arg0, /*, (char *) 0 */);
4 file είναι το όνοµα του εκτελέσιµου προγράµµατος. Χρησιµοποιεί την PATH µεταβλητή περιβάλλοντος για να εντοπίσει τα εκτελέσιµα. Τα υπόλοιπα ορίσµατα είναι όπως στην execl() συνάρτηση. Ακολουθούν µερικά παραδείγµατα σύνταξης των execl() συναρτήσεων χρησιµοποιώντας αυτά τα ορίσµατα: char *const args[] = { direct,., NULL}; char *const envp[] = { files=50, NULL}; execl ( /path/direct, direct,., NULL) ; execle ( /path/direct, direct,., NULL, envp) ; execlp ( direct, direct,., NULL) ; 2. Συναρτήσεις execv() Οι συναρτήσεις execv(), execve() και execvp() περνούν τα ορίσµατα γραµµής εντολής σε ένα διάνυσµα δεικτών προς strings που τερµατίζουν µε NULL. Ο αριθµός των ορισµάτων γραµµής εντολής πρέπει να είναι γνωστός κατά την ώρα της µετάφρασης ώστε να είναι χρήσιµες οι συναρτήσεις αυτές. Το argv[0] είναι συνήθως η εντολή εκτέλεσης. int execv (const char *path, char *const arg[]); path είναι το µονοπάτι προς το εκτελέσιµο αρχείο. Μπορεί να καθοριστεί είτε ως απόλυτο είτε ως σχετικό µονοπάτι ως προς τον τρέχοντα κατάλογο. Το επόµενο όρισµα είναι ένα διάνυσµα που τερµατίζεται σε NULL και περιέχει τα ορίσµατα γραµµής εντολής σαν strings που τερµατίζονται σε NULL. Το arg[] µπορεί να καθοριστεί µε τον ακόλουθο τρόπο: char *const arg[]={ traverse,., >, 1000, NULL}; Παρακάτω φαίνεται ένα παράδειγµα κλήσης της execv(): execv ( traverse, arg); Στην περίπτωση αυτή το πρόγραµµα traverse εµφανίζει σε λίστα όλα τα αρχεία του τρέχοντος καταλόγου που είναι µεγαλύτερα από 1000 bytes. int execve (const char *path, char *const arg[], char *const envp[]); Η συνάρτηση αυτή είναι ίδια ακριβώς µε την execv, εκτός του ότι περιέχει µια επιπλέον παράµετρο, την envp[], που έχει περιγραφεί προηγουµένως. int execvp (const char *file, char *const arg[]); file είναι το όνοµα του εκτελέσιµου προγράµµατος. Το επόµενο όρισµα είναι ένα διάνυσµα που τερµατίζεται σε NULL και περιέχει τα ορίσµατα γραµµής εντολής σαν strings που τερµατίζονται σε NULL. Παρακάτω υπάρχουν παραδείγµατα σύνταξης των εντολών execv() που χρησιµοποιούν αυτά τα ορίσµατα: char *const arg[]={ traverse,., >, 1000, NULL}; char *const envp[]={ files=50, NULL} ; execv( /path/traverse, arg) ; execve( /path/traverse, arg, envp) ;
5 execvp( traverse, arg) ; Σε κάθε ένα από τα παραπάνω παραδείγµατα κάθε execv() συνάρτηση δηµιουργεί µια διεργασία που εκτελεί το πρόγραµµα traverse. 3. Καθορίζοντας περιορισµούς στις συναρτήσεις exec() Υπάρχει ένα όριο στο µέγεθος των argv[] και envp[] που µπορούν να περαστούν στις συναρτήσεις exec(). Η συνάρτηση sysconf() µπορεί να χρησιµοποιηθεί για να καθοριστεί το µέγιστο µέγεθος των ορισµάτων γραµµής εντολής καθώς και το µέγεθος των περιβαλλοντικών παραµέτρων για τις exec() συναρτήσεις που δέχονται την παράµετρο envp[]. Για να επιστρέψει το µέγεθος, η name πρέπει να έχει την τιµή _SC_ARG_MAX. #include <unistd.h> long sysconf(int name); Ένας άλλος περιορισµός όταν χρησιµοποιείται η exec () και οι άλλες συναρτήσεις που δηµιουργούν διεργασίες είναι ο µέγιστος αριθµός των ταυτόχρονων διεργασιών που επιτρέπονται ανά ταυτότητα χρήστη. Για να επιστρέψει αυτό τον αριθµό η name πρέπει να έχει την τιµή _SC_CHILD_MAX. 4. ιαβάζοντας και αναθέτοντας τιµές σε περιβαλλοντικές µεταβλητές Οι περιβαλλοντικές µεταβλητές είναι strings που τερµατίζονται µε NULL και αποθηκεύουν πληροφορίες που εξαρτώνται από το σύστηµα, όπως είναι τα µονοπάτια σε καταλόγους που περιέχουν εντολές, βιβλιοθήκες, και διαδικασίες που χρησιµοποιούνται από διεργασίες. Μπορούν επίσης να χρησιµοποιηθούν για να µεταδώσουν χρήσιµες πληροφορίες που ορίζονται από το χρήστη από τη γονική προς τη θυγατρική διεργασία. Παρέχουν ένα µηχανισµό για την παροχή συγκεκριµένων πληροφοριών σε διεργασία χωρίς να χρειάζεται αυτές να περαστούν µέσα από τον κώδικα. Οι µεταβλητές αυτές είναι προκαθορισµένες και κοινές σε όλα τα κελύφη διεργασίες στο σύστηµα αυτό. Οι µεταβλητές αυτές αρχικοποιούνται από τα αρχεία εκκίνησης. Παρακάτω φαίνονται µερικές κοινές µεταβλητές συστήµατος: $HOME $PATH $MAIL $USER $SHELL $TERM το απόλυτο µονοπάτι που οδηγεί στο βασικό κατάλογο µια λίστα από καταλόγους για την αναζήτηση εντολών το απόλυτο µονοπάτι του γραµµατοκιβωτίου η ταυτότητα του χρήστη το απόλυτο µονοπάτι του κελύφους ο τύπος του τερµατικού Μπορούν να αποθηκευτούν σε ένα αρχείο ή σε µια λίστα που θα περιέχει τις µεταβλητές περιβάλλοντος. Η λίστα αυτή θα περιέχει δείκτες σε strings που τερµατίζονται σε NULL. Η µεταβλητή: extern char *environ δείχνει στην παραπάνω λίστα όταν η διεργασία αρχίσει να εκτελείται. Τα strings αυτά έχουν τη µορφή: name = value, όπως εξηγήθηκε νωρίτερα. Οι διεργασίες που αρχικοποιούνται µε τις συναρτήσεις execl(), execlp(), execv(), execvp() κληρονοµούν
6 το περιβάλλον της γονικής διεργασίας. Οι διεργασίες που αρχικοποιούνται µε τις συναρτήσεις execve() και execle() καθορίζουν το περιβάλλον της νέας διεργασίας. Υπάρχουν συναρτήσεις και προγράµµατα που µπορούν να κληθούν για να ερευνηθούν, να προστεθούν ή να τροποποιηθούν τέτοιες µεταβλητές. Η getenv() χρησιµοποιείται για να αποφασιστεί εάν µια συγκεκριµένη µεταβλητή έχει πάρει τιµή. Η παράµετρος name περιέχει το όνοµα της µεταβλητής στην οποία γίνεται η αναφορά. Η συνάρτηση θα επιστρέψει NULL εάν η συγκεκριµένη µεταβλητή δεν έχει πάρει τιµή. Εάν η µεταβλητή έχει πάρει τιµή, η συνάρτηση θα επιστρέψει ένα δείκτη σε ένα string που περιέχει την τιµή. ηλαδή, η σύνταξη των χρήσιµων εδώ συναρτήσεων είναι η παρακάτω: #include <stdlib.h> char *getenv(const char *name); int setenv(const char *name, const char *value, int overwrite); void unsetenv(const char *name); Για παράδειγµα: char *Path; Path = getenv( PATH ); Το string Path παίρνει την τιµή που περιέχεται στην προκαθορισµένη µεταβλητή PATH. Η setenv() χρησιµοποιείται για να αλλάξει ή να προσθέσει µια µεταβλητή στο περιβάλλον της καλούσας διεργασίας. Η παράµετρος name περιέχει το όνοµα της µεταβλητής που πρέπει να αλλάξει ή να πάρει τιµή. Παίρνει την τιµή που έχει η παράµετρος value. Εάν η παράµετρος overwrite έχει µη µηδενική τιµή τότε γίνεται αλλαγή τιµής. Αντίθετα, αν η overwrite έχει τιµή 0, το περιεχόµενο της µεταβλητής περιβάλλοντος δεν µεταβάλλεται. Η setenv() επιστρέφει 0 όταν ολοκληρωθεί επιτυχώς και -1 διαφορετικά. Η unsetenv() διαγράφει την τιµή της µεταβλητής που περιέχεται στην παράµετρο name. Χρησιµοποιώντας την system() για τη δηµιουργία διεργασιών Η συνάρτηση system() χρησιµοποιείται για να τρέξει µια εντολή ή ένα εκτελέσιµο πρόγραµµα. Η system() προκαλεί την εκτέλεση της δυάδας fork - exec και ενός κελύφους (shell). Η system() εκτελεί ένα fork και η θυγατρική διεργασία καλεί µία exec() µε ένα κέλυφος που εκτελεί τη δοσµένη εντολή ή πρόγραµµα. Η σύνταξή της είναι η παρακάτω: #include <stdlib.h> int system(const char *string); H παράµετρος string µπορεί να είναι µια εντολή συστήµατος, ή το όνοµα ενός εκτελέσιµου αρχείου. Εάν ολοκληρωθεί επιτυχώς, η συνάρτηση επιστρέφει την κατάσταση τερµατισµού της εντολής ή την τιµή του προγράµµατος (αν το πρόγραµµα επιστρέφει κάποια). Σφάλµατα µπορεί να συµβούν σε αρκετά επίπεδα, π.χ. η fork() ή η exec() µπορεί να παρουσιάσουν σφάλµα ή το κέλυφος µπορεί να µην µπορεί να εκτελέσει την συγκεκριµένη εντολή ή το πρόγραµµα.
7 Η συνάρτηση επιστρέφει µια τιµή στην γονική διεργασία. Η συνάρτηση επιστρέφει 127 εάν αποτύχει η exec() και -1 εάν συµβεί κάποιο άλλο σφάλµα. Οι κλήσεις συστήµατος exit (), kill () και abort () Υπάρχουν δύο συναρτήσεις που µία διεργασία µπορεί να καλέσει για να τερµατίσει, οι exit () και abort (). Η exit () συνάρτηση προκαλεί τερµατισµό της διεργασίας µε κανονικό τρόπο. Όλα τα ανοικτά αρχεία που σχετίζονται µε τη διεργασία κλείνουν. Η συνάρτηση πετά όλες τις ανοικτές ροές που περιέχουν δεδοµένα που δεν έχουν αποθηκευτεί σε προσωρινό αποθηκευτικό χώρο, και κλείνει τις ροές αυτές. Η παράµετρος status αντιπροσωπεύει την κατάσταση εξόδου της διεργασίας. Επιστρέφεται στην γονική διεργασία που βρίσκεται σε αναµονή, η οποία και επανεκκινείται. Η τιµή της status µπορεί να είναι 0, EXIT_FAILURE, ή ΕΧΙΤ_SUCCESS. Η τιµή 0 σηµαίνει ότι η διεργασία τερµατίστηκε επιτυχώς. Η γονική διεργασία που βρίσκεται σε αναµονή έχει πρόσβαση όνο στα 8 λιγότερης σηµαντικότητας bits της status. Εάν η γονική διεργασία δεν περιµένει για τη διεργασία να ολοκληρωθεί, η διεργασία αυτή υιοθετείται από την διεργασία init. Η συνάρτηση abort () προκαλεί τον µη κανονικό τερµατισµό της καλούσας διεργασίας. Ένας µη κανονικός τερµατισµός της διεργασίας προκαλεί το ίδιο αποτέλεσµα µε την fclose () σε όλες τις ανοικτές ροές. Η γονική διεργασία που βρίσκεται σε αναµονή θα λάβει ένα σήµα ότι η θυγατρική της διεργασίας τερµατίστηκε µη κανονικά. Μια διεργασία πρέπει να τερµατίζει µε αυτόν τον τρόπο µόνο εφόσον συµβεί κάποιο λάθος το οποίο δεν µπορεί να αντιµετωπιστεί προγραµµατιστικά. #include <stdlib.h> void exit (int status); void abort (void); Η συνάρτηση kill () µπορεί να χρησιµοποιηθεί για να προκαλέσει τον τερµατισµό µιας άλλης διεργασίας. Η συνάρτηση kill () στέλνει ένα σήµα στη συγκεκριµένη διεργασία που έχει καθοριστεί ή κατέχει την παράµετρο pid. Η παράµετρος sig είναι το σήµα που στέλνεται στην καθορισµένη διεργασία. Τα σήµατα βρίσκονται στο header file <signal.h>. Για να τερµατιστεί µια διεργασία µέσω της kill (), η παράµετρος sig πρέπει να έχει την τιµή SIGKILL. Η καλούσα διεργασία πρέπει να έχει το απαραίτητο δικαίωµα για να στείλει ένα σήµα σε µία διεργασία, ή κατέχει ένα πραγµατικό ή αποτελεσµατικό user id που ταιριάζει µε το πραγµατικό ή το αποθηκευµένο user id της διεργασίας που λαµβάνει το σήµα. Η καλούσα διεργασία µπορεί να έχει το δικαίωµα να στέλνει µόνο συγκεκριµένα σήµατα σε διεργασίες και όχι άλλα. Εάν η συνάρτηση αποστείλει το σήµα επιτυχώς, επιστρέφεται 0 στην καλούσα διεργασία. Εάν αποτύχει, επιστρέφεται -1. Η καλούσα διεργασία µπορεί να στείλει το σήµα σε µία ή περισσότερες διεργασίες κάτω από τις ακόλουθες συνθήκες: pid > 0 To σήµα θα σταλεί στη διεργασία της οποίας το PID είναι ίσο µε το pid. pid = 0 Το σήµα θα σταλεί σε όλες τις διεργασίες των οποίων η ταυτότητα της οµάδας διεργασιών (group id) είναι ίδια µε αυτή της καλούσας διεργασίας. pid = -1 το σήµα θα σταλεί σε όλες τις διεργασίες για τις οποίες η καλούσα διεργασία έχει δικαίωµα να αποστείλει αυτό το σήµα.
8 pid < -1 Το σήµα θα αποσταλεί σε όλες τις διεργασίες των οποίων η ταυτότητα της οµάδας διεργασιών (group id) είναι ίση µε την απόλυτη τιµή του pid και για την οποία η καλούσα διεργασία έχει δικαίωµα να αποστείλει το σήµα. #include <signal.h> int kill (pid_t pid, int sig); Άσκηση Η ακολουθία Fibonacci είναι η σειρά αριθµών 0,1,1,2,3,5,8,... Τυπικά, µπορεί να εκφραστεί ως: fib 0 = 0 fib 1 = 1 fib n = fib n-1 + fib n-2 Γράψτε ένα πρόγραµµα σε C χρησιµοποιώντας την κλήση συστήµατος fork(), που να παράγει την ακολουθία Fibonacci στη θυγατρική διεργασία. Ο αριθµός της ακολουθίας θα δίνεται στη γραµµή εντολών. Για παράδειγµα, αν δίνεται ο αριθµός 5, οι πρώτοι 5 αριθµοί στην ακολουθία Fibonacci θα παράγονται από τη θυγατρική διεργασία. Κάνετε τη γονική διεργασία να καλέσει την κλήση wait() ώστε να περιµένει τον τερµατισµό της θυγατρικής διεργασίας προτού να βγει από το πρόγραµµα. Η θυγατρική διεργασία θα γράφει το αποτέλεσµα σε ένα αρχείο µέσα σε ένα νέο κατάλογο που θα δηµιουργεί. Η γονική διεργασία θα διαβάζει το αρχείο αυτό και θα τυπώνει το αποτέλεσµα που έγραψε η θυγατρική διεργασία. Εκτελέστε τον αναγκαίο έλεγχο ώστε να εξασφαλίσετε ότι δεν περνιέται αρνητικός αριθµός στη γραµµή εντολών. Η διάρκεια της άσκησης είναι µία (1) εβδοµάδα.
Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΔΙΕΡΓΑΣΙΕΣ +- Με τον όρο διεργασία στο UNIX εννοούμε τη δυναμικη πράξη της
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Περιεχόμενα ενότητας Διεργασίες Κλήσεις δημιουργίας και τερματισμού διεργασιών Επικοινωνία διεργασιών μέσω
Διαβάστε περισσότεραΔημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
Διαβάστε περισσότεραΠρογραμματισμός συστημάτων UNIX/POSIX. Διεργασίες (processes)
Προγραμματισμός συστημάτων UNIX/POSIX Διεργασίες (processes) Δομή αρχείου προγράμματος Πρόγραμμα (program) ονομάζεται το εκτελέσιμο αρχείο που βρίσκεται αποθηκευμένο στο δίσκο (π.χ. το a.out, ή το ls ή
Διαβάστε περισσότεραΔημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
Διαβάστε περισσότεραΣημειώσεις Εργαστηρίου - Ασκήσεις. Διδάσκων: Κωνσταντίνος Αντωνής Επίκουρος Καθηγητής Δρ. Μηχανικός Η/Υ & Πληροφορικής Πανεπιστημίου Πατρών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΜΑΘΗΜΑΤΟΣ «ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ» Σημειώσεις Εργαστηρίου - Ασκήσεις Διδάσκων: Κωνσταντίνος Αντωνής Επίκουρος Καθηγητής Δρ. Μηχανικός
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής
Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής ΕΥ311-Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Εργαστήριο: Παραδείγματα δημιουργίας διεργασιών στο Linux Ένα πρόγραμμα (το στιγμιότυπο της εκτέλεσης του οποίου
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΠληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010
Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας
Διαβάστε περισσότεραΔίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals
Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,
Διαβάστε περισσότεραΕισαγωγή εκτελέσιμου κώδικα σε διεργασίες
0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε
Διαβάστε περισσότεραΛειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων
Διαβάστε περισσότεραΕργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ
Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)
Διαβάστε περισσότεραιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr
ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή
Διαβάστε περισσότεραΕργαστήριο 5 fork(), exec(), signals
Εργαστήριο 5 fork(), exec(), signals Στο εργαστήριο θα μελετηθούν: Παραδείγματα χρήσης των συναρτήσεων fork και exec Συνάρτηση waitpid Συνάρτηση WIFEXITED Συνάρτηση WEXITSTATUS Παράδειγμα χρήσης σημάτων
Διαβάστε περισσότεραΕπεξεργασία Αρχείων Κειµένου
Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά
Διαβάστε περισσότεραΚεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (
Διαβάστε περισσότεραΝήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1
Νήµαταστην Java Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java γεννηθείσα notify notifyall έτοιµη start εκπνοή
Διαβάστε περισσότεραΠρογραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται
Διαβάστε περισσότεραΠληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο
Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2010 2011 Δ. Γουνόπουλος Ι. Ιωαννίδης Άσκηση 1: Συγχώνευση Εγγραφών Δυαδικών Αρχείων Προθεσμία: 2 Μαΐου 2011, 5:00μμ
Διαβάστε περισσότεραΛύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ FILE SYSTEM >_ ΔΙΚΑΙΩΜΑΤΑ >_ ΔΙΚΑΙΩΜΑΤΑ? >_ ΜΕΤΑΒΟΛΗ ΔΙΚΑΙΩΜΑΤΩΝ +- chmod
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε
Διαβάστε περισσότεραΝήµατα. Πολύ σηµαντικό
Νήµατα Πολύ σηµαντικό 1 Νήµατα (συν.) Σηµαντικό 2 Νήµατα vs ιεργασίες Νήµατα ιεργασίες Χώρος εδοµένων Περιγραφητές Αρχείων fork exit exec Σήµατα Κοινός. Ότι αλλάζει το 1 νήµα το βλέπουν/ αλλάζουν και τα
Διαβάστε περισσότεραΚλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )
ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση
Διαβάστε περισσότεραΗ βασική συνάρτηση προγράμματος main()
Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότερα1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»
1. Εισαγωγή Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 3 «Διεργασίες» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας Η έννοια της διεργασίας (process) είναι θεμελιώδης για την κατανόηση του τρόπου με τον οποίο
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed
Διαβάστε περισσότεραΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία
ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2015-2016 Δεύτερη Προγραμματιστική Εργασία Γενική περιγραφή Στη δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε ένα διομότιμο σύστημα (Peer-to-
Διαβάστε περισσότεραΔείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8
Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 1000 1001 1002 1003 1004 1005 12 9.8 9976 3 1010 26 1006 1007 1008 1009 1010 1011 16 125 1299 a 13 1298 Δήλωση Δήλωση Τύπος
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραUnix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες
Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες Σύνταξη εντολών Περιεχόµενα Οργάνωση και χειρισµός αρχείων Μπαλαντέρ ικαιώµατα χρήσης αρχείων και οµάδες χρηστών Έλεγχος διεργασιών Σύνταξη εντολών
Διαβάστε περισσότεραΛειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο
Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο 2018-2019 Άσκηση 1 Φροντιστήριο: 05/10/2018 Παράδοση: 18/10/2018 Υλοποίηση Linux C Shell ΤΑ : shevtsov(shevtsov@csd.uoc.gr) Ώρες Γραφείου : Δευτέρα 14:00-16:00
Διαβάστε περισσότεραΠληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος
Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο 2018 2019 Καθηγητής Δ. Γουνόπουλος Άσκηση 1/2 - Προθεσμία: 18 Ιαν. 2019 Σκοπός της εργασίας αυτής είναι η κατανόηση
Διαβάστε περισσότεραΠληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο
Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2011 2012 Καθηγητές Μ. Χατζόπουλος, Δ. Γουνόπουλος Άσκηση 1 Παράδοση 4 Μαϊου Σκοπός της εργασίας αυτής είναι η κατανόηση
Διαβάστε περισσότεραΚεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε
Διαβάστε περισσότεραΗβασικήσυνάρτηση προγράμματος main()
Ηβασικήσυνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Ησυνάρτησηείναι ένα υποπρόγραμμα που
Διαβάστε περισσότεραΛειτουργικά Συστήματα
Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:09 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών
Διαβάστε περισσότεραlab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1
ΑΕΜ ΒΑΘΜΟΣ 449 PASS 451 PASS 476-1733 PASS 1779-1899 FAIL 1900 FAIL Page 1 1901 PASS 1904 PASS 1908 PASS 1909 PASS 1910 - Page 2 1911 PASS 1914 Οριακό PASS 1915 PASS 1926 PASS Page 3 1927 PASS 1928 Οριακό
Διαβάστε περισσότεραΠληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος
Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο 2016 2017 Καθηγητής Δ. Γουνόπουλος Άσκηση 1 - Προθεσμία: 9 Δεκ. 2016 Σκοπός της εργασίας αυτής είναι η κατανόηση
Διαβάστε περισσότεραΠρογραμματισμός Ι. Συναρτήσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών
Συναρτήσεις Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Συναρτήσεις - Εισαγωγή Μία συνάρτηση είναι ένα ανεξάρτητο τμήμα κώδικα, που εκτελεί μία
Διαβάστε περισσότεραΟρισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα
ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΠληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο M. Χατζόπουλος. Προθεσμία: 19/01/2015
Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2013 2014 M. Χατζόπουλος Προθεσμία: 19/01/2015 Σκοπός της εργασίας είναι η κατανόηση της εσωτερικής λειτουργίας
Διαβάστε περισσότεραΠληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο
Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2015 2016 Ι. Ιωαννίδης Άσκηση 3: Αποθήκευση κατά στήλες Προθεσμία: 25 Ιανουαρίου 2016, 11:59μμ Ο σκοπός της εργασίας
Διαβάστε περισσότεραΠρογραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα
Διαβάστε περισσότεραΠρογραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας
Διαβάστε περισσότεραΕισαγωγή στην Πληροφορική
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Διαβάστε περισσότεραΔιάλεξη 18η: Διαχείρηση Αρχείων
Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh
Διαβάστε περισσότεραΠληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος
Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο 2016 2017 Καθηγητής Δ. Γουνόπουλος Άσκηση 2 - Εξωτερική Ταξινόμηση Παράδοση: 20/01/2017 Σκοπός της εργασίας αυτής
Διαβάστε περισσότερα#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Διαβάστε περισσότεραΧρονοδρομολογητής Κυκλικής Επαναφοράς
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 4 η Εργαστηριακή Άσκηση: Χρονοδρομολογητής Κυκλικής Επαναφοράς Λειτουργικά Συστήματα Υπολογιστών
Διαβάστε περισσότεραΠρογραμματισμός συστημάτων UNIX/POSIX. Σήματα (signals)
Προγραμματισμός συστημάτων UNIX/POSIX Σήματα (signals) Σήματα (signals) Τα σήματα είναι «διακοπές» λογισμικού (software interrupts) οι οποίες διακόπτουν την κανονική λειτουργία μίας διεργασίας. Προκαλούνται
Διαβάστε περισσότεραΜεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 9 Συναρτήσεις Μέρος II Θέματα ιάλεξης Μη- ομημένος
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 11 η Συναρτήσεις Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr It seems very simple. It is very simple. But if you don t know what the key is its virtually indecipherable.
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διαβάστε περισσότεραΛειτουργικά Συστήματα (ΗΥ321)
Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 2: Διεργασίες και Νήματα Διαδικαστικά 2 Γραφτήκατε στη λίστα; Σχηματίστε ομάδες (για το project)! Στο προηγούμενο επεισόδιο 3 Τι είναι λειτουργικό; Γενιές ΛΣ Βασικές
Διαβάστε περισσότεραΠαράδειγµα χρήσης perror, errno (πρόγραµµα errors_demo.c)
Χειρισµός Λαθών 1 Παράδειγµα χρήσης perror, errno (πρόγραµµα errors_demo.c) 2 Είσοδος/Έξοδος Χαµηλού Επιπέδου 3 Είσοδος/Έξοδος Χαµηλού Επιπέδου (συν.) Αυτό αργότερα στο εξάµηνο 4 Κλήση συστήµατος open
Διαβάστε περισσότεραΑΣΚΗΣΗ 1. Structural Programming
ΑΣΚΗΣΗ 1 Structural Programming Στην άσκηση αυτή θα υλοποιήσετε σε C ένα απλό πρόγραµµα Βάσης εδοµένων το οποίο θα µπορούσε να χρησιµοποιηθεί από την γραµµατεία ενός πανεπιστηµίου για την αποθήκευση και
Διαβάστε περισσότεραΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Ύλη του Μαθήµατος Μάθηµα: Λειτουργικά Συστήµατα ΙΙ UNIX Βιβλίο Μαθήµατος: α) Tanenbaum, A.:ΣύγχροναΛειτουργικάΣυστήµατα, 2ηΈκδοση, Εκδόσεις Κλειδάριθµος. β) Wrightson, K.,
Διαβάστε περισσότεραΚλάσεις και Αντικείµενα
Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν
Διαβάστε περισσότεραΛύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΣΥΝΑΡΤΗΣΕΙΣ ΣΤΗ C (1/3) +- Στη C χρησιμοποιούμε συχνα τις συναρτήσεις (functions),
Διαβάστε περισσότεραΦροντιστήριο 1ο Εισαγωγή στο FLEX. Flex. Regular Expressions (1/4)
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 1ο Εισαγωγή στο FLEX Ι ΑΣΚΩΝ Αντώνιος Σαββίδης Slide
Διαβάστε περισσότερα$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).
Κ24: Προγραμματισμός Συστήματος 2η Εργασία Εαρινό Εξάμηνο 2017 Προθεσμία Υποβολής: Κυριακή 30 Απριλίου 2017 Ωρα 23:59 Εισαγωγή στην Εργασία: Ο στόχος της εργασίας αυτής είναι να εξοικειωθείτε με την δημιουργία
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python
Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και
Διαβάστε περισσότεραΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής
ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής Στο εργαστήριο αυτό θα δούμε πώς ορίζονται και πώς χρησιμοποιούνται οι συμβολοσειρές στην C. Επίσης, θα μελετήσουμε κάποιες από τις συναρτήσεις
Διαβάστε περισσότεραΚεφάλαιο 10 ο Υποπρογράµµατα
Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,
Διαβάστε περισσότεραΔομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 3 Επανάληψη Γ μέρος 1. Στόχος του εργαστηρίου Στόχος του τρίτου εργαστηρίου είναι
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1
Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη της Πληροφορικής και Πληροφοριακά Συστήματα Εργαστήριο - ΕΠΛ003 Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο UNIX Μέρος 1 Παναγιώτης
Διαβάστε περισσότεραΕργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον
Διαβάστε περισσότεραΕνδεικτική περιγραφή μαθήματος
ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.
Διαβάστε περισσότεραΠληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο
Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2009 2010 Καθηγητής Δ. Γουνόπουλος Άσκηση 2 Σε συνέχεια της πρώτης άσκησης, σκοπός της δεύτερης εργασίας είναι η
Διαβάστε περισσότεραΤυχαίοι αριθμοί struct Αρχεία Διαμορφώσεις Συναρτήσεις Χειρισμός σφαλμάτων ΠΕΜΠΤΗ ΔΙΑΛΕΞΗ
ΠΕΜΠΤΗ ΔΙΑΛΕΞΗ Γεννήτρια τυχαίων αριθμών Η C++ παρέχει στο συναρτήσεις και κλάσεις και κλάσεων για την παραγωγή τυχαίων αριθμών. Υπάρχουν Μηχανισμοί παραγωγής σειράς τυχαίων bits. Κάθε bit έχει ίδια πιθανότητα
Διαβάστε περισσότεραΛύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ ΣΕ ΣΥΓΚΕΚΡΙΜΕΝΗ ΩΡΑ (1/2) +- Στις 13:00 το μεσημέρι θέλουμε
Διαβάστε περισσότεραΤµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Σεπτέµβριος 2013
Γράψτε όλες τις απαντήσεις σας σε αυτό το φυλλάδιο Οδηγίες για Α: Διαβάστε προσεκτικά όλες τις επιλογές σηµειώστε µε Χ (το πολύ) µια από αυτές. Μην επιλέγετε «στην τύχη» οι λανθασµένες απαντήσεις βαθµολογούνται
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως
Διαβάστε περισσότεραPERL. Δήμος Παύλου Δημήτρης Κουζαπάς
PERL Δήμος Παύλου Δημήτρης Κουζαπάς Perl Η Perl είναι μια διερμηνευομένη δυναμική γλώσσα προγραμματισμού. Συνδυάζει χαρακτηριστικά από διάφορες γλώσσες. (C/C++, Awk, Lisp κλπ) Διαδόθηκε λόγω της μεγάλης
Διαβάστε περισσότεραΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο
ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο (File) τη συστηµατική συγκέντρωση δεδοµένων. Τα περισσότερα προγράµµατα στη γλώσσα C, τα οποία διαπραγµατεύονται είσοδο, αποθήκευση και επεξεργασία δεδοµένων χρησιµοποιούν
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012 ΘΕΜΑ Α Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: 1. Κάθε βρόγχος που υλοποιείται με την εντολή Για μπορεί να
Διαβάστε περισσότεραΝτίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4. Λειτουργικά Συστήματα- Φροντιστήριο 2
Ντίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4 Φροντιστήριο 2 1 Λειτουργικό Σύστημα -> Multitasking Κάθε διεργασία μπορεί να ειδωθεί σαν μία δέσμη στοιχείων που διατηρούνται από τον πυρήνα
Διαβάστε περισσότεραΛειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Αρχείων Βασίλης Σακκάς 11/12/2013 1 Διαχείριση Αρχείων 1 Μακρόχρονη αποθήκευση πληροφοριών 1. Αποθήκευση μεγάλου όγκου δεδομένων 2. Οι αποθηκευμένες πληροφορίες πρέπει
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 8: Αρχεία και Δομές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών με C++
Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 5η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Πίνακες ως ορίσματα συναρτήσεων. Τα ορίσματα argc και argv της main.
Διαβάστε περισσότεραΑνάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο
Διαβάστε περισσότεραΚεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)
Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;
Διαβάστε περισσότεραΠρογραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15
Διαβάστε περισσότεραΠρογραµµατισµός 2 The shell
Προγραµµατισµός 2 The shell 1 CLI vs GUI! CLI (Command Line Interface) Μεγαλύτερη ευελιξία και ταχύτητα Πιο εύκολο να γίνουν πολύπλοκες λειτουργίες. find. -mtime -2 -name '*.txt' -exec sed -i.bak 's/hi/bye/g'
Διαβάστε περισσότεραΠληροφορική & Τηλεπικοινωνίες
Πληροφορική & Τηλεπικοινωνίες K18 Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2012 2013 Καθηγητές. Γουνόπουλος, I. Iωαννίδης Άσκηση 2 Παράδοση: 31/5 Ο σκοπός της εργασίας αυτής είναι η κατανόηση
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο
Διαβάστε περισσότεραHY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο
HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Δέυτερη Προγραμματιστική Εργασία Προθεσμία παράδοσης: 19/6/2017 1. Γενική Περιγραφή Στην δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε
Διαβάστε περισσότεραΠρογραμματιστικό Περιβάλλον
Προγραμματιστικό Περιβάλλον Προγραμματίζοντας τις βασικές αριθμητικές πράξεις 2 ο Γυμνάσιο Παλλήνης Καθηγήτρια: Ευφροσύνη Σκιαδά Πρόσθεση Αφαίρεση Πολλαπλασιασμός Σύμβολα αριθμητικών πράξεων Διαίρεση Τι
Διαβάστε περισσότεραΕργαστήριο 7 fork(), exec(), signals
Εργαστήριο 7 fork(), exec(), signals Στο εργαστήριο θα μελετηθούν: Παραδείγματα χρήσης των συναρτήσεων fork και exec Συνάρτηση waitpid Συνάρτηση WIFEXITED Συνάρτηση WEXITSTATUS Παράδειγμα χρήσης σημάτων
Διαβάστε περισσότεραΛιβανός Γιώργος Εξάμηνο 2017Β
Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!
Διαβάστε περισσότεραint array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι
Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι
Διαβάστε περισσότεραΒιβλιοθήκες Αφηρημένοι τύποι δεδομένων. Προγραμματισμός II 1
Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων Προγραμματισμός II 1 lalis@inf.uth.gr Βιβλιοθήκες Τμήματα λογισμικού ευρύτερης χρησιμότητας που έχουν σχεδιαστεί με σκοπό να διευκολύνουν την ανάπτυξη πολλών διαφορετικών
Διαβάστε περισσότερα