ΔΠΛ371 - Ππογπαμμαηιζμόρ Σςζηημάηων Γημήηπηρ Εεϊναλιπούπ Τμήμα Πληποθοπικήρ 0-1
Σι καλύπηει ηο ΔΠΛ371; Βαζικέρ και Πποσωπημένερ έννοιερ Ππογπαμμαηιζμού Σςζηημάηων Σηόσορ: Να καηανοήζει ο θοιηηηήρ ηοςρ μησανιζμούρ με ηοςρ οποίοςρ επιηςγσάνεηαι η ππόζβαζη ζηιρ ποςηίνερ (βιβλιοθήκερ / μονάδερ) ενόρ Λειηοςπγικού Σςζηήμαηορ (UNIX) με ηη σπήζη ηηρ γλώζζαρ ππογπαμμαηιζμού C και δημοθιλών κελςθών. 0-2
Σι καλύπηει ηο ΔΠΛ371; ΔΠΛ371 0-3
Αναλςηικοί ηόσοι Μαθήμαηορ Δκμάθηζη βαζικών και πποσωπημένων ηεσνικών διασείπιζηρ και ππογπαμμαηιζμού ζηο Λειηοςπγικό Σύζηημα Unix (Shell commands and Bash Shell programming). Δκμάθηζη πποσωπημένων ηεσνικών ππογπαμμαηιζμού ζηην C & Unix: 1. ςζηήμαηα Απσείων και Γιασείπιζη Μνήμηρ; 2. Ππογπαμμαηιζμόρ Γιεπγαζιών (Processes Πολςδιεπγαζιακόρ Ππογπαμμαηιζμόρ) και Νημάηων (Threads Πολςνημαηικόρ Ππογπαμμαηιζμόρ); 3. Δπικοινωνία Γιεπγαζιών (Γιαδιεπγαζιακή Δπικοινωνία); 4. Ππογπαμμαηιζμόρ Γικηύος (Socket programming); 5. Αζθάλεια Λογιζμικού ςζηημάηων (security) 0-4
ε ποιούρ απεςθύνεηαι ηο ΔΠΛ371; Άηομα πος θέλοςν να αζσοληθούν επαγγελμαηικά με ηην ζςγγπαθή (development), ζσεδίαζη (design) και διασείπιζη λογιζμικού ζςζηήμαηορ (π.σ., UNIX Administrators). Άηομα πος θέλοςν να μάθοςν πεπιζζόηεπα για ηα επίπεδα ηα οποία βπίζκονηαι κάηω από ηιρ εθαπμογέρ. Άηομα πος θέλοςν να ακολοςθήζοςν μεηαπηςσιακέρ ζποςδέρ ή/και ακαδημαϊκή καπιέπα. 0-5
ςμβόλαιο Μαθήμαηορ Δπίπεδο: Πποπηςσιακό Τποσπεωηικό Μάθημα: Καηεύθςνζη Τπολογιζηικών ςζηημάηων και Γικηύων (6ο εξάμηνο) Πίζηωζη: 7.5 μονάδερ ECTS Πποαπαιηούμενα: ΔΠΛ222: Λειηοςπγικά ςζηήμαηα ΔΠΛ231: Γομέρ Γεδομένων & Αλγόπιθμοι ΔΠΛ132: Απσέρ Ππογπαμμαηιζμού ΙΙ ΔΠΛ221: Οπγάνωζη Τπολογιζηών και ςμβολικόρ Ππογπαμμαηιζμόρ Μέθοδοι Γιδαζκαλίαρ Γιαλέξειρ (3 ώπερ εβδομαδιαίωρ) Φπονηιζηήπιο/Δπγαζηήπιο (1 ώπα εβδομαδιαίωρ) 0-6
ςμβόλαιο Μαθήμαηορ Αξιολόγηζη 40% Σελική Δξέηαζη 20% Δνδιάμεζη Δξέηαζη 40% Αζκήζειρ 15% Ππογπαμμαηιζηικέρ Αζκήζειρ 15% Project Τλοποίηζη ςζηήμαηορ 10% Παποςζίαζη κάποιαρ γλώζζαρ ή βιβλιοθήκηρ, με έμθαζη ζηο ππογπαμμαηιζμό ζςζηημάηων (π.σ., Systems programming in windows, scripting languages, emerging systems in sensor, grid, clouds, etc.). 0-7
Βιβλιογπαθία Βαζική Βιβλιογπαθία - Advanced Programming in the UNIX Environment, Second Edition, Richard Stevens, Stephen A. Rago, Addison-Wesley, 2008. - ημειώζειρ Μαθήμαηορ και ςνοδεςηικό Τλικό Βοηθηηική Βιβλιογπαθία - Unix Systems Programming: Communication, Concurrency and Threads, Second Edition, Kay Robbins, Steve Robbins, Publisher: Prentice Hall, 2004. - Unix Network Programming, Volume 1: The Sockets Networking API, 3/E, W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, Pearson, 2003. 0-8
Πεπιεσόμενο Μαθήμαηορ Δβδ. 1-3: Δνηολέρ UΝΙΧ και Δπγαλεία Ωθελιμόηηηαρ (System Utilities) Διζαγωγή, Ιζηοπική Αναδπομή, Απλέρ και πποσωπημένερ ενηολέρ, Κανονικέρ εκθπάζειρ, Ανακαηεύθςνζη (redirect) και διοσέηεςζη (pipe), Γιασείπιζη Απσείων, Γιεπγαζίερ, Δνηολέρ πεπιβάλλονηορ, επικοινωνίαρ, ειζόδος/εξόδος, ελέγσος διεπγαζιών, Δπγαλεία Ωθελιμόηηηαρ: sed, awk κηλ.) Δβδ. 4-5: Ππογπαμμαηιζμόρ ζηο Κέλςθορ (bash) Διζαγωγή, Μεηαβληηέρ, ςνθήκερ Δλέγσος (if, select), Δπαναληπηικοί Βπόγσοι (for, while, until), Έλεγσορ Ροήρ (break, continue), ςναπηήζειρ, Πίνακερ, λογικοί και απιθμηηικοί ηελεζηέρ κ.α. 0-9
Πεπιεσόμενο Μαθήμαηορ Δβδ. 6: Σςζηήμαηα Απσείων. Διζαγωγή ζηα Απσεία και ςζηήμαηα Απσείων ζηο Unix (Σύποι Απσείων, Partitions, i-nodes, blocks), Μέθοδοι Δπεξεπγαζίαρ Απσείων: Standard I/O vs. Υαμηλού Δπιπέδος Ι/Ο, Μέηα-πληποθοπίερ Απσείων, Γομή και Ππόζβαζη, Γιασείπιζη Απσείων με κλήζειρ ζςζηήμαηορ, Γιασείπιζη Καηαλόγων, Πποζπέλαζη Καηαλόγων με ζςναπηήζειρ βιβλιοθήκηρ Δβδ. 7-8: Γιεπγαζίερ: Πεπιβάλλον, Έλεγσορ και Σήμαηα Γιεπγαζίερ: Γομή & Αναπαπάζηαζη, Σαςηόηηηερ Γιεπγαζιών, Γημιοςπγία Γιεπγαζιών, Μεηαβληηέρ Πεπιβάλλονηορ, Οπθανέρ Γιεπγαζίερ, Γιεπγαζίερ και Απσεία, Αναμονή Γιεπγαζιών, Zombie Γιεπγαζίερ, ήμαηα και Γιεπγαζίερ 0-10
Πεπιεσόμενο Μαθήμαηορ Δβδ. 9-10: Για-διεπγαζιακή Δπικοινωνία (IPC) Δπικοινωνία μεηαξύ Γιεπγαζιών, Μελέηη ηπόπων επικοινωνίαρ: i) ωλήνερ (Pipes), ii) FIFO (Named Pipes), MIDTERM iii) Οςπέρ Μηνςμάηων (Message Queues), iv) Κοινόσπηζηη Μνήμη (Shared Memory) με ημαηοθόποςρ (Semaphores) και v) Ππογπαμμαηιζμόρ Τποδοσών (Socket Programming). Δβδ. 11: Πολςνημαηικόρ Ππογπαμμαηιζμόρ (Multithreading) Πλεονεκτήματα Νημάτων, Είδη Νημάτων, Πολυνηματικά Μοντέλα, Η Βιβλιοθήκη <pthread.h> και παπαδείγμαηα, Θέμαηα διασείπιζηρ ηαςηοσπονίαρ, διασείπιζη αδιεξόδων. Δβδ. 12: Παποςζιάζειρ Φοιηηηών Systems Programming in Windows: Sockets, Process Management, Threads and Concurrency, IPC Scripting Languages: PHP, Ruby, Python, Perl, Smalltalk Δβδ. 13: Αζθάλεια Λογιζμικού Σςζηημάηων Spoofing, Denial of Service, Buffer Overflow, κτλ. 0-11