Προγραμματισμός Συστήματος

Ιωάννης Σμαραγδάκης

Περιγραφή

Βασικές λειτουργίες και αλληλεπίδραση χρηστών με το Unix. Προγραμματισμός σε κέλυφος και βοηθητικά προγράμματα. Διαχείριση διεργασιών και συστήματος αρχείων. Δημιουργία και τερματισμός διεργασιών, αποστολή και παραλαβή σημάτων, είσοδος και έξοδος χαμηλού επιπέδου, επικοινωνία μεταξύ διεργασιών μέσω σωλήνων και υποδοχών. Επικοινωνία  μεταξύ διεργασιών μέσω ουρών μηνυμάτων, κοινής μνήμης και σηματοφόρων.
Δημιουργία, προγραμματισμός, συγχρονισμός νημάτων και επικοινωνία με mutexes και μεταβλητές συνθήκης. Δικτυακός προγραμματισμός και μοντέλο πελάτη εξυπηρετητή. Διεπαφές εφαρμογών με τα πρωτόκολλα επικοινωνίας. API για υποδοχές. Ζητήματα σχεδιασμού λογισμικού πελάτη/εξυπηρετητή.
Επαναληπτικοί εξυπηρετητές με UDP και TCP. Εξυπηρετητές πολλαπλών υπηρεσιών και ταυτοχρονισμός εξυπερετητών. Δημιουργία κατανεμημένων προγραμμάτων με rpcgen και πελάτες telnet.

CC - Αναφορά - Μη Εμπορική Χρήση - Παρόμοια Διανομή
Περιεχόμενο μαθήματος

Βασικές λειτουργίες και αλληλεπίδραση χρηστών με το Unix. Προγραμματισμός σε κέλυφος και βοηθητικά προγράμματα. Διαχείριση διεργασιών και συστήματος αρχείων. Δημιουργία και τερματισμός διεργασιών, αποστολή και παραλαβή σημάτων, είσοδος και έξοδος χαμηλού επιπέδου, επικοινωνία μεταξύ διεργασιών μέσω σωλήνων και υποδοχών. Επικοινωνία  μεταξύ διεργασιών μέσω ουρών μηνυμάτων, κοινής μνήμης και σηματοφόρων.
Δημιουργία, προγραμματισμός, συγχρονισμός νημάτων και επικοινωνία με mutexes και μεταβλητές συνθήκης. Δικτυακός προγραμματισμός και μοντέλο πελάτη εξυπηρετητή. Διεπαφές εφαρμογών με τα πρωτόκολλα επικοινωνίας. API για υποδοχές. Ζητήματα σχεδιασμού λογισμικού πελάτη/εξυπηρετητή.
Επαναληπτικοί εξυπηρετητές με UDP και TCP. Εξυπηρετητές πολλαπλών υπηρεσιών και ταυτοχρονισμός εξυπερετητών. Δημιουργία κατανεμημένων προγραμμάτων με rpcgen και πελάτες telnet.

Διδάσκοντες

Σμαραγδάκης Ιωάννης

Βαθμίδα: Αναπληρωτής Καθηγητής
Τομέας: Υπολογιστικά Συστήματα και εφαρμογές

Περισσότερες Πληροφορίες

Βοηθοί: Γιώργος Μπαλατσούρας, Γιώργος Καστρίνης, Δημητριανός Σάββα, Σταμάτης Χριστοφορίδης, Ευθύμης Χατζημιχαήλ.

Βιβλιογραφία
Ομάδα στόχος

Προπτυχιακοί φοιτητές του τμήματος Πληροφορικής και Τηλεπικοινωνιών - Φοιτητές του μαθήματος.

Προαπαιτούμενα
Συνιστώμενα Προαπαιτούμενα Μαθήματα: Αρχιτεκτονική Υπολογιστών Ι
Παρακολούθηση του 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

Ανοικτό Ακαδ. Μάθημα

Ανοικτά Ακαδημαϊκά Μαθήματα
Επίπεδο: A+

Αρ. Επισκέψεων :  0
Αρ. Προβολών :  0

Ημερολόγιο

Ανακοινώσεις

  • - Δεν υπάρχουν ανακοινώσεις -