Διάλεξη 12: Προχωρημένη Είσοδος/Έξοδος Χαμηλού Επιπέδου (Advanced Low-Level I/O) Κεφάλαιο 4 Stevens & Rago

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

Download "Διάλεξη 12: Προχωρημένη Είσοδος/Έξοδος Χαμηλού Επιπέδου (Advanced Low-Level I/O) Κεφάλαιο 4 Stevens & Rago"

Transcript

1 ΕΠΛ371 - Προγραμματισμός Συστημάτων Διάλεξη 12: Προχωρημένη Είσοδος/Έξοδος Χαμηλού Επιπέδου (Advanced Low-Level I/O) Κεφάλαιο 4 Stevens & Rago Δημήτρης Ζεϊναλιπούρ 12-1

2 Περιεχόμενο Διάλεξης Στην προηγούμενη διάλεξη μελετήσαμε τις εξής βασικές κλήσεις συστήματος για διαχείριση αρχείων (open, creat, read, write, lseek, close) Σε αυτή την ενότητα θα μελετήσουμε επιπλέον δυνατότητες του υπό-συστήματος αρχείων του πυρήνα. Συγκεκριμένα θα μελετήσουμε A. Διαχείριση Μέτα-πληροφορίων Αρχείων (sys/stat.h) B. Διαχείριση Αρχείων C. Διαχείριση Καταλόγων (dirent.h) D. Παραδείγματα Χρήσης 12-2

3 Μέτα-πληροφορίες Αρχείων Το open, creat, read, write, lseek, close μας επιτρέπει να έχουμε πρόσβαση στο περιεχόμενο αρχείων. Τι γίνεται με τις υπόλοιπες πληροφορίες; (όπως π.χ., αυτές που επιστρέφονται από την ls al). δηλαδή filesize, permissions, last modification date, owner, κτλ.) Αυτές οι πληροφορίες ονομάζονται Μέτα- Δεδομένα (Meta-data) ή εναλλακτικά Μέτα- Πληροφορίες (Meta-information). Εδώ θα μελετήσουμε που αποθηκεύονται και πως ανακτώνται. 12-3

4 Μέτα-πληροφορίες Αρχείων Που αποθηκεύονται? Γνωρίζουμε ότι το inode (index node) είναι μια δομή δευτερεύουσας μνήμης η οποία φορτώνεται στην κύρια μνήμη από τον πυρήνα όταν ανοίγει ένα αρχείο και η οποία περιέχει δείκτες στα πραγματικά δεδομενα. Στην Μνήμη υπάρχει ένα I-node Table το οποίο περιέχει τις μέτα-πληροφορίες των ανοικτών αρχείων. Πρόσβαση σε αυτές τις μέτα-πληροφορίες έχουμε μέσω των εντολών συστήματος stat/fstat/lstat. DISK RAM KERNEL inode Table USER A) stat ή open filename C) fstat() B) Load inode See next slide D) 12-4

5 Μέτα-πληροφορίες Αρχείων Που αποθηκεύονται? H εντολές stat/fstat/lstat εκτυπώνουν αυτή την περιοχή πληροφοριών ενός i-node Τα υπόλοιπα έχουν σχέση με την ανάκτηση των blocks που περιέχουν την ΕΠΛ πραγματική 371 Προγραμματισμός πληροφορία Συστημάτων 12-5 του αρχείου.

6 Μέτα-πληροφορίες Αρχείων To system call Stat() Για πρόσβαση στις μέτα-πληροφορίες εκτελούμε την κλήση συστήματος #include <sys/stat.h> int stat(char *path, struct stat *buf) Returns: -1=Error, 0=Success η οποία συμπληρώνει τα πεδία της δομής buf με τις πληροφορίες που είναι καταχωρημένες στο i-node του κόμβου με to όνομα path Εάν έχουμε ήδη ανοίξει το αρχείο τότε χρησιμοποιούμε τον file descriptor του ανοικτού αρχείου με την εντολή fstat. int fstat(int fd, struct stat *buf) Υπάρχει και η lstat η οποία θα μελετηθεί σε λίγο. 12-6

7 Μέτα-πληροφορίες Αρχείων Εκτελώντας την stat μας επιστρέφετε Τύπος και Πεδίο Περιγραφή ino_t st_ino Αριθμός I-Node nlink_t st_nlink μεταξύ άλλων. (δείτε το sys/stat.h για περισσότερα) Αριθμός (σκληρών) συνδέσμων στο αρχείο (π.χ. ln oldfilename newfilename θα αυξήσει το nlink του oldfilename από 1 σε 2) uid_t st_uid UNIX userid (το ίδιο με αυτό στο /etc/passwd) gid_t st_gid UNIX groupid (το ίδιο με αυτό στο /etc/passwd) off_t st_size Μέγεθος Αρχείου σε bytes (εάν είναι regular αρχείο) Τα πιο κάτω είναι το πλήθος δευτερολέπτων που έχουν παρέλθει από την 1/1/1970. Μπορούμε να τα μορφοποιήσουμε σε μια πιο εύληπτη μορφή με τις συναρτήσεις της βιβλιοθήκης time.h (συγκεκριμένα ctime) (δες παράδειγμα 1 πιο κάτω) time_t st_atime time of last access (of the file s content) R time_t st_mtime time of last data modification (of the file s content) W or A time_t st_ctime time of status change (inode change) ctime & mtime usually same blksize_t st_blksize Συνιστάμενο I/O Block για το αντικείμενο το οποίο μπορεί να διαφέρει μεταξύ συστημάτων αρχείων (π.χ., 4096 Bytes) mode_t st_mode Δικαιώματα ΕΠΛ 371 Πρόσβασης Προγραμματισμός Αρχείου Συστημάτων 12-7 (επόμενη διαφάνεια& παράδειγμα 2)

8 File Creation Timestamps [atime, mtime, ctime and crtime/btime (ext4)] $ touch test.txt $ stat test.txt File: test.txt Size: 0 Blocks: 0 IO Block: regular empty file Device: 3fh/63d Inode: Links: 1 Access: (0600/-rw ) Uid: ( 1240/ dzeina) Gid: ( 231/ faculty) Context: system_u:object_r:nfs_t:s0 Access: :31: # time of last access (of the file s content) R Modify: :31: # time of last data modification (file s content) W or A Change: :31: # time of status change (inode change) Birth: - # ext4 newly introduced attribute to show when it appeared on filesystem $ echo "a" > test.txt $ stat test.txt File: test.txt Size: 2 Blocks: 8 IO Block: regular file Device: 3fh/63d Inode: Links: 1 Access: (0600/-rw ) Uid: ( 1240/ dzeina) Gid: ( 231/ faculty) Context: system_u:object_r:nfs_t:s0 Access: :31: Modify: :31: Change: :31: Birth:

9 File Creation Timestamps [atime, mtime, ctime and crtime/btime (ext4)] $ chmod 777 test.txt $ stat test.txt File: test.txt Size: 2 Blocks: 8 IO Block: regular file Device: 3fh/63d Inode: Links: 1 Access: (0777/-rwxrwxrwx) Uid: ( 1240/ dzeina) Gid: ( 231/ faculty) Context: system_u:object_r:nfs_t:s0 Access: :31: # time of last access (of the file s content) Read Modify: :31: # time of last data modification (file s content) Write or A Change: :33: # time of status change (inode change) Birth: - $ cat test.txt a $ stat test.txt File: test.txt Size: 2 Blocks: 8 IO Block: regular file Device: 3fh/63d Inode: Links: 1 Access: (0777/-rwxrwxrwx) Uid: ( 1240/ dzeina) Gid: ( 231/ faculty) Context: system_u:object_r:nfs_t:s0 Access: :33: Modify: :31: Change: :33: Birth:

10 Timestamps (Disabling atime) time updates are by far the biggest IO performance deficiency that Linux has today. To disable the writing of access times, you need to mount the filesystem(s) in question with the noatime option. mount /home -o remount,noatime To make the change permanent, update your /etc/fstab and add noatime to the options field. Before: /dev/mapper/sys-home /home xfs defaults 0 2 After: /dev/mapper/sys-home /home xfs nodev,nosuid,noatime 0 2 the nomtime mount option (on some unix) does *not* disable mtime updates, instead it performs a *lazy* mtime update - so the mtime is still updated, just ΕΠΛ delayed 371 Προγραμματισμός a little Συστημάτων nodev - Don't interpret block special devices on the filesystem. order in which filesystem checks are done at reboot time. nosuid - Block the operation of suid, and sgid bits

11 Μέτα-πληροφορίες Αρχείων To stat.st_mode μπορεί να αξιοποιηθεί με την χρήση των πιο κάτω macros (τα οποία ορίζονται μέσα στην sys/stat.h) S_ISLNK(st_mode) symbolic link S_ISREG(st_mode) regular file S_ISDIR(st_mode) directory S_ISCHR(st_mode) character device S_ISBLK(st_mode) block device S_ISFIFO(st_mode) fifo S_ISSOCK(st_mode) socket H sys/stat.h περιέχει πολλές άλλες σταθερές τις οποίες καλείστε να μελετήσετε (man -s2 stat) 12-11

12 Παράδειγμα 1: mystat Να υλοποιήσετε σε C και με χρήση κλήσεων συστήματος, ένα απλό πρόγραμμα το οποίο να εκτυπώνει τις μέτα-πληροφορίες κάποιου αρχείου το οποίο δίδεται σαν παράμετρος. π.χ../mystat /etc/passwd 12-12

13 Παράδειγμα 1: stat H εκτέλεση της εντολής stat του UNIX $ stat /etc/passwd File: `/etc/passwd' Μέγεθος Αρχείου σε bytes du -b /etc/passwd DeviceID (see man s2 stat) Size: 2005 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: :35: Modify: :46: Change: :46: Συνιστάμενο Block Size // Access Data // Change Data // Change Inode 12-13

14 Παράδειγμα 1: mystat #include <sys/stat.h> #include <unistd.h> // STDOUT_FILENO #include <stdio.h> // printf() #include <time.h> // ctime() int main(int argc, char *argv[]) { struct stat buf; printf("%s\n", argv[1]); if (stat(argv[1], &buf) < 0) { perror("lstat error"); exit(1); } } printf("+ I-Node: %li\n", buf.st_ino); printf("+ Size: %d\n", buf.st_size); printf("+ Hard Links: %d\n", buf.st_nlink); printf("+ User ID: %d\n", buf.st_uid); printf("+ Group ID: %d\n", buf.st_gid); printf("+ Last Content Access (atime): %s", ctime(&buf.st_atime)); printf("+ Last I-Node Change (ctime): %s", ctime(&buf.st_ctime)); printf("+ Last Content Change (mtime): %s", ctime(&buf.st_mtime)); printf("+ Preferred I/O Block: %d\n", buf.st_blksize); printf("+ Allocated Blocks: %d\n", buf.st_blocks); return 0; 12-14

15 Παράδειγμα 1: Eκτέλεση mystat $./mystat /etc/passwd /etc/passwd + I-Node: Size: 2005 Permissions, etc. + Hard Links: 1 + User ID: 0 + Group ID: 0 + Last Content Access (atime): Sat Jan 13 13:35: Last I-Node Change (ctime): Tue Mar 11 12:46: Last Content Change (mtime): Tue Mar 11 12:46: Preferred I/O Block: Allocated Blocks: 8 $ls -ial /etc/passwd rw-r--r-- 1 root root 2005 Mar /etc/passwd 12-15

16 Παράδειγμα 2: filetype Να υλοποιήσετε σε C και με χρήση κλήσεων συστήματος, ένα απλό πρόγραμμα filetype το οποίο εκτυπώνει για κάθε αρχείο το οποίο δίδεται σαν παράμετρο, τον τύπο του αρχείου (regular, directory, ). π.χ.,./filetype *./filetype /etc/passwd /etc /dev/initctl /dev/log /dev/tty /dev/cdrom 12-16

17 Παράδειγμα 2: filetype #include <sys/stat.h> // STAT related #include <unistd.h> // STDOUT_FILENO void printstat(struct stat *buf); int main(int argc, char *argv[]) { struct stat buf; int i; } for (i=1; i<argc; i++) { printf("%s:", argv[i]); if (lstat(argv[i], &buf) < 0) { perror("lstat error"); continue; } printstat(&buf); } return 0; void printstat(struct stat *buf) { char *ptr; if (S_ISREG(buf->st_mode)) ptr = "regular"; else if S_ISDIR(buf->st_mode) ptr = "directory"; else if S_ISCHR(buf->st_mode) ptr = "character special"; else if S_ISBLK(buf->st_mode) ptr = "block special"; else if S_ISFIFO(buf->st_mode) ptr = "fifo"; else if S_ISLNK(buf->st_mode) ptr = "symbolic link"; else if S_ISSOCK(buf->st_mode) ptr = "socket"; else ptr = "Unknown Mode"; printf("%s\n", ptr); } Γιατί lstat αντί stat? Σε περίπτωση symbolic link μας ενδιαφέρουν τα metadata του ίδιου του link (ότι ΕΠΛ είναι 371 symbolic Προγραμματισμός link δηλαδή) Συστημάτων και όχι του αρχείου στο οποίο δείχνει το link Περισσότερα στη συνέχεια 12-17

18 Παράδειγμα 1: Εκτέλεση filetype Αποτέλεσμα Εκτέλεσης $ # Σημειώστε ότι το /dev/cdrom είναι symbolic link στο /dev/hda. $ls -al /dev/cdrom lrwxrwxrwx 1 root root 8 Feb /dev/cdrom -> /dev/hda $./filetype /etc/passwd /etc /dev/initctl /dev/log /dev/tty /dev/cdrom /dev/hda /etc/passwd:regular /etc:directory /dev/initctl:fifo /dev/log:socket /dev/tty:character special /dev/cdrom:symbolic link /dev/hda:block special 12-18

19 Η Κλήση Συστήματος rename() int rename (char *oldpath, char *newpath) Returns: -1=Error, 0=Success Μετονομάζει τον κόμβο με το όνομα oldpath σε newpath. Ουσιαστικά η τροποποίηση γίνεται μέσα στο directory block το οποίο περιέχει το inode+όνομα του αρχείου Αλλαγή στο inode μόνο Το rename δουλεύει για οποιαδήποτε αρχεία (και καταλόγους) είτε δίδονται με σχετική ή με απόλυτη διεύθυνση

20 Η Κλήση Συστήματος chmod() int chmod (char *path, int mode) Returns: -1=Error, 0=Success Manipulate File Descriptor Αλλάζει τα δικαιώματα προστασίας του κόμβου με όνομα path σε αυτά που περιγράφονται από το mode κατά τον γνωστό τρόπο (σταθ. S_Ixxxx στο fcntl.h ή ακέραιο) Η αλλαγή γίνεται μέσα στο inode όπως φαίνεται πιο κάτω Υπάρχει και αντίστοιχη κλήση συστήματος fchmod, η οποία αντί για path περιμένει ένα file descriptor (περιγραφέα αρχείου) mode 12-20

21 Οι Κλήσεις Συστήματος link() / unlink() #include <unistd.h> int link(char *oldpath, char *newpath) int unlink(char *path) Returns: -1=Error, 0=Success Η link δημιουργεί ένα σκληρό σύνδεσμο newpath στο αρχείο FILE το οποίο έχει όνομα oldpath. Με αυτό τον τρόπο το FILE.st_nlink (πεδίο του INODE) αυξάνεται κατά ένα (δες επόμενη διαφάνεια). H unlink διαγράφει τον σκληρό σύνδεσμο. Ουσιαστικά απλά μειώνεται κατά ένα ο μετρητής FILE.st_nlink Εάν ο μετρητής γίνει ίσος με 0 τότε διαγράφονται τα blocks του αρχείου FILE από την δευτερεύουσα μνήμη

22 Οι Κλήση Συστήματος link() st_nlink st_nlink Αριστερά δείχνουμε ο αρχείο name1 με inode #12345 (το filename είναι εντελώς αχρείαστο πλέον!) το οποίο έχει stat.st_nlink=1. Δεξιά δείχνουμε την περίπτωση που έχει δημιουργηθεί ένα hard link μέσω της ln name name2 ή μέσω της link(). Τώρα το stat.st_nlink=

23 Οι Κλήσεις Συστήματος symlink() / readlink() #include <unistd.h> int symlink(char *oldpath, char *newpath) int readlink(char *path, char *buf, int size) Returns: -1=Error, 0=Success and readline returns the final number of bytes read to buf. Η symlink δημιουργεί ένα συμβολικό σύνδεσμο από την oldpath στην newpath (όπως η ln s oldpath newpath). H readlink επιστρέφει στο buf (μεγέθους size bytes), το όνομα στο οποίο δείχνει ο συμβολικός σύνδεσμος. oldpath -> newpath H συνάρτηση readlink επιστρέφει σαν τιμή εξόδου τον αριθμό των bytes που διαβάστηκαν στο buf. π.χ. char buffer[20]; int size = 0; symlink("/tmp/crawler", "mycrawler"); size = readlink("mycrawler", &buffer, 20); buffer[size]='\0'; printf("%s %d\n", buffer, size); => Εκτυπώνει /tmp/crawler

24 Συμβολικοί Σύνδεσμοι, symlink και stat.st_nlink Data Block DataBlock Δεξιά φαίνεται ότι το dirb/name2 είναι symbolic link στο /dira/name1 (μέσω της εντολής ``ln s /dira/name1 dirb/name2 ή symlink( /dira/name1, dirb/name2) Επειδή το symbolic link δημιουργεί ένα νέο inode#13579 με stat.st_nlink=1 Σημείωση: Εάν θέλουμε τις πληροφορίες για το inode ενός symbolic link (και όχι του αρχείου το οποίο αναφέρεται από το link) δηλαδή του inode#13579 αντί του inode#12345, τότε χρησιμοποιούμε: int lstat(char *path, struct stat *buf) Και OXI την int stat(char *path, struct stat *buf) 12-24

25 Διαχείριση Καταλόγων Οι Κλήσεις Συστήματος mkdir () / rmdir() #include <sys/stat.h> int mkdir (char *path, int mode) int rmdir(char *path) Returns: -1=Error, 0=Success H mkdir δημιουργεί ένα νέο κατάλογο με όνομα path και δικαιώματα προστασίας mode (π.χ., rwx = 700) To path είναι σχετικό (π.χ., tmp) ή απόλυτο (π.χ., /tmp/f1) Σημειώστε ότι δικαιώματα τα οποία δεν επιτρέπονται από την τρέχουσα τιμή του umask δε δίνονται στον κατάλογο. Π.χ. umask 022 => 755 (δηλαδή το umask περιορίζει την εντολή αυτή) Επομένως εάν δώσουμε 777 τότε η umask θα θέσει τελικά τα permissions όπως τα θέλει. Η rmdir διαγραφεί τον κατάλογο με το όνομα path, εφόσον ο κατάλογος είναι κενός. Αυτή η προϋπόθεση υπάρχει για να μην μένουν τα blocks αρχείων και τα inodes τους ορφανά! Ένα κοινό λάθος είναι να δώσουμε 600 (rw-) δικαιώματα. Οι κατάλογοι χρειάζονται τουλάχιστο (rwx) στο USER, δηλαδή 700 για παρουσίαση των αποτελεσμάτων της ls

26 Διαχείριση Καταλόγων Προσπέλαση Καταλόγων Τα περιεχόμενα καταλόγων τα οποία περιέχουν μια λίστα από (d_ino,d_name) μπορούν να προσπελασθούν μέσω των συναρτήσεων βιβλιοθήκης (όχι κλήσεις συστήματος) opendir, readdir και closedir (το d_name είναι συνήθως 255 chars) H πρόσβαση σε ένα κατάλογο γίνεται μέσω ενός δείκτη DIR * (ανάλογου με τον FILE *) που χρησιμοποιείται στην συνάρτηση βιβλιοθήκης stdio.h Ωστόσο μόνο ο πυρήνας μπορεί να γράψει στο περιεχόμενο ενός καταλόγου (εν αντίθεση με τα κοινά αρχεία). Αυτό συμβαίνει για να προστατέψει ο πυρήνας τον χρήστη από λάθη τα οποία θα καταστρέψουν το δένδρο καταλόγων d_ino d_name d_ino,d_name struct dirent 12-26

27 Διαχείριση Καταλόγων Προσπέλαση Καταλόγων Σημειώστε ότι κάθε αρχείο καταλόγου περιέχει στην αρχή του dir block τις i-node διευθύνσεις: «.» υφιστάμενου καταλόγου και «..» προηγουμένου καταλόγου Αυτό γίνεται για να είναι εφικτή η πλοήγηση προς τα πάνω στο κατάλογο του υποσυσ. αρχείων Γονικός κατάλογος 12-27

28 Προσπέλαση Καταλόγων Οι Κλήσεις βιβλιοθήκης opendir (), closedir(), readdir() #include <dirent.h> DIR *opendir (char *path) Returns: ΝULL=Error else pointer to DIR. int closedir(dir *dp) Returns: -1=Error, 0=Success struct dirent { ino_t d_ino; /* inode number */ char d_name[256]; /* filename */ }; H opendir ανοίγει τον κατάλογο με όνομα path και επιστρέφει ένα δείκτη σε DIR για την πρόσβαση στον κατάλογο. Η closedir κλείνει τον κατάλογο το οποίο έχει ανοίξει μέσω του *dp #include <dirent.h> struct dirent *readdir (DIR *dp) Διαβάζει το επόμενο entry του ανοικτού καταλόγου dp. Επιστρέφει ένα δείκτη σε δομή struct dirent που αντιστοιχεί στο τρέχον στοιχείο του περιεχομένου του καταλόγου (από τον δείκτη dp) Επιστρέφει NULL όταν δεν υπάρχουν άλλα στοιχεία για διάβασμα

29 Διαχείριση Καταλόγων Προσπέλαση Καταλόγων #include <unistd.h> int chdir(const char *path); και fchdir(int filedes) Return: -1=Error, 0=Success char *getcwd(char *buf, size_t size); Return: NULL=Error, buf=success Το chdir επιτρέπει σε ένα πρόγραμμα να αλλάξει τον τρέχων κατάλογο (όπως την εντολή cd). O τρέχον κατάλογος εδώ ορίζεται μέσα στις εσωτερικές δομές της διεργασίας και δεν αναφέρεται στο «.» του inode. Για να βρείτε τον τρέχων κατάλογο εκτελέστε την συνάρτηση συστήματος getcwd (δηλ., όμοιο με την "pwd") Η getcwd γράφει το όνομα του τρέχων καταλόγου στο buf (μεγέθους size) όπως η εντολή readlink που είδαμε προηγουμένως

30 Παράδειγμα 3: lsdirr Να υλοποιήσετε σε C και με χρήση κλήσεων συστήματος, ένα απλό πρόγραμμα lsdirr(pathname) το οποίο εκτυπώνει αναδρομικά όλα τα αρχεία τα οποία αναφέρονται μέσω του pathname. π.χ../lsdir ~/public_html/courses/epl

31 Παράδειγμα 3: lsdirr #include <stdio.h> // printf #include <sys/types.h> // opendir, readdir, closedir #include <dirent.h> #include <sys/stat.h> // lstat // function prototype void printdir(char *, int); int main(int argc, char *argv[]) { printf("directory scan of %s:\n", argv[1]); printdir(argv[1], 3); printf("done.\n"); exit(0); } Κενά παραγράφου void printdir(char *dir, int indent) { DIR *dp; struct dirent *entry; struct stat statbuf; if((dp = opendir(dir)) == NULL) { perror(dir); return; } chdir(dir); // change directory closedir(dp); } while((entry = readdir(dp))!= NULL) { lstat(entry->d_name,&statbuf); if(s_isdir(statbuf.st_mode)) { /* Found a directory, but ignore. and.. */ if(strcmp(".",entry->d_name) == 0 strcmp("..",entry->d_name) == 0) continue; printf("%*s%s/\n",indent,"",entry->d_name); /* Recurse using a new indent offset */ printdir(entry->d_name,indent); } else printf("%*s%s\n",indent,"",entry->d_name); } chdir(".."); 12-31

32 Παράδειγμα 1: Εκτέλεση lsdirr Αποτέλεσμα Εκτέλεσης $./ldirr ~/public_html/courses/epl111 Directory scan of /home/faculty/dzeina/public_html/courses/epl111: contract.pdf exercises/ ex1.pdf ex2.pdf exercises.html index.html lock.gif notes.html pdf.gif proofwriting.pdf rosen.png slides/ lect3.pdf lect1.pdf lect15.pdf ucy.gif ex-manual.pdf done. Σημείωση: Δεν υπάρχει κάποια συγκεκριμένα σειρά 12-32

Διάλεξη 12: Πποσωπημένη Είζοδορ/Έξοδορ Χαμηλού Επιπέδος (Advanced Low-Level I/O) Κεθάλαιο 4 Stevens & Rago

Διάλεξη 12: Πποσωπημένη Είζοδορ/Έξοδορ Χαμηλού Επιπέδος (Advanced Low-Level I/O) Κεθάλαιο 4 Stevens & Rago ΕΠΛ371 - Ππογπαμμαηιζμόρ Σςζηημάηων Διάλεξη 12: Πποσωπημένη Είζοδορ/Έξοδορ Χαμηλού Επιπέδος (Advanced Low-Level I/O) Κεθάλαιο 4 Stevens & Rago Δεκήηξεο Ζεϊλαιηπνύξ 12-1 Πεξηερόκελν Δηάιεμεο Σηελ πξνεγνύκελε

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ. ΕΠΛ371 - Προγραµµατισµός Συστηµάτων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ. ΕΠΛ371 - Προγραµµατισµός Συστηµάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ371 - Προγραµµατισµός Συστηµάτων ΑΣΚΗΣΗ 3 Υλοποίηση προγράµµατος για την προσπέλαση δεδοµένων του συστήµατος αρχείων (ls -ialr) Ι. Στόχος Άσκησης Διδάσκων: Δηµήτρης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15) (Κεφάλαιο 2.7 και 12) Αρχεία στην C (Διάλεξη 15) 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουμε δεδομένα από ένα πρόγραμμα, πρέπει να χρησιμοποιήσουμε την Δευτερεύουσα Μνήμη 14-2 Επανάληψη

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

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

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

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

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου 1 Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου Λειτουργικά Συστήματα 7ο εξάμηνο ΣΗΜΜΥ ακ έτος 2015-2016 http://wwwcslabecentuagr/courses/os CSLab National Technical University of Athens Εργαστήριο

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

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου. Λειτουργικά Συστήματα Εργαστήριο Υπολογιστικών Συστημάτων ΕΜΠ

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου. Λειτουργικά Συστήματα Εργαστήριο Υπολογιστικών Συστημάτων ΕΜΠ Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου Λειτουργικά Συστήματα Εργαστήριο Υπολογιστικών Συστημάτων ΕΜΠ Διαδικαστικά Λογαριασμοί (Accounts) Χρήστης: oslabxyy Αλλαγή password: yppasswd Μηχανήματα

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

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

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

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

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 10 Αρχεία στην C Επανάληψη στην Αποθήκευση (Storage)

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

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη ( ιάλεξη 3) ιδάσκων: Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 4: Δείκτες και Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Πίνακες Δεικτών, Παραδείγματα, Πολυδιάστατοι πίνακες Πέρασμα παραμέτρων σε προγράμματα C Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες:

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

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

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

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

Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών. Λειτουργικά Συςτήματα Προγραμματιςμόσ Συςτήματοσ.

Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών. Λειτουργικά Συςτήματα Προγραμματιςμόσ Συςτήματοσ. Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών Λειτουργικά Συςτήματα Προγραμματιςμόσ Συςτήματοσ Συςτήματα Αρχείων Μπλοκ Τα αρχεύα δεν αποθηκεύονται ςτο δύςκο χύμα, αλλϊ ςε μπλοκ

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

Προγραμματισμός συστημάτων UNIX/POSIX. Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes)

Προγραμματισμός συστημάτων UNIX/POSIX. Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes) Προγραμματισμός συστημάτων UNIX/POSIX Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes) Επικοινωνία μεταξύ διεργασιών γονέα-παιδιού Κατά κάποιο τρόπο, θα δημιουργήσουμε ένα τύπο

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

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για

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

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & Άνοιγμα αρχείου μέσα από τo SPIM, διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη (Διάλεξη 3) 1 Μετατροπή χαρακτήρων ASCII σε ακέραιο Ο πιο κάτω κώδικας

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

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1 Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη της Πληροφορικής και Πληροφοριακά Συστήματα Εργαστήριο - ΕΠΛ003 Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο UNIX Μέρος 1 Παναγιώτης

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

Προγραμματισμός συστημάτων UNIX/POSIX. Ανακατευθύνσεις (redirections)

Προγραμματισμός συστημάτων UNIX/POSIX. Ανακατευθύνσεις (redirections) Προγραμματισμός συστημάτων UNIX/POSIX Ανακατευθύνσεις (redirections) Shell & ανακατεύθυνση εισόδου Κατά την εκτέλεση ενός προγράμματος, η είσοδος και η έξοδος ενός προγράμματος μπορούν να ανακατευθυνθούν

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

Διάλεξη 18η: Διαχείρηση Αρχείων

Διάλεξη 18η: Διαχείρηση Αρχείων Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh

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

Συστήματα Αρχείων (Σ.Α.)

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ (Κεφάλαιο 2.7 και 12) Αρχεία στην C ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουµε δεδοµένα από ένα πρόγραµµα, πρέπει να χρησιµοποιήσουµε την ευτερεύουσα

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

Φροντιςτήριο. Linked-List

Φροντιςτήριο. Linked-List Φροντιςτήριο Linked-List 1 Linked List Μια linked list είναι μια ακολουθία από ςυνδεδεμένουσ κόμβουσ Κάθε κόμβοσ περιέχει τουλάχιςτον Μια πληροφορία (ή ένα struct) Δείκτη ςτον επόμενο κόμβο τησ λίςτασ

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

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

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

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

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

Προγραμματισμός Διαχείρισης Συστημάτων Ι Προγραμματισμός Διαχείρισης Συστημάτων Ι Μάθημα 2ο Βασικές Εντολές Διαχείρισης Αρχείων και Καταλόγων Μιχαηλίδης Παναγιώτης Περιεχόμενα Σύστημα αρχείων Αρχεία και κατάλογοι Διαδρομές αρχείων και καταλόγων

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

% ls -l /usr/bin/wc -rwxr-xr-x 1 root bin 7368 Jul /usr/bin/wc

% ls -l /usr/bin/wc -rwxr-xr-x 1 root bin 7368 Jul /usr/bin/wc Κεφάλαιο 9: Δομή αρχείων συστήματος Έχουμε ήδη μιλήσει για τη δομή των καταλόγων στο Slackware Linux. Θα πρέπει λοιπόν να μπορείτε να βρείτε αρχεία και καταλόγους όπου χρειάζεστε. Υπάρχουν όμως πολλά περισσότερα

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

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

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη

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

1ο Εργαστήριο Σύστημα Αρχείων

1ο Εργαστήριο Σύστημα Αρχείων ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 1ο Εργαστήριο Σύστημα Αρχείων ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ABSOLUTE KAI RELATIVE PATH Λειτουργικό Σύστημα

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

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II (Κεφάλαια 25.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132

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

File Management και I/O στο UNIX

File Management και I/O στο UNIX File Management και I/O στο UNIX Λειτουργικά Συστήματα Ντίρλης Νικόλαος- ΕΤΥ Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πάτρας Συστήματα 2013-2014 1 Εισαγωγή Ένα από τα βασικά στοιχεία της επιστήμης της Πληροφορικής

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

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Ορίσματα στο QtSpim (set parameters

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

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Μετατροπή ASCII σε Δεκαδικό

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

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

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

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

Μερικές άλλες χρήσιμες εντολές

Μερικές άλλες χρήσιμες εντολές 1 Μερικές άλλες χρήσιμες εντολές whoami (Εμφανίζει το όνομα του τρέχοντος χρήστη) pwd (Εμφανίζει το όνομα του τρέχοντος καταλόγου) cat text file name (Παρουσιάζει στην οθόνη το περιεχόμενο ενός αρχείου

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

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

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

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

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Μετατροπή ASCII σε Δεκαδικό

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

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΣΗΜΕΙΩΣΕΙΣ. Αρχεία και Μεταδεδομένα

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΣΗΜΕΙΩΣΕΙΣ. Αρχεία και Μεταδεδομένα ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Αρχεία και Μεταδεδομένα ΣΗΜΕΙΩΣΕΙΣ Κάθε αρχείο χαρακτηρίζεται και αναφέρεται από ένα αριθμό

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

Λειτουργικά Συστήματα Ι. Συστήματα Αρχείων (File Systems)

Λειτουργικά Συστήματα Ι. Συστήματα Αρχείων (File Systems) Λειτουργικά Συστήματα Ι Συστήματα Αρχείων (File Systems) Με μια ματιά File (Αρχείο) Περιλαμβάνει ένα σύνολο λογικά συσχετιζόμενων δεδομένων, μηπροσωρινής φύσης (συνήθως αποθηκευμένο σε δίσκους). File System

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

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

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

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

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1 Δυναμική δέσμευση και αποδέσμευση μνήμης Προγραμματισμός II 1 lalis@inf.uth.gr Γιατί χρειάζεται η δυναμική μνήμη; Οι απαιτήσεις του προγράμματος σε μνήμη μπορεί να είναι άγνωστες την ώρα της συγγραφής

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα (ΗΥ222) Λειτουργικά Συστήματα (ΗΥ222) Διάλεξη 14: Οργάνωση Συστημάτων Αρχείων Αρχεία: Ονόματα Θέσεων στο Δίσκο Οπτική του χρήστη: Μια ακολουθία από bytes με συγκεκριμένο όνομα 2 oslab.c int main() { Οπτική του

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

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

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα S E T Δ Ι Α Φ Α Ν Ε Ι Ω Ν 1 3 S H E L L S C R I P T S : T E S T, I F Α Ν Τ Ω Ν Η ς Σ Ι Δ Η Ρ Ο Π Ο Υ Λ Ο ς Διεργασίες: Γονείς και Παιδιά Κάθε διεργασία κάνοντας exit

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

Διδάσκων: Παναγιώτης Ανδρέου

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

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

Λειτουργικά Συστήματα - Εργαστήριο 6. 6ο Εργαστήριο. Συμπίεση αρχείων Χρήση ειδικών χαρακτήρων στην γραμμή εντολών. Χρήστες και Ομάδες Χρηστών

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

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

υναµική έσµευση Μνήµης (συν.) ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 Εφαρµογή

υναµική έσµευση Μνήµης (συν.) ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 Εφαρµογή υναµική έσµευση Μνήµης (συν.) Στην ενότητα αυτή θα µελετηθούν: Μια εφαρµογή συνδεδεµένων λιστών ιπλά συνδεδεµένες Λίστες ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Εφαρµογή Ζητούµενο: Πρόγραµµα που παίρνει σαν

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

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

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:

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

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

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα S E T Δ Ι Α Φ Α Ν Ε Ι Ω Ν 1 2 S H E L L S C R I P T S A R G U M E N T S + F O R Α Ν Τ Ω Ν Η ς Σ Ι Δ Η Ρ Ο Π Ο Υ Λ Ο ς Χρήση Command-Line Parameters Κάθε φορά που το κέλυφος

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

ιαφάνειες παρουσίασης #6 (β)

ιαφάνειες παρουσίασης #6 (β) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

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

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

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

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

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

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

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

Επεξεργασία Αρχείων Κειµένου

Επεξεργασία Αρχείων Κειµένου Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Περίληψη Προηγούμενου Επισκόπηση αρχείων και επεξεργασία κειμένου Εντολές file,

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

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων (union) τι και γιατί Συσκευές με μικρή μνήμη => ανάγκη εξοικονόμησης πόρων Παρατήρηση: αχρησιμοποίητη μνήμη. Έστω

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

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 6: Διαχείριση Μνήμης & Δυναμικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυναμικές Δομές Δεδομένων Γενικά Δυναμική Δέσμευση/Αποδέσμευση Μνήμης Δομή τύπου structure

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

Διάλεξη 22η: Επιπλέον στοιχεία της C

Διάλεξη 22η: Επιπλέον στοιχεία της C Διάλεξη 22η: Επιπλέον στοιχεία της C Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Extra CS100, 2018-2019 1 / 11 Οργάνωση του κώδικα Ένα πρόγραμμα

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

Ερµήνευση Boot Sector :

Ερµήνευση Boot Sector : H δισκέτα 3.5 διαµορφώνεται µε 80 tracks, 18 sectors/track, 512 bytes/sector, 2 πλευρές (head 0,1). Σύνολο τοµέων 2880, σύνολο χωρητικότητας 2880 Χ 512 = 1.474.560 bytes. Οι πρώτοι 33 τοµείς καταλαµβάνονται

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στην χρήση πρωτογενών κλήσεων του UNIX Γ. ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ

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

Βιβλιοθήκη stdio. Προγραμματισμός II 1

Βιβλιοθήκη stdio. Προγραμματισμός II 1 Βιβλιοθήκη 1 lalis@inf.uth.gr Δεδομένα και ερμηνεία (ξανά) Τα δεδομένα στον Η/Υ έχουν δυαδική μορφή (bytes) Η ερμηνεία των bytes εξαρτάται από το πρόγραμμα που παράγει/καταναλώνει τα δεδομένα Μια δημοφιλής

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

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

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

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

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

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

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

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX

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

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

Ενδεικτικές λύσεις και στατιστικά

Ενδεικτικές λύσεις και στατιστικά Προγραμματισμός 1 Σύντομο Quiz 25/9/9 Ενδεικτικές λύσεις και στατιστικά Ερώτηση 1: Γράψτε παρακάτω συνάρτηση η οποία δέχεται ως παραμέτρους ένα string και ένα χαρακτήρα και επιστρέφει τον αριθμό των εμφανίσεων

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Δυναμική Κατανομή Μνήμης Δυναμική εκχώρηση μνήμης Σωρός Συναρτήσεις malloc(), calloc(), realloc(), free() Δυναμικές δομές

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

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 10: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) Σύγκριση Συνδεδεμένων Λιστών με Πίνακες

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

2ο Εργαστήριο. Εισαγωγική στο Λ.Σ. LINUX Γενικές εντολές συστήματος και χρηστών

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

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

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct)

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct) Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct) Αρχεία Το γενικό πλαίσιο: data stream (ρεύμα δεδομένων). stdin, stdout, stderr data stream ως προς τα δεδομένα βάσει προσπέλασης

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Δέκατη-τρίτη (13 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/

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

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εισαγωγή ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ Ένα πρόγραμμα σε C περιλαμβάνει μια ή περισσότερες συναρτήσεις

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

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Περίληψη Προηγούμενου Επισκόπηση αρχείων και επεξεργασία κειμένου Εντολές file,

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

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

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

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

Βιβλιοθήκη stdio. Προγραμματισμός II 1

Βιβλιοθήκη stdio. Προγραμματισμός II 1 Βιβλιοθήκη 1 lalis@inf.uth.gr Σύνοψη Ορίστηκε από τον Dennis Ritchie το 1975 Μέρος του προτύπου ANSI C Λειτουργίες εισόδου/εξόδου υψηλού επίπεδου και ανεξάρτητες λειτουργικού συστήματος Υποστήριξη για

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

inotify system call interface του Linux [1, 2]. prompt >>./mirr source backup uoa.gr/fall2018/k22/home compilation.

inotify system call interface του Linux [1, 2]. prompt >>./mirr source backup uoa.gr/fall2018/k22/home compilation. ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Πληροφορικής και Τηλεπικοινωνιών 4η Εργασία - Τμήμα: Περιττών Αριθμών Μητρώου Κ22: Λειτουργικά Συστήματα Χειμερινό Εξάμηνο 18 Ημερομηνία Ανακοίνωσης: Τετάρτη, 19/12 Ημερομηνία

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

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

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

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

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

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

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

Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1

Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1 Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1 lalis@inf.uth.gr Τι είναι ένας αγωγός; Μηχανισμός/συσκευή επικοινωνίας διεργασιών Μετάδοση μιας ροής από bytes (μονής κατεύθυνσης) First-in-first-out (FIFO):

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

ΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ Στέφανος Γκρίτζαλης Αναπληρωτής Καθηγητής Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) Μαγνητικοί ίσκοι Τα δεδοµένα αποθηκεύονται στο µαγνητικό φιλµ του δίσκου Ο δίσκος περιστρέφεται µε

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

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο) ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο) Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου http://www.cs.ucy.ac.cy/courses/epl232 Το μάθημα αυτό

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

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου 1 Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου Λειτουργικά Συστήματα 7ο εξάμηνο ΣΗΜΜΥ ακ έτος 2016-2017 http://wwwcslabecentuagr/courses/os CSLab National Technical University of Athens Εργαστήριο

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

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

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

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Εισαγωγή στον Προγραµµατισµό Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Συναρτήσεις 19.11.16 Β. Ντουφεξή 2 Προβλήματα: Οσο μεγαλώνουν τα προγράμματα, γίνονται πιο πολύπλοκα.

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

Privilege Separation. Dimitris Mitropoulos

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

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

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο (File) τη συστηµατική συγκέντρωση δεδοµένων. Τα περισσότερα προγράµµατα στη γλώσσα C, τα οποία διαπραγµατεύονται είσοδο, αποθήκευση και επεξεργασία δεδοµένων χρησιµοποιούν

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

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

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

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

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Δείκτες (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 Δήλωση Δήλωση Τύπος

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

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

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

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

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

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

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19) Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;

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

Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1

Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 lalis@inf.uth.gr Συνεργασία ανάμεσα σε διεργασίες Για ασφάλεια/ανεξαρτησία, το ΛΣ εξασφαλίζει πλήρη απομόνωση ανάμεσα στις

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