ΕΠΛ 371 Προγραµµατισµός Συστηµάτων. Διάλεξη 1. Εισαγωγή. Δηµήτρης Ζεϊναλιπούρ 1-1

Σχετικά έγγραφα
ΕΠΛ371 - Προγραμματισμός Συστημάτων. Διάλεξη 1. Εισαγωγή. Δημήτρης Ζεϊναλιπούρ 1-1. ΕΠΛ 371 Προγραμματισμός Συστημάτων

Σηµειώσεις στο ταξινοµούµε

ΠΑΡΑΔΟΤΕΟ 2.2: «ΕΡΕΥΝΑ ΚΑΤΑΓΡΑΦΗΣ ΤΩΝ ΚΛΕΙΣΤΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΣΕ ΚΕΝΤΡΙΚΟΥΣ ΕΜΠΟΡΙΚΟΥΣ ΔΡΟΜΟΥΣ». Μάρτιος 2013 Θεσσαλονίκη

Αναλυτικό Πρόγραµµα Σπουδών του Μαθήµατος. Α Τάξη 1 ου Κύκλου Τ.Ε.Ε. 2 ώρες /εβδοµάδα. Αθήνα, Απρίλιος 2001

Η εξέλιξη της επιστηµονικής σκέψης και του πειραµατισµού στην Ελληνιστική

7. ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΕΛΛΗΝΙΚΗΣ ΝΟΗΜΑΤΙΚΗΣ ΓΛΩΣΣΑΣ ΤΗΣ ΠΡΩΤΗΣ ΤΑΞΗΣ ΤΟΥ ΔΗΜΟΤΙΚΟΥ ΣΧΟΛΕΙΟΥ

«Αναδιάρθρωση της καλλιέργειας του καπνού µε άλλες ανταγωνιστικές καλλιέργειες»

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

ΑΠΑΝΤΗΣΕΙΣ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ 2014

ΠΕΡΙΦΕΡΕΙΑΚΗ ΕΦΟΡΕΙΑ ΑΘΗΝΩΝ. Αθήνα, 19 Ιανουαρίου 2015 Α ΝΑΚΟΙΝΩΣΗ 3/15. ΠΡΟΣ : Όλους τους Βαθμοφόρους της Αθήνας ΚΟΙΝΟΠΟΙΗΣΗ :

ΤΜΗΜΑ ΗΜΟΣΙΩΝ ΣΧΕΣΕΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΣ

Οδηγός Σπουδών Βασικής Εκπαίδευσης Α ΚΥΚΛΟΣ. ( ιάρκεια 200 ώρες) Πρόγραµµα Τηλεκπαίδευσης Μετατασσόµενου Προσωπικού ΕΛΤΑ

ΤΙΜΟΛΟΓΙΟ ΜΕΛΕΤΗΣ Τιµαριθµική 2012Γ

Ειδικότητα: Ύφασµα Ένδυση

Βρήκαμε πολλά φυτά στο δάσος, αλλά και ήλιο, νερό, αέρα, έδαφος!

ΕΡΕΥΝΑ ΚΑΤΑΝΑΛΩΤΗ ΑΡΩΜΑΤΙΚΩΝ & ΦΑΡΜΑΚΕΥΤΙΚΩΝ ΒΙΟΚΑΥΣΙΜΩΝ

ΘΕΜΑΤΑ ΚΑΝΟΝΙΣΜΩΝ ΒΙΒΛΙΟ ΠΕΡΙΠΤΩΣΕΩΝ ΠΕΡΙΕΧΟΜΕΝΑ

Σεμινάριο με θέμα : Εθελοντισμός & Δικαιώματα Παιδιού

Οδηγίες Χρήσεως και Εγκατάστασης Ηλεκτρικών Εστιών

Α Β

Α. ΟΡΓΑΝΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗΣ

Ο ΙΑΜΑΤΙΚΟΣ ΤΟΥΡΙΣΜΟΣ & Η ΑΝΑΠΤΥΞΗ ΤΟΥ ΣΤΗΝ ΠΕΡΙΠΤΩΣΗ ΤΗΣ ΣΑΝΤΟΡΙΝΗΣ

Αξιολόγηση του Εκπαιδευτικού Έργου. Διαδικασία Αυτοαξιολόγησης στη Σχολική Μονάδα

Άρθρο 4 Διαδικασία Εισαγωγής για το Μ.Δ.Ε.

4 5 6 Δεκεμβρίου 2015 Στάδιο Ειρήνης και Φιλίας

ΟΡΓΑΝΩΣΗ ΕΝΟΤΗΤΩΝ Α ΤΑΞΗΣ ΕΝΟΤΗΤΑ 3

ΙΑΧΕΙΡΙΣΗ ΠΡΟΣΒΑΣΕΩΝ ΓΙΑ ΤΗΝ ΠΡΟΣΤΑΣΙΑ ΤΩΝ ΝΕΩΝ Ο ΙΚΩΝ ΑΞΟΝΩΝ

ΕΓΧΕΙΡΙ ΙΟ ΛΕΙΤΟΥΡΓΙΑΣ ΚΑΙ ΟΡΓΑΝΩΣΗΣ

Κατασκηνωτικές Σκέψεις

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

ραστηριότητες για προθέρµανση

«Πολιτιστικές διαδροµές στα µεταλλευτικά τοπία της Kύθνου»

ΚΕΦΑΛΑΙΟ 7 ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΠΡΟΤΑΣΕΙΣ

Ενότητα6. Μέθοδοι Κοστολόγησης. MBA Master in Business Administration Τµήµα: Οικονοµικών Επιστηµών. ιδάσκων: ρ. Γεώργιος ρογαλάς

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΟΙΝΟΤΗΤΑΣ

ΙΕΘΝΗΣ ΣΥΜΒΑΣΗ ΕΡΓΑΣΙΑΣ 183 «για την αναθεώρηση της (αναθεωρηµένης) σύµβασης για την προστασία της µητρότητας,»

γραμματισμό των νηπίων

Όμιλος Λογοτεχνίας. Δράκογλου Αναστασία, Κιννά Πασχαλίνα

ΤΙΤΛΟΣ I ΕΥΡΩΠΑΪΚΑ ΣΧΟΛΕΙΑ

«Αναδιάρθρωση της καλλιέργειας του καπνού µε άλλες ανταγωνιστικές καλλιέργειες»

Τ.Ε.Ι. ΛΑΜΙΑΣ ΚΑΝΟΝΙΣΜΟΣ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ Ο ΗΓΟΣ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ

ΔΙΑΔΟΣΗ ΘΕΡΜΟΤΗΤΑΣ Φυσική Β' Γυμνασίου. Επιμέλεια: Ιωάννης Γιαμνιαδάκης

ΕΝΗΜΕΡΩΣΗ ΓΙΑ ΤΗΝ ΨΩΡΙΑΣΗ ΣΤΟΥΣ ΗΜΟΥΣ ΝΑΥΠΛΙΕΩΝ ΚΑΙ ΠΕΙΡΑΙΑ 0.2%-4.8% του γενικού πληθυσµού προσβάλλεται από τη νόσο της Ψωρίασης

ΣΥΝΤΟΝΙΣΤΕΣ ΟΜΑΔΑΣ PROJECT ΑΝΘΡΩΠΙΣΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ: ΟΜΑΔΑ PROJECT ΑΝΘΡΩΠΙΣΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ:

ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΘΕΣΣΑΛΟΝΙΚΗΣ Ο ΗΜΑΡΧΟΣ ΘΕΣΣΑΛΟΝΙΚΗΣ /ΝΣΗ ΟΙΚΟΝΟΜΙΚΗΣ & ΤΑΜΕΙΑΚΗΣ ΙΑΧΕΙΡΙΣΗΣ ΤΜΗΜΑ ΠΡΟΚΗΡΥΞΕΩΝ & ΗΜΟΠΡΑΣΙΩΝ

ΝΑΙ ΣΤΗΝ ΕΥΡΩΠΗ - ΟΧΙ ΣΤΗ ΣΥΝΘΗΚΗ ΤΟΥ ΑΜΣΤΕΡΝΤΑΜ

Αναλυτικό Πρόγραµµα Σπουδών του Μαθήµατος. Α Τάξη 1 ου Κύκλου Τ.Ε.Ε. 3 ώρες /εβδοµάδα. Αθήνα, Απρίλιος 2001

ΓΕΝΙΚΟΙ ΟΡΟΙ ΠΑΡΟΧΗΣ της YΠΗΡΕΣΙΑΣ «Mobile Device Management» από την COSMOTE

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΝΑΥΠΗΓΩΝ ΜΗΧ/ΓΩΝ ΜΗΧΑΝΙΚΩΝ. ΘΕΜΑ: Προστασία µε επιµεταλλώσεις. Σκαβάρας Παναγιώτης

Συµπεράσµατα από την ανάλυση συχνοτήτων στη Γεωµετρία Α Λυκείου. Για το 1 ο θέµα που αφορά τη θεωρία:

ΓΙΑ ΤΗΝ ΕΞΟΔΟ ΑΠΟ ΤΗΝ ΕΥΡΩΖΩΝΗ ΣΤΟ ΔΗΜΟΨΗΦΙΣΜΑ ΨΗΦΙΖΟΥΜΕ ΕΡΩΤΗΣΕΙΣ & ΑΠΑΝΤΗΣΕΙΣ ΟΧΙ ΜΕΧΡΙ ΤΕΛΟΥΣ. Αριστερή Αντικαπιταλιστική Συσπείρωση (ΑΡ.Α.Σ.

ΤΙΜΟΛΟΓΙΟ Η/Μ ΕΡΓΑΣΙΩΝ

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

ΠΡΟΟΙΜΙΟ ΑΝΑΤΡΟΠΗ ΤΟΥ ΠΟΛΙΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΚΑΙ ΤΩΝ ΚΑΤΕΣΤΗΜΕΝΩΝ

Αξιολόγηση του εκπαιδευτικού έργου

ΕΙΣΑΓΩΓΗ ΣΤΗ ΠΛΗΡΟΦΟΡΙΚΗ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΑΡΙΘΜΟΣ ΜΕΛΕΤΗΣ: 58/ 2014 ΝΟΜΟΣ ΘΕΣΠΡΩΤΙΑΣ ΔΗΜΟΣ ΗΓΟΥΜΕΝΙΤΣΑΣ Δ/ΝΣΗ ΤΕΧΝΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ΜΕΛΕΤΗ

ΞΕΝΕΣ ΓΛΩΣΣΕΣ ΞΕΝΕΣ ΓΛΩΣΣΕΣ

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

Απομόνωση χλωροφύλλης

«Αναδιάρθρωση της καλλιέργειας του καπνού µε άλλες ανταγωνιστικές καλλιέργειες»

ΒΑΣΙΚΗ ΕΚΠΑΙΔΕΥΣΗ. Οδηγός Οργάνωσης και Λειτουργίας ΕΚΔΟΣΗ 1.0

Αθήνα 14 Ιουνίου 2007 A.Π.

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

Η Αγορά Ηλεκτρικής Ενέργειας στην Κύπρο έχει οργανωθεί σε τομείς που υπόκεινται στις ακόλουθες ρυθμίσεις:

4 Περίοδοι µε 3ωρα ιαγωνίσµατα ΕΚΤΟΣ ωραρίου διδασκαλίας!!! ΠΡΟΓΡΑΜΜΑ ΙΑΓΩΝΙΣΜΩΝ

Ενδεικτικό σενάριο συνανάγνωσης κειμένων

Η Οδύσσεια από το βιβλίο στον υπολογιστή

Η ΦΙΛΙΑ..!!! Η ΑΞΙΑ ΤΗΣ ΦΙΛΙΑΣ

ΕΡΓΑΣΙΑ ΣΤΗ ΓΕΩΜΕΤΡΙΑ

ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

1. Τα Ιατρικά Έξοδα που µπορεί να καταβάλει η Επιτροπή Ασθενειών που προκαλούνται από Πνευµονοκονίαση:

Το Βαρόμετρο του Παρατηρητηρίου: Ποιότητα των Δημόσιων Υπηρεσιών προς Επιχειρήσεις

ΕΞΥΠΝΟΙ ΑΙΣΘΗΤΗΡΕΣ «SMART SENSORS»

Η Κεντρική Τράπεζα της Κύπρου στο δρόµο για την υιοθέτηση του ευρώ. Παρουσιάσεις στους µαθητές Γυµνασίων / Λυκείων

03-00: Βιομάζα για παραγωγή ενέργειας Γενικά ζητήματα εφοδιαστικών αλυσίδων

Προδημοσιεύτηκαν τα τέσσερις πρώτα προγράμματα του νέου ΕΣΠΑ που αφορούν

ΣΥΝΕΝΤΕΥΞΗ ΤΥΠΟΥ. Η ολοκληρωμένη προσέγγιση θα εφαρμοστεί με τα παρακάτω Εργαλεία

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΝΝΟΙΑ CLIENT-SERVER COMPUTING

Μη ανταγωνιστικές δραστηριότητες και παιχνίδια (υλικό)

Digital Academy. Εισαγωγή στην ανάπτυξη Android Εφαρμογών

ΟΔΗΓΟΣ ΥΠΟΒΡΥΧΙΟΥ ΚΑΘΑΡΙΣΜΟΥ

ΔΙΟΙΚΗΣΗ ΛΕΙΤΟΥΡΓΙΩΝ

ΕΜΠΕΔΩΣΗ ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΚΑΛΕΣ ΠΡΑΚΤΙΚΕΣ. Δρ Μάριος Στυλιανίδης, ΕΔΕ

Σηµειώσεις στις Εµπορικές Εταιρίες

ΚΕΦΑΛΑΙΟ 3 ο ΤΟ ΜΕΛΛΟΝ ΤΗΣ ΕΥΡΩΠΑΪΚΗΣ ΕΝΩΣΗΣ. 3.1 Εισαγωγή

Χημεία Β Γυμνασίου Τμήμα Β3. Γρηγόρης Μαγουλάς Φανή Μανούσου Κύρος Μαλλαμίδης Ελίνα Μάλλιαρη Μάγδα Μαντά

Δασικά Οικοσυστήματα και Τεχνικά Έργα

ΕΘΙΜΑ ΤΟΥ ΚΟΣΜΟΥ. Αγγελική Περιστέρη Α 2

ΠΑΡΑΡΤΗΜΑ ΤΜΗΜΑΤΑ ΕΚΘΕΣΗΣ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ ΤΟΥ ΙΔΡΥΜΑΤΟΣ ΠΟΥ ΘΑ ΠΡΕΠΕΙ ΝΑ ΣΥΜΠΛΗΡΩΘΟΥΝ ΑΠΟ ΤΑ ΤΜΗΜΑΤΑ ΤΟΥ ΕΚΠΑ

Αφήγηση. Βασικά στοιχεία αφηγηµατικού κειµένου:

ΣΥΣΤΗΜΑ ΔΙΑΓΝΩΣΗΣ ΑΝΑΓΚΩΝ ΑΓΟΡΑΣ ΕΡΓΑΣΙΑΣ ΠΑΡΑΔΟΤΕΟ ΕΘΝΙΚΟΥ ΜΗΧΑΝΙΣΜΟΥ

Θέσεις της Α..Ε..Υ. «Νοµοσχέδιο για την Ηλεκτρονική ιακυβέρνηση»

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

Β) Ντάκουλας Κωνσταντίνος Παππάς Βασίλης Πάσχος Αλέξανδρος Τσούκος Ηρακλής. Γ) Γείτονα Ανθή Πάτση Συμέλα Σκινήτης Φίλιππος Χασκή Βασιλική

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΩΜΑ 13 Α' ΜΕΡΟΣ ΑΠΟ ΤΟΝ ΠΟΛΕΜΟ ΤΟΥ 1897 ΣΤΟ ΓΟΥΔΙ

/νση: ΧΑΡΑΚΟΠΟΥΛΟΣ ΧΡΗΣΤΟΣ Μ. Αλεξάνδρου 49, 66100, ράµα Τηλ&φαξ: , κιν.: info@akademia.

Χρηματοδότηση των Συλλόγων στην εποχή της κρίσης

1 Επιμέλεια: Γράβαλος Βασίλειος, Χρυσανθάκης Ιωάννης

Το τµήµα Χηµικών Μηχανικών, Παν. Πατρών. Επιτροπή Αξιολόγησης του Προγράµµατος Μεταπτυχιακών Σπουδών

Transcript:

ΕΠΛ371 - Προγραµµατισµός Συστηµάτων Διάλεξη 1 Εισαγωγή Δηµήτρης Ζεϊναλιπούρ 1-1

Επαναληπτικά Λογισµικό Εφαρµογών (Application Software): Περιλαµβάνει προγράµµατα που επιτρέπουν την εκτέλεση συγκεκριµένων εργασιών των χρηστών π.χ την δηµιουργία κειµένων, την σχεδίαση γραφικών, την οργάνωση δεδοµένων κλπ. Λογισµικό Συστήµατος (System Software): Περιλαµβάνει το σύνολο των προγραµµάτων που ελέγχουν διαχειρίζονται και συντονίζουν τους πόρους των Η/Υ Λειτουργεί σε καθεστώς ανεξαρτησίας από συγκεκριµένες εφαρµογές. Η λειτουργία του ΔΕΝ είναι άµεσα αντιληπτή από τον απλό χρήστη. Προγραµµατισµός Συστηµάτων; Η διαδικασία συγγραφής λογισµικού συστήµατος. 1-2

Τι καλύπτει το ΕΠΛ371; Βασικές και Προχωρηµένες έννοιες Προγραµµατισµού Συστηµάτων Στόχος: Να κατανοήσει ο φοιτητής τους µηχανισµούς µε τους οποίους επιτυγχάνεται η πρόσβαση στις ρουτίνες (βιβλιοθήκες / µονάδες) ενός Λειτουργικού Συστήµατος (UNIX) µε τη χρήση της γλώσσας προγραµµατισµού C, δηµοφιλών κελυφών και εργαλείων ωφελιµότητας. 1-3

Τι καλύπτει το ΕΠΛ371; ΕΠΛ371 1-4

Αναλυτικοί Στόχοι Μαθήµατος Εκµάθηση βασικών και προχωρηµένων τεχνικών διαχείρισης και προγραµµατισµού στο Λειτουργικό Σύστηµα Unix (Shell commands and Bash Shell programming). Εκµάθηση προχωρηµένων τεχνικών προγραµµατισµού στην C & Unix: 1. Συστήµατα Αρχείων και Διαχείριση Μνήµης; 2. Προγραµµατισµός Διεργασιών (Processes Πολυδιεργασιακός Προγραµµατισµός) και Νηµάτων (Threads Πολυνηµατικός Προγραµµατισµός); 3. Επικοινωνία Διεργασιών (Διαδιεργασιακή Επικοινωνία); 4. Προγραµµατισµός Δικτύου (Socket programming); 5. Ασφάλεια Λογισµικού Συστηµάτων (security) 1-5

Συµβόλαιο Μαθήµατος Επίπεδο: Προπτυχιακό Υποχρεωτικό Μάθηµα: Κατεύθυνση Υπολογιστικών Συστηµάτων και Δικτύων / Τεχνολογίας Λογισµικού Πίστωση: 7.5 µονάδες ECTS Προαπαιτούµενα: ΕΠΛ222: Λειτουργικά Συστήµατα ΕΠΛ231: Δοµές Δεδοµένων & Αλγόριθµοι ΕΠΛ132: Αρχές Προγραµµατισµού ΙΙ ΕΠΛ221-Οργάνωση Υπολογιστών και Συµβολικός Προγραµµατισµός Μέθοδοι Διδασκαλίας Διαλέξεις (3 ώρες εβδοµαδιαίως) Φροντιστήριο/Εργαστήριο (1 1/2 ώρα εβδοµαδιαίως) 1-6

Συµβόλαιο Μαθήµατος Αξιολόγηση 50% Τελική Εξέταση 25% Ενδιάµεση Εξέταση Πέµπτη 12/3 25% Ασκήσεις 10% Προγραµµατιστικές Ασκήσεις 10% Project Υλοποίηση Συστήµατος 5% Παρουσίαση κάποιας γλώσσας ή βιβλιοθήκης, µε έµφαση στο προγραµµατισµό συστηµάτων (π.χ., Systems programming in windows, scripting languages, emerging systems in mobile, clouds, etc.). 1-7

Βιβλιογραφία Βασική Βιβλιογραφία -Advanced Programming in the UNIX Environment, Third Edition, Richard Stevens, Stephen A. Rago, Addison-Wesley, ISBN-10: 0321637739 ISBN-13: 978-032163773, 2013. - Your UNIX/Linux: The Ultimate Guide, 3rd Edition, Sumitabha Das, McGraw Hill, ISBN-13 9780073376202, 800 page, 2013. - Σηµειώσεις Μαθήµατος και Συνοδευτικό Υλικό Βοηθητική Βιβλιογραφία - 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. R. Stevens, Bill Fenner, Andrew M. Rudoff, Pearson, 2003. 1-8

WWW Όλες οι πληροφορίες σχετικά µε το µάθηµα βρίσκονται στο ακόλουθο URL http://www.cs.ucy.ac.cy/courses/epl371 1-9

WWW Για τις εκπαιδευτικές δραστηριότητες του µαθήµατος (υποβολή εργασιών, φόρουµ ανακοινώσεων, ερωτηµατολόγια, βαθµολογίες εργασιών, κτλ) θα χρησιµοποιηθεί το Moodle. http://moodle.cs.ucy.ac.cy/ 1-10

Ανατοµία του ΛΣ Γνωρίζουµε ότι ένα Λειτουργικό Σύστηµα (ΛΣ) συντονίζει τους πόρους ενός Η.Υ. (υλικό, λογισµικό, διαχείριση χρηστών, κτλ.). Το ΛΣ αποτελείται τα εξής συστατικά: 1. Kernel (Πυρήνας): διεξάγει τις πιο σηµαντικές λειτουργίες για την εύρυθµη λειτουργία του HY (χρονοδροµολόγηση διεργασιών, διαχείριση µνήµης, Δια-διεργασιακή επικοινωνία, κτλ.) 2. System Commands, Utilities and Libraries (π.χ., ls, sed, awk, pthread.h,unistd.h, κτλ.) : Προγράµµατα και βιβλιοθήκες τα οποία επιτρέπουν στα προγράµµατα εφαρµογών (user space) να έχουν πρόσβαση στις ρουτίνες του Πυρήνα (kernel space) του Λειτουργικού Συστήµατος 1-11

Ανατοµία του ΛΣ Most Modern Unixes (Linux, CentOS, BSDlike, Solaris, MacOS-8, AIX, Android, κτλ) Π.χ., Early- UNIXes, MINIX-3 (Tanenbaum s) read http:// www.cs.vu.nl/ ~ast/reliable-os/ Π.χ., MacOSX and NT- Kernel (i.e., Leopard, Windows NT, 2000, XP, Server 2003, Vista, Server 2008 and 7) 1-12

Πολύ-επίπεδη Πρόσβαση στους Πόρους ενός ΗΥ 1-13

Πυρήνας (Kernel) To kernel (πυρήνας) είναι : Ένα πρόγραµµα το οποίο φορτώνεται στην µνήµη ενός ΗΥ κατά την διάρκεια της εκκίνησης και παραµένει εκεί καθ όλη την διάρκεια εκτέλεσης. Έχει µεταξύ άλλων τα ακολούθα υποσυστήµατα: Διαχείριση Διεργασιών (Process management) Schedule processes to run on CPU, Inter-process communication (IPC) Διαχείριση Μνήµης (Memory management) Virtual memory (Paging/Swapping) Διαχείριση Εισόδου/Εξόδου (I/O system) File system, Device drivers, Buffer cache 1-14

Κλήσεις Συστήµατος (System Calls) Παρέχουν διασύνδεση µε το τον Πυρήνα Στο Linux υπάρχουν περισσότερα από 1,000 system calls και αυτά µπορούν κιόλας να επεκταθούν µε Loadable Kernel Modules (LKM) Αυτά χωρίζονται σε τρεις βασικές κατηγορίες File/device manipulation (Επεξεργασία Αρχείων) e.g. mkdir(), unlink() Process control (Διαχείριση Διεργασιών) e.g. fork(), execve(), nice() Information manipulation (Διαχείριση Μέταπληροφοριών), e.g. getuid(), time() 1-15

Κέλυφος και Προγρ. Κελύφους / Shell and Shell Programming Στο ΕΠΛ371 θα δούµε πως αλληλεπιδράµε µε τον πυρήνα: α) Μέσω του Κελύφους (Bash) και Προγραµµάτων Ωφελιµότητας (System Utilities) και β) Μέσω Βιβλιοθηκών Συστηµάτων (System Libraries) Χρήση Κέλυφους who awk '{print $1}' sort uniq Σηµείωση: Μας εκτυπώνει τα logins των χρηστών που είναι συνδεδεµένοι στο σύστηµα µια δεδοµένη στιγµή Βλέπουµε ότι µε µια τέτοια γλώσσα (scripting, high level interpreted), µπορούµε να φτιάξουµε εύκολα σύνθετες λειτουργίες who 755 awk 3,412 sort 2,614 uniq 302 7,424 γραµµές κώδικα 1-16

Εισαγωγή στο Unix 1960: Δηµιουργία του Multics (mainframe timesharing / multitasking OS by ΜΙΤ, GE, Bell Labs). O Thompson εργάζεται πάνω στον υπολογιστή PDP-7 στα Bell Labs 1969: O Ken Thomson & o Dennis Ritchie δηµιουργούν ένα νέο ΛΣ για το υπολογιστή PDP-7 σε assembly το οποίο ονοµάζουν Unics, το οποίο µετά ονοµάζεται Unix! Ken Thompson Dennis Ritchie Ο Ritchie δηµιουργεί την γλώσσα C για το Unix (1972) στα Bell Labs. και συγγραφέας του bestseller The C Programming Language! 1-17

To PDP-7 (1965) 1-18

Εισαγωγή στο Unix 1973: To Unix γράφεται σε γλώσσα C. 1976 : Το κέλυφος Bourne Shell (bsh) αναπτύσσεται στην AT&T και επιτρέπει την αλληλεπίδραση µε τον πυρήνα του Λ.Σ. µέσω εντολών. 80 s- : Το Unix συνεχίζει να εξελίσσεται. Διακρίνονται δυο οικογένειες α) Το System III&V και το BSD (Berkeley Software Distribution). v8 V4.0.1 V4.4 10 Snow Leopard v10.6 1-19

Εισαγωγή στο Unix 1-20

AIX Εισαγωγή στο Unix Εµπορική Επιτυχία SunOS -> Solaris (Sun -> Oracle) SUS-compliant Ultrix, Digital Unix HP-UX Irix UnixWare -> Novell -> SCO -> Caldera ->SCO s Unixware Xenix: -> SCO Standardization (IEEE POSIX: Portable Operating System Interface for unix (all known unixes are POSX-compliant), SUS: Single Unix Specification (Austin), X/open (από διάφορες ευρωπαϊκές εταιρίες) 1-21

Unix για Προσωπικούς Υπολογιστές PC (Gnu) Linux Γράφεται το 1991 από τον 21 ετών Φιλανδό Linus Torvalds Δηµιουργεί ΛΣ UNIX για PCs Δωρεάν µε GNU license (πηγαίος κώδικας µένει πάντα δωρεάν) Τελευταία Έκδοση Κernel: 2.6.32(12/2009) BSD Lite FreeBSD (1993, focus on PCs) NetBSD (1993, focus on portability) OpenBSD (1996, focus on security) Δωρεάν µε BSD license (πρέπει να γίνει acknowledge o πηγή) 1-22

Unix για Κινητές Συσκευές Linux on Portable Devices Οι πυρήνες των πλείστων σύγχρονων κινητών τηλεφώνων στηρίζονται σήµερα σε πυρήνες UNIX Android (Open Handset Alliance & Google) => Linux 2.6 / 3.0 ios (Apple) => Darwin Kernel A POSIX-compliant open source OS released by Apple in 2000 Darwin is based on BSD -> Nextstep kernel Maemo (Nokia) => Linux Kernel 2.6.16 & Debian Linux Distribution (GUI and libraries from GNOME project Matchbox Window Manager + GNOME) 1-23

Unix για Κινητές Συσκευές http://smartlab.cs.ucy.ac.cy/

Unix για Υποδοµές Νεφέλης (Cloud Hardware) Google's Datacenter in Oregon

Unix για Υποδοµές Νεφέλης (Cloud Hardware) Το Datacenter του εργαστηρίου µας!

Unix για Υποδοµές Νεφέλης (Architecture) Εικονικά Συστήµατα (CPU, RAM, Network, Storage, Fault-tolerance )

Unix για Υποδοµές Νεφέλης (Cloud Interface)

Unix για Υποδοµές Νεφέλης (Large Filesytems - HDFS) 2010 2010 HDFS scalability: the limits to growth http://static.usenix.org/publications/login/2010-04/openpdfs/shvachko.pdf

Περιεχόµενο Μαθήµατος Εβδ. 1-3: Εντολές UΝΙΧ και Εργαλεία Ωφελιµότητας (System Utilities) Εισαγωγή, Ιστορική Αναδροµή, Απλές και προχωρηµένες εντολές, Κανονικές εκφράσεις, Ανακατεύθυνση (redirect) και διοχέτευση (pipe), Διαχείριση Αρχείων, Διεργασίες, Εντολές περιβάλλοντος, επικοινωνίας, εισόδου/εξόδου, ελέγχου διεργασιών, Εργαλεία Ωφελιµότητας: sed, awk κτλ.) Εβδ. 4-5: Προγραµµατισµός στο Κέλυφος (bash) Εισαγωγή, Μεταβλητές, Συνθήκες Ελέγχου (if, select), Επαναληπτικοί Βρόγχοι (for, while, until), Έλεγχος Ροής (break, continue), Συναρτήσεις, Πίνακες, λογικοί και αριθµητικοί τελεστές κ.α. 1-30

Περιεχόµενο Μαθήµατος Εβδ. 6: Συστήµατα Αρχείων. Εισαγωγή στα Αρχεία και Συστήµατα Αρχείων στο Unix (Τύποι Αρχείων, Partitions, i-nodes, blocks), Μέθοδοι Επεξεργασίας Αρχείων: Standard I/O vs. Χαµηλού Επιπέδου Ι/Ο, Μέτα-πληροφορίες Αρχείων, Δοµή και Πρόσβαση, Διαχείριση Αρχείων µε κλήσεις συστήµατος, Διαχείριση Καταλόγων, Προσπέλαση Καταλόγων µε συναρτήσεις βιβλιοθήκης Εβδ. 7-8: Διεργασίες: Περιβάλλον, Έλεγχος και Σήµατα Διεργασίες: Δοµή & Αναπαράσταση, Ταυτότητες Διεργασιών, Δηµιουργία Διεργασιών, Μεταβλητές Περιβάλλοντος, Ορφανές Διεργασίες, Διεργασίες και Αρχεία, Αναµονή Διεργασιών, Zombie Διεργασίες, Σήµατα και Διεργασίες MIDTERM 1-31

Περιεχόµενο Μαθήµατος Εβδ. 9-10: Δια-διεργασιακή Επικοινωνία (IPC) Επικοινωνία µεταξύ Διεργασιών, Μελέτη τρόπων επικοινωνίας: i) Σωλήνες (Pipes), ii) FIFO (Named Pipes), 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 ΕΠΛ 371 of Service, Προγραµµατισµός Buffer Overflow, Συστηµάτων κτλ. 1-32