1η Εργαστηριακή Άσκηση

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

Download "1η Εργαστηριακή Άσκηση"

Transcript

1 1η Εργαστηριακή Άσκηση Στα πλαίσια της παρούσας εργαστηριακής άσκησης καλείστε να προσθέσετε στο σύστημα αρχείων του MINIX υποστήριξη για λίστες ελέγχου προσπέλασης (ACL ή access control list). Το υπάρχον σύστημα αρχείων του MINIX όπως και κάθε UNIX λειτουργικό σύστημα υποστηρίζει έλεγχο προσπέλασης βασισμένο στον προσδιορισμό των βασικών δικαιωμάτων προσπέλασης (read/write/execute) για τα τρία προκαθορισμένα σύνολα χρηστών (owner/group/other). Τα δικαιώματα αυτά ισχύουν για απλά αρχεία, καταλόγους αρχείων (directories) και αρχεία συσκευών (device files). Η προσθήκη ACL δίνει τη δυνατότητα στο διαχειριστή και τους χρήστες ενός συστήματος να προσδιορίσουν την πρόσβαση στα αρχεία του συστήματος με μεγαλύτερη σαφήνεια και ευελιξία προσφέροντας ένα λεπτότερα καταμερισμένο έλεγχο δικαιωμάτων. Η πλήρης υποστήριξη ACL στο MINIX απαιτεί τα εξής: 1. την υλοποίηση των κλήσεων συστήματος (system calls) που θα παρέχουν την δυνατότητα στον χρήστη να προσπελάσει/εισάγει/διαγράψει ACL σε ένα αρχείο 2. την ενσωμάτωση των νέων μηχανισμών ελέγχου προσπέλασης σε όλα τα υποσυστήματα του λειτουργικού συστήματος 3. την υλοποίηση εργαλείων που μπορούν να χρησιμοποιηθούν από τους χρήστες για τον έλεγχο των ACL από την γραμμή εντολών (command line) 4. την υποστήριξη των ACL από τα υπάρχοντα εργαλεία του συστήματος (π.χ. cp, tar, fsck) Στα πλαίσια της άσκησης θα υλοποιηθούν μόνο τα 1 και 2 καθώς και οι απαραίτητες τροποποιήσεις στο εργαλείο fsck που είναι υπεύθυνο για τον έλεγχο και την επιδιόρθωση του συστήματος αρχείων. Σκοπός της άσκησης αυτής είναι: η εκμάθηση της διαδικασίας υλοποίησης και εισαγωγής μίας νέας κλήσης συστήματος στο λειτουργικό σύστημα ΜΙΝΙΧ. η εξοικείωση με τον τρόπο διαδιεργασιακής επικοινωνίας (IPC) που χρησιμοποιεί το ΜΙΝΙΧ, δηλαδή το πέρασμα μηνυμάτων με χρήση rendezvous. η κατανόηση των δομών και της λειτουργίας των βασικότερων υποσυστημάτων του FS Server και γενικότερα του συστήματος αρχείων του MINIX. η κατανόηση και η εξοικείωση με την οργάνωση του πηγαίου κώδικα του MINIX και ειδικότερα με τον FS Server, την libc αλλά και τo πλήθος των header files που βρίσκονται διασκορπισμένα σε διάφορα directories του source code tree. 1. Η κλήση συστήματος acl() Στη συνέχεια παρατίθεται η ακριβής περιγραφή του interface της κλήσης συστήματος αλλά και της λειτουργικότητας που θα παρέχει το ACL σύστημα που καλείστε να υλοποιήσετε 1. #include <sys/acl.h> #include <sys/types.h> int acl(char *name, int cmd, int nacls, acl_t *aclbufp) Περιγραφή Η acl() χρησιμοποιείται για την διαχείριση της ACL ενός αρχείου 1 Η λειτουργικότητα που περιγράφεται στη συνέχεια, αν και εμφανίζει ομοιότητες με αντίστοιχες υλοποιήσεις που προσφέρουν αρκετά σύγχρονα Unix λειτουργικά συστήματα, είναι κατάλληλα τροποποιημένη για τους σκοπούς της παρούσας εργαστηριακής άσκησης. Σε καμία περίπτωση δεν είναι επαρκής στα πλαίσια ενός λειτουργικού συστήματος γενικού σκοπού.

2 name aclbufp δείχνει στο path του αρχείου του οποίου η ACL θα επεξεργαστεί. είναι ένας δεικτής στην πρώτη ACL εγγραφή ενός array από δομές acl_t. Η δήλωση αυτής της δομής βρίσκεται στο αρχείο <sys/acl.h> και είναι η εξής: typedef struct acl { long acl_flags; /* acl flags */ uid_t acl_id; /* user/group id */ mode_t acl_perm; /* permission bits */ } acl_t; Οι δυνατές τιμές του μέλους acl_flags είναι οι ακόλουθες: ACL_UID ACL_GID η μεταβλητή acl_perm περιέχει τα permissions για τον χρήστη με user id acl_id. η μεταβλητή acl_perm περιέχει τα permissions για τους χρήστες που ανήκουν στο group με group id acl_id. H τιμή του μέλους acl_perm είναι η ORed τιμή οποιουδήποτε υποσυνόλου των σταθερών ACL_RBIT, ACL_WBIT, ACL_XBIT, οι οποίες ορίζονται στο αρχείο <sys/acl.h> και αντιστοιχούν στην παροχή του δικαιώματος ανάγνωσης, εγγραφής και εκτέλεσης αντίστοιχα. nacls cmd προσδιορίζει το πλήθος των ACL εγγραφών που δείχνει ο pointer aclbufp. Οι δυνατές τιμές της παραμέτρου cmd είναι οι ακόλουθες: ACL_SET ACL_GET ACL_CLR ACL_CΝΤ nacls σε πλήθος ACL εγγραφές, από τον buffer aclbufp αποθηκεύονται στην ACL του αρχείου. Οποιεσδήποτε υπάρχουσες ACL εγγραφές θα αντικατασταθούν από τις νέες. Η εκτέλεση αυτής της λειτουργίας είναι δυνατή μόνο από τον τρέχοντα ιδιοκτήτη του αρχείου ή από τον υπερχρήστη. Όλοι οι κατάλογοι στην διαδρομή του name θα πρέπει να είναι προσπελάσιμοι (execute bit). στον buffer aclbufp αντιγράφονται το πολύ nacls σε πλήθος ACL εγγραφες από την ACL του αρχείου. Για την εκτέλεση αυτής της λειτουργίας δεν απαιτείται δικαίωμα ανάγνωσης στο αρχείο αλλά όλοι οι κατάλογοι στην διαδρομή του name θα πρέπει να είναι προσπελάσιμοι. Όλες οι ACL εγγραφές του αρχείου διαγράφονται. Το block στο οποίο αποθηκεύονται οι ACL εγγραφές θα πρέπει να αποδεσμευτεί. Για την εκτέλεση αυτής της λειτουργίας δεν απαιτείται δικαίωμα ανάγνωσης στο αρχείο αλλά όλοι οι κατάλογοι στην διαδρομή του name θα πρέπει να είναι προσπελάσιμοι. Επιστρέφεται το πλήθος των ACL εγγραφών του αρχείου. Για την εκτέλεση αυτής της λειτουργίας δεν απαιτείται δικαίωμα ανάγνωσης στο αρχείο αλλά όλοι οι κατάλογοι στην διαδρομή του name θα πρέπει να είναι προσπελάσιμοι Η λειτουργία ACL_SET επιτυγχάνει μόνο αν ισχύουν όλες οι παρακάτω προτάσεις για τις εγγραφές που περιέχονται στον buffer aclbufp: Δεν υπάρχουν διπλές εγγραφές. Μία εγγραφή είναι διπλή αν είναι του ιδίου τύπου (user ή group) και περιέχει το ίδιο acl_id. Το πλήθος των εγγραφών είναι το του μέγιστου πλήθος ACL εγγραφών που μπορούν να αποθηκευτούν σε ένα block. To μέγιστο αυτό πλήθος ορίζεται ως η σταθερά NACLS στο

3 Επιστρεφόμενη τιμή αρχείο <sys/acl.h>. Όλες οι εγγραφές περιέχουν έγκυρες τιμές των πεδίων acl_id και acl_flags. H μηδενική τιμή για το πεδίο acl_flags δεν θεωρείται έγκυρη. Στην περίπτωση που η κλήση της acl() πετύχει επιστέφει το πλήθος των ACL εγγραφών που αντιγράφηκαν στον buffer aclbufp για cmd ACL_GET, ACL_CNT και 0 για cmd ACL_SET, ACL_CLR. Σε περίπτωση αποτυχίας η acl() επιστρέφει -1 και αποθηκεύει τον κωδικό λάθους στην global μεταβλητή errno. Κωδικοί λαθους Αν η acl() αποτύχει η global μεταβλητή errno περιέχει μία από τις παρακάτω τιμές: ΕΑCCES EINVAL EINVAL ο χρήστης δεν έχει δικαίωμα προσπέλασης σε κάποιο τμήμα του pathname η τιμής της παραμέτρου cmd δεν είναι έγκυρη η παράμετρος cmd είναι ACL_SET αλλά οι εγγραφές που δόθηκαν δεν ικανοποιούν τις προϋποθέσεις που περιγράφονται παραπάνω EINVAL EIO EPERM EPERM ENOENT ENOENT EROFS η τιμή της παραμέτρου nacls είναι < 0 ή > NACLS ένα Ι/Ο σφάλμα συνέβη κατά την αποθήκευση ή την ανάκτηση της ACL η παράμετρος cmd είναι ACL_SET ή ACL_CLR αλλά το effective id του χρήστη δεν είναι ίσο με αυτό του ιδιοκτήτη του αρχείου ή του superuser το αρχείο είναι ειδικό αρχείο τύπου named pipe το αρχείο ή κάποιο τμήμα του pathname δεν υπάρχει η παράμετρος cmd είναι ACL_CNT ή ACL_GET αλλά το αρχείο δεν έχει ACL block το αρχείο βρίσκεται σε readonly σύστημα αρχείων ENOSYS το σύστημα αρχείων δεν είναι MINIX ver. 2 Σχόλια Η acl() υλοποιείται μόνο για σύστημα αρχείων ΜΙΝΙΧ έκδοσης 2. Για τα ειδικά αρχεία τύπου named pipe δεν υλοποιούνται ACL. Επίσης λόγω έλλειψης υποστήριξης από τα εργαλεία του συστήματος η ACL ενός αρχείου δεν διατηρείται κατά την αντιγραφή ενός αρχείου (με χρήση εντολών όπως cp, tar etc.). Ο αλγόριθμός για τον έλεγχο προσπέλασης για ένα αρχείο που διαθέτει ACL είναι ο ακόλουθος: Για τον υπολογισμό των δικαιωμάτων πρόσβασης μίας διεργασίας με effective user id (EUID) και effective group id (EGID) αντίστοιχα γίνονται οι παρακάτω έλεγχοι, με την σειρά που αναγράφονται. Άπαξ και καταστεί δυνατός ο προσδιορισμός των δικαιωμάτων μίας διεργασίας βάσει ενός από τους παρακάτω ελέγχους, οι υπόλοιποι έλεγχοι δεν πραγματοποιούνται. 1. Αν το EUID της διεργασίας είναι το ίδιο με το user id του ιδιοκτήτη του αρχείου ο έλεγχος πρόσβασης γίνεται βάσει των δικαιωμάτων ιδιοκτήτη (owner permissions). 2. Αν το EUID της διεργασίας είναι το ίδιο με το acl_id οποιασδήποτε ACL εγγραφής τύπου

4 ACL_UID του αρχείου ο έλεγχος πρόσβασης γίνεται βάσει των δικαιωμάτων της συγκεκριμένης ACL εγγραφής. 3. Αν το EGID της διεργασίας είναι το ίδιο με το group id του αρχείου ο έλεγχος πρόσβασης γίνεται βάσει των δικαιωμάτων ομάδας του αρχείου (group permissions). 4. Αν το EGID της διεργασίας είναι το ίδιο με το acl_id οποιασδήποτε ACL εγγραφής τύπου ACL_GID του αρχείου ο έλεγχος πρόσβασης γίνεται βάσει των δικαιωμάτων της συγκεκριμένης ACL εγγραφής. 5. Σε κάθε άλλη περίπτωση ο έλεγχος πρόσβασης γίνεται βάσει των δικαιωμάτων του αρχείου για τους λοιπούς χρήστες (other permissions). Ο υπερχρήστης όπως και στην περίπτωση του συστήματος προστασίας χωρίς ACL έχει ειδικά προνόμια όσον αφορά το σύστημα αρχείων. Τα προνόμια αυτά παραμένουν ίδια και επεκτείνονται ως εξής: ο υπερχρήστης έχει δικαίωμα ανάγνωσης και εγγραφής σε κάθε αντικείμενο του συστήματος αρχείων. ο υπερχρήστης έχει δικαίωμα προσπέλασης (execute bit) σε κάθε κατάλογο αρχείων του συστήματος αρχείων. ο υπερχρήστης έχει δικαίωμα εκτέλεσης για κάποιο αρχείο - εκτός των καταλόγων - μόνο αν το execution bit είναι 1 σε μία τουλάχιστον εγγραφή της ACL ή ένα από τα τρία execution bits του υπάρχοντος συστήματος προστασίας είναι Ζητούμενα 1. Τροποποιείστε τον File System Server έτσι ώστε να υποστηρίζει την κλήση συστήματος acl() όπως ακριβώς αυτή προσδιορίστηκε στην προηγούμενη ενότητα. Η υλοποίηση σας θα πρέπει να ακολουθεί τους εξής κανόνες: ο έλεγχος προσπέλασης βασισμένος σε ACL υποστηρίζεται τόσο για αρχεία όσο και για καταλόγους το ID του μηνύματος για τη νέα κλήσης συστήματος είναι αυστηρά το 77 οι απαραίτητες δηλώσεις και σταθερές για την υποστήριξη της acl() αποθηκεύονται στο αρχείο <sys/acl.h>, τα περιεχόμενα του οποίου πρέπει να είναι αυστηρά αυτά που σας δίνονται στο Παράρτημα Β. για την αποστολή του μηνύματος της acl() ο χρήστης θα χρησιμοποιεί την κλήση της βιβλιοθήκης συστήματος που εσείς θα υλοποιήσετε στο αρχείο /usr/src/lib/other/acl.c όπως περιγράφεται στο Παράρτημα Α. Ο τύπος μηνύματος που θα χρησιμοποιήσετε θα είναι ο m1. Η δομή του μηνύματος που θα χρησιμοποιήσετε θα είναι αυστηρά η εξής: m1_i1: το μήκος του pathname συμπεριλαμβανομένου και του null character m1_i2: η παράμετρος cmd m1_i3: η παράμετρος nacls m1_p1: η παράμετρος name m1_p2: η παράμετρος aclbufp Η υλοποίηση σας θα περιορίζεται σε συστήματα αρχείων MINIX ver.2. H ACL ενός αρχείου πρέπει να αποθηκεύετε σαν ένα array από NACLS σε πλήθος δομές τύπου acl_t. To array αυτό αποθηκεύετε σε ένα μοναδικό block και ο δείκτης σε αυτό το block θα πρέπει να αποθηκεύεται στην τελευταία θέση για δείκτη σε block που διαθέτει ένα MINIX V2 i-node. Η θέση αυτή είναι δεσμευμένη για μελλοντική χρήση ως triple indirect block pointer αλλά δεν χρησιμοποιείται κατά αυτόν τον τρόπο στο υπάρχον σύστημα. Προσέξτε ότι τα ειδικά αρχεία τύπου named pipe χρησιμοποιούν αυτό το πεδίο για άλλο σκοπό. Όπως σημειώνεται και στην προηγούμενη ενότητα η λειτουργία ACL_CLR θα πρέπει να αποδεσμεύει το ACL block. H υλοποίηση σας (για λόγους interoperability) δεν θα πρέπει να υποθέτει σε καμία περίπτωση ότι το array των δομών acl_t περιέχει τις ACL εγγραφές με κάποια ορισμένη σειρά.

5 2. Τροποποιείστε κατάλληλα το πρόγραμμα fsck (/usr/src/commands/simple/fsck.c) που είναι υπεύθυνο για τον έλεγχο της συνέπειας του συστήματος αρχείων έτσι ώστε να αναγνωρίζει την χρήση του ACL block. 3. Παραδοτέα Στα πλαίσια της άσκησης θα πρέπει να παραδώσετε τα εξής: 1. Ένα αρχείο σε.zip format που θα περιέχει τα ακόλουθα: i. Όλα τα αρχεία του πηγαίου κώδικα του συστήματος που αλλάξατε/προσθέσατε. Ο κώδικας θα πρέπει να είναι επαρκώς σχολιασμένος. Στα αρχεία κώδικα που προΰπαρχαν, οι προσθήκες κώδικα θα πρέπει να εσωκλείονται στις εξής γραμμές σχολίων: /* OSLAB START */ κώδικας που προσθέσατε /* OSLAB END */ Αντίστοιχα τα τμήματα του αρχικού κώδικα που δεν θέλετε να περιληφθούν πρέπει να σχολιάζονται με την ένδειξη CROP START και CROP END στην αρχή και στο τέλος τους αντίστοιχα. ii. Το binary αρχείο του kernel με όνομα 2.0.r<α/α ομάδας> (π.χ. για την ομάδα με α/α 17 το όνομα του αρχείου θα πρέπει να είναι 2.0.r17). 2. Τεχνική αναφορά (σε μορφή.pdf κατά προτίμηση) όπου θα εξηγείτε με παράθεση σύντομων σχολίων τις αλλαγές που πραγματοποιήσατε στον πηγαίο κώδικα του MINIX. Τα παραπάνω θα πρέπει να σταλούν με στο πριν την καταληκτική ημερομηνία παράδοσης που θα ανακοινωθεί σύντομα στο forum του μαθήματος. Το θα πρέπει να αποσταλεί με Subject της μορφής OSLAB_1 <α/α ομάδας> (π.χ. για την ομάδα με α/α 17, Subject: OSLAB_1 17). 4. Υποδείξεις 1. Ακολουθείστε τη γενικότερη υπόδειξη που δίνεται για την υλοποίηση ασκήσεων τέτοιου τύπου και η οποία είναι η σταδιακή προσέγγιση του προβλήματος. Μην προσπαθείτε να υλοποιήσετε το σύνολο των ζητουμένων απευθείας. Κατασκευάστε ενδιάμεσες λειτουργικές εκδόσεις που υλοποιούν ένα υποσύνολο των ζητουμένων και των οποίων την ορθότητα μπορείτε εύκολα να επαληθεύσετε. Για παράδειγμα η συγκεκριμένη άσκηση μπορεί να χωριστεί στα εξής τμήματα: i. υλοποίηση ενός dummy system call που εκτυπώνει απλά ένα μήνυμα ii. επέκταση του (i) έτσι ώστε να εκτυπώνονται τα ορίσματα που περιέχονται στο μήνυμα του system call iii. επέκταση του (ii) έτσι ώστε να υποστηρίζεται η εισαγωγή ACL σε ένα αρχείο iv. επέκταση του (iii) έτσι ώστε να υποστηρίζεται η ανάκτηση της ACL ενός αρχείου v. επέκταση του (iv) έτσι ώστε να λαμβάνεται υπόψιν η ACL ενός αρχείου στην διαδικασία υπολογισμού των δικαιωμάτων πρόσβασης μίας διεργασίας σε αυτό Κάποια από τα παραπάνω βήματα μπορούν να ενοποιηθούν. Αυτό καθορίζεται ελεύθερα και δυναμικά από εσάς βάσει της εμπειρίας σας. 2. Επωφεληθείτε από το γεγονός ότι σας διατίθεται ο πηγαίος κώδικας πλήθους άλλων systems calls που ενδέχεται να υλοποιούν λειτουργίες που επιθυμείτε να χρησιμοποιήσετε και στην acl(). Συγκεκριμένα

6 αναζητείστε την υλοποίηση συναρτήσεων όπως: i. chmod() που λαμβάνει ως όρισμα το path προς ένα αρχείο ii. stat() που επιστρέφει το αποτέλεσμα της σε μία θέση μνήμης στο address space της διεργασίας 3. Διαβάστε προσεκτικά τις δομές που περιέχονται στα εξής αρχεία: i. fproc.h: περιέχει τη δομή όπου διατηρεί ο FS Server την πληροφορία για κάθε διεργασία του συστήματος ii. inode.h: περιέχει τη δομή όπου αποθηκεύονται τα εν χρήση i-nodes (i-node table) iii. buf.h: περιέχει τη δομή όπου αποθηκεύεται ένα cache block iv. super.h: περιέχει τη δομή όπου αποθηκεύεται το super block ενός συστήματος αρχείων 4. Η γενική ανάλυση της οργάνωσης του συστήματος αρχείων ενός λειτουργικού συστήματος Unix που παρατίθεται στο [1] μπορεί να αποτελέσει βασικό εργαλείο κατανόησης του τρόπου λειτουργίας του FS Server του ΜΙΝΙΧ. Επιπλέον στο [2] περιγράφεται με πληρότητα και λεπτομέρεια τόσο η σχεδίαση και λειτουργία όλων των τμημάτων του MINIX όσο και ο κώδικας υλοποίησης τους. Ιδιαίτερης σημασίας είναι οι υποενότητες 5.5.1, 5.5.2, , Υπάρχουν συνολικά έξι διαφορετικές εκδοχές της δομής message που χρησιμοποιείται από τον μηχανισμό περάσματος μηνυμάτων του ΜΙΝΙΧ, καθώς αυτή ορίζεται ως μία struct το ένα μέλος της οποίας είναι ένα union. O ορισμός των διαφορετικών εκδοχών του union καθώς και του message βρίσκονται στο αρχείο /usr/include/minix/type.h. Προσέξτε ότι μετά από τους ορισμούς στο αρχείο περιέχονται #define δηλώσεις που ως σκοπό έχουν να κάνουν πιο απλή την πρόσβαση στα μέλη του message ανάλογα με το ποιος από τους εναλλακτικούς ορισμούς του union έχει επιλεχθεί. Έτσι είναι αρκετά απλό να διαπιστώσετε ότι αν επιλέξετε να χρησιμοποιήσετε το 1 ο είδος μηνύματος και θέλετε να αναφερθείτε στο στοιχείο m1_i1 του union mu θα μπορούσατε αντί του δύσχρηστου και δυσμνημόνευτου m.m_u.m_m1.m1_p1 να χρησιμοποιείται το σύντομο m.m1_p1. Επίσης προσέξτε ότι τα ονόματα των πεδίων του μηνύματος υποδηλώνουν και τον τύπο τους. Συγκεκριμένα τα ονόματα ακολουθούν τον εξής κανόνα: mx_yz, όπου: x = 1..6, δηλώνει το είδος του m_u που έχουμε επιλέξει y = {i, p, l, f, ca, c}, δηλώνει τον τύπο δεδομένων του συγκεκριμένου μέλους i : int p: pointer l : long f: function ca: character array c: char z : αύξων αριθμός του τύπου y στο συγκεκριμένο είδος μηνύματος Συνοπτικά τα έξι διαφορετικά είδη μηνυμάτων απεικονίζονται στο ακόλουθο σχήμα: m1_i1 m2_i1 m3_i1 m4_l1 m5_c2 m5_c1 m6_i1 m1_i2 m2_i2 m3_i2 m4_l2 m5_i1 m6_i2 m1_i3 m2_i3 m3_p1 m4_l3 m5_i2 m6_i3 m1_p1 m2_l1 m4_l4 m5_l1 m6_l1 m1_p2 m2_l2 m4_l5 m5_l2 m6_f1 m1_p3 m2_p1 m3_ca1 m5_l3

7 6. Σαν debugging tool χρησιμοποιείστε την printf() ( macro name της printk()). H σύνταξη και τα ορίσματα της είναι ίδια με αυτά της συνάρτησης βιβλιοθήκης printf()με τη διαφορά ότι τα ορίσματα της εκτυπώνονται πάντοτε στο tty0. 7. Για τον έλεγχο της συνέπειας του συστήματος αρχείων ενός partition μπορείτε να εκτελείται την εντολή fsck r /dev/hd1a (για το /) fsck r /dev/hd1c (για το /usr) Πριν την τροποποίηση του κώδικα του fsck είναι βέβαιο ότι θα λαμβάνετε κάποιο λάθος για out-of-range zones. Το σφάλμα αυτό αρχικά μπορείτε να το αγνοήσετε επιλέγοντας n στην ερώτηση εάν θέλετε να διορθωθεί το πρόβλημα που εντοπίστηκε. Εντούτοις το fsck μπορεί να χρησιμοποιηθεί για να εντοπίσει και να επιδιορθώσει blocks που δεν έχετε αποδεσμεύσει από το zone map κατά τη δημιουργία/διαγραφή των ACLs. 8. Μην σβήσετε τον αρχικό kernel /minix/2.0.0 για να μπορέσετε, στη περίπτωση που κάτι απρόβλεπτο συμβεί λόγω του καινούργιου image, να ξεκινήσετε το σύστημα και να διορθώσετε το πρόβλημα που προέκυψε. Λόγω της φύσης της συγκεκριμένης άσκησης υπάρχει ο κίνδυνος ανεπανόρθωτης καταστροφής του συστήματος αρχείων. Διατηρείται τουλάχιστον ένα αντίγραφο ασφαλείας ολόκληρου του virtual δίσκου του Bochs στον οποίο εργάζεστε. 9. Ο κώδικας του FS έχει την ιδιαιτερότητα ότι απαιτεί μεγάλο πλήθος ελέγχων. Η ορθότητα της υλοποίησης εξαρτάται κατά πολύ από τον εντοπισμό και την ταξινόμηση των ελέγχων αυτών. Για την δική σας διευκόλυνση προσπαθήστε να καταγράψετε σε μία λίστα τους ελέγχους που πιστεύετε ότι είναι απαραίτητοι πριν ξεκινήσετε την υλοποίηση του συστήματος. Παράρτημα Α Προσθήκη κλήσης συστήματος στο λειτουργικό σύστημα ΜΙΝΙΧ Η διαδικασία υλοποίησης μία νέας κλήσης συστήματος στο MINIX αποτελείται από δύο στάδια. Στο 1 o στάδιο υλοποιείται στον FS(ΜΜ) 2 Server η διαδικασία εξυπηρέτησης του system call. Στο 2 o στάδιο υλοποιείται η συνάρτηση βιβλιοθήκης που θα καλεί ο χρήστης μέσα από τα προγράμματα του (σε επίπεδο χρήστη) και η οποία αναλαμβάνει να αποστείλει το κατάλληλο μήνυμα στον FS Server. Μετά το πέρας της ακόλουθης διαδικασίας ο χρήστης θα έχει τη δυνατότητα να χρησιμοποιεί το νέο system call απλά συμπεριλαμβάνοντας στον πηγαίο κώδικα του προγράμματος του το header file unistd.h (/usr/include/unistd.h) Η ακόλουθη διαδικασία προϋποθέτει ότι έχετε κάνει login ως χρήστης bin και όχι ως root και αυτό διότι το σύστημα είναι εγκατεστημένο κατά τέτοιο τρόπο έτσι ώστε όλα τα source files του MINIX να ανήκουν στον χρήστη bin. Στη συνέχεια περιγράφονται συνοπτικά και τα δύο στάδια της διαδικασίας. 1. System Call Handler: Bήμα 1 ο : Ανοίξτε το αρχείο /usr/include/minix/callnr.h. Αυξήσετε κατά ένα (78) το συνολικό πλήθος των system calls (NCALLS). Προσθέστε στο τέλος του αρχείου μία #define statement με το ID της system call που θα υλοποιήσετε (77). Bήμα 2 ο : Ανοίξτε το αρχείο /usr/src/fs/table.c. Στο τέλος της ανάθεσης τιμών στο call_vector προσθέστε μία γραμμή με το όνομα της συνάρτησης εξυπηρέτησης που θα υλοποιήσετε στη συνέχεια. Το όνομα που θα δώσετε στη συνάρτηση δεν είναι απαραίτητα ίδιο με αυτό που θα καλεί ο χρήστης. Μάλιστα το coding style του Tanenbaum μάλλον υπαγορεύει να είναι της μορφής do_systemcallname (π.χ. do_foobar). 2 H διαδικασία για την προσθήκη μίας κλήσης συστήματος που εξυπηρετείται από τον MM είναι αντίστοιχη.

8 Βήμα 3 ο : Ανοίξτε το αρχείο /usr/src/mm/table.c. Επαναλάβετε την διαδικασία του 2 ου βήματος με τη διαφορά ότι αντί του ονόματος της συνάρτησης διαχείρισης πρέπει να εισάγεται στο τέλος του call_vector το όνομα της ειδικής συνάρτησης εξυπηρέτησης no_sys που επιστρέφει απλά την τιμή EINVAL. Αυτό γίνεται διότι και τα δύο tables (των FS και MM) πρέπει να περιέχουν NCALLS στο πλήθος στοιχεία. Βήμα 4 ο : Ανοίξτε το αρχείο /usr/src/fs/proto.h. Προσθέστε τη δήλωση της συνάρτησης εξυπηρέτησης που θα υλοποιήσετε. Το όρισμα της πρέπει να είναι τύπου void και η επιστρεφόμενη τιμή της τύπου int, όπως ίσως να παρατηρήσατε και στον ορισμό του τύπου του call_vector. H δήλωση γίνεται μέσω της macro-εντολής _PROTOTYPE, που ορίζεται στο αρχείο /usr/include/ansi.h και στην ουσία εξασφαλίζει την συμβατότητα μεταξύ compilers που υποστηρίζουν K&R ή ANSI C στυλ δήλωσης ορισμάτων. Το πρώτο όρισμα της macro είναι ο επιστρεφόμενος τύπος και το όνομα της συνάρτησης και το δεύτερο είναι τα ορίσματα της συνάρτησης μέσα σε παρενθέσεις και διαχωρισμένα με κώμα. Βήμα 5 ο : Στο βήμα αυτό πρέπει να υλοποιήσετε τη συνάρτηση εξυπηρέτησης που δηλώσατε στο table.c. Για ευκολία 3 ανοίξτε το αρχείο /usr/src/fs/misc.c και στο τέλος του προσθέστε τον ορισμό (κυρίως σώμα) της συνάρτησης. Προσέξτε ότι η συνάρτηση πρέπει να δηλωθεί ως public με τη βοήθεια της macro PUBLIC. 2. Library Call: Στο επίπεδο του χρήστη πρέπει να υλοποιηθεί μία συνάρτηση η οποία κατασκευάζει ένα μήνυμα βάσει των ορισμάτων που έδωσε ο χρήστης και στέλνει το μήνυμα στον κατάλληλο εξυπηρετητή του 3 ου layer του MINIX (π.χ. FS Server). H συνάρτηση αυτή πρέπει να ενσωματώθεί στη βασική βιβλιοθήκη συστήματος του MINIX (libc). Bήμα 1 ο : Ανοίξτε το αρχείο /usr/include/unistd.h. Προσθέστε στο μπλοκ που περιέχεται μέσα στη συνθήκη #ifdef _MINIX, τον ορισμό της συνάρτησης που θα παρέχεται στον χρήστη για την χρήση της system call. Bήμα 2 ο : Δημιουργείστε ένα αρχείο στον κατάλογο /usr/src/lib/posix με κατάλληλο όνομα (π.χ. _foobar.c για την system call foobar). Στο αρχείο προσθέστε κώδικα αντίστοιχο του ακόλουθου 4 : #include <lib.h> #define foobar _foobar #include <unistd.h> int foobar( ) { message m; /* αντιγραφή των παραμέτρων της συνάρτησης στα πεδία του μήνυματος m */ return (_syscall(fs, FOOBAR, &m)); } Η _syscall είναι μία συνάρτηση βιβλιοθήκης η οποία αναλαμβάνει να αποστείλει το μήνυμα m (3 ο όρισμα) στον εξυπηρετητή που της δηλώνεται μέσω του 1 ου ορίσματος και στη συνέχεια σε περίπτωση που η system call επέστρεψε με κάποιον κωδικό λάθους να επιστρέψει την τιμή 1 και να αποθηκεύσει τον κωδικό λάθους στην global μεταβλητή errno. Ο πηγαίος κώδικας της βρίσκεται στο αρχείο /usr/src/lib/other/syscall.c. 3 Διαφορετικά αν δημιουργήσετε ένα νέο αρχείο.c θα πρέπει να αλλάξετε κατάλληλα και το αρχείο Makefile που βρίσκεται στον κατάλογο /usr/src/fs 4 Στον κατάλογο /usr/src/lib/posix περιέχονται πλήθος αρχείων από τα οποία μπορείτε να βρείτε χρήσιμα παραδείγματα

9 Bήμα 3 ο : Δημιουργείστε ένα αρχείο στον κατάλογο /usr/src/lib/syscall με κατάλληλο όνομα (π.χ. foobar.s). Το αρχείο αυτό είναι απαραίτητο για το linking της libc και απλά πρέπει να περιέχει τον ακόλουθο assembly κώδικα:.sect.text.extern foobar.define _foobar.align 2 _foobar: jmp foobar Bήμα 4 ο : Ανοίξτε τα αρχεία /usr/src/lib/posix/makefile και /usr/src/lib/syscall/makefile και προσθέστε τους κατάλληλους κανόνες έτσι ώστε κατά την κατασκευή της libc να συμπεριληφθούν τα αρχεία _foobar.c και foobar.s αντίστοιχα. Η διαδικασία αυτή είναι αρκετά απλή αν παρατηρήσετε τους κανόνες που περιέχονται ήδη στα αρχεία Makefile και αφορούν τα υπόλοιπα αρχεία κώδικα που περιέχονται στον αντίστοιχο κατάλογο. Κernel Compilation: Για να χρησιμοποιήσετε την νέα κλήση συστήματος θα πρέπει να κατασκευάσετε ένα καινούργιο kernel image πέραν αυτού που ήδη περιέχεται προεγκατεστημένο στο σύστημα (/minix/2.0.0) και να το εγκαταστήσετε. H διαδικασία αυτή είναι απλή, αν και χρονοβόρα τουλάχιστον την πρώτη φορά οπότε και θα γίνουν compile όλα τα αρχεία τόσο του kernel όσο και των fs, mm και init. Η διαδικασία είναι η ακόλουθη: Bήμα 1 ο : Αφού θέσετε ως τρέχοντα (εκτελώντας cd) τον κατάλογο /usr/src/tools. Εκτελέστε τις εντολές: make clean make hdboot Η δεύτερη εντολή όχι μόνο θα κατασκευάσει ένα νέο kernel image αλλά και θα το εγκαταστήσει στον κατάλογο /minix. Το πρόγραμμα /boot, που αναλαμβάνει το bootstrapping του ΜΙΝΙΧ, κοιτάζει σε αυτόν τον κατάλογο και φορτώνει στη μνήμη το νεότερο image που περιέχει. Είναι αρκετά χρήσιμο σε περίπτωση που το νέο image που κατασκευάσατε δημιουργεί σοβαρά προβλήματα (π.χ. το σύστημα δεν μπορεί καν να αρχικοποιηθεί ή προκαλεί kernel panic) μπορείτε να επιλέξετε κάποιο παλιότερο kernel image με τον εξής τρόπο. Κατά την εκκίνηση του συστήματος αντί να πιέσετε το πλήκτρο = πιέστε Esc και στη συνέχεια εισάγετε στο prompt την εντολή image=<image_path>, όπου <image_path> είναι το πλήρες path ενός λειτουργικού image (π.χ. /minix/2.0.0). Στη συνέχεια απλά εκτελέστε την εντολή boot. Την επόμενη φορά που θα προσπαθήσετε να κατασκευάσετε ένα image, εκτελέστε απλά την εντολή make hdboot, η οποία θα κάνει recompile μόνο τα αρχεία που έχουν υποστεί κάποια αλλαγή. Library Compilation: Πέρα από τον νέο τροποποιημένο πυρήνα που μόλις εγκαταστήσατε, θα πρέπει να κατασκευάσετε και μία νέα βιβλιοθήκη συστήματος την οποία θα χρησιμοποιήσει ο χρήστης για να καλέσει το νέο system call. Πριν πραγματοποιήσετε τα επόμενα βήματα κρατήστε ένα αντίγραφο της αρχικής βιβλιοθήκη συστήματος που βρίσκετε στο αρχείο /usr/src/lib/libc.a. Η διαδικασία κατασκευής της νέας libc είναι η ακόλουθη: Bήμα 1 ο : Αφού θέσετε ως τρέχοντα (εκτελώντας cd) τον κατάλογο /usr/src/lib. Εκτελέστε τις εντολές: make make install H πρώτη εντολή κατασκευάζει τη νέα βιβλιοθήκη συστήματος και την αποθηκεύει στο αρχείο /usr/src/lib/libc.a. Η δεύτερη εντολή την αντιγράφει στον κατάλογο /usr/lib/i386 (ή στον αντίστοιχο κατάλογο που ορίζει η τρέχουσα αρχιτεκτονική του συστήματος).

10 Παράρτημα Β Τα περιεχόμενα του αρχείου <sys/acl..h> είναι τα εξής: #ifndef _ACL_H #define _ACL_H #include <sys/types.h> typedef struct acl { long acl_flags; /* acl flags */ uid_t acl_id; /* user id */ mode_t acl_perm; /* permission bits */ } acl_t; #define NACLS (BLOCK_SIZE/sizeof(acl_t)) /* max # of ACL entries / file */ /* acl option definitions */ #define ACL_SET 1 /* set ACL */ #define ACL_GET 2 /* get ACL */ #define ACL_CLR 3 /* remove ACL block */ #define ACL_CNT 4 /* # ACL entries */ /* acl type definitions */ #define ACL_GID 01 /* acl_id contains a group id*/ #define ACL_UID 02 /* acl_id contains a user id*/ /* acl permission bits */ #define ACL_RBIT /* read permission */ #define ACL_WBIT /* write permission */ #define ACL_XBIT /* execute permission */ #ifndef _ANSI_H #include <ansi.h> #endif _PROTOTYPE( int acl, (char *name, int cmd, int nacls, acl_t *aclbufp) ); #endif /* _ACL_H */ Βιβλιογραφία [1] Modern Operating Systems, Andrew S. Tanenbaum, 2 nd ed., Prentice Hall 2001 [2] Operating Systems, Design and Implementation, Andrew S. Tanenbaum and Albert S. Woodhull, 2 nd ed., Prentice Hall 1996

Πρότυπη Εργαστηριακή Άσκηση

Πρότυπη Εργαστηριακή Άσκηση Πρότυπη Εργαστηριακή Άσκηση Στα πλαίσια της παρούσας προπαρασκευαστικής άσκησης καλείστε να υλοποιήσετε μία κλήση συστήματος (system call) η οποία θα δέχεται ως είσοδο το path ενός αρχείου και θα επιστρέφει

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

2η Εργαστηριακή Άσκηση

2η Εργαστηριακή Άσκηση 2η Εργαστηριακή Άσκηση Στα πλαίσια της παρούσας εργαστηριακής άσκησης καλείστε να προσθέσετε υποστήριξη σημαφόρων (semaphores) στο MINIX. Το υπάρχον σύστημα δεν προσφέρει τη δυνατότητα χρήσης σημαφόρων

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

Εργαστήριο Λειτουργικών Συστημάτων (330E) Εργαστηριακή Άσκηση

Εργαστήριο Λειτουργικών Συστημάτων (330E) Εργαστηριακή Άσκηση Πανεπιστήμιο Πατρών Πολυτεχνική Σχολή Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Εργαστήριο Λειτουργικών Συστημάτων (330E) Εργαστηριακή Άσκηση 2005-2006 Θέμα Υλοποίηση ενός υποτυπώδους /proc

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

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview Εργαστήριο Λειτουργικών Συστημάτων Minix Overview Σύνοψη 5ης ιάλεξης Λειτουργικό Σύστημα Minix Οργάνωση του Λειτουργικού Συστήματος Οργάνωση πηγαίου κώδικα Minix recompilation Σύνοψη Μαθήματος Σύνοψη Μαθήματος

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας

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

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

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

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

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο 2018 2019 Καθηγητής Δ. Γουνόπουλος Άσκηση 1/2 - Προθεσμία: 18 Ιαν. 2019 Σκοπός της εργασίας αυτής είναι η κατανόηση

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

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2015 2016 Ι. Ιωαννίδης Άσκηση 3: Αποθήκευση κατά στήλες Προθεσμία: 25 Ιανουαρίου 2016, 11:59μμ Ο σκοπός της εργασίας

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

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

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

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

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

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

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

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη

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

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο 2016 2017 Καθηγητής Δ. Γουνόπουλος Άσκηση 2 - Εξωτερική Ταξινόμηση Παράδοση: 20/01/2017 Σκοπός της εργασίας αυτής

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

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο 2016 2017 Καθηγητής Δ. Γουνόπουλος Άσκηση 1 - Προθεσμία: 9 Δεκ. 2016 Σκοπός της εργασίας αυτής είναι η κατανόηση

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

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

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

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

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2018-19 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη

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

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

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

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

2η Προγραµµατιστική Εργασία

2η Προγραµµατιστική Εργασία Προγραµµατισµός ικτύων (Ε-01) 2η Προγραµµατιστική Εργασία Επέκταση ϐασικής ϐιβλιοθήκης δικτυακού προγραµµατισµού και χρήση της για την υλοποίηση παράλληλου εξυπηρετητή πρωτοκόλλου µεταφοράς αρχείων ιδάσκων

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Μακροχρόνια

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2011 2012 Καθηγητές Μ. Χατζόπουλος, Δ. Γουνόπουλος Άσκηση 1 Παράδοση 4 Μαϊου Σκοπός της εργασίας αυτής είναι η κατανόηση

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2009 2010 Καθηγητής Δ. Γουνόπουλος Άσκηση 2 Σε συνέχεια της πρώτης άσκησης, σκοπός της δεύτερης εργασίας είναι η

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

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Το επίπεδο προτεραιότητας µιας διεργασίας µπορεί να αλλάξει µε χρήση της συνάρτησης nice. Κάθε διεργασία διαθέτει µια τιµή που καλείται

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2010 2011 Δ. Γουνόπουλος Ι. Ιωαννίδης Άσκηση 1: Συγχώνευση Εγγραφών Δυαδικών Αρχείων Προθεσμία: 2 Μαΐου 2011, 5:00μμ

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

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2016-2017 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα

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

Εργαστήριο Λειτουργικών Συστημάτων. File Systems

Εργαστήριο Λειτουργικών Συστημάτων. File Systems Εργαστήριο Λειτουργικών Συστημάτων File Systems Σύνοψη ιάλεξης Λειτουργικό Σύστημα Minix Λειτουργίες Συστήματος Αρχείων ομή Συστήματος Αρχείων Ανάγνωση Αρχείων 2 Filesystem στο MINIX 3 Οπως όλα τα Λ.Σ.,

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

B. Ενσωμάτωση Ιθαγενών Μεθόδων

B. Ενσωμάτωση Ιθαγενών Μεθόδων B. Ενσωμάτωση Ιθαγενών Μεθόδων Στο τέλος αυτού του κεφαλαίου θα μπορείτε: Να δημιουργείτε κώδικα Java που θα φορτώνει βιβλιοθήκες και θα καλεί ιθαγενείς μεθόδους (native methods). Να χρησιμοποιείτε τη

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

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init()

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init() Πληροφορική & Τηλεπικοινωνίες K18 Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2008 Αν. Καθηγητής Δημήτρης Γουνόπουλος Καθηγητής Γιάννης Ιωαννίδης 'Ασκηση 1: Στατικός Κατακερματισμός (Ημερομηνία

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση

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

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

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

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2010 2011 Δ. Γουνόπουλος Ι. Ιωαννίδης Άσκηση 2: Υλοποίηση Ευρετηρίου Β+ Δένδρου Προθεσμία: 6 Ιουνίου 2011, 11:59μμ

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

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο Στο φετινό εργαστήριο του μαθήματος, έχετε τη δυνατότητα να δουλέψετε σε 2 περιβάλλοντα. Ένα σε περιβάλλον UNIX μέσω απομακρυσμένης σύνδεσης σε

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

Εργαστήριο ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX. Εισαγωγή

Εργαστήριο ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX. Εισαγωγή Εισαγωγή Εργαστήριο 2 ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX Συνεχίζουμε την εργαστηριακή μελέτη των Λειτουργικών Συστημάτων εξετάζοντας τις δομές των αρχείων και καταλόγων και τη διαχείρισή τους στο

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Αρχείων Βασίλης Σακκάς 11/12/2013 1 Διαχείριση Αρχείων 1 Μακρόχρονη αποθήκευση πληροφοριών 1. Αποθήκευση μεγάλου όγκου δεδομένων 2. Οι αποθηκευμένες πληροφορίες πρέπει

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

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό Υπολογιστικά συστήματα: Στρώματα 1 ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗς ΠΛΗΡΟΦΟΡΙΚΗΣ επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό δεδομένα Εισαγωγή στο Unix Περιεχόμενα Εισαγωγή 2 Εισαγωγή

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός

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

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

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

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

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

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

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση του περιβάλλοντος Dev C++ το οποίο θα χρησιμοποιηθεί για την υλοποίηση

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες

Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες Σύνταξη εντολών Περιεχόµενα Οργάνωση και χειρισµός αρχείων Μπαλαντέρ ικαιώµατα χρήσης αρχείων και οµάδες χρηστών Έλεγχος διεργασιών Σύνταξη εντολών

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

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Δημιουργία Νέου αρχείου Από το μενού προγραμμάτων ανοίγετε το DEV C++ Επιλέγετε File-> New-> Source File (συντόμευση πληκτρολογίου Ctrl+N)

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο M. Χατζόπουλος. Προθεσμία: 19/01/2015

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο M. Χατζόπουλος. Προθεσμία: 19/01/2015 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2013 2014 M. Χατζόπουλος Προθεσμία: 19/01/2015 Σκοπός της εργασίας είναι η κατανόηση της εσωτερικής λειτουργίας

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 Προθεσµία: 8/1/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 14 Δυναμική διαχείριση μνήμης Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Στατική δέσμευση μνήμης Με τη δήλωση απλών μεταβλητών

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2013-2014 Προθεσµία: 7/1/2014, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης 1 Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

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

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

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

ΑΣΚΗΣΗ: ΔΙΑΧΕΙΡΙΣΗ ΚΑΤΑΛΟΓΟΥ ΑΡΧΕΙΩΝ ΕΝΟΣ DIRECTORY. Μέρος Α`

ΑΣΚΗΣΗ: ΔΙΑΧΕΙΡΙΣΗ ΚΑΤΑΛΟΓΟΥ ΑΡΧΕΙΩΝ ΕΝΟΣ DIRECTORY. Μέρος Α` ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ ΕΡΓΑΣΤΗΡΙΟ ΑΣΚΗΣΗ: ΔΙΑΧΕΙΡΙΣΗ ΚΑΤΑΛΟΓΟΥ ΑΡΧΕΙΩΝ ΕΝΟΣ DIRECTORY Περιγραφή: Μέρος Α` Για τη διαχείριση του συστήματος αρχείων (file system) ένα λειτουργικό σύστημα χρησιμοποιεί τη δενδροειδή

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

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering Οργάνωση και Σχεδίαση Η/Y (HY232) Εργαστήριο 1 Χειμερινό Εξάμηνο 2016-2017 Στόχοι του εργαστηρίου Εντολές

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

Privilege Separation. Dimitris Mitropoulos

Privilege Separation. Dimitris Mitropoulos Privilege Separation Dimitris Mitropoulos dimitro@di.uoa.gr πως μπορούμε να καθορίζουμε ποιός έχει πρόσβαση σε τι Separation Layers Επίπεδα Διαχωρισμού Ο διαχωρισμός αντικειμένων μπορεί να γίνει: 1. Σε

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

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

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

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

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Μάθημα 4ο Σύστημα αρχείων Μιχαηλίδης Παναγιώτης Περιεχόμενα Σύστημα αρχείων Εισαγωγή Μονοπάτια διαδρομής Φόρτωση και αποφόρτωση συστημάτων αρχείων Ιεραρχική οργάνωση

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

Προγραμματισμός ΙΙ Εαρινό εξάμηνο Εργασία 3 Βιβλιοθήκη για λειτουργίες σε γράφους

Προγραμματισμός ΙΙ Εαρινό εξάμηνο Εργασία 3 Βιβλιοθήκη για λειτουργίες σε γράφους Εργασία 3 Βιβλιοθήκη για λειτουργίες σε γράφους Αναπτύξτε μια βιβλιοθήκη για την δημιουργία / διαχείριση γράφων και την υποστήριξη βασικών λειτουργιών αναζήτησης σε αυτούς. Η βιβλιοθήκη πρέπει να υποστηρίζει

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:03 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

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

Εργαστήριο 5. Εαρινό Εξάμηνο

Εργαστήριο 5. Εαρινό Εξάμηνο Τομέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ134 - Εισαγωγή στην Οργάνωση και Σχεδίαση Η/Υ 1 Εργαστήριο 5 Εαρινό Εξάμηνο 2012-2013 Στό χόι τόυ εργαστηρι όυ Χρήση στοίβας Αναδρομή Δομές δεδομένων Δυναμική

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 4 - Editor Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στο Unix Υπολογιστικά συστήματα: Στρώματα 1 επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό δεδομένα Περιεχόμενα 2 Εισαγωγή

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

an:3 are:6 a:10

an:3 are:6 a:10 Άσκηση 1 Προγραμματισμός Συστήματος Προθεσμία: 18 Μαΐου 2014 Σ αυτή την άσκηση θα υλοποιήσετε ένα σύστημα auto-complete κατά τη διάρκεια πληκτρολόγησης. Ο πυρήνας του συστήματος είναι μια δομή trie (απλό

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

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 4 Λογισμικό συστήματος Καραμαούνας Πολύκαρπος 1 4.1 Λογισμικό συστήματος (application software) Καραμαούνας Πολύκαρπος 2 Λογισμικό εφαρμογών (application software): προγράμματα για την αντιμετώπιση

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ ΕΡΓΑΣΤΗΡΙΟ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΔΙΑΔΙΚΑΣΙΑ ΕΞΕΤΑΣΗΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ ΕΡΓΑΣΤΗΡΙΟ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΔΙΑΔΙΚΑΣΙΑ ΕΞΕΤΑΣΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ ΕΡΓΑΣΤΗΡΙΟ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΔΙΑΔΙΚΑΣΙΑ ΕΞΕΤΑΣΗΣ Οι σπουδαστές που έχουν ολοκληρώσει με επιτυχία το εργαστήριο του Προγραμματισμού Ι, τυπικά είναι εξοικειωμένοι με: τη χρήση ολοκληρωμένου

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στο Λ.Σ. UNIX Εργαστηριακές Σημειώσεις Εισαγωγή στο UNIX Αρμοδιότητες των Λ.Σ. Διαχείριση πόρων o o Συσκευές I/O (disk, keyboard, mouse, terminal) Μνήμη Διαχείριση

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

Εργαστήριο 9: Αρχεία

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

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 1 η Εισαγωγή στη Γλώσσα C Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

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

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Στόχοι Αναδροµή Σηµείωση: Απαγορεύονται static και global µεταβλητές. Πριν ξεκινήσετε Πηγαίνετε στο φάκελο ce120 και κατασκευάστε µέσα

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 15 Μαΐου 2017, ώρα 23:59. Τρόπος Παράδοσης:

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

Πληροφορική & Τηλεπικοινωνίες

Πληροφορική & Τηλεπικοινωνίες Πληροφορική & Τηλεπικοινωνίες K18 Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2012 2013 Καθηγητές. Γουνόπουλος, I. Iωαννίδης Άσκηση 2 Παράδοση: 31/5 Ο σκοπός της εργασίας αυτής είναι η κατανόηση

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

Εργαστήριο Λειτουργικών Συστημάτων. Inside System Calls

Εργαστήριο Λειτουργικών Συστημάτων. Inside System Calls Εργαστήριο Λειτουργικών Συστημάτων Inside System Calls Ιεράρχηση των επιπέδων του Minix Οι user processes χρησιμοποιούν το 2ο επίπεδο για να αξιοποιήσουν τις λειτουργίες του Λ.Σ. Οι shared libraries κάνουν

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

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

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 12 η : Δυναμική Ανάθεση Θέσης Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 14 Μαΐου 2018, ώρα 23:59 Τρόπος Παράδοσης: Χρησιμοποιώντας

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

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input). Κ24: Προγραμματισμός Συστήματος 2η Εργασία Εαρινό Εξάμηνο 2017 Προθεσμία Υποβολής: Κυριακή 30 Απριλίου 2017 Ωρα 23:59 Εισαγωγή στην Εργασία: Ο στόχος της εργασίας αυτής είναι να εξοικειωθείτε με την δημιουργία

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2012-2013 Προθεσµία: 18/12/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης 1 Οδηγίες αποστολής άσκησης Διαδικαστικά Η εργασία

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

Ενσωματωμένα Συστήματα

Ενσωματωμένα Συστήματα Ενσωματωμένα Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 6 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

Προγραμματισμός συστημάτων UNIX/POSIX

Προγραμματισμός συστημάτων UNIX/POSIX Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) Ανάγκη Ότι είδαμε μέχρι τώρα μπορεί

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

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο Project Phase 1 ΗΥ - 335α Χειμερινό εξάμηνο 2012-2013 Διδάσκουσα: Παπαδοπούλη Μαρία Υπεύθυνος βοηθός: Σουρλίγκας Μανώλης, surligas@csd.uoc.gr

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

Προγραμματισμό για ΗΜΥ

Προγραμματισμό για ΗΜΥ ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 3 Εισαγωγή στην C Θέματα ιάλεξης Σύνταξη και Σημασιολογία

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ»

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ» ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ» ΗΜΕΡ.ΑΝΑΘΕΣΗΣ: Δευτέρα 21 Δεκεμβρίου 2015 ΗΜΕΡ.ΠΑΡΑΔΟΣΗΣ: Δευτέρα 25 Ιανουαρίου 2016 Διδάσκοντες:

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

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Στόχοι Αναδροµή Σηµείωση: Απαγορεύονται static και global µεταβλητές. Πριν ξεκινήσετε Πηγαίνετε στο φάκελο ce120 και κατασκευάστε µέσα

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

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία Mεταγλωττιστές 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex Σκοπός: Το μάθημα αυτό αναφέρεται: στις κανονικές εκφράσεις στην δομή και το περιεχόμενο του αρχείου-εισόδου του flex Γενικά Θεωρία Κατά την

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

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

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

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

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

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

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

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

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 8ο Εργαστήριο

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 8ο Εργαστήριο ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 8ο Εργαστήριο Χρήστες και Ομάδες Χρηστών Εντολές su και sudo Δικαιώματα Αρχείων Ειδικά Δικαιώματα

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

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

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

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

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

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

Ενσωματωμένα Συστήματα

Ενσωματωμένα Συστήματα Ενσωματωμένα Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ ANDROID-DEVKIT No:01 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Μάθημα 4ο Δίσκοι Μιχαηλίδης Παναγιώτης Περιεχόμενα Δίσκοι Διασυνδέσεις δίσκων Γεωμετρία δίσκου Προσθήκη ενός δίσκου στο Linux Εγκατάσταση δίσκου Συστήματα αρχείων

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

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

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