Προγραμματισμός Συστήματος
Ιωάννης Σμαραγδάκης
Βασικές λειτουργίες και αλληλεπίδραση χρηστών με το Unix. Προγραμματισμός σε κέλυφος και βοηθητικά προγράμματα. Διαχείριση διεργασιών και συστήματος αρχείων. Δημιουργία και τερματισμός διεργασιών, αποστολή και παραλαβή σημάτων, είσοδος και έξοδος χαμηλού επιπέδου, επικοινωνία μεταξύ διεργασιών μέσω σωλήνων και υποδοχών. Επικοινωνία μεταξύ διεργασιών μέσω ουρών μηνυμάτων, κοινής μνήμης και σηματοφόρων.
Δημιουργία, προγραμματισμός, συγχρονισμός νημάτων και επικοινωνία με mutexes και μεταβλητές συνθήκης. Δικτυακός προγραμματισμός και μοντέλο πελάτη εξυπηρετητή. Διεπαφές εφαρμογών με τα πρωτόκολλα επικοινωνίας. API για υποδοχές. Ζητήματα σχεδιασμού λογισμικού πελάτη/εξυπηρετητή.
Επαναληπτικοί εξυπηρετητές με UDP και TCP. Εξυπηρετητές πολλαπλών υπηρεσιών και ταυτοχρονισμός εξυπερετητών. Δημιουργία κατανεμημένων προγραμμάτων με rpcgen και πελάτες telnet.
Βασικές λειτουργίες και αλληλεπίδραση χρηστών με το Unix. Προγραμματισμός σε κέλυφος και βοηθητικά προγράμματα. Διαχείριση διεργασιών και συστήματος αρχείων. Δημιουργία και τερματισμός διεργασιών, αποστολή και παραλαβή σημάτων, είσοδος και έξοδος χαμηλού επιπέδου, επικοινωνία μεταξύ διεργασιών μέσω σωλήνων και υποδοχών. Επικοινωνία μεταξύ διεργασιών μέσω ουρών μηνυμάτων, κοινής μνήμης και σηματοφόρων.
Δημιουργία, προγραμματισμός, συγχρονισμός νημάτων και επικοινωνία με mutexes και μεταβλητές συνθήκης. Δικτυακός προγραμματισμός και μοντέλο πελάτη εξυπηρετητή. Διεπαφές εφαρμογών με τα πρωτόκολλα επικοινωνίας. API για υποδοχές. Ζητήματα σχεδιασμού λογισμικού πελάτη/εξυπηρετητή.
Επαναληπτικοί εξυπηρετητές με UDP και TCP. Εξυπηρετητές πολλαπλών υπηρεσιών και ταυτοχρονισμός εξυπερετητών. Δημιουργία κατανεμημένων προγραμμάτων με rpcgen και πελάτες telnet.
Βασικές λειτουργίες και αλληλεπίδραση χρηστών με το Unix. Προγραμματισμός σε κέλυφος και βοηθητικά προγράμματα. Διαχείριση διεργασιών και συστήματος αρχείων. Δημιουργία και τερματισμός διεργασιών, αποστολή και παραλαβή σημάτων, είσοδος και έξοδος χαμηλού επιπέδου, επικοινωνία μεταξύ διεργασιών μέσω σωλήνων και υποδοχών. Επικοινωνία μεταξύ διεργασιών μέσω ουρών μηνυμάτων, κοινής μνήμης και σηματοφόρων.
Δημιουργία, προγραμματισμός, συγχρονισμός νημάτων και επικοινωνία με mutexes και μεταβλητές συνθήκης. Δικτυακός προγραμματισμός και μοντέλο πελάτη εξυπηρετητή. Διεπαφές εφαρμογών με τα πρωτόκολλα επικοινωνίας. API για υποδοχές. Ζητήματα σχεδιασμού λογισμικού πελάτη/εξυπηρετητή.
Επαναληπτικοί εξυπηρετητές με UDP και TCP. Εξυπηρετητές πολλαπλών υπηρεσιών και ταυτοχρονισμός εξυπερετητών. Δημιουργία κατανεμημένων προγραμμάτων με rpcgen και πελάτες telnet.
Περίγραμμα
Περιεχόμενο μαθήματος
Βασικές λειτουργίες και αλληλεπίδραση χρηστών με το Unix. Προγραμματισμός σε κέλυφος και βοηθητικά προγράμματα. Διαχείριση διεργασιών και συστήματος αρχείων. Δημιουργία και τερματισμός διεργασιών, αποστολή και παραλαβή σημάτων, είσοδος και έξοδος χαμηλού επιπέδου, επικοινωνία μεταξύ διεργασιών μέσω σωλήνων και υποδοχών. Επικοινωνία μεταξύ διεργασιών μέσω ουρών μηνυμάτων, κοινής μνήμης και σηματοφόρων.
Δημιουργία, προγραμματισμός, συγχρονισμός νημάτων και επικοινωνία με mutexes και μεταβλητές συνθήκης. Δικτυακός προγραμματισμός και μοντέλο πελάτη εξυπηρετητή. Διεπαφές εφαρμογών με τα πρωτόκολλα επικοινωνίας. API για υποδοχές. Ζητήματα σχεδιασμού λογισμικού πελάτη/εξυπηρετητή.
Επαναληπτικοί εξυπηρετητές με UDP και TCP. Εξυπηρετητές πολλαπλών υπηρεσιών και ταυτοχρονισμός εξυπερετητών. Δημιουργία κατανεμημένων προγραμμάτων με rpcgen και πελάτες telnet.
Διδάσκοντες
Σμαραγδάκης Ιωάννης
Βαθμίδα: Αναπληρωτής Καθηγητής
Τομέας: Υπολογιστικά Συστήματα και εφαρμογές
Βοηθοί: Γιώργος Μπαλατσούρας, Γιώργος Καστρίνης, Δημητριανός Σάββα, Σταμάτης Χριστοφορίδης, Ευθύμης Χατζημιχαήλ.
Βιβλιογραφία
- M.J. Rochkind, Advanced Unix Programming, Prentice-Hall Software Series, Englewood Cliffs, NJ, 2004.
- Kay Robbins, Steven Robbins, Unix Systems Programming: Communication, Concurrency, and Threads, Prentice Hall PTR, 2003.
Ομάδα στόχος
Προπτυχιακοί φοιτητές του τμήματος Πληροφορικής και Τηλεπικοινωνιών - Φοιτητές του μαθήματος.
Προαπαιτούμενα
Προαπαιτούμενα Μαθήματα: Δομές Δεδομένων και Τεχνικές Προγραμματισμού
Συνιστώμενα Προαπαιτούμενα Μαθήματα: Αρχιτεκτονική Υπολογιστών Ι
Παρακολούθηση του Piazza είναι υποχρεωτική!
Σημειώματα Δικαιωμάτων Πνευματικής Ιδιοκτησίας
Για το υλικό του παρόντος μαθήματος ισχύουν τα ακόλουθα σημειώματα.
Σημείωμα Ιστορικού Εκδόσεων Έργου
Το παρόν έργο αποτελεί την έκδοση 1.0.
Σημείωμα Αναφοράς
Copyright Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών, Γιάννης Σμαραγδάκης 2015. Γιάννης Σμαραγδάκης. Προγραμματισμός Συστήματος. Έκδοση: 1.0. Αθήνα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: http://opencourses.uoa.gr/courses/DI112.
Σημείωμα Αδειοδότησης
Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων».
[1] http://creativecommons.org/licenses/by-nc-sa/4.0/
Ως Μη Εμπορική ορίζεται η χρήση:
- που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο
- που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο
- που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο
Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.
Διατήρηση Σημειωμάτων
- Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει:
- το Σημείωμα Αναφοράς
- το Σημείωμα Αδειοδότησης
- τη δήλωση Διατήρησης Σημειωμάτων
- το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει)
μαζί με τους συνοδευόμενους υπερσυνδέσμους.
Βασικές λειτουργίες και αλληλεπίδραση χρηστών με το Unix. Προγραμματισμός σε κέλυφος και βοηθητικά προγράμματα. Διαχείριση διεργασιών και συστήματος αρχείων. Δημιουργία και τερματισμός διεργασιών, αποστολή και παραλαβή σημάτων, είσοδος και έξοδος χαμηλού επιπέδου, επικοινωνία μεταξύ διεργασιών μέσω σωλήνων και υποδοχών. Επικοινωνία μεταξύ διεργασιών μέσω ουρών μηνυμάτων, κοινής μνήμης και σηματοφόρων.
Δημιουργία, προγραμματισμός, συγχρονισμός νημάτων και επικοινωνία με mutexes και μεταβλητές συνθήκης. Δικτυακός προγραμματισμός και μοντέλο πελάτη εξυπηρετητή. Διεπαφές εφαρμογών με τα πρωτόκολλα επικοινωνίας. API για υποδοχές. Ζητήματα σχεδιασμού λογισμικού πελάτη/εξυπηρετητή.
Επαναληπτικοί εξυπηρετητές με UDP και TCP. Εξυπηρετητές πολλαπλών υπηρεσιών και ταυτοχρονισμός εξυπερετητών. Δημιουργία κατανεμημένων προγραμμάτων με rpcgen και πελάτες telnet.
Σμαραγδάκης Ιωάννης
Βαθμίδα: Αναπληρωτής Καθηγητής
Τομέας: Υπολογιστικά Συστήματα και εφαρμογές
Βοηθοί: Γιώργος Μπαλατσούρας, Γιώργος Καστρίνης, Δημητριανός Σάββα, Σταμάτης Χριστοφορίδης, Ευθύμης Χατζημιχαήλ.
- M.J. Rochkind, Advanced Unix Programming, Prentice-Hall Software Series, Englewood Cliffs, NJ, 2004.
- Kay Robbins, Steven Robbins, Unix Systems Programming: Communication, Concurrency, and Threads, Prentice Hall PTR, 2003.
Προπτυχιακοί φοιτητές του τμήματος Πληροφορικής και Τηλεπικοινωνιών - Φοιτητές του μαθήματος.
Παρακολούθηση του Piazza είναι υποχρεωτική!
Για το υλικό του παρόντος μαθήματος ισχύουν τα ακόλουθα σημειώματα.
Σημείωμα Ιστορικού Εκδόσεων Έργου
Το παρόν έργο αποτελεί την έκδοση 1.0.
Σημείωμα Αναφοράς
Copyright Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών, Γιάννης Σμαραγδάκης 2015. Γιάννης Σμαραγδάκης. Προγραμματισμός Συστήματος. Έκδοση: 1.0. Αθήνα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: http://opencourses.uoa.gr/courses/DI112.
Σημείωμα Αδειοδότησης
Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων».
[1] http://creativecommons.org/licenses/by-nc-sa/4.0/
Ως Μη Εμπορική ορίζεται η χρήση:
- που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο
- που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο
- που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο
Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.
Διατήρηση Σημειωμάτων
- Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει:
- το Σημείωμα Αναφοράς
- το Σημείωμα Αδειοδότησης
- τη δήλωση Διατήρησης Σημειωμάτων
- το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει)
μαζί με τους συνοδευόμενους υπερσυνδέσμους.
Λέξεις κλειδιά: Operating system, continual resource Management, Unix OS, multi-tasking, concurrent processes, time-sharing, networking, security mechanism, Kernel, shell, system call, file system, root, current directory, parent directory, absolute, relative paths, user account, basic commands in Unix, access rights, read, write, execute, Text editors, emacs, pico, hard-, soft-links, csh redirection, filters, pipes, meta characters, bash, shell aliasing, process management, file compressions, file decompression
Λέξεις κλειδιά: Shell scripting, bash, arithmetic operations, return value, binary input base (ibase), output base (obase), conditionals, arithmetic tests, checking files/directories, forming conditions, integers, strings, control statements, loops, redirections, overflow, factorial, list, array
Λέξεις κλειδιά: Error handling, low level I/O signals, system call, symbolic names, access mode, variable buffer size, routine, flags, file descriptors, inodes, catalogue content , POSIX Signals, sigation structure, interrupt, restoring previous actions, block signals
Λέξεις κλειδιά: Process, Pipes, Process control, IPC, shared memory, sockets, Process limits, Process ID, Process State Diagram, chain of processes, Orphan processes, status flag, Zombie processes, pipe sizes, named pipes (FIFO)
Λέξεις κλειδιά: Sockets, Inter Process Communication (IPC), internet protocol (IP), IPv4, IPv6, DNS, DHCP, Service, Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Serial Server, byte order, Domain names, socket binding, TCP connect, parsing and printing addresses, UDP communication, UDP server
Λέξεις κλειδιά: Threads, Processes, Creation of threads, terminating a thread, single threaded programs, multi-threaded programs, POSIX Mutexes, Locking Mutexes, Unlocking and destroying Mutexes, boilerplate, signaling a variable, Broadcasting to variables, condition variables, Synchronization problem, bounded buffer problem, Thread safety
Λέξεις Κλειδιά: Thread semantics, Monitory style programming, Mutexes, condition variables, critical section, boilerplate, programming errors
Λέξεις κλειδιά: Inter Process Communication (IPC), named pipes, Message Queues, shared memory, semaphores, System V, POSIX, POSIX IPC, System V IPC, inodes, access rights for IPC objects, priority queues, shared memory, access to critical sections, file locking
Λέξεις κλειδιά: Stack, Heap, procedure calls, Stack as memory, static Data, allocators
Ανοικτό Ακαδ. Μάθημα
Αρ. Επισκέψεων : 0
Αρ. Προβολών : 0
Ημερολόγιο
Ανακοινώσεις
- - Δεν υπάρχουν ανακοινώσεις -